我遇到了一个很奇怪的问题。在一个解决方案中,2 个项目实现了 RestSharp(Mollie 和 Plivo 的依赖项)。但是两者都使用不同的 nuget 包。一个使用签名版本,另一个使用普通版本。一个正常的工作,没有问题。使用签名的那个行为很奇怪。我收到以下错误:
无法加载文件或程序集“RestSharp,Version=100.0.0.0,Culture=neutral,PublicKeyToken=************”或其依赖项之一。找到的程序集的 list 定义与程序集引用不匹配。 (HRESULT 异常:0x80131040)
当我转到引用的属性时,我看到它在正确的文件夹和正确的版本(路径)中引用文件,但在引用的版本中它指出 100.0.0.0。我无法更改它,我已经尝试通过 .csproj 然后它只显示 0.0.0.0 作为一个版本并且根本没有找到引用,在 packages.config 中它设置正确..
我也试过直接引用 packages 目录中的 dll,从 nuget 中删除它,但也没有成功。它再次显示为版本 100.0.0.0。这是 dll 的问题还是我的问题?
同样在对象浏览器中,它显示为 2 个版本(一个安装了 plivo,一个安装了 mollie..)但是不再有差异的引用(Restsharp vs restsharpsigned)
最佳答案
RestSharpSigned 版本显示为 100.0.0,因为 RestSharp.dll 使用 Strong Name将其命名为 100.0.0。你可以用 NuGet Package Explorer 打开它检查程序集信息。
而且我已经在我的项目中安装了 Mollie 和 Plivo 包,一切正常。所以问题应该与您的解决方案有关。
请创建一个没有任何自定义代码的新解决方案,并在新项目中安装 Plivo 包。构建成功后,请将您原来的项目文件复制到新项目中,这可以帮助您确认是哪个文件导致了这个问题。
关于c# - Restsharp 引用中的版本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40784498/