Delen via


Compilerwaarschuwingen onderdrukken

Met Visual Studio kunt u opgeven welke waarschuwingen u wilt onderdrukken door de waarschuwingscodes op te geven in projectontwerper (projecteigenschapspagina's). U kunt waarschuwingen ook onderdrukken door bepaalde eigenschappen rechtstreeks in het projectbestand in te stellen, via de opdrachtregel of in code als u een waarschuwing op slechts één locatie wilt onderdrukken.

Sommige compilers en buildhulpprogramma's hebben ook opties om het waarschuwingsniveau op te geven. Hiermee kunt u categorieën waarschuwingen beheren met één instelling. Zie de documentatie voor de specifieke taal en compiler die u gebruikt voor deze opties:

Als u beknoptere en gerichtere uitvoer in uw buildlogboek wilt zien, kunt u de uitgebreidheid van het buildlogboek wijzigen. De beschikbare instellingen zijn Normaal, Gedetailleerdeof Diagnostische. Voor meer informatie over uitvoerigheid, zie Hoe te: Build-logboekbestanden weergeven, opslaan en configureren.

Voorzichtigheid

Houd er rekening mee dat waarschuwingen bedoeld zijn om een indicatie te zijn van een mogelijk probleem met uw code, dus u moet de risico's begrijpen van het uitschakelen van een bepaalde waarschuwing. Visual Studio-instellingen schakelen waarschuwingen op projectniveau uit. Mogelijk wilt u een meer gerichte benadering gebruiken om waarschuwingen uit te schakelen dan Visual Studio biedt. De meeste compilers bieden manieren om waarschuwingen alleen voor bepaalde coderegels uit te schakelen, zodat u de waarschuwingen nog steeds kunt bekijken als ze ergens anders in hetzelfde project voorkomen.

Specifieke waarschuwingen onderdrukken voor Visual C# of F#

Gebruik de eigenschappen Build om specifieke waarschuwingen voor een volledig C#- en F#-project te onderdrukken. Als u een waarschuwing alleen in een bepaald deel van de code in C# wilt onderdrukken, gebruikt u #pragma waarschuwing. Gebruik voor F# #nowarn preprocessorrichtlijn om een waarschuwing voor een volledig bronbestand uit te schakelen.

  1. Kies in Solution Explorerhet project waarin u waarschuwingen wilt onderdrukken.

  2. Klik met de rechtermuisknop op het projectknooppunt en kies Eigenschappen in het contextmenu. Of selecteer het projectknooppunt en druk op Alt+Enter.

  3. Kies Builden ga naar de subsectie Fouten en waarschuwingen.

  4. Geef in het vak Waarschuwingen onderdrukken of Specifieke waarschuwingen onderdrukken de foutcodes op van de waarschuwingen die u wilt onderdrukken, gescheiden door puntkomma's. Zie C#-compilerberichtenvoor een lijst en beschrijvingen van waarschuwingscodes.

  5. Bouw de oplossing opnieuw.

  1. Kies in Solution Explorerhet project waarin u waarschuwingen wilt onderdrukken.

  2. Klik met de rechtermuisknop op het projectknooppunt en kies Eigenschappen in het contextmenu. Of selecteer het projectknooppunt en druk op Alt+Enter.

  3. Kies de pagina of sectie Build, en als u zich in de huidige gebruikersinterface bevindt, opent u de subsectie fouten en waarschuwingen.

  4. Geef in het vak Waarschuwingen onderdrukken of Specifieke waarschuwingen onderdrukken de foutcodes op van de waarschuwingen die u wilt onderdrukken, gescheiden door puntkomma's. Zie C#-compilerberichtenvoor een lijst en beschrijvingen van waarschuwingscodes.

  5. Bouw de oplossing opnieuw.

Notitie

Sommige waarschuwingen kunnen niet worden onderdrukt. Zie NoWarn-compileroptievoor een lijst met deze opties.

Specifieke waarschuwingen voor C++ onderdrukken

U kunt waarschuwingen in een C++-project onderdrukken met behulp van de projecteigenschappen; U gebruikt de pagina Configuratie-eigenschappen eigenschappen om specifieke waarschuwingen voor een volledig C++-project te onderdrukken. U kunt ook waarschuwingen in specifieke bestanden onderdrukken met behulp van #pragma warning. In dit artikel wordt het besturingselement op projectniveau besproken, maar als u een waarschuwing in een bepaald bestand of slechts een paar regels code wilt uitschakelen, maar u andere exemplaren van dezelfde waarschuwing wilt blijven zien, kunt u overwegen om #pragma warningte gebruiken. Zie #pragma warning.

  1. Kies in Solution Explorerhet project- of bronbestand waarin u waarschuwingen wilt onderdrukken.

  2. Kies in de menubalk Eigenschappenpagina's weergeven>.

  3. Kies de categorie Configuratie-eigenschappen, kies de categorie C/C++ en kies vervolgens de pagina Geavanceerd.

  4. Voer een van de volgende stappen uit:

    • Geef in het vak Specifieke waarschuwingen uitschakelen de foutcodes op van de waarschuwingen die u wilt onderdrukken, gescheiden door een puntkomma.

    • Kies in het vak Specifieke waarschuwingen uitschakelenBewerken om meer opties weer te geven.

  5. Kies de knop OK en bouw vervolgens de oplossing opnieuw.

Als de waarschuwing afkomstig is van een ander hulpprogramma, raadpleegt u de documentatie voor het specifieke hulpprogramma om erachter te komen hoe u waarschuwingen voor dat hulpprogramma kunt onderdrukken. De C++-linker bevat bijvoorbeeld enkele waarschuwingen die u kunt uitschakelen met behulp van de optie /IGNORE linker. Zie /IGNORE (Specifieke waarschuwingen negeren) en om deze optie in te stellen, raadpleegt u /link (Opties doorgeven aan de linker).

Waarschuwingen voor Visual Basic onderdrukken

U kunt specifieke compilerwaarschuwingen voor Visual Basic verbergen door het .vbproj-bestand voor het project te bewerken. Als u waarschuwingen door de categoriewilt onderdrukken, kunt u de pagina "Compilatie-eigenschappen" gebruiken. Als u een waarschuwing in een specifiek deel van een codebestand wilt uitschakelen, gebruikt u #Disable en #Enable instructies. Zie Waarschuwingen configureren in Visual Basicvoor meer informatie.

Specifieke waarschuwingen voor een volledig Visual Basic-project onderdrukken

In dit voorbeeld ziet u hoe u het .vbproj-bestand bewerkt om specifieke compilerwaarschuwingen te onderdrukken.

  1. Kies in Solution Explorerhet project waarin u waarschuwingen wilt onderdrukken.

  2. Kies in de menubalk Project>Projectuitladen.

  3. Open in Solution Explorerhet snelmenu of de rechtermuisknop voor het project en kies vervolgens ProjectName <bewerken>.vbproj.

    Het XML-projectbestand wordt geopend in de code-editor.

  4. Zoek het <NoWarn>-element op dat hoort bij de buildconfiguratie die u gebruikt en voeg een of meer waarschuwingsnummers toe als waarde van het <NoWarn>-element. Als u meerdere waarschuwingsnummers opgeeft, scheidt u deze met een komma.

    In het volgende voorbeeld ziet u het <NoWarn>-element voor de Debug build-configuratie op een x86-platform, waarbij twee compilerwaarschuwingen zijn onderdrukt:

    <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>
    

    Notitie

    .NET Core-projecten bevatten standaard geen buildconfiguratie-eigenschappengroepen. Als u waarschuwingen in een .NET Core-project wilt onderdrukken, voegt u de sectie buildconfiguratie handmatig toe aan het bestand. Bijvoorbeeld:

    <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>
    
  5. Sla de wijzigingen op in het .vbproj-bestand.

  6. Kies in de menubalk Project>Herlaad project.

  7. Op de menubalk, kies Build>Rebuild Solution.

    In het venster Uitvoer worden de waarschuwingen die u hebt opgegeven niet meer weergegeven.

Voor meer informatie, zie de compileroptie /nowarn voor de Visual Basic-opdrachtregelcompiler.

U kunt waarschuwingen onderdrukken voor afzonderlijke gevallen of per categorie. De ervaring verschilt, afhankelijk van of u met een .NET Framework-project of een .NET Core-project (of .NET 5 en hoger) werkt.

Als u een waarschuwing in een specifiek deel van een codebestand wilt uitschakelen, gebruikt u #Disable en #Enable instructies. Zie Waarschuwingen configureren in Visual Basicvoor meer informatie.

.NET 5 of hoger-projecten

U kunt het projectbestand bewerken om specifieke compilerwaarschuwingen te onderdrukken door de diagnostische codes of u kunt waarschuwingen per categorie onderdrukken met behulp van projectontwerper. Als u de projectontwerper wilt openen, selecteert u het projectknooppunt, klikt u met de rechtermuisknop en kiest u Eigenschappenof drukt u op Alt+Enter-.

Kies in de sectie CompileerWaarschuwingen. Onder waarschuwings ernstkunt u kiezen Waarschuwings ernst afzonderlijk instellen. De categorieën worden weergegeven en u hebt de mogelijkheid om elke categorie in te stellen op Geen om de categorie waarschuwing uit te schakelen, of deze in te stellen op Waarschuwing of Fout om deze in te schakelen als een waarschuwing of fout.

Schermopname die de instelling voor waarschuwingsniveau toont voor een Visual Basic .NET-project.

.NET Framework-projecten

U kunt specifieke compilerwaarschuwingen voor Visual Basic verbergen door het .vbproj-bestand voor het project te bewerken. Als u waarschuwingen wilt onderdrukken op basis van categorie, kunt u de eigenschappenpagina compilerengebruiken.

Specifieke waarschuwingen voor een volledig Visual Basic-project onderdrukken

In dit voorbeeld ziet u hoe u het .vbproj-bestand bewerkt om specifieke compilerwaarschuwingen te onderdrukken.

  1. Kies in Solution Explorerhet project waarin u waarschuwingen wilt onderdrukken.

  2. (.NET) Dubbelklik op het projectknooppunt om het projectbestand te openen.

    (.NET Framework) Kies in de menubalk Project>Projectuitladen. Open vervolgens in Solution Explorerde rechtermuisknop of het snelmenu voor het project en kies vervolgens Bewerken <ProjectName>.vbproj-.

    Het MSBuild-projectbestand wordt geopend in de code-editor. Dit is een XML-bestand.

  3. Zoek het <NoWarn>-element voor de buildconfiguratie waarmee u bouwt en voeg een of meer waarschuwingsnummers toe als de waarde van het <NoWarn>-element. Als u meerdere waarschuwingsnummers opgeeft, scheidt u deze met een komma.

    In het volgende voorbeeld ziet u het <NoWarn>-element voor de Debug build-configuratie op een x86-platform, waarbij twee compilerwaarschuwingen zijn onderdrukt:

    <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>
    

    Notitie

    .NET Core- en .NET 5- en latere projecten bevatten standaard geen buildconfiguratie-eigenschappengroepen. Als u waarschuwingen in een .NET Core-project wilt onderdrukken, voegt u de sectie buildconfiguratie handmatig toe aan het bestand. Bijvoorbeeld:

    <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>
    
  4. Sla de wijzigingen op in het .vbproj-bestand.

  5. Kies in de menubalk Project>Herlaad project.

  6. Kies in de menubalk Build>Rebuild Solution.

    In het venster Uitvoer worden de waarschuwingen die u hebt opgegeven niet meer weergegeven.

Voor meer informatie, zie de optie /nowarn compiler voor de Visual Basic-opdrachtregelcompiler.

Een waarschuwing onderdrukken door het projectbestand te bewerken

Het gebruik van de visual Studio-eigenschapsontwerper om waarschuwingen te onderdrukken, resulteert in een wijziging in het projectbestand. Soms is het handiger om het projectbestand handmatig te bewerken om de taak van het uitschakelen van een waarschuwing uit te voeren. Het projectbestand wordt verwerkt door MSBuild, de build-engine van Microsoft. Zie MSBuild.

In Visual Studio 2019 versie 16.7 en eerder kunnen sommige waarschuwingen van andere hulpprogramma's dan de compiler niet op een andere manier worden onderdrukt.

  1. Als u het projectbestand wilt openen in de Visual Studio-editor, klikt u met de rechtermuisknop op het projectknooppunt en kiest u Projectbestand bewerken. Voor sommige projecttypen moet u het project verwijderen voordat u het projectbestand kunt bewerken. Als u het project wilt verwijderen, klikt u met de rechtermuisknop op het projectknooppunt en kiest u Project verwijderen.

  2. Gebruik in een nieuwe sectie PropertyGroup de eigenschap NoWarn. Vermeld de fouten die u wilt onderdrukken, gescheiden door komma's of puntkomma's. Voor compilerwaarschuwingen kunt u de taalcode weglaten en alleen het nummer invoeren, maar voor de duidelijkheid raden we u aan de volledige code te gebruiken. Geef voor waarschuwingen van andere hulpprogramma's in de build de volledige code op, inclusief het voorvoegsel (zoals MSB voor waarschuwingen die zijn uitgegeven door MSBuild zelf).

    Met de volgende code worden waarschuwingen CS0028 en CS0618 toegevoegd aan de lijst met onderdrukte waarschuwingen:

    <PropertyGroup>
       // Other properties
       <NoWarn>$(NoWarn);CS0028;CS0618</NoWarn>
    </PropertyGroup>
    

    Als u verwijst naar de vorige waarde van $(NoWarn) zoals wordt weergegeven in het vorige voorbeeld, worden deze getallen toegevoegd aan een eerder ingestelde waarde voor NoWarn, in plaats van deze te overschrijven.

Zie NoWarn.

Een waarschuwing van de build-opdrachtregel onderdrukken

Als u een project bouwt vanaf de opdrachtregel, kunt u waarschuwingen ook onderdrukken met behulp van -warnAsMessage op de MSBuild-opdrachtregel. Gebruik aanhalingstekens rond lijsten met meerdere waarschuwingscodes.

MSBuild.exe -warnAsMessage="CS0028;CS0618" MyProject.csproj

Zie MSBuild-opdrachtregelreferentie.

Waarschuwingen onderdrukken voor alle projecten en oplossingen in een directorystructuur

U kunt waarschuwingen voor veel projecten tegelijk onderdrukken als ze zich allemaal onder een gemeenschappelijke map in het bestandssysteem bevinden met behulp van het MSBuild-bestand Directory.Build.props. Zie Samenstellingen aanpassen per map. Als u bijvoorbeeld de volgende Directory.Build.props bestand in de hoofdmap van een map met veel oplossingen en projecten plaatst, kunt u een opgegeven lijst met waarschuwingen voor alle projecten in die map onderdrukken en recursief naar mappen erin.

<Project>
   <PropertyGroup>
      <NoWarn>$(NoWarn);CS0028;CS0618</NoWarn>
   </PropertyGroup>
</Project>

Toolwaarschuwingen onderdrukken

Hoe u waarschuwingen onderdrukt van andere hulpprogramma's dan de compiler, zoals MSBuild, is afhankelijk van het type project dat u hebt en welke versie van MSBuild u gebruikt.

Met MSBuild 16.8 en hoger, in projecten die gebruikmaken van een SDK of de standaardimport, kunt u hulpprogrammawaarschuwingen onderdrukken met behulp van dezelfde methoden die eerder zijn beschreven. U moet de volledige foutcode opgeven (inclusief het voorvoegsel zoals MSB voor MSBuild), niet alleen een getal zoals u kunt met een compilerwaarschuwing. Het bericht wordt ook niet geëlimineerd; het wordt nog steeds weergegeven als een informatief bericht, maar het is gedegradeerd van een waarschuwing.

Met MSBuild 16.7 en eerder en in een project dat geen SDK of de standaardimport gebruikt, worden deze waarschuwingen niet onderdrukt met behulp van NoWarn. In dergelijke gevallen is de eigenschap die u kunt gebruiken om toolwaarschuwingen te onderdrukken MSBuildWarningsAsMessages. U kunt buildwaarschuwingen onderdrukken door het projectbestand te bewerken of de optie MSBuildWarningsAsMessages op te geven op de MSBuild-opdrachtregel. Wanneer u MSBuildWarningsAsMessagesgebruikt, gebruikt u de volledige MSBuild-foutcode, inclusief het MSB voorvoegsel.

<PropertyGroup>
    <MSBuildWarningsAsMessages>$(MSBuildWarningsAsMessages);MSB3270</MSBuildWarningsAsMessages>
</PropertyGroup>

Sommige MSBuild-waarschuwingen kunnen niet worden onderdrukt door MSBuildWarningsAsMessagesin te stellen. Als u ze wilt uitschakelen, gebruikt u de opdrachtregeloptie warnAsMessage.

Sommige waarschuwingen hebben ook specifieke eigenschappen die u kunt instellen om de waarschuwing uit te schakelen. MSB3253 is bijvoorbeeld uitgeschakeld door de eigenschap in te stellen:

 <PropertyGroup>
    <ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
        None
    </ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
  </PropertyGroup>

Gebruik indien mogelijk de meer expliciete eigenschap, omdat een foutcode zelf niet zo gemakkelijk te begrijpen is. De foutreferentiepagina voor de code bevat meestal de eigenschap die wordt gebruikt om deze uit te schakelen.

Waarschuwingen voor NuGet-pakketten onderdrukken

In sommige gevallen wilt u mogelijk NuGet-compilerwaarschuwingen onderdrukken voor één NuGet-pakket, in plaats van voor een heel project. De waarschuwing heeft een doel, dus u wilt deze niet onderdrukken op projectniveau. Een van de NuGet-waarschuwingen geeft bijvoorbeeld aan dat het pakket mogelijk niet volledig compatibel is met uw project. Als u het op projectniveau onderdrukt en later een extra NuGet-pakket toevoegt, zou u nooit weten of het de compatibiliteitswaarschuwing zou produceren.

Een specifieke waarschuwing voor één NuGet-pakket onderdrukken

  1. Selecteer in Solution Explorerhet NuGet-pakket waarvoor u compilerwaarschuwingen wilt onderdrukken.

    Schermopname van het NuGet-pakket in Solution Explorer.

    Schermopname van het NuGet-pakket in Solution Explorer.

  2. Kies Eigenschappenin het contextmenu of snelmenu.

  3. Voer in het Waarschuwingen onderdrukken vak van de eigenschappen van het pakket het waarschuwingsnummer in dat u voor dit pakket wilt onderdrukken. Als u meer dan één waarschuwing wilt onderdrukken, gebruikt u een komma om de waarschuwingsnummers te scheiden.

    NuGet-pakketeigenschappen

    schermopname van NuGet-pakketeigenschappen

    De waarschuwing verdwijnt uit Solution Explorer- en de foutenlijst. In het projectbestand is de eigenschap NoWarn ingesteld.

     <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>
    

Waarschuwingen voor codeanalyse onderdrukken

Diagnostische berichten met codes die beginnen met CA zijn schendingen en waarschuwingen van codeanalyse, die verschillen van de compilerwaarschuwingen die in dit artikel worden besproken. U kunt waarschuwingen voor codeanalyse op verschillende manieren onderdrukken, waaronder het gebruik van sitespecifieke markeringen en projectbrede of globaal, met behulp van regelsconfiguratiebestanden. Zie Codeanalysewaarschuwingen onderdrukken en Codeanalyseschendingen onderdrukken.