如何使4.0项目有一个4.5的参考。在单元测试中,我无法构建解决方案,它给了我这个警告。
警告2主要引用"PR.Wallet“无法解析,因为它是根据".NETFramework,Version=v4.5.1”框架构建的。这是一个比当前目标框架".NETFramework,Version=v4.0“更高的版本。PR.Wallet.Tests
发布于 2014-05-22 12:52:42
前向兼容.框架(v2.0或更高版本)不是.Net。您不能在.Net 4.0项目中引用.Net 4.5程序集。
请参阅:.NET框架中的版本兼容性
您还可以看到:版本兼容性
.NET框架对后向和向前兼容性的支持程度是特定于版本的..NET框架支持仅使用1.1版本创建的应用程序的后向和向前兼容性。它不支持使用2.0版本创建的应用程序的前向兼容性。在.NET框架的上下文中,向后兼容性意味着使用.NET框架早期版本创建的应用程序将在更高版本上运行。相反,前向兼容性意味着使用.NET框架的更高版本创建的应用程序将在早期版本上运行。 .NET框架提供了对向后兼容性的高度支持。例如,使用1.0版创建的大多数应用程序将在1.1版上运行,使用1.1版创建的应用程序将在2.0版上运行。.NET框架还仅支持1.1版本的前向兼容性。但是,为了向前兼容性,您可能需要修改应用程序,以便应用程序按预期运行。使用Version2.0创建的应用程序不会在.NET框架的早期版本上运行。对于向后和向前兼容性,对.NET框架的更改有助于提高安全性、正确性或功能,也可能会引起兼容性问题。
发布于 2014-05-22 12:55:27
听起来你需要改变这个库的框架。既然这只是一个单元测试项目,我不明白你为什么不这么做。
在中:
如果您没有将.NET Framework4.5.1视为选项,请确保安装了它。
发布于 2015-01-27 17:13:30
您无法在目标为4.0的项目中引用4.5.1程序集。但是..。假设安装了4.5.1,则可以动态调用目标4.0的项目中的4.5.1程序集的方法:
var assembly= Assembly.LoadFrom(...);
var type = assembly.GetType(...);
var method = type.GetMethod(...);
var res = method.Invoke(null, args);
请注意,这种方法可能有局限性,但我发现在仍然使用VS2010时调用Roslyn例程很有用。
https://stackoverflow.com/questions/23807351
复制相似问题