我想知道如何确定此构建错误的来源;
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) 也直接依赖于该项目。并且构建并没有抱怨that项目间接引用 .NET 4.0.x,所以我认为我可以排除这种情况。
主要参考直接依赖于三 (3) 个第 3 方 DLL,所有这些也都以 .NET 2.0 为目标。
我使用 dotPeek 来检查构建的库,但看不到任何使用 .NET 4.0 的引用。
工作中唯一的其他潜在扳手是使用 PostSharp,它由“MyNamespace.MyCoreProject”(由主要参考项目引用)直接引用,这可能会导致问题,因为我相信在以下情况下存在相关的 VS2010 错误引用PostSharp.dll(http://www.sharpcrafters.com/forum/Topic4444-4-1.aspx#bm4462),但是我也从构建链中删除了它并且仍然看到这个错误,所以我认为我也可以规则that out.
如果有人能告诉我为什么会发生这种情况,那就太棒了!如果没有,关于如何计算出未命名的“间接引用”是什么的一些指导也会同样有帮助!
顺便说一句,我已经尝试了以下所有工具来获取一些信息,但它们并没有告诉我太多我不知道的信息(这是相关 DLL 的直接依赖项);
- .NET 反射器
- 点窥视
- IldAsm
- 取决于(依赖行者)