Condividi tramite


SYSLIB0005: La Global Assembly Cache (GAC) non è supportata

.NET Core e .NET 5 e versioni successive eliminano il concetto di Global Assembly Cache (GAC) che era presente in .NET Framework. Per aiutare gli sviluppatori a evitare queste API, alcune API correlate alle GAC sono contrassegnate come obsolete, a partire da .NET 5. L'uso di queste API genera un avviso SYSLIB0005 in fase di compilazione.

Le API correlate alle GAC seguenti sono contrassegnate come obsolete:

  • Assembly.GlobalAssemblyCache

    Le librerie e le app non devono usare l'API GlobalAssemblyCache per determinare il comportamento in fase di esecuzione, perché in .NET Core e .NET 5 e versioni successive questa fornisce sempre false come risultato.

Soluzioni alternative

Se l'applicazione esegue una query sulla proprietà GlobalAssemblyCache, provare a rimuovere la chiamata. Se si usa il valore GlobalAssemblyCache per scegliere tra un "assembly nel flusso GAC" e un "assembly non nel flusso GAC" in fase di esecuzione, riconsiderare se il flusso ha ancora senso per un'applicazione .NET 5 e versioni successive.

Eliminare un avviso

Se è necessario usare le API obsolete, è possibile eliminare l'avviso nel codice o nel file di progetto.

Per eliminare solo una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare l'avviso.

// Disable the warning.
#pragma warning disable SYSLIB0005

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

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

Per eliminare tutti gli avvisi SYSLIB0005 nel progetto, aggiungere una proprietà <NoWarn> al file di progetto.

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

Per altre informazioni, vedere Non visualizzare gli avvisi.

Vedi anche