Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V sadě Visual Studio můžete určit, která upozornění chcete potlačit, zadáním kódů upozornění v Návrháři projektu (stránky vlastností projektu). Upozornění můžete také potlačit nastavením určitých vlastností přímo v souboru projektu, přes příkazový řádek nebo v kódu, pokud chcete potlačit upozornění pouze v jednom umístění.
Některé kompilátory a nástroje sestavení mají také možnosti určit úroveň upozornění. Díky tomu můžete řídit kategorie upozornění pomocí jednoho nastavení. Tyto možnosti najdete v dokumentaci ke konkrétnímu jazyku a kompilátoru, který používáte:
- úrovně upozornění v jazyka C#
- V C++ úrovně upozornění
Pokud je vaším cílem zobrazit v protokolu sestavení výstižnější a zaměřený výstup, můžete změnit úroveň podrobností protokolu sestavení. Dostupná nastavení jsou normální, podrobná, nebo diagnostická. Další informace o podrobnostech najdete v tématu Postupy: Zobrazení, uložení a konfigurace souborů protokolu sestavení.
Opatrnost
Všimněte si, že upozornění jsou určená jako označení potenciálního problému s vaším kódem, takže byste měli rozumět rizikům zakázání konkrétního upozornění. Nastavení sady Visual Studio zakazuje upozornění na úrovni projektu. Možná budete chtít použít cílenější přístup k zakázání upozornění, než poskytuje Visual Studio. Většina kompilátorů poskytuje způsoby, jak zakázat upozornění jenom pro určité řádky kódu, abyste mohli upozornění stále zkontrolovat, pokud se vyskytují jinde ve stejném projektu.
Potlačení konkrétních upozornění pro Visual C# nebo F#
Pomocí vlastností Sestavení potlačíte určitá upozornění pro celý projekt jazyka C# a F#. Pokud chcete potlačit upozornění pouze v konkrétní části kódu v jazyce C#, použijte #pragma upozornění. Pro jazyk F# použijte #nowarn direktivu preprocesoru k zakázání upozornění pro celý zdrojový soubor.
V Průzkumníku řešenízvolte projekt, ve kterém chcete potlačit upozornění.
Klikněte pravým tlačítkem myši na uzel projektu a v místní nabídce zvolte Vlastnosti. Nebo vyberte uzel projektu a stiskněte Alt+Enter.
Zvolte Sestavenía přejděte do pododdílu Chyby a upozornění.
V poli Potlačit upozornění nebo Potlačit konkrétní upozornění zadejte kódy chyb upozornění, která chcete potlačit, oddělená středníky. Pro seznam a popisy kódů upozornění se podívejte na Zprávy kompilátoru C#.
Znovu sestavte řešení.
V Průzkumníku řešenízvolte projekt, ve kterém chcete potlačit upozornění.
Klikněte pravým tlačítkem myši na uzel projektu a v místní nabídce zvolte Vlastnosti. Nebo vyberte uzel projektu a stiskněte Alt+Enter.
Zvolte stránku nebo oddíl Sestavení a pokud jste v aktuálním uživatelském rozhraní, otevřete pododdíl Chyby a varování .
V poli Potlačit varování nebo Potlačit konkrétní varování zadejte chybové kódy pro varování, která chcete potlačit, oddělené středníky. Seznam a popisy kódů upozornění najdete v části Zprávy kompilátoru C#.
Znovu sestavte řešení.
Poznámka
Některá upozornění nelze potlačit. Pro seznam těchto možností viz kompilátorová možnost NoWarn.
Potlačení konkrétních upozornění pro C++
Upozornění v projektu C++ můžete potlačit pomocí vlastností projektu; pomocí stránky vlastností Konfigurace můžete pro celý projekt C++ potlačit konkrétní upozornění. Upozornění v konkrétních souborech můžete také potlačit pomocí #pragma warning
. Tento článek popisuje řízení na úrovni projektu, ale pokud je vaším záměrem zakázat upozornění v určitém souboru nebo jen kolem několika řádků kódu, ale chcete pokračovat v zobrazení dalších výskytů stejného upozornění, měli byste zvážit použití #pragma warning
. Viz #pragma upozornění.
V Průzkumníka řešenízvolte projekt nebo zdrojový soubor, ve kterém chcete potlačit upozornění.
Na řádku nabídek zvolte Zobrazit>Stránky vlastností.
Zvolte kategorii Vlastnosti konfigurace, zvolte kategorii C/C++ a pak zvolte stránku Upřesnit.
Proveďte jeden z následujících kroků:
Do pole Zakázat konkrétní upozornění zadejte kódy chyb upozornění, která chcete potlačit, oddělená středníkem.
V poli Zakázat konkrétní upozornění zvolte Upravit, aby se zobrazily další možnosti.
Zvolte tlačítko OK a pak řešení znovu sestavte.
Pokud je upozornění z jiného nástroje, projděte si dokumentaci ke konkrétnímu nástroji a zjistěte, jak můžete potlačit upozornění pro tento nástroj. Například linker C++ obsahuje některá upozornění, která můžete zakázat pomocí možnosti /IGNORE
linkeru. Viz /IGNORE (ignorovat konkrétní upozornění) a k nastavení této možnosti viz /link (předat možnosti linkeru).
Potlačení upozornění pro Visual Basic
Konkrétní upozornění kompilátoru pro Visual Basic můžete skrýt úpravou souboru .vbproj
projektu. Chcete-li potlačit upozornění podle kategorie , můžete použít stránku vlastností Kompilace . Pokud chcete zakázat upozornění v konkrétní části souboru kódu, použijte #Disable a #Enable direktivy. Další informace naleznete v tématu Konfigurace upozornění v jazyce Visual Basic.
Potlačení konkrétních upozornění pro celý projekt jazyka Visual Basic
V tomto příkladu se dozvíte, jak upravit soubor .vbproj
a potlačit konkrétní upozornění kompilátoru.
V Průzkumníku řešenízvolte projekt, ve kterém chcete potlačit upozornění.
V nabídkové liště zvolte Project>Unload Project.
V Průzkumníku řešeníotevřete místní nabídku projektu pravým tlačítkem myši a pak vyberte Upravit <ProjectName>.vbproj.
Soubor projektu XML se otevře v editoru kódu.
Vyhledejte prvek
<NoWarn>
pro konfiguraci sestavení, kterou používáte, a přidejte jedno nebo více čísel varování jako hodnotu prvku<NoWarn>
. Pokud zadáte více čísel upozornění, oddělte je čárkou.Následující příklad ukazuje prvek
<NoWarn>
pro konfiguraci sestavení debug na platformě x86 se dvěma potlačenými upozorněními kompilátoru:<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>
Poznámka
Projekty .NET Core ve výchozím nastavení neobsahují skupiny vlastností konfigurace sestavení. Pokud chcete potlačit upozornění v projektu .NET Core, přidejte do souboru ručně oddíl konfigurace sestavení. Například:
<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>
Uložte změny do souboru
.vbproj
.Na řádku nabídek zvolte Projekt>Aktualizovat projekt.
Na řádku nabídek zvolte Sestavit>Znovu sestavit řešení.
Okno Výstup už nezobrazuje upozornění, která jste zadali.
Další informace najdete v přepínači /nowarn pro kompilátor příkazového řádku jazyka Visual Basic.
Můžete potlačit varování pro jednotlivá varování nebo podle kategorie. Prostředí se liší v závislosti na tom, jestli pracujete s projektem rozhraní .NET Framework nebo s projektem .NET Core (nebo .NET 5 a novějším).
Pokud chcete zakázat upozornění v konkrétní části souboru kódu, použijte direktivy #Disable a #Enable. Další informace naleznete v tématu Konfigurace upozornění v jazyce Visual Basic.
Projekty .NET 5 nebo novější
Soubor projektu můžete upravit tak, aby potlačit konkrétní upozornění kompilátoru diagnostickými kódy, nebo můžete potlačit upozornění podle kategorie pomocí Návrháře projektu. Pokud chcete otevřít návrháře projektu, vyberte uzel projektu, klikněte pravým tlačítkem myši a zvolte Vlastnostinebo stiskněte Alt+Enter.
V části Kompilace zvolte Upozornění. V části Závažnost upozorněnímůžete zvolit Nastavit závažnost upozornění jednotlivě. Kategorie se zobrazí a máte možnost nastavit každou kategorii na Žádné pro zakázání kategorie upozornění nebo na Upozornění či Chyba pro její povolení buď jako upozornění, nebo chybu.
Projekty rozhraní .NET Framework
Konkrétní upozornění kompilátoru pro Visual Basic můžete skrýt úpravou souboru .vbproj
projektu. Chcete-li potlačit upozornění kategorie , můžete použít stránku vlastností Kompilace .
Potlačení konkrétních upozornění pro celý projekt jazyka Visual Basic
V tomto příkladu se dozvíte, jak upravit soubor .vbproj
a potlačit konkrétní upozornění kompilátoru.
V Průzkumníku řešenízvolte projekt, ve kterém chcete potlačit upozornění.
(.NET) Poklikáním na uzel projektu otevřete soubor projektu.
(.NET Framework) Na panelu nástrojů zvolte Project>Unload Project. Potom v Průzkumníku řešení otevřete místní nabídku projektu pravým tlačítkem myši a pak zvolte Upravit <ProjectName>.vbproj.
Soubor projektu MSBuild se otevře v editoru kódu. Toto je soubor XML.
Vyhledejte prvek
<NoWarn>
pro konfiguraci sestavení, pro kterou sestavujete, a přidejte jedno nebo více čísel upozornění jako hodnotu elementu<NoWarn>
. Pokud zadáte více čísel upozornění, oddělte je čárkou.Následující příklad ukazuje prvek
<NoWarn>
pro konfiguraci sestavení Debug na platformě x86 se dvěma potlačenými upozorněními kompilátoru:<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>
Poznámka
Projekty .NET Core a .NET 5 a novější ve výchozím nastavení neobsahují skupiny vlastností konfigurace sestavení. Pokud chcete potlačit upozornění v projektu .NET Core, přidejte do souboru ručně oddíl konfigurace sestavení. Například:
<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>
Uložte změny do souboru
.vbproj
.Na řádku nabídek zvolte Project>Znovu načíst projekt.
Na řádku nabídek zvolte Sestavit>Znovu sestavit řešení.
Okno Výstup už nezobrazuje upozornění, která jste zadali.
Další informace najdete v /nowarn kompilátor kompilátoru příkazového řádku jazyka Visual Basic.
Potlačení upozornění úpravou souboru projektu
Použití návrháře vlastností sady Visual Studio k potlačení upozornění způsobí změnu souboru projektu. Někdy může být vhodnější soubor projektu ručně upravit, aby se splnil úkol zakázání upozornění. Soubor projektu zpracovává nástroj MSBuild, modul sestavení Microsoftu. Viz MSBuild.
V sadě Visual Studio 2019 verze 16.7 a starších verzích navíc není možné potlačovat některá upozornění z jiných nástrojů než kompilátoru jiným způsobem.
Pokud chcete otevřít soubor projektu v editoru sady Visual Studio, klikněte pravým tlačítkem myši na uzel projektu a zvolte Upravit soubor projektu. Některé typy projektů vyžadují, abyste projekt před úpravou souboru projektu odložili. Pokud potřebujete projekt uvolnit, klikněte pravým tlačítkem myši na uzel projektu a zvolte Uvolnit projekt.
V nové části
PropertyGroup
použijte vlastnostNoWarn
. Uveďte chyby, které chcete potlačit, oddělené čárkami nebo středníky. Pro upozornění kompilátoru můžete vynechat kód jazyka a zadat pouze číslo, ale pro přehlednost doporučujeme použít celý kód. Pro upozornění z jiných nástrojů v sestavení zadejte úplný kód, včetně předpony (napříkladMSB
pro upozornění vystavená samotným nástrojem MSBuild).Následující kód přidá do seznamu potlačené upozornění CS0028 a CS0618:
<PropertyGroup> // Other properties <NoWarn>$(NoWarn);CS0028;CS0618</NoWarn> </PropertyGroup>
Odkazování na předchozí hodnotu
$(NoWarn)
, jak je znázorněno v předchozím příkladu, přičte tato čísla k libovolné dříve nastavené hodnotě proNoWarn
, místo jeho přepsání.
Podívejte se na NoWarn.
Potlačení upozornění z příkazového řádku sestavení
Pokud vytváříte projekt z příkazového řádku, můžete také potlačit upozornění pomocí -warnAsMessage
na příkazovém řádku MSBuild. Použijte uvozovky v seznamech více kódů upozornění.
MSBuild.exe -warnAsMessage="CS0028;CS0618" MyProject.csproj
Viz referenci příkazového řádku MSBuild.
Potlačení upozornění pro všechny projekty a řešení v adresářové struktuře
Upozornění pro mnoho projektů najednou můžete potlačit, pokud jsou všechny pod společným adresářem v systému souborů pomocí souboru MSBuild Directory.Build.props. Viz Přizpůsobení sestavení podle adresáře. Pokud například umístíte následující soubor Directory.Build.props do kořenové složky s mnoha řešeními a projekty, můžete potlačit zadaný seznam upozornění pro všechny projekty v této složce a rekurzivně do složek v ní.
<Project>
<PropertyGroup>
<NoWarn>$(NoWarn);CS0028;CS0618</NoWarn>
</PropertyGroup>
</Project>
Potlačení upozornění nástroje
Způsob potlačení upozornění z jiných nástrojů než kompilátoru, například MSBuild, závisí na tom, jaký typ projektu máte a jakou verzi nástroje MSBuild používáte.
S MSBuild 16.8 a novějšími v projektech, které používají sadu SDK nebo standardní importy, můžete potlačit upozornění nástroje pomocí stejných metod popsaných výše. Musíte zadat úplný kód chyby (včetně předpony, jako je MSB
pro MSBuild), nejen čísla, jako je možné s upozorněním kompilátoru. Také zpráva není eliminována; pořád se zobrazuje jako informační zpráva, ale byla z upozornění degradována.
S MSBuild 16.7 a staršími a v jakémkoli projektu, který nepoužívá sadu SDK nebo standardní importy, nejsou tato upozornění potlačována pomocí NoWarn
. V takových případech je vlastnost, kterou můžete použít k potlačení upozornění nástroje, MSBuildWarningsAsMessages
. Upozornění sestavení můžete potlačit úpravou souboru projektu nebo zadáním možnosti MSBuildWarningsAsMessages
na příkazovém řádku MSBuild. Při použití MSBuildWarningsAsMessages
použijte úplný kód chyby MSBuild, včetně předpony MSB
.
<PropertyGroup>
<MSBuildWarningsAsMessages>$(MSBuildWarningsAsMessages);MSB3270</MSBuildWarningsAsMessages>
</PropertyGroup>
Všimněte si, že některá upozornění nástroje MSBuild nelze potlačit nastavením MSBuildWarningsAsMessages
. Pokud je chcete zakázat, použijte možnost příkazového řádku warnAsMessage
.
Některá upozornění mají také konkrétní vlastnosti, které můžete nastavit tak, aby se upozornění zakázalo. Například MSB3253
je zakázán nastavením vlastnosti:
<PropertyGroup>
<ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
None
</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
</PropertyGroup>
Pokud je to možné, použijte explicitnější vlastnost, protože kód chyby sám o sobě není tak snadno srozumitelný. Stránka s referenčními informacemi o chybě pro tento kód obvykle obsahuje vlastnost, která se používá k jeho zakázání.
Potlačení upozornění pro balíčky NuGet
V některých případech můžete chtít potlačit upozornění kompilátoru NuGet pro jeden balíček NuGet místo pro celý projekt. Upozornění slouží k účelu, takže ho nechcete potlačit na úrovni projektu. Například jedno z upozornění NuGetu říká, že balíček nemusí být plně kompatibilní s vaším projektem. Pokud ho potlačíte na úrovni projektu a později přidáte další balíček NuGet, nikdy byste nevěděli, jestli vytváří upozornění kompatibility.
Chcete-li potlačit konkrétní upozornění pro jeden balíček NuGet
V Průzkumníka řešenívyberte balíček NuGet, pro který chcete potlačit upozornění kompilátoru.
Z kontextové nabídky nebo kliknutí pravým tlačítkem vyberte Vlastnosti.
Do pole Potlačit upozornění ve vlastnostech balíčku zadejte číslo upozornění, které chcete pro tento balíček potlačit. Pokud chcete potlačit více než jedno upozornění, oddělte čísla upozornění čárkou.
Upozornění zmizí z průzkumníka řešení a seznamu chyb . V souboru projektu je vlastnost NoWarn nastavena.
<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>
Potlačte upozornění analýzy kódu
Diagnostické zprávy s kódy začínajícími CA
jsou porušení analýzy kódu a upozornění, která se liší od upozornění kompilátoru probíraných v tomto článku. Upozornění analýzy kódu můžete potlačit různými způsoby, včetně použití značek specifických pro weby a pro projekt nebo globálně pomocí konfiguračních souborů pravidel. Viz Potlačení upozornění analýzy kódu a Potlačení porušení analýzy kódu.