Wix - Как запустить EXE-файлы после установки из установленного каталога?
Я использую программу, которая устанавливается с помощью wix. (Не знаю, актуально ли это, но это программа на C#)
Я хочу запустить exe-файл, который был установлен msi-файлом, но местоположение установки мне неизвестно, так как пользователь выбирает путь установки.
Я хотел спросить, например, как запустить исполняемый файл из местоположения, которое выбирает пользователь.
Несмотря на то, что это не является частью вопроса, я также был бы рад увидеть пример запуска exe-файла из абсолютного местоположения, так как я новичок в wix и делаю все это в первый раз.
2 ответа
Это может быть достигнуто с помощью расширений WIX. Текст, выделенный жирным шрифтом / курсивом ниже, поможет найти точное местоположение вашего EXE-файла:)
Шаг 1: Добавьте библиотеки расширений в ваш проект
Если вы используете WiX в командной строке, вам нужно добавить следующее к вашей командной строке свечей и свечей:
-ext WixUIExtension -ext WixUtilExtension
Если вы используете Visual Studio, вы можете добавить расширения с помощью диалога Добавить ссылку:
Right click on your project in Solution Explorer and select Add Reference...
Select the WixUIExtension.dll assembly from the list and click Add
Select the WixUtilExtension.dll assembly from the list and click Add
Close the Add Reference dialog
Шаг 2. Добавьте пользовательский интерфейс в ваш установщик
Последовательность интерфейса WiX Minimal включает в себя базовый набор диалогов, который включает готовый диалог с необязательным флажком. Чтобы включить последовательность в ваш проект, добавьте следующий фрагмент в любом месте внутри <Product>
элемент.
<UI>
<UIRef Id="WixUI_Minimal" />
</UI>
Чтобы отобразить флажок на последнем экране установщика, включите следующий фрагмент в любом месте внутри <Product>
элемент:
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch My Application Name" />
Свойство WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT предоставляется стандартной последовательностью пользовательского интерфейса, которая, когда она установлена, отображает флажок и использует указанное значение в качестве метки флажка.
Шаг 3. Включите настраиваемое действие
Пользовательские действия включены в проект WiX с использованием элемента. Запуск приложения осуществляется с помощью настраиваемого действия WixShellExecTarget. Чтобы сообщить установщику Windows о настраиваемом действии и задать его свойства, включите следующее в свой проект в любом месте внутри <Product>
элемент:
<Property Id="WixShellExecTarget" Value="[#myapplication.exe]" />
<CustomAction Id="LaunchApplication" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes" />
Элемент Property устанавливает для WixShellExecTarget местоположение установленного приложения. WixShellExecTarget - это свойство. Идентификатор, который, как ожидается, настраиваемое действие WixShellExec будет указывать на расположение файла для запуска. *
Свойство Value использует специальный символ #, чтобы указать WiX искать полный путь к файлу с идентификатором myapplication.exe.
Элемент CustomAction включает действие в установщике. Ему присваивается уникальный идентификатор, а свойства BinaryKey и DllEntry указывают сборку и точку входа для настраиваемого действия. Свойство Impersonate указывает установщику Windows на запуск настраиваемого действия от имени пользователя, который устанавливает программу.
Шаг 4. Запустите настраиваемое действие
Простого включения настраиваемого действия, как на шаге 3, недостаточно для его запуска. Установщик Windows также должен сообщить, когда должно быть запущено настраиваемое действие. Это делается с помощью <Publish>
элемент, чтобы добавить его к действиям, выполняемым, когда пользователь нажимает кнопку Готово на последней странице диалоговых окон пользовательского интерфейса. Элемент Publish должен быть включен в элемент из шага 2 и выглядит следующим образом:
<Publish Dialog="ExitDialog"
Control="Finish"
Event="DoAction"
Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
Свойство Dialog определяет диалог, к которому будет присоединено настраиваемое действие, в данном случае ExitDialog. Свойство Control указывает, что кнопка "Готово" в диалоговом окне запускает настраиваемое действие. Свойство Event указывает, что настраиваемое действие должно выполняться при нажатии кнопки, а свойство Value указывает настраиваемое действие, которое было включено в шаге 3. Условие элемента препятствует выполнению действия, если не установлен флажок из шага 2. и приложение было фактически установлено (в отличие от удаления или ремонта).
Проверьте эту ссылку для деталей. Как запустить exe после установки. Я скопировал это здесь для пользы других, ищущих тот же самый ответ.
Ответ Isaiah4110 - не лучший способ, если вам не нужен пользовательский интерфейс.
Самый простой способ выполнить целевой файл exe, который вы устанавливаете с помощью msi, созданного Wix, - это пользовательский тип действия 18 (определяющий действие с помощью FileKey), вот вам полный пример:
<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<Component Id="TargetProgram" Guid="f757ff43-0266-483a-8749-ec796cba4b25" >
<File Id="EXE" Source="C:\SetupProject\Includes\TargetProgram.exe" />
</Component>
</ComponentGroup>
<CustomAction Id="EXECUTE_AFTER_FINALIZE"
Execute="immediate"
Impersonate="no"
Return="asyncNoWait"
FileKey="EXE"
ExeCommand="" />
<InstallExecuteSequence>
<Custom Action="EXECUTE_AFTER_FINALIZE" After="InstallFinalize">NOT Installed</Custom>
</InstallExecuteSequence>
</Fragment>