Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kod ölçümleri verilerini üç yolla oluşturabilirsiniz:
.NET kod kalitesi çözümleyicilerini etkinleştirerek ve içerdiği dört kod ölçümü (bakım) kuralını etkinleştirerek.
Visual Studio'da Kod Ölçümlerini Çözümle> menü komutunu seçerek.
C# ve Visual Basic projelerinin komut satırından .
.NET kod kalitesi çözümleyicileri kod ölçümleri kuralları
.NET kod kalitesi çözümleyicileri çeşitli kod ölçümleri çözümleyicisi kuralları içerir:
Bu kurallar varsayılan olarak devre dışıdır, ancak bunları Çözüm Gezgini'nden veya EditorConfig dosyasından etkinleştirebilirsiniz. Örneğin, CA1502 kuralını uyarı olarak etkinleştirmek için EditorConfig dosyanız aşağıdaki girdiyi içerir:
dotnet_diagnostic.CA1502.severity = warning
Konfigürasyon
Kod metriği kurallarının tetiklenme eşiklerini yapılandırabilirsiniz.
Bir metin dosyası oluşturun. Örneğin, CodeMetricsConfig.txtolarak adlandırabilirsiniz.
İstenen eşikleri metin dosyasına aşağıdaki biçimde ekleyin:
CA1502: 10Bu örnekte, CA1502 kuralı, bir yöntemin döngüsel karmaşıklığı 10'dan büyük olduğunda tetiklenecek şekilde yapılandırılmıştır.
Visual Studio'nun Özellikler penceresinde veya proje dosyasında yapılandırma dosyasının derleme eylemini AdditionalFiles olarak işaretleyin. Örneğin:
<ItemGroup> <AdditionalFiles Include="CodeMetricsConfig.txt" /> </ItemGroup>
Kod Ölçümlerini Hesapla menü komutu
Kod Ölçümlerini Çözümle> menüsünü kullanarak IDE'de açık projelerinizin biri veya tümü için kod ölçümleri oluşturun.
Çözümün tamamı için kod ölçümleri sonuçları oluşturma
Bir çözümün tamamı için aşağıdaki yollardan herhangi biri ile kod ölçümleri sonuçları oluşturabilirsiniz:
Menü çubuğunda Çözüm İçin>Kod Ölçümlerini Hesapla> seçeneğini seçin>.
Çözüm Gezgini'nde çözüme sağ tıklayın ve ardından Kod Ölçümlerini Hesapla'yı seçin.
Kod Ölçümleri Sonuçları penceresinde Çözüm için Kod Ölçümlerini Hesapla düğmesini seçin.
Sonuçlar oluşturulur ve Kod Ölçümleri Sonuçları penceresi görüntülenir. Sonuç ayrıntılarını görüntülemek için Hiyerarşi sütunundaki ağacı genişletin.
Bir veya daha fazla proje için kod ölçümleri sonuçları oluşturma
Çözüm Gezgini'nde bir veya daha fazla proje seçin.
Menü çubuğundanSeçili Projelerde> Hesapla'yı >.
Sonuçlar oluşturulur ve Kod Ölçümleri Sonuçları penceresi görüntülenir. Sonuç ayrıntılarını görüntülemek için Hiyerarşi'deki ağacı genişletin.
Komut satırı kodu ölçümleri
.NET Framework, .NET Core ve .NET Standard uygulamaları için C# ve Visual Basic projeleri için komut satırından kod ölçümleri verileri oluşturabilirsiniz. Komut satırından kod ölçümlerini çalıştırmak için Microsoft.CodeAnalysis.Metrics NuGet paketini yükleyin veya Metrics.exe yürütülebilir dosyasını kendiniz oluşturun.
Microsoft.CodeAnalysis.Metrics NuGet paketi
Komut satırından kod ölçümleri verileri oluşturmanın en kolay yolu Microsoft.CodeAnalysis.Metrics NuGet paketini yüklemektir. Paketi yükledikten sonra proje dosyanızı içeren dizinden komutunu çalıştırın msbuild /t:Metrics . Örneğin:
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)
belirterek /p:MetricsOutputFile=<filename>çıkış dosyası adını geçersiz kılabilirsiniz. ayrıca belirterek/p:LEGACY_CODE_METRICS_MODE=trueeski stil kod ölçümleri verilerini de alabilirsiniz. Örneğin:
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)
Kod ölçümleri çıkışı
Oluşturulan XML çıkışı aşağıdaki biçimi alır:
<?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
NuGet paketini yüklemek istemiyorsanız doğrudan Metrics.exe yürütülebilir dosyasını oluşturabilir ve kullanabilirsiniz. Metrics.exe yürütülebilir dosyasını oluşturmak için:
dotnet/roslyn-analyzers depoyu kopyalayın.
Visual Studio için Geliştirici Komut İstemi'ni yönetici olarak açın.
roslyn-analyzers deposunun kökünden aşağıdaki komutu yürütür:
Restore.cmdDizini src\Tools\Metrics olarak değiştirin.
Aşağıdaki komutu yürüterek Metrics.csproj projesini oluşturun:
msbuild /m /v:m /p:Configuration=Release Metrics.csprojdepo kökü altındaki artifacts\bin dizininde Metrics.exe adlı bir yürütülebilir dosya oluşturulur.
Metrics.exe kullanımı
Metrics.exe'yi çalıştırmak üzere, bağımsız değişken olarak bir proje veya çözüm ve bir çıkış XML dosyası sağlayın. Örneğin:
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.
Eski mod
eski moddaMetrics.exe oluşturmayı seçebilirsiniz. Aracın eski mod sürümü, aracın hangi eski sürümlerinin oluşturduğuna daha yakın ölçüm değerleri oluşturur. Ayrıca, eski modda Metrics.exe, aracın önceki sürümlerinin oluşturduğu aynı yöntem türleri kümesi için kod ölçümleri oluşturur. Örneğin, alan ve özellik başlatıcılar için kod ölçümleri verileri oluşturmaz. Eski mod, geriye dönük uyumluluk için veya kod ölçümleri numaralarına dayalı kod iade geçitleriniz varsa kullanışlıdır. Eski modda Metrics.exe derleme komutu şu şekildedir:
msbuild /m /v:m /t:rebuild /p:LEGACY_CODE_METRICS_MODE=true Metrics.csproj
Daha fazla bilgi için bkz. Eski modda kod ölçümleri oluşturmayı etkinleştirme.
Önceki sürümler
Visual Studio 2015, Metrics.exeolarak da adlandırılan bir komut satırı kodu ölçüm aracı içeriyordu. Aracın bu önceki sürümü bir ikili analiz, yani derleme tabanlı bir analiz yaptı. bunun yerineMetrics.exe aracının daha yeni sürümü kaynak kodunu analiz eder. Daha yeniMetrics.exe aracı kaynak kod tabanlı olduğundan, komut satırı kod ölçümleri sonuçları Visual Studio IDE tarafından ve öncekiMetrics.exesürümlerinde oluşturulanlardan farklı olabilir. Visual Studio 2019'dan başlayarak, Visual Studio IDE komut satırı aracı gibi kaynak kodu analiz eder ve sonuçlar aynı olmalıdır.
Yeni komut satırı kod ölçümleri aracı, çözüm ve proje yüklenebildiği sürece kaynak kodu hataları olsa bile ölçümleri hesaplar.
Ölçüm değeri farklılıkları
Visual Studio 2019 sürüm 16.4 ve Microsoft.CodeAnalysis.Metrics (2.9.5) ile SourceLines ve ExecutableLines, önceki LinesOfCode ölçümünün yerini alıyor. Yeni ölçümlerin açıklamaları için bkz. Kod ölçümleri değerleri. Eski modda LinesOfCode metriği kullanılabilir.
Diğer ölçümler örneğin CyclomaticComplexity ve MaintainabilityIndex, Metrics.exe önceki sürümleriyle aynı formülleri kullanır, ancak yeni araç, ara dil (IL) yönergeleri yerine IOperations (mantıksal kaynak yönergeleri) sayısını sayar. Sayılar, Visual Studio IDE ve öncekiMetrics.exesürümleri tarafından oluşturulanlardan biraz farklı olacaktır.