13

我有一个针对.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”的框架版本.压缩,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089"。测试

为什么 Visual Studio 讨厌我?如果它可以在更新到 4.5 之前编译,那么目标框架没有改变,它仍然适用于 VS2010 上的同事使用 .Net 4 为什么我被塞满了?

4

2 回答 2

13

错误消息解释了问题 - .NET 4 应用程序无法引用 .NET 4.5 dll。将您的应用程序也更改为 .NET 4.5,或将 dll 更改回 .NET 4。

于 2013-05-31T11:44:24.037 回答
5

这是因为由于 Microsoft 最熟悉的原因,.NET Framework 4.5 是一个就地更新,它替换了您的 .NET Framework 4 文件(而不是并行安装)。如果您查看 C:\Windows\Microsoft.NET,您将找不到 4.5 文件夹——它替换了 4.0 文件夹中的文件。

所以它之前编译的原因是该dll当时是一个.Net 4.0 dll。现在它已被 4.5 所取代。

于 2014-07-26T10:19:40.963 回答