Проект установки и развертывания не обновляет библиотеки DLL NuGet

У меня есть приложение, написанное на Visual Studio 2013, и я использую проект установки и развертывания для его распространения. Все пункты в ответе Акаш Кава на этот вопрос установлены:

Установка новой версии проекта развертывания поверх старой версия

Т.е. для параметра "DetectNewerInstall" установлено значение true, для параметра "RemovePreviousVersion" установлено значение true и т. д. Я также меняю ProductCode и разрешаю Visual Studio создать новый GUID, но UpgradeCode остается тем же. Я также увеличиваю номера версий проектов C #, которые добавляются в проект установки в качестве основного вывода.

Поэтому, когда пользователь запускает установку на машине, на которой уже установлено мое программное обеспечение, он выполняет обновление. Когда это происходит, весь контент, который я написал, обновляется. Однако есть некоторые ссылки NuGet (SignalR, Owin, Netwonsoft и т. Д.), Которые не обновляются. Несмотря на то, что пакеты были обновлены в проекте и манифесте, установщик не заменит старые версии файлов .dll NuGet новыми. Когда я выполняю новую установку и просматриваю .dll в Program Files, я вижу, что NuGet .dll являются новой версией, поэтому я знаю, что правильные версии правильно связаны с проектом установки. Просто кажется, что они не перезаписываются, если они уже существуют. И это происходит только со ссылками NuGet; .dlls и .exes, которые я написал, обновляются правильно.

Есть ли способ заставить проект установки всегда заменять файлы .dll NuGet?


person Kevin Herrick    schedule 05.04.2018    source источник


Ответы (1)


Однако есть некоторые ссылки NuGet (SignalR, Owin, Netwonsoft и т. Д.), Которые не обновляются. Несмотря на то, что пакеты были обновлены в проекте и манифесте, установщик не заменит старые версии NuGet .dll.

NuGet не имеет ничего общего с развертыванием, и он должен загружать пакеты только при сборке проекта ИЛИ при загрузке с консоли.

Программа установки / установки должна автоматически определять зависимости на основе PrimaryOutput, но если некоторые библиотеки DLL не упоминаются в проекте и требуются для развертывания, вам следует добавить их в проект установщика вручную.

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

person Munawar    schedule 06.04.2018