2017-11-23 23 views
1

프로젝트에 파일을 추가하고 "출력 디렉토리에 복사" 플래그를 설정하려면 내 NuGet 패키지가 필요합니다. answer by @workabyte to Set content files to “copy local : always” in a nuget package에서 볼 수 있듯이 NuGet contentFiles를 사용하여 파일을 복사하여 출력 디렉토리를 빌드

지금까지, 나는 install.ps1 스크립트를 사용하고 있습니다.

하지만 NuGet 3.3 및 최신가 contentFiles model를 사용하여 네이티브 지원을하고있는 것으로 이해했습니다. 패키지가 컴파일 될 때

<?xml version="1.0"?> 
<package> 
    <metadata minClientVersion="3.3.0"> 
    ... 
    <contentFiles> 
     <files include="**/*.png" buildAction="None" copyToOutput="true" /> 
    </contentFiles> 
    </metadata> 
</package> 

, 그 디렉토리 구조와 image.png가 추가됩니다 : 내 .nuspec에서 다음

contentFiles\ 
    any\ 
    any\ 
     image.png 

그리고 :

나의 이해는 내가 좋아하는 디렉토리 구조를 만드는 것이 었습니다 .nupkg.

하지만, 비주얼 스튜디오 (2017)에서 패키지를 설치할 때 image.png도 프로젝트에 추가되지 않습니다.

내가 뭘 잘못하고 있니?

+0

당신은 NuGet 패키지를 참조의'PackageReference' 스타일을 사용하고 있습니까? 'contentFiles'는'packages.config' 기반 프로젝트에서 작동하지 않습니다 –

+0

@MartinUllrich 응답 해 주셔서 감사합니다. 나는이 줄을 따라 뭔가를 읽었다. 그러나 솔직히 말해서, 나는 그것을 이해하지 못합니다. * "NuGet 패키지를 참조하는 스타일"*이란 무엇입니까? –

+1

NuGet 옵션에서 패키지를 프로젝트에 처음 설치할 때 packages.config와 PackageReference 중에서 선택할 수 있습니다. 프로젝트를 아직 업그레이드 할 방법이 없습니다 (모든 패키지 제거 => 스위치 "스타일"=> 다시 설치하십시오). –

답변

1

contentFiles 기능은 PackageReference NuGet 패키지를 참조하는 "스타일"을 사용할 때만 지원됩니다. 그것은 packages.config를 사용하여 프로젝트에 작동하지 않습니다 (하지, 모든 패키지를 제거 유형을 변경하고 다시 그들 모두를 설치하는 것보다 다른 작성시에는 마이그레이션 경로가 없음을).

참조 NuGet의 블로그 게시물 "NuGet is now fully integrated into MSBuild", 특히 절 "무엇 .NET 핵심하지 않은 다른 프로젝트 유형에 대한?" 기본 NuGet 패키지 참조 방법을 설정하는 방법에 대한 지침이 나와 있습니다.

+0

답변 해 주셔서 감사합니다. 'PackageReference'는 VS 2017 일뿐입니까? 이전 버전에서는'packages.config' 만 사용되었습니다. 맞습니까? (어쩌면 명시 적으로 버전 NuGet addon을 설치하지 않는 한). 또한'PackageReference'에서'install.ps1'이 실행되지 않는 것 같습니다. 맞습니까? –

+0

[NuGet content 및 contentFiles 폴더에 파일 복제 방지] (https://stackoverflow.com/q/47468941/850848)의 후속 질문을 게시했습니다. 좀 봐 줄래? –