Showing results for 
Show  only  | Search instead for 
Did you mean: 
Flexera beginner

.NET assembly satellite dlls, how to package ?

Could some one please enlighten me.

What should be done to install a .NET assembly we have written. i.e. a simple dll written in C# and packaged as an assembly dll.


What should be done with any associated language satellite dlls (which should end up in a sub-folder e.g \en of the installation folder.

What are the extras involved in adding these to the installation package, over and above those actions required for any other file.

This must be one thousands of folk need to know and yet I have not found any help on it in the InstallShield help or on your forums.
Think I must be missing something somewhere.
Please feel free to direct me to (comprehensive) references to the topic.

Thanks in advance.
Labels (1)
0 Kudos
1 Reply

Re: .NET assembly satellite dlls, how to package ?

I create a separate component for each satellite dll, and control which ones get installed with component conditions. So I'll have something like the following:

Component My.Assembly.dll (this is the main assembly and doesn't have a condition)
Component My.Assembly_de.resources.dll (this is the German resource assembly, and has a condition of ProductLanguage=1031)
Component My.Assembly_fr.resources.dll (this is the French resource assembly, and has a condition of ProductLanguage=1036)

I always use ProductLanguage in the conditions so that the assemblies that get installed match the language the installer is running in. This way, you can install in a language different from the system language (i.e. installing the French version on an English OS). Also, it's a good idea to set the "Reevaluate Condition" property of the satellite components to Yes, so that the language can be changed in a maintenance operation.

This is the method that I've used with our products, which support 11 languages. Although it results in a lot of components, I've found it to be very reliable.

Hope this helps.
0 Kudos