WIX 运行 第二次申请然后第一次申请完成
WIX run second application then first is done
我遇到了 Wix 安装程序的问题。我的想法是创建 .msi 安装程序,然后用户安装 .msi , setup.exe 运行s ,然后用户关闭这个 setup.exe(安装程序将安装微软加载项)第二个(图)将陆续开放。现在这个代码在 运行s 之后勾选了两个应用程序。 运行图片的方法是只有关闭第一个吗?请建议!这是我的代码:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" UpgradeCode="b288bcab-ad20-47d5-8d2c-1111111111" Version="$(var.ProductVersion)" Language="1033" Name="Program" Manufacturer="Program LTD">
<Package InstallerVersion="300" Compressed="yes"/>
<Media Id="1" Cabinet="myapplication.cab" EmbedCab="yes" />
<Property Id="ALLUSERS" Value="2" />
<Property Id="MSIINSTALLPERUSER" Value="1" />
<!-- Step 1: Define the directory structure -->
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="InstallFiles" Name="Launch Program">
</Directory>
</Directory>
</Directory>
<UI>
<UIRef Id="WixUI_Mondo" />
<!-- set property and launch the first exe -->
<Publish Dialog="ExitDialog" Control="Finish" Event="DoAction" Value="PrepareLaunchApplication1">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
<Publish Dialog="ExitDialog" Control="Finish" Event="DoAction" Value="LaunchApplication1">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
<!-- set property and launch the second exe -->
<Publish Dialog="ExitDialog" Control="Finish" Event="DoAction" Value="PrepareLaunchApplication2">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
<Publish Dialog="ExitDialog" Control="Finish" Event="DoAction" Value="LaunchApplication2">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
</UI>
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Program" />
<CustomAction Id="PrepareLaunchApplication1" Property="WixShellExecTarget" Value="[#Setup.exe]" />
<CustomAction Id="LaunchApplication1"
BinaryKey="WixCA"
DllEntry="WixShellExec"
Impersonate="yes"
Return="check"
Execute="immediate"/>
<CustomAction Id="PrepareLaunchApplication2" Property="WixShellExecTarget" Value="[#picture.png]" />
<CustomAction Id="LaunchApplication2"
BinaryKey="WixCA"
DllEntry="WixShellExec"
Impersonate="no"
/>
<!-- Step 2: Add files to your installer package -->
<DirectoryRef Id="InstallFiles">
<Component Id="Setup.exe">
<File Id="Setup.exe" KeyPath="yes"
Name="Setup.exe" Source="$(var.AddinFiles)"></File>
</Component>
<Component Id="picture.png">
<File Id="picture.png" KeyPath="yes"
Name="picture.png" Source="$(var.AddinFiles)"></File>
</Component>
</DirectoryRef>
<!-- Step 3: Tell WiX to install the files -->
<Feature Id="MainApplication" Title="Main Application" Level="1">
<ComponentRef Id="Setup.exe" />
<ComponentRef Id="picture.png" />
</Feature>
</Product>
</Wix>
使用自定义操作启动安装是一项非常 ill-advised 的工作。它很可能只会给你带来问题,而且它不是好的设计。
运行 安装程序顺序是 WiX 的引导程序功能 Burn 的用途 - 它允许您 运行 MSI 文件和 EXE指定顺序的文件。
我相信您可以在此处找到有关 Burn 工作原理的工作示例:https://github.com/frederiksen/Classic-WiX-Burn-Theme。本质上,它是一种不同类型的 WiX 源文件,具有专为引导程序创建而设计的自己的架构。
我遇到了 Wix 安装程序的问题。我的想法是创建 .msi 安装程序,然后用户安装 .msi , setup.exe 运行s ,然后用户关闭这个 setup.exe(安装程序将安装微软加载项)第二个(图)将陆续开放。现在这个代码在 运行s 之后勾选了两个应用程序。 运行图片的方法是只有关闭第一个吗?请建议!这是我的代码:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" UpgradeCode="b288bcab-ad20-47d5-8d2c-1111111111" Version="$(var.ProductVersion)" Language="1033" Name="Program" Manufacturer="Program LTD">
<Package InstallerVersion="300" Compressed="yes"/>
<Media Id="1" Cabinet="myapplication.cab" EmbedCab="yes" />
<Property Id="ALLUSERS" Value="2" />
<Property Id="MSIINSTALLPERUSER" Value="1" />
<!-- Step 1: Define the directory structure -->
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="InstallFiles" Name="Launch Program">
</Directory>
</Directory>
</Directory>
<UI>
<UIRef Id="WixUI_Mondo" />
<!-- set property and launch the first exe -->
<Publish Dialog="ExitDialog" Control="Finish" Event="DoAction" Value="PrepareLaunchApplication1">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
<Publish Dialog="ExitDialog" Control="Finish" Event="DoAction" Value="LaunchApplication1">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
<!-- set property and launch the second exe -->
<Publish Dialog="ExitDialog" Control="Finish" Event="DoAction" Value="PrepareLaunchApplication2">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
<Publish Dialog="ExitDialog" Control="Finish" Event="DoAction" Value="LaunchApplication2">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
</UI>
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Program" />
<CustomAction Id="PrepareLaunchApplication1" Property="WixShellExecTarget" Value="[#Setup.exe]" />
<CustomAction Id="LaunchApplication1"
BinaryKey="WixCA"
DllEntry="WixShellExec"
Impersonate="yes"
Return="check"
Execute="immediate"/>
<CustomAction Id="PrepareLaunchApplication2" Property="WixShellExecTarget" Value="[#picture.png]" />
<CustomAction Id="LaunchApplication2"
BinaryKey="WixCA"
DllEntry="WixShellExec"
Impersonate="no"
/>
<!-- Step 2: Add files to your installer package -->
<DirectoryRef Id="InstallFiles">
<Component Id="Setup.exe">
<File Id="Setup.exe" KeyPath="yes"
Name="Setup.exe" Source="$(var.AddinFiles)"></File>
</Component>
<Component Id="picture.png">
<File Id="picture.png" KeyPath="yes"
Name="picture.png" Source="$(var.AddinFiles)"></File>
</Component>
</DirectoryRef>
<!-- Step 3: Tell WiX to install the files -->
<Feature Id="MainApplication" Title="Main Application" Level="1">
<ComponentRef Id="Setup.exe" />
<ComponentRef Id="picture.png" />
</Feature>
</Product>
</Wix>
使用自定义操作启动安装是一项非常 ill-advised 的工作。它很可能只会给你带来问题,而且它不是好的设计。
运行 安装程序顺序是 WiX 的引导程序功能 Burn 的用途 - 它允许您 运行 MSI 文件和 EXE指定顺序的文件。
我相信您可以在此处找到有关 Burn 工作原理的工作示例:https://github.com/frederiksen/Classic-WiX-Burn-Theme。本质上,它是一种不同类型的 WiX 源文件,具有专为引导程序创建而设计的自己的架构。