问题标签 [gendarme]
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.
.net - 让 AssemblyVersion 和 AssemblyFileVersion 匹配是否有充分的理由?
宪兵有AvoidAssemblyVersionMismatchRule
以下描述:
此规则检查当两者都存在于程序集中时是否
[AssemblyVersion]
匹配。[AssemblyFileVersion]
部署应用程序后,两个属性中的版本号不同可能会造成混淆。
例如,此规则将对System.dll
具有以下属性的 Microsoft 发出警告:
我不同意宪兵的规定。遵循它将使您无法使用类似于 Microsoft 使用的版本控制方案,即
- 每个版本的更新
AssemblyFileVersion
, - 仅在公共界面上更改
AssemblyVersion
或其他重大更改, - 确保
AssemblyVersion
并AssemblyFileVersion
共享一个共同的前缀,
而且我认为这种版本控制方案是设计原因,它可以首先区分AssemblyVersion
和AssemblyFileVersion
。
我想不出为什么强制两个程序集属性相等是一个好习惯的原因,但也许你可以!我会对你的意见感兴趣。
如果确实没有充分的理由,我会很快建议宪兵开发人员将规则更改为
当两者都存在于程序集中时,此规则检查
[AssemblyVersion]
和是否具有公共的非空前缀。[AssemblyFileVersion]
fxcop - 你希望 FxCop/宪兵有什么规则?
您希望看到哪些可定义的静态代码检查规则添加到 FxCop 和/或宪兵队?
您为什么希望看到添加的规则,例如有什么好处等?
你的规则如何实施?
gendarme - 宪兵规则定制
有谁知道明确指定宪兵将使用哪些规则的正确方法?或者排除哪些规则?在 Mono 文档中搜索答案,我并没有很高兴。
我要做的是在 Gendarme rules.xml 文件中一一指定规则,如下所示:
这样做,我希望我们可以关闭我们不关心的规则。问题是,在以这种方式指定所有规则之后,与使用 Gendarme 提供的默认方法时相比,我检测到的缺陷数量不同,其形式为:
有没有人这样做过?或者任何人都可以指出一些宪兵规则使用文档的方向吗?
code-analysis - 如何抑制宪兵缺陷?
是否可以抑制特定的宪兵缺陷信息?我想在源代码中使用标志或类似的东西来做到这一点。
.net - fxcop 由于对混淆程序集的引用而失败
我需要在引用混淆商业程序集(来自 dotnetremoting.com)的项目上运行 fxcop。Fxcop 尝试加载经过混淆的程序集但失败了……我遇到了与 Mono Gendarme 完全相同的问题。它还尝试分析引用的程序集并失败。提前感谢您的回复
亚历克斯
c# - ArgumentNullException、索引器和宪兵规则错误
我有索引器并想检查它是否不为空,如果是则抛出 ArgumentNullException,但宪兵设置了警告
InstantiateArgumentExceptionCorrectlyRule:此方法在不指定现有参数名称的情况下引发 ArgumentException(或派生)异常。这可以向开发人员隐藏有用的信息。修复异常参数以使用正确的参数名称(或确保参数的顺序正确)。
如何修复我的索引器?
c# - 宪兵不安全代码检测
任何熟悉 Gendarme 的人都知道是否可以创建一个检测 C# 不安全代码的规则?
visual-studio-2008 - 宪兵忽略列表格式
我正在开发一个 C# 解决方案,我正在使用与 Visual Studio 集成的 Gendarme,以便在编译时输出到错误列表窗口。
我可以在 Gendarme 的源代码和文档中看到,您可以指定一个忽略列表以让 Gendarme 忽略程序集中的某些类,但我一生都无法在网上找到任何显示格式示例的文档此文件需要。
任何人都可以帮忙吗?
.net-4.0 - 无法从 SatelliteResourceMismatchRule 加载文件或程序集...
我们最近将 C# 项目从 .NET 3.5 更新到了 4.0。我们在本地机器和 CC.NET 上运行 Gendarme。在更新了我们所有的项目后,Gendarme 正在为我们的一个程序集收到此错误(打开日志记录):
在多台计算机上发生相同的错误。Gendarme 在引用 System.Drawing 的其他程序集以及引用损坏的程序集的程序集上工作正常。我为宪兵创建了一个配置文件并指定了 .NET 4.0,但我仍然遇到同样的错误。我删除了引用并再次添加它,没有任何变化。如果我运行我们的程序,则此程序集中的控件可以加载并正常工作。我们在这个程序集中进行了单元测试,NUnit 和 PartCover 也运行良好。
我注意到它使用的是 Framework64\v2.0.50727 文件夹中的 machine.config 文件,但我不明白为什么这个程序集会与其他程序集不同。这可能是个问题吗?我还能尝试什么?