2012-03-27 16 views
7

Recentemente ho iniziato a utilizzare l'analisi del codice sui miei progetti in Visual Studio. Ho creato un set di regole personalizzato da utilizzare con tutti i miei progetti che includono due dei set di regole definiti da Microsoft. Ho lavorato per integrare FxCop nel processo di compilazione degli elementi di configurazione in fail build che non passano tutte le regole. Ciò che è veramente strano per me è che non posso usare il mio set di regole per definire quali regole FxCop esegue la scansione del codice. Come faccio a fare in modo che le regole di Code Analysis di Visual Studio corrispondano alle regole di FxCop?FxCop e regole di analisi del codice

+0

Mi manca completamente qualcosa o non c'è davvero alcun modo per condividere le stesse regole in FxCop standalone e Code Analysis in Visual Studio? !!!! – Chris

+0

Sembra che manchi qualcosa. Come stai tentando di eseguire FxCop dal tuo build CI? –

+0

Lo sto usando usando TeamCity, che esegue FxCopCmd.exe. Ho un file di progetto FxCop che elenca gli obiettivi e le regole di elenchi FxCop standalone ma non sembra essere un modo semplice per condividere le stesse regole che Code Analysis è impostata per l'utilizzo in Visual Studio. Tutto funziona, non sembra proprio esserci un modo per condividere regole tra FxCop standalone e Analisi del codice in VS2010. – Chris

risposta

8

Hai già un file di regole che presumo tu abbia capito come integrare nei tuoi progetti e utilizzare tramite Visual Studio.

È possibile utilizzare questo stesso file set di regole in FxCopCmd.exe:

FxCopCmd.exe /out:Violations.xml /ruleset:=Custom.ruleset /file:MyAssembly.dll 

Ho fatto questo utilizzando Jenkins e funziona bene. Esegui FxCopCmd.exe senza argomenti e dovresti vedere le descrizioni di tutte le opzioni della riga di comando disponibili.

+1

Molto strano, ho avuto un sacco di problemi nel trovare la documentazione per l'opzione/ruleset ma ha funzionato. Per fortuna, mi mancava qualcosa :-). – Chris

+1

Puoi fare un esempio per la sintassi del file ruleset. Non ho avuto molta fortuna a farlo funzionare. – mikelong

+0

@mikelong: la sintassi per l'utilizzo dei file delle serie di regole è visualizzata nella mia risposta. Qual è in particolare il tuo problema? – Bernard

3

Per la nostra build CI abbiamo una configurazione di build speciale (oltre a Debug e Release standard) che include l'analisi del codice in esecuzione ("RunCodeAnalysis" MSBuild come ricordo) e l'opzione "Trattare avviso come errore". Quindi la compilazione fallisce se abbiamo un errore FxCop e usa la stessa serie di regole di VS. In questo modo non è necessario utilizzare FxCopCmd e condividere i set di regole. Ma devi aggiungere manualmente questa configurazione di build a ogni progetto della tua soluzione.

Problemi correlati