2013-05-30 16 views
16

Ich habe eine .cs-Datei von Drittanbietern in meinen Code aufgenommen. Es entspricht nicht den Regeln von StyleCop, aber ich muss es unbedingt aus den StyleCop-Prüfungen ausschließen können, aber keine der Methoden, die ich bisher gefunden habe, funktioniert.Wie kann StyleCop gezwungen werden, eine Datei zu ignorieren?

Drei Methoden werden dokumentiert hier: http://sethflowers.com/blog/force-stylecop-to-ignore-a-file/ .. aber keine dieser Methoden scheint in StyleCop 4.7

Die nützlichste von denen diese Methode in CSPROJ sein schaut zu arbeiten:

<Compile Include="AViolatingFile.cs"> 
    <ExcludeFromStyleCop>true</ExcludeFromStyleCop> 
</Compile> 

Aber Trotz des Hinzufügens der Dateien verursacht StyleCop immer noch einen Kompilierungsfehler beim Parsen dieser Datei.

+0

Warten Sie, haben Sie ** alle ** von ihnen probiert? –

+0

Es ist die ExcludeFromStyleCop-Methode, die ich wirklich arbeiten möchte, da es die einzige praktische Implementierung ist. Die letzten zwei Methoden würden jede Datei ändern, die brechen würde, wenn sie aktualisiert werden. Die zweite Methode hat auch nicht funktioniert. – NickG

+0

Versuchen Sie es mit dem dritten, als ob es funktioniert, es wäre einfach, ein schnelles Programm zu erstellen, um es hinzuzufügen, wenn es geändert wird. –

Antwort

2

I verwendet StyleCop eine Weile zurück, wie gut und ich glaube, Sie haben die folgende Zeile in Ihrer csproj-Datei verwenden:

<Import Project="$(MSBuildExtensionsPath)\StyleCop\v4.6\StyleCop.targets" Condition="Exists('$(MSBuildExtensionsPath)\StyleCop\v4.6\StyleCop.targets')" /> 

Sie müssen auch die Versionsnummer in der XML-Deklaration, was auch immer Sie ändern habe installiert.

Hoffe, das hilft.

+0

Ich habe eine ähnliche Zeile bereits, die ich vermute, macht das gleiche : (Ich verwende nur einen anderen Pfad für die Zieldatei). – NickG

+0

Meine Zeile lautet: '' – NickG

11
// <auto-generated/> 

diese Put an der Spitze der Klasse

Stil cop ignoriert Auto-Code erzeugt

+3

Normalerweise kann Code von Drittanbietern nicht bearbeitet werden oder sollte nicht bearbeitet werden, daher ist dies in diesem Fall nicht sinnvoll. –

+0

exzellent ole chap! – John

1

Atm, ich bin mit StyleCop 4.7.49 von Xamarin Studio, und ich habe einige scheußliche automatisch generierte Datei außerhalb meiner Kontrolle (Blick auf Sie ¬¬ netfx-System.StringFormatWith) ...

Die Lösung für mich war, alle Regeln für nur diese Datei zu deaktivieren ... wie man das macht?

Sie haben die Datei Settings.StyleCop und legen Sie innerhalb des StyleCopSettings-Tag folgende

<SourceFileList> 
    <SourceFile>HideousClass.cs</SourceFile> 
    <Settings> 
     <GlobalSettings> 
     <BooleanProperty Name="RulesEnabledByDefault">False</BooleanProperty> 
     </GlobalSettings> 
    </Settings> 
</SourceFileList> 

ändern HideousClass.cs mit der Datei, die Sie ändern möchten. Sie können auch mehrere SourceFile Tags haben, wenn Sie die Regeln für verschiedene Dateien gleichzeitig festlegen möchten.

Aus Using File Lists at StyleCop at CodePlex.com übernommen (siehe "Alle Regeln für eine Untergruppe von Dateien deaktivieren" unter "Beispiele").

Eine ähnliche Vorgehensweise wie die oben gezeigte kann verwendet werden, wenn Sie einige Regeln nur für einige Dateien aktivieren oder deaktivieren möchten.

Verwandte Themen