我正在为一个项目学习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.'
我已经尽一切努力解决了这个问题,但这归结为一个事实,就是我对这种语言和想法没有太多的经验,而依赖有时可能真的很奇怪。我已经要求其他两个人都无济于事,所以我决定向大家请教。有帮助吗?
谢谢!
答案 0 :(得分:0)
似乎您有程序集版本问题。解决方案中引用的程序集的版本将与错误消息中显示的版本不同。
有2种方法可以解决此问题:
对于第二个选项,您可以在执行项目的配置文件中添加/更新<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