SYSLIB0005: no se admite la caché global de ensamblados (GAC)
.NET Core y .NET 5 y versiones posteriores eliminan el concepto de caché global de ensamblados (GAC) presente en .NET Framework. Para ayudar a los desarrolladores a apartarse de estas API, algunas relacionadas con GAC se han marcado como obsoletas a partir de .NET 5. El uso de estas API genera una advertencia SYSLIB0005
en tiempo de compilación.
Las siguientes API relacionadas con GAC se han marcado como obsoletas:
-
Las bibliotecas y aplicaciones no deben usar la API GlobalAssemblyCache para realizar determinaciones sobre el comportamiento en tiempo de ejecución, ya que siempre devuelve
false
en .NET Core y .NET 5+.
Soluciones alternativas
Si la aplicación consulta a la propiedad GlobalAssemblyCache, considere la posibilidad de eliminar la llamada. Si usa el valor GlobalAssemblyCache para elegir entre un flujo de "ensamblado en GAC" frente a un flujo de "ensamblado no en GAC" en tiempo de ejecución, vuelva a considerar si el flujo sigue teniendo sentido para una aplicación .NET 5+.
Supresión de una advertencia
Si tiene que seguir usando las API obsoletas, puede suprimir la advertencia en el código o en el archivo de proyecto.
Para suprimir solo una infracción, agregue directivas de preprocesador al archivo de origen para deshabilitar y luego volver a habilitar la advertencia.
// Disable the warning.
#pragma warning disable SYSLIB0005
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0005
Para suprimir todas las advertencias SYSLIB0005
del proyecto, agregue una propiedad <NoWarn>
al archivo del proyecto.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0005</NoWarn>
</PropertyGroup>
</Project>
Para obtener más información, vea Suprimir advertencias.