问题标签 [ndepend]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ndepend - NDepend:如何不在依赖图中显示“层”程序集?
通过转到工具->选项并设置哪些程序集将成为分析的一部分(并忽略其余部分),我能够在早期版本的 nDepend 中做到这一点。最新版本的 nDepend 试用版让我可以设置它,但它似乎忽略了设置并总是分析所有程序集,无论我是否想要它。我试图通过将“层”程序集移到“应用程序程序集”列表中来删除它们,但是当我将它们从那里删除时,它们只会被添加回“层”列表,这是我无法忽略的。
我不希望我的依赖关系图包含像“system”、“system.xml”和“system.serialization”这样的程序集!我只想要依赖图中的我的程序集!还是现在是付费版功能?
有没有办法做我所说的?
ndepend - 使用 NDepend 的程序集依赖
我在我的机器上安装了 .NET 2.0 和 .NET 4.0。我编写了一个小的 .NET 2.0 程序(仅包含一行控制台输出)。当我使用 NDepend 检查程序集依赖项时,它显示我的程序依赖于 .NET 4.0 程序集(mscorlib 4.0)而不是 .NET 2.0 程序集(mscorlib 2.0)。
谢谢,
蚂蚁
properties - 如何使用 NDepend 找到哪些属性获取器有副作用?
使用 VisualStudio 的一个常见问题是对属性 getter 的神秘调用。如果这些有副作用(最常见的形式是if (foo == null) foo = new foo(); return foo;
),那么调试器 Locals 和 Watch 窗口调用属性的事实 - 甚至没有遇到任何断点 - 可能会在调试时导致意想不到的效果。
有一个简单的解决方案:只需用属性标记属性
那么如何在大型代码库中找到可能有副作用的 getter 呢?
NDepend是此类事情的首选工具:使用它的 CQL 语言,我可以找到所有属性,例如,直接更改其包含实例的状态:
这只会找到那些直接改变字段的getter:我怎样才能找到间接改变它的getter,例如通过调用一个Initialize()
方法?
c# - 如何以编程方式创建 NDepend 项目文件?
首先,这可能是一个有用的链接:http ://www.ndepend.com/NDependConsole.aspx
用过 Visual NDepend 的人都知道,使用 NDepends 需要导入项目/解决方案文件,并将相应的输出目录、命名空间和程序集添加到 NDepends 项目中。
我遇到的问题是,我有大量的这些项目和解决方案要添加。坐在那里 45 分钟点击添加 300 个解决方案似乎很荒谬。必须有一种方法可以从这些解决方案/项目文件的路径列表中创建 NDepend 项目文件。
我的第一个想法是找到与 NDepends 相同的信息(输出目录、使用的命名空间和输出可执行文件 dll 等),并以编程方式将 NDepend 项目创建为一个大字符串。然而,这似乎是不必要的工作。
如果有一种方法可以调用命令行并以特定项目为目标,而不是输出目录,那就太好了,因为有些项目有 PostBuild 任务将程序集复制到不同的目录,有些项目将输出目录指定为向上的相对路径( ie ....),因此假设项目的输出目录与其所在的目录相同是不安全的。
有任何想法吗?
c# - 我可以使用 NDepend 来计算演员表吗?
我有一些继承的代码倾向于将对象作为接口传递(例如,IFoo),然后在代码中的任意位置,自发地将它们转换为这些接口的具体实现(例如,MyConcreteFoo)。
这是一个愚蠢的例子:
我想做的是编写一个 NDepend CQL 查询来获取这些类型的强制转换,并给我每个方法、每个类型或任何东西的计数。只是为了让我知道我可以从哪里开始集中精力摆脱这种特殊的愚蠢品牌,而不是让我的团队在代码中钻研随机寻找演员表......
有谁知道是否有办法做到这一点?我猜不是(不可能有太多人需要那个特定功能)但我想我会先在这里问...... :-)
当然,任何其他关于如何加快施法狩猎速度的想法都将受到同样的赞赏。
.net - NDepend - 检测间接依赖的库
我做了以下示例项目:
SubClassLibrary - 不使用除 .Net Framework 之外的任何其他 DLL
ClassLibrary - 这确实使用 SubClassLibrary
主程序 - 这直接使用 ClassLibrary
如果我在主程序的解决方案上运行 NDepend,它只检测到对“ClassLibrary”的依赖,而不是对“SubClassLibrary”的依赖(通过 ClassLibrary)
当我将“ClassLibrary”移动到“Application Assemblies”(在 NDepend 的项目设置中)时,找到了依赖项。
有没有其他方法可以解决“子”依赖?
谢谢,约翰内斯
ndepend - NDepend 不能自动拾取新的参考程序集
我有一个在自动构建过程中使用的 NDepend 项目。当开发人员向项目中添加更多程序集时,NDepend 无法自动获取和分析该程序集。只有当我手动添加到 NDepend 项目中时,我才能看到新的程序集。如何在 NDepend 项目中进行配置,以便它能够自动获取新的参考程序集并进行分析。无论如何要这样做还是我在使用 NDepend 时有什么问题?
谢谢,
蚂蚁。
.net - NDepend - 几个 .NET 程序集的名称为 {MyAssembly} 但它们不同
我刚刚开始使用 NDepend 并正在尝试分析解决方案。
当我添加解决方案的程序集时会出现此警告,它不会加载任何带有警告的程序集:
无法加载程序集 {MyAssembly}:几个 .NET 程序集的名称为 {MyAssembly},但它们不同:...项目中包含此程序集的 .dll 列表
这可能是什么原因造成的?我正在使用一个通用的 AssemblyInfo.cs 文件以及标准文件来设置一些通用属性,但这些属性之间没有冲突。
ndepend - 使用 CQL 查找实现特定方法的类型
我正在改进 NDEpend 中内置的死代码查询,并且从独立程序(即 w/ Main() 入口点)中发现了很多误报。
我注意到内置的未使用类型查询有这个子句:
是不是不可能写出类似的东西
反而?这才是我真正想要选择的。
c# - 如何找到仅由测试调用的代码
有时我在看一些代码,我搜索一个方法的用法(使用 resharper),发现它只被测试调用。所以它实际上是多余的,我可以删除它和调用它的方法。
显然,将未使用的代码放在该地方是没有意义的,这会减慢构建和测试运行的速度。我想要的是一个工具,它可以告诉我只有测试才能访问的所有生产代码位在哪里。
我有一个完整版的 resharper,还有一个试用版的 NDepend,但还没有找到如何使用其中任何一个来获得我想要的结果(无需付费)。我怀疑完整版的 NDepend 可能是可能的,但是人们还知道其他工具吗?
如果上下文有帮助,解决方案是 ASP.net 网站,其大部分功能由 WCF 服务处理。因此,大部分代码的唯一有效入口点是服务方法。测试在他们自己的单独项目中。
我开始了赏金,因为我确信其他人以前一定有过并解决了这个问题!