Как обновить nuget в visual studio 2012
При этом все пакеты в проекте, использующем файл packages.config , обновляются до последней доступной версии. Рекомендуется выполнить инструкцию RESTORE перед запуском update . (чтобы обновить отдельный пакет, используйте nuget install без указания номера версии, в этом случае NuGet устанавливает последнюю версию.)
Примечание. update не работает с интерфейсом командной строки, работающим под управлением Mono (Mac OSX или Linux) или при использовании формата PackageReference.
update Команда также обновляет ссылки на сборки в файле проекта при условии, что эти ссылки уже существуют. Если обновленный пакет содержит добавленную сборку, Новая ссылка не добавляется. Для новых зависимостей пакетов также не добавляются ссылки на сборки. чтобы включить эти операции в состав обновления, обновите пакет в Visual Studio с помощью пользовательского интерфейса диспетчер пакетов или консоли диспетчер пакетов.
Эту команду также можно использовать для обновления nuget.exe, используя флаг -Self .
Использование
где определяет либо packages.config файл решения, либо список зависимостей проекта.
Варианты
-ConfigFile
файл конфигурации NuGet для применения. если не указано, %AppData%\NuGet\NuGet.Config используется (Windows) или ~/.nuget/NuGet/NuGet.Config ~/.config/NuGet/NuGet.Config (Mac/Linux).
-DependencyVersion [Lowest, HighestPatch, HighestMinor, Highest, Ignore]
- Самый низкий (по умолчанию): самая низкая версия
- Хигхестпатч: версия с наименьшим основным, наименьшим незначительным, самым высоким исправлением
- Хигхестминор: версия с наименьшим основным, наибольшим незначительным, самым высоким исправлением
- Наибольшее: самая высокая версия
- Ignore: пакеты зависимостей не будут использоваться
-FileConflictAction [PromptUser, Overwrite, Ignore]
Указывает действие по умолчанию, если файл из пакета уже существует в целевом проекте. Overwrite Установите значение, чтобы всегда перезаписывать файлы. Ignore Задайте для значение, чтобы пропустить файлы.
PromptUser Действие, используемое по умолчанию, запрашивает каждый конфликтующий файл, если OverwriteAll не указан параметр или IgnoreAll , который будет применяться ко всем оставшимся файлам.
-ForceEnglishOutput
(3.5 +) Принудительное выполнение nuget.exe с использованием инвариантного языка и региональных параметров, основанных на английском языке.
-?|-help
Отображает справочные сведения для команды.
-Id
Указывает список идентификаторов пакетов для обновления.
-MSBuildPath
(4.0 +) указывает путь MSBuild для использования с командой, который имеет приоритет над -MSBuildVersion .
-MSBuildVersion
(3.2 +) указывает версию MSBuild для использования с этой командой. Поддерживаемые значения: 4, 12, 14, 15,1, 15,3, 15,4, 15,5, 15,6, 15,7, 15,8, 15,9. по умолчанию выбирается MSBuild в пути, в противном случае — значение по умолчанию — самая высокая установленная версия MSBuild.
-NonInteractive
Подавляет запросы на ввод или подтверждение пользователя.
-PreRelease
Разрешает обновление до предварительных версий. Этот флаг не требуется при обновлении уже установленных пакетов предварительной версии.
-RepositoryPath
Указывает локальную папку, в которую устанавливаются пакеты.
-Safe
Указывает, что будут установлены только обновления с самой высокой версией в той же основной и дополнительной версии, что и установленный пакет.
-Self
-Source
Указывает список источников пакетов (в виде URL-адресов), используемых для обновлений. если этот параметр не указан, команда использует источники, предоставленные в файлах конфигурации, см. раздел Common NuGetconfigurations.
-Verbosity [normal|quiet|detailed]
Задает объем сведений, отображаемых в выходных данных: normal (по умолчанию), quiet или detailed .
-Version
При использовании с одним ИДЕНТИФИКАТОРом пакета указывает версию пакета для обновления.
This forum has migrated to Microsoft Q&A. Visit Microsoft Q&A to post new questions.
Answered by:
Question
Hello all. I'm trying to use the SIMD functionality of .NET 4.6.1 in Visual Studio 2012 (express desktop) and I'm having some trouble. I'm able to target .NET 4.6.1 in the Project Properties page, but when I right-click the project in the Solution Explorer, select "Manage Nuget packages. ", search and select the "System.Numerics.vectors" package and attempt to install I get an error claiming:
"The System.Numerics.Vectors 4.1.0 package requires NuGet client version 3.0 or above, but the current NuGet version is 2.8.60318.677".
When I click the "Upgrade NuGet" button nothing seems to happen. Can someone please provide some guidance? Thank you in advance.
Answers
Please open the Extensions and Updates in Tools menu and then select the Update tab -> Visual Studio Gallery -> NuGet Package Manager, it will show an Update menu. Please update it with this update button.
Best Regards,
Weiwei
All replies
Please open the Extensions and Updates in Tools menu and then select the Update tab -> Visual Studio Gallery -> NuGet Package Manager, it will show an Update menu. Please update it with this update button.
Best Regards,
Weiwei
it is impossible to update the Nuget Package Manager like that in VS 2012. Any ideas how to solve it? The highest it goes is version 2.8.60318.667
That only works if you have an update. The OP stated there are no pending updates for their version and also mentioned they have a much later version than what is evident in your image. In fact the OP has the version you're about to update to.
Dev centers
Learning resources
Community
Support
Programs
© 2022 Microsoft
Следующий раздел относится к только к пакетам на основе packages.config. В проектах PackageReference поврежденные ссылки исправляются автоматически во время восстановления.
Существует несколько ситуаций, описанных ниже в разделе Когда следует переустанавливать пакет, когда ссылки на пакет в проекте Visual Studio могут быть нарушены. В этих случаях удаление и повторная установка той же версии пакета восстанавливает работоспособность ссылок. Обновление пакета означает простую установку обновленной версии, что часто позволяет восстановить работоспособность пакета.
В Visual Studio консоль диспетчера пакетов позволяет обновлять и переустанавливать пакеты несколькими способами.
Обновление и переустановка пакетов выполняются следующим образом:
Метод | Update | Переустановка |
---|---|---|
Консоль диспетчера пакетов (описана в разделе Использование команды Update-Package) | Команда Update-Package | Команда Update-Package -reinstall |
Пользовательский интерфейс диспетчера пакетов | На вкладке Обновления выберите один или несколько пакетов и затем элемент Обновить | На вкладке Установленные выберите пакет, запишите его имя, а затем выберите элемент Удалить. Перейдите на вкладку Обзор, найдите имя пакета, выберите его, а затем выберите элемент Установить. |
Интерфейс командной строки nuget.exe | Команда nuget update | Для всех пакетов удалите папку пакета, а затем запустите nuget install . Для одного пакета удалите папку пакета, а затем используйте nuget install для переустановки того же пакета. |
Для интерфейса командной строки dotnet такая процедура не требуется. В аналогичном сценарии вы можете восстановить пакеты с помощью интерфейса командной строки dotnet.
Содержание этой статьи
Когда следует переустанавливать пакет
- Нарушенные ссылки после восстановления пакета: если вы открыли проект и восстановили пакеты NuGet, но по-прежнему видите нарушенные ссылки, попробуйте переустановить каждый из этих пакетов.
- Проект нарушен из-за удаленных файлов: NuGet не запрещает вам удалять элементы, добавленные из пакетов, поэтому вы легко можете случайно изменить содержимое, установленное из пакета, и нарушить работу проекта. Чтобы восстановить проект, переустановите затронутые пакеты.
- Обновление пакета нарушило работу проекта. Если обновление пакета нарушает работу проекта, причиной сбоя обычно является пакет зависимостей, который также мог быть обновлен. Чтобы восстановить состояние зависимости, переустановите этот пакет.
- Перенацеливание или обновление проекта: это может быть полезно, когда проект был перенацелен или обновлен и если он требует переустановки из-за изменения целевой платформы. В таких случаях NuGet выдает ошибку сборки сразу после перенацеливания проекта, а последующие предупреждения сборки сообщают, что для пакета может потребоваться переустановка. Для обновления проекта NuGet выводит ошибку в журнале обновления проекта.
- Переустановка пакета во время его разработки: авторам пакетов часто требуется переустановить ту версию пакета, которую они разрабатывают, для тестирования поведения. Команда Install-Package не предоставляет возможность принудительной переустановки, поэтому используйте вместо нее Update-Package -reinstall .
Ограничение версий для обновления
По умолчанию для переустановки или обновлении пакета всегда устанавливается самая последняя доступная версия из источника пакета.
Однако в проектах, использующих формат управления packages.config , вы можете ограничить диапазон версий. Например, если известно, что приложение работает с версией 1.x пакета, но не работает с версией 2.0 и выше, возможно, из-за значительного изменения в API пакета, может потребоваться ограничить обновление версиями 1.x. Это предотвратит случайные обновления, приводящие к сбою приложения.
Чтобы задать ограничение, откройте packages.config в текстовом редакторе, найдите требуемую зависимость и добавьте атрибут allowedVersions с диапазоном версий. Например, чтобы ограничить обновления версией 1.x, задайте для allowedVersions значение [1,2) :
Во всех случаях используйте нотацию, описанную в статье Управление версиями пакета.
Использование команды Update-Package
Учитывая описанные ниже особенности, вы можете легко переустановить пакет с помощью команды Update-Package в консоли диспетчера пакетов Visual Studio (Средства Диспетчер пакетов NuGet Консоль диспетчера пакетов).
Воспользоваться этой командой гораздо проще, чем удалить пакет и затем пытаться найти в коллекции NuGet пакет той же версии. Обратите внимание, что параметр -Id является необязательным.
Та же команда без -reinstall обновляет пакет до более новой версии, если это возможно. Команда Update-Package выдает ошибку, если соответствующий пакет не установлен в проекте, то есть эта команда не устанавливает сами пакеты.
По умолчанию Update-Package затрагивает все проекты в решении. Чтобы ограничить действие конкретным проектом, используйте параметр -ProjectName , указав имя проекта в том виде, в котором оно отображается в обозревателе решений:
Чтобы обновить все пакеты в проекте (или переустановить с помощью ), используйте -ProjectName без указания конкретного пакета:
Чтобы обновить все пакеты в решении, используйте только команду Update-Package без аргументов или параметров. Используйте эту форму осторожно, так как выполнение всех обновлений может занимать много времени:
При обновлении пакетов в проекте или решении с помощью PackageReference всегда применяется последняя версия пакета (кроме пакетов предварительного выпуска). Проекты, использующие packages.config , при необходимости могут ограничить версии обновления, как описано ниже в разделе packages.config .
Дополнительные сведения о команде см. по ссылке Update-Package.
Рекомендации
Переустановка пакета может повлиять на следующее:
Переустановка пакетов в результате перенацеливания целевой платформы проекта
- В простом случае можно выполнить переустановку пакета с помощью Update-Package –reinstall . Пакет, установленный для старой целевой платформы, удаляется, после чего устанавливается тот же самый пакет для текущей целевой версии проекта.
- В некоторых случаях пакет может не поддерживать новую целевую платформу.
- Если пакет поддерживает переносимые библиотеки классов (PCL), а проект перенацеливается на сочетание платформ, которое больше не поддерживается пакетом, после переустановки ссылки на этот пакет будут отсутствовать.
- Это может касаться пакетов, которые вы используете напрямую, или пакетов, установленных в качестве зависимостей. Используемый напрямую пакет может поддерживать новую целевую платформу, а его зависимость — нет.
- Если переустановка пакетов после перенацеливания приложения приводит к ошибкам сборки или времени выполнения, может потребоваться отменить изменение целевой платформы или найти альтернативные пакеты, должным образом поддерживающие новую целевую платформу.
Добавление атрибута requireReinstallation в файл packages.config после обновления или перенацеливания проекта
- Если NuGet обнаруживает, что пакеты были затронуты при перенацеливании или обновлении проекта, он добавляет атрибут requireReinstallation="true" в packages.config для всех затронутых ссылок на пакет. По этой причине каждая последующая сборка в Visual Studio вызывает предупреждения сборки для пакетов, чтобы вы не забыли переустановить их.
Переустановка пакетов с зависимостями
- Update-Package –reinstall переустанавливает ту же версию исходного пакета, но устанавливает последнюю версию зависимостей, если только не заданы определенные ограничения по версии. Это позволяет обновить только зависимости, чтобы устранить ошибку. Однако, если при этом зависимость откатывается до более ранней версии, можно использовать Update-Package , чтобы переустановить эту отдельную зависимость, не затрагивая зависимый пакет.
- Update-Package –reinstall -ignoreDependencies переустанавливает ту же версию исходного пакета, но не переустанавливает зависимости. Используйте эту команду, когда обновление зависимостей пакетов может привести к нарушению состояния.
Переустановка пакетов при использовании зависимых версий
С помощью пользовательского интерфейса диспетчера пакетов NuGet в Visual Studio вы можете легко устанавливать, удалять и обновлять пакеты NuGet в проектах и решениях в ОС Windows. Если вы используете Visual Studio для Mac, см. руководство по включению пакета NuGet в проект. Пользовательский интерфейс диспетчера пакетов не входит в Visual Studio Code.
Поиск и установка пакета
В обозревателе решений щелкните правой кнопкой мыши Ссылки или имя проекта и выберите Управление пакетами NuGet.
На вкладке Обзор по популярности отображаются пакеты из выбранного в данный момент источника (см. подробнее об источниках пакетов). Выполните поиск определенного пакета с помощью поля поиска в левом верхнем углу. Выберите пакет в списке, чтобы отобразить сведения о нем. Это также активирует кнопку Установить и раскрывающийся список для выбора версии.
Выберите нужную версию в раскрывающемся списке и щелкните Установить. Visual Studio установит пакет и его зависимости в проект. Может появиться запрос на принятие условий лицензионного соглашения. После завершения установки добавленные пакеты отобразятся на вкладке Установленные. Пакеты также перечислены в узле Ссылки обозревателя решений. Это значит, что на них можно ссылаться в проекте с помощью инструкций .
Чтобы включить предварительные версии в поиск и сделать их доступными в раскрывающемся списке версий, щелкните Включить предварительные версии.
Удаление пакета
В обозревателе решений щелкните правой кнопкой мыши Ссылки или сам проект и выберите Управление пакетами NuGet.
Откройте вкладку Установленные.
Выберите пакет для удаления (при необходимости используйте поиск, чтобы отфильтровать список) и щелкните Удалить.
Обратите внимание, что элементы управления Включить предварительные версии и Источник пакета не применяются при удалении пакетов.
Обновление пакета
В обозревателе решений щелкните правой кнопкой мыши Ссылки или сам проект и выберите Управление пакетами NuGet. (В проектах веб-сайтов щелкните правой кнопкой мыши папку Bin.)
Перейдите на вкладку Обновления, чтобы просмотреть пакеты, для которых доступны обновления из выбранных источников пакетов. Выберите Включить предварительные версии, чтобы включить предварительные версии пакетов в список обновлений.
Последовательно выберите пакет для обновления и нужную версию в раскрывающемся списке справа, а затем щелкните Обновить.
Чтобы обновить несколько пакетов до последних версий, выберите их в списке и нажмите кнопку Обновить, расположенную над списком.
Можно также обновить отдельный пакет на вкладке Установленные. В этом случае сведения о пакете будут содержать средство выбора версии (зависит от параметра Включить предварительные версии) и кнопку Обновить.
Управление пакетами для решения
Управление пакетами для решения — это удобный способ одновременно работать с несколькими проектами.
Выберите команду меню Средства Диспетчер пакетов 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 перезаписывает существующие пакеты.
Параметры удаления
(доступно не для всех типов проектов)
Удалить зависимости — удаляются все зависимые пакеты, если на них нет ссылок в других местах проекта.
Принудительно удалить, даже если есть зависимости от него — пакет удаляется, даже если на него по-прежнему есть ссылка в проекте. Обычно используется в сочетании с удалением зависимостей для удаления пакета и любых установленных зависимостей. Но использование этого параметра может привести к нарушению ссылок в проекте. В таких случаях может потребоваться переустановить другие пакеты.
используя Visual Studio 2012 Premium на Win 7 x64, я создаю новый проект (проект MVC 4). При щелчке правой кнопкой мыши по проекту я не вижу опции "Управление пакетами NuGet". Папка packages существует в каталоге решения, как и пакет.файл конфигурации в каталоге проекта. Когда собирается Tools нет , либо. Когда собирается Tools -> Extensions and Updates. на NuGet Package Manager установлен и обновлен.
любая идея, почему мой проект не может управлять NuGet пакеты для себя?
вот скриншот меню:
У меня была похожая проблема. Проблема была следующей.: Я установил NuGet Packager вместо Менеджер Пакетов NuGet (из расширений и обновлений). Как только я установил последний, он появился в контекстном меню. Возможно, вы столкнулись с той же проблемой.
Мне пришлось удалить Диспетчер пакетов Nuget из расширений и обновлений, а затем переустановить его. После перезапуска Visual Studio появились отсутствующие записи меню.
мое решение пришло в виде уничтожения всех следов Менеджер Пакетов NuGet, включая все файлы реестра. Поскольку файлы реестра имеют странные имена, поиск таких вещей, как NuGet.Core а также почти все, что в Program Files\Microsoft Visual Studio.0\Common7\IDE\Extensions папка. После очистки их, перезагрузки компьютера, переустановки NuGet, а затем перезапуска снова, казалось, прояснить проблему.
из-за причин кажется, что диспетчер пакетов Nuget не был установлен на моем новом выпуске Visual Studio Professionnal 2013. Установка его исправила проблему.
вы также можете проверить папку расширений в [если vs2013 в 64 бит, то C:\Program файлы (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions]
каждое расширение имеет папку здесь с расширением файла манифеста.манифест, проверьте эти xml-файлы-узел " имя " и, если найден дубликат, удалите дубликаты папок, перезапустите Visual Studio.
Если есть такое же расширение в другой папке, VS путается и не загружает его.
Читайте также: