Как установить пакет NuGet во второй проект решения? - PullRequest
187 голосов
/ 11 февраля 2011

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

Ответы [ 7 ]

316 голосов
/ 13 февраля 2011

Есть 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 и ничего больше.

139 голосов
/ 13 февраля 2011

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

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

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

Install-Package SomePackage -Project MvcApplication2
82 голосов
/ 11 февраля 2011

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

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

13 голосов
/ 25 августа 2015

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

Install-Package ThePackage -ProjectName YourProjectName

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

8 голосов
/ 09 апреля 2015

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

6 голосов
/ 22 ноября 2015

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

0 голосов
/ 31 октября 2017

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

Update-Package Microsoft.Owin -Reinstall
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...