代码 Analysis/FxCop CA1726:UsePreferredTerms 显示 Cancelled 为 Deprecated

Code Analysis/FxCop CA1726:UsePreferredTerms showing Cancelled as Deprecated

我在英国,我们用两个 L 拼写 Cancelled。我想使用代码分析规则 "CA1726:UsePreferredTerms" 但我不希望它标记 "Cancelled" 为违规。

我已尝试将 <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.

有什么办法可以实现吗?

不是吗:

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

我想您已经知道,没有内置的方法可以实现这一点。覆盖内置自定义词典已 raised before in various forms 得出相同的结论,目前您不能 override/reset 自定义词典。这是一个低优先级项目,因为有一个解决方法,即编辑 visual studio.

附带的 CustomDictionary.xml

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

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

如果您实际上可以使用“.fxcop”项目文件(包括 SearchFxCopDir="False")将 FxCop gui download and install (I couldn't) there may be other workarounds 获取。但是,据我所知,这不会对您的 Visual Studio 体验产生任何影响。