Closed. 此问题正在寻求书籍、工具、软件库等的推荐。不满足堆栈溢出指南 /help/closed-questions 。目前不接受答案。
我有带有一些自定义 UI 屏幕的 WIX 安装程序,其中有一个自定义 UI 屏幕,上面有两个单选按钮。我只想安装 SQL Server Express 和 IIS Express,具体取决于单选按钮选择。我如何实现此功能。
我在我的项目中使用 WIX 3.11.2 和 Visual Studio 2019。
任何人都可以提供参考链接或代码片段,这将帮助我进一步进行,因为我对 WIX 安装程序完全陌生?
您可以尝试使用 InstallCondition
你的bundle.wxs会有这样的东西
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">
<Bundle Name="YourProductName" Version="1.0.0.0" Manufacturer="" UpgradeCode="aa89733d-62f6-44e9-80c7-04a69cb7c077">
<Variable Name="InstallIISEXPRESS" Value="0" bal:Overridable="yes" Type="string" />
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
<Chain>
<!-- TODO: Define the list of chained packages. -->
<!-- <MsiPackage SourceFile="path\to\your.msi" /> -->
<PackageGroupRef Id ='DatabaseGrp'/>
</Chain>
</Bundle>
<Fragment>
<PackageGroup Id ='DatabaseGrp'>
<MsiPackage Id="SQLServerExpress_x86_msi"
Cache="yes"
InstallCondition= "NOT(InstallIISEXPRESS = 1)"
Visible ="yes"
Permanent="yes"
SourceFile="Path\To\Your\SQLServerExpressMSI">
<MsiProperty Name="IACCEPTQLServerExpressLICENSETERMS"
Value="YES"/>
</MsiPackage>
<MsiPackage Id="IISExpress_x86_msi"
Cache="yes"
Visible ="yes"
InstallCondition= "InstallIISEXPRESS = 1"
Permanent="yes"
SourceFile="Path\To\Your\IISExpressMSI">
<MsiProperty Name="IACCEPTIISExpressLICENSETERMS"
Value="YES"/>
</MsiPackage>
</PackageGroup>
</Fragment>
</Wix>
You need to add a reference to the BalExtension in your Bundle Project
您需要从 Bootstrapper(自定义 UI)项目中设置变量 InstallIISExpress 的值,这将决定将安装哪个数据库 MSI。
您可以像这样从 Bootstrapper 项目设置该值
Bootstrapper.Engine.StringVariables["InstallIISExpress"] = "0";
// If you want to install SQLEXPRESSSERVER then set it to "0"
// If you want to install IISEXPRESS then set it to "1"
// You can decide this value from radio button selected by user
InstallCondition 指示是否应安装该包。如果条件评估为真,则可以安装该包。如果条件评估为 false,则不应安装该包。如果该包存在并且条件评估为 false,则该包将被卸载。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)