3 개의 프로젝트가있는 솔루션이 있다고 가정하십시오.
- 핵심
- UI
- 테스트
내가 사용하는 NuGet 패키지 중 일부는 3 가지 프로젝트 모두에 적용됩니다. 일부는 UI 및 테스트에만 적용되고 일부는 NUnit과 같은 테스트에만 적용됩니다.
NuGet을 사용하여 이것을 설정 하는 올바른 방법 은 무엇입니까 ?
- 참조가 필요할 때마다 세 프로젝트 모두에서 “라이브러리 패키지 참조 추가”를 사용해야합니까?
- 패키지가 처음 필요할 때 “라이브러리 패키지 참조 추가”를 사용한 다음 참조 추가-> 찾아보기를 사용하여 후속 사용법을 사용해야합니까?
두 경우 모두 몇 개의 packages.config 파일을 가져야합니까?
답변
이 문제를 해결하려는 사람에게는 다음 옵션이 있습니다.
솔루션> 솔루션의 NuGet 패키지 관리 …를 마우스 오른쪽 단추로 클릭하십시오.
… 또는 :
도구> 라이브러리 패키지 관리자> 솔루션 용 NuGet 패키지 관리 …
설치된 패키지 영역으로 이동하면 솔루션의 모든 프로젝트에서 단일 패키지를 ‘관리’할 수 있습니다.
답변
콘솔을 사용하여 여러 프로젝트를 대상으로
Tools > Library Package Manager > Package Manager Console
그런 다음이 명령을 사용하십시오
Get-Project PROJECT-NAMES-WITH-COMMAS | Install-Package PACKAGENAME
예를 들어
Get-Project Core,UI | Install-Package FluentDateTime
답변
이 달콤한 거래는 저에게 효과적입니다.
PM> Get-Project -all | where {$_.Name -match "Songhay.Silverlight" -and
$_.Name -notmatch "ApplicationLoader" -and $_.Name -notmatch ".Xml"}
| ForEach-Object {Install-Package MvvmLight -project $_.Name}
답변
여러 솔루션에 패키지를 설치하려면 편리한 Powershell 스크립트를 작성했습니다 ( 여기 참조) .
Get-Project -All
명령을 필터링 하고 프로젝트 목록의 하위 세트를 대상으로 지정할 수도 있습니다 .
답변
솔루션의 모든 프로젝트에서 모든 외부 라이브러리에 대해 “라이브러리 패키지 참조 추가”를 사용해야합니다. 프로젝트 당 packages.config가 생성됩니다.
그러나 패키지는 한 번만 다운로드하여 다른 모든 프로젝트에서 로컬로 재사용합니다.
답변
에서 패키지 관리자 콘솔 다음 쓸 수있는 명령을 :
Get-Project -all | ForEach-Object {Get-Package -ProjectName $_.Name -filter
PACKAGE_NAME} | where-object { $_.id -eq 'PACKAGE_NAME' } | Install-Package
PACKAGE_NAME -Version VERSION
설치 또는 업데이트에도 해당 명령을 사용할 수 있습니다 (Update-Package)