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

问题描述

“覆盖”软件包时,使用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. 是否可以使它工作而无需在构建时指定版本?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...