我正在使用wix3.6实例转换功能。我的要求是根据通过命令提示符提供的实例TRANSFERCATEGORY属性将输出吐到两个不同的文件夹中。我不会在我的wxs中获得这个属性,它总是会被放到其他部分。
<Property Id="INSTANCEID" Value="0" />
<InstanceTransforms Property="INSTANCEID">
<Instance Id="LastValue" ProductCode="{ED59B2D8-9A9B-4934-B3A5-7EC6A5A7854A}" ProductName="Value" />
<Instance Id="Series" ProductCode="{BE7644EA-322F-4756-863B-605B753720C1}" ProductName="Series" />
</InstanceTransforms>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFiles64Folder">
<Directory Id="INSTALLFOLDER1" Name="$(var.Manufacturer)">
<Directory Id="INSTALLFOLDER2" Name="ParentFolder">
<?if [TRANSFERCATEGORY] = "Series" ?>
<Directory Id="INSTALLFOLDER" Name="Series">
<Directory Id="ServiceInstaller" Name="ServiceInstaller" />
</Directory>
<?elseif [TRANSFERCATEGORY] = "LastValue"?>
<Directory Id="INSTALLFOLDER" Name="LastValue">
<Directory Id="ServiceInstaller" Name="ServiceInstaller" />
</Directory>
<?endif?>
</Directory>
</Directory>
</Directory>
</Directory>
msiexec /i RDStoGMS.Installer.msi TRANSFORMS=":LastValue" TRANSFERCATEGORY="LastValue"发布于 2022-06-20 09:01:51
您似乎将编译时构造与运行时构造混合在一起。您可以使用SetDirectory自定义操作s.t。像这样:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFiles64Folder">
<Directory Id="INSTALLFOLDER1" Name="$(var.Manufacturer)">
<Directory Id="INSTALLFOLDER2" Name="ParentFolder">
<Directory Id="INSTALLFOLDER" Name="Series">
<Directory Id="ServiceInstaller" Name="ServiceInstaller" />
</Directory>
</Directory>
</Directory>
</Directory>
</Directory>
<SetDirectory Id="INSTALLFOLDER" Value="[TRANSFERCATEGORY]">TRANSFERCATEGORY</SetDirectory>如果定义了TRANSFERCATEGORY值,这将覆盖默认的“Series”。
https://stackoverflow.com/questions/72678083
复制相似问题