Menyembunyikan peringatan kompiler

Dengan Visual Studio, Anda dapat menentukan peringatan mana yang ingin Anda tekan dengan menentukan kode peringatan di Project Designer (halaman properti proyek). Anda juga dapat menekan peringatan dengan mengatur properti tertentu langsung dalam file proyek, melalui baris perintah, atau dalam kode saat Anda ingin menekan peringatan di satu lokasi saja.

Beberapa pengkompilasi dan alat build juga memiliki opsi untuk menentukan tingkat peringatan. Ini memungkinkan Anda mengontrol kategori peringatan dengan satu pengaturan. Untuk opsi tersebut, lihat dokumentasi untuk bahasa dan pengkompilasi tertentu yang Anda gunakan:

Jika tujuan Anda adalah untuk melihat output yang lebih ringkas dan terfokus di log build, Anda mungkin ingin mengubah verbositas log build. Pengaturan yang tersedia adalah Normal, Terperinci, atau Diagnostik. Untuk informasi selengkapnya tentang verbositas, lihat Cara: Melihat, menyimpan, dan mengonfigurasi file log build.

Perhatian

Perhatikan bahwa peringatan dimaksudkan untuk menjadi indikasi potensi masalah dengan kode Anda, jadi Anda harus memahami risiko menonaktifkan peringatan tertentu. Pengaturan Visual Studio menonaktifkan peringatan di tingkat proyek. Anda mungkin ingin menggunakan pendekatan yang lebih ditargetkan untuk menonaktifkan peringatan daripada yang disediakan Visual Studio. Sebagian besar kompilator menyediakan cara untuk menonaktifkan peringatan hanya untuk baris kode tertentu, sehingga Anda masih dapat meninjau peringatan jika terjadi di tempat lain dalam proyek yang sama.

Menyembunyikan peringatan khusus untuk Visual C# atau F#

Gunakan properti Build untuk menekan peringatan tertentu untuk seluruh proyek C# dan F#. Jika Anda ingin menekan peringatan hanya di bagian tertentu dari kode di C#, gunakan peringatan #pragma. Untuk F#, gunakan #nowarn direktif preprocessor untuk menonaktifkan peringatan untuk seluruh file sumber.

  1. Di Penjelajah Solusi, pilih proyek tempat Anda ingin menekan peringatan.

  2. Klik kanan pada simpul proyek, dan pilih Properti pada menu konteks. Atau, pilih simpul proyek dan tekan Alt+Enter.

  3. Pilih Bangun, dan buka subbagian Kesalahan dan peringatan .

  4. Dalam kotak Sembunyikan peringatan atau Sembunyikan peringatan tertentu, tentukan kode kesalahan peringatan yang ingin Anda tekan, dipisahkan oleh titik koma. Untuk daftar dan deskripsi kode peringatan, lihat C# Compiler Messages.

  5. Bangun kembali solusinya.

  1. Di Penjelajah Solusi, pilih proyek tempat Anda ingin menekan peringatan.

  2. Klik kanan pada simpul proyek, dan pilih Properti pada menu konteks. Atau, pilih simpul proyek dan tekan Alt+Enter.

  3. Pilih halaman atau bagian Build, dan jika Anda berada di UI saat ini, buka subbagian Kesalahan dan peringatan.

  4. Dalam kotak Sembunyikan peringatan atau Sembunyikan peringatan tertentu, tentukan kode kesalahan peringatan yang ingin Anda tekan, dipisahkan oleh titik koma. Untuk daftar dan deskripsi kode peringatan, lihat C# Compiler Messages.

  5. Bangun kembali solusinya.

Catatan

Beberapa peringatan tidak dapat ditekan. Untuk daftarnya, lihat opsi pengkompilasi NoWarn.

Menekan peringatan khusus untuk C++

Anda dapat menekan peringatan dalam proyek C++ dengan menggunakan properti proyek; Anda menggunakan halaman properti Properti Konfigurasi untuk menekan peringatan tertentu untuk seluruh proyek C++. Anda juga dapat menekan peringatan dalam file tertentu dengan menggunakan #pragma warning. Artikel ini membahas kontrol tingkat proyek, tetapi jika niat Anda adalah menonaktifkan peringatan dalam file tertentu atau hanya di sekitar beberapa baris kode, tetapi Anda ingin terus melihat kemunculan lain dari peringatan yang sama, Anda harus mempertimbangkan untuk menggunakan #pragma warning. Lihat peringatan #pragma.

  1. Di Penjelajah Solusi, pilih proyek atau file sumber tempat Anda ingin menekan peringatan.

  2. Pada bilah menu, pilih Tampilkan>Halaman Properti.

  3. Pilih kategori Properti Konfigurasi, pilih kategori C/C++, lalu pilih halaman Tingkat Lanjut.

  4. Lakukan salah satu langkah berikut:

    • Dalam kotak Nonaktifkan Peringatan Tertentu, tentukan kode kesalahan peringatan yang ingin Anda sembunyikan, dipisahkan oleh titik koma.

    • Dalam kotak Nonaktifkan Peringatan Tertentu, pilih Edit untuk menampilkan opsi lainnya.

  5. Pilih tombol OK , lalu bangun kembali solusi.

