代码分析/FxCop CA1726:UsePreferredTerms 显示已取消为已弃用

Posted

技术标签:

【中文标题】代码分析/FxCop CA1726:UsePreferredTerms 显示已取消为已弃用【英文标题】:Code Analysis/FxCop CA1726:UsePreferredTerms showing Cancelled as Deprecated 【发布时间】:2015-05-14 08:45:45 【问题描述】:

我在英国,我们用两个 L 拼写 Cancelled。我想使用代码分析规则“CA1726:UsePreferredTerms”,但不想将“已取消”标记为违规。

我已尝试将<CodeAnalysisCulture>en-GB</CodeAnalysisCulture> 添加到项目文件中以鼓励代码分析使用英式拼写法

我已尝试将 <Recognized><Word>Cancelled</Word></Recognized> 添加到项目 CustomDictionary.xml 中

我并不热衷于每次使用取消这个词时都添加抑制。

我想要一个可以签入源代码控制的解决方案,以供其他开发人员使用,所以我不想更改我的本地 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\Static Analysis Tools\FxCop\CustomDictionary.xml

我正在使用 Visual Studio 2013。

有什么方法可以实现吗?

【问题讨论】:

【参考方案1】:

我怀疑您已经知道,没有内置的方法可以实现这一点。覆盖内置自定义字典已在various forms 中覆盖raised before,结论相同,目前您无法覆盖/重置自定义字典。这是一个低优先级的项目,因为有一个解决方法,即编辑 Visual Studio 附带的CustomDictionary.xml

如果您在构建过程中使用FxCopCmd 进行分析,那么似乎可行的一个选项是将“FxCop”文件夹复制到一个文件夹(例如 Tools\FxCop)中您签入的项目。然后,您的构建过程可以使用此可执行文件,而不是“程序文件”中的 on。由于复制的文件夹中包含默认的 CustomDictionary.xml,因此您可以将其作为源代码控制项目的一部分进行编辑。可以从 Visual Studio 做类似的事情,但我看不出有明显的方法来改变它从哪里运行代码分析。

根据您的工作设置和开发方法,更简单的解决方案可能只是将所有开发人员机器上安装的 Visual Studio 的“CustomDictionary.xml”重命名为“CustomDictionary.xml.bak”并复制其中的内容(减去您不想要的位)到您的解决方案“CustomDictionary.xml”中。这将使您完全控制。显然这并不理想,因为它会影响您在机器上工作的所有项目,因此您可能必须多次添加自定义字典,当然每个开发人员都必须处理它,但是可以修改您的构建过程以检查默认 CustomDictionary 的存在并提醒开发人员他们需要重命名它才能使构建正常工作。

如果您实际上可以将 FxCop gui 获取到 download and install(我做不到),那么可能还有其他 workarounds 使用“.fxcop”项目文件,包括 SearchFxCopDir="False"。但是,据我了解,这不会对您的 Visual Studio 体验产生任何影响。

【讨论】:

【参考方案2】:

不是吗:

<Dictionary>
  <Words>
     <Unrecognized>
          <Word>Cancelled</Word>
     </Unrecognized>
  </Words>
</Dictionary>

【讨论】:

这不会从代码分析识别为正确拼写的术语列表中排除“已取消”吗?这与我想要实现的目标相反。

以上是关于代码分析/FxCop CA1726:UsePreferredTerms 显示已取消为已弃用的主要内容,如果未能解决你的问题,请参考以下文章

代码分析 (FXCop) 命令行差异

FxCop - CA1034 错误 - 为啥?

通过生成参数验证来修复 FxCop CA1062

WPF 应用程序:Microsoft.Maintainability#CA1506 签名无效 FxCop 违规

为啥 FxCop 会在此 C# 代码中发出有关溢出 (CA2233) 的警告?

FXCop 违规 CA1716 IdentifiersShouldNotMatchKeyword