找不到 C# 递归依赖项



我正在为一个项目学习 C#,并且在依赖项方面遇到了一些麻烦。本质上,这是事情的设置方式:

项目本身(一个名为 (XMLupdater( 的库(依赖于 NuGet 包。然后我有另一个项目用于测试上面的库(我称之为XMLtester(。这是我对测试项目的解决方案,该库在 Visual Studio 中作为依赖项添加: 链接bc我还不能嵌入图像

据我所知,这里的一切都很好,但是我在运行时收到一个错误,说它找不到NuGet包。它说:

System.IO.FileNotFoundException: 'Could not load file or assembly 'XmlDiffPatch.Core, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.'

我已经尝试了我能想到的一切来解决这个问题,但归根结底是我对这种语言和 ide 没有太多经验,而且依赖关系有时真的很奇怪。我问过其他几个也无济于事,所以我决定征求你们这些人的明智建议。有什么帮助吗?

谢谢!

您似乎有程序集版本问题。解决方案中引用的程序集的版本将与错误消息中显示的版本不同。

有两种方法可以解决此问题:

  1. 获取错误中显示的程序集的确切版本,并添加对该版本的引用。
  2. 在配置文件中使用绑定重定向来告诉编译器要查找哪个版本。

对于第二个选项,您可以在正在执行项目的配置文件中添加/更新<assemblyRedirect元素。

<dependentAssembly>  
<assemblyIdentity name="someAssembly"  
publicKeyToken="32ab4ba45e0a69a1"  
culture="en-us" />  
<bindingRedirect oldVersion="1.0.0.0" newVersion="— add the actual version of the assembly referenced in your project —" />  
</dependentAssembly>  

使用属性newVersion设置项目中引用的 XmlDiffPatch.Core 的版本。

您可以在此处找到有关它的更多详细信息:https://learn.microsoft.com/en-us/dotnet/framework/configure-apps/redirect-assembly-versions

最新更新