Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Visual Studio 2013 Shell (Isolated) installation fails with error 997: Overlapped I/O operation is in progress

I'm trying to install Visual Studio 2013 Express for Desktop on a Windows 7 Pro machine. I've downloaded the ISO file and I'm running that locally.

I run the installer and get an error about certain prerequisites not being installed (the C++ runtimes for one). I've downloaded all the prerequisites, but when I try to install the Visual Studio 2013 Shell (Isolated) I get the following error rather unhelpful message:

Fatal error during installation.

However, checking the log file reveals the following error:

Package (vs_isoshellcore) failed: Error Message Id: 997 ErrorMessage: Overlapped I/O operation is in progress.

The common issues and workarounds page doesn't seem to mention this issue and a Google search for this message fails to turn up any results.

A search for "Overlapped I/O operation is in progress." brings back more results the most relevant appear to be:

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

and

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

the latter two point to KB2918614 being the culprit. However, removing this update and restarting the machine hasn't fixed the problem.

I've tried running the installer both as a regular user and as an administrator and get the same result.

I've also tried running the web installer and while that seems to do a better job of finding and installing the prerequisites and dependencies it also fails with the same error.

I tried turning my Anti-Virus off in case that was interfering with the installer, but it failed with exactly the same error.

What else can I do?

like image 243
ChrisF Avatar asked Nov 02 '14 00:11

ChrisF


2 Answers

I had the same problem when installing the .NET Framework update v4.5.2. I also tried the same means that you've described (uninstalling, repairing and attempting to re-install the .NET Framework).

Here's what worked for me - note that this is a work-around, but nothing else would work:

  • I left the KB2918614 installed via the Windows Update process (I had previously uninstalled, and hidden it from updates - I unhid it, then let it install again). This hotfix has known problems that cause the 997 ErrorMessage: Overlapped I/O operation error.
  • Request and install the hotfix KB3000988 that supposedly fixes the problems caused by KB2918614.
  • Perform registry modifications as noted in KB2918614:

    1. Under key HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer, create DWORD NoUACforHashMissing, and set value to 1. (Create the key if it doesn't exist).
    2. Also under the same key, add DWORD SecureRepairPolicy, and set value to 2.

Registry screen-dump

  1. Create a whitelist for apps that are trusted (including future updates) to be digitally signed and not contain malicious code. The hashing problem caused by KB2918614 is bypassed for apps that have an entry here. To do this, create registry key HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer\SecureRepairWhitelist, and for each trusted app, create a string value underneath with the product ID of that app.

Registry screen-dump

One way of finding this is to look in the C:\Windows\Installer folder during installation, and copy the GUID from the SourceHash{xxxxGUIDxxxx} file.

Windows Installer folder in Explorer

  1. Retry the installation following the whitelisting - as the Visual Studio 2013 shell program is released by Microsoft, thus it ought to be signed.

Powershell script to get list of recently created Installation GUIDs

The following command can be run from a Powershell console in the Windows Installer directory to get a list of the installation GUIDs that were recently created by a program being installed. If the program being installed fails, run this command, and add each of the GUIDs listed in the output to the registry using the steps described above.

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}

The following answer may also be useful: https://stackoverflow.com/a/26276554/3063884

like image 143
CJBS Avatar answered Nov 19 '22 08:11

CJBS


Uninstall these 3 updates: KB2918614, KB3000988, KB3008627

like image 34
tartakynov Avatar answered Nov 19 '22 08:11

tartakynov