当前位置:  开发笔记 > 开发工具 > 正文

Windows Installer程序包的问题

如何解决《WindowsInstaller程序包的问题》经验,为你挑选了3个好方法。

我有一个客户端,我们的应用程序的.msi安装程序有问题.WiX用于创建此安装程序.该应用程序已安装在许多其他机器上,但在他的机器上显示消息:

无法打开此安装包.请与应用程序供应商联系,以验证这是否是有效的Windows Installer程序包.

我的猜测是,这是以下两种可能性之一:

    客户端计算机上的Windows Installer版本已过期.

    他的.msi可能已经被破坏了.

什么是最可能的可能性,还是有其他可能性我不知道?

我想我已经重新创建了用户的问题.如果,从命令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 Installer程序包.

所以它似乎是一个权限问题,但我不确定为什么以及如何解决它.我是否可能需要对.msi文件进行数字签名?



1> eleven81..:

背景:

当MSI安装程序文件未完全下载或被我的防病毒程序损坏或被我的FTP客户端损坏时,我注意到完全相同的消息.

该错误消息实际上来自msiexec.exe,它是Windows Installer系统的可执行程序,它实际上解释了MSI安装程序文件并将软件安装在客户机的目标上.


要检查MSI文件的完整性:

使用md5.exe之类的东西计算MSI安装程序文件的已知良好副本的MD5sum.让客户端为他的副本做同样的事情,然后比较哈希值.如果结果不同,则客户端的MSI安装程序文件副本肯定会损坏.


例如:

在你的结尾:

C:\Documents and Settings\yourbox\Desktop>md5.exe AcroRead.msi
C587C739666E26B2A9B1F5BBAF358808  AcroRead.msi

在客户端:

C:\Documents and Settings\theclient\Desktop>md5.exe AcroRead.msi
90AFFBD9A1954EC9FF029B7AD7183A16  AcroRead.msi



2> Julien Couvr..:

我遇到了这个问题("MainEngineThread返回2").这个线程对于缩小问题范围很有用,但我还没有完全解决它.

在我们的例子中,我们怀疑问题与BitLocker和/或用相对路径调用msiexec有关(例如"msiexec/i ..\foo.msi").直接运行"..\foo.msi",在正确的文件夹中运行"msiexec/i foo.msi"也可以.

也许这些线索会帮助别人.在我们的例子中,我们将更改目录结构以避免"..".



3> Stefan..:

如果msiexec检测到MSI文件已损坏,则会抛出此错误消息.它可以做到这一点,因为所有MSI文件都有校验和,有些甚至是数字签名.

不幸的是,MSI文件的这种损坏发生了很多.不仅仅是因为下载时网络连接不稳定,而且最常见的是病毒扫描程序会干扰下载本身 - 如果他们试图'清理'数据流,你最终会导致损坏的MSI.

解决此问题的唯一方法是重新下载MSI文件,并可能禁用该下载的病毒扫描程序/防火墙.在尝试安装MSI文件之前,可以在将MSI文件保存到磁盘后检查病毒.

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有