Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wix 将文件名设置为属性_Wix_Windows Installer - Fatal编程技术网

Wix 将文件名设置为属性

Wix 将文件名设置为属性,wix,windows-installer,Wix,Windows Installer,我有一个安装文件的合并模块。我想在MSI创建期间使用传递给合并模块的属性。比如: <Configuration Name='FileNameProperty' Format='Text' DefaultValue='[FileNameProperty]' /> <Substitution Table='CustomAction' Row='SetFileName'

我有一个安装文件的合并模块。我想在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" />

1.
...
目前,我正在使用一个自定义操作,即类型51,它在用属性值替换其他元素属性(如ServiceInstall DisplayName)时起作用。但是,在本例中,该文件部署为[MYFILENAME]

我查看了MSDN提供的其他自定义操作,但找不到任何适合这种情况的操作。如果可能的话,有什么建议或想法吗


我最后的选择是为每个文件名变体包含文件元素,并根据条件选择所需的文件,但我希望避免这种情况。

文件名未格式化,因此无法使用属性。如果您使用多个文件,WiX的智能cabbing可确保副本不会占用机柜中的额外空间