Code de désactivation de l'Analyse de Certains Projets à l'aide de MSBuild
J'ai hérité d'un fichier de solution qui utilise un script MSBuild pour compiler plusieurs solutions. La majorité des projets sont configurés avec l'analyse et les ensembles de règles et j'ai un peu de tests unitaires des projets qui ne le sont pas.
Projets avec l'analyse de la tournée sur:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineConstants>CODE_ANALYSIS;DEBUG;TRACE</DefineConstants>
<Optimize>false</Optimize>
<OutputPath>bin\Debug</OutputPath>
<PlatformTarget>x86</PlatformTarget>
<CodeAnalysisRuleSet>..\OurRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>true</RunCodeAnalysis>
</PropertyGroup>
Projets avec l'analyse éteint:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<Optimize>false</Optimize>
<OutputPath>bin\Debug</OutputPath>
<PlatformTarget>x86</PlatformTarget>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
Quand je lance mon script de construction, il semble que certains projets ne sont pas en respectant les paramètres du projet:
msbuild.exe BuildScript.proj /p:SolutionRoot=%cd%; /p:Configuration=Debug /p:Platform:x86 /p:RunCodeAnalysis=True
Lorsque je vérifie le dossier de sortie, je vois analyse de la couverture xml sorties pour les projets qui ont le RunCodeAnalysis indicateur a la valeur false. Quelqu'un peut-il m'aider à comprendre ce qui se passe ici?
OriginalL'auteur bryanbcook | 2011-06-18
Vous devez vous connecter pour publier un commentaire.
J'ai compris cela, peu de temps après la publication.
Build d'équipe prend en charge les valeurs suivantes pour RunCodeAnalysis: Toujours, par Défaut, Jamais.
En revanche, localement MSBuild prend en charge Vrai ou Faux pour RunCodeAnalysis.
Pourquoi sont-ils différents? En la regardant, le Microsoft.TeamFoundation.Construire.les objectifs de fichier, le message suivant apparaît:
Ces paramètres sont ensuite répercutées sur les msbuild, quand on compile le fichier de solution.
Donc, en d'autres mots:
Toujours indique MSBuild pour compiler tous les projets avec RunCodeAnalysis=True
Jamais indique MSBuild pour supprimer de l'analyse de code (RunCodeAnalysis=False) sur tous les projets.
...et ne pas spécifier de valeur pour RunCodeAnalysis signifie que MSBuild respecter les RunCodeAnalysis paramètre dans le fichier de projet. Par conséquent, la par défaut réglage.
Il suffit de retirer le /p:RunCodeAnalysis de ma question initiale a eu le bon résultat. Les projets qui ont de l'analyse allumé, exécutez une analyse de code. Projets sans le paramètre de ne pas effectuer de travail supplémentaire.
Plus d'informations à ce sujet est disponible ici: http://www.bryancook.net/2011/06/build-server-code-analysis-settings.html
OriginalL'auteur bryanbcook
Changement:
:
... et voir si cela résout votre problème. Les valeurs valides pour
RunCodeAnalysis
sont soit {Default
,Always
,Never
} ou {True
,False
}, en fonction de la façon dont vous construisez.Voir: l'Article 12 de la Comment: Modifier un Type de Build pour plus d'info.
Aussi, voir cet article pour plus d'incohérences dans les paramètres de RunCodeAnalysis, selon la façon dont vous construisez: Incompatible RunCodeAnalysis valeurs
OriginalL'auteur Michael Goldshteyn