找不到C#递归依赖性

时间:2018-09-02 05:05:03

标签: c# visual-studio dependencies

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

项目本身(称为(XMLupdater)的库)依赖于NuGet包。然后,我有另一个项目用于测试上述库(我称为XMLtester)。这是我针对测试项目的解决方案,该库添加为Visual Studio中的依赖项: link bc I can't embed images yet

据我所知,这里的一切正常,但是在运行时出现错误,提示它找不到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.'

我已经尽一切努力解决了这个问题,但这归结为一个事实,就是我对这种语言和想法没有太多的经验,而依赖有时可能真的很奇怪。我已经要求其他两个人都无济于事,所以我决定向大家请教。有帮助吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

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

对于第二个选项,您可以在执行项目的配置文件中添加/更新<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
  

使用属性<?php $data = array( array('name'=>'Matemathic','SKS'=>5), array('name'=>'History','SKS'=>2), array('name'=>'English','SKS'=>3) ); foreach($data as $i) { if ($i['name'] == 'History') { echo $i['SKS']; break; } }设置项目中引用的XmlDiffPatch.Core的版本。

     

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