Jika peringatan berasal dari alat lain, lihat dokumentasi untuk alat tertentu untuk mengetahui bagaimana Anda dapat menekan peringatan untuk alat tersebut. Misalnya, linker C++ memiliki beberapa peringatan yang dapat Anda nonaktifkan menggunakan /IGNORE opsi linker. Lihat /IGNORE (Abaikan peringatan tertentu) dan untuk mengatur opsi ini, lihat /link (Opsi pass ke linker).

Menyembunyikan peringatan untuk Visual Basic

Anda dapat menyembunyikan peringatan kompilator tertentu untuk Visual Basic dengan mengedit file .vbproj untuk proyek. Untuk menekan peringatan menurut kategori, Anda dapat menggunakan halaman Properti kompilasi. Jika Anda ingin menonaktifkan peringatan di bagian tertentu dari file kode, gunakan direktif #Disable dan #Enable. Untuk informasi selengkapnya, lihat Mengonfigurasi peringatan di Visual Basic.

Untuk menekan peringatan tertentu untuk seluruh proyek Visual Basic

Contoh ini menunjukkan kepada Anda cara mengedit file .vbproj untuk menekan peringatan pengompilasi tertentu.

  1. Di Penjelajah Solusi, pilih proyek tempat Anda ingin menekan peringatan.

  2. Pada bilah menu, pilih Proyek>Bongkar Proyek.

  3. Di Penjelajah Solusi, buka menu klik kanan atau pintasan untuk proyek, lalu pilih Edit <ProjectName.vbproj>.

    File proyek XML terbuka di editor kode.

  4. <NoWarn> Temukan elemen untuk konfigurasi build yang Anda bangun, dan tambahkan satu atau beberapa angka peringatan sebagai nilai <NoWarn> elemen . Jika Anda menentukan beberapa nomor peringatan, pisahkan dengan koma.

    Contoh berikut menunjukkan <NoWarn> elemen untuk konfigurasi build Debug pada platform x86, dengan dua peringatan kompilator ditekan:

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

    Catatan

    Proyek .NET Core tidak berisi grup properti konfigurasi build secara default. Untuk menyembunyikan peringatan dalam proyek .NET Core, tambahkan bagian konfigurasi build ke file secara manual. Misalnya:

    <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. Simpan perubahan ke file .vbproj .

  6. Pada bilah menu, pilih Proyek>Muat Ulang Proyek.

  7. Pada bilah menu, pilih Bangun>Solusi Pembangunan Ulang.

    Jendela Output tidak lagi menunjukkan peringatan yang Anda tentukan.

Untuk informasi selengkapnya, lihat opsi pengkompilasi /nowarn untuk pengkompilasi baris perintah Visual Basic.

Menyembunyikan peringatan dengan mengedit file proyek

Menggunakan perancang properti Visual Studio untuk menekan peringatan menghasilkan perubahan pada file proyek. Terkadang, lebih mudah untuk mengedit file proyek dengan tangan untuk menyelesaikan tugas menonaktifkan peringatan. File proyek diproses oleh MSBuild, mesin build Microsoft. Lihat MSBuild.

Selain itu, di Visual Studio 2019 versi 16.7 dan yang lebih lama, beberapa peringatan dari alat selain pengompilasi tidak dapat ditekan dengan cara lain.

  1. Untuk membuka file proyek di editor Visual Studio, klik kanan pada simpul proyek, dan pilih Edit file proyek. Beberapa jenis proyek mengharuskan Anda untuk membongkar proyek sebelum Anda dapat mengedit file proyek. Jika Anda perlu membongkar proyek, klik kanan pada simpul proyek dan pilih Bongkar proyek.

  2. Di bagian baru PropertyGroup , gunakan NoWarn properti . Cantumkan kesalahan yang ingin Anda sembunyikan, dipisahkan oleh koma atau titik koma. Untuk peringatan kompilator, Anda dapat menghilangkan kode bahasa dan hanya memasukkan angka, tetapi untuk kejelasan, sebaiknya gunakan kode lengkap. Untuk peringatan dari alat lain dalam build, tentukan kode lengkap, termasuk awalan (seperti MSB untuk peringatan yang dikeluarkan oleh MSBuild itu sendiri).

    Kode berikut menambahkan peringatan CS0028 dan CS0618 ke daftar peringatan yang ditekan:

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

    Mereferensikan nilai $(NoWarn) sebelumnya seperti yang ditunjukkan dalam contoh sebelumnya menambahkan angka tersebut ke nilai yang ditetapkan sebelumnya untuk NoWarn, daripada menimpanya.

