我想知道如何确定这个构建错误的来源;
Warning 4 The primary reference "MyNamespace.MyProject" could not be resolved because
it has an indirect dependency on the .NET Framework assembly "System.Xml, Version=4.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089" which has a higher version "4.0.0.0" than
the version "2.0.0.0" in the current target framework. MyNamespace.MyOtherProject
我理解这个错误的意思(和这个项目中其他5个类似的错误),但是我无法确定如何在我的情况下解决它。在这种情况下,“主要参考”(MyNamespace.MyProject)没有直接依赖于.NET 4.0.x。主要引用仅依赖于我的另一个项目(MyNamespace.MyCoreProject),而该构建的源项目(MyNamespace.MyOtherProject)也直接依赖于其上。构建没有抱怨关于那个项目对.NET 4.0.x的间接引用,所以我认为我可以排除那个。
主要参考有三个(3)第三方DLL的直接依赖项,所有这些都指向.NET 2.0。
我使用dotPeek检查了生成的库,看不到任何引用使用.NET 4.0。唯一可能存在问题的是PostSharp的使用,它是由“ MyNamespace.MyCoreProject”(被主要引用项目引用)直接引用的,这可能会导致问题,因为在引用PostSharp.dll时我相信与VS2010有关的错误(http://www.sharpcrafters.com/forum/Topic4444-4-1.aspx#bm4462),然而我还从生成链中删除了它,仍然看到此错误,所以我认为我也可以排除那个。
如果有人能告诉我为什么会发生这种情况,那太好了!如果没有,对于如何找出未命名的“间接引用”的方向将同样有帮助!
顺便说一下,我尝试了以下所有工具以获取一些信息,但它们并没有告诉我太多我不知道的内容(即DLL的直接依赖项); - .NET Reflector - dotPeek - IldAsm - Depends(Dependency Walker)