在Wix CustomAction ExecCommand

时间:2017-04-17 17:04:34

标签: wix windows-installer

我的WiX脚本中有自定义操作来复制安装日志:

<CustomAction Id="CopyLogFile" Execute="immediate"
            ExeCommand="cmd /c copy [MsiLogFileLocation] &quot;\&quot;[APPLICATIONFOLDER]Install.log\&quot;&quot;"
            Directory="TARGETDIR"
            Impersonate="no"
            Return="asyncNoWait" />
    <InstallExecuteSequence>
      <Custom Action="CopyLogFile" OnExit="success" />
    </InstallExecuteSequence>

问题是APPLICATIONFOLDER环境变量。无论我如何尝试使用它都无效。我试过单&amp; quot,double&amp; quot,no&amp; quot等等。没有任何帮助。

如果我像这样硬编码目的地:

ExeCommand="cmd /c copy [MsiLogFileLocation] c:\temp\Install.log"

它工作正常。

但是,我需要将安装日志复制到用户计算机上的某个已知位置。

我查看了WiX CustomAction ExeCommand failing?Not able to send Wix SourceDir path with spaces to custom action ExeCommand,但这对此问题没有帮助。

1 个答案:

答案 0 :(得分:0)

根据Windows Installer Formatted reference,您的命令行应该是:

cmd /c copy [MsiLogFileLocation] &quot;\&quot;[%APPLICATIONFOLDER]Install.log\&quot;&quot;
                                               ^

您缺少环境变量的%前缀。