2016-09-15 4 views
3

VS 2015 업데이트 3 (및 nuget 3.4.4)을 설치 한 후, 4.6.1 프로젝트에 더 많은 종속성이 설치되어있는 것을 발견했습니다. 나는 .NETStandard 1.4에 의존하는 것을 수입한다.Nuget 3.4.4 프로젝트를 대상으로하는 .NET 표준 1.4 라이브러리 다운로드 .NET Framework 4.6.1

.NET Framework 4.6.1은 .NET Standard 1.4를 구현했기 때문에 Niget이 각 System.X 어셈블리를 가져 오는 이유는 무엇입니까? 타겟 프레임 워크가 이미 필요로하는 것을 알고 있어야 하는가?

단계는 내가보고 (약 혼동)하고있는 무슨 재현 :

  1. VS 2015 업데이트 3, 3.5 RC1에 nuget 업그레이드 (하지만 당신은 필요가 없습니다). 가 (내 대상 프레임 워크를 구현) .NET 표준 1.4
  2. 을 주목 System.X (System.IO, System.Collections에 대한 종속성이 설치 패키지를 Microsoft.IdentityModel.Clients.ActiveDirectory
  3. 공지 사항
  4. 새로운 콘솔 응용 프로그램 대상 .NET 프레임 워크 4.6.1
  5. , System.Linq 등)이 포함됩니다. 내가 낫게를 업데이트하기 전에는 그럴 필요가없는 것 같았습니다.
+0

이러한 추가 종속성은 무엇입니까? 이 문제가있는 패키지를 알려 주시면 문제를 확인할 수 있습니다. 또한 VS2015 업데이트 3의 NuGet 최신 버전은 3.5 버전입니다. 이 문제가 여전히 존재하는지 확인하려면 버전 3.5로 업그레이드하십시오. –

+2

VS 2015 업데이트 3은 3.5가 아닌 Nuget 3.4.4를 설치합니다. Nuget 3.5는 아직 RC에 있지만 여전히 위의 문제가 있습니다. VS. Update 3을 설치하기 전에 Microsoft.IdentityModel.Clients.ActiveDirectory Nuget 패키지를 추가 할 때 추가 코어 라이브러리가 종속성 체인에 포함되지 않았습니다. Update 3을 설치 한 후 핵심 라이브러리가 종속성 체인에 추가되기 시작했습니다. 나는 Nuget 3.5 RC를 설치했고 같은 문제가있다. .Net 4.6.1을 대상으로 .Net 표준 1.4 라이브러리를 추가 할 때 왜 핵심 라이브러리가 종속성에 포함됩니까? –

+0

아무도 그것을 설명 할 수 없다면, 그것은 뉘겟에게 이슈로 제출되어야하는 것처럼 들리네. 나는 그것을 더 며칠 줄 것이다. 어쩌면 내가 뭔가를 놓치고있어. – Kevin

답변

0

내 프로젝트에서 Microsoft.IdentityModel.Clients.ActiveDirectory 패키지를 설치할 때 내 비주얼 스튜디오 2015 업데이트 3, 내가 찾은를 버전 3.3으로 내 NuGet 패키지 관리자를 다운 그레이드 한 후,에 종속성이 추가하지 않습니다 내 프로젝트. 그래서이 문제는 NuGet 버전으로 인해 발생했습니다.

release note for NuGet 3.4에 따르면 "netstandard 및 netstandardapp 프레임 워크 모니 커"에 대한 지원이 시작됩니다. NuGet 3.4 시작은 .NET Standard 및 .NET Standard Framework 관련 응용 프로그램을 지원함을 의미합니다.

동일한 패키지에 대해 NuGet 3.3 및 NuGet 3.4 이상 버전의 종속성 부분을 비교하십시오. 버전 3.4 이전에는 "지원되지 않음"이 표시되지만 버전 3.4부터는 ".NET 표준, 버전 1.4"가 표시됩니다. 이것이 NuGet 3.4.4를 설치할 때 모든 종속성이 프로젝트에 추가되는 이유입니다. enter image description here

+0

이것은 여전히 ​​핵심 종속성이 .Net 4.6.1을 대상으로하는 프로젝트에 포함되는 이유에 대한 대답이 아닙니다. 내 프로젝트가 전체 프레임 워크를 목표로한다면 왜 System.Collections 및 System.IO 등과 같은 핵심 라이브러리를 포함해야합니까? –

+1

종속성은 현재 패키지에 프로젝트에서 이러한 버전의 종속성이 필요함을 의미합니다. 종속성 목록 패키지에 나열되어 있어도 프로젝트 참조에 모든 패키지를 설치하지는 않습니다. .NET 4.6.1 프로젝트는 .NET Standard 1.4를 구현했기 때문에. 설치 후 프로젝트의 참조를 확인하십시오. System.Collections 및 System.IO가 추가되지 않았습니다. 참조에 추가 된 프로젝트에 포함되지 않은 dll 만 찾을 수 있습니다. –

+0

흥미 롭습니다. (그리고 이것은 Nuget이 과거에 일반적으로 행동 한 방식이 아니기 때문에 혼란 스럽습니다.) System. * 종속성은 내 프로젝트의 내 개발자 패키지 관리자에 있지만 내 프로젝트 참조 또는 내 bin 폴더에 없다고 명시한대로. –