Как заставить NuGet установить / обновить все пакеты в файле packages.config?

У меня есть решение с несколькими проектами. Большинство сторонних ссылок отсутствует, но для каждого проекта есть packages.config файл. Как заставить NuGet установить / обновить все необходимые пакеты? Нужно ли это делать с помощью командной строки для каждого проекта?


person Samuel Goldenbaum    schedule 29.07.2011    source источник
comment
Пожалуйста, подумайте об изменении принятого ответа, так как NuGet теперь гораздо больше интегрирован в Visual Studio и есть более простые способы решить эту проблему.   -  person skolima    schedule 22.11.2012
comment
В последней версии NuGet 2.5 в диспетчере пакетов теперь есть кнопка «Обновить все»: docs.nuget.org/docs/release-notes/   -  person Erik Schierboom    schedule 28.05.2013
comment
@ErikSchierboom Спасибо! Эта тема должна быть обновлена, так как она теперь доступна   -  person Karl Cassar    schedule 12.06.2013
comment
Связанный проект: chocolatey.org   -  person Jayan    schedule 21.06.2014
comment
Взгляните на: blog.nuget.org / 20121231 /   -  person SepehrM    schedule 10.07.2014
comment
Для удобства поисковиков в VS2013 вы можете щелкнуть решение правой кнопкой мыши и выбрать «Включить восстановление пакета NuGet». Потом строить.   -  person HockeyJ    schedule 12.08.2014
comment
Для тех, кто опаздывает на вечеринку, второй ответ намного лучше: в консоли диспетчера пакетов просто запустите Update-Package -Reinstall.   -  person BrainSlugs83    schedule 20.06.2017
comment
VS2017: щелкните правой кнопкой мыши Решение в обозревателе решений ›Восстановить пакеты NuGet   -  person yoyo    schedule 09.04.2019


Ответы (17)


Вы можете использовать nuget.exe для восстановления своих пакетов или с установленным NuGet 2.7 или выше, вы можете просто скомпилировать ваше решение в Visual Studio, которое также восстановит недостающие пакеты.

Для NuGet.exe вы можете выполнить следующую команду для каждого проекта.

nuget install packages.config

Или с помощью NuGet 2.7 вы можете восстановить все пакеты в решении с помощью командной строки.

nuget restore YourSolution.sln

Оба они снимут пакеты. Однако файлы вашего проекта не будут изменены при запуске этой команды, поэтому в проекте уже должна быть ссылка на пакеты NuGet. Если это не так, вы можете использовать Visual Studio для установки пакетов.

При использовании NuGet 2.7 и более поздних версий Visual Studio автоматически восстанавливает отсутствующие пакеты NuGet при построении решения, поэтому использование NuGet.exe не требуется.

Чтобы обновить все пакеты в вашем решении, сначала восстановите их, а затем вы можете либо использовать NuGet.exe для обновления пакетов, либо из Visual Studio вы можете обновить пакеты из окна консоли диспетчера пакетов, или, наконец, вы можете использовать Управление Диалог пакетов.

Из командной строки вы можете обновить пакеты в решении до последней версии, доступной на сайте nuget.org.

nuget update YourSolution.sln

Обратите внимание, что при этом не будут запускаться сценарии PowerShell в каких-либо пакетах NuGet.

Из Visual Studio вы можете использовать консоль диспетчера пакетов также обновить пакеты. Это имеет то преимущество, что любые сценарии PowerShell будут запускаться как часть обновления, тогда как использование NuGet.exe не будет запускать их. Следующая команда обновит все пакеты в каждом проекте до последней версии, доступной на nuget.org.

Update-Package

Вы также можете ограничить это одним проектом.

Update-Package -Project YourProjectName

Если вы хотите переустановить пакеты до тех же версий, которые были установлены ранее, вы можете использовать аргумент -reinstall с командой Update-Package.

Update-Package -reinstall

Вы также можете ограничить это одним проектом.

Update-Package -reinstall -Project YourProjectName

Параметр -reinstall сначала удалит, а затем снова установит пакет в проект.

Или вы можете обновить пакеты с помощью диалогового окна Manage Packages.

Обновления:

  • 2013/07/10 - обновлена информация о восстановлении nuget в NuGet 2.7.
  • 2014/07/06 - обновлена информация об автоматическом восстановлении пакетов в Visual Studio и обновлен ответ с другими изменениями в NuGet.
  • 2014/11/21 - обновлена информация о -reinstall
