2012-02-14 4 views
7

내 솔루션에서 패키지 복원 옵션을 사용하도록 설정 했으므로 코드를 CI 서버에 업로드 할 때 올바르게 빌드해야하는 모든 패키지가 업데이트되므로 제대로 작동합니다. 이제 문제는 내 로컬 컴퓨터에서 "패키지 업데이트"이기 때문에 빌드가 시작하는 데 오랜 시간이 걸리는 것입니다. 릴리스 빌드에서만 패키지 복원을 활성화하는 방법이 있습니까?디버그 빌드에서 NuGet 복원 패키지 만 사용 금지

나는 falsetrue으로 출시/디버그 섹션에 .csproj 파일에 <RestorePackage> 속성을 이동하려고했지만, NuGet는 속성을 업데이트 할 때 열어 NuGet 콘솔과 true에 모두 재설정; 또한 릴리스 섹션에 속성 만 포함하려고 시도했지만 NuGet이이를 전역 섹션에 추가했습니다 ... 그래서 나는 그것을 원하는 방식으로 유지하는 행운이 없었습니다 ...

어떤 조언이 필요합니까?

답변

15

당신은 아마 지금이 답변을 관리해야하지만, 이러한 단계를하는 것은 아닙니다 다음 경우

를 따라야 솔루션 파일이 .nuget라는 이름의 폴더가 있어야 윈도우 내에 오른쪽. 이 폴더의 이름을 변경하거나 삭제하십시오.

지금 각 .csproj 또는 메모장에서의 .vbproj 파일이나 텍스트 편집기를 열고 다음 줄

<RestorePackages>true</RestorePackages> 
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" /> 

중요한 부분은/제거 .nuget 폴더의 이름을 변경한다을 제거합니다. 이제 패키지 복원이 완전히 비활성화됩니다.

편집 : DEBUG를 위해 선택적으로 해제 패키지를 복원하기는 Nuget.settings.targets 파일이

<RestorePackages Condition="$(RestorePackages) == ''">false</RestorePackages> 

<RestorePackages Condition="$(RestorePackages) == '' AND '$(Configuration)' == 'Debug'">false</RestorePackages> 

에 다음 줄을 Nuget.settings.targets 파일을 편집하고 수정할 구축 솔루션 파일과 같은 폴더에 있어야합니다. nuget 폴더 아래에.

+0

글쎄, 패키지 복원을 완전히 제거하고 싶지 않습니다. 단지 디버그 빌드를 사용하지 않기를 원합니다. 로컬/dev 컴퓨터에있을 때 실행하고 싶지 않지만 패키지를 가져오고 CI 서버에 업로드 할 때 모두 가져 오십시오. – Jaime

+0

수정 제안을 해 주셔서 감사합니다. – Jaime

+0

필자는 이것이 AND가 아닌 최종 예에서 OR이라고 생각합니다. 즉 $ (RestorePackages) == 'OR $ (Configuration) =='Debug '. –

관련 문제