Sto cercando di ottenere msbuild per l'output delle informazioni di analisi del codice come fa in VS. Ho una configurazione per il mio progetto chiamato "CodeAnalysis" in VS che è impostato per eseguire l'analisi del codice su build (con il set di regole minimo). Ad ogni modo questo funziona correttamente in VS, ma quando eseguo msbuild dalla riga di comando mostra solo gli avvisi di build di base e non esegue affatto l'analisi del codice. Qualcuno sa perché questo sta accadendo?RunCodeAnalysis = true non funziona nel prompt dei comandi (MSBuild)
configurazione nel file di progetto:
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CodeAnalysis|AnyCPU'">
<OutputPath>bin\</OutputPath>
<CodeAnalysisRuleSet>C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\Rule Sets\MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>true</RunCodeAnalysis>
Riga di comando:
msbuild Solution.sln /p:Configuration=CodeAnalysis /t:Rebuild
Ho anche provato:
msbuild Solution.sln /p:RunCodeAnalysis=true /t:Rebuild
eseguire con registrazione del livello diagnostico (/ fl /flp:v=diag;logfile=diag.log) e cercare il motivo per cui viene saltata la destinazione RunCodeAnalysis. Dovrebbe essere eseguito come dipendenza da PrepareForRun che viene eseguito come dipendenza da CoreBuild. –
Controlla se le proprietà $ (CodeAnalysisPath), $ (CodeAnalysisTargets) sono già impostate e fanno riferimento al percorso di strumenti di analisi del codice valido, in pratica basta stamparle all'interno di uno script – sll
@BrianKretzler Grazie per il suggerimento. C'è qualcosa in particolare che dovrei cercare? Ho trovato il seguente: CoreBuildDependsOn = PrepareForRun; PrepareForRunDependsOn = RunCodeAnalysis; Ho anche notato che all'azione corebuild si dice: Task "CallTarget" saltato, a causa di false condizioni; ('$ (UnloadProjectsOnCompletion)' == 'true') è stato valutato come ('false' == 'true') ..... potrebbe essere correlato? –