MSI Package Language

The fact that any MSI package can target only one language is a well-known limitation of the Windows Installer technology. Within MSI Package Builder, the installer language is selected during the project configuration and can be changed within the Project Details view. As any MSI package is language specific, for a successful deployment, all the characters that may be present in any project entry should be available in the code page of the chosen language when the package is being generated.

To help you avoid language mismatches that are really hard to detect on your own, MSI Package Builder performs the code page verification before generating each MSI package and warns you if the test has not been passed successfully allowing you to choose the resolution mode for the detected conflicts Pic 1.

Code page verification failure

Pic 1. Code page verification failure

There are actually two types of conflicts: those that can be resolved automatically and those that cannot. As for the conflicts that cannot be resolved automatically, you can either resolve them manually or exclude the entries causing such conflicts from the resulting MSI package. As you can see, the displayed warning allows you to choose among three options.

The first options, which is Process All Conflicts Automatically, means that it is up to MSI Package Builder to choose what to do with each entry causing a code page conflict. It is the easiest and the most transparent choice for the user. If his option is used, the program performs necessary changes to the entries containing conflicts that can be resolved automatically. The entries containing conflicts that cannot be resolved automatically are excluded from the resulting package. This options is suitable in most cases, but you should always check the resulting package for correctness in case you are letting MSI Package Builder to perform automatic conflicts resolution.

The next option, which is Process Each Conflict Manually, is used to let you decide what to do with each conflicting entry on your own. This option provides the maximum flexibility but requires a great responsibility. Using this method, you can choose for each entry whether you would like to edit it to resolve the conflict, or to apply automatic conflicts resolution to the entry (if applicable), or to exclude the entry from the resulting package. You can also choose to automatically resolve or skip all conflicts using the buttons on the toolbar above the entries list. For each entry in the list, you can see its status, which is either Conflicting, or Resolved, or Skipped.

The last method of resolving code page conflicts is changing the target language of the resulting MSI package. The Change MSI Package Language option is used in such a case. As soon as you select the required language from the drop-down list, you are suggested to revalidate the project. If the validation is passed, the resulting MSI package is generated.

We have done our best to help you avoid problems caused by the language limitation of the Windows Installer technology and hope you will find the code page verification process with different conflict resolution methods useful.