42

如何让 FxCop 自定义词典正常工作?

我尝试将要识别的单词添加到文件“CustomDictionary.xml”中,该文件与 FxCop 项目文件保存在同一文件夹中。这似乎不起作用,因为即使在重新加载并重新运行 FxCop 之后,我仍然会收到“标识符应拼写正确”的 FxCop 消息。使用版本 1.36。

4

8 回答 8

29

如果你在 Visual Studio 中使用它...

来自Visual Studio 代码分析团队博客

将自定义字典添加到 C# 和 Visual Basic 项目很简单:

  1. 在解决方案资源管理器中,右键单击项目并选择添加 -> 新项目...
  2. 在 Templates 下,选择 XML File,输入字典的名称,例如 CodeAnalysisDictionary.xml,然后单击 Add
  3. 在解决方案资源管理器中,右键单击 XML 文件并选择属性
  4. 在 Properties 工具窗口中,在 Build Action 下选择 CodeAnalysisDictionary
  5. 在解决方案资源管理器中,双击新创建的字典将其打开
  6. 在 XML 编辑器中,粘贴以下内容,将“productname”和“companyname”替换为您团队的等效项:

    <Dictionary>
         <Words>
            <Recognized>
                <Word>"productname"</Word>
                <Word>"companyname"</Word>
            </Recognized>
        </Words>
    </Dictionary>
    

您现在可以开始输入您自己的自定义词了。只需为项目中字典中不存在的每个单词添加一个新元素。每个单词都不区分大小写,因此单词的任何大小写都会被识别。代码分析将在下次运行时自动选择自定义字典。

于 2009-01-15T11:33:34.770 回答
17

最简单的方法是将其命名为“CustomDictionary.xml”并将其放入您的解决方案文件夹中,如果您有,FxCop(此处测试为 1.36)将自动获取它

<CustomDictionaries SearchFxCopDir="True"
                    SearchUserProfile="True"
                    SearchProjectDir="True" />

在您的 FxCop 项目文件中。

或者,您可以通过/dictionary命令行参数指定它。

于 2009-04-07T15:31:49.897 回答
4

据我所知,FxCop 1.35 及更高版本使用两个字典来源。

  • Microsoft Office 字典(通过 MS Word 等添加单词应该可以)
  • 存储在FxCop 程序文件夹而不是项目文件夹中的“CustomDictionary.xml”文件。
于 2008-12-16T12:54:03.323 回答
4

我在构建过程中运行 FxCopCmd.exe,在这里我传递了字典命令行参数

FxCopCmd.exe ... /dictionary:FxCopDictionary.xml

这项工作与视觉工作室 2010 RC 版本的 FxCop 一起工作。不知道它是否适用于以前的版本。

于 2010-04-12T08:35:34.817 回答
3

除了上面大卫施密特的回答,您可能需要从 FxCop 安装文件夹中更改/删除 FxCop 附带的自定义字典。

我刚刚安装了 FxCop v1.36,直到我删除了C:\Program Files\Microsoft FxCop 1.36\CustomDictionary.xml.

有一次,我将它移到一侧,FxCop 开始使用CustomDictionary.xml解决方案文件夹中的 。

这确实引出了一个问题,即如何将常用词添加到共享自定义词典和其他自定义词典中的项目/解决方案特定词,并实际让 FxCop 使用这两者。但现在它正在工作......

于 2009-11-25T12:06:39.593 回答
2

我为上述大多数答案而苦苦挣扎,并一直在寻找解决方案。我终于对我的 .fxcop 文件进行了更改并将其签入源代码管理,它可以从命令行和 gui fxcop

我改变了这条线

<CustomDictionaries SearchFxCopDir="True" SearchUserProfile="True" SearchProjectDir="True" />

<CustomDictionaries SearchFxCopDir="True" SearchUserProfile="True" SearchProjectDir="True" >
  <CustomDictionary Path="$(ProjectDir)/CustomDictionary.xml"/>
</CustomDictionaries>
于 2014-06-24T13:55:56.820 回答
1

还要确保文件确实是*.xml而不是*.xml.txt. 然后觉得用记事本创建文件并忘记它总是添加一个txt扩展名感到很傻。原来对我来说就是这样。

于 2012-06-08T23:41:59.303 回答
0

我不必将Build Action设置为CodeAnalysisDictionary。事实上,我什至没有这个选项(使用 Visual Studio 2010 Professional)。我正在使用FxCop Integrator扩展。它允许您右键单击解决方案并选择代码分析。另一个选项是更多任务。在More Tasks菜单中可以编辑Edit FxCop Dictionary。当我执行编辑时,它创建了一个名为Code Analysis的新解决方案文件夹,其中包含一个名为FxCopDictionary.xml的新 XML 文件。这个 XML 文件的设置正如人们所期望的那样CustomDictionary.xml文件看起来像。

希望这可以帮助那里的人!

于 2012-10-07T17:22:46.967 回答