webentwicklung-frage-antwort-db.com.de

Unterdrücken einer bestimmten MSBuild-Warnung

Gibt es eine Möglichkeit, bestimmte MSBuild-Warnungen (z. B. MSB3253) zu deaktivieren, wenn MSBuild über die Befehlszeile ausgeführt wird? Mein Build-Skript ruft msbuild.exe folgendermaßen auf:

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

Ich habe herausgefunden, dass ich C # -Warnungen (z. B. CS0618) mit einem anderen Parameter für msbuild.exe unterdrücken kann:

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

Dieser Ansatz funktioniert jedoch nicht für MSBuild-Warnungen. Vielleicht gibt es eine andere magische Eigenschaft zu setzen?

Ich benutze .NET 3.5 und VS2008.

88
Andrew

Ich habe es geschafft, die Warnstufe mit /p:WarningLevel=X Zu unterdrücken.

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

Für MSB3253 können Sie einfach in der Projektdatei (* .csproj) festlegen, dass eine solche Warnung verursacht wird.

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

Laut this Thread im MSDN Forum können MSBuild-Warnungen nicht unterdrückt werden.

30
Albic

Für diejenigen, die dies jetzt googeln (wie ich): Das kommende MSBuild 15.0 (das vermutlich mit Visual Studio 2017 veröffentlicht wird) wird endlich die Option /NoWarn Implementieren spezifische Warnungen unterdrücken (wie sowie /WarnAsError, um entweder bestimmte Warnungen oder alle Warnungen als Fehler zu behandeln).

10
EM0