【发布时间】:2013-11-15 14:44:31
【问题描述】:
我有一个必须维护的 Installshield Installscript MSI 安装程序。它在 Support Files/Billboards 中包含大约 10 个文本文件。当安装程序运行时,我使用以下代码在自定义 Installscript 函数中打开文件进行编辑/复制:
OpenFile(nvReadFileHandle, SUPPORTDIR, LOGGER_PRM)
这段代码已经完美运行了大约一千次安装,其中许多安装程序都是这个版本的。然后,昨天第一次失败了。
查看 msi 日志后,我看到文件被提取到:
%TEMP%\3\ {GUID1}\
上述代码执行时,SUPPORTDIR的值为:
%TEMP%\ {GUID2}\
这从未失败过。那么为什么现在会发生呢?我能做些什么来修复它?当我用谷歌搜索问题时,我看到了相互矛盾的信息。考虑到具体情况,我宁愿不要反复试验 50 次以获得解决方案。
编辑:这里有更多信息。我刚刚发现我们正在安装的服务器是虚拟机的克隆。我怀疑使用的环境变量不正确。如果我们键入“cd %temp%”,它将转到上面的第一个目录。但是,如果我查看名为 TEMP 的环境变量,它们都指的是上面的第二个目录。
【问题讨论】:
标签: windows-installer installshield installscript installscript-msi