【问题标题】:Stylecop custom rules does not show on settingsStylecop 自定义规则未显示在设置中
【发布时间】:2012-07-03 05:52:51
【问题描述】:

我使用 C# express 2010 创建了自己的 stylecop 自定义规则,但是当我将 .dll 文件放在 stylecop 文件夹中时,它不会在 stylecop 设置列表中显示我的自定义规则,我可能知道这是我的编码问题还是我放错了位置文件?以下是我的 xml 代码,请教

<?xml version="1.0" encoding="utf-8" ?>
<SourceAnalyzer Name="My Custom Rule3">
<Description>
Custom rule for demo purposes.
 </Description>
   <Rules>
    <Rule Name="AvoidUsingAInClassNames" CheckId="CR0001">
      <Context>Do not use 'M' letter in {0} names.</Context>
      <Description>Fires when 'a' letter is used in class name.</Description>
    </Rule>
  </Rules>
</SourceAnalyzer>

【问题讨论】:

  • 您是否将 dll 放在正确的文件夹中? XML 的构建操作应该是嵌入式资源。你能检查一下吗?
  • 嗨 ram,感谢您的评论,我将 stylecop 自定义规则放在 stylecop v4.7 文件夹中,并且我的 xml 将设置更改为嵌入。但它仍然没有显示在我的 stylecop 设置列表中。

标签: c# stylecop


【解决方案1】:

验证 dll 版本。我遇到了同样的问题,因为我使用 4.3 版和 4.7 版开发的规则位于不同的命名空间下:

4.3:

using Microsoft.StyleCop;
using Microsoft.StyleCop.CSharp;

4.7:

using StyleCop;
using StyleCop.CSharp;

【讨论】:

    【解决方案2】:

    XML 文件应该与类文件命名完全相同,所以 MyClass.cs & MyClass.xml

    您还需要确保类库生成 v3.5 .NET DLL 以及使 XML 成为嵌入式资源并将 DLL 放置在 StyleCop 文件夹中。

    【讨论】:

    • 将类库的目标框架从 .NET 4.5 更改为 NET 3.5 对我有用。我正在使用 StyleCop 4.7。谢谢。
    • +1 我从 .NET 4.5 升级到 4.0 认为这可行。没有。只有当我把它降到 3.5 时,我的东西才开始出现。