Как установить пакет NuGet во второй проект в решении?

В настоящее время я работаю над решением, которое первоначально содержало один проект (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 установить пакет во второй проект?

Ответ 1

Там 3 подхода:).
В 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 и ничего больше.

Ответ 2

Есть два подхода.

Как вы уже узнали, консоль диспетчера пакетов имеет выпадающее меню, в котором перечислены проекты в вашем решении.

Другой подход - использовать флаг -Project. Хорошая вещь в том, что это дает вам Intellisense с названиями проектов! Например:

Install-Package SomePackage -Project MvcApplication2

Ответ 3

Ответ заключается в том, что смущающе, вслепую просто.

"Консоль диспетчера пакетов" имеет раскрывающееся меню под названием "Проект по умолчанию" на панели инструментов, меняя проект там на My.Second.Project.Name, а затем Install-Package Castle.Windsor устанавливает пакет во второй проект.

Ответ 4

В Visual Studio 2015 (начиная с Nuget v3.1.2) синтаксис теперь:

Install-Package ThePackage -ProjectName YourProjectName

Примечание: -Project Имя vs -Project

Ответ 5

В Visual Studio вы можете перейти к Tools -> NuGet Package Manager -> Manage NuGet Packages for the entire Solution. Оттуда выберите пакет Nuget, который вы хотите разделить между проектами, и нажмите Manage. Это позволит вам добавить определенный установленный пакет NuGet в любой другой проект, который вы хотите.

Ответ 6

Если вам просто нужно скопировать пакеты из существующего проекта в новый, просто скопируйте и/или измените файл packages.config в новый проект и запустите Update-Package -reinstall -Project YourProjectName

Ответ 7

Существует также возможность принудительно переустановить. С определенными проблемами это помогло мне.

Update-Package Microsoft.Owin -Reinstall