2012-12-30 3 views
3

모든 솔루션에 대해 모든 NuGet 패키지가 있어야하는 위치를 지정하는 프로젝트 루트 폴더에 nuget.config 파일을 배치했습니다.내가이 일을 제대로하고 있습니까? 중앙 패키지 폴더로 Nuget 패키지 복원

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <config> 
    <add key="repositoryPath" value="D:\Projects\Development\NuGet Packages" /> 
    </config> 
</configuration> 

나는 또한 내 모든 솔루션에 복원 NuGet 패키지를 사용할 수있다 : 여기

는 파일입니다.

처음 설정할 때 nuget.config 파일이 무시되었습니다. 모든 NuGet 패키지가 솔루션 폴더의 "packages"폴더에 저장되었습니다. 이 폴더를 여러 번 삭제하려고 시도했지만 NuGet은 패키지를 다시 작성하여 패키지로 채 웁니다.

많은 시행 착오 끝에 "NuGet.targets"의 <PackagesDir> 요소를 발견하고이를 주석 처리하면 패키지가 내 프로젝트 루트의 올바른 폴더에 배치 될 수있었습니다.

여기 NuGet.targets에서 해당 줄의

<PackagesDir>$([System.IO.Path]::Combine($(SolutionDir), "packages"))</PackagesDir> 

내 질문에 따라야 할 내 nuget.config 파일을 얻기 위해 의도 된 방법은 단순히 NuGet.targets 파일의 PackagesDir 요소를 주석 여부 또는 내가 더 분명한 해결책을 찾지 못한다면.

답변

3

질문에서 플레이 두 가지가 있습니다

  • 경우 NuGet 저장소 패키지를합니까? 처음에 대해서는 공개 프로젝트 (들)/솔루션

에 대한

  • NuGet 패키지 복원 : 당신의 nuget.config 파일의 repositoryPath 키를 설정하면 다른에 패키지를 추출하기 위해 NuGet을 지시하는 올바른 방법입니다 폴더에 저장됩니다. 이 설정은 개발자가 프로젝트에 패키지 참조를 추가 할 때마다 사용됩니다.

    NuGet 패키지 복원의 경우이 설정은 NuGet.targets에있는 설정으로 대체됩니다. 이 설정은 솔루션 빌드시 패키지를 복원 할 때 사용됩니다.

    패키지 복원 을 사용자 지정 경로로 사용하려면 실제로이 두 가지를 모두 지정해야합니다. 첫 번째는 개발자 용이고 두 번째는 패키지 복원 용입니다.

  • +0

    감사합니다. 나는 그대로 살아야한다. – devuxer

    +0

    가! 그걸 정리하려고 너무 많은 시간을 낭비했는데 ... 왜 NuGet이 그 값을 두 번 구성하려고했을까요? 나는 정말로 2.1 릴리스 노트가 그것을 지적했으면 좋겠다 ... – AllenSanborn