我有一个客户端,它与我们的应用程序的.msi安装程序有问题。WiX用于创建此安装程序。该应用程序已在数十台其他计算机上安装得很好,但在他的计算机上显示了以下消息:
无法打开此安装包。请与应用程序供应商联系,以验证这是一个有效的Windows安装程序包。
我猜这是这两种可能性之一:
什么是最可能的可能性,还是还有其他我不知道的可能性?
我想我重新创建了用户的问题。如果从命令shell运行MyFile.msi,那么它将成功加载,然后在日志文件中得到如下结果:
=== Verbose logging started: 2/12/2009 10:34:38 Build type: SHIP UNICODE 4.00.6001.00 Calling process: C:\Windows\System32\msiexec.exe ===
MSI (c) (F4:04) [10:34:38:795]: Resetting cached policy values
MSI (c) (F4:04) [10:34:38:795]: Machine policy value 'Debug' is 0
MSI (c) (F4:04) [10:34:38:795]: ******* RunEngine:
******* Product: C:\Users\kelley\Downloads\PixelActiveCityScape_v1_6_Demo.msi
******* Action:
******* CommandLine: **********
MSI (c) (F4:04) [10:34:38:802]: Machine policy value 'DisableUserInstalls' is 0
MSI (c) (F4:04) [10:34:38:830]: Note: 1: 1402 2: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 3: 2
MSI (c) (F4:04) [10:34:39:140]: SOFTWARE RESTRICTION POLICY: Verifying package --> 'C:\Users\kelley\Downloads\PixelActiveCityScape_v1_6_Demo.msi' against software restriction policy
MSI (c) (F4:04) [10:34:39:141]: Note: 1: 2262 2: DigitalSignature 3: -2147287038
MSI (c) (F4:04) [10:34:39:141]: SOFTWARE RESTRICTION POLICY: C:\Users\kelley\Downloads\PixelActiveCityScape_v1_6_Demo.msi is not digitally signed
MSI (c) (F4:04) [10:34:39:142]: SOFTWARE RESTRICTION POLICY: C:\Users\kelley\Downloads\PixelActiveCityScape_v1_6_Demo.msi is permitted to run at the 'unrestricted' authorization level.
MSI (c) (F4:04) [10:34:39:189]: Cloaking enabled.
MSI (c) (F4:04) [10:34:39:190]: Attempting to enable all disabled privileges before calling Install on Server
MSI (c) (F4:04) [10:34:39:197]: End dialog not enabled
MSI (c) (F4:04) [10:34:39:197]: Original package ==> C:\Users\kelley\Downloads\PixelActiveCityScape_v1_6_Demo.msi
MSI (c) (F4:04) [10:34:39:197]: Package we're running from ==> C:\Users\kelley\AppData\Local\Temp\40a3581.msi
.
.
.
但是,如果运行msiexec /i MyFile.msi /l*v MyLog.TXT,则会得到以下结果:
=== Verbose logging started: 2/12/2009 10:32:19 Build type: SHIP UNICODE 4.00.6001.00 Calling process: C:\Windows\sy
stem32\msiexec.exe ===
MSI (c) (FC:F0) [10:32:19:597]: Resetting cached policy values
MSI (c) (FC:F0) [10:32:19:597]: Machine policy value 'Debug' is 0
MSI (c) (FC:F0) [10:32:19:597]: ******* RunEngine:
******* Product: .\PixelActiveCityScape_v1_6_Demo.msi
******* Action:
******* CommandLine: **********
MSI (c) (FC:F0) [10:32:19:599]: Note: 1: 2203 2: .\PixelActiveCityScape_v1_6_Demo.msi 3: -2147287038
MSI (c) (FC:F0) [10:32:19:600]: MainEngineThread is returning 2
=== Verbose logging stopped: 2/12/2009 10:32:19 ===
这显示了这个对话框:
无法打开此安装包。验证包是否存在并且您可以访问它,或与应用程序供应商联系以验证这是一个有效的Windows安装程序包。
因此,这似乎是一个权限问题,但我不太清楚为什么以及如何修复它。我可能需要对.msi文件进行数字签名吗?
发布于 2010-03-12 00:01:57
我也遇到了这个问题("MainEngineThread正在返回2")。这条线有助于缩小问题的范围,但我还没有完全解决它。
在我们的例子中,我们怀疑这个问题与BitLocker和/或使用相对路径调用msiexec有关(例如"msiexec /i ..\foo.msi")。直接运行"..\foo.msi“,在适当的文件夹中运行"msiexec /i foo.msi”也有效。
也许这些线索能帮到别人。在本例中,我们将更改目录结构以避免“.”。
发布于 2009-02-11 20:36:27
如果检测到MSI文件已损坏,则msiexec将抛出此错误消息。它可以这样做,因为所有的MSI文件都有校验和,有些甚至是数字签名的。
不幸的是,MSI文件的这种损坏经常发生。不仅仅是因为下载时的网络连接不稳定,更多的是病毒扫描器干扰下载本身--如果他们试图对数据流进行“净化”,最终会导致MSI的损坏。
解决这个问题的唯一方法是重新下载MSI文件,并可能禁用该下载的病毒扫描程序/防火墙。在尝试安装MSI文件之前,可以在将MSI文件保存到磁盘上后检查病毒。
发布于 2009-02-11 19:13:12
您可以尝试在命令行中启动MSI并获取一个日志文件。
像这样: MSI: msiexec /i (Filename.MSI) /l*v (filename.TXT)
https://stackoverflow.com/questions/538229
复制相似问题