2010-11-30 6 views
11

This has been asked, mais n'a pas reçu de réponse. La réponse (utiliser /warn:1) ne fonctionne pas pour msbuild.exe, seulement csc.exe. Peut-être qu'il me manque quelque chose entre csc et msbuild?comment puis-je supprimer tous les avertissements d'analyse de compilateur et de code de msbuild à la ligne de commande?

Je voudrais supprimer tous les avertissements du compilateur et des avertissements d'analyse de code (par exemple « La variable « variableNameHere » est affectée, mais sa valeur ... » ou Analyse du code Avertissement: CA1805: Microsoft.Performance: ..) lorsque j'utilise la ligne de commande msbuild. Je ne veux pas modifier le fichier de solution. Il y a plusieurs centaines de messages d'avertissement dans la très grande solution que je suis en train de construire - les corriger est loin de la portée de mon projet. J'ai essayé /v:quiet mais cela n'a pas fonctionné.

Y a-t-il un moyen de le faire via la ligne de commande?

Mise à jour: ceci:

C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe C:\Dev\ReallyBigSolution.sln /p:NoWarn=true /p:NoWarn=CA1031

Absolument ne fonctionne pas. Je reçois toujours des centaines d'avertissements, y compris celui que j'ai spécifiquement bloqué (CA1031).

L'utilisation de /p:RunCodeAnalysis=Never ou /p:RunCodeAnalysis=false ne semble pas supprimer les avertissements ou les erreurs d'analyse de code.

+0

Je me demande où il n'y a pas d'interface utilisateur pour MSBuild? On dirait qu'il pourrait vraiment en utiliser un. Deviner à différents paramètres est une perte de temps. – jcollum

+0

Vous n'avez pas besoin de deviner. Utilisez VS, modifiez les propriétés du projet (onglet build ou onglet d'analyse de code), puis observez les modifications qui persistent dans le fichier .csproj. Le point entier de msbuild est d'être un outil de ligne de commande. – Brian

+0

@Brian: J'ai regardé les pages de propriétés de csproj et ne vois rien à propos de ces avertissements d'analyse de code. Je pense que je vais abandonner. Gaspiller trop de temps à ce sujet. Je pensais que ce serait facile, juste une ligne de commande me manquait. – jcollum

Répondre

11

peut utiliser nowarn drapeau sur le compilateur, ce qui correspond à <NoWarn> propriété dans le fichier .csproj. Alors peut-être msbuild /p:NoWarn="37;68" va désactiver ces numéros d'avertissement (ne l'ai pas essayé).

Ou utiliser

http://msdn.microsoft.com/en-us/library/13b90fz7.aspx

pour désactiver les avertissements tout à fait. Je ne connais pas le nom de la propriété, essayez /p:Warn=0.

Éditer: lire les commentaires vers la fin; semble vraiment se débarrasser de tous ces avertissements n'est pas possible.

+0

Oui, je pense que cela fonctionne. Mais cela signifie trouver tous les numéros d'avertissement que je reçois. Je voudrais juste dire «ne se soucient pas des avertissements» et en finir avec ça. – jcollum

+0

Mis à jour ma réponse. – Brian

+0

mise à jour: essayé/p: NoWarn = true et/p: NoWarn = CA1051 - pas de bons résultats. Encore obtenir une tonne d'autres avertissements. – jcollum

0

On dirait qu'il est not possible ...

Warnings with MSB prefix are thrown by MSBuild. Currently, we can't suppress MSBuild warnings.

+0

S'applique à certains mais pas à tous: Des choses comme CS0219 (La variable 'xxxxxx' est assignée mais sa valeur n'est jamais utilisée) ne sont pas des erreurs MSBuild je pense. – jcollum

+0

Ceci est un avertissement du compilateur, pas un avertissement MSB. Est-ce que vous passez des arguments ... avez-vous vérifié cela ... http: //social.msdn.microsoft.com/Forums/en-US/msbuild/thread/94ae238b-e755-4023-a6cb-c113df841c82/ –

+0

Oui J'ai lu ça. Implique de modifier la solution, c'est pourquoi j'ai précisé que je ne voulais pas modifier le fichier .sln dans la question. Ce que je demande est probablement impossible/sadface – jcollum

1

J'ai essayé et ne peut pas supprimer les avertissements non plus, à moins que je les énumérer sur le/propriété NOWARN pour msbuild.exe

4

Essayez ceci:

msbuild.exe C:\Dev\BigSolution.sln /p:WarningLevel=0 /p:RunCodeAnalysis=false 
9

Je sais que c'est un ancien poste mais il m'a mis sur la bonne voie et en ajoutant ce qui suit à mon appel msbuild il a supprimé tous les avertissements et la sortie comme il a construit le projet. J'ai ceci dans un fichier séquentiel de sorte que la seule sortie que je reçois je crois sont les résultats finaux et tous les messages que je demande avec écho. Le secret était dans le commutateur/clp. Donc j'ai regardé ça et j'ai mis tous ceux qui suppriment la sortie.Chacun s'est débarrassé de plus, mais il y avait encore les avertissements jaunes à venir et quand j'ai ajouté le commutateur ErrorsOnly, il n'y avait plus de sortie.

call msbuild /clp:NoSummary;NoItemAndPropertyList;ErrorsOnly /verbosity:quiet /nologo 
+0

Merci, cela fonctionne parfaitement. – Czenda

Questions connexes