没有构建的dotnet pack版本:无法加载文件或程序集

时间:2020-10-12 16:46:56

标签: .net-core nuget dotnet-cli

“覆盖”软件包时,使用dotnet pack而不是dotnet build设置版本时出现以下错误

System.IO.FileLoadException:无法加载文件或程序集“ My.Package,版本= 1.0.0.0,区域性=中性,PublicKeyToken =空”。找到的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的异常:0x80131040) 文件名:“ My.Package,版本= 1.0.0.0,区域性=中性,PublicKeyToken =空”

假设我有以下“依赖图”

  • 我的包裹1.0.0.1
  • 我的其他包装1.0.0.1
    • NewtonSoft.Json 12.0.1
    • My.Package 1.0.0.0 <----请注意,我们已覆盖此版本

当我按照以下方式构建/打包时,它会起作用

dotnet build MySolution.sln --version-suffix 1.0.0.1 -c Release
dotnet pack My.Package/My.Package.csproj --no-build /p:Version=$VERSION=1.0.0.1 -c Release

但是(因为我正在使用docker),我想避免在构建时而不是仅在打包时放置版本

dotnet build MySolution.sln -c Release
dotnet pack My.Package/My.Package.csproj --no-build /p:Version=$VERSION=1.0.0.1

只要我不必“覆盖”依赖关系图中的软件包版本,这也可以工作。

  1. 为什么不起作用?我比较了.nupkg文件中生成的文件,但看不到差异
  2. 是否可以使它工作而无需在构建时指定版本?

0 个答案:

没有答案