여러 프로젝트가있는 솔루션을위한 NuGet
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)
참고 URL : https://stackoverflow.com/questions/5418856/nuget-for-solutions-with-multiple-projects
'development' 카테고리의 다른 글
ConstraintLayout을 사용하여 균일 한 간격의 뷰 (0) | 2020.06.13 |
---|---|
jQuery없이 부모 절대 div의 자식 요소를 가리킬 때 onmouseout 방지 (0) | 2020.06.13 |
서비스, 지시문 및 모듈의 차이점은 무엇입니까? (0) | 2020.06.13 |
날짜 객체에 대한 prop 소품 유효성 검사 (0) | 2020.06.13 |
하스켈에서 줄을 나누는 방법? (0) | 2020.06.12 |