동적으로로드 된 어셈블리의 호환성
런타임에 dotnet 어셈블리를 동적으로로드하고 싶습니다.
netcore 3.1 콘솔 앱이 있다고 가정 해 보겠습니다.
- .net 표준 어셈블리를로드 할 수 있습니까? 그렇다면 어떤 특정 버전을로드 할 수 있습니까?
- .net framework 4.8과 같은 클래식 .net 어셈블리를로드 할 수 있습니까? 그렇다면 이전 버전도로드 할 수 있습니까?
dotnet framework 4.8 콘솔 앱이있는 경우 반대 상황은 어떻습니까?
- .net 표준 어셈블리를로드 할 수 있습니까?
- 어셈블리, .net 프레임 워크 4.6과 같은 이전 클래식 .net을로드 할 수 있습니까?
답변
.NET Standard는 사용자가 호출 할 수있는 API의 버전 목록 인 인터페이스 입니다.
.NET 표준은 .NET 프레임 워크와 .NET 코어 모두에서 참조 할 수 있습니다.
이것은 무엇을 의미 하는가?
클래스 라이브러리에는 .Net 표준을 사용해야합니다.
.NET Framework와 .NET core는 플랫폼을 대상으로합니다. .Net 프레임 워크는 Windows에서만 작동하는 반면 .Net core는 세 가지 (Windows / Linux / MacOS) 운영 체제 모두에서 작동합니다. 이들은 서로를 참조해서는 안됩니다.
이것이 .Net 표준이 존재하는 이유입니다.
따라서 신속하게 질문에 답하십시오.
- .net 표준 어셈블리를로드 할 수 있습니까? 그렇다면 어떤 특정 버전을로드 할 수 있습니까? 예, .Net 표준을 사용해야합니다.
- .net framework 4.8과 같은 클래식 .net 어셈블리를로드 할 수 있습니까? 그렇다면 이전 버전도로드 할 수 있습니까? 당신은 아마 할 수 있습니다.
dotnet framework 4.8 콘솔 앱이있는 경우 반대 상황은 어떻습니까?
- .net 표준 어셈블리를로드 할 수 있습니까? 예!
- 어셈블리, .net 프레임 워크 4.6과 같은 이전 클래식 .net을로드 할 수 있습니까? 예! 그러나 여기에서 잘 살펴보십시오-> https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/version-compatibility#Apps
.NET Standard 용입니다. Microsoft Docs에서 가져 왔습니다.
주의해야 할 사항에 대한 문서는 매우 명확합니다. 아래 텍스트는 스크린 샷의 텍스트와 유사합니다. 더 읽기 쉽게 여기에 추가했습니다.
다음 표에는 각 .NET Standard 버전을 지원 하는 최소 플랫폼 버전이 나열되어 있습니다. 즉, 나열된 플랫폼의 이후 버전도 해당 .NET Standard 버전을 지원합니다. 예를 들어 .NET Core 2.2는 .NET Standard 2.0 및 이전 버전을 지원합니다.
안내서
이 외에도-> https://docs.microsoft.com/en-us/dotnet/standard/net-standard#net-implementation-support
타겟팅 오류 및 전 이적 종속성 오류 를 방지 하거나 최소한 최소로 유지하기 위해. .NET 표준 을 사용할 때 패키지 관리를 PackageReference로 변경하십시오 .
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
아래 링크는 전체 정보와 이러한 오류에 대한 몇 가지 문제 해결 팁을 제공합니다.
출처 : https://www.hanselman.com/blog/ReferencingNETStandardAssembliesFromBothNETCoreAndNETFramework.aspx