2009-08-06 7 views
3

Ich führte FxCop auf einem der Projekte, die ich arbeite, und ich habe eine ganze Reihe von Warnungen, die wie folgt aussehen:FxCop Problem mit meiner Verwendung von Formatzeichenfolgen in Ressourcen mit NON-Team System Visual Studio

CA1703: Microsoft.Naming: in Ressource 'MyProject.Properties.Resources.resx', namentlich 'MyString' bezeichnet, korrigieren die Schreibweise 'myyyy' in String-Wert ‚Einige Format-String: {0: dMMMyyyy} '

Da Ressourcen eine generierte Klasse ist, kann ich diese Nachrichten nicht einfach mit dem normalen Mechanismus unterdrücken. Hat jemand gute Ideen, wie ich dieses Problem umgehen kann?

bearbeiten: Nur um die Dinge klar (wie ich war nicht bewusst, dass dies mit Team System anders war), ich habe Interesse an nicht-Team Systemlösungen - insbesondere für MS Visual Studio Pro 2008

Antwort

3

ich für Ressourcen endete deaktivieren Rechtschreibprüfung durch die neutrale Sprache der Anordnung nichts Einstellung das heißt in AssemblyInfo.cs, ich habe diese Zeile hinzugefügt:

[assembly: NeutralResourcesLanguage("")] 

Dies als here vorgeschlagen.

3

Wenn die Namensregeln nicht auf Ressourcen angewendet werden sollen, deaktivieren Sie diese Regel in den Projekteinstellungen.

  1. Rechtsklick auf das Projekt im Projektbaum
  2. Klicken Sie auf "Eigenschaften"
  3. Gehen Sie auf die Registerkarte "Code Analysis"
  4. den Zweig erweitern "Namenskonventionen"
  5. Disable CA1703

Wenn Sie nur bestimmte Ressourcen unterdrücken möchten, können Sie sie in der globalen Unterdrückungsdatei unterdrücken. Dies ist normalerweise mit der rechten Maustaste in der Fehlerliste des Visual Studios möglich.

  1. Rechtsklick auf den CA-Nachricht (en) in der Fehlerliste
  2. Wählen Sie "Unterdrückt Nachrichten (s)"
  3. Wählen Sie "Im Projekt Unterdrückung File"
+0

Können Sie vielleicht einige Beispiele zeigen? – jpoh

+0

Ich habe die Schritte hinzugefügt, die Sie ausführen müssen. –

+0

Danke dafür. Wie sich herausstellt, verwende ich Visual Studio Pro und nicht Team System, so dass Option zwei nicht so gut für mich funktioniert. Ich habe diese Problemumgehung jedoch gefunden: http://geekswithblogs.net/michelotti/archive/2006/01/11/65548.aspx Kennen Sie bessere Optionen für Visual Studio Pro? – jpoh

1

Statt off des Drehens die Regel für das gesamte Projekt oder manuell auszuschließen alle Verstöße, können Sie die Analyse des generierten Codes deaktivieren, unter:

+1

Nein, das ist nicht die Lösung. Es beschwert sich nicht über den generierten Code, er beschwert sich über einen Ressourcennamen. Es gibt auch Regeln für Ressourcen. –

+0

Sie haben Recht. Das würde * alle * Ressourcenüberprüfungen deaktivieren. Ich denke, du bist dabei, die Regeln manuell auszuschließen: folge Stefans zweitem Vorschlag oder schließe sie in der FxCop-Projektdatei aus. Wenn diese Frage http://stackoverflow.com/questions/353110/exclude-complete-namespace-from-fxcop-code-analysis jemals richtig beantwortet wird, könnten Sie das verwenden ... –

+0

Nein, es deaktiviert nichts auf Ressourcen bei alle, trotz der generierten Ressourcen –

1

F xCop (Standalone) und die integrierte Code-Analyse unterstützen beide die Verwendung eines Benutzerwörterbuchs.

Erstellen Sie eine Datei mit dem Namen CustomDictionary.xml. Fügen Sie die folgende XML-Struktur mit den neuen Wörtern (ohne Beachtung der Groß-/Kleinschreibung) unter dem Knoten hinzu.

<Dictionary> 
    <Words> 
     <Recognized> 
       <Word>aNewWord</Word> 
       <Word>AnotherNewWord</Word> 
     </Recognized> 
    </Words> 
</Dictionary> 

Um das Wörterbuch mit allen Projekten, legen Sie die Datei in der FxCop Installationsverzeichnis (: \ Program Files \ Microsoft FxCop in der Regel C) zu verwenden. Bei projektspezifischen Wörterbüchern legen Sie die Datei zusammen mit der Projektdatei in einem separaten Verzeichnis ab. Damit die Wörter erkannt werden, müssen Sie FxCop schließen und neu starten, nachdem Sie das Benutzerwörterbuch erstellt oder geändert haben. Sie können die Datei auch in ein Visual Studio-Projekt einschließen und die Eigenschaft der Buildaktionsdatei auf CodeAnalysisDictionary festlegen.