如何在Wix中使用导入的字符串作为安装目标文件夹,

问题描述 投票:0回答:1

定义属性后,如何将目录名称设置为您定义的该属性。

我在这里定义了一个属性,它从注册表中读取一个值,并将其分配给该属性。

<Property Id="REGISTRY_VALUE">
<RegistrySearch Id="RegistrySearchId" Root="HKLM" Key="SOFTWARE\YourCompany\YourApp" Name="YourRegistryKey" Type="raw" />
</Property>

我使用该属性根据属性值设置 INSTALLDIR 名称

<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLDIR" Name="[REGISTRY_VALUE]">
<!-- Add your files and other components here -->
</Directory>
</Directory>

但是 INSTALLDIR 目录仍然创建为 [REGISTRY_VALUE],而不是 REGISTRY_VALUE 属性的名称。我还尝试在安装过程中使用自定义操作将目录名称分配给属性,但仍然不起作用。

c# wix
1个回答
0
投票

您使用在 CostInitialize 之前安排的 setproperty 自定义操作(msi 类型 51)来分配 INSTALLDIR [REGISTRY_VALUE]。仅在“未安装”和“未安装目录”的情况下执行此操作很重要。这是因为目录对于已安装的产品来说是不可变的(主要升级不会被视为已安装......这是您正在执行的操作的典型用例)并且您希望尊重在命令行中传入的任何内容.

© www.soinside.com 2019 - 2024. All rights reserved.