Possible workaround for RGB9RAST install failure when deploying the .NET Framework 3.0 or 3.5

I have heard from a few folks recently (such as this blog comment and this forum post) who have run into troubles installing the RGB9RAST component that is a prerequisite for the .NET Framework 3.0, 3.0 SP1, 3.5 and 3.5 SP1 on Windows XP and Windows Server 2003 operating systems.  There is a specific issue in the RGB9RAST .msi that can cause it to fail in some specific conditions, and I wanted to describe how to diagnose and work around this issue in case anyone else runs into a similar error in the future.

How to diagnose this issue

If you are encountering this particular RGB9RAST installation issue, you will see an error message like the following by searching for the string return value 3 in the verbose .msi log file for the RGB9RAST component (located at %temp%\dd_rgb9rast*.txt):

MSI (s) (6C:D0) [10:41:11:075]: Product: RGB9RAST -- The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2103. The arguments are: 26, ,

This type of error can occur during .NET Framework 3.0, 3.0 SP1, 3.5 and 3.5 SP1 setup on Windows XP and Windows Server 2003.  Starting with Windows Vista, the RGB9RAST components are available as a part of the OS, and so the RGB9RAST .msi does not need to be installed on Vista or higher and this error will not be seen there.

How to work around this issue

If you encounter the above error while attempting to install the RGB9RAST .msi as a part of .NET Framework 3.0, 3.0 SP1, 3.5 or 3.5 SP1 setup on Windows XP or Windows Server 2003, then I suggest trying to manually install the RGBRAST9 .msi with the following command line syntax before running .NET Framework setup:

msiexec /i RGB9RAST_x86.msi /qn ALLUSERS=1 REBOOT=ReallySuppress

After you install the RGB9RAST .msi manually, you can run .NET Framework setup and it will detect that the system already has RGB9RAST installed and it will skip attempting to install it and proceed to install the remaining .NET Framework components that are needed on your system.

Note – you can use the instructions in the .NET Framework 3.0 and 3.5 deployment guides to download the .NET Framework setup package and extract the RGB9RAST .msi needed for the above command line.  Here are the locations of the deployment guides:

Root cause of this issue

The RGB9RAST .msi does not set the ALLUSERS property by default.  That can cause problems when deploying the .NET Framework 3.0 or 3.5 from some types of deployment software, particularly deployment software that does not run in the context of a logged in user.  Specifically passing in ALLUSERS=1 on the command line when deploying the RGBRAST .msi will force it to install as a per-machine .msi, which is the appropriate way to install this .msi because the payload it installs goes to a per-machine location.