RunCodeAnalysis=true ne travaillant pas dans l'invite de commande (MSBuild)
Je vais essayer d'obtenir msbuild à la sortie de l'analyse de code info comme il le fait dans VS. J'ai une configuration pour mon projet appelé "CodeAnalysis" VS, qui est mis en place pour exécuter l'analyse du code de construction (avec le minimum de jeu de règles). De toute façon cela fonctionne bien dans VS, mais quand je lance msbuild à partir de la ligne de commande, il ne montre que la génération de base mises en garde et il ne veut pas exécuter l'analyse du code à tous. Quelqu'un sait pourquoi ce qui se passe?
De Configuration dans le fichier projet:
<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>
Ligne de commande:
msbuild Solution.sln /p:Configuration=CodeAnalysis /t:Rebuild
J'ai aussi essayé:
msbuild Solution.sln /p:RunCodeAnalysis=true /t:Rebuild
- exécutez le diagnostic du niveau d'enregistrement (/fl /flp:v=diag;logfile=diag.journal) et de rechercher pourquoi le RunCodeAnalysis cible est ignorée. Il doit être exécuté en tant que dépendance de PrepareForRun qui est géré comme une dépendance de CoreBuild.
- Vérifier si les propriétés de $(CodeAnalysisPath), $(CodeAnalysisTargets) déjà établi et le référencement de la validité de l'analyse du code de l'outillage chemin, tout simplement de les imprimer à l'intérieur d'un script
- Merci pour l'astuce. Est-il quelque chose en particulier que je devrais être en train de chercher? J'ai trouvé le suivant: CoreBuildDependsOn = PrepareForRun; PrepareForRunDependsOn = RunCodeAnalysis; j'ai aussi remarqué que lors de la corebuild action, il dit: Tâche "CallTarget" sauté, à cause de faux état; ('$(UnloadProjectsOnCompletion)'=='true') a été évaluée comme ('false'=='true').....cela pourrait-il être lié?
- CodeAnalysisPath n'a pas été correctement mise en place de l'annuaire de FxCop. Réglage il a résolu mon problème. Seul problème maintenant est qu'il génère ~3000 avertissements au lieu de ~200 lors de l'utilisation de VS. J'ai le jeu de règles définies (CodeAnalysisRuleSet est réglé correctement). Des idées? Merci à vous deux pour votre aide jusqu'à présent.
- Votre chemin de sortie de contenir à la fois vos propres montages et la "copie locale" assemblys référencés de vos projets? Si oui, il pourrait être en cours d'exécution sur tous
- La réponse à [Comment forcer MSBuild pour exécuter l'Analyse de Code sans avoir à recompiler][1] peut être la réponse à votre question. [1]: stackoverflow.com/questions/26034558/...
Vous devez vous connecter pour publier un commentaire.
Par défaut, MSBuild utilise la valeur configurée dans le fichier de projet, mais vous pouvez le remplacer sur le
msbuild
de ligne de commande à l'aide de l'argumentde toujours exécuter l'analyse de code. Inversement, l'utilisation
pour désactiver l'analyse du code.
Voir aussi:
true
etfalse
lorsqu'il est passé à MsBuild.Vous devez disposer de Visual Studio est installé sur la machine. Il y a beaucoup de scripts qui sont inclus via csproj ligne:
Comme vous l'avez VS (de la bonne édition) installé, il va inclure FxCop objectifs de fichier et le début de l'Analyse de Code pour vous.
Une fois que j'ai été confronté au même problème, j'ai commencé par l'obtention d'une (trop) journal détaillé et courante dans un fichier que je puisse les inspecter:
Dans ce fichier, j'ai remarqué que le Code cible de l'Analyse a été ignorée car RunCodeAnalysisOnThisProject a été évaluée à vrai. Ainsi, dans le csproj, j'ai inclus la ligne suivante dans le cadre du premier groupe de la propriété:
qui l'a fait pour moi.