Пакет Nuget не обновляется в Visual Studio - PullRequest
0 голосов
/ 21 февраля 2019

Я создаю пакет nuget, который включает в себя несколько библиотек.После первой итерации этого пакета руководитель моей команды попросил добавить еще одну DLL.Я добавляю его в файл nuspec, удаляю старый пакет с сервера и загружаю обновленный.Я захожу на сервер и проверяю, существует ли недавно добавленная dll в пакете nuget (т.е. я разархивирую пакет nuget и проверяю его содержимое).

Все выглядит хорошо до этого момента.Теперь я иду, чтобы установить вновь созданный пакет в тестовый проект, а затем очистить и собрать.Когда я проверяю папку bin, в ней нет недавно добавленной dll.Это все тот же набор DLL, что и в первой итерации пакета, но на сервере Nuget все обновленные библиотеки DLL.

Я очистил кэш Nuget , удалил старый пакет и повторно применил изменения, и перезапустил Visual Studio, но все безуспешно.

Я считаю, что основная причина кроется в том, что номер версии не увеличивается с каждой итерацией из-за требований, установленных руководителем моей команды (что логично для самого пакета).Например, когда я обновляю Package-v1, следующим обновлением по-прежнему будет Package-v1.

Что можно сделать, чтобы заставить Visual Studio получить последнюю версию с сервера?Кроме того, я хотел бы знать, почему это происходит, если вы знаете.

1 Ответ

0 голосов
/ 25 февраля 2019

Что можно сделать, чтобы заставить Visual Studio получить последнюю версию с сервера?Кроме того, я хотел бы знать, почему это происходит, если вы знаете.

Причина этой проблемы заключается в том, что nuget всегда сначала использует кеш nuget или папки глобальных пакетов, чтобы избежать загрузки уже загруженных пакетов.существуют на компьютере, улучшая производительность операций установки, обновления и восстановления.

Итак, чтобы решить эту проблему, мы должны выяснить кеш nuget и удалить его.Это зависит от типа управления пакетами nuget и настроек repositoryPath / globalPackagesFolder в файле nuget.config.

Если вы используете тип управления пакетами nuget packages.config:

default кеш пакетов находится в папке \packages в папке решения, вы можете проверить этот пакет в папке \packages.Если нет, проверьте, есть ли у вас nuget.config с настройкой:

Если да, кеш пакетов будет сохранен в новой папке YourCustomFolder, удалите этот пакет из этой папки.

Если тип управления пакетами nuget равен packagereference:

Кэш пакетов по умолчанию находится в папке глобальных пакетов:

C:\Users\<UserName>\.nuget\packages

youможете удалить пакет в этой папке, если вы не можете найти пакет из этой глобальной папки пакетов, проверьте, есть ли у вас nuget.config с настройкой:

<add key="globalPackagesFolder" value="YourCustomFolder" />

Если да, удалите пакет из новой папки.

Надеюсь, это поможет.

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