2017-05-11 8 views
0

NuGet 패키지 시스템에서 머리를 감싸려고합니다. 최근에 나는 .NET Framework 4.5.2만을 대상으로 NuGet 용 클래스 라이브러리를 릴리스했지만 요구에 따라 .NET Standard 1.4를 목표로 새로운 클래스 라이브러리를 작성하기로 결정했습니다.여러 프로젝트를 단일 NuGet 패키지로 패키지화

여기 내가 길을 잃은 곳입니다. 하나의 NuGet 패키지에서 여러 프레임 워크를 타겟팅 할 수 있습니까?이 두 가지 프로젝트가있는 시나리오입니까?

.NET Framework 4.5.2 프로젝트를 제거하고이를 .NET Standard 1.4 프로젝트로 바꾸는 것이 합리적일까요? 코드는 100 % 동일합니다.

이러한 시나리오를 탐색하기위한 권장 사항이나 모범 사례가 있습니까?

답변

0

.NET Framework 4.5.2를 지원해야하는 경우 compatibility matrix에 따라 .NET Standard 버전을 1.2로 낮추어야합니다. .NET Standard 1.4 패키지는 .NET Framework 4.6.1에서만 사용할 수 있기 때문에 +.

사용자가이 기능을 사용할 수없는 경우 .NET Framework .NET Framework 버전과 동일한 NuGet 패키지에 동일한 프로젝트가 빌드되도록 프로젝트를 다중 대상으로 지정할 수 있습니다. 해당 패키지를 참조하는 .NET Framework 프로젝트는 동일한 패키지의 .NET Standard dll보다 .NET Framework dll을 선호합니다.

당신은 TargetFrameworks (복수)에 속성을 변경하여

<TargetFrameworks>net452;netstandard1.4</TargetFrameworks> 

<TargetFramework>netstandard1.4</TargetFramework> 

에서 .NET 표준 프로젝트를 변경하여이 작업을 수행 할 수 있습니다,이 프로젝트는 이제 두 번 지어 질 것이다 - 한 번 지정된 프레임 워크 당.