다음을 통해 공유


SYSLIB0005: GAC(전역 어셈블리 캐시)가 지원되지 않음

.NET Core 및 .NET 5 이상 버전에서는 .NET Framework에 있었던 GAC(전역 어셈블리 캐시) 개념이 사라집니다. 개발자가 이러한 API를 사용하지 않도록 하기 위해 .NET 5부터 일부 GAC 관련 API는 사용되지 않는 것으로 표시됩니다. 이러한 API를 사용하면 컴파일 시간에 SYSLIB0005 경고가 생성됩니다.

다음은 사용되지 않는 것으로 표시되는 GAC 관련 API입니다.

  • Assembly.GlobalAssemblyCache

    라이브러리와 앱은 런타임 동작에 대한 결정을 내릴 때 GlobalAssemblyCache API를 사용하면 안 됩니다. 이 API는 .NET Core 및 .NET 5+에서 항상 false를 반환하기 때문입니다.

해결 방법

애플리케이션이 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>

자세한 내용은 경고 표시 안 함을 참조하세요.

참고 항목