如何:隱藏編譯器警告
適用于:![]()
Visual Studio Visual Studio for Mac
Visual Studio Code
您可以簡化組建記錄檔,方法是篩選掉一或多個類型的編譯器警告。 例如,您可能只想檢閱當您將組建記錄檔詳細等級設定為 [一般]、[詳細資料] 或 [診斷] 時所產生的部分輸出。 如需詳細資訊的詳細資訊,請參閱 如何:檢視、儲存及設定組建記錄檔。
隱藏 Visual C# 或 F# 的特定警告
使用 Build 屬性來隱藏 C# 和 F# 專案的特定警告。
在方案總管中,選擇您想要隱藏警告的專案。
以滑鼠右鍵按一下專案節點,然後選擇操作功能表上的 [ 屬性 ]。 或者,選取專案節點,然後按Alt+Enter鍵。
選擇 [建置],然後移至 [錯誤和警告] 子區段。
在 [ 隱藏警告 ] 或 [ 隱藏特定警告 ] 方塊中,指定您想要隱藏之警告的錯誤碼,並以分號分隔。 如需警告代碼的清單和描述,請參閱 C# 編譯器訊息。
重建方案。
在方案總管中,選擇您想要隱藏警告的專案。
以滑鼠右鍵按一下專案節點,然後選擇操作功能表上的 [ 屬性 ]。 或者,選取專案節點,然後按Alt+Enter鍵。
選擇 [ 建 置] 頁面或區段,如果您位於目前的 UI 中,請開啟 [錯誤和警告] 子區段。
在 [ 隱藏警告 ] 或 [ 隱藏特定警告 ] 方塊中,指定您想要隱藏之警告的錯誤碼,並以分號分隔。 如需警告代碼的清單和描述,請參閱 C# 編譯器訊息。
重建方案。
注意
無法隱藏某些警告。 如需這些清單,請參閱 NoWarn 編譯器選項。
隱藏 C++ 的特定警告
使用 [組態屬性] 屬性頁隱藏 C++ 專案的特定警告。
在方案總管中,選擇您想要隱藏警告的專案或原始程式檔。
在功能表列上,選擇 [檢視>屬性頁]。
選擇 [組態屬性] 分類,並選擇 [C/C++] 分類,然後選擇 [進階] 頁面。
請執行下列其中一個步驟:
在 [停用特定警告] 方塊中,指定您想要隱藏並以分號分隔之警告的錯誤碼。
在 [停用特定警告] 方塊中,選擇 [編輯] 以顯示其他選項。
選擇 [確定] 按鈕,然後重建方案。
隱藏 Visual Basic 的警告
編輯專案的 .vbproj 檔案,即可隱藏 Visual Basic 的特定編譯器警告。 若要依「類別」隱藏警告,您可以使用編譯屬性頁。 如需詳細資訊,請參閱在 Visual Basic 中設定警告。
隱藏 Visual Basic 的特定警告
此範例將示範如何編輯 .vbproj 檔案,以隱藏特定編譯器警告。
在方案總管中,選擇您想要隱藏警告的專案。
在功能表列上,選擇[Project>Unload Project]。
在方案總管中,開啟專案的滑鼠右鍵或快捷方式功能表,然後選擇[編輯 < ProjectName.vbproj >]。
隨即在程式碼編輯器中開啟 XML 專案檔。
找出您正在建置之建置組態的
<NoWarn>元素,並新增一或多個警告編號作為<NoWarn>元素的值。 如果您指定多個警告編號,則請以逗號予以分隔。下列範例示範 x86 平台上偵錯組建組態的
<NoWarn>元素,並隱藏了兩個編譯器警告:<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> <PlatformTarget>x86</PlatformTarget> <DebugSymbols>true</DebugSymbols> <DebugType>full</DebugType> <Optimize>false</Optimize> <OutputPath>bin\Debug\</OutputPath> <DefineDebug>true</DefineDebug> <DefineTrace>true</DefineTrace> <ErrorReport>prompt</ErrorReport> <NoWarn>40059,42024</NoWarn> <WarningLevel>1</WarningLevel> </PropertyGroup>注意
.NET Core 專案不包含預設的組建組態屬性群組。 若要隱藏.NET Core 專案中的警告,請手動將組建組態區段加入至檔案中。 例如:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp2.0</TargetFramework> <RootNamespace>VBDotNetCore_1</RootNamespace> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <NoWarn>42016,41999,42017</NoWarn> </PropertyGroup> </Project>將變更儲存至 .vbproj 檔案。
在功能表列上,選擇[Project>重新載入Project]。
在功能表列上,選擇 [建置>重建方案]。
[輸出] 視窗不會再顯示您所指定的警告。
如需詳細資訊,請參閱 Visual Basic 命令列編譯器的 /nowarn 編譯器選項。
隱藏 NuGet 套件的警告
在某些情況下,您可能想要隱藏單一 NuGet 套件的 NuGet 編譯器警告,而不是整個專案。 警告皆有其用途,因此不建議在專案層級隱藏它。 例如,其中一個 NuGet 警告會告訴您套件可能無法完全與您的專案相容。 如果您在專案層級隱藏警告,且隨後新增其他的 NuGet 套件,您將無法知道它是否已產生相容性警告。
隱藏單一 NuGet 套件的特定警告
在 [方案總管] 中,選取您想要隱藏編譯器警告的 NuGet 套件。


從右鍵功能表或操作功能表中,選擇 [屬性]。
在封裝屬性的 [ 隱藏警告 ] 方塊中,輸入您要針對此套件隱藏的警告編號。 如果您想要隱藏多個警告,請使用逗號分隔警告數字。


警告會從 [方案總管] 和 [錯誤清單] 中消失。 在專案檔中,會設定 NoWarn 屬性。
<PackageReference Include="NuGet.Build.Tasks.Pack" Version="6.2.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <NoWarn>NU5104</NoWarn> </PackageReference>