我想知道如何确定此构建错误的来源;
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) 个第 3 方 DLL,所有这些 DLL 也都以 .NET 2.0 为目标。
我使用 dotPeek 来检查构建的库,并且看不到对使用 .NET 4.0 的任何内容的任何引用。
作品中唯一的其他潜在扳手是 PostSharp 的使用,它由“MyNamespace.MyCoreProject”直接引用(由主要参考项目引用),这可能会导致问题,因为我相信有一个相关的 VS2010 错误时引用 PostSharp.dll (http://www.sharpcrafters.com/forum/Topic4444-4-1.aspx#bm4462),但是我也从构建链中删除了它,仍然看到这个错误,所以我假设我也可以统治那出来。
如果有人能告诉我为什么会这样,太棒了!如果没有,关于如何找出未命名的“间接引用”的一些指导将同样有帮助!
顺便说一句,我已经尝试了以下所有工具来获取一些信息,但它们并没有告诉我很多我不知道的东西(这是有问题的 DLL 的直接依赖项);- .NET 反射器 - dotPeek - IldAsm - Depends (Dependency Walker)