Compartir a través de


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:

  • Assembly.GlobalAssemblyCache

    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.

Vea también