Visual Studio和循环依赖性的困境

Gra*_*ush 4 c# circular-dependency visual-studio visual-studio-2012

我有一个遗留系统,它由15个不同的项目组成,当我试图从另一个Visual Studio引用一个时,抱怨它不能这样做,因为这会导致循环依赖.

我的问题是我无法看到它会如何导致循环依赖,因为我试图引用的项目('XScript')对试图引用它的项目没有任何依赖('WPF_Forms' ).

从我在这里的研究中发现,尽管他们的问题似乎有明显的循环依赖性,但他们却遭遇了类似的命运.

我已经从这里的一些帖子中下载了NDepend的演示版本,尽管在那里工作了各种依赖工具,但仍然没有明显的链接.

我右键单击所涉及的项目并使用"项目依赖项"选项,但我看不到任何链接.我也重新启动了Visual Studio并尝试了"Clean Solution"和"Re-build Solution"无济于事.

我能够提出的唯一方法是通过引用构建的DLL而不是项目本身来引用'XScript',但是感觉有点脏,我想知道为什么会发生这种情况而不仅仅是黑客攻击它.

任何人都可以提出我可能错过的任何建议或我可以采用的任何策略来解决出错的问题吗?

编辑1: XScript用于引用WPF_Forms,但该引用已被删除(项目清理和重建,没有依赖关系显示在'Project Dependencies'窗口.我想VS有可能在某处保留了链接或者它认为项目以某种方式联系在一起.

编辑2:根据BitBonk的建议,我已经运行了使用VS的代码映射功能并计算出项目拓扑.XScript和WPF_Forms仅由主.exe引用,没有其他内容.我开始怀疑这是一个VS问题,我可能不得不创建一个新项目并再次添加所有子项目以使其正常工作.

Gra*_*ush 9

问题是:Visual Studio 2012.

使用像Bitbonk建议的代码映射后,我看不到会引起问题的引用.所以,我从项目中删除了XScript和WPF_Forms,运行了一个干净的,添加了XScript,然后运行了一个干净的,然后添加了WPF_Forms,然后运行了一个干净的.

之后,将WPF_Forms中的引用添加到XScript不会导致任何问题.我只能猜测这是VS中的一个错误,它是由于没有识别出XScript不再依赖于WPF_Forms而触发的错误.

希望这个问题和建议的答案将来会帮助别人.

  • 确实,这个问题和建议的答案是我所遇到的确切问题。我已将项目移至插件体系结构,因此必须逆转依赖关系。使其生效的唯一方法是删除两个项目,然后重新添加它们。这是在VS2013中进行的,因此该错误显然未得到修复。 (2认同)