2017-11-01 17 views
0

닷넷 응용 프로그램의 pack 명령을 사용하여 Nuget을 사용하여 Net Standard 프로젝트를 만들고 패키지했습니다.4.7.1 프로젝트의 NetStandard.Library에서 내 NetStandard 1.0 Nuget 끌기를 중지하려면 어떻게합니까?

C:\Program Files\dotnet\dotnet.exe" pack src/Acp.Framework.Essentials 

이 다음과 같은 Nuget 패키지에 NetStandard 1.0 클래스 어셈블리를 만듭니다

NuGet Package Explorer showing reference to netstandard1.0

나는 4.7을 대상으로 Windows 고전 데스크톱 .NET 콘솔 응용 프로그램에 비주얼 스튜디오에서이 Nuget 패키지를 추가하는 경우. 1 NetStandard에서 드래그합니다. 라이브러리 1.6.1 Nuget 패키지와 긴 외관의 목록입니다. 이러한 dll은 bin 폴더에 복사되며 app.config의 모든 리디렉션을 포함합니다.

나는이 facades 설치 (Nuget 참조도 출력 폴더에 복사도 안됨)를 원하지 않으며 응용 프로그램에서 리디렉션을 원하지 않습니다.

4.7.1에서는 NetStandard.Library가 필요하지 않습니다. 내 이해가 맞습니까?

내가 끌어들이는 것을 멈추기 위해 Nuget 패키지를 변경해야합니까, 다른 잘못하고 있습니까? 소비 프로젝트의 PROJ 파일에서

나는

<Project ToolsVersion="15.0" ... /> 
<TargetFrameworkVersion>v4.7.1</TargetFrameworkVersion> 

이 나는 ​​비주얼 스튜디오 2017 15.4.1 및 15.4.2에서 이것을 시도했다. 내가 직접 DLL을 참조하거나, 대신 Nuget의 프로젝트에 의해 경우

는 그것을 잘

답변

1

나의 이해는 4.7.1 당신이 NetStandard.Library를 필요가 없다는 것입니다 작동합니다. 내 이해가 맞습니까?

네, 맞습니다.

NETStandard.Library 패키지는 .NET 표준 라이브러리를 정의하는 NuGet 패키지 세트를 참조합니다. Microsoft.AspNetCore 패키지와 마찬가지로이 패키지는 dll 자체를 포함하지 않고 다른 많은 패키지를 참조합니다.

또한 일반적으로 NETStandard.Library 패키지는 라이브러리가 아닌 프로젝트에 의해 참조됩니다. 따라서 NETStandard 라이브러리 패키지는 라이브러리에서 참조하면 안됩니다. 그리고 이 종속성은 버전 2.0.4에서 변경되었습니다, 당신은 대상 프레임 워크 .NET Standard 2.0으로 프로젝트를 만들 수 있습니다

enter image description here

더 많은 상세 정보를 원하시면 What is the NETStandard.Library metapackage?를 참조하십시오.

게다가

, 당신은 전적으로 암시 적 참조를 사용하지 않고 NuGet 패키지의 종속성으로 포함되는 것을 NETStandard.Library 의존성을 해제 할 수있는 다음

<ItemGroup> 
    <PackageReference Update="NETStandard.Library" PrivateAssets="true" /> 
</ItemGroup> 

또는 직접 NuGet 패키지 탐색기하여 해당 종속성을 삭제할 수 있습니다 .

희망이 도움이됩니다.

+0

감사합니다. 대단히 도움이됩니다. 이것은 내가 제어하는 ​​Nuget 패키지에 대한 나의 특정한 문제를 해결한다; 내가하지 않는 것에 대한 제안이 있습니까? –