我猜是 Windows Installer 的问题。我尝试过重启服务,但没用。我无法安装以 结尾的任何程序.msi。有时我会收到这样的错误信息:
事件查看器日志:
Python 安装程序:
产品:Python 2.7.3 -- 错误 1723。此 Windows 安装程序包存在问题。无法运行完成此安装所需的 DLL。请联系您的支持人员或软件包供应商。操作 CheckDir,条目:_CheckDir@4,库:C:\Users\x\AppData\Local\Temp\MSI570C.tmp
SSDLife 安装程序:
产品:SSDlife Pro -- 错误 1723。此 Windows 安装程序包存在问题。无法运行完成此安装所需的 DLL。请联系您的支持人员或软件包供应商。操作 WIX_TestVersion,条目:WIX_TestVersion,库:C:\Users\x\AppData\Local\Temp\MSIA32E.tmp
搜索错误 1723:如果您的 Windows Installer 版本已过期,则可能会出现此错误
我获得了几个 Windows Installer 的链接,但它们支持的操作系统列表中都没有 Windows 7。
https://www.microsoft.com/en-us/download/details.aspx?id=25和
Windows(7 x64)已更新。
还尝试了这个 Fixit:http://support.microsoft.com/mats/Program_Install_and_Uninstall
但它没有发现任何问题。
答案1
我也遇到了这个问题。Alexey Ivanov 的回复并没有给我太大帮助,但却激发了我去调查C:\Users\x\AppData\Local\Temp
。
像往常一样,错误消息只有一半有用。就我而言,DLL 没有丢失——安装程序没有访问该文件夹的权限。我没有尝试以管理员身份运行安装程序——考虑到我已经在使用管理员帐户,并且希望 UAC 能够处理权限提升,这对我来说毫无意义。无论如何,就像 Windows 中的许多东西一样,这整个事情对我来说有点神秘。
尽管如此,在进入Properties > Security
文件夹C:\Users\x\AppData\Local\Temp
并给出Everyone
Full control
权限,之前失败的安装程序现在可以正常工作了!太好了!由于Everyone
已经拥有Read
访问Write
权限,我怀疑Full control
还添加了必要的Execute
权限。
现在我想知道的是,这件事到底是怎么发生的,以及这个目录的正确权限应该是什么。
答案2
一个简单的解决方法是以管理员身份运行命令 shell(只需搜索 cmd.exe,然后右键单击->以管理员身份运行),然后转到 MSI 包的位置并运行msiexec /i packagename.msi
。它对我有用。
答案3
你的系统肯定缺少必需的 DLL。
在您描述的两种情况下,Windows Installer 都尝试执行位于 DLL 中的自定义操作。那些 .tmp 文件:C:\Users\x\AppData\Local\Temp\MSI570C.tmp
实际上C:\Users\x\AppData\Local\Temp\MSIA32E.tmp
是从 MSI 中提取的 DLL 文件。
但由于某种原因,它无法加载 DLL。
最重要的是找出缺少哪个 DLL。当错误消息出现在屏幕上时,转到您的临时目录并查看临时 DLL 文件是否仍然存在。如果存在,请使用 DLL 扩展名复制它。然后,要找出缺少哪个必需的 DLL,您可以使用depends.exe
Visual Studio 中的实用程序。
如果临时文件已被删除,获取 DLL 的唯一方法是从包中提取它,从Binary
桌子。
我有两个最有可能的候选者:缺少 Visual C++ 运行时或缺少 .Net 运行时。不过,这只是猜测……
答案4
这些解决方案对我来说都不起作用,但是当我直接进入下载文件夹,右键单击我想要执行的安装图标,然后单击“以管理员身份运行”时,它就安装好了,没有任何错误消息。