我一直在一台机器上进行开发,最近尝试在另一台电脑上安装我的应用程序。我想我已经推断出自从在 .NET Core 中以来就没有找到 nuget 包,nuget 将包放在本地“Users”文件夹路径中。
我最初添加了<RunTimeIdentifier>
标签来创建一个 exe(它在我的开发机器上运行)。当在不同的计算机上运行 exe 时,控制台窗口将非常快速地闪烁,并且应用程序停止且没有错误输出(即使在事件查看器中也是如此)。
我还添加了这个标签<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest
在 *.csproj 中,这没有什么区别。
所以我尝试跑步dotnet project.dll
这在另一台机器上给了我这个错误。
找不到应用程序依赖项清单 (project.deps.json) 中指定的程序集:
包:'Localization.AspNetCore.TagHelpers',版本:'0.3.0'
路径:'lib/netstandard1.6.1/Localization.AspNetCore.TagHelpers.dll'
当我“重新创建”文件夹结构时,你瞧,一切都正常。
有没有办法在编译/构建时将这些包复制到 bin 文件夹并路径引用这些包?或者我构建/编译错误?
另请注意,该项目已从 .NET Core 2.0 更新到 2.1。
简答
听起来你想要一个独立部署 https://learn.microsoft.com/en-us/dotnet/core/deploying/deploy-with-cli#self-contained-deployment-with-third-party-dependencies。就是这样dotnet publish --self-contained --runtime <some-runtime>
输出到publish
目录。
两个例子
假设我们有一个应用程序C:\temp\temp.csproj
,我们想将其发布给两个目标平台 https://learn.microsoft.com/en-us/dotnet/core/rid-catalog.
如果我们像这样发布...
dotnet publish --self-contained --runtime win-x86
...独立的可执行文件将位于此处:
C:\dev\temp\bin\Debug\netcoreapp2.1\win-x86\publish\temp.exe
如果我们像这样发布...
dotnet publish --self-contained --runtime ubuntu-x64
...独立的可执行文件将位于此处:
C:\dev\temp\bin\Debug\netcoreapp2.1\ubuntu-x64\publish\temp
如果我们然后复制整个publish
目录到目标计算机,我们可以执行temp
可执行文件,因为它的所有依赖项都存在。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)