Welcome to MSDN Blogs Sign in | Join | Help

.NET Framework setup and language packs

The .NET Framework setup and packaging changed somewhat between v1.0 and v1.1 and there are further changes coming for v2.0 with respect to packaging of core bits and satellite language resources.  I wanted to take a minute and provide an outline of the changes that have gone on as well as some of the reasoning behind them:

 

.NET Framework 1.0

 

1.       There is a separate dotnetfx.exe package for each language version of the .NET Framework.  Each package contains an MSI with a unique product code.

2.       The English version contains the bits that provide the core product functionality as well as English language resources that are compiled into the core bits.

3.       The non-English versions contained the core product bits (with English language resources) as well as a set of satellite resource DLLs that provide the appropriate non-English string resources.

4.       Each language version of the .NET Framework SDK contained the equivalent of the matching language version of the .NET Framework redist package as part of the MSI.

5.       Because of items 1 and 4, any time a Windows Installer patch is created for any of the bits that provide the core .NET Framework product functionality, separate logic has to be created to allow the patch to apply to all language versions of the .NET Framework redist and all language versions of the .NET Framework SDK

 

.NET Framework 1.1

 

1.       There is a separate dotnetfx.exe package for each language version of the .NET Framework.  Each package contains an MSI with the same product code and installs identical bits.  The only difference between the dotnetfx.exe packages are the setup UI screens – they are translated into the appropriate language.

2.       The dotnetfx.exe packages all contain the bits that provide the core product functionality as well as English language resources that are compiled into the core bits.

3.       There is a separate langpack.exe for each non-English language version of the .NET Framework.  These packages each install a set of satellite resource DLLs that provide the appropriate non-English string resources.

4.       The .NET Framework SDK does not contain the .NET Framework redist.  The SDK setup detects whether or not the .NET Framework redist is already installed on the machine, and if it is not found it blocks the user from installing the SDK until the redist is installed

 

.NET Framework 2.0

 

1.       There is a single dotnetfx.exe package.  It contains a single MSI that is marked as language-neutral and setup UI resource DLLs for all supported languages.  It detects the user’s UI language settings and uses that to determine which language to display setup UI in.

2.       The dotnetfx.exe package contains the bits that provide the core product functionality as well as English language resources that are compiled into the core bits.

3.       There is a separate langpack.exe for each non-English language version of the .NET Framework.  These packages each install a set of satellite resource DLLs that provide the appropriate non-English string resources.

4.       The .NET Framework SDK does not contain the .NET Framework redist.  The SDK setup detects whether or not the .NET Framework redist is already installed on the machine, and if it is not found it blocks the user from installing the SDK until the redist is installed

 

So as you can see from above, there has been a gradual evolution from separate language-specific versions of the .NET Framework to a single language-neutral core package and satellite language packs.  The solution being delivered for .NET Framework 2.0 is what we had originally hoped to ship for .NET Framework 1.1 but the changes required to make the core setup package truly language neutral was too great to finish with high quality in the relatively short time in between shipping 1.0 and 1.1.  We have noted some confusion about why there are multiple dotnetfx.exe packages available on the Microsoft download center for v1.1, and I often hear questions about how the bits each of them installs differ from one another.  I feel like the solution for v2.0 is much cleaner and easier to understand.

 

Some advantages of this packaging solution are:

 

1.       Setup developers only need to include one version of dotnetfx.exe for any scenario where their application requires the .NET Framework.

2.       A single patch can be created for any fixes made to core .NET Framework binaries.  This makes the testing matrix within Microsoft simpler and improves the turnaround time for delivering fixes.

 

Some disadvantages of this packaging solution are:

 

1.       Setup developers need to include one or more langpack.exe files to create a multi-lingual managed application.

2.       Installing the .NET Framework SDK requires a separate step to install the .NET Framework redist.

 

I would like to hear any feedback that anyone has about the packaging changes that have happened for the .NET Framework.  Is it making things easier for setup developers?  Or harder (or more confusing)?  Do you have any suggestions for future versions?  If you have any questions or comments about any of the above please post them on my blog or send me a direct email at aaronste (at) microsoft (dot) com.

 

Published Tuesday, November 16, 2004 6:22 PM by astebner
Filed under:

Comments

Tuesday, November 16, 2004 10:14 PM by saurabh nandu

# re: .NET Framework setup and language packs

In .NET 2.0 will the order of install of the language packs have any significant impact?

For example: If I install the English language pack first and then the French will that have any impact rather than it being doine the other way round ?
Tuesday, November 16, 2004 10:51 PM by Joe

# re: .NET Framework setup and language packs

For 1.1:
> These [langpack] packages each install a set of satellite resource DLLs that provide the appropriate non-English string resources.

... and they also seem to install a localized version of .Net Framework Configuration/Wizards under Administrative Tools. Which is actually a pain: I want multilingual satellite assemblies on my server, but I don't want additional multilingual UIs.
Tuesday, November 16, 2004 11:22 PM by Stefan Krueger

# re: .NET Framework setup and language packs

Aaron, could you please also calrify about the language versions of SP1 for the .NEt Framework version 1.1? I see that there are separate versions of the SP, one for Windows Server 2003 and another one for other Windows versions. Now the 2003 version is available in 18 languages, the other version in 22 languages. Do these SP languages only apply to the setup UI or also to the framework bits (language DLLs)?
Wednesday, November 17, 2004 9:01 PM by Aaron Stebner's WebLog

# Answering follow-up questions about .NET Framework and language pack setups

Tuesday, July 12, 2005 11:41 AM by DevDivLocTeamBlog

# .NET Framework and Language Packs

There have been several changes in the .NET Framework setup and packaging that are important from an...
Tuesday, July 12, 2005 12:00 PM by JCosta

# .NET Framework setup and language packs

I find this architecture very useful. I only regret that other MS products don't use the same philosophy
Wednesday, August 03, 2005 9:28 PM by Aaron Stebner's WebLog

# How does Windows Update decide whether or not to offer .NET Framework 1.1 and SP1?

I have seen a few issues in the past where a user visits Windows Update and is not offered the .NET Framework...
Tuesday, August 16, 2005 2:37 AM by Aaron Stebner's WebLog

# Looking behind the scenes of the setup wrapper used for the .NET Framework 2.0

In the past, I've written a little bit about the packaging for the .NET Framework setup, including changes...
Thursday, May 25, 2006 5:06 AM by haslihb

# re: .NET Framework setup and language packs

hi need to check, is there any way i can package only the .net framework 1.1SP1 with the ASP.net securty update (EXCLUDING the core .net framework 1.1). Thanks
Friday, May 26, 2006 12:45 AM by astebner

# re: .NET Framework setup and language packs

Hi Haslihb - I don't know of a way to create a combined patch like you are describing.  You can create an administrative install point that includes the core .NET Framework + hotfixes + service packs if you want to (using instructions from http://blogs.msdn.com/astebner/archive/2005/03/05/385971.aspx).  But those instructions require the core bits to be a part of the image.

# Galhano 127.0.0.1 » Blog Archive » Final official version of .NET Framework 2.0 is available for download!

Tuesday, January 20, 2009 11:15 AM by .NET Framework 2.0 sprachunabh?ngig? | hilpers

# .NET Framework 2.0 sprachunabh?ngig? | hilpers

Anonymous comments are disabled
 
Page view tracker