我正在尝试安装具有以下条件的功能:“INSTALLTHIS="YES"”。属性“INSTALLTHIS”最初设置为“NO”。操作“test_command”将“INSTALLTHIS”设置为“YES”。“test_command2”中的消息框显示该属性的值已设置为“YES”。我希望将安装“ProductFeature”,因为“INSTALLTHIS="YES"” 是真的,除非它没有安装。
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<Product Id="*" Name="test" Language="1033" Version="1.0.0.0" Manufacturer="test_wix" UpgradeCode="351b96ea-a1af-4542-8be9-9e8e07878a99">
<Property Id="INSTALLTHIS" Value="NO" Secure="yes"></Property>
<Feature Id="ProductFeature" Title="SetupProject1" Level="0">
<ComponentRef Id="ClientSoftware" />
<Condition Level="1">
<![CDATA[INSTALLTHIS="YES"]]>
</Condition>
</Feature>
<CustomAction Id="test_command" Script="vbscript">
<![CDATA[
Session.Property("INSTALLTHIS") = "YES"
]]>
</CustomAction>
<CustomAction Id="test_command2" Script="vbscript">
<![CDATA[
MsgBox(Session.Property("INSTALLTHIS")) <!-- SAYS YES IN THE MESSAGE BOX -->
]]>
</CustomAction>
<InstallExecuteSequence>
<Custom Action="test_command" After="CostFinalize">NOT Installed</Custom>
<Custom Action="test_command2" After="test_command">NOT Installed</Custom>
</InstallExecuteSequence>
</Product>
(我删除了目录设置、组件组、组件等不必要的 XML)