.net - 无法解析主要引用,因为它是针对比当前目标框架更高版本的 .NET 框架构建的

标签 .net visual-studio-2010 .net-4.0 build

我正在尝试构建一个引用第 3 方 SlingshotClient.dll 的项目。该项目在其他开发人员工作站上构建良好。但是,我收到以下错误。我可以想象到的一个区别是导致我的问题是我的机器上还安装了 VS 2012 和 .NET Frameworks 4.5。我相信其他可以成功构建的开发人员没有安装这些。

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1578,5):警告 MSB3274:主要引用“SlingshotClient, Version=1.0.0.0, Culture=neutral, PublicKeyToken= bb5a8745472e181a, processorArchitecture=MSIL"无法解析,因为它是针对“.NETFramework,Version=v4.5”框架构建的。这是更高版本 n 比当前目标框架“.NETFramework,Version=v4.0”。

错误似乎是说我们的项目针对的是框架版本 4.0(这是正确的),但引用的 SlingshotClient.dll 是针对框架版本 4.5 构建的。当我查看反汇编程序中的 SlingshotClient.dll 时,在我看来该程序集是针对框架版本 4.0 构建的

h

最佳答案

显然,如果您只安装了 .NET Frameworks 4.0,则可以将针对 4.5 的 .NET 程序集作为引用添加到针对 .NET 4.0 的项目中。这将编译并运行,没有错误。

安装 .NET Frameworks 4.5 后,编译将失败。解决方案是针对 .NET Framework 4.5 的项目或获取针对 .NET 4.0 的引用程序集的版本。

.NET 4.5 是 4.0 的替代品。 4.0 对 4.5 一无所知,我假设它只是查看版本号的第一个数字,对于 4.0 或 4.5 是相同的,因此允许编译。安装 4.5 后,您的 4.0 项目就会使用 4.5 框架编译,它现在知道 4.5 并提示。

关于.net - 无法解析主要引用,因为它是针对比当前目标框架更高版本的 .NET 框架构建的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18360561/

相关文章:

c# - 如何查看不同dll的执行时间

visual-studio-2010 - 如何在visual studio 2010中创建测试证书?

c# - 如何从 Windows Server 2003 上的事件目录获取 tokenGroups?

c# - UnsafeQueueUserWorkItem 和 "does not propagate the calling stack"到底是什么意思?

c# - ToLowerInvariant() 有什么问题?

.net - 如何使用 Linq-to-SQL 只插入新记录?

.net - 为什么 NHibernate 会自动截断而不是在保存时抛出异常?

c# - VS 2010 安装程序项目未将共享引用的程序集携带到所有输出

visual-studio - 无法使用 CodeTaskFactory 创建内联构建任务(构建错误 MSB3758 和 CS0012)

c# - 为什么在任务中运行的 Thread.Sleep 不会阻塞 WinForms UI 线程?