6

我最近将我的解决方案从使用 vs2010 pro sp1 的主开发机器移到了新机器上。除了构建失败之外,设置应该是相同的。

它给出的错误像

c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360,9):警告 MSB3258:主要参考“C:\rep\hms\trunk\ikassystemv3\ikasDAL\bin\Debug\ ikasDAL.dll”无法解析,因为它间接依赖于 .NET Framework 程序集“mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”,其版本“4.0.0.0”高于版本当前目标框架中的“2.0.0.0”。

然而,所有有问题的库都设置为使用 .net 2 框架,我需要这种方式,否则它会破坏使用它们的东西。

但是由于某种原因,它似乎认为我的 .net 2 系统库以某种方式引用了 .net 4 的东西。所有引用的库都是 .net 2

你可以在这里看到我的构建输出

http://tinyurl.com/bnugru4

4

2 回答 2

2

我在使用 CopyLocal 项目引用并在依赖项目(即 ikasDAL.dll)上更改目标框架(即 .NET 4 到 2)时看到了这个问题。

如果是这种情况,删除输出文件夹(即 C:\rep\hms\trunk\ikassystemv3\ikasDAL\bin\Debug)并重建应该可以解决整个问题。

于 2012-11-12T22:38:13.330 回答
0

从日志来看,确实有人在 4.0 中编写了 ikasDAL.dll,因为它依赖于 System.Xml.Linq 等 2.0 框架中不存在的东西。

从表面上看,我会说有人人为地将 ikasDAL.dll 设置为 2.0,而没有意识到它依赖于什么。如果是这种情况,那么我认为你有一个更大的问题。

或者,ikasDAL 最近设置为 4.0,您已将其重置回 2.0,但未修复它的依赖项。


我首先手动清理所有 bin 目录(基本上删除它们)。然后我会查看每个单独的项目以确保它确实设置为 2.0。最后,我会一次构建每个项目,直到遇到问题。

于 2012-11-12T22:56:57.407 回答