Recently, I was trying to help someone investigate a .NET Framework 3.5 SP1 installation issue. Behind the scenes, the .NET Framework 2.0 SP1 was failing to install, and I found the following information in the setup log file:
01/01/14 11:22:33 DDSet_Status: Executing Command to stop ngen service: c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ngen.exe queue scmstop
01/01/14 11:22:33 DDSet_Status: LANGID: 1033
01/01/14 11:22:33 DDSet_Warning: CreateProcess failed
The typical steps that I recommend in this type of scenario did not end up helping and after trying a few other things, I was stumped. Fortunately, the customer who encountered this issue found the solution in the blog post at http://blogs.msdn.com/b/smondal/archive/2010/07/12/quot-25007-error-occurred-while-initializing-fusion-setup-could-not-load-fusion-with-loadlibraryshim-error-the-handle-is-invalid-quot.aspx.
The diagnostic step that I missed when I was originally investigating this issue was to look in the System event log. In this scenario, several error messages from the SideBySide event source showed that there was a problem with some of the Visual C++ runtime files on this computer. The blog post that the customer found contains a set of commands that you can copy and paste into a script and run to remove Visual C++ runtime files used by .NET Framework 2.0 setup. Re-running .NET Framework 2.0 setup will then re-install the Visual C++ runtime files that it needs, which will hopefully resolve this type of setup failure.
Note – the issue described here and in the linked blog post does not apply to versions of Windows that include the .NET Framework 2.0 as a part of the operating system. As of the time that I’m writing this blog post, Windows Vista, Windows Server 2008, Windows 7, Windows 8, Windows 8.1 and Windows Server 2012 all include the .NET Framework 2.0 as a part of the OS.