This issue occurs because, when the Microsoft .NET Framework 4 is installed, certain components are locked or are being used until the system is restarted. These components cannot be updated until the system is restarted. Because of this, in the scenario described in the Symptoms section, the version of the shim (mscoree.dll) is the Microsoft .NET Framework version 3.5 SP1 or earlier. The installation of the Microsoft .NET Framework 4 deploys certain settings which prevent the older shim from working correctly until the shim is updated after the system is restarted. In this scenario, if you try to install another update for the Microsoft .NET Framework while the restart is pending, the update will try to use a Global Assembly Cache (GAC) deployment for the files in the update. This GAC operation requires the shim. However, because the shim is in an inconsistent state pending a restart, the GAC operation will fail. This causes the update to fail.