VS 2005 beta 2 setup fails with 1935 or 2908 assembly installation error

I have heard from a few people (including this customer comment on a previous blog post and a fellow Microsoft employee) who have tried to install VS 2005 beta 2 and received 1935 (or 2908) assembly install errors with HRESULT value 0x8002802F. If you take a look at my 1935 troubleshooting guide, you will see that this error means "function not defined in specified DLL." When this error occurs during .NET Framework or VS setup, it generally means that the version of mscoree.dll located in %windir%\system32 on the computer does not match the version needed by Windows Installer to call specific Fusion APIs to install assemblies to the GAC.

In the case of the Microsoft employee who contacted me, VS setup detected that the .NET Framework 2.0 was already installed and skipped that prerequisite step. However, the machine actually only had .NET Framework 1.1 installed, and the version of %windir%\system32\mscoree.dll was 1.1.4322.573. 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.

I found that this computer had the following orphaned registry key/value that VS setup found and used to determine that .NET Framework 2.0 beta 2 was already installed:

  • Key name: HKLM\Software\Microsoft\NET Framework Setup\NDP\v2.0.50215
  • Value name: MSI
  • Data type: REG_DWORD
  • Value data: 1

On this employee's machine, once I deleted this key/value and re-ran VS 2005 beta 2 setup, it detected that it needed to install the .NET Framework 2.0 beta 2. Once that completed, 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 beta 2 DVD.