Почему установщик MSI переконфигурирует, если я удаляю файл? - PullRequest
7 голосов
/ 12 мая 2011

Я создал установочный пакет MSI в Visual Studio 2008. Проблема заключается в том, что после установки я удаляю ЛЮБОЙ из установленных файлов. Это не мое предназначение для моего установочного пакета. Свойства установки My File:

PackageAs vsdpaDefault Постоянный Ложь ReadOnly False Регистрация vsdrfDoNotRegister Система Ложь Переходный Ложь Vital False

Если это тривиально, пожалуйста, прости меня. Я не могу поверить, что я не смог заставить Google отказаться от ответа. :)

Ответы [ 3 ]

7 голосов
/ 13 мая 2011

Установщик Windows - это технология развертывания , его задача - установить указанные файлы и параметры реестра и сохранить их в указанных местах установки и убедиться, что они являются правильные версии - самовосстановление или отказоустойчивость являются механизмом для достижения этой цели. Его работа конфликтует с необходимостью разработчика обмениваться файлами на лету для отладки, разработки и тестирования.

Как разработчик, вы можете быть заинтересованы в развертывании MSI, а затем удалении или замене файлов на лету для отладки. В этих случаях MSI может создавать неудобства, поскольку он никогда не прекращает свою работу и переустанавливает правильные файлы. Это называется " Самовосстановление " и может быть очень раздражающим! : -.)

Есть много способов обойти это, MSI довольно сложный. Поскольку «самовосстановление» обычно вызывается из « объявленного ярлыка », самый простой способ избежать этой функции MSI - запускать файл EXE непосредственно из файловой системы, а не через ярлык. Это обходит механизм самовосстановления MSI для всех, кроме самых сложных EXE-файлов. Вы также можете вручную создать нерекламированный ярлык на рабочем столе, который не приведет к самовосстановлению.

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

Существует гораздо больше самовосстановления или упругости , которое является его официальным названием, пожалуйста, проверьте эту всеобъемлющую статью о проблемах самовосстановления , чтобы найти способы решения вашей конкретной проблемы. Это длинная статья, но ее стоит прочитать, если у вас возникли проблемы с самовосстановлением.


ОБНОВЛЕНИЕ, октябрь 2018 :

Подробное описание самовосстановления : больше, чем кто-либо хочет знать о самовосстановлении:

  1. Самовосстановление - объяснил
  2. Самовосстановление - поиск реальных решений
  3. Самовосстановление - как избежать этого в вашей собственной упаковке

Аналог: Visual Studio 2015 msi build запускает другую установку

2 голосов
/ 12 мая 2011

Это дизайн, известный как «устойчивость»: http://www.msifaq.com/a/1037.htm.

1 голос
/ 18 декабря 2018

Я знаю, что опоздал на вечеринку по этому вопросу, но я обнаружил, что добавление 'NeverOverwrite = "yes" "к определению компонента файлов, которые должны быть изменены после установки, останавливает сам- отменить мои изменения.

Это почти решило мою проблему самовосстановления.Я добавил это ко всем файлам конфигурации и командным файлам в MSI.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...