2012-07-02 6 views
1

NuGet 패키지를 로컬 라이브러리에 복사하는 대신 중앙 위치에서 단일 복사본으로 다른 Visual Studio 솔루션 POINT를 사용할 수 있습니다. 각각의 VS solutions \ packages 디렉토리?NuGet 패키지의 중복을 피하는 방법

나는 디스크 공간이 저렴 알지만, 등 NUnit과, EF, 여러 개있는 것은 단지

답변

3

패키지를 업데이트하면 어떻게됩니까? 새 버전의 패키지로 모든 프로젝트를 테스트 할 예정입니까?

패키지에 심각한 변경이있는 경우 어떻게됩니까?

솔루션별로 패키지를 별도로 복사하면 한 번에 하나씩 테스트하고 업데이트 할 수 있습니다. 이것은 좋은 일입니다.

또한 대부분의 패키지는 너무 작아서 "낭비"에주의하기 위해 수천 부의 사본이 아니라면 수백 개가 필요합니다.

몇 가지 예
EF 4.3.1은 2.84MB입니다.
NUnit 2.3.012054는 795KB입니다.
Unity 2.1.505는 1.45MB입니다.

걱정하지 마세요. 그것은 당신의 시간 가치가 없습니다.

+1

가 나는 "이것에 대해 걱정 중지, 그것은 당신의 시간 가치가 없어" NuGet 패키지의 여러 버전이있는 경우 NuGet이이 버전을 모두 저장하고 개별 프로젝트의 repositories.config를 업데이트한다는 사실을 지적하고자합니다. =) –

+0

@ J.Steen 충분히 공정하게 솔루션 레벨에서 패키지를 업데이트하면 모든 프로젝트가 업데이트됩니다. 다른 솔루션의 프로젝트에 영향을 미치지 않는다는 사실을 잊어 버렸습니다. 그러나 여러 버전이 중앙 위치에 설치되어있을 때 어떤 패키지를 사용해야하는지 혼란을 야기 할 수 있습니다. – cadrell0

+0

확실히. 그것만으로 더 많은 두통을 겪게됩니다. =) –

0

이것은 NuGet 2.1부터 완전히 가능합니다.

  1. NuGet.config 파일을 중앙 위치로 이동해야합니다.
  2. repositoryPath 구성 값을 변경하여 모든 패키지의 중심 위치를 지정하십시오 (NuGet docs).
  3. 복원 명령에서 solutionDir 옵션을 제거하려면 대상 파일을 해킹하십시오.
  4. 모든 프로젝트 참조가 새 위치를 가리 키도록 업데이트하십시오.

중복을 피하기 위해, 나는이 답변에 수행하는 정확히 무엇에 좀 더 자세히 갔어요 : 나는 완전히 동의하지만 https://stackoverflow.com/a/19466173/564726

관련 문제