Лучший способ добавить пакеты NuGet в качестве ссылок на проекты в VS2012?


ОК. Очень быстрый вопрос, я, наверное, просто тупой.

Если вы щелкните правой кнопкой мыши на папке "ссылки на проекты", а затем "Управление пакетами NuGet", вы можете установить пакеты, и они автоматически ссылаются на проект, на который вы нажали. Но затем я хочу добавить ту же ссылку на другие проекты в том же решении. Если вы повторяете предыдущий, но нажимаете на другой проект, единственный вариант-удалить пакет (поскольку он уже установлен), что является правильным способ добавления существующего (уже установленного) пакета NuGet в качестве ссылки на проект? Должен ли я добавить ссылку с помощью обычного диалогового окна и "обзор" в dll в папке packages? Используйте один метод для добавления первой ссылки, а затем другой для последующих ссылок? Это не кажется правильным.

4 58

4 ответа:

можно использовать Manage NuGet packages for Solution... by:

  • щелкните правой кнопкой мыши на решении
  • Tools > Library Package Manager > Manage NuGet packages for Solution

затем вы можете выбрать, в каких проектах установить пакет, как на скриншоте ниже: enter image description here Кроме того, вы можете добавить установленный пакет в другие проекты в решении, используя тот же Manage NuGet packages for Solution.... enter image description here

другой ответ здесь мне не помог. Вот что я сделал, я не знаю другого способа сделать это. Я использую VS 2013.

  • Я установил пакет в консоль диспетчера пакетов, например PM> Install-Package Newtonsoft.Json
  • в обозревателе решений щелкните правой кнопкой мыши ссылки выберите Добавить ссылку
  • Нажмите кнопку Обзор и перейдите к библиотеке dll в каталоге пакетов в папке решения.

Это добавляет относительный путь для ссылки на проект, поэтому он должен работать с другими людьми, получая код из системы управления версиями в разные каталоги.

У меня была та же проблема. Решение опубликовано kristianp работает, как ожидалось, это может быть немного громоздким, однако, при работе с большим количеством пакетов. Решение, которое сработало для меня, было просто отредактировать имя_моего_проекта.csproj файл в блокноте, и просто скопировать-вставить ссылки из другого проекта, как так:

...

<ItemGroup>
    <Reference Include="Microsoft.AspNet.SignalR.Core">
      <HintPath>..\packages\Microsoft.AspNet.SignalR.Core.2.1.2\lib\net45\Microsoft.AspNet.SignalR.Core.dll</HintPath>
    </Reference>
    <Reference Include="Microsoft.AspNet.SignalR.SystemWeb">
      <HintPath>..\packages\Microsoft.AspNet.SignalR.SystemWeb.2.1.2\lib\net45\Microsoft.AspNet.SignalR.SystemWeb.dll</HintPath>
    </Reference>

    ...

надеюсь, это кому-то поможет. Это спасло меня много кликов:)

в настоящее время я использую Консоль Диспетчера Пакетов (Вид->Другие Окна->Консоль Диспетчера Пакетов).

скорее всего, все, что вам когда-либо понадобится, это следующие две команды:

install-package <package-name> [-version <version-number>] [-project <project-name]

и

update-package <package-name> [-reinstall] [-version <version-number>] [-project <project-name>]

здесь

  • запасные части в квадратных скобках [ ] являются необязательными.
  • 'install-package' будет установлен в указанный проект, или если не указан тот, который выбран в выпадающем списке' Default Project ' вверху командное окно.
  • 'update-package' будет применять изменения к каждому проекту, если проект не указан.
  • '- reinstall ' означает удалить, а затем снова установить пакет с тем же номером версии.