솔루션의 두 번째 프로젝트에 NuGet 패키지를 어떻게 설치합니까?


195

현재 처음에는 하나의 프로젝트 ( My.First.Project.Name)가 포함 된 솔루션을 개발 중 입니다. 다음을 실행하여 Castle Windsor를 설치했습니다.

Install-Package Castle.Windsor

방금 My.Second.Project.Name솔루션 에 다른 프로젝트 ( )를 추가 하고 Castle Windsor를이 프로젝트에도 설치하려고하지만 Install-Package Castle.Windsor다시 실행할 때 오류가 발생합니다.

'Castle.Core 2.5.2'가 이미 설치됨
'Castle.Windsor 2.5.2'가 이미 설치됨
My.First.Project.Name에 이미 'Castle.Core 2.5.2'에 대한 참조가 있습니다.
My.First.Project.Name에 이미 'Castle.Windsor 2.5.2'에 대한 참조

그래서 내 질문은 : 패키지를 두 번째 프로젝트에 설치하도록 NuGet Package Manager를 어떻게 설득 합니까?

답변:


323

세 가지 접근 방식이 있습니다 :).
NuGet 1.1 (최신 릴리스)에서는 Powershell 파이프 라이닝을 개선하여 다음을 수행 할 수 있습니다.

Get-Project -All | Install-Package SomePackage

그러면 "SomePackage"가 모든 프로젝트에 설치됩니다. 와일드 카드를 사용하여 다음 프로젝트를 좁힐 수 있습니다.

Get-Project Mvc* | Install-Package SomePackage

와일드 카드 시맨틱을 사용합니다 (이 경우 mvc로 시작하는 모든 프로젝트를 찾으십시오).

Get-Project SomeProject | Install-Package SomePackage

그러면 SomePackage가 SomeProject에 설치되고 다른 것은 없습니다.


3
그리고 세 번째 접근법은 단순히 Install-Package SomePackage현재 프로젝트에 설치하기 위해 호출 합니다.
Jalal

1
그러나 "현재"프로젝트는 무엇입니까?
Chris W

10
드롭 다운에서 선택된 하나
davidfowl

@jalal 작동하지 않습니다 .VS2015에서 시도했습니다. 패키지는 항상 현재 프로젝트가 아닌 첫 번째 프로젝트에 설치됩니다.
Eternal21

6
@ Eternal21 패키지 관리자 콘솔 창의 프로젝트 드롭 다운에서 현재 프로젝트를 선택할 수 있습니다.
Jalal

141

두 가지 접근 방식이 있습니다.

이미 배운대로 패키지 관리자 콘솔에는 솔루션의 프로젝트를 나열하는 드롭 다운이 있습니다.

다른 방법은 -Project 플래그를 사용하는 것입니다. 그것에 대한 좋은 점은 프로젝트 이름으로 Intellisense를 제공한다는 것입니다! 예를 들면 다음과 같습니다.

Install-Package SomePackage -Project MvcApplication2

82

답은 맹목적으로 단순하다.

"패키지 관리자 콘솔"의 도구 모음에 "기본 프로젝트"라는 제목의 드롭 다운이 있으며, 프로젝트를 변경 My.Second.Project.Name한 다음 Install-Package Castle.Windsor두 번째 프로젝트에 패키지를 설치할 수 있습니다 .


2
부사 사용법은 믿을 수없이, 의심 할 여지없이, 유쾌합니다
l --''''''--------- '' '' '' '' '' '' ''

15

Nuget v3.1.2부터 Visual Studio 2015에서 구문은 다음과 같습니다.

Install-Package ThePackage -ProjectName YourProjectName

참고 :-프로젝트 이름 대-프로젝트


8

Visual Studio에서로 이동할 수 있습니다 Tools -> NuGet Package Manager -> Manage NuGet Packages for the entire Solution. 여기에서 프로젝트간에 공유하려는 Nuget 패키지를 선택하고을 클릭하십시오 Manage. 이를 통해 원하는 다른 프로젝트에 설치된 특정 NuGet 패키지를 추가 할 수 있습니다.


1
나는이 창에 대해 전혀 몰랐다. 매우 강력하고 좋습니다!
willem

나는이 기능을 둘러 보며 한 시간을 보냈습니다! 이것에 대단히 감사합니다!
Marco Guignard

6

기존 프로젝트에서 새 프로젝트로 패키지를 복사해야하는 경우 packages.config 파일을 새 프로젝트로 복사 및 / 또는 수정하고 실행하십시오. Update-Package -reinstall -Project YourProjectName


0

강제로 다시 설치하는 옵션도 있습니다. 특정 문제로 인해 도움이되었습니다.

Update-Package Microsoft.Owin -Reinstall
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.