SYSLIB0005. Глобальный кэш сборок (GAC) не поддерживается

.NET Core и .NET 5 и более поздних версий устраняют концепцию глобального кэша сборок (GAC), представленного в .NET Framework. Чтобы помочь разработчикам избегать использования этих API, некоторые API, связанные с GAC, помечены как устаревшие, начиная с .NET 5. С помощью этих API создается предупреждение SYSLIB0005 во время компиляции.

Следующие API, связанные с GAC, помечены как устаревшие:

  • Assembly.GlobalAssemblyCache

    Библиотеки и приложения не должны использовать API GlobalAssemblyCache для определения поведения среды выполнения, поскольку он всегда возвращает false в .NET Core и .NET 5+.

Обходные пути

Если приложение запрашивает GlobalAssemblyCache свойство, рассмотрите возможность удаления вызова. Если вы используете значение GlobalAssemblyCache для выбора между "сборкой в GAC" и "сборкой, не в GAC" потока выполнения во время выполнения, переосмыслите, имеет ли он смысл для .NET 5+ приложения.

Отключение предупреждений

Если необходимо использовать устаревшие API, вы можете отключить предупреждение в коде или в файле проекта.

Чтобы отключить только одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить предупреждение.

// Disable the warning.
#pragma warning disable SYSLIB0005

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

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

Чтобы отключить все предупреждения SYSLIB0005 в проекте, добавьте свойство <NoWarn> в файл проекта.

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

Дополнительные сведения см. в разделе Подавление предупреждений.

См. также