У меня есть приложение, написанное на 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?