У меня есть установщик, который устанавливает несколько компонентов, включая службу Windows, после того как он установлен, он запустит службу, установленную в систему с помощью CustomAction.Остановить службу Windows перед выполнением деинсталляции
Проблема при удалении приложения программа установки просит закрыть приложение перед продолжением.
Я создал пользовательское действие, которое будет остановить службу, и я запланирован его с действиями Uninstall.
Но оно не выполняется до тех пор, пока я не нажму OK для диалога с ошибкой после ручного прекращения службы.
Это не удалось на Win7, но я тестировал тот же MSI на WinXP и отлично работал (пользовательское действие выполнено перед проверкой использования файла) !!!
Я использую проект установки VS2010 для создания установщика, но у меня нет проблем с его модификацией (например, с помощью Orca) после сборки.
Вот содержание InstallExecuteSequence таблицы:
Я обнаружил, что InstallValidate действие, проверьте In-Use файлов, но я не могу упорядочить мои пользовательские действия, остановить службу до это потому, что его перед тем InstallInitialize действия, которые требуют, чтобы все пользовательские действия, чтобы после того, как он (ICE77 Evaluator)
ICE77 сообщений об ошибке, если в скрипте-настраиваемое действие секвенировали до Действие InstallInitialize или после действия InstallFinalize.
Что я должен делать, я буду использовать MSIRESTARTMANAGERCONTROL свойство, указывающее, использует ли пакет установщика Windows функциональность FilesInUse Dialog, но мне нужно, чтобы уведомить пользователя о других файлах в использовании.
сталкиваюсь такая же проблема с установщиком окон в VS2015. Как вы избавились от этого? – Rajan365
Вам нужно применить ответ ниже, но поскольку вы используете проект установщика VS, вы не сможете автоматически добавить эту строку в эту таблицу. Я бы предложил создать post-build action для выполнения - например, JScript-файл, который вставляет эту строку вручную (проверьте https: // stackoverflow.com/questions/8318920/insert-in-removefile-table-in-msi) для вставки примерной строки –