1

我正在尝试为 fxcop 开发自定义规则。

我有这个代码:

namespace TestCustomRuleFxCop
{
    public class DoTheRightThingRule : BaseIntrospectionRule
    {
        public DoTheRightThingRule()
            : base("DoTheRightThing", "TestCustomRuleFxCop.Rules", 
                    typeof(DoTheRightThingRule).Assembly)
        {
        }

        public override ProblemCollection Check(Member member)
        {
            return null; // todo
        }
    }
}

我有这个 xml(命名为 Rules.xml 并将构建操作设置为嵌入式资源)

<?xml version="1.0" encoding="utf-8" ?>
<Rules FriendlyName="My rules">
  <Rule TypeName="DoTheRightThingRule" Category="MyCategory" CheckId="MyId">
    <Name>My rule name</Name>
    <Description>My description</Description>
    <Resolution>Add Resolution</Resolution>
    <Email></Email>
    <MessageLevel Certainty="100">Warning</MessageLevel>
    <FixCategories>Breaking</FixCategories>
  </Rule>
</Rules>

我用这个 dll 编译、运行 fxcop 并添加规则。

我可以看到“我的规则”文件夹,但其中没有规则......

我错过了什么?

感谢您的帮助,最好的问候

4

1 回答 1

1

请参阅http://msmvps.com/blogs/calinoiu/archive/2007/04/21/no-rules-in-your-fxcop-rule-assembly.aspx,了解一些导致规则缺失的最常见问题。根据您提供的详细信息,我猜问题出在您的资源名称上,或者(如果您粘贴了确切的代码)您传递给基本构造函数的规则名称与您的不匹配规则类型名称(“DoTheRightThing”与“DoTheRightThingRule”)。

于 2009-11-17T13:03:59.293 回答