program tip

특정 MSBuild 경고를 억제하는 방법

radiobox 2020. 9. 10. 07:35
반응형

특정 MSBuild 경고를 억제하는 방법


명령 줄에서 MSBuild를 실행할 때 특정 MSBuild 경고 (예 : MSB3253)를 비활성화하는 방법이 있습니까? 내 빌드 스크립트는 msbuild.exe를 다음과 같은 방식으로 호출합니다.

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

msbuild.exe에 대한 다른 매개 변수를 사용하여 C # 경고 (예 : CS0618)를 억제 할 수 있음을 발견했습니다.

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

그러나이 접근 방식은 MSBuild 경고에 대해 작동하지 않습니다. 다른 마법 속성을 설정할 수 있습니까?

.NET 3.5 및 VS2008을 사용하고 있습니다.


나는 경고 수준을 억제했습니다. /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

MSDN Forum 의이 스레드에 따르면 MSBuild 경고는 억제 할 수 없습니다.


MSB3253의 경우 이러한 경고를 발생시키는 프로젝트 파일 (* .csproj)에서 설정할 수 있습니다.

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

지금 인터넷 검색을하는 사람들을 위해 (나와 같은) 다가오는 MSBuild 15.0 (Visual Studio 2017과 함께 출시 될 예정)이 마침내 특정 경고를 억제 하는 /NoWarn옵션구현할 것입니다 ( /WarnAsError특정 경고 또는 모든 경고를 오류로 처리). .

참고 URL : https://stackoverflow.com/questions/1023858/how-to-suppress-specific-msbuild-warning

반응형