2015-01-30 3 views
0

내 프로젝트의 DLL 빌드와 일부 타사 DLL을 포함하는 너겟 패키지가 있습니다. v4 및 v4.5를 대상으로하는 nuget 패키지의 공통 DLL 참조

이 같은 .nuspec 파일의 항목과 이전에 작업 한 :

<files> 
    <file src="..\..\Libraries\*.dll" target="lib" /> 
</files> 

Nuget는 참조를 제 3 자 라이브러리뿐만 아니라 내 프로젝트의 출력을 수정합니다. 그러나 .NET v4 및 v4.5를 모두 대상으로 프로젝트를 업데이트했지만 두 경우 모두 3 부 DLL이 동일합니다.

나는이 내 nuspec 파일을 변경했습니다 :

<files> 
    <file src="..\..\Libraries\*.dll" target="lib" /> 
    <file src="bin\release\4.0\MyProject.dll" target="lib\net40" /> 
    <file src="bin\release\4.5\MyProject.dll" target="lib\net45" /> 
</files> 

과 nuget 패키지는 올바른 위치에있는 모든 올바른 파일이 포함되어 있습니다. 그러나 패키지를 설치 한 후에는 "MyProject.dll"만 참조되며 타사 DLL은 참조되지 않습니다.

target="lib"을 어떻게 변경하여 모든 프레임 워크 버전에서 DLL이 참조되도록합니까?

감사

답변

1

당신은 lib 디렉토리의 \의 net40 및 LIB \ net45 디렉토리의 양쪽에 타사 DLL을 넣어해야합니다.

NuGet은 프로젝트의 대상 프레임 워크를보고 NuGet 패키지의 lib 디렉토리에서 일치하는 항목을 찾습니다. 일치하는 항목을 찾으면 특정 lib 디렉토리의 dll에 대한 참조 만 추가합니다. 따라서 .NET 4.0 프로젝트는 lib \ net40 디렉토리의 dll에 참조 만 추가했습니다.

+0

감사합니다. 그게 실제로 제가 끝내 준 것입니다. 패키지의 크기가 두 배로 넓어지기를 바랬지 만, 적어도 작동합니다. – Simon

관련 문제