Nuget Clean Package Удалить / Установить - PullRequest
14 голосов
/ 21 июня 2011

Я хотел бы удалить весь пакет nuget и заново установить его в своем проекте.

К сожалению, по какой-то причине он пропускает удаление файлов, которые были «изменены», а затем пропускает помещение их в проект при переустановке, поскольку они уже существуют.

Есть ли какой-либо флаг, который я могу установить, чтобы безоговорочно удалить каждую отдельную трассировку пакета nuget, или перезаписать все существующие файлы?

Спасибо.

Ответы [ 4 ]

11 голосов
/ 21 июня 2011

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

Команда Uninstall-Package имеет опцию -Force, но это означает «принудительное» удаление, даже если есть другие пакеты, которые зависят от этого.

Мы, безусловно, можем подать это как проблему и, возможно, включить ее в будущую версию.

Другой вариант - создать сценарий PowerShell, который будет перечислять содержимое пакета, а затем позволит вам удалить все файлы содержимого. Я посмотрю, есть ли простой способ сделать это.

Кстати: возможно, вы можете найти лучший способ расширить существующий файл содержимого, не изменяя его напрямую. Тем более что вы теряете свои изменения при обновлении пакета.

6 голосов
/ 01 июля 2013

Теперь вы можете делать то, что вы хотите!(наконец)

Вам необходимо сначала обновить последнюю версию NuGet (я думаю, что эта функция была добавлена ​​в апреле 2013 года).Для этого перейдите на Tools > Extensions and Updates и нажмите Updates, чтобы обновить nuget.

Затем параметр -FileConflictAction позволит перезаписывать файлы.

Install-Package Microsoft.jQuery.Unobtrusive.Validation -Version 2.0.30506.0 -FileConflictAction Overwrite

(Справочник по командам PowerShell для пакета установки )

3 голосов
/ 13 декабря 2011

NuGet версии 1.6 имеет функцию удаления пакета! http://docs.nuget.org/docs/release-notes/nuget-1.6

Если обновление расширения не удалось (несоответствие сигнатур), просто удалите и переустановите. это известная проблема.

0 голосов
/ 12 сентября 2017

Я думаю, это случалось со мной несколько раз.Перейдите в файл packages.config, который должен быть корневым каталогом вашего проекта, и удалите мятежника (в вашем случае это строка с пакетом: SignalR).Это сообщит NuGet, что пакет никогда не устанавливался.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...