Удалите/установите пакет Nuget Clean
Я хотел бы удалить весь пакет nuget и полностью установить его в моем проекте.
К сожалению, по какой-то причине он пропускает удаление файлов, которые были "изменены", а затем пропускает их в проекте при переустановке, поскольку они уже существуют.
Есть ли какой-либо флаг, который я могу установить для безоговорочного удаления каждой отдельной строки пакета nuget, вместо этого перезаписывать все существующие файлы?
Спасибо.
Ответы
Ответ 1
К сожалению, на данный момент NuGet не делает то, что вы хотите. Во время процесса удаления NuGet будет удалять только файлы содержимого, если они не были изменены. И, как вы заметили, процесс обновления не будет обновлять также измененные файлы.
В команде Uninstall-Package есть опция -Force, но это нужно, чтобы "принудительно" удалить, даже если есть другие пакеты, которые зависят от этого.
Мы можем, конечно, записать это как проблему и, возможно, включить ее в будущую версию.
Другой вариант - создать PowerShell script, который будет перечислять содержимое пакета, а затем разрешить вам удалять все файлы содержимого. Я посмотрю, есть ли простой способ сделать это.
BTW: Возможно, вы можете найти лучший способ расширить существующий файл контента, кроме его изменения напрямую. Тем более, что вы теряете свои изменения при обновлении пакета.
Ответ 2
Теперь вы можете делать то, что хотите! (Наконец)
Вам нужно сначала обновить последнюю версию NuGet (думаю, эта функция была добавлена примерно в апреле 2013 года). Сделайте это, перейдя в Tools > Extensions and Updates
и нажмите Updates
, чтобы обновить nuget.
Затем параметр -FileConflictAction
позволит вам перезаписать файлы.
Install-Package Microsoft.jQuery.Unobtrusive.Validation -Version 2.0.30506.0 -FileConflictAction Overwrite
(Справочник команд PowerShell для установочного пакета)
Ответ 3
Версия NuGet 1.6 имеет функцию удаления пакета!
http://docs.nuget.org/docs/release-notes/nuget-1.6
если обновление прошивки не выполнено (сигнатурная пропущенность), просто удалите и переустановите. это известная проблема.
Ответ 4
Я думаю, что это случилось со мной несколько раз. Перейдите в файл packages.config, который должен быть корневым каталогом вашего проекта и удалить боевика (в вашем случае строка с пакетом: SignalR). Это скажет NuGet, что пакет никогда не был установлен.
Теперь вы сможете переустановить его через репозиторий, а затем удалить его, чтобы все было так, как было до того, как вы попали в этот беспорядок. Я не уверен, как это происходит.