2017-10-25 4 views
0

.Net 3.5 및 Net Standard 2.0을 대상으로하는 너겟을 만들었습니다. .Net 3.5 프로젝트에 너겟을 설치하면 올바른 버전의 너겟이 설치됩니다. 그러나 .Net 4.6.1 프로젝트에 동일한 너겟을 설치하려고하면 Net Standard 2.0 대신 net35 버전이 설치됩니다. 나는 닷넷 4.6.1이 네트 표준 2.0과 호환된다고 (공식적인 마이크로 소프트 문서에 따르면 : https://docs.microsoft.com/en-us/dotnet/standard/net-standard) 생각했다.멀티 프레임 워크 Nuget 잘못된 프레임 워크 설치

누락되었거나 잘못 포장 된 너겟입니까?

답변

1

NuGet은 그렇게 작동하지 않습니다. NuGet은 찾을 수있는 프로젝트에 대해 가장 구체적인 대상 프레임 워크를 사용합니다. .NET Framework를 대상으로하는 NuGet 패키지에 어셈블리가 있으므로 .NET Framework를 대상으로하는 프로젝트에 .NET Standard 어셈블리가 아닌 해당 어셈블리를 사용합니다.

NuGet 패키지에 lib/net35 폴더가없는 경우 최신 버전의 NuGet이 사용되는 경우 .NET Framework 2.0 어셈블리가 .NET Framework 4.6.1 프로젝트에서 사용됩니다.

.NET 4.6.1 프로젝트에 다른 어셈블리를 사용하려면 NuGet 패키지의 lib/net461 폴더에 어셈블리가 있어야합니다.

+0

.NET 4.6.1에 대한 타겟팅이 추가되었으며 제대로 작동하는 것으로 보입니다. 감사. –