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

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

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

  • Assembly.GlobalAssemblyCache

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

Методы обхода проблемы

Если приложение запрашивает свойство GlobalAssemblyCache, рассмотрите возможность удалить вызов. Если вы используете значение GlobalAssemblyCache для выбора между потоками сборки в глобальном кэше сборок и вне него во время выполнения, еще раз оцените, требуется ли такой поток по-прежнему в приложении .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>

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

См. также