Почему установщик MSI перенастраивается, если я удаляю файл?
Я создал установочный пакет MSI в Visual Studio 2008. Проблема заключается в том, что после установки я удаляю ЛЮБОЙ из установленных файлов. Это не мое предназначение для моего установочного пакета. Свойства установки My File:
PackageAs vsdpaDefault Постоянное ложное чтение Только ложный регистр vsdrfDoNotRegister System False Транзитивное ложное Vital False
Если это тривиально, пожалуйста, прости меня. Я не могу поверить, что я не смог заставить Google отказаться от ответа.:)
2 ответа
Установщик Windows- этотехнология развертывания, его задача - установить указанные файлы и параметры реестра и сохранить их в указанных местах установки и убедиться, что они являются правильными версиями - самовосстановление или отказоустойчивость являются механизмом для достижения этой цели. Его работа конфликтует с необходимостью разработчика обмениваться файлами на лету для отладки, разработки и тестирования.
Как разработчик, вы можете быть заинтересованы в развертывании MSI, а затем удалении или замене файлов на лету для отладки. В этих случаях MSI может создавать неудобства, поскольку он никогда не прекращает свою работу и переустанавливает правильные файлы. Это называется "самовосстановление" и может быть эффектно раздражающим!:-).
Есть много способов обойти это, MSI довольно сложный. Поскольку "самовосстановление" обычно вызывается из "объявленного ярлыка", самый простой способ избежать этой функции MSI - запускать файл EXE непосредственно из файловой системы, а не через ярлык. Это обходит механизм самовосстановления MSI для всех, кроме самых сложных EXE-файлов. Вы также можете вручную создать нерекламированный ярлык на рабочем столе, который не приведет к самовосстановлению.
Для записи самовосстановление запускается " точками входа самовосстановления" для проверки пути ключа. Они включают в себя рекламируемые ярлыки, ассоциации файлов, данные реестра COM среди прочего.
Самостоятельное восстановление или отказоустойчивость - это ее официальное название, обратитесь к этой всеобъемлющей статье о проблемах самовосстановления, чтобы найти способы решения вашей конкретной проблемы. Это длинная статья, но ее стоит прочитать, если у вас проблемы с самовосстановлением.
ОБНОВЛЕНИЕ, октябрь 2018 г.:
Самовосстановление в деталях: Больше, чем кто-либо хочет знать о самовосстановлении:
- Самовосстановление - объяснил
- Самовосстановление - поиск реальных решений
- Самовосстановление - как этого избежать в собственной упаковке
Аналогично: Visual Studio 2015 msi build запускает другую установку
Это дизайн, известный как "отказоустойчивость": http://www.msifaq.com/a/1037.htm.
Я знаю, что опоздал на вечеринку по этому вопросу, но обнаружил, что добавление 'NeverOverwrite="yes"' к определению компонентов файлов, которые должны быть изменены после установки, останавливает самовосстановление с отмена моих изменений.
Это почти решило мою проблему самовосстановления. Я добавил это ко всем файлам конфигурации и командным файлам в MSI.