/ / Können Sie bedingte Kompilierungssymbole in der Befehlszeile von msbuild.exe deaktivieren? - msbuild, code-analyse, fxcop

Können Sie bedingte Kompilierungssymbole aus der Befehlszeile von msbuild.exe ausschalten? - Msbuild, Code-Analyse, Fxcop

Wir haben CODE_ANALYSIS in unserem C # definiertKomponenten, damit FxCop sie analysiert, wenn wir sie auf unseren Entwicklungsboxen aufbauen. Ich möchte, dass FxCop deaktiviert wird, wenn es durch unser Build-System läuft. Das Buildsystem verwendet offensichtlich den Befehlszeilenbefehl msbuild.exe. Gibt es eine Möglichkeit, die bedingten Kompilierungssymbole aus dieser ausführbaren Datei zu ändern? Wenn nicht, kennt jemand andere mögliche Lösungen für mein Problem (außer das manuelle Deaktivieren)?

Vielen Dank.

Antworten:

5 für die Antwort № 1

Das CODE_ANALYSIS-Kompilierungssymbol steuertob die im Code enthaltenen SuppressMessageAttribute-Instanzen in die kompilierte Assembly kopiert werden. Es steuert nicht, ob FxCop ausgeführt wird. Wenn Sie eine MSBuild-Eigenschaft auf Projektebene wie RunCodeAnalysis (die Bestie, die steuert, ob FxCop unter MSBuild ausgeführt wird) außer Kraft setzen möchten, sollten Sie die Befehlszeilenoption MSBuild.exe / property verwenden können. z.B.:

msbuild.exe <...> /property:RunCodeAnalysis=true

0 für die Antwort № 2

Warum müssen Sie sie ausschalten? Die beste Methode zum Einrichten des Projekts besteht darin, CODE_ANALYSIS nur für Debug-Konfigurationen zu definieren. Für die Release-Version ist dieser Wert nicht festgelegt. Auf diese Weise haben sie beim Erstellen von Produktionsinstallationen keine Verweise auf FxCop.