1

Когда я запускаю новую установку поверх существующего установленного продукта, программа установки не перезаписывает файлы без EXE и DLL. Для EXE и DLL я могу установить номер версии, который определяет, будут ли файлы заменены. Но это невозможно для файлов конфигурации, содержащих простой текст.Установщик Visual Studio не перезаписывает не двоичные файлы

Есть ли способ заставить установщика заменить все файлы?

DetectNewInstalledVersion до True или False не имеет никакого эффекта.

RemovePreviousVersions устанавливается в True правил замены

ответ

0

Файл для установщика Windows не позволяют пользователем измененные файлы, которые будут заменены:

https://msdn.microsoft.com/en-us/library/windows/desktop/aa370531(v=vs.85).aspx

Основная проблема заключается в том, что вы на самом деле не хотите, чтобы продукт устанавливал файл базы данных, заполнял его данными и затем уничтожал его с обновлением продукта.

Это, скорее всего, то, что происходит. При входе в систему обновления с помощью следующей команды:

Msiexec/I [путь для обновления MSI]/л * ух [путь к файлу журнала Текст]

, а затем выполнить поиск имени файла он расскажет вам, почему он не заменил его.

Другая возможность заключается в том, что файл был отмечен как NeverOverwrite в таблице Component файла MSI. Это кажется маловероятным в вашем случае, потому что установки Visual Studio не поддерживают эту поддержку в среде IDE. Это относится к компоненту после его установки и не может быть отменено - это системная настройка, а не настройка MSI.