person Matt Ward    schedule 30.07.2011
comment
Есть ли какая-нибудь простая команда в Visual Studio для этого? У меня включено автоматическое восстановление для решения, но сборка по-прежнему выдает много ошибок из-за отсутствия ссылок (пакеты не были восстановлены из packages.config). - person Borek Bernard; 09.03.2012
comment
Я так не думаю, если не установил что-то вроде NuGet Power Tools - github.com/davidfowl/NuGetPowerTools. Однако это будет по сути то же самое, что и автоматическое восстановление, которое у вас уже есть. - person Matt Ward; 10.03.2012
comment
Это также работает для установки пакетов в целом, а не только для их восстановления (нет большой технической разницы, как при установке восстановления IS; но это не ограничивается людьми, которые хотят использовать функцию восстановления пакета решения). Однако для этой цели вам необходимо установить переменную среды EnableNuGetPackageRestore. Я установил его в своем скрипте psake перед вызовом nuget install packages.config следующим образом: $ env: EnableNuGetPackageRestore = true. Это устанавливает переменную для процесса PS и процессов, которые он порождает, не затрагивая общесистемные переменные (и, возможно, другие сборки). - person galaktor; 07.03.2013
comment
Восстановление - это не совсем то же самое, что установка. Установка пакета из командной строки не изменит ваш проект, поэтому такие вещи, как ссылки на сборки, добавляться не будут. - person Matt Ward; 08.03.2013
comment
@MattWard, откуда можно запустить это восстановление самородка * .sln? Пробовал с консоли лички. - person Doug Chamberlain; 06.02.2014
comment
У вас есть два варианта. 1) Используйте NuGet.exe из обычной командной строки Windows - возможно, вам потребуется загрузить его. 2) Создайте решение из Visual Studio, тогда восстановление должно произойти автоматически - если у вас установлен хотя бы NuGet 2.7. - person Matt Ward; 06.02.2014
comment
Я заметил, что это не работает в TFS - Visual Studio Online. Любая работа? - person The Muffin Man; 14.07.2014
comment
Не уверен насчет TFS - Visual Studio Online. Согласно документам NuGet, существует встроенный рабочий процесс восстановления пакетов - docs.nuget.org/docs/reference/package-restore-with-team-build - person Matt Ward; 14.07.2014
comment
Воняет - Update-Package -Project YourProjectName не будет использовать версии из packages.config, вместо этого будет использоваться последняя версия, что не всегда хорошо. - person Ben Wilde; 21.11.2014
comment
@ Ben-Wilde - Если вы хотите переустановить те же версии, вы можете использовать Update-Package -Project YourProjectName -Reinstall - person Matt Ward; 21.11.2014
comment
Я, должно быть, потратил как минимум час на поиски решения, и, наконец, оно действительно было Update-Package -reinstall -Project ProjectName - person Wiz; 07.01.2016
comment
Это также должно помочь с командой (или любой другой) Show-Command Update-Package - person jwize; 02.05.2016
comment
docs.nuget.org/consume/package-restore/. лучшее решение - person Kob_24; 29.08.2016
comment
Возможно, поскольку ваш ответ является популярным в результатах поиска, вы могли бы изменить порядок ответов. Все они верны, за исключением того, что тип Powershell теперь является значением по умолчанию в консоли диспетчера пакетов nuget (VS2015). - person Samjongenelen; 02.02.2017
comment
Это сработало для меня: (спасибо Google и Stack). Если вы хотите переустановить пакеты до тех же версий, которые были установлены ранее, вы можете использовать аргумент -reinstall с командой Update-Package. Обновление-Пакет -reinstall - person ransems; 24.01.2018
comment
Я не нашел упоминания в документации о вашем требовании что nuget update YourSolution.sln … не будет запускать сценарии PowerShell ни в каких пакетах NuGet…. Верно ли это утверждение для NuGet.exe 4.7 и выше? - person Uwe Keim; 28.09.2018
comment
Ни одна из версий NuGet.exe не запускает сценарии PowerShell из командной строки. API PowerShell, доступный для скриптов NuGet, специфичен для Visual Studio в Windows, поэтому он не поддерживается на кросс-платформе. Вам следует рассмотреть альтернативы, такие как MSBuild .targets, если вам потребуется дополнительная обработка. Вы также можете протестировать его, чтобы увидеть, будут ли запускаться сценарии PowerShell. «Обновление nuget» имеет ограниченную функциональность по сравнению с обновлением в Visual Studio в Windows. - person Matt Ward; 28.09.2018
comment
Мне нравится раздел графика обновлений в этом посте :) - person Angel; 11.08.2020
comment
как это сделать с помощью кроссплатформенного инструмента dotnet? - person red888; 30.04.2021