Lihat NoWarn.

Menyembunyikan peringatan dari baris perintah build

Jika Anda membangun proyek dari baris perintah, Anda juga dapat menekan peringatan dengan menggunakan -warnAsMessage di baris perintah MSBuild. Gunakan tanda kutip di sekitar daftar beberapa kode peringatan.

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

Lihat referensi baris perintah MSBuild.

Menyembunyikan peringatan alat

Cara Anda menekan peringatan dari alat selain pengompilasi, seperti MSBuild, tergantung pada jenis proyek apa yang Anda miliki dan versi MSBuild apa yang Anda gunakan.

Dengan MSBuild 16.8 dan yang lebih baru, dalam proyek yang menggunakan SDK atau impor standar, Anda dapat menekan peringatan alat menggunakan metode yang sama yang dijelaskan sebelumnya. Anda harus menentukan kode kesalahan lengkap (termasuk awalan seperti MSB untuk MSBuild), bukan hanya angka seperti yang Anda bisa dengan peringatan kompiler. Selain itu, pesan tidak dihilangkan; masih ditampilkan sebagai pesan informasi, tetapi telah diturunkan dari peringatan.

Dengan MSBuild 16.7 dan yang lebih lama, dan dalam proyek apa pun yang tidak menggunakan SDK atau impor standar, peringatan tersebut tidak ditekan menggunakan NoWarn. Dalam kasus seperti itu, properti yang dapat Anda gunakan untuk menekan peringatan alat adalah MSBuildWarningsAsMessages. Anda dapat menekan peringatan build dengan mengedit file proyek atau menentukan MSBuildWarningsAsMessages opsi di baris perintah MSBuild. Saat Anda menggunakan MSBuildWarningsAsMessages, gunakan kode kesalahan MSBuild lengkap, termasuk awalan MSB .

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

Perhatikan bahwa beberapa peringatan MSBuild tidak dapat ditekan dengan mengatur MSBuildWarningsAsMessages. Untuk menonaktifkannya, gunakan opsi warnAsMessagebaris perintah .

Selain itu, beberapa peringatan memiliki properti tertentu yang dapat Anda atur untuk menonaktifkan peringatan. Misalnya, MSB3253 dinonaktifkan dengan mengatur properti:

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

Jika memungkinkan, gunakan properti yang lebih eksplisit, karena kode kesalahan dengan sendirinya tidak dipahami dengan mudah. Halaman referensi kesalahan untuk kode biasanya berisi properti yang digunakan untuk menonaktifkannya.

Menyembunyikan peringatan untuk paket NuGet

Dalam beberapa kasus, Anda mungkin ingin menekan peringatan kompilator NuGet untuk satu paket NuGet, bukan untuk seluruh proyek. Peringatan ini berfungsi dengan tujuan, sehingga Anda tidak ingin menekannya di tingkat proyek. Misalnya, salah satu peringatan NuGet memberi tahu Anda bahwa paket mungkin tidak sepenuhnya kompatibel dengan proyek Anda. Jika Anda menekannya di tingkat proyek dan kemudian menambahkan paket NuGet tambahan, Anda tidak akan pernah tahu apakah itu menghasilkan peringatan kompatibilitas.

Untuk menekan peringatan tertentu untuk satu paket NuGet

  1. Di Penjelajah Solusi, pilih paket NuGet yang ingin Anda tekan peringatan kompilatornya.

    Screenshot of NuGet package in Solution Explorer.

    Screenshot of NuGet package in Solution Explorer.

  2. Dari menu klik kanan atau konteks, pilih Properti.

  3. Di kotak Sembunyikan peringatan properti paket, masukkan nomor peringatan yang ingin Anda tekan untuk paket ini. Jika Anda ingin menekan lebih dari satu peringatan, gunakan koma untuk memisahkan angka peringatan.

    NuGet package properties

    Screenshot of NuGet package properties

    Peringatan menghilang dari Penjelajah Solusi dan Daftar Kesalahan. Dalam file proyek, properti NoWarn diatur.

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