Why .NET Framework 3.0 language packs will not install correctly on Windows Vista
I previously wrote a blog post describing why the MSI-based .NET Framework 2.0 language packs do not allow installation on Windows Vista, and I also provided an unsupported workaround that allows you to get around the installation block and install them anyways if it is truly necessary.
Similar behavior exists in the setup package for the MSI-based .NET Framework 3.0 language packs, so I wanted to describe that scenario as well.
.NET Framework 3.0 language pack setup behavior on Windows Vista
If you try to run one of the installers for a .NET Framework 3.0 language pack on Windows Vista, you will see an error dialog with text that looks like the following:
You must use "Turn Windows features on or off" in the Control Panel to install or configure Microsoft .NET Framework 3.0 x64 Language Pack - FRA.
The .NET Framework 3.0 language packs are included in the Windows Vista MUI language packs just like the .NET Framework 2.0 language packs, so my previous explanation about why installation is blocked holds true here as well.
One key difference to note is that if you try to run an MSI-based .NET Framework 3.0 language pack setup on Windows Vista, the return code is not artificially mapped to 0 to indicate success like it is in the .NET Framework 2.0 language packs. Instead it will return code 5100, which according to this list that I previously published is a generic setup block return code.
Therefore, if you are creating an installer that will include any of the .NET Framework 3.0 language pack setup packages, you will need to make sure that you check what OS you are installing on and not attempt to install the language pack on Windows Vista or any future OS's. If you do not include this OS version check, the language pack setup will fail with error code 5100 and your setup may also fail as a result.
How to install MSI-based language packs on Windows Vista
If you have a scenario where you need to install more than one .NET Framework 3.0 language pack on Windows Vista and you do not have access to the Ultimate or Enterprise editions in order to install the Windows Vista MUI language pack, you can use the following steps to unblock installation. Before doing this, please take note of the following important caveats:
- This installation method is not officially supported by Microsoft, so if you undertake these steps, it is at your own risk
- Hotfixes that specifically target the .NET Framework 3.0 language packs are not very likely, but in the case that Microsoft releases a hotfix for any of the language packs, they will most likely not install correctly on Windows Vista for language packs installed in this way. This means you will likely have to manually install hotfix files onto systems that use this installation method.
- If you install the language packs in this way on Windows Vista Ultimate or Enterprise edition and then decide to install the OS language pack, there is a chance that the MSI-based language pack will have interaction issues with the OS language pack. I strongly advise uninstalling the MSI-based language pack before installing any OS language packs to avoid any interaction issues like this.
You can use the following steps to install MSI-based .NET Framework 3.0 language packs on Windows Vista:
- Download the .NET Framework 3.0 language pack that you want to install by going to http://www.microsoft.com/downloads/details.aspx?familyid=41c61d2a-d411-4dde-9013-bb08eb688bb6&displaylang=fr, selecting the desired language in the dropdown list box and clicking Download
- Extract the contents of the dotnetfx3langpack<lang>.exe downloaded in step 1 by running dotnetfx3langpack<lang>.exe /x:%temp%\dotnetfx3langpack
- Open the file %temp%\dotnetfx3langpack\setup.sdb in a text editor such as notepad
- In the [VS Custom] section, change the values BlockFutureClientOS and BlockFutureServerOS to both equal 0
- Save and close the file setup.sdb
- Run the file %temp%\dotnetfx3langpack\setup.exe to install the language pack