Открыть консоль диспетчера пакетов

  • Просмотр - ›Другие Windows -› Консоль диспетчера пакетов

Переустановите все пакеты во ВСЕХ ПРОЕКТАХ текущего решения:

Update-Package -Reinstall

Переустановите все пакеты в КОНКРЕТНОМ ПРОЕКТЕ текущего решения (Благодаря unarity и ashes999):

Update-Package -ProjectName 'YourProjectNameGoesHere' -Reinstall
person Rodolpho Brock    schedule 02.09.2013
comment
я думаю, что это действительно то, что хотел OP, и намного проще, чем все другие решения ... - person jaminto; 24.10.2013
comment
Это вариант ядерной бомбы, если вам просто нужно, чтобы оно работало ПРЯМО СЕЙЧАС. - person Chris; 08.11.2013
comment
Это также идеальный вариант, если вы только что изменили целевую платформу или что-то подобное. Я столкнулся с перспективой обновления 25 с лишним проектов с множеством распределенных вокруг них пакетов nuget, и первая команда идеально подходила для того, что я хотел. И даже не ядерное оружие в смысле излишнего уничтожения. - person Chris; 18.02.2014
comment
Это должен быть ответ на этот вопрос, принятый ответ действительно работает, но он конкретно отвечает на вопрос. +1 за то, что было именно то, что нужно. - person krystan honour; 12.03.2014
comment
Имейте в виду, что это приведет к удалению и переустановке всего, поэтому все ваши файлы проекта и конфигурации изменятся. (Я использую NuGet 2.8.) - person David; 23.04.2014
comment
Возможно, вы даже захотите добавить переключатель -IgnoreDependencies. У меня произошел сбой Update-Package, потому что зависимость одного из пакетов, которые я использовал, существовала в более новой версии, чем указано в моих файлах packages.config - person Mathias Falkenberg; 17.07.2014
comment
@Mathias имеет хорошее мнение. Я использовал эту команду, и в результате ни в одном проекте не было пакетов вообще после того, как было получено это сообщение: Update-Package : Already referencing a newer version of 'Newtonsoft.Json'. Я решил восстановить свои файлы packages.config и попробовать переустановить при сборке - person Rob Von Nesselrode; 27.07.2014
comment
Очевидно, что это гораздо более простой и самодостаточный ответ (больше не всегда лучше), и его следует пометить как ответ на вопрос. - person Ravid Goldenberg; 18.03.2016
comment
У меня проблема в том, что он удаляет мой packages.config и не восстанавливает его - чтобы обойти это, я копирую содержимое packages.config в файл блокнота, отменяю (в TFS) удаление packages.config и перезаписываю новым данные. Возможно, это вызывает какая-то настройка в VS, но я не могу ее найти. - person Chris; 14.02.2020

Есть еще один, более новый и быстрый способ сделать это из Visual Studio. Ознакомьтесь с этим сообщением Дэвида Эббо, и обратитесь к разделу комментариев, если у вас возникнут проблемы. Обычно в приглашении диспетчера пакетов вы делаете следующее:

PM> Install-Package NuGetPowerTools
PM> Enable-PackageRestore

Впоследствии, когда вы создадите свое решение, пакеты будут автоматически установлены, если они отсутствуют.

Обновление:

Эта функция встроена в Nuget 1.6 с интеграцией Visual Studio, поэтому вам даже не нужно устанавливать NuGetPowerTools или вводить команды. Все, что тебе нужно сделать, это

Щелкните правой кнопкой мыши узел «Решение» в обозревателе решений и выберите «Включить восстановление пакета NuGet».

Дополнительные сведения см. В этой статье.

