Я работаю над старым проектом Visual Studio 2008, в котором был проект установки. Я обновил все до VS2019, внес изменения в код, увеличил версию, добавил несколько файлов и произвел настройку. Чистая установка работает отлично.
Когда я сначала устанавливаю старую версию, используя сборку установки в VS2008, а затем запускаю новую установку, чтобы обновить ее, все go странно. Новая установка установит все новые файлы, и перед самым завершением удалит все файлы, которые были перезаписаны. Останутся только файлы, которые не существовали.
Например, старая установка помещает эти файлы в папку с программным файлом:
- program.exe v1.0
- lib.dll v1.0
Затем новая установка установит эти файлы, перезаписав старые:
- program.exe v2.0
- lib.dll v2.0
- other.dll v1.0
- info.txt v1.0
Непосредственно перед завершением установки и включением кнопки [закрыть] содержимое папки меняется на:
- other.dll v1.0
- info.txt v1.0
Я проверил это на нескольких компьютерах (Win 10 до Win 7) и использовал инструмент filemon, чтобы убедиться, что новые файлы действительно установлены, а затем удалены. Журнал событий показывает только успешную установку. Снова запустите новую настройку и выберите «восстановить», и файлы останутся. Так что это обходной путь, но не самый хороший для многих пользователей.
Тест с двумя сборками VS2019 с разными версиями работает правильно. Старые настройки VS2008 также работали правильно. Таким образом, возникает проблема при обновлении сборки сборки с VS2008 с помощью сборки сборки с VS2019.
Кто-нибудь знает, как это исправить, чтобы при установке не удалялись файлы?