我有一个安装文件的合并模块。我想在MSI创建期间使用传递给合并模块的属性。类似的东西:
<Configuration Name='FileNameProperty'
Format='Text'
DefaultValue='[FileNameProperty]' />
<Substitution Table='CustomAction'
Row='SetFileName'
Column='Target'
Value='[=FileNameProperty]' />
<CustomAction Id='SetFileName'
Property='MYFILENAME'
Value='[MYFILENAME]' />
<InstallExecuteSequence>
<Custom Action='SetFileName'
Before='LaunchConditions'>1</Custom>
</InstallExecuteSequence>
...
<File Name="[MYFILENAME]"
Source="my-file.exe" />
目前我正在使用自定义操作,即Type 51,它在将属性值替换为其他元素属性(例如ServiceInstall DisplayName)时起作用。但是,在这种情况下,文件部署为[MYFILENAME]。
我查看了MSDN提供的其他自定义操作,但无法找到适合这种情况的任何内容。任何建议或想法,如果这是可能的?
我的最后一个选择是为文件名的每个变体包含文件元素,并根据条件选择所需的文件,但我想避免这种情况。
答案 0 :(得分:1)
文件名未经过格式化,因此无法使用属性。如果您使用多个文件,WiX的智能出租车可确保副本不占用您机柜中的额外空间。