MSI Build uninstall- установленный каталог не удаляется
Я создал пакет сборки MSI для нашего приложения. После этой установки мы запустили другое зависимое программное обеспечение драйвера в отдельном процессе в зафиксированном событии класса Installer, как показано ниже:
Process.Start ("Путь к программному обеспечению драйвера")
Мы столкнулись с проблемой, папка установленного каталога (она пустая) не удаляется при удалении той же самой. Фактически, как и при установке, мы инициировали деинсталляцию зависимого программного драйвера в отдельном процессе, переопределив метод удаления класса установщика.
Кто-нибудь, пожалуйста, помогите мне преодолеть эту проблему? Как я могу удалить установленный каталог?
Я не могу изменить процедуру установки, так как мы знаем, что мы не можем обработать другую установку / удаление, когда идет другая.
1 ответ
Вы используете EXE-драйвер установки не из MSI из MSI? Правильный? Или, может быть, это MSI, завернутый в EXE?
У вас есть Installshield Premier? Не могли бы вы использовать пакетный проект и установить EXE через загрузчик до (или после) установки MSI? Честно говоря, я никогда не использовал эту функцию, но для этого нужен последовательный запуск настроек. Встроенные пользовательские действия в файлах MSI, запускаемых с файлов EXE, общеизвестно ненадежны. Это, на мой взгляд, особенно верно, если вы работаете и с управляемым кодом (что, я думаю, у вас).
В долгосрочной перспективе управляемый код может дать более безопасный код настраиваемого действия (с точки зрения безопасности на основе CAS), но на данный момент он, кажется, вызывает нежелательные зависимости времени выполнения - особенно для очень крупномасштабного распространения (глобального распространения), ориентированного на различные версии Windows (Vista, 7, 8, 10).
Мне говорят, что требуется некоторое время, чтобы привыкнуть к функции пакета Installshield, но, может быть, это лучше для вас? Вы можете запустить EXE-файлы, MSI-файлы, патчи и почтовые файлы в последовательности. Полагаю, что нужно определиться с определением поведения при удалении и обновлении, а также с множеством тестов. Я почти уверен, что разработчики корпоративных приложений были бы рады увидеть пакет, а не MSI с множеством странных вещей, встроенных в него.
ОБНОВЛЕНИЕ: После того, как вы скомпилировали файл комплекта setup.exe, его можно извлечь, как описано здесь: Что касается автоматической установки с использованием Setup.exe, сгенерированного с использованием файла проекта Installshield 2013 (.issuite)
В качестве альтернативы вы можете попытаться извлечь файлы setup.exe для установки драйвера и установить драйверы как обычные компоненты MSI и запустить DPinst.exe для установки / удаления драйверов (инструмент из DIFx). Также довольно неуклюже - особенно, когда вам нужно включить удаление.
Вероятно, ваша установка драйвера уже использует DPInst.exe. Я бы проверил, можете ли вы извлечь MSI из EXE-файла и использовать его вместо EXE-файла для включения в проект пакета. Некоторые советы о том, как обращаться с файлами setup.exe (извлечение, параметры времени выполнения и т. Д.): Извлечение MSI из EXE.
WiX имеет элемент Driver в одном из своих расширений, чтобы иметь дело с установками драйверов. У меня никогда не было возможности проверить это.