Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Anda dapat menghasilkan data metrik kode dengan tiga cara:
Dengan mengaktifkan penganalisis kualitas kode .NET dan mengaktifkan empat aturan metrik kode (maintainability) yang dikandungnya.
Dengan memilih perintah menu Analisis>Metrik Kode Hitung dalam Visual Studio.
Dari baris perintah untuk proyek C# dan Visual Basic.
Aturan metrik kode penganalisis kualitas kode .NET
Penganalisis kualitas kode .NET mencakup beberapa aturan penganalisis metrik kode:
Aturan ini dinonaktifkan secara default tetapi Anda dapat mengaktifkannya dari Penjelajah Solusi atau dalam file EditorConfig . Misalnya, untuk mengaktifkan aturan CA1502 sebagai peringatan, file EditorConfig Anda akan berisi entri berikut:
dotnet_diagnostic.CA1502.severity = warning
Konfigurasi
Anda dapat mengonfigurasi ambang di mana aturan metrik kode diaktifkan.
Membuat file teks. Sebagai contoh, Anda dapat menamainya CodeMetricsConfig.txt.
Tambahkan ambang yang diinginkan ke file teks dalam format berikut:
CA1502: 10Dalam contoh ini, aturan CA1502 dikonfigurasi untuk diaktifkan ketika kompleksitas siklomatik metode lebih besar dari 10.
Di jendela Properti Visual Studio, atau dalam file proyek, tandai tindakan pembangunan file konfigurasi sebagai AdditionalFiles. Contohnya:
<ItemGroup> <AdditionalFiles Include="CodeMetricsConfig.txt" /> </ItemGroup>
Perintah Menu Menghitung Metrik Kode
Buat metrik kode untuk satu atau semua proyek terbuka Anda di IDE dengan menggunakan menu Analisis>Metrik Kode Hitung .
Hasilkan hasil metrik kode untuk seluruh solusi
Anda dapat menghasilkan hasil metrik kode untuk seluruh solusi dengan salah satu cara berikut:
Dari bilah menu, pilih Analisis>Hitung Metrik> KodeUntuk Solusi.
Di Penjelajah Solusi, klik kanan solusi lalu pilih Hitung Metrik Kode.
Di jendela Hasil Metrik Kode , pilih tombol Hitung Metrik Kode untuk Solusi .
Hasilnya dihasilkan dan jendela Hasil Metrik Kode ditampilkan. Untuk melihat detail hasil, perluas pohon di kolom Hierarki .
Hasilkan hasil metrik kode untuk satu atau beberapa proyek
Di Penjelajah Solusi, pilih satu atau beberapa proyek.
Dari bilah menu, pilih Analisis>Hitung Metrik> KodeUntuk Proyek yang Dipilih.
Hasilnya dihasilkan dan jendela Hasil Metrik Kode ditampilkan. Untuk melihat detail hasil, perluas pohon dalam Hierarki.
Metrik kode baris perintah
Anda dapat membuat data metrik kode dari baris perintah untuk proyek C# dan Visual Basic untuk aplikasi .NET Framework, .NET Core, dan .NET Standard. Untuk menjalankan metrik kode dari baris perintah, instal paket NuGet Microsoft.CodeAnalysis.Metrics atau buat Metrics.exe yang dapat dieksekusi sendiri.
Paket NuGet Microsoft.CodeAnalysis.Metrics
Cara term mudah untuk menghasilkan data metrik kode dari baris perintah adalah dengan menginstal paket NuGet Microsoft.CodeAnalysis.Metrics . Setelah Anda menginstal paket, jalankan msbuild /t:Metrics dari direktori yang berisi file proyek Anda. Contohnya:
C:\source\repos\ClassLibrary3\ClassLibrary3>msbuild /t:Metrics
Microsoft (R) Build Engine version 16.0.360-preview+g9781d96883 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.
Build started 1/22/2019 4:29:57 PM.
Project "C:\source\repos\ClassLibrary3\ClassLibrary3\ClassLibrary3.csproj" on node 1 (Metrics target(s))
.
Metrics:
C:\source\repos\ClassLibrary3\packages\Microsoft.CodeMetrics.2.6.4-ci\build\\..\Metrics\Metrics.exe /project:C:\source\repos\ClassLibrary3\ClassLibrary3\ClassLibrary3.csproj /out:ClassLibrary3.Metrics.xml
Loading ClassLibrary3.csproj...
Computing code metrics for ClassLibrary3.csproj...
Writing output to 'ClassLibrary3.Metrics.xml'...
Completed Successfully.
Done Building Project "C:\source\repos\ClassLibrary3\ClassLibrary3\ClassLibrary3.csproj" (Metrics target(s)).
Build succeeded.
0 Warning(s)
0 Error(s)
Anda dapat mengambil alih nama file output dengan menentukan /p:MetricsOutputFile=<filename>. Anda juga bisa mendapatkan metrik data kode gaya warisan dengan menentukan /p:LEGACY_CODE_METRICS_MODE=true. Contohnya:
C:\source\repos\ClassLibrary3\ClassLibrary3>msbuild /t:Metrics /p:LEGACY_CODE_METRICS_MODE=true /p:MetricsOutputFile="Legacy.xml"
Microsoft (R) Build Engine version 16.0.360-preview+g9781d96883 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.
Build started 1/22/2019 4:31:00 PM.
The "MetricsOutputFile" property is a global property, and cannot be modified.
Project "C:\source\repos\ClassLibrary3\ClassLibrary3\ClassLibrary3.csproj" on node 1 (Metrics target(s))
.
Metrics:
C:\source\repos\ClassLibrary3\packages\Microsoft.CodeMetrics.2.6.4-ci\build\\..\Metrics.Legacy\Metrics.Legacy.exe /project:C:\source\repos\ClassLibrary3\ClassLibrary3\ClassLibrary3.csproj /out:Legacy.xml
Loading ClassLibrary3.csproj...
Computing code metrics for ClassLibrary3.csproj...
Writing output to 'Legacy.xml'...
Completed Successfully.
Done Building Project "C:\source\repos\ClassLibrary3\ClassLibrary3\ClassLibrary3.csproj" (Metrics target(s)).
Build succeeded.
0 Warning(s)
0 Error(s)
Keluaran metrik kode
Output XML yang dihasilkan mengambil format berikut:
<?xml version="1.0" encoding="utf-8"?>
<CodeMetricsReport Version="1.0">
<Targets>
<Target Name="ConsoleApp20.csproj">
<Assembly Name="ConsoleApp20, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
<Metrics>
<Metric Name="MaintainabilityIndex" Value="100" />
<Metric Name="CyclomaticComplexity" Value="1" />
<Metric Name="ClassCoupling" Value="1" />
<Metric Name="DepthOfInheritance" Value="1" />
<Metric Name="SourceLines" Value="11" />
<Metric Name="ExecutableLines" Value="1" />
</Metrics>
<Namespaces>
<Namespace Name="ConsoleApp20">
<Metrics>
<Metric Name="MaintainabilityIndex" Value="100" />
<Metric Name="CyclomaticComplexity" Value="1" />
<Metric Name="ClassCoupling" Value="1" />
<Metric Name="DepthOfInheritance" Value="1" />
<Metric Name="SourceLines" Value="11" />
<Metric Name="ExecutableLines" Value="1" />
</Metrics>
<Types>
<NamedType Name="Program">
<Metrics>
<Metric Name="MaintainabilityIndex" Value="100" />
<Metric Name="CyclomaticComplexity" Value="1" />
<Metric Name="ClassCoupling" Value="1" />
<Metric Name="DepthOfInheritance" Value="1" />
<Metric Name="SourceLines" Value="7" />
<Metric Name="ExecutableLines" Value="1" />
</Metrics>
<Members>
<Method Name="void Program.Main(string[] args)" File="C:\source\repos\ConsoleApp20\ConsoleApp20\Program.cs" Line="7">
<Metrics>
<Metric Name="MaintainabilityIndex" Value="100" />
<Metric Name="CyclomaticComplexity" Value="1" />
<Metric Name="ClassCoupling" Value="1" />
<Metric Name="SourceLines" Value="4" />
<Metric Name="ExecutableLines" Value="1" />
</Metrics>
</Method>
</Members>
</NamedType>
</Types>
</Namespace>
</Namespaces>
</Assembly>
</Target>
</Targets>
</CodeMetricsReport>
Metrics.exe
Jika Anda tidak ingin menginstal paket NuGet, Anda dapat membuat dan menggunakan aplikasi Metrics.exe secara langsung. Untuk menghasilkan executableMetrics.exe :
Kloninglah repositori dotnet/roslyn-analyzers.
Buka Developer Command Prompt untuk Visual Studio dengan hak administrator.
Dari dasar dari repositori roslyn-analyzers, jalankan perintah berikut:
Restore.cmdUbah direktori menjadi src\Tools\Metrics.
Jalankan perintah berikut untuk membangun proyek Metrics.csproj :
msbuild /m /v:m /p:Configuration=Release Metrics.csprojExecutable bernama Metrics.exe dihasilkan dalam direktori artifacts\bin pada direktori root repositori.
penggunaan Metrics.exe
Untuk menjalankan Metrics.exe, berikan proyek atau solusi dan file XML output sebagai argumen. Contohnya:
C:\>Metrics.exe /project:ConsoleApp20.csproj /out:report.xml
Loading ConsoleApp20.csproj...
Computing code metrics for ConsoleApp20.csproj...
Writing output to 'report.xml'...
Completed Successfully.
Mode warisan
Anda dapat memilih untuk membangun Metrics.exe dalam mode warisan. Versi mode warisan alat menghasilkan nilai metrik yang lebih mendekati apa yang dihasilkan oleh versi alat yang lebih lama. Selain itu, dalam mode lama, Metrics.exe menghasilkan metrik kode untuk serangkaian jenis metode yang sama dengan versi alat sebelumnya yang digunakan untuk menghasilkan metrik kode. Misalnya, ini tidak menghasilkan data metrik kode untuk penginisialisasi bidang dan properti. Mode lama berguna untuk kompatibilitas ke belakang atau jika Anda memiliki gerbang persetujuan kode berdasarkan nomor metrik kode. Perintah untuk membangun Metrics.exe dalam mode warisan adalah:
msbuild /m /v:m /t:rebuild /p:LEGACY_CODE_METRICS_MODE=true Metrics.csproj
Untuk informasi selengkapnya, lihat Mengaktifkan pembuatan metrik kode dalam mode warisan.
Versi sebelumnya
Visual Studio 2015 menyertakan alat metrik kode baris perintah yang juga disebut Metrics.exe. Versi alat sebelumnya ini melakukan analisis biner, yaitu analisis berbasis rakitan. Versi alat Metrics.exe yang lebih baru menganalisis kode sumber sebagai gantinya. Karena alat Metrics.exe yang lebih baru berbasis kode sumber, hasil metrik kode baris perintah mungkin berbeda dengan yang dihasilkan oleh Visual Studio IDE dan oleh versi Metrics.exesebelumnya. Mulai Visual Studio 2019, IDE Visual Studio menganalisis kode sumber seperti alat baris perintah dan hasilnya harus sama.
Alat metrik kode baris perintah baru menghitung metrik bahkan jika ada kesalahan kode sumber, selama solusi dan proyek dapat dimuat.
Perbedaan nilai metrik
Mulai dari Visual Studio 2019 versi 16.4 dan di Microsoft.CodeAnalysis.Metrics (2.9.5), SourceLines dan ExecutableLines menggantikan metrik sebelumnya LinesOfCode. Untuk deskripsi metrik baru, lihat Nilai metrik kode.
LinesOfCode metrik tersedia dalam mode lama.
Metrik lain seperti CyclomaticComplexity dan MaintainabilityIndex menggunakan rumus yang sama dengan versi Metrics.exesebelumnya , tetapi alat baru menghitung jumlah IOperations (instruksi sumber logis) alih-alih instruksi bahasa perantara (IL). Angka-angka akan sedikit berbeda dengan yang dihasilkan oleh Visual Studio IDE dan oleh versi Metrics.exesebelumnya.