我有一个针对.Net 4.0的项目,其中一个引用的程序集是.Net 4.5。
在我安装.Net 4.5之前,这工作正常,但是在安装之后,我得到了关于这些目标的.Net版本的五个警告:
* 主要参考“xxxx.Library,Version = 1.0.0.1,Culture = neutral,processorArchitecture = MSIL”无法解析 因为它是针对“.NETFramework,Version = v4.5”构建的 框架。这是比当前目标版本更高的版本 框架“.NETFramework,Version = v4.0”
而且:
主要参考“Microsoft.TeamFoundation.Build.Workflow,Version = 10.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a, processorArchitecture = MSIL“无法解析,因为它有一个 间接依赖于框架程序集“System.IO.Compression, Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089“ 这在目前的目标框架中无法解决。 ” .NETFramework,版本= V4.0" 。要解决此问题,请删除 参考“Microsoft.TeamFoundation.Build.Workflow, Version = 10.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a, processorArchitecture = MSIL“或将您的应用程序重新定位到 框架版本,其中包含“System.IO.Compression, 版本= 4.0.0.0,文化=中立, PublicKeyToken = b77a5c561934e089“。测试
为什么Visual Studio讨厌我?如果它可以在更新到4.5之前编译,目标框架没有改变,它仍然适用于VS2010的同事.Net 4为什么我被填充?
答案 0 :(得分:12)
错误消息解释了问题 - .NET 4应用程序无法引用.NET 4.5 dll。将您的应用程序更改为.NET 4.5,或将dll更改回.NET 4。
答案 1 :(得分:5)
因为Microsoft最熟悉的原因,.NET Framework 4.5是一个就地更新replaces您的.NET Framework 4文件(而不是并行安装) 。如果您查看C:\ Windows \ Microsoft.NET,则无法找到4.5文件夹 - 它会替换4.0文件夹中的文件。
因此之前编译的原因是dll是一个.Net 4.0 dll。现在它已经被一个4.5替换了。