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:
-
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.