Domanda

I've created a Fxcop custom rule and defined the xml file. When I add the custom rule assembly in Fxcop GUI it is not showing the rule. Please find below the related info:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.FxCop.Sdk;

namespace TestCustomRules
{
    public class TestRule : BaseIntrospectionRule
    {
        public TestRule() : base("TestRule", "TestCustomRules.TestRules", typeof(TestRule).Assembly) { }

        public override ProblemCollection Check(Member member)
        {
            Problems.Add(new Problem(new Resolution("TEST Rule {0}", "Chill out")));
            return Problems;
        }
    }
}

The xml file:

<?xml version="1.0" encoding="utf-8" ?>
<Rules FriendlyName="Test Rules">
  <Rule TypeName="TestRule" Category="TestRule" CheckId="TR1000">
    <Name>Test Rule</Name>
    <Description>Test Rule</Description>
    <Owner>Vibgy Joseph</Owner>
    <Url />
    <Resolution>This is just a test rule.</Resolution>
    <Email />
    <MessageLevel Certainty="99"> Warning</MessageLevel>
    <FixCategories> Breaking </FixCategories>
  </Rule>
</Rules>

Following is the info displayed in Fxcop when I add it. Please note that the Total Children is 0.

FxCop Rule Assembly c:\users\vibgy.j\documents\projects\01_common\testcustomrules\testcustomrules\bin\debug\testcustomrules.dll
{
    Checked              : True   (Boolean)
    Children             : Count == 1  (NodeBaseDictionaryCollection)
    Container            : Count == 10  (NodeBaseDictionary)
    DefaultCheckState    : True   (Boolean)
    DisplayName          : TestCustomRules.dll  (String)
    FileIdentifier       : C:\Users\vibgy.j\Documents\Projects\01_Common\TestCustomRules\TestCustomRules\bin\Debug\TestCustomRules.dll  (String)
    FileName             : C:\Users\vibgy.j\Documents\Projects\01_Common\TestCustomRules\TestCustomRules\bin\Debug\TestCustomRules.dll  (String)
    FullyQualifiedName   : C:\Users\vibgy.j\Documents\Projects\01_Common\TestCustomRules\TestCustomRules\bin\Debug\TestCustomRules.dll  (String)
    HasChildren          : True   (Boolean)
    HasMessages          : True   (Boolean)
    ImageIndex           : 1  (Int32)
    LoadExceptions       : Microsoft.FxCop.Common.ExceptionCollection  (ExceptionCollection)
    LocalFileName        : TestCustomRules.dll  (String)
    Messages             : Count == 0  (MessageStatusNodeBaseMessageDictionary)
    Metadata             : <null>  (Object)
    Name                 : c:\users\vibgy.j\documents\projects\01_common\testcustomrules\testcustomrules\bin\debug\testcustomrules.dll  (String)
    Rules                : Count == 0  (RuleDictionary)
    Status               : New  (NodeStatus)
    TotalChildren        : 0  (Int32)
    TotalChildrenChecked : 0  (Int32)
    Version              : 1.0.0.0  (String)
}
È stato utile?

Soluzione

Oops! I've missed to set the property 'Build Action' for xml file to 'Embedded Resource'. Now it's getting displayed in Fxcop.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top