person Alex    schedule 06.12.2011
comment
Обновленный ответ здесь будет лучшим решением для большинства людей, поскольку у них не будет nuget.exe (но Nuget будет установлен в Visual Studio). - person Tod Thomson; 12.09.2012
comment
Но пакет восстановления на самом деле загружает nuget.exe для вас - person Konstantin; 20.11.2012
comment
Я только что сделал это. и он по-прежнему не выполняет сборку, говоря, что ссылки отсутствуют. Build говорит, что все пакеты уже установлены. Я зашел в папку solution / packages, удалил нужные пакеты, они загрузились и начали работать. - person Maslow; 12.04.2013
comment
@Shy этот способ теперь не рекомендуется в пользу решения, которое не изменяет все файлы вашего проекта. - person The Muffin Man; 14.07.2014

Вот еще одно решение, если вы используете проекты веб-сайтов или не хотите включать восстановление пакета NuGet.

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

# read the packages.config file into an XML object
[xml]$packages = gc packages.config

# install each package 
$packages.packages.package | % { Install-Package -id $($_.id) -Version $($_.version) }
person David Martin    schedule 01.02.2013
comment
Я попробовал каждый из приведенных выше ответов и не смог заставить их работать над одним из моих решений. Но вариант этого сделал. $packages.packages.package | % { Update-Package -reinstall -id $($_.id) } - person PerryJ; 01.02.2013
comment
Восстановление пакета nuget - это кошмар, если вы используете несколько решений для одного и того же csproj ... Я приветствую этот ответ! - person felickz; 21.02.2013
comment
Это не решило мою проблему, но мне стало легче! - person JOATMON; 03.04.2013
comment
Это отличный способ переноса пакетов в новый проект: [xml] $ packages = gc c: \ PathToExisting \ packages.config # после # установить каждый пакет $ packages.packages.package | % {Install-Package -id $ ($ _. Id) -Version $ ($ _. Version)} - person reckface; 05.08.2015
comment
@PerryJ, ты мог просто набрать Update-Package -Reinstall. - person BrainSlugs83; 21.06.2017

Update-Package -ProjectName 'YourProjectNameGoesHere' -Reinstall

Это лучший и самый простой пример, который я нашел. Он переустановит все nugets, перечисленные в packages.config, и сохранит текущие версии. Замените YourProjectNameGoesHere именем проекта.

person unarity    schedule 23.10.2013
comment
У меня были некоторые проблемы с этим, потому что мой файл packages.config содержал ссылки на два пакета с определенными версиями, но один пакет зависел от другого без конкретной версии. Когда я запустил обновление, оно сначала удалило все пакеты, а затем не удалось переустановить, потому что на более новую версию зависимости «уже ссылались». Однако удаление прошло нормально, поэтому теперь мой файл packages.config пуст. Мне пришлось вернуть packages.config из системы управления версиями и обновить конфликтующий пакет, прежде чем пытаться выполнить полное обновление ... - person Mathias Falkenberg; 17.07.2014

В последней версии NuGet 2.5 в диспетчере пакетов теперь есть кнопка «Обновить все»: http://docs.nuget.org/docs/release-notes/nuget-2.5#Update_All_button_to_allow_updating_all_packages_at_once

person Erik Schierboom    schedule 12.06.2013
comment
Кроме того, из консоли диспетчера пакетов вы можете запустить Update-Package для выполнения всех пакетов в вашем проекте: nuget.codeplex.com/wikipage?title=Updating%20All%20Packages - person kmp; 06.08.2013

Я использую Visual Studio 2015, и приведенные выше решения у меня не работали, поэтому я сделал следующее:

Удалите папку пакетов из моего решения, а также папки bin и obj из каждого проекта в решении и выполните перестройку.

Может у вас будет следующая ошибка:

невозможно найти nuget.exe

Чтобы решить эту проблему: измените эту строку в файле NuGet.targets и установите для нее значение true:

<DownloadNuGetExe Condition=" '$(DownloadNuGetExe)' == '' ">true</DownloadNuGetExe>

Ссылка: https://stackoverflow.com/a/30918648 и https://stackoverflow.com/a./20502049

person mejiamanuel57    schedule 01.12.2015

Если вы устанавливаете Nuget 2.8, установите флажок

Tools >> Nuget Manager >> Package Manager Settings >> Automatically check for missing packages during build

в Visual Studio. Если он отмечен, то просто перестройте проект, чтобы восстановить все ваши справочные библиотеки.

person Shin Kazama    schedule 13.07.2015
comment
Самый удобный вариант из UI Visual Studio. Вам также необходимо установить флажок Allow NuGet to download missing packages. - person RBT; 07.07.2017

После 3 часов поиска и расследования.

