Netstandard依赖关系System.IO.FileNotFoundException



我们有一个.Net Framework 4.7应用程序,它依赖于以.Net Standard 2.0为目标的解决方案中的另一个项目。

该项目再次依赖于另一个(外部(.NET Standard 2.0库,该库是通过私有Nuget repo添加的。此库依赖于Microsoft.Win32进行注册表查找。

当调试.Net FW应用程序时,我们在运行时会得到一个FileNotFoundException:

System.IO.FileNotFoundException: 'Could not load file or assembly 'Microsoft.Win32.Registry, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.'

我更改了使用Registry的库,并添加了Microsoft.Win32.Registry包。再次调试时,错误更改为不同版本:

Could not load file or assembly 'Microsoft.Win32.Registry, Version=4.1.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.

我们在哪里努力解决这个问题?在使用Win32.Registry的库中是否存在配置错误的内容?还是.NET标准项目依赖于它?还是在.NET 4.7应用程序的顶层?

我建议您右键单击解决方案,然后转到"管理NuGet包",然后转到合并选项卡并解决冲突。您可能在多个项目中拥有不同版本的库。通常,库中的错误在解决时一次显示一个。

对于任何找到线程的人来说,有效的方法是将外部库使用的win32.registry nuget包也添加到.net framework 4.7项目中。

即使认为这感觉远非最佳,但这是在这种情况下唯一有效的方法,而且必须这样做

参考:为什么我的.NET框架应用程序在寻找错误版本的.NET核心/标准平台扩展程序集,我该如何修复它?

相关内容

  • 没有找到相关文章

最新更新