Bagikan melalui


FAQ untuk analisis kode di Visual Studio

Halaman ini berisi jawaban atas beberapa pertanyaan yang sering diajukan tentang analisis kode berbasis Platform .NET Compiler di Visual Studio.

Analisis kode versus EditorConfig

Haruskah saya menggunakan analisis kode atau EditorConfig untuk memeriksa gaya kode?

Analisis kode dan file EditorConfig bekerja secara bersamaan. Saat Anda menentukan gaya kode dalam file EditorConfig atau di halaman Opsi editor teks , Anda benar-benar mengonfigurasi penganalisis kode yang disertakan dalam Visual Studio. File EditorConfig dapat digunakan untuk mengaktifkan atau menonaktifkan aturan penganalisis, dan juga untuk mengonfigurasi paket penganalisis NuGet.

EditorConfig versus seperangkat aturan

Haruskah saya mengonfigurasi penganalisis saya menggunakan seperangkat aturan atau file EditorConfig?

Seperangkat aturan dan file EditorConfig dapat hidup berdampingan dan keduanya dapat digunakan untuk mengonfigurasi penganalisis. File EditorConfig dan seperangkat aturan memungkinkan Anda mengaktifkan dan menonaktifkan aturan dan mengatur tingkat keparahannya.

Namun, di Visual Studio 2019 versi 16.5 dan yang lebih baru, file seperangkat aturan tidak digunakan lagi demi file EditorConfig, dan proyek .NET Core dan .NET 5+ tidak mendukung semua perintah menu seperangkat aturan. Untuk informasi selengkapnya, lihat Mengonversi file seperangkat aturan yang ada ke file EditorConfig.

File EditorConfig menawarkan cara tambahan untuk mengonfigurasi aturan:

Selain seperangkat aturan dan file EditorConfig, beberapa penganalisis dikonfigurasi melalui penggunaan file teks yang ditandai sebagai file tambahan untuk pengkompilasi C# dan VB.

Nota

  • File EditorConfig hanya dapat digunakan untuk mengaktifkan aturan dan mengatur tingkat keparahannya di Visual Studio 2019 versi 16.3 dan yang lebih baru.
  • File EditorConfig tidak dapat digunakan untuk mengonfigurasi analisis warisan, sedangkan seperangkat aturan dapat.

Analisis kode dalam build integrasi berkelanjutan (CI)

Apakah analisis kode berbasis .NET Compiler Platform berfungsi dalam build integrasi berkelanjutan (CI)?

Ya. Untuk penganalisis yang diinstal dengan .NET SDK 5.0 atau yang lebih tinggi, atau dari paket NuGet, aturan tersebut diberlakukan pada waktu build, termasuk selama build CI. Penganalisis yang digunakan dalam CI membangun menghormati konfigurasi aturan dari seperangkat aturan dan file EditorConfig. Dimulai dengan .NET 5.0, penganalisis gaya kode yang dibangun ke dalam Visual Studio juga disertakan dalam .NET SDK, dan sebagian besar dari mereka dapat diberlakukan dalam build CI. Untuk informasi selengkapnya, lihat Mengaktifkan build.

Penganalisis IDE versus StyleCop

Apa perbedaan antara penganalisis kode Visual Studio IDE dan penganalisis StyleCop?

Ide Visual Studio menyertakan penganalisis bawaan yang mencari gaya kode dan masalah kualitas. Aturan ini membantu Anda menggunakan fitur bahasa baru saat diperkenalkan dan meningkatkan keberlanjutan kode Anda. Penganalisis IDE terus diperbarui dengan setiap rilis Visual Studio.

Penganalisis StyleCop adalah penganalisis pihak ketiga yang diinstal sebagai paket NuGet yang memeriksa konsistensi gaya dalam kode Anda. Secara umum, aturan StyleCop memungkinkan Anda mengatur preferensi pribadi untuk basis kode tanpa merekomendasikan satu gaya di atas gaya lain.