У меня были проблемы с этим, потому что у нас есть два члена в команде (с использованием системы управления версиями GitHub), потому что мы не ограничивали файлы для пакетов для отправки в удаленный репозиторий, один из членов команды отправлял пакеты на сервер, и я получил эти изменения в мой местный.

После этого у меня возникла та же проблема, что и у PO, также я не смог опубликовать свой проект API на сервере.

В и я только что использовал

Update-Package -Reinstall - запустите эту команду в консоли диспетчера пакетов.

Эта команда переустановит все ваши пакеты, которые вы использовали в своем решении. (Для каждого проекта)

Переустановите все пакеты во ВСЕХ ПРОЕКТАХ текущего решения:

Update-Package -ProjectName 'NameOfProject' -Reinstall - запустите эту команду в консоли диспетчера пакетов.

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

За это большое спасибо Родольфо Броку.

Кроме того, я бы порекомендовал вам, когда вы получаете изменения с удаленного сервера, нажимать кнопку «Восстановить пакеты», которая будет отображаться Visual Studio.

person Nihad Delic    schedule 30.08.2017

Я считаю, что первое, что вам нужно сделать, это включить функцию восстановления пакета. См. Также здесь. Это делается на уровне решения (а не проекта).

Но это не поможет вам полностью - я столкнулся с аналогичной проблемой после включения функции восстановления. (VS2013, NuGet 2.8.)

Оказалось, что я (непреднамеренно) передал пакеты в систему управления версиями, когда зафиксировал проект - но Visual Studio (и плагин системы управления версиями) услужливо проигнорировали двоичные файлы при выполнении возврата.

Проблема возникла, когда я создал ветку релиза. Моя локальная копия ветки dev / main / trunk имела двоичные файлы, потому что именно там я изначально установил / загрузил пакеты.
Однако в новой ветке выпуска

  • все папки с пакетами и .nupkg файлы были там, поэтому NuGet не думал, что нужно что-то восстанавливать;
  • но в то же время ни одна из DLL не присутствовала, т.е. отсутствовали сторонние ссылки, поэтому я не мог собрать.

Я удалил все папки пакетов в $(SolutionDir)/packages (в ветке выпуска), а затем выполнил полную перестройку, и на этот раз сборка прошла успешно.
... а затем, конечно, я вернулся и удалил папки пакетов из системы управления версиями ( в ствол и выпускную ветку). Я не совсем понимаю (пока), следует ли удалить файл repositories.config.

Многие из компонентов, устанавливаемых для вас шаблонами проектов - по крайней мере, для веб-проектов - являются пакетами NuGet. То есть эта проблема не ограничивается добавленными вами пакетами.
Поэтому включите восстановление пакета сразу после создания проекта / решения и перед выполнением начальной регистрации очистите папку packages (и убедитесь, что вы зафиксировали папку .nuget в систему управления версиями).

Отказ от ответственности: я видел здесь еще один ответ на SO, который указывал, что очистка папки packages была частью решения. Это поставило меня на правильный путь, поэтому я хотел бы отдать должное автору, но я больше не могу найти этот вопрос / ответ. Я опубликую правку, если наткнусь на нее.

Также отмечу, что Update-Package -reinstall изменит файлы .sln и _9 _ / _ 10_. По крайней мере, так было в моем случае. Что ИМХО делает этот вариант менее привлекательным.

person David    schedule 23.04.2014
comment
У меня была такая же проблема, и я потратил много времени на обновление и переустановку пакетов, когда, как вы говорите, все, что нужно было сделать, это удалить локальные пакеты. - person Thomas Boby; 19.11.2015

Для тех, кто прибыл сюда из-за того, что сервер сборки не справился с этим, вы можете создать цель MSBuild, запустив команду exec для запуска команды nuget restore, как показано ниже (в этом случае nuget.exe находится в .nuget, а не по пути), который затем можно запустить на этапе сборки TeamCity непосредственно перед сборкой решения.

<Target Name="BeforeBuild">
  <Exec Command="..\.nuget\nuget restore ..\MySolution.sln"/>
</Target>
person Fetchez la vache    schedule 13.04.2016

Я попробовал Update-Package -reinstall, но это не помогло с пакетом и остановило обработку всех оставшихся пакетов проектов в моем решении.

Я закончил свой скрипт, который перечисляет все файлы package.config и запускает Update-Package -Reinstall -ProjectName prj -Id pkg для каждого проекта / пакета.

