SYSLIB0005: A globális szerelvénytár (GAC) nem támogatott

A .NET Core és a .NET 5 és újabb verziók megszüntetik a .NET-keretrendszerben található globális szerelvény-gyorsítótár (GAC) fogalmát. Annak érdekében, hogy a fejlesztők távolodjanak ezektől az API-któl, a GAC-hoz kapcsolódó API-k némelyike elavultként van megjelölve, kezdve a .NET 5-tel. Ezen API-k használata figyelmeztetést SYSLIB0005 generál fordításkor.

A következő GAC-kkal kapcsolatos API-k elavultnak vannak megjelölve:

  • Assembly.GlobalAssemblyCache

    A kódtárak és alkalmazások nem használhatják az API-t a GlobalAssemblyCache futtatókörnyezet viselkedésének meghatározására, mivel az mindig a .NET Core-ban és a .NET 5+-ban tér vissza false .

Áthidaló megoldások

Ha az alkalmazás lekérdezi a tulajdonságot GlobalAssemblyCache , fontolja meg a hívás eltávolítását. Ha a GlobalAssemblyCache értéket használja a "GAC-ban található szerelvény folyamata" és a "GAC-ban nem található szerelvény folyamata" közötti választáshoz futásidőben, gondolja át, hogy a folyamatnak van-e még értelme egy .NET 5+ alkalmazás esetében.

Figyelmeztetés mellőzése

Ha az elavult API-kat kell használnia, letilthatja a figyelmeztetést a kódban vagy a projektfájlban.

Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz, hogy letiltsa, majd engedélyezze újra a figyelmeztetést.

// Disable the warning.
#pragma warning disable SYSLIB0005

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

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

Ha el szeretné tiltani a projekt összes SYSLIB0005 figyelmeztetését, adjon hozzá egy <NoWarn> tulajdonságot a projektfájlhoz.

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

További információ: Figyelmeztetések letiltása.

Lásd még