2016-06-09 125 views

回答

2

这里的问题是,该由物业MsiLogFileLocation是只读的,即你有没有机会内 Windows安装程序包更改日志文件的位置。
有一些替代方案,但:

  • ,如果你与/L-parameter运行Windows Installer可以定义日志文件的位置,例如msiexec.exe /i MyPackage.msi /l*v "C:\path\to\log\logfile.log"
  • 为了确保例如客户会用正确的参数调用这个参数,你必须用你的MSI文件创建一个引导程序, burn
  • 还有另一个更简单的解决方案(我自己使用的)是:让Windows Installer将整个安装过程记录到需要的任何位置。由于您始终可以使用MsiLogFileLocation -property访问创建的日志文件的完整路径,因此只需将日志文件作为安装过程的最后一步复制到任意位置即可。这里唯一的缺点是:有时最后一行会丢失,因为它在安装完成之前被复制。

因此,如果最后一行并不总是重要的(因为您进一步解析日志文件等),最后的解决方案可能是最简单的一个。
我安排在InstallFinalize之后(并使用条件NOT (REMOVE="ALL" AND NOT UPGRADINGPRODUCTCODE),顺便说一句,否则它覆盖或复制太多或...(不记得))。

+0

我的结论是你提到的第三种选择,带有缺点。 –