2014-12-29 4 views
0

Visual Studio 2013에 여러 프로젝트가있는 솔루션이 있습니다. 저는 Git을 사용합니다. 이제 각 프로젝트에는 자체 패키지 폴더가 있습니다. 두 가지 질문을 드리겠습니다. 이 폴더를 커밋 할 것을 권장합니까?Nuget and Git Integration

MSBuild 기반 패키지 복원 또는 자동 패키지 복원이라는 최상의 시나리오 인 솔루션에서 사용하기 위해?

답변

2

작업의 통보 방법은 빌드시 NuGet이 packages 폴더를 다시 만들 수 있도록하는 것입니다 감사합니다. 패키지가 포함 된 패키지 리포지토리에 액세스 할 때 필수 요소는 아니며 소스 제어에 이진 파일을 추가하는 것도 좋습니다.

대부분 패키지 폴더에서 repositories.config을 실행할 수 있습니다. 패키지 내용은 빌드 중에 검색 할 수 있습니다. repositories.config는 빌드 프로세스의 힌트로 남겨 둘 수 있습니다.이 파일을 소스 제어에 추가하는 데는 비용이 거의 들지 않습니다.

a complete explanation here 있습니다 :

원래 NuGet 워크 플로우는 소스 제어에 패키지 폴더 을 저지하고있다. 그 이유는 개발자가 NuGet을 가지고 있지 않을 때 이 일반적으로 수행하는 것과 일치한다는 것입니다. 즉, Lib 또는 ExternalDependencies 폴더를 만들고 거기에 바이너리를 덤프하고 다른 사람이 빌드 할 수 있도록 소스 컨트롤에 을 커밋합니다.

일부 사용자에게는 이것이 문제가되지 않지만, 에서 소스 제어 도구로 패키지를 커밋하는 것이 많은 사람이 을 원하는 것으로 들었습니다. Mercurial이나 Git과 같은 DVCS를 사용할 때 바이너리를 저장하면 시간이 지남에 따라 저장소 크기가 커질 수 있으므로 복제가 점점 더 고통스러워집니다. 사실, 이것은 NuGet의 문제 추적기에 대한 상위 요청 중 하나였습니다.

좋은 소식은 NuGet이 이제이 문제를 해결하기 위해 긴 방법을 사용하는 워크 플로를 제공하며 설정하기가 쉽습니다.

활성화 패키지는 빌드하는 동안 NuGet 2.0 패키지를 복원 부터 빌드하는 동안 복원 사용자의 명시 적 동의가 필요합니다 여기를 할 수있는 방법입니다. 이 작업은 프로젝트를 빌드하는 각 시스템에서 수행해야합니다.

Visual Studio에서 "NuGet이 누락 된 패키지를 다운로드하는 동안 빌드 을 허용"을 활성화하십시오. 이 설정은 옵션 -> 패키지 관리자 -> 일반하에 있습니다.

NuGet 패키지는 Visual Studio에 설치 없이 빌드 서버에 대한 복원을 사용하려면

를 설정 누락 된 패키지를 다운로드 할 수 있도록 허용, 당신은 또한 환경 변수 EnableNuGetPackageRestore "true"로 설정할 수 있습니다.

프로젝트 설정 이미 NuGet을 사용하고 있거나이를 사용할 계획이고 no-commit 워크 플로우를 으로 설정한다고 가정 해 보겠습니다.

솔루션 탐색기에서 솔루션 노드를 마우스 오른쪽 단추로 클릭하고 NuGet 패키지 복원 사용을 선택하십시오.

NuGet 패키지 복원 상황에 맞는 메뉴 사용

그게 전부 야! 너 모두 준비 됐어.

세부 사항 그렇게 정확히 무엇을 했습니까? NuGet.exe와 NuGet.targets MsBuild 파일을 포함하는 .nuget이라는 솔루션 폴더가 추가되었습니다. 특히 을 추가하면 두 개의 NuGet 패키지가 다운로드되고 추출됩니다. NuGet.exe에 대한 NuGet.Commandline과 NuGet.targets에 대한 NuGet.Build. 또한 은 솔루션의 모든 프로젝트를 변경하여 NuGet.targets MsBuild 작업을 가져옵니다.

패키지

새로운 솔루션 폴더 복원 파일

마지막으로, 그것은 NuGet.config는 다음과 같은 XML을 파일 추가 :

설정이 NuGet을 추가하지 TFS와 같은 버전 관리 시스템을 지시 disableSourceControlIntegration packages 폴더를 대기중인 체크 인 목록에 추가하십시오. 장소에두고

, 프로젝트가 컴파일 될 때마다, 빌드 작업 는 각 프로젝트의 packages.config 파일에 나열된 각 패키지 을 찾아 해당 패키지는 패키지 폴더 내에 존재하는지 확인합니다. 누락 된 패키지가 있으면 빌드 작업이 을 다운로드하고 패키지의 포장을 풉니 다.

+2

Visual Studio는 패키지를 복원 할 때 packages/repositories.config 파일을 복원합니다. 또한 'NuGet 패키지 복원 사용'을 선택하여 활성화 한 MSBuild 기반 패키지 복원이 NuGet 팀에 의해 사용되지 않습니다. Visual Studio의 NuGet 최신 버전을 사용하면 빌드가 실행되기 전에 NuGet 패키지가 복원됩니다. –