Перезапись пакета NuGet НЕ меняет версию .NET - PullRequest
0 голосов
/ 12 апреля 2019

У меня был NET45 проект, опубликованный в NuGet. По внутренним причинам (это не производственное приложение), я ТРЕБУЮ, чтобы это была Версия 1.0.1 всегда, несмотря ни на что. Я использую свой собственный частный сервер NuGet, который в настоящее время полностью обновлен, и TeamCity в качестве моего сервера сборки.

- См. TeamCity Редактировать / добавить внизу -

Итак, через 4 года мне пришлось сделать небольшое обновление этого пакета NuGet. Я сделал это и переиздал как 1.0.1. У меня действительно allowOverrideExistingPackageOnPush установлено значение true, и я вполне уверен, что код был перезаписан.

Помимо одного крошечного изменения кода, я также изменил проект на .NET 4.7.2, а также обновил nuspec From This, To This ...

<!-- From this -->
<file src="bin\Release\....dll" target="lib\net45\....dll" />
<!-- To this -->
<file src="bin\Release\....dll" target="lib\net472\....dll" />

Когда я проверяю свой сервер, мой nupkg выглядит так:

NuPkg GobblyGook with happy artifacts

Раньше было написано net45, но теперь написано net472. Успех?

Однако мое приложение-потребитель (также не производственное приложение), это его папка Packages/, включает только папку ...1.0.1/lib/net45.

Я пытался всеми возможными способами стереть, перезапустить, очистить кеш и иным образом стереть этот пакет 1.0.1 со всего. Но, тем не менее, когда я нажимаю на нее, она всегда заканчивается ТОЛЬКО папкой net45.

Наконец, чтобы облегчить свое безумие, я позволил свой самый первый толчок 1.0.2 и, к моему большому удивлению, была папка net472. Это было прекрасно.

Итак, как мне НАСТОЯТЕЛЬНО удалить пакет 1.0.1 и / или изменить все устаревшие записи, чтобы он не застрял как net45?

В TeamCity есть страница «Кэши» в меню диагностики. Я искал определения и причины для сброса некоторых из этих кэшей, но ничего не выскочило на меня, связанного с этим. Кроме того, в нем говорится не трогать его, если член команды TeamCity не скажет вам. Не уверен, что это связано, но если так, то кто-то с таким опытом был бы признателен.

1 Ответ

0 голосов
/ 14 апреля 2019

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

В VS Инструменты> Диспетчер пакетов NuGet> Настройки> Очистить все кэши NuGet.

...