Aracılığıyla paylaş


SYSLIB0005: Genel derleme önbelleği (GAC) desteklenmiyor

.NET Core ve .NET 5 ve sonraki sürümleri, .NET Framework'te mevcut olan genel derleme önbelleği (GAC) kavramını ortadan kaldırır. Geliştiricileri bu API'lerden uzaklaştırmaya yardımcı olmak için GAC ile ilgili bazı API'ler .NET 5'ten başlayarak eski olarak işaretlenir. Bu API'lerin kullanılması derleme zamanında uyarı SYSLIB0005 oluşturur.

Aşağıdaki GAC ile ilgili API'ler eski olarak işaretlenir:

  • Assembly.GlobalAssemblyCache

    Kitaplıklar ve uygulamalar, her zaman .NET Core ve .NET 5+ sistemlerinde false döndürdüğü için çalışma zamanı davranışı hakkında belirlemeler yapmak amacıyla GlobalAssemblyCache API'sini kullanmamalıdır.

Geçici Çözümler

Uygulamanız GlobalAssemblyCache özelliğini sorguluyorsa çağrıyı kaldırmayı göz önünde bulundurun. GlobalAssemblyCache değerini, çalışma zamanında "GAC'de derleme" akışı ile "GAC'de olmayan derleme" akışı arasında seçim yapmak için kullanıyorsanız, bu akışın .NET 5+ uygulaması için hala anlamlı olup olmadığını yeniden değerlendirmeniz gerekir.

Uyarıyı gizleme

Eski API'leri kullanmanız gerekiyorsa, uyarıyı kodda veya proje dosyanızda gizleyebilirsiniz.

Yalnızca tek bir ihlali engellemek için, önişlemci yönergelerini kaynak dosyanıza ekleyerek uyarıyı devre dışı bırakın ve sonra yeniden etkinleştirin.

// Disable the warning.
#pragma warning disable SYSLIB0005

// Code that uses obsolete API.
// ...

// Re-enable the warning.
#pragma warning restore SYSLIB0005

Projenizdeki tüm SYSLIB0005 uyarılarını engellemek için proje dosyanıza bir <NoWarn> özelliği ekleyin.

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   ...
   <NoWarn>$(NoWarn);SYSLIB0005</NoWarn>
  </PropertyGroup>
</Project>

Daha fazla bilgi için bkz. uyarıları gizleme.

Ayrıca bakınız