Soluling home   Document home

Satellite assembly options

Satellite assembly options

Use this sheet the specify how output satellite assembly files are created. This sheet is visible only when Soluling should create satellite assembly output files (e.g., Resource checkbox in Output files group of Output sheet is checked).

Configuration

Specifies the active configuration. You can add any number of configurations. This makes it possible to create multiple output files with different properties easily.

Build options

Specifies the build options.

Value Description
Update dependencies file Check this if you want that Soluling adds the satellite data into the dependencies file (.deps.json) of your application. Dependencies files are used only with .NET Core.

Action

Specifies how satellite assemblies are created. Possible values are:

Value Description
Do not create satellite assemblies Soluling does not create satellite assemblies. You need to create them yourself using the localized resource files (.resx and .xaml) or let Visual Studio compile the satellite assemblies.
Create satellite assemblies programmatically Soluling uses its own code to compile satellite assembly files. This method does not require the .NET SDK.
Create satellite assemblies using Assembly linker Default. Soluling uses .NET SDK's assembly linker (AL.exe) or MsBuild (.NET Core) to compile satellite assembly files.
Create satellite assemblies using C# compiler Soluling uses .NET SDK's C# compiler (CSC.exe) to compile satellite assembly files. Use this if you want to have deterministic satellite assemblies. When using the assembly linker, you will get satellite assemblies that have different byte code even you do not change the original files or translations at all.

The programmatical method can not be used when assemblies are either delay signed or use the key container name as the signing key.

Satellite assembly options

Specifies options for satellite assembly file. This is visible only if you have checked the Satellite assembly files checkbox.

Value Description
Private resource Check this if you want to make the resources not visible to other assemblies.
Add language part

Check this if you want to add the language part into the none standard source. If unchecked, Soluling adds a culture-specific part into the names of those resources that require it. The standard resource types, such as ResX and XAML resources, require the language part.

Let's have an example. You have embedded an image resource named Sample.Image.png. When you read the image data on runtime, you use Sample.Image.png name. If you check this checkbox, Soluling will rename the resource in the localized satellite assembly file. The resource name in the German assembly will be Sample.Image.de.png and in the Japanese assembly file Sample.Image.ja.png. Depending on the active locale, your code must change the name it uses. If you do not want this feature, uncheck this checkbox. In that case, the satellite assemblies will have the resource with the same name as the original assembly (e.g., Sample.Image.png).

Do not use the main assembly as a template

If checked, Soluling do not use the main assembly file as a template to inherit all assembly metadata.

 

Remove localized resource files after the build process

If checked, the localized resource files (.resx, .xaml, .resources, and .baml) are deleted after the satellite assembly files have been compiled.

Note! This is checked by default in .NET Core projects because the new .csproj project file format includes all files that have not explicitly been excluded. If you uncheck this when localizing project files using the new project file format (.NET Core and .NET 5.0 or later), you have to exclude every localized XAML file from the project. If you don't do your project does not compile.

Additional command line linker parameters

Enter any optional assembly linker (AL.exe) or C# compiler (CSC.exe) parameters you want to use when Soluling calls AL.exe or CSC.exe to build satellite assembly files. This is visible only when the Assembly linker method or C# compiler is selected.

Use the above settings for all compatible files in the project

Check this if you want to copy the above settings to other compatible sources in the project. This is visible if you have more than one compatible source in the project.