Possible issue using ASP.NET controls in VS 2008 beta 2

Description of this issue

Since Visual Studio 2008 beta 2 and the .NET Framework 3.5 beta 2 were released, we have heard of a few issues related to using ASP.NET controls in the VS IDE after installing beta 2.  The issues we have seen so far include the following:

  • ASP.NET controls do not show up in the Visual Studio 2008 beta 2 toolbox
  • ASP.NET tag IntelliSense and schema validation is broken in HTML source view in the VS IDE

In the cases we've seen so far, the systems are running Windows Vista, and the file version of %windir%\Microsoft.NET\Framework\v2.0.50727\system.web.dll is less than the official beta 2 version of 2.0.50727.1378.

How to workaround this issue

If you run into an issue like this, you can uninstall .NET Framework 2.0 hotfixes and then re-install the .NET Framework 3.5 as a workaround.

There are some detailed instructions that explain how to do this at this location, including a list of the exact hotfixes that need to be uninstalled to resolve this issue.

You do not need to re-install the previous hotfixes after working around this issue.  The .NET Framework 2.0 SP1 and 3.0 SP1 hotfix packages that are installed as prerequisites for the .NET Framework 3.5 beta 2 already include all of the fixes that were previously released as separate Windows Vista hotfixes for the .NET Framework 2.0/3.0.

Root cause of this issue

We have found a problem with how some Windows Vista-specific hotfixes for the .NET Framework 2.0 have been packaged in the past that can cause an incorrect version of files like system.web.dll to appear on the system.  This means that if you have some specific .NET Framework 2.0 hotfixes installed on your Windows Vista system, you might encounter this type of file version problem and therefore also run into some issues when trying to use VS 2008 beta 2.  Windows Vista is built from components, and these components have their own version information that is used to determine which files will be present on the OS.  The versions of the files contained in each of the components does not have to match the component version, and that can lead to newer versions of components having older versions of files in some cases such as this.