Установите пакет Nuget в коде Visual Studio


192

Как я могу установить пакет Nuget в коде Visual Studio? Я знаю, что в Visual Studio мы можем сделать это через консоль диспетчера пакетов Nuget, но как мне это сделать в VS Code?


Вы пробовали это расширение: marketplace.visualstudio.com/… Кроме того, вы можете скачать nuget с их сайта и использовать его с консоли.
JNK

Я бы предпочел консоль, потому что расширение не имеет хороших отзывов
Гьян Паркаш

Я делаю это, используя nuget.org, выполняю поиск и просто использую PackageReference (находится в других вариантах рассрочки). Работает довольно хорошо, и вы получаете хороший интерфейс для самого nuget.
mslot

Ответы:


225

Из командной строки или окон терминала в редакторе кода dotnet add package Newtonsoft.Json

Смотрите эту статью Скотт Хансельман


2
Обратите внимание, что это будет работать только на новом .Net Core SDK 1.0 на основе csproj, но не на старых предварительных версиях на основе project.json.
svick

2
Это, к сожалению, не поддерживает поиск или автозаполнение. То есть вы должны знать точное написание имени пакета.
Андрей Савиных,

4
Вы можете перейти на nuget.org для поиска пакетов, как это можно сделать в Visual Studio, а затем с помощью командной строки установить нужный пакет.
MikeBeaton

76

Вы можете использовать расширение диспетчера пакетов NuGet .

После того, как вы установили его, чтобы добавить пакет, нажмите Ctrl + Shift + P, введите >nugetи нажмите Enter:

введите описание изображения здесь

Введите часть имени вашего пакета в качестве строки поиска:

введите описание изображения здесь

Выберите пакет:

введите описание изображения здесь

И, наконец, версия пакета (вы, вероятно, хотите самую новую):

введите описание изображения здесь


2
Это расширение, похоже, не поддерживает новую функцию рабочих пространств
Крис Александр

1
Это расширение, кажется, вернулось на рынок, только что установило его и прекрасно работает для меня.
Нулевая ссылка

3
22 июня 2019 года: « Теперь это расширение не опубликовано в Marketplace. Вы можете удалить его». 2 ¢.
ruffin

Приведенная выше ссылка указывает на «.Net Core Project Manager (Nuget)» - попробуйте: marketplace.visualstudio.com/…
Самис

29

Вы можете сделать это легко с помощью "vscode-nuget-package-manager". Перейти на рынок и установить это. После этого

1) Нажмите Ctrl + P или Ctrl + Shift + P (и пропустите 2)

2) Тип ">"

3) Затем выберите «Диспетчер пакетов Nuget: Добавить пакет»

4) Введите название пакета Например: Dapper

5) выберите название пакета и версию

6) Готово.


24

Откройте меню расширений (Ctrl + Shift + X) и выполните поиск .NuGet Package Manager.


Странно этот менеджер не может найти Microsoft.AspNetCore.Server.Kestrel. Ниже решение работает.
Алексей Концевич

Больше не работает с момента перехода на .csproj формат файла.
За Лундберг

Я не вижу это расширение при поиске.
Давос

13

Пример для файла .csproj

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="1.1.2" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.2" />
    <PackageReference Include="MySql.Data.EntityFrameworkCore" Version="7.0.7-m61" />
  </ItemGroup>

Просто получите имя пакета и номер версии от NuGet и добавьте в .csproj, затем сохраните. Вам будет предложено запустить восстановление, которое будет импортировать новые пакеты.


9
Я уверен, что это работает, но необходимость редактировать XML вручную кажется позором.
Давос

1
Правда, но VS Code бесплатен (и действительно подразумевается как редактор), поэтому я не жалуюсь. Было бы иначе, если бы я должен был сделать это в VS.
Крис Кавелл

1
Честная оценка. Так вы редактируете проекты C # полностью в VSCode без какой-либо установленной версии Visual Studio? Или создать проект в Visual Studio (с файлами sln + csproj), а затем просто использовать VSCode в качестве редактора? Я предполагаю, что если вы просто используете dotnetVSCode, тогда зачем вам эти файлы проекта?
Давос

1
Нет, я на самом деле использую Visual Studio 2010 и 2015. Хотя предпочитаю 2010. Все мое реальное кодирование также хранится в репозиториях Git. VS Code больше подходит для моей системы Ubuntu.
Крис Кавелл

8

Nuget Galleryпредоставляет графический интерфейс, похожий на полный Visual Studio. Увидеть ниже.

введите описание изображения здесь

Как пользоваться:

  1. Установить Nuget Galleryс расширением Marketplace.
  2. Запустите из строки меню View > Command Paletteили ⇧⌘P (Ctrl + Shift + P в Windows и Linux). Тип Nuget: Open Gallery.
  3. GUI выше отображается. Вы можете фильтровать как в обычной Visual Studio.
  4. Убедитесь, что .csproj fileфлажок установлен, выберите версию из выпадающего списка и нажмите кнопку «Установить».

ОБНОВИТЬ

В более ранних версиях, как отмечалось в комментариях, была проблема, когда .csprojфлажок не отображался, когда в пакете в файле csproj отсутствовал номер версии, как показано ниже.

<PackageReference Include="Microsoft.AspNetCore.App" />

Это было исправлено в более новых версиях расширения, поэтому, если у вас есть более старая версия с этой проблемой, обновите ее до последней версии.


Ааа, это интересно. В .csprojтекущей версии опция галочки файла отсутствует . Может быть, в этом моя проблема. github.com/pcislo/vscode-nuget-gallery/issues/15
woter324

Привет @ woter324, проблема с тем, что флажок не показывался, была идентифицирована как некоторые пакеты, .csprojне имеющие номеров версий. Смотрите комментарий к проблеме . Я обновил свой ответ, чтобы включить это.
Моисей Мачуа

Спасибо! Это было как раз то, что мне нужно, чтобы иметь возможность установить пакет Microsoft.Windows.Compatibility! Эта галерея Nuget фактически работает с .NET Core 3.1.2! Так что теперь я могу использовать OleDbConnection, чтобы открыть соединение с базой данных MS Access, в то же время используя .NET Core для других вещей в коде Visual Studio! Прохладно!
Джон Фолл

Я протестировал последнюю версию, и у нее больше нет проблем с отсутствующими номерами версий
Моисей Мачуа,

6
  1. Установите менеджер пакетов NuGet
  2. Ctrl+Shift+Pна Windows или Command+Shift+Pна Mac
  3. Поиск диспетчера пакетов NuGet: Добавить пакет
  4. Введите название пакета, т.е. AutoMapper
  5. Выберите пакет и версию
  6. Восстановить при необходимости

1

Измените файл project.json или * .csproj. Добавьте запись зависимости с именем пакета и желаемой версией.

Пример JSON:

{
   "dependencies" : {

     "AutoMapper": "5.2.0"
   }
}

1

Ответы выше хороши, но недостаточны, если у вас есть более 1 проекта (.csproj) в одной папке.

Во-первых, вы легко можете добавить тег «PackageReference» в файл .csproj (либо вручную, с помощью диспетчера пакетов nuget, либо с помощью команды добавления пакета dotnet).

Но затем вам нужно вручную запустить команду «restore», чтобы вы могли сказать ей, какой проект вы пытаетесь восстановить (если я просто нажал на кнопку восстановления, которая всплыла, ничего не произошло). Вы можете сделать это, запустив:

dotnet restore Project-File-Name.csproj

И это устанавливает пакет

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.