如何选择使用 WiX 工具集安装 IIS 虚拟目录?
How can I optionally install IIS virtual directory with WiX Toolset?
如果安装了 IIS,我正在尝试有选择地安装虚拟目录。如果没有安装,则跳过它。
我有这张支票:
<Fragment>
<Property Id="IIS_MAJOR_VERSION">
<RegistrySearch Id="CheckIISVersion"
Root="HKLM"
Key="SOFTWARE\Microsoft\InetStp"
Name="MajorVersion"
Type="raw" />
</Property>
<iis:WebSite Id='DefaultWebSite' Description='Default Web Site' Directory='INSTALLFOLDER'>
<iis:WebAddress Id="AllUnassigned" Port="80" />
</iis:WebSite>
</Fragment>
并且基于存在的 IIS_MAJOR_VERSION
,我安装了功能:
<Feature Id="ProductFeature2" Title="Setup" Level="1">
<ComponentRef Id="AppIIS" />
<Condition Level="0">NOT IIS_MAJOR_VERSION</Condition>
</Feature>
这部分似乎有效,但是,iis:WebSite
节点导致了问题。如果 IIS_MAJOR_VERSION
也存在,我只想找到它。
如果我将 iis:WebSite
节点移动到组件组中,它会工作,但是 iis:WebSite
不在 'locator' 模式下并被安装和卸载(这很糟糕)。
有没有一种方法可以有条件地 运行 检查 iis:WebSite
?
当您从 IIS 扩展中添加任何元素时(如 <iis:WebSite>
),一个名为 ConfigureIIs
的特殊自定义操作会添加到 InstallExecuteSequence table。在 WiX IIS 扩展的帮助下,此自定义操作是与 IIS 管理相关的所有内容的所谓入口点。
幸运的是,ConfigureIIs
自定义操作默认以在需要时跳过它的方式为条件。如果您使用 Orca 打开生成的 MSI 程序包并导航到左侧窗格中的 InstallExecuteSequence table,您将看到条件使用 SKIPCONFIGUREIIS
属性。因此,我们的想法是将其设置为某个值(例如 1
),以防您不需要执行任何与 IIS 相关的活动。
可以用SetProperty
元素来完成:
<SetProperty Id="SKIPCONFIGUREIIS" Value="1">NOT IIS_MAJOR_VERSION</SetProperty>
如果安装了 IIS,我正在尝试有选择地安装虚拟目录。如果没有安装,则跳过它。
我有这张支票:
<Fragment>
<Property Id="IIS_MAJOR_VERSION">
<RegistrySearch Id="CheckIISVersion"
Root="HKLM"
Key="SOFTWARE\Microsoft\InetStp"
Name="MajorVersion"
Type="raw" />
</Property>
<iis:WebSite Id='DefaultWebSite' Description='Default Web Site' Directory='INSTALLFOLDER'>
<iis:WebAddress Id="AllUnassigned" Port="80" />
</iis:WebSite>
</Fragment>
并且基于存在的 IIS_MAJOR_VERSION
,我安装了功能:
<Feature Id="ProductFeature2" Title="Setup" Level="1">
<ComponentRef Id="AppIIS" />
<Condition Level="0">NOT IIS_MAJOR_VERSION</Condition>
</Feature>
这部分似乎有效,但是,iis:WebSite
节点导致了问题。如果 IIS_MAJOR_VERSION
也存在,我只想找到它。
如果我将 iis:WebSite
节点移动到组件组中,它会工作,但是 iis:WebSite
不在 'locator' 模式下并被安装和卸载(这很糟糕)。
有没有一种方法可以有条件地 运行 检查 iis:WebSite
?
当您从 IIS 扩展中添加任何元素时(如 <iis:WebSite>
),一个名为 ConfigureIIs
的特殊自定义操作会添加到 InstallExecuteSequence table。在 WiX IIS 扩展的帮助下,此自定义操作是与 IIS 管理相关的所有内容的所谓入口点。
幸运的是,ConfigureIIs
自定义操作默认以在需要时跳过它的方式为条件。如果您使用 Orca 打开生成的 MSI 程序包并导航到左侧窗格中的 InstallExecuteSequence table,您将看到条件使用 SKIPCONFIGUREIIS
属性。因此,我们的想法是将其设置为某个值(例如 1
),以防您不需要执行任何与 IIS 相关的活动。
可以用SetProperty
元素来完成:
<SetProperty Id="SKIPCONFIGUREIIS" Value="1">NOT IIS_MAJOR_VERSION</SetProperty>