Как установить nuget в visual studio оффлайн
Чтобы работать с NuGet в качестве потребителя или создателя пакета, вы можете использовать средства интерфейса командной строки (CLI) и функции NuGet в Visual Studio. В этой статье кратко описываются возможности различных средств, их установка и приведена сравнительная таблица доступности функций. См. подробнее о начале работы с пакетами с помощью NuGet в руководствах по установке и использование пакета с помощью CLI dotnet и Visual Studio. Чтобы приступить к созданию пакетов NuGet, см. разделы Создание и публикация пакета NET Standard (dotnet CLI) и Создание и публикация пакета NET Standard (Visual Studio).
MSBuild CLI также предоставляет возможности восстановления и создания пакетов, которые применяются на серверах сборки. MSBuild не является универсальным средством для работы с NuGet.
Команды консоли диспетчера пакетов работают только в Visual Studio для Windows, но не в других средах PowerShell.
Visual Studio
Установка в Visual Studio 2017 и более поздних версиях
Установка в Visual Studio 2015 и более ранних версиях
Для Visual Studio 2010 и более ранних версий установите расширение "Диспетчер пакетов NuGet для Visual Studio". Обратите внимание, что если расширение не отображается на первой странице результатов поиска, можно изменить значение в раскрывающемся списке "Sort By" (Сортировка по) на "Most Downloads" (Больше всего скачиваний) или сортировку по алфавиту.
Средства CLI
Два средства CLI для NuGet — dotnet.exe и nuget.exe . См. сравнительную таблицу доступности функций.
Интерфейс командной строки dotnet.exe
Сведения об использовании основных команд с CLI dotnet см. в статье Установка и использование пакета с помощью CLI dotnet.
Интерфейс командной строки nuget.exe
Интерфейс командной строки nuget.exe ( nuget.exe ) — это программа командной строки для Windows, которая предоставляет все возможности NuGet. С некоторыми ограничениями ее также можно запустить на Mac OSX и Linux с помощью Mono.
Сведения об использовании основных команд с CLI nuget.exe см. в статье Установка и использование пакета с помощью CLI nuget.exe.
Windows
Mac OS и Linux
Поведение для этих ОС может несколько различаться.
В командной строке оболочки введите следующие команды:
Создайте псевдоним, добавив следующий скрипт к соответствующему файлу для вашей операционной системы (обычно
Перезагрузите оболочку. Проверьте установку. Для этого введите nuget без параметров. Должно отобразиться окно справки NuGet CLI.
Вы можете обновить существующий nuget.exe до последней версии с помощью команды nuget update -self в Windows.
Доступность функций
Функция | CLI dotnet | CLI nuget (Windows) | CLI nuget (Mono) | Visual Studio (Windows) | Visual Studio для Mac |
---|---|---|---|---|---|
Поиск пакетов | ✔ | ✔ | ✔ | ✔ | |
Установка или удаление пакетов | ✔ | ✔(1) | ✔ | ✔ | ✔ |
Обновление пакетов | ✔ | ✔ | ✔ | ✔ | |
Восстановление пакетов | ✔ | ✔ | ✔(2) | ✔ | ✔ |
Управление веб-каналами пакета (источниками) | ✔ | ✔ | ✔ | ✔ | |
Управление пакетами в веб-канале | ✔ | ✔ | ✔ | ||
Установка ключей API для веб-каналов | ✔ | ✔ | |||
Создание пакетов (3) | ✔ | ✔ | ✔ (4) | ✔ | |
Публикация пакетов | ✔ | ✔ | ✔ | ✔ | |
Репликация пакетов | ✔ | ✔ | |||
Управление папками global-package и кэша | ✔ | ✔ | ✔ | ||
Управление конфигурацией NuGet | ✔ | ✔ |
(1) Не влияет на файлы проекта. Используйте dotnet.exe .
(2) Работает только с файлом packages.config , а не с файлами решения ( .sln ).
(3) Различные дополнительные функции пакетов доступны через CLI, только если они не представлены в средствах пользовательского интерфейса Visual Studio.
(4) Работает с файлами .nuspec , но не с файлами проекта.
Будущие возможности
Если вы хотите заранее оценить предстоящие возможности NuGet, установите предварительную версию Visual Studio, которая работает параллельно со стабильными выпусками Visual Studio. Чтобы сообщить о проблемах или обменяться идеями о предварительных версиях, откройте обращение в репозитории NuGet на GitHub.
См. также
Разработчики, работающие в Windows, также могут рассмотреть Обозреватель пакетов NuGet, автономное средство с открытым кодом, позволяющее визуально изучать, создавать и изменять пакеты NuGet. Это очень удобно, например, для внесения экспериментальных изменений в структуру пакета без необходимости его повторной сборки.
С помощью пользовательского интерфейса диспетчера пакетов NuGet в Visual Studio вы можете легко устанавливать, удалять и обновлять пакеты NuGet в проектах и решениях в ОС Windows. Если вы используете Visual Studio для Mac, см. руководство по включению пакета NuGet в проект. Пользовательский интерфейс диспетчера пакетов не входит в Visual Studio Code.
Поиск и установка пакета
В обозревателе решений щелкните правой кнопкой мыши Ссылки или сам проект и выберите Управление пакетами NuGet.
На вкладке Обзор по популярности отображаются пакеты из выбранного в данный момент источника (см. подробнее об источниках пакетов). Выполните поиск определенного пакета с помощью поля поиска в левом верхнем углу. Выберите пакет в списке, чтобы отобразить сведения о нем. Это также активирует кнопку Установить и раскрывающийся список для выбора версии.
Выберите нужную версию в раскрывающемся списке и щелкните Установить. Visual Studio установит пакет и его зависимости в проект. Может появиться запрос на принятие условий лицензионного соглашения. После завершения установки добавленные пакеты отобразятся на вкладке Установленные. Пакеты также перечислены в узле Ссылки обозревателя решений. Это значит, что их можно указывать в проекте с помощью инструкций using .
Чтобы включить предварительные версии в поиск и сделать их доступными в раскрывающемся списке версий, щелкните Включить предварительные версии.
Удаление пакета
В обозревателе решений щелкните правой кнопкой мыши Ссылки или сам проект и выберите Управление пакетами NuGet.
Откройте вкладку Установленные.
Выберите пакет для удаления (при необходимости используйте поиск, чтобы отфильтровать список) и щелкните Удалить.
Обратите внимание, что элементы управления Включить предварительные версии и Источник пакета не применяются при удалении пакетов.
Обновление пакета
В обозревателе решений щелкните правой кнопкой мыши Ссылки или сам проект и выберите Управление пакетами NuGet. (В проектах веб-сайтов щелкните правой кнопкой мыши папку Bin.)
Перейдите на вкладку Обновления, чтобы просмотреть пакеты, для которых доступны обновления из выбранных источников пакетов. Выберите Включить предварительные версии, чтобы включить предварительные версии пакетов в список обновлений.
Последовательно выберите пакет для обновления и нужную версию в раскрывающемся списке справа, а затем щелкните Обновить.
Чтобы обновить несколько пакетов до последних версий, выберите их в списке и нажмите кнопку Обновить, расположенную над списком.
Кроме того, можно обновить отдельный пакет на вкладке Установленные. В этом случае сведения о пакете будут содержать средство выбора версии (зависит от параметра Включить предварительные версии) и кнопку Обновить.
Управление пакетами для решения
Управление пакетами для решения — это удобный способ одновременно работать с несколькими проектами.
Выберите команду меню Средства > Диспетчер пакетов NuGet > Управление пакетами NuGet для решения или щелкните правой кнопкой мыши решение и выберите Управление пакетами NuGet.
При управлении пакетами для решения пользовательский интерфейс позволяет выбрать проекты, затрагиваемые операциями.
Вкладка "Консолидация"
Разработчики обычно предпочитают не использовать разные версии одного и того же пакета NuGet в разных проектах в одном решении. Когда вы выбираете управление пакетами для решения, в пользовательском интерфейсе диспетчера пакетов появляется вкладка Консолидация, на которой вы можете отслеживать использование пакетов с разными номерами версий разными проектами в решении.
В этом примере проект ClassLibrary1 использует EntityFramework 6.2.0, а ConsoleApp1 использует EntityFramework 6.1.0. Для консолидации версий пакета сделайте следующее:
Диспетчер пакетов устанавливает выбранную версию пакета во все выбранные проекты. После этого пакет больше не будет отображаться на вкладке Консолидация.
Источники пакетов
Чтобы изменить источник, из которого Visual Studio получает пакеты, выберите его в средстве выбора источника.
Для управления источниками пакетов сделайте следующее:
Щелкните значок Параметры в пользовательском интерфейсе диспетчера пакетов, как показано ниже, или выберите Средства > Параметры и прокрутите до пункта Диспетчер пакетов NuGet.
Выберите узел Источники пакетов.
Чтобы добавить источник, выберите + , измените имя, введите URL-адрес или путь в элементе управления Источник и щелкните Обновить. Источник отобразится в раскрывающемся списке для выбора.
Чтобы изменить источник пакета, выберите его, внесите изменения в поля Имя и Источник и щелкните Обновить.
Чтобы отключить источник пакета, снимите флажок слева от имени в списке.
Чтобы удалить источник пакета, выберите его и нажмите кнопку X.
Использование кнопок со стрелками вверх и вниз не меняет приоритетный порядок источников пакетов. Visual Studio игнорирует порядок источников пакетов, используя пакет из любого источника, первым ответившего на запросы. См. подробнее о восстановлении пакетов.
Если источник пакета появляется после удаления, он может быть указан в файлах NuGet.Config уровня компьютера или уровня пользователя. Чтобы определить расположение этих файлов, см. описание распространенных конфигураций NuGet. Затем удалите источник, отредактировав файлы вручную или с помощью команды nuget sources.
Элемент управления "Параметры" диспетчера пакетов
Если пакет выбран, пользовательский интерфейс диспетчера пакетов отображает небольшой развертываемый элемент управления Параметры под средством выбора версий (показан в свернутом и развернутом виде). Обратите внимание, что для некоторых типов проектов предоставляется только параметр Показать окно предварительного просмотра.
Эти параметры объясняются в следующих разделах.
Показать окно предварительного просмотра
При выборе этого параметра модальное окно отображает зависимости выбранного пакета перед его установкой.
Параметры установки и обновления
(доступно не для всех типов проектов)
Поведение зависимости — указывает способ определения устанавливаемых версий зависимых пакетов в NuGet.
- Игнорировать зависимости — пропускает установку зависимостей, что обычно приводит к прерыванию установки пакета.
- Наименьший [по умолчанию] — устанавливает зависимость с минимальным номером версии, соответствующим требованиям основного выбранного пакета.
- Наибольший номер исправления — устанавливает версию с теми же основными и дополнительными номерами версий, но с самым большим номером исправления. Например, если указана версия 1.2.2, будет установлена самая высокая версия, которая начинается с 1.2.
- Наибольший номер дополнительной версии — устанавливает версию с тем же основным номером версии, но с самым большим номером дополнительной версии и номером исправления. Если указана версия 1.2.2, будет установлена самая высокая версия, которая начинается с 1.
- Наибольший — устанавливает самую высокую доступную версию пакета.
Действие при конфликте файлов — указывает, как в NuGet должны обрабатываться пакеты, которые уже существуют в проекте или на локальном компьютере.
- По приглашению — NuGet спрашивает, следует ли сохранять или перезаписывать существующие пакеты.
- Пропустить все — NuGet пропускает перезапись существующих пакетов.
- Перезаписать все — NuGet перезаписывает существующие пакеты.
Параметры удаления
(доступно не для всех типов проектов)
Удалить зависимости — удаляются все зависимые пакеты, если на них нет ссылок в других местах проекта.
Принудительно удалить, даже если есть зависимости от него — пакет удаляется, даже если на него по-прежнему есть ссылка в проекте. Обычно используется в сочетании с удалением зависимостей для удаления пакета и любых установленных зависимостей. Но использование этого параметра может привести к нарушению ссылок в проекте. В таких случаях может потребоваться переустановить другие пакеты.
меню инструменты → опции → Диспетчер Пакетов
Укажите имя и расположение папки. нажимать OK. Поместите файлы пакета NuGet в эту папку.
перейдите к своему проекту, щелкните правой кнопкой мыши и выберите "Управление Пакетами NuGet" и выберите новый исходный пакет.
вы также можете использовать Консоль Диспетчера Пакетов и вызвать , указав путь к каталогу, содержащему файл пакета в
For .nupkg файлов мне нравится использовать:
-
добавьте файлы в папку с именем LocalPackages рядом с вами решение (его не нужно называть так, но настройте xml на следующем шаге соответственно)
создайте файл с именем NuGet.config рядом с файлом решения со следующим содержимым
если решение открыто в Visual Studio, закройте его и откройте повторно.
теперь ваши пакеты должны появиться в браузере, или быть устанавливаемый с помощью Install-Package
Если у вас есть .nupkg файл и нужен .dll файл все, что вам нужно сделать, это изменить расширение .zip и найдите каталог lib.
вы больше не можете просто использовать Install-Package для указания на локальный файл. (Это, вероятно, потому что PackageReference элемент не поддерживает пути к файлам; он позволяет только указать идентификатор пакета.)
сначала вы должны рассказать VS о местоположении вашего пакета, затем вы можете добавить его в проект. Большинство людей входят в Диспетчер пакетов NuGet и добавляют локальную папку в качестве источника (Инструменты > > Параметры >> Менеджер Пакетов NuGet > > Источники Пакетов). Но это означает, что местоположение вашей зависимости не зафиксировано (для управления версиями) с остальной частью вашей кодовой базы.
локальные пакеты NuGet с использованием относительного пути
это добавит источник пакета, который применяется только к определенному решению, и вы можете использовать относительные пути.
что вам нужно сделать, это создать nuget.config файл в том же каталоге, что и ваш . Настройте файл с помощью пакета source(s) you хотеть. Когда вы в следующий раз откроете решение в VS2017, любое .файлы nupkg из этих исходных папок будут доступны. (Вы увидите источник (ы), перечисленные в Диспетчере пакетов, и вы найдете пакеты на вкладке "Обзор", когда вы управляете пакетами для проекта.)
вот пример nuget.config для начала:
Предыстория
мой вариант использования этой функции заключается в том, что у меня есть несколько экземпляров одного репозитория кода на моей машине. В базе кода есть общая библиотека, которая публикуется / развертывается как a .nupkg файл. Этот подход позволяет различным зависимым решениям в нашей кодовой базе использовать пакет в одном экземпляре РЕПО. Кроме того, кто-то со свежей установкой VS2017 может просто проверить код, где они хотят, и зависимые решения будут успешно восстановлены и построены.
здесь аналогичной должности в стеке, но это не помогает с моей проблемой, возможно, потому, что я использую Visual Studio 2015.
Как получить параметр "включить восстановление пакета NuGet" в VS2015?
Я должен упомянуть, что я искал любые ранее существующие файлы nuGet в моем папка проекта и нет.
это заняло слишком много времени, но я, наконец, нашел этот документ на миграция MSBuild-интегрированные решения для автоматического восстановления пакетов и я смог решить проблему, используя методы, описанные здесь.
- удалить '.nuget' каталог решений вместе с решением
- удалить все ссылки на nuget.targets из своего .csproj или .vbproj файлы. Хотя официально не поддерживается, документ ссылается на скрипт PowerShell если у вас есть много проектов, которые необходимо очистить. Я вручную отредактировал свой вручную, поэтому я не могу дать никаких отзывов о моем опыте с ним.
при редактировании файлов вручную, вот что вы будете искать:
Файл Решения (.sln)
Файл Проекта (.csproj файл / .vbproj)
Microsoft прекратила поддержку "Enable NuGet Package Restore" в VS2015, и вам нужно сделать некоторые изменения вручную, чтобы перенести старые решения или добавить функцию в новые решения. Новая функция описана довольно хорошо в Восстановление Пакета NuGet.
существует также руководство по миграции для существующих проектов (как упоминалось ранее) здесь: Руководство По Миграции NuGet
когда обновление:
- не удаляйте .каталог NuGet для.
- удалить nuget.exe и nuget.целевые файлы.
- оставьте nuget.конфиг.
- очистите каждый из файлов проекта от любой ссылки на цели NuGet вручную. Упомянутый сценарий Powershell, казалось, принес больше вреда, чем пользы.
при создании нового проекта:
- в решении Visual Studio 2015, создайте каталог решения с именем .из NuGet.
- создайте фактический каталог каталога решения (где .sln файл живет) и назовите его .nuget (обратите внимание, что каталог решения не совпадает с фактическим каталогом файловой системы, даже если они имеют то же имя).
создайте файл на .каталог nuget называется nuget.конфиг.
поместите следующий текст в nuget.конфигурационный файл:
<?xml version="1.0" encoding="utf-8"?> <configuration> <config> <add key="repositorypath" value="$\..\..\..\..\Packages" /> </config> <solution> <add key="disableSourceControlIntegration" value="true" /> </solution> </configuration>
этот файл конфигурации позволит вам объединить все ваши пакеты в одном месте, чтобы у вас не было 20 разных копий одного и того же пакета, плавающих в вашей файловой системе. Относительный путь будет меняться в зависимости от архитектуры каталога решения, но он должен указывать на каталог, общий для всех решения.
необходимо перезапустить visual studio после выполнения шага 5. Nuget не распознает изменения, пока вы этого не сделаете.
наконец, возможно, вам придется использовать "NuGet Package Manager for Solutions" для удаления и повторной установки пакетов. Я не знаю, был ли это побочный эффект сценария Powershell, который я запустил, или просто способ вернуть NuGet в передачу. Как только я сделал все эти шаги, моя сложная архитектура сборки безупречно работала над сбиванием новых пакетов когда я проверял проекты из TFVC.
дополнительно вы можете удалить все папки из папки " пакеты "и выбрать" Управление пакетами NuGet для решения. ". В этом случае в окнах пакетов NuGet появляется кнопка "восстановить".
Если у вас есть какие-либо проблемы или отсутствуют какие-либо пакеты, вы можете просто щелкнуть правой кнопкой мыши в своем проекте и выбрать "Управление пакетами NuGet для решения. ". После нажатия на это откроется экран, где вы увидите строку меню с надписью " восстановить":
нажмите на него, и необходимые пакеты будут установлены автоматически.
Я верю, что это то, что вы ищете, это решило мои проблемы.
как уже упоминалось Майком, в VS2015 нет опции "включить восстановление пакета NuGet". Вам придется вызвать процесс восстановления вручную. Хороший способ-без возни с файлами и каталогами-использовать Консоль Управления Пакетами NuGet: Нажмите в поле "Быстрый старт" (обычно в правом верхнем углу), введите console откройте консоль и введите команду:
это переустановит все пакеты всех проектов в вашем решение. Чтобы указать один проект, введите:
при обновлении проектов с пакетами nuget с Vx20XX до VS2015 у вас может возникнуть проблема с пакетами nuget.
обновление 2016-02-06: у меня была ссылка на информацию, но она больше не работает. Я подозреваю, что недавний путь решил проблему .
вы можете скачать исполняемый инструмента здесь.
пожалуйста, дайте мне знать результат :-) !
перейдите к ссылкам в visual studio и посмотрите, какие пакеты отсутствуют. Теперь щелкните правой кнопкой мыши на решении в Visual и нажмите на Открыть папку в проводнике. Теперь откройте папку packages и удалите отсутствующую папку packages. Откройте visual studio и просто создайте решение. все недостающие пакеты будут восстановлены. Пожалуйста, отметьте это как ответ, если я помог.
этот подход сработал для меня:
- закрыть VS2015
- откройте решение временно в VS2013 и включите восстановление пакета nuget щелкнув правой кнопкой мыши на решении (я также сделал перестроение, но я подозреваю, что это не нужно).
- закрыть VS2013
- откройте решение в VS2015
теперь вы включили восстановление пакета nuget в VS2015, а также.
Я столкнулась с той же проблемой при попытке построить образец проекта gplus-quickstart-csharp-master.
- Правой Кнопкой Мыши на файл и откройте в проводнике Windows.
- скопировать .из NuGet С NuGet для.Config, NuGet.exe, NuGet.цели (скачать ссылке или просто скопируйте из другой проект и заменен)
- попробуйте перестроить решение.
Иван Branets решение по существу то, что исправил это для меня, но некоторые дополнительные детали могут быть разделены.
в моем случае, я был в VS 2015 используя автоматическое восстановление пакета и TFS. Это все довольно стандартные вещи.
проблема заключалась в том, что когда другой разработчик пытался получить решение от TFS, некоторые пакеты не были полностью восстановлены. (В этом я пока не уверен.) Но папка пакетов содержит папку для ссылки и пакета NuGet, но она не расширяется (скажем, папка lib, содержащая a .DLL был отсутствующий.) Эта половина там, но не совсем правильная концепция препятствовала восстановлению пакета.
вы узнаете это, потому что ссылка будет иметь желтый восклицательный знак о не решается.
Итак,решение of удаление папки в пакеты удаляет восстановление пакета проблема блокировки. Тогда вы можете щелкните правой кнопкой мыши на верхнем уровне решения чтобы получить возможность восстановить пакетов, и теперь он должен работать.
закрыть VS. Удалите все в папке packages. Откройте ваше решение. Щелкните правой кнопкой мыши на своем проекте, выберите "Управление пакетами nuget". '. В верхней части окна "Диспетчер пакетов Nuget" появится желтая полоса с просьбой восстановить пакеты. Это сработало для меня.
консоль диспетчера пакетов (Visual Studio, Tools > NuGet Package Manager > консоль диспетчера пакетов): выполните команду Update-Package-reinstall-ProjectName, где находится имя затронутого проекта, как оно отображается в обозревателе решений. Используйте Update-Package-reinstall для восстановления всех пакетов в решении. См. Раздел Пакет Обновления. При желании можно также переустановить один пакет.
также может быть результатом запуска программы во время установки пакета. он неактивен, если вы попытаетесь щелкнуть его, пока встроенный IIS работает в фоновом режиме.
Мне пришлось удалить папку пакетов закрыть и повторно открыть (VS2015) решение. Я не мигрировал, и у меня не было пакетов, проверенных в систему управления версиями. Все, что я могу сказать, что что-то перепуталось, и это все исправило.
Если кто-то еще найдет эту проблему в Visual Studio 2017, убедитесь, что проект открыт .sln-файл, а не папка, так как visual studio не будет выбирать параметры, если он открыт папкой. Это происходит по умолчанию, если вы используете Visual Studio online services для git.
Я msbuild /t:restore .
моя проблема была с MSBuild Так что я следовал @Vinney Kelly'S ссылка: миграция MSBuild-интегрированные решения для автоматического восстановления пакетов
это сработало как шарм =]
MSBuild используйте msbuild /t:restore команда, которая восстанавливает пакеты пакеты, перечисленные в файле проекта (PackageReference только). Доступный только в NuGet 4.х+ и MSBuild 15.1+, которые включены в визуальный студия 2017. nuget restore и dotnet restore как использовать эту команду для прикладных проектов.
помог мне через инструменты >>> Менеджер Пакетов Nuget >>> общие затем галочкой опцию разрешить Nuget загружать отсутствующий пакет и автоматически проверять отсутствие пакетов во время сборки в visual studio.
Читайте также: