我有一个引用 System.ComponentModel.Annotations (4.3.0) NuGet 包的 .NET Standard 1.4 类库。
然后,我从 .NET Framework 4.6.2 测试项目引用该类库。它构建得很好,但在运行时我收到以下错误:
发生 System.IO.FileLoadException HResult=0x80131040
留言=无法加载文件或程序集
'System.ComponentModel.Annotations,版本=4.1.0.0,文化=中性,
公钥令牌=b03f5f7f11d50a3a'或其依赖项之一。这
找到的程序集的清单定义与程序集不匹配
参考。 (HRESULT 异常:0x80131040)
我尝试添加对 net462 项目中的 System.ComponentModel.Annotations (4.3.0) NuGet 包的引用,但这没有任何区别。
我尝试添加对 net462 项目中的 .NET 标准库的引用,但仍然没有成功。
我在这里错过了什么吗?这是一个已知的错误吗?如果是,有解决办法吗?
任何帮助深表感谢!
在许多情况下,可以通过将以下代码添加到测试项目的 csproj 文件中来解决:
<PropertyGroup>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
这迫使构建过程创建一个.dll.config
具有所需绑定重定向的输出目录中的文件。
原因是“经典”csproj 测试项目是真正的“库”,并且默认情况下不被认为需要绑定重定向。但运行单元测试需要这样做。只有当引用的项目需要这些重定向才能正常工作时,这才会成为问题。这通常在直接安装引用库使用的所有 NuGet 包时有效,但使用新的PackageReference
NuGet 包的风格,但它没有。
查看此修复已提供帮助的其他实例:
无法加载文件或程序集 Microsoft.Extensions.DependencyInjection.Abstractions,版本=1.1.0.0 https://stackoverflow.com/questions/43995432/could-not-load-file-or-assembly-microsoft-extensions-dependencyinjection-abstrac/43996389#43996389
在库中使用 .Net Standard 1.4 并在应用程序中使用 .Net Framework 4.6.1 时,无法加载文件 System.IO.FileSystem,版本=4.0.1.0 https://stackoverflow.com/questions/44257436/when-using-net-standard-1-4-in-a-library-and-net-framework-4-6-1-in-and-applic
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)