在我工作的公司,我们正在建立持续集成,作为其中的一部分,我们希望每日构建周期来构建安装程序并在登台服务器上运行它们。
我使用 WiX 3.6 编写了安装程序,当我尝试使用远程桌面登录并使用 msiexec 运行它们时,它们在登台服务器上正确运行。如果我使用 psexec 从构建服务器远程执行完全相同的 msiexec 命令行,则该过程完成且没有错误代码,日志文件中没有错误,并且文件均已正确安装,但程序未列出“添加/删除程序”。
比较日志文件,唯一的区别似乎是,当从删除服务器安装时,它使用“32 位提升自定义操作服务器”,而在本地安装使用“32 位模拟自定义操作服务器”。
比较注册表项,在本地安装会在很多地方创建更多密钥,但远程安装确实会创建一些密钥,特别是:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\{ID}\Products\{ID}
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{GUID}
HKU\.DEFAULT\Software\Microsoft\Installer\Products\{ID}
HKU\{ID}\Software\Microsoft\Installer\Products\{ID}