4

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

我的问题是我看不到它会如何导致循环依赖,因为我尝试引用的项目('XScript')对尝试引用它的项目('WPF_Forms')没有任何形式的引用)。

通过对这里的研究,我发现人们遭受了类似的命运,尽管他们的问题似乎具有明显的循环依赖性。

我已经按照这里的一些帖子的建议下载了 NDepend 的演示副本,尽管使用了各种依赖工具,但仍然没有明显的链接。

我右键单击了所涉及的项目并使用了“项目依赖项”选项,但我看不到任何链接。我还重新启动了 Visual Studio 并尝试了“清洁解决方案”和“重新构建解决方案”,但均无济于事。

我能够想出的唯一方法是通过引用构建的 DLL 而不是项目本身来引用“XScript”,但这感觉有点脏,我想知道为什么会发生这种情况,而只是破解它。

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

编辑 1: XScript 用于引用 WPF_Forms 但该引用已被删除(并且该项目已清理和重建,没有在“项目依赖项”窗口上显示任何依赖项。我想 VS 可能在某处保留了链接或它认为这些项目以某种方式联系在一起。

编辑 2:根据 BitBonk 的建议,我运行了使用 VS 的 Code Map 功能并制定了项目拓扑。XScript 和 WPF_Forms 仅由主 .exe 引用,没有其他内容。我开始怀疑这是一个 VS 问题,我可能必须创建一个新项目并再次添加所有子项目才能使其正常工作。

4

3 回答 3

9

问题是:Visual Studio 2012。

在使用像 Bitbonk 建议的 Code Map 之后,我看不到任何会导致问题的引用。因此,我从项目中删除了 XScript 和 WPF_Forms,运行了一次清理,重新添加了 XScript,运行了一次清理,然后重新添加了 WPF_Forms 并运行了一次清理。

之后,将 WPF_Forms 的引用添加到 XScript 并没有引起任何问题。我只能猜测这是 VS 中的一个错误,它是由它无法识别不再存在从 XScript 到 WPF_Forms 的依赖关系触发的。

希望这个问题和建议的答案将在未来对其他人有所帮助。

于 2013-01-24T11:37:33.840 回答
4

正如其他人已经说过的那样,您的循环依赖可能涉及多个级别。您可以使用 viusal studio 2012 的代码映射功能轻松可视化依赖关系图。这样您就可以发现会发生这种情况的位置。

在此处输入图像描述

于 2013-01-24T10:22:52.603 回答
1

也许您的循环依赖涉及两个以上的项目。

于 2013-01-24T10:18:27.857 回答