Compartilhar via


SYSLIB0005: O GAC (cache de assembly global) não tem suporte

O .NET Core e o .NET 5 e versões posteriores eliminam o conceito do GAC (cache de assembly global) que estava presente no .NET Framework. Para ajudar a afastar os desenvolvedores dessas APIs, algumas APIs relacionadas ao GAC são marcadas como obsoletas, começando no .NET 5. Usar essas APIs gera um aviso SYSLIB0005 em tempo de compilação.

As seguintes APIs relacionadas ao GAC são marcadas como obsoletas:

Soluções alternativas

Se o aplicativo consultar a propriedade GlobalAssemblyCache, considere remover essa chamada. Se você usar o valor GlobalAssemblyCache para escolher entre um "assembly no GAC" -fluxo versus um "assembly não no GAC" -fluxo em tempo de execução, reconsidere se o fluxo ainda faz sentido para um aplicativo .NET 5+.

Suprimir um aviso

Se você precisar usar as APIs obsoletas, poderá suprimir o aviso no código ou no arquivo de projeto.

Para suprimir apenas uma única violação, adicione diretivas de pré-processador ao arquivo de origem para desabilitar e, em seguida, reabilitar o aviso.

// Disable the warning.
#pragma warning disable SYSLIB0005

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

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

Para suprimir todos os SYSLIB0005 avisos em seu projeto, adicione uma <NoWarn> propriedade ao arquivo de projeto.

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

Para obter mais informações, consulte Suprimir avisos.

Consulte também