VS 2005 setup fails with 1935 or 2908 error
I have heard from a couple of customers who have tried to install the final release of Visual Studio 2005 or one of the Express Editions and have gotten 1935 (or 2908) errors with HRESULT values of 0x8002802F, and then setup failed and rolled back. The cases I have seen so far have had the same root cause as the problem I described in this previous blog post.
In the cases I have seen for this problem in the final release of VS 2005, the machines had the .NET Framework 1.1 installed, and the version of %windir%\system32\mscoree.dll was 1.1.4322.573 or 1.1.4322.2032. When VS setup tried to install assemblies to the GAC, it failed because Windows Installer tried to call into a 2.0-specific API from mscoree.dll (needed because there are new processor architecture attributes on VS 2005 assemblies that only 2.0 knows about). Since the version of mscoree.dll on the system was 1.1, these API calls failed. This issue is described in more detail in my 1935 troubleshooting guide if you are interested.
The underlying problem was that VS setup detected that the .NET Framework 2.0 was already installed and skipped that prerequisite step. However, the machine did not actually have the .NET Framework 2.0 installed, but instead only had the registry key that VS setup uses to detect whether or not the .NET Framework 2.0 is installed. I found that the machines had the following orphaned registry key/value that VS setup uses to determine that .NET Framework 2.0 was already installed:
- Key name: HKLM\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727
- Value name: MSI
- Data type: REG_DWORD
- Value data: 1
Once the customers deleted this key/value and re-ran VS 2005 setup, it detected that it needed to install the .NET Framework 2.0, and after installing that, VS setup worked perfectly.
As a side note if you're really interested, you could use some of the setup reverse engineering tricks that I describe here to determine the exact location of this registry key. In this case, the key/value are listed in the [gencomp18] section of the file named baseline.dat in the setup subdirectory of the VS 2005 DVD or in the self-extracting setup package for the Express Editions.