我刚刚开始使用 NDepend 并正在尝试分析解决方案。
当我添加解决方案的程序集时会出现此警告,它不会加载任何带有警告的程序集:
无法加载程序集 {MyAssembly}:几个 .NET 程序集的名称为 {MyAssembly},但它们不同:...项目中包含此程序集的 .dll 列表
这可能是什么原因造成的?我正在使用一个通用的 AssemblyInfo.cs 文件以及标准文件来设置一些通用属性,但这些属性之间没有冲突。
大卫,错误是在您在 NDepend 项目中提供的一组输入文件夹中,NDepend 发现了{MyAssembly.dll} 的几个不同出现。例如,您有一个 {MyAssembly v1.0.1} 文件和一个 {MyAssembly v1.0.2} 文件。
显然这是你不知道的事情,所以 NDepend 在展示缺陷方面做得很好。
在Project Property > Code to Analyze面板中,将鼠标悬停在程序集 {MyAssembly} 上。在出现的工具提示中,您将看到不同 {MyAssembly.dll} 文件的不同出现的几个路径。
我的解决方案中有一个项目(测试项目),它没有设置为构建和引用许多其他程序集。即使从 NDepend 中取消选择此程序集,它仍然会引发错误。
当我在我的机器上的同一个父目录中有两个版本的解决方案时,我已经看到这种情况发生。
-root
-- solutiona
-- solutionb
我的 NDepend 项目附加到 solutiona 目录中的解决方案。但是,NDepend 是从根目录开始扫描,并在 solutiona 和 solutionb 中查找 dll。我将一份副本从根目录中移出,并且能够继续。
我正在使用 NDepend 4.1.0.6871。较新版本可能不会发生此行为。