实干家任何人都知道一个良好的实用程序或程序的询问所有项目的解决方案或目录,并告诉你在哪里循环引用,为了能够编译..c#:找到循环引用/按正确顺序编译的实用程序?
我记得看到一个前一段时间,但我可以” t在任何地方找到它..
实干家任何人都知道一个良好的实用程序或程序的询问所有项目的解决方案或目录,并告诉你在哪里循环引用,为了能够编译..c#:找到循环引用/按正确顺序编译的实用程序?
我记得看到一个前一段时间,但我可以” t在任何地方找到它..
NDepend是一个很好的工具,将做到这一点,多了很多。也许它是为了你想要的东西,但有一个试用版,所以看看...
您可以通过System.Reflection追逐依赖关系树。在构建树时,添加节点时,您会检查节点的父节点是否与您要添加的节点相同。如果为true,则向用户抛出异常。
抛出这样一个技术的例外是确定的,如果你的用户会是谁知道集的引用和异常是如何工作的人 - 人喜欢开发商:)
如果您使用项目解决方案中的项目之间的引用正确的构建顺序将由Visual Studio自动确定(或的MSBuild)。当然,如果您使用程序集引用,则会中断。另外,Visual Studio将阻止您添加通知项目引用。
>>此外,Visual Studio将阻止您添加循环项目引用。 这是一个不错的功能。如果你的循环引用超过了2点的引用(例如A→B→C→A),VS会给你更多关于哪些引用会引起潜在的循环引用的信息。 – 2014-09-17 17:33:49
我知道这是一个迟到的答案,但我发现使用GraemeF和tsilb的答案都显示两个程序集之间没有依赖关系。看起来,如果你扭转依赖的顺序一样(大会一引用乙,但是你把它切换到乙引用一个),它的叶子在构建顺序的依赖。要解决此问题,请打开解决方案的“属性”对话框,转到“通用属性”,然后选择“项目依赖项”。找到大会A并删除依赖大会B。这将允许您正常添加参考。
我继承了一个巨大的视觉工作室解决方案与几个循环参考路径。我写了一个剧本linqpad帮助寻找循环引用链:
https://github.com/ronnieoverby/linqpad-utils/blob/master/Find%20circular%20references.linq
我的实现可能是幼稚的,但它的工作相当快的我。
是的,这有很多功能,但我喜欢它..谢谢 – 2009-11-05 07:31:36