为了账号安全,请及时绑定邮箱和手机立即绑定

.NET Core 2.1 - 构建时的 dotnet/exe,缺少包

.NET Core 2.1 - 构建时的 dotnet/exe,缺少包

C#
SMILET 2021-11-07 19:25:16
我一直在一台机器上开发,最近尝试在另一台 PC 上安装我的应用程序。我想我已经推断出在 .NET Core 中找不到 nuget 包,nuget 将包放在本地“用户”文件夹路径中。我最初添加了<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。
查看完整描述

1 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

简答

听起来您想要一个独立的部署。这就是dotnet publish --self-contained --runtime <some-runtime>输出到publish目录的内容。

两个例子

假设我们在 有一个应用程序C:\temp\temp.csproj,我们想将它发布到两个目标平台

如果我们这样发布...

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可执行文件,因为它的所有依赖项都存在。


查看完整回答
反对 回复 2021-11-07
  • 1 回答
  • 0 关注
  • 314 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信