我正在使用 WiX 3.5 进行以下操作。
我有一些文件(EXE 和 DLL)需要在安装开始时(在显示 EULA 之前)解压缩到 TEMP 文件夹,然后运行 EXE。我使用http://msiext.codeplex.com/提取文件的部分工作。代码如下所示:
<CustomAction Id="SetBinaryWrite_TargetFileName_1" Property="BINARYWRITE_TARGETFILENAME" Value="[TempFolder]ActivationUtility.exe" />
请注意,使用了 [TempFolder] 并且(在 Windows 7 上)解析为“C:\Users\USERNAME\AppData\Local\Temp\”,这不是在我的 WXS 文件中的任何地方“设置”的 - 它是 Windows 属性,像 ProgramFilesFolder 等...
我像这样设置我的 EXE CustomAction:
<CustomAction Id="ActivationUtility"
Directory="TempFolder"
ExeCommand="ActivationUtility.exe"
Execute="immediate" Return="check" />
链接器然后抱怨:错误 LGHT0094:未解决对符号“Directory:TempFolder”的引用。如果我使用“[TempFolder]”,编译器会抱怨。为什么此属性对一个 CustomAction 有效,而对另一个无效?我究竟需要做什么才能为上述 CustomAction 引用 TempFolder?