VS2005 Setup Project.
Есть приложение, которое периодически обновляется.
Установки:
DetectNewerInstalledVersion = true
InstallAllUsers = true
ProductCode = новый
RemovePreviousVersions = true
UpgradeCode = постоянный
Version = новый (изменяется третья цифра)
Все это дело прекрасно работало. Т.е. запускаешь такой апдейт, он сносит старую версию втихаря и ставит новую. Все отлично. Причем можно легко удалять собственно пакет обновления перед первым запуском обновленного приложения – никаких ошибок не будет.
Проблема. Изменился состав dll'ек в дистрибутиве. Там и сишные с тем же именем и дотнетовские с нэйтив кодом. Казалось бы какая разница? Оказывается есть.
Теперь если программу обновить, а пакет обновления удалить, то при первом запуске приложения выдается ошибка:
Нужный файл находится на сетевом ресурсе, который сейчас недоступен.
Укажите путь к папке, содержащей пакет установки.
Захожу в директорию установки и вижу, что собственно экзешника, на который ссылается ярлык, нет!
Причем если запустить апдейт «с нуля», т.е. если на машине нет установленного приложения, то все отлично!
Не подскажите куда думать?