【问题标题】:Visual Studio 2013 Shell (Isolated) installation fails with error 997: Overlapped I/O operation is in progressVisual Studio 2013 Shell(隔离)安装失败并出现错误 997:重叠 I/O 操作正在进行中
【发布时间】:2014-12-28 23:12:42
【问题描述】:

我正在尝试在 Windows 7 Pro 机器上安装 Visual Studio 2013 Express for Desktop。我已经下载了 ISO 文件并在本地运行。

我运行安装程序并收到有关未安装某些先决条件的错误(其中一个是 C++ 运行时)。我已经下载了所有的先决条件,但是当我尝试安装 Visual Studio 2013 Shell (Isolated) 时,我收到了以下错误消息:

安装过程中出现致命错误。

但是,检查日志文件会发现以下错误:

包 (vs_isoshellcore) 失败:错误消息 ID:997 错误消息:重叠 I/O 操作正在进行中。

common issues and workarounds 页面似乎没有提及此问题,并且 Google 搜索此消息未能找到任何结果。

搜索“重叠的 I/O 操作正在进行中”。带回更多似乎最相关的结果:

https://social.msdn.microsoft.com/Forums/vstudio/en-US/6d993437-e737-4611-b6bf-c43f1dc4c00d/vs2013-express-for-web-installation-issue?forum=vssetup

https://community.serif.com/forum/other-products/14966/error-message-overlapped-i-o-operation-in-progress-when-installing-serif-software

http://www.edugeek.net/forums/windows-7/140586-possible-issue-kb2918614-causing-overlapped-i-o-operation-progress-errors.html

后两者指向KB2918614 是罪魁祸首。但是,删除此更新并重新启动机器并没有解决问题。

我尝试以普通用户和管理员的身份运行安装程序并获得相同的结果。

我也尝试过运行 Web 安装程序,虽然这似乎在查找和安装先决条件和依赖项方面做得更好,但它也会失败并出现同样的错误。

我尝试关闭我的防病毒软件,以防它干扰安装程序,但失败并出现完全相同的错误。

我还能做什么?

【问题讨论】:

  • 这不是编程问题。
  • @Lightforce - 是的 - 但它是关于安装主题的编程工具。你真的认为我会发布一个离题的问题吗?
  • 不,只是我认为您可能会在微软论坛上获得更好的支持。没有冒犯。
  • @Lightforce - 我已经在那里找到了问题 - 实际上我链接到了一个 - 但我发现答案没有帮助 - “重新安装 Windows 7”。
  • 我明白了 :-) 在我看来,问题是即使在卸载 KB2918614 之后,您也不能确定没有任何剩余。安全模式启动时是否可以安装VS?

标签: visual-studio-2013 windows-installer failed-installation


【解决方案1】:

我在安装 .NET Framework 更新 v4.5.2 时遇到了同样的问题。我还尝试了您描述的相同方法(卸载、修复和尝试重新安装 .NET Framework)。

这对我有用 - 请注意,这一种变通方法,但没有其他方法可行:

  • 我留下了通过 Windows 更新过程安装的 KB2918614(我之前卸载了它,并将其隐藏在更新中 - 我取消隐藏它,然后让它重新安装)。此修复程序 has known problems 导致 997 ErrorMessage: Overlapped I/O operation 错误。
  • Request and install 修复了 KB2918614 引起的问题的修补程序 KB3000988。
  • 按照KB2918614 中的说明执行注册表修改:

    1. 在键 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer 下,创建 DWORD NoUACforHashMissing,并将值设置为 1。 (如果密钥不存在,则创建密钥)。
    2. 同样在同一键下,添加DWORD SecureRepairPolicy,并将值设置为2

  1. 为受信任的应用(包括未来的更新)创建一个白名单,以进行数字签名且不包含恶意代码。 KB2918614 导致的散列问题对于在此处具有条目的应用程序被绕过。为此,请创建注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer\SecureRepairWhitelist,并为每个受信任的应用程序创建一个带有该应用程序产品 ID 的字符串值。

