Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WiX在有windows update问题的XP计算机上表现不好_Wix_Windows Update - Fatal编程技术网

WiX在有windows update问题的XP计算机上表现不好

WiX在有windows update问题的XP计算机上表现不好,wix,windows-update,Wix,Windows Update,我的WiX包在特定的XP机器(x86)上表现得非常糟糕。它在“初始化”阶段(在运行任何捆绑安装程序之前)暂停六分钟。从日志来看,这极有可能是由于计算机上windows update的不可靠状态造成的: [090C:0FC0][2018-03-27T19:31:17]i358: Pausing automatic updates. [090C:0FC0][2018-03-27T19:37:23]w308: Automatic updates could not be paused due to e

我的WiX包在特定的XP机器(x86)上表现得非常糟糕。它在“初始化”阶段(在运行任何捆绑安装程序之前)暂停六分钟。从日志来看,这极有可能是由于计算机上windows update的不可靠状态造成的:

[090C:0FC0][2018-03-27T19:31:17]i358: Pausing automatic updates.
[090C:0FC0][2018-03-27T19:37:23]w308: Automatic updates could not be paused due to error: 0x80080005. Continuing...
[090C:0FC0][2018-03-27T19:37:23]i360: Creating a system restore point.
我正在使用wixv3.10制作这个包。我可以从谷歌搜索中找到非常类似的情况,但解决方案总是围绕着更新目标机器。我需要这个安装程序按预期工作,无论。当我在同一台机器上测试一个普通的msi时,它可以正常运行

我有没有办法缓解这个问题?例如,我是否可以阻止WiX捆绑包尝试暂停windows update或类似操作?事实上,安装程序甚至没有通知问题是什么,这是非常有问题的,任何用户都可能会感到困惑

这个WiX安装程序的全部要点是使安装包可移植且简单,但实际上它似乎比msi更不可移植


更新:还尝试使用WIX3.11构建捆绑包,但遇到了相同的问题。尽管现在它产生了一个实际的错误,而不是不管如何安装,我认为这是一个改进。

更新:在查看WiX源代码后,看起来WiX的Burn功能正在调用Microsoft.UPDATE.AutoUpdate(
%SystemRoot%\System32\usoapi.dll
-
%SystemRoot%\SysWOW64\wuapi.dll
)和其他一些COM对象

请参见底部(屏幕截图),以获取热门COM提示,快速获得不同COM对象模型的概述

一定是这个自动更新调用挂起,导致出现了与中所述内容相同的timout。我相信您可以通过在(Github链接)中搜索
hr=wuaPauseAutomaticDates();
找到确切的源代码位置。对COM对象的实际调用在中

我不熟悉,但我想您可以尝试在测试VBScript中调用
Pause
函数,看看您的问题系统(如果有)会出现何种错误我看不出除了你的问题系统,你会得到什么东西,但你可以先试试你的主箱。<强>这显然是你自己的风险< /强>。我假设重新启动或调用<代码>恢复> /Calp>将继续正常进程。我也看到了调用<代码> StaseDeal.在C/C++代码中重新启动< /COD> > WHI。我还向VBScript添加了以下内容:

Set autoupdate=CreateObject(“Microsoft.Update.autoupdate”)
自动更新。暂停()
MsgBox错误编号和错误描述(&R)
Set sys=CreateObject(“Microsoft.Update.SystemInfo”)
需要重新启动MsgBox系统
“autoupdate.Resume()”启用以恢复自动更新
设置sys=Nothing
设置自动更新=无
让我们面对现实:Windows Update在你的XP机器上坏了-不是吗?也许WiX的人可以增加一个更短的超时时间?我不知道有什么更好-
1)
缩短超时时间,
2)
删除整个调用,或者
3)
直接告诉用户Windows Update坏了?坦率地说,后者可能会提醒用户一些非常严重的事情(通常是恶意软件)

更新:正如您所说,Windows UPDATE在这台特定的机器上几乎肯定会被破坏。我会尝试下面建议的MSI属性进行测试,然后(与下面的链接相同)()

但是等一下,在把时间浪费在其他事情上之前,可能需要进行恶意软件检查

  • ??使用近70个扫描引擎(尽管没有启发式)通过哈希检查所有正在运行的进程。启动所有您得到的(仅检查正在运行的进程)
  • 转到
    文件
    =>
    显示所有进程的详细信息
    ,然后提升以扫描系统进程。现在单击“系统”扫描驱动程序,例如(*.sys文件)
  • 通常,这是让系统管理员同意为每个人重建有问题的机器的好方法。突然之间,你从“部署问题”变成了“特定于机器的问题”——这是你的头发。吉戈问题
很好的格式和措辞的问题顺便说一句。仅供参考:


解决办法? 我从未见过这种情况,但我见过一些MSI文件在安装时突然暂停很长时间,而在测试安装过程中,它们会在几分钟前快速安装

我的猜测是,这可能与系统还原在特定“间隔”创建还原点有关。我不确定使用什么算法来确定何时创建或不创建这样的恢复点,但我在多年前就加快MSI安装的问题写了一个答案:

正如您将看到的,您可以通过设置涉及属性的适当命令行(以及一些其他调整-请阅读链接的serverfault.com答案),来禁用为您的设置创建还原点。我会试试看你的设置是否停止锁定/挂起


原因? 一些来自网络的点击:

  • 是否Windows Update也在尝试与MSI包同时创建还原点?(菲律宾)
  • 类似问题:
我会首先尝试上面提到的作为“变通方法”的MSI属性,如果这不起作用,我会尝试看看修复Windows Update是否有效,如上面链接中所述。至关重要的是,我也会让Windows Update在再次运行包之前完成安装所有可用更新的任务


热提示(COM) 我不喜欢推荐商业工具,但我们都需要一些快速技巧快速胜利,这就是本文的目的。抓住并使用其轻量级对象浏览器快速查看