tags:

views:

51

answers:

1

Hi all,

I'm trying to develop a custom rule for fxcop.

I've this code :

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

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

I've this xml (named Rules.xml and set build action to embedded ressource)

<?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>

I compile, run fxcop and add rules with this dll .

I can see the "My Rules" folder but in it, there's no rule...

What Am I missing ?

Thanks for your help, Best regards

A: 

See http://msmvps.com/blogs/calinoiu/archive/2007/04/21/no-rules-in-your-fxcop-rule-assembly.aspx for some of the most common problems that lead to missing rules. From the details you've provided, I'm guessing that the problem lies either with your resource name or (if you have pasted your exact code) with the fact that the rule name you're passing to the base constructor does not match your rule type name ("DoTheRightThing" vs "DoTheRightThingRule").

Nicole Calinoiu
thanks for your help, after recreating the project, it's working ...best regards
Tim