web-dev-qa-db-fra.com

Comment supprimer un avertissement MSBuild spécifique

Existe-t-il un moyen de désactiver l'avertissement MSBuild spécifique (par exemple MSB3253) lors de l'exécution de MSBuild à partir de la ligne de commande? Mon script de construction appelle msbuild.exe de la manière suivante:

msbuild.exe MySolution.sln /t:Rebuild /p:Configuration=Release

J'ai découvert que je peux supprimer les avertissements C # (par exemple CS0618) en utilisant un autre paramètre pour msbuild.exe:

msbuild.exe MySolution.sln /t:Rebuild /p:Configuration=Release /p:NoWarn=0618

Cependant, cette approche ne fonctionne pas pour les avertissements MSBuild. Peut-être qu'il y a une autre propriété magique à définir?

J'utilise .NET 3.5 et VS2008.

88
Andrew

J'ai réussi à supprimer le niveau d'avertissement avec /p:WarningLevel=X

msbuild.exe MySolution.sln /t:Rebuild /p:WarningLevel=0 /p:Configuration=Release
                                      ^^^^^^^^^^^^^^^^^
Warning  
Level    Meaning
-------- -------------------------------------------
      0  Turns off emission of all warning messages.

      1  Displays severe warning messages

      2  Displays level 1 warnings plus certain, less-severe warnings, such
         as warnings about hiding class members

      3  Displays level 2 warnings plus certain, less-severe warnings, such 
         as warnings about expressions that always evaluate to true or false

      4  (the default) Displays all level 3 warnings plus informational warnings
53
Yag

Pour MSB3253, vous pouvez simplement définir dans le fichier de projet (* .csproj) un tel avertissement.

  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <!-- some code goes here -->
    <ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
        None
    </ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
    <!-- some code goes here -->
  </PropertyGroup>
30
Stanislav Berkov

Selon this thread dans le MSDN Forum, les avertissements MSBuild ne peuvent pas être supprimés.

30
Albic

Pour ceux qui recherchent cela maintenant (comme moi): le prochain MSBuild 15.0 (qui sera publié avec Visual Studio 2017, je suppose) va enfin implémenter le /NoWarn option pour supprimer des avertissements spécifiques (ainsi que /WarnAsError pour traiter des avertissements spécifiques ou tous les avertissements comme des erreurs).

10
EM0