.Netstandard2는 .Net Core 2.0 및 vs2017.3과 함께 nuget4.3 및netstandard 2.0 및 netcore 2.0의 최종 릴리스에서 전체 프레임 워크를 사용할 수있는 동안 netstandard2 라이브러리를 구축해야하는 이유 4.6.1
에서 인용 net461 API 표면 커버 (41 개 클래스 제외) 32K 및 전체 커버는 이제 비주얼 스튜디오 2017 15.3을 사용하여 .NET 표준 라이브러리에서 .NET 프레임 워크의 라이브러리를 참조 할 수 있습니다. 이 기능을 사용하면 시간이 지남에 따라 .NET Framework 코드를 .NET Standard 또는 .NET Core로 마이그레이션 할 수 있습니다 (바이너리로 시작한 다음 소스로 이동). 소스 코드가 더 이상 액세스 할 수 없거나 .NET Framework 라이브러리에서 손실되어 새로운 시나리오에서 여전히 사용할 수있는 경우 유용합니다.
이 기능은 .NET 표준 라이브러리에서 가장 일반적으로 사용되기를 기대합니다. .NET 핵심 애플 리케이션 및 라이브러리에서도 작동합니다. .NET Framework 라이브러리도 사용할 수 있습니다.
지원되는 시나리오는 .NET Standard API 집합 내의 형식 만 사용하는 .NET Framework 라이브러리를 참조합니다. 또한 .NET Framework 4.6.1 이하를 대상으로하는 라이브러리 (.NET Framework 1.0도 괜찮습니다)에서만 지원됩니다.
그래서 .netcore2 환경에서 우리는 .netstandard2 라이브러리로 전환 할 필요없이 오랫동안 해왔 던 것처럼 .Net Framework 전체를 계속 빌드하고 사용할 수 있습니다.
멀티 타겟 프로젝트 (net64; netstandard2)를 사용하면 같은 API 범위에서 .net 표준 2.0 무료 (0 시간 노력)를 얻을 수 있습니다.
다음에 관한 경험을 공유 할 수 있습니까? 전체 프레임 워크 4.6.1 클래스 라이브러리를 계속 빌드하고 .netcore2에서 사용할 수 있습니까? 한계는 무엇입니까?
문제는 netstandard2 프로젝트가 netstandar1.3 패키지 (예 : 적은 기능) 인 반면 net461 프로젝트에서는 net45 (전체 기능)를 참조하고 netcore2에서 잘 작동한다는 것입니다. netstandard1.3이 아닌 net45를 설치하기 위해 netstandard2를 적용하는 방법 (디스크에서 수동으로 참조하는 DLL 제외)이 있습니까? 단위 테스트를 통해 사용의 유효성과 호환성 문제를 확인할 수 있습니다. 왜냐하면 70 % 너겟 패키지는 대부분 net45와 netstandard1.3 준비가되어 있기 때문입니다. –
아니요, NuGet은 항상 "가장 가까운"프레임 워크를 선택합니다.이 프레임 워크는 기능 세트가 적을지라도 항상 동일한 프레임 워크입니다.net 호환은 다른 호환되는 프레임 워크가없는 경우에만 대체 될 수 있습니다. –