2011-09-10 2 views
10

새 ASP.NET MVC 프로젝트에서 GIT를 사용하고 있습니다. 나는 내 NUGET 패키지 폴더에 (예를 무시하지 않습니다) DLL을 포함하는 다음의 라인을 따라 뭔가를 추가하고 싶습니다 DLL을Gitignore를 통해 Nuget DLL을 재귀 적으로 포함합니다.

*.dll 

을 무시하는 내 gitignore 파일의 라인을 가지고

!/packages/*.dll 

내가 겪고있는 문제는 모든 nuget 패키지가 똑같이 생성되는 것은 아니며 문제의 패키지에 따라 DLL이 경로 계층의 임의의 레벨 수에 중첩 될 수 있다는 것입니다.

!/packages/**/*.dll 

!/packages/**/* 

가 아직 mysysgit를 통해 작동합니다 솔루션 (또는 자식의 창 분포를) 발견되지 않은 : 단순히의 라인을 따라 재귀 솔루션을 필요로 보인다.

누구나이 작업을 수행하는 방법을 알고 있습니까?

답변

19

*.dll을 유지하여 최상위 레벨 gitignore 만 남겨 둡니다.

파일을 패키지 디렉토리에 새로 만들고 !*.dll을 입력하십시오.

+0

치료를 받았다. 고맙습니다! –

10

또 다른 옵션은 NuGet dll을 저장소에 포함하지 않고 처음으로 프로젝트를 빌드 할 때 다운로드하는 것입니다. 이것이 우리의 모든 NuGet 의존성과 관련됩니다.

UPDATE

Nuget 수동으로 자신의 빌드 이벤트를 만들 필요없이 지금을 처리합니다. 이 페이지의 내용을 참조하십시오 http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages


원래 답변 :

우리는 우리의 솔루션 아래의 도구 폴더에 NuGet.exe 응용 프로그램을 넣어 다음 우리의 프로젝트가 사전 빌드를 추가 행사.

"$(SolutionDir)Tools\NuGet.exe" install "$(ProjectDir)packages.config" -o "$(SolutionDir)Packages" 

우리가 모든 종속성을 다운로드 할 응용 프로그램을 구축하지만, 이후의 빌드로, NuGet는 이미 올바른 버전이 존재하고이를 생략 볼 똑똑 처음.

+0

흥미로운 솔루션입니다. 문제가 해결 되었습니까? – vcsjones

+1

나는 그것이 생성 된 코드를 체크하지 않는 확장이라고 생각한다. 우리는 서비스 참조가 체크인되는 동안 여러 가지 문제를 겪고있었습니다. 문제를 해결하는 동안 우리는 가능한 한 많은 외부 의존성을 제거했습니다. SVN에서 체크 아웃 속도를 늦추는 largish 바이너리 파일이있는 시점에 문제가 발생했습니다. 그게 우리의 현재 설정에 문제가 될지 모르겠지만 우리는 돌아 가지 않았습니다. –

+3

업데이트 : Nuget은 Nuget Package Restore로이 OOB를 지원합니다. – vcsjones

관련 문제