Penganalisis kode versus analisis warisan

Apa perbedaan antara analisis warisan dan analisis kode berbasis Platform Kompilator .NET?

Analisis kode berbasis Platform Kompilator .NET menganalisis kode sumber secara real time dan selama kompilasi, sedangkan analisis warisan menganalisis file biner setelah build selesai. Untuk informasi selengkapnya, lihat Analisis berbasis Platform Kompilator .NET versus analisis warisan.

Penganalisis FxCop versus penganalisis .NET

Apa perbedaan antara penganalisis FxCop dan penganalisis .NET?

Penganalisis FxCop dan penganalisis .NET mengacu pada implementasi penganalisis .NET Compiler Platform ("Roslyn") dari aturan FxCop CA. Sebelum Visual Studio 2019 16.8 dan .NET 5.0, penganalisis ini dikirim sebagai Microsoft.CodeAnalysis.FxCopAnalyzerspaket NuGet. Mulai visual Studio 2019 16.8 dan .NET 5.0, penganalisis ini disertakan dengan .NET SDK. Mereka juga tersedia sebagai Microsoft.CodeAnalysis.NetAnalyzerspaket NuGet. Pertimbangkan untuk bermigrasi dari penganalisis FxCop ke penganalisis .NET.

Perlakukan peringatan sebagai kesalahan

Proyek saya menggunakan opsi build untuk memperlakukan peringatan sebagai kesalahan. Setelah bermigrasi dari analisis warisan ke analisis kode sumber, semua peringatan analisis kode sekarang muncul sebagai kesalahan. Bagaimana cara mencegahnya?

Untuk mencegah peringatan analisis kode diperlakukan sebagai kesalahan, ikuti langkah-langkah berikut:

  1. Buat file .props dengan konten berikut:

    <Project>
       <PropertyGroup>
          <CodeAnalysisTreatWarningsAsErrors>false</CodeAnalysisTreatWarningsAsErrors>
       </PropertyGroup>
    </Project>
    
  2. Tambahkan baris ke file proyek .csproj atau .vbproj Anda untuk mengimpor file .props yang Anda buat di langkah sebelumnya. Baris ini harus ditempatkan sebelum baris apa pun yang mengimpor file penganalisis .props. Misalnya, jika file .props Anda diberi nama codeanalysis.props:

    ...
    <Import Project="..\..\codeanalysis.props" Condition="Exists('..\..\codeanalysis.props')" />
    <Import Project="..\packages\Microsoft.CodeAnalysis.NetAnalyzers.5.0.0\build\Microsoft.CodeAnalysis.NetAnalyzers.props" Condition="Exists('..\packages\Microsoft.CodeAnalysis.NetAnalyzers.5.0.0\build\Microsoft.CodeAnalysis.NetAnalyzers.props')" />
    ...
    

Halaman properti solusi analisis kode

Di mana halaman properti Analisis Kode untuk solusi?

Halaman properti Analisis Kode di tingkat solusi dihapus demi grup properti bersama yang lebih andal. Untuk mengelola Analisis Kode di tingkat proyek, halaman properti Analisis Kode masih tersedia. (Untuk proyek terkelola, sebaiknya migrasikan dari ruleset ke EditorConfig untuk konfigurasi aturan.) Untuk berbagi aturan di beberapa/semua proyek dalam solusi atau repositori, sebaiknya tentukan grup properti dengan properti CodeAnalysisRuleSet dalam file props/targets bersama atau file Directory.props/Directory.targets . Jika Anda tidak memiliki alat peraga atau target umum seperti yang diimpor semua proyek, Anda harus mempertimbangkan untuk menambahkan grup properti tersebut ke file Directory.props atau Directory.targets di direktori solusi tingkat atas, yang secara otomatis diimpor di semua file proyek yang ditentukan dalam direktori atau sub-direktorinya.