2011-01-11 9 views
1

Ich teste die FxCop-Automatisierung und möchte sie überprüfen und bestimmte Regeln abfangen. Ich möchte eine DLL erstellen, die den Fehler AvoidCallingProblematicMethods in FxCop auslöst.Wie Sie eine AvoidCallingProblematicMethods-Ausnahme codieren, die in FxCop aufgenommen werden soll?

Ich habe den folgenden Code, aber es löst keine der überhaupt AvoidCallingProblematicMethods Regel. Was mache ich falsch?

// use one of the listed unsafe methods to create a problematic method 
// http://msdn.microsoft.com/en-us/library/bb385973.aspx for list of offending methods 
GC.Collect(); 

Wie kann ich diese FxCop-Regel auslösen?

+1

gleiche Antwort, wählen Sie den richtigen Regelsatz CA2001 zu produzieren. –

Antwort

3

Haben analysieren Sie nicht mit Visual Studio-Code-Analyse, aber mit dem Stand-alone-FxCop?

Wenn ja, wird der Code nicht überprüft, da FxCop unterstützt nicht die AvoidCallingProblematicMethods Regel.

genauer zu sein, FxCop Zuverlässigkeit und Wartungsvorschriften nicht enthalten. Die Regel AvoidCallingProblematicMethods wird als Zuverlässigkeitsregel kategorisiert.

Sie können eine Vergleichstabelle von Codeanalyseregeln unterstützt von VS-Code-Analyse und FxCop von here sehen.

UPDATE

Wie Sie in Pedro Kommentar sehen werden, können Sie diese Regel in FxCop verwenden, wenn Sie VS2010 Codeanalyse-Regeln zu FxCop Regeln Verzeichnis kopieren.

  1. Backup-Baugruppen in FxCop Regeln Verzeichnis ("% Programfiles% \ Microsoft FxCop 10.0 \ Rules" Standard).
  2. Kopieren Baugruppen in "% Programfiles% \ Microsoft Visual Studio 10.0 \ Team-Tools \ Static Analysis Tools FxCop \ Rules \" zu FxCop Regeln Verzeichnis, außer DataflowRules.dll (FxCop nicht Regeln laden von DataflowRules.dll).
+1

Beachten Sie, dass Sie die VS2010-Regeln in FxCop laden können, Sie müssen nur wissen, wo sie installiert sind. Sie sollten sie unter " \ Team Tools \ Statische Analysewerkzeuge \ FxCop \ Rules" finden – Pedro

+0

@Pedro Danke für die Info. Ich kann Zuverlässigkeits- und Wartbarkeitsregeln in FxCop verwenden. –