Надеюсь, это может быть полезно для кого-то:

$files = Get-ChildItem -Recurse -Include packages.config;

[array]$projectPackages = @();
$files | foreach { [xml]$packageFile = gc $_; $projectName = $_.Directory.Name; $packageFile.packages.package.id | foreach { $projectPackages += @( ,@( $projectName, $_ ) ) } }

$projectPackages | foreach { Update-Package -Reinstall -ProjectName $_[0] -Id $_[1] }

Изменить: Это была моя ошибка: Update-Package: не удалось найти пакет EntityFramework.BulkInsert-ef6. Существующие пакеты необходимо восстановить перед установкой или обновлением. Ручной запуск Update-Package -Reinstall -ProjectName my_prj -Id EntityFramework.BulkInsert-ef6 работал очень хорошо.

person Sergei Zinovyev    schedule 01.11.2018
comment
Я тоже плачу от радости! Да!! Какая экономия времени. Как и в случае с FYI, если вы используете эту строку вместо последней строки в скрипте Сергея, зависимости не будут установлены. Просто прямая переустановка: $ projectPackages | foreach {Update-Package -IgnoreDependencies -Reinstall -ProjectName $ _ [0] -Id $ _ [1]} - person ElMatador; 16.08.2019

теперь консоль диспетчера пакетов Nuget в Visual Studio 2012 автоматически дает вам кнопку «Восстановить», как только обнаруживает, что какой-либо пакет не установлен, но находится в package.config. Отличная особенность!

person Sunny Sharma    schedule 14.01.2014
comment
Это верно и для Visual Studio 2010. - person paulroho; 03.02.2014

В VS2012 V11, если я использую «-Reinstall» в конце строки, это не сработает.

Поэтому я просто использовал:

Update-Package -ProjectName 'NAME_OF_THE_PROJECT'
person user3516584    schedule 17.05.2014

Я знаю, что это старый пост, но подумал, что это может быть полезно. Если вам необходимо игнорировать определенные пакеты во время процесса обновления (например, любые пакеты, которые обновляют ссылки JavaScript), используйте следующий сценарий PowerShell (убедитесь, что для источника вашего пакета установлено значение «Все» в консоли диспетчера пакетов):

РЕДАКТИРОВАТЬ 2014-09-25 10:55 AM EST - Исправлена ошибка в скрипте.

$packagePath = "packages.config"
$projectName = "MyProjectName"

$packagesToIgnore = @(
    "bootstrap",
    "jQuery",
    "jquery-globalize",
    "jquery.mobile",
    "jQuery.jqGrid",
    "jQuery.UI.Combined",
    "jQuery.Validation",
    "Microsoft.jQuery.Unobtrusive.Validation",
    "Modernizr",
    "Moment.js"
)

[xml]$packageFile = gc $packagePath
$packagesToProcess = $packageFile.packages.package | Where-Object {$packagesToIgnore -notcontains $_.id}

$packagesToProcess | % { Update-Package -reinstall -projectname $projectName -id $($_.id) }
person Joe the Coder    schedule 25.09.2014

Не знаю, с каких пор, но в VS2019 это можно сделать проще:

  1. решение, щелкнув правой кнопкой мыши в обозревателе решений
  2. выберите Управление пакетами Nuget для решения
  3. есть 4 вкладки: Обзор, Установлено, Обновления, Объединить.
  4. Consolidate показывает, есть ли какие-либо проекты, использующие разные версии пакетов (и в большинстве случаев именно поэтому мы хотим обновить все пакеты)
  5. Обновления показывают, есть ли какие-либо обновления в ЛЮБЫХ проектах. Выберите все и нажмите «Обновить», работа будет выполнена.
person cheny    schedule 01.01.2020

В Visual Studio 2017 - при компиляции с использованием IDE - все недостающие пакеты nuget будут загружены и сохранены в папке «пакеты».

Но на сборочной машине компиляция производилась с помощью msbuild.exe. В этом случае я скачал nuget.exe.

Во время каждого процесса сборки перед запуском msbuild.exe. Он выполнит -> nuget.exe восстановит NAME_OF_SLN_File (если есть только один файл .SLN, вы можете игнорировать этот параметр).

person David    schedule 27.03.2018
comment
Я обнаружил, что для этого вы можете использовать MSBuild -t: restore в SLN в командной строке. MSbuild -t:restore Xxxx.sln - person Mike Kelly; 16.01.2019