我是Wix的新手。
我从这个例子开始:
https://helgeklein.com/blog/2014/09/real-world-example-wix-msi-application-installer/
他有一个使用变量计算INSTALLDIR的计算例程(实际上,区域设置信息如下所示)。
<!-- All folders from here on are relative to their parent. -->
<Directory Id="ProgramFilesHK" Name="!(loc.ManufacturerName)">
<!-- INSTALLDIR is a property name. We need it later for the UI (to be able to change the install dir. -->
<Directory Id="INSTALLDIR" Name="!(loc.ApplicationName)">
其中(在示例中)解析为:
C:\ Program Files(x86)\ Helge Klein \ uberAgent \
我正在尝试将ProductCode作为所有嵌套子文件夹的(最后)子文件夹。
阿卡,我想:
C:\ Program Files(x86)\ Helge Klein \ {22222222-2222-2222-2222-222222222222} \
我发现了这个:
Obtaining generated ProductCode as a variable in Wix
所以我试图将代码更改为:
<!-- INSTALLDIR is a property name. We need it later for the UI (to be able to change the install dir. -->
<Directory Id="INSTALLDIR" Name="[PRODUCTCODE]">
以及
<Directory Id="INSTALLDIR" Name="[ProductCode]">
不幸的是,这给了我
C:\Program Files (x86)\Apps\CCT\[ProductCode]\
而不是实际ProductCode的Guid值
为什么我要这样做?
我正在进行实例安装,
<Property Id="INSTANCEID" Value="0"/>
<InstanceTransforms Property="INSTANCEID">
<Instance Id="I01" ProductCode="{22222222-2222-2222-2222-222222222222}" ProductName="My Product 01"/>
<Instance Id="I02" ProductCode="{33333333-3333-4f1a-9E88-874745E9224C}" ProductName="My Product 02"/>
<Instance Id="I03" ProductCode="{44444444-4444-5494-843B-BC07BBC022DB}" ProductName="My Product 03"/>
</InstanceTransforms>
和本文
http://ysdevlog.blogspot.com/2011/08/revisited-multiple-instance.html
说:
对于文件数据,这意味着将每个实例的文件安装到 不同的位置 - 包含实例ID的路径 最合适。
如何在“计算”安装目录逻辑中“获取”ProductCode? p>
感谢。
不可用标签:Wix版本3.10
请注意重复的问题“标记”。
这与Wix Installer - Create Folder hierarchy based on Property不同,因为宏值实际上已解析。
此处的问题是宏值无法解析。
答案 0 :(得分:0)
你可以将它添加到你的wxs并查看它是否有效吗?
<CustomAction Id="SetInstallDir" Property="INSTALLDIR"
Value="[PRODUCTCODE]"
Execute="firstSequence" />
在<InstallExecuteSequence>
标记内:
<Custom Action="SetInstallDir" Before="CostFinalize">INSTALLDIR=""</Custom>