Aracılığıyla paylaş


NuGet FxCop çözümleyicilerinden .NET çözümleyicilerine geçiş

.NET Derleyici Platformu ("Roslyn") çözümleyicileri tarafından yapılan kaynak analizi, yönetilen kod için eski çözümlemenin yerini alır. Eski analiz (FxCop) kurallarının çoğu kaynak çözümleyici olarak zaten yeniden yazılmıştır.

Visual Studio 2019 16.8 ve .NET 5.0'dan önce bu çözümleyiciler NuGet paketi olarak Microsoft.CodeAnalysis.FxCopAnalyzers gönderildi.

Visual Studio 2019 16.8 ve .NET 5.0'dan başlayarak, bu çözümleyiciler .NET SDK'sı ile birlikte sunulur. .NET 5+ SDK'ya geçmek istemiyorsanız veya NuGet paket tabanlı bir model tercih ediyorsanız çözümleyiciler NuGet paketinde Microsoft.CodeAnalysis.NetAnalyzers de kullanılabilir. İsteğe bağlı sürüm güncelleştirmeleri için paket tabanlı bir model tercih edebilirsiniz.

Not

Birinci taraf .NET çözümleyicileri hedef platformdan bağımsızdır. Başka bir ifadeyle, projenizin belirli bir .NET platformını hedeflemesi gerekmez. Çözümleyiciler, hem hedef net5.0 projeler hem de , netstandardve net472gibi netcoreappönceki .NET sürümleri için çalışır.

Geçiş adımları

sürümünden 3.3.2başlayarak NuGet Microsoft.CodeAnalysis.FxCopAnalyzers paketi kullanım dışı bırakılmıştır. Projenizi veya çözümünüzü .NET çözümleyicilerine Microsoft.CodeAnalysis.FxCopAnalyzers geçirmek için lütfen aşağıdaki adımları izleyin:

  1. NuGet paketini kaldırma Microsoft.CodeAnalysis.FxCopAnalyzers

  2. .NET çözümleyicilerini etkinleştirin veya yükleyin. Projenizin hedef platformunu değiştirmeniz gerekmediğini unutmayın.

  3. Ek kuralları etkinleştir: Microsoft.CodeAnalysis.NetAnalyzers ile karşılaştırıldığında çok daha muhafazakardır Microsoft.CodeAnalysis.FxCopAnalyzers. FxCopAnalyzers paketinin aksine, derleme uyarıları olarak varsayılan olarak etkinleştirilen yalnızca birkaç doğruluk kuralı vardır. AnalysisMode MSBuild özelliğini özelleştirerek ek kuralları etkinleştirebilirsiniz. Örneğin, özelliğini AllEnabledByDefault olarak ayarlamak, tüm geçerli CA kurallarını varsayılan olarak derleme uyarıları olarak etkinleştirir.

    <PropertyGroup>
      <AnalysisMode>AllEnabledByDefault</AnalysisMode>
    </PropertyGroup>