找到此问题的一种方法是在安装过程中查看 C:\Windows\Installer 文件夹,然后从 SourceHash{xxxxGUIDxxxx} 文件中复制 GUID。

  1. 在白名单之后重试安装 - 因为 Visual Studio 2013 shell 程序是由 Microsoft 发布的,因此应该对其进行签名。

用于获取最近创建的安装 GUID 列表的 Powershell 脚本

可以从 Windows Installer 目录中的 Powershell 控制台运行以下命令,以获取最近由正在安装的程序创建的安装 GUID 的列表。如果正在安装的程序失败,请运行此命令,并使用上述步骤将输出中列出的每个 GUID 添加到注册表中。

PS C:\Windows\Installer> Get-ChildItem -Filter *Hash* | ? {$_.CreationTime -gt (Get-Date).AddDays(-1) } | Sort-Object LastWriteTime


    Directory: C:\Windows\Installer


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2016-10-06  10:11 AM      20480 SourceHash{C8511A82-E9FD-4B6D-B1B2-378589D2B48A}
-a---        2016-10-06  11:04 AM      20480 SourceHash{D45C3EC4-282E-4798-98C7-E7BF2362F04E}

以下答案也可能有用:https://stackoverflow.com/a/26276554/3063884

【讨论】:

  • 您可以通过进入 c:\users\{username}\AppData\Local\Temp 找到要列入白名单的 ID,找到安装日志(即 Microsoft .NET Framework 4.6 Setup_20151104_153412004-MSI_netfx_Full_x64. msi.txt),并查找如下所示的条目:MSI (s) (58:04) [15:39:20:238]: SOURCEDIR product ==> {94A631D5-B30A-3DD8-B65C-1117C09DA73E}应该在上面:MSI (s) (58:04) [15:39:20:238]:SECUREREPAIR:SecureRepair 失败。错误代码:3e5C36544B8 操作开始时间 15:39:20:RegisterProduct.
  • @user2920518 这行得通。我刚刚添加了一个 Powershell 命令,该命令还列出了 GUID(它从 Windows 安装程序目录中获取它们)
【解决方案2】:

卸载这 3 个更新:KB2918614、KB3000988、KB3008627

【讨论】:

  • 为什么是这三个?他们做了什么?之后可以重新申请吗?
  • @ChrisF 我在 VS 上遇到了同样的问题,所以我对这个主题进行了研究,发现这三个更新以某种方式影响了 Windows 密码学,这是计算 chechsum 以安装 msi 包所需的。所以我已经删除它们并成功安装了 VS 2013。您可以稍后重新应用它们,它不会损害已安装的 VS
  • 只有 3 个没有帮助。我不得不删除所有 2015 04 - 05 更新
【解决方案3】:

终于!我设法通过删除所有 2015 04-05 月更新(安全、Windows、热修复)解决了这个问题,现在我可以安装 MS Visual Studio 2013 和 Autodesk 3D max。我还关闭了 Windows 更新。

【讨论】:

    【解决方案4】:

    正如here 所指出的,更简单的解决方法是在安装之前重命名文件夹C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18。它强制 Windows 重新生成这些文件并让 Windows Installer 完成其工作。

    在我的特殊情况下,我设法安装了.NET Framework 4.6.1. 但是,重新启动计算机后,尝试安装SQL Server Express 2014 时再次出现错误。如果在此期间发生了重新启动,则似乎必须在每次安装涉及 Windows Installer 之前执行此重命名操作。

    【讨论】:

    • 我试过了,但它对我不起作用。对于某些安装,我仍然必须完成答案中的步骤(添加 SourceHash 文件),尤其是对于来自 Microsoft 的安装。我试过了,它再次重新创建了S-1-5-18文件夹,里面有相同的文件,但我尝试的安装仍然失败......(我希望它确实有效,它会比我快得多'我正在做)
    猜你喜欢
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-13
    • 1970-01-01
    • 2013-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多