The release of Windows 8.1 added a new feature called app bundles. App bundles help your customers use less device space when installing your app. Given device storage limits, this is a very valuable feature.
It seems that the Multilingual App Toolkit does not always play nice with app bundles. MAT is creating the localized resources which show when run locally, but when the app bundle based package is uploaded to the store the MAT based languages are not registered.
This turned out to be a timing problem related to when MAT’s build step is executed. The process that creates the app bundle has already completed its build steps before MAT’s build is executed. Fortunately, we were able to get some help from the app bundle team (thank you!) to get a solution to this problem. This fix will be included in the next release of MAT.
If you don't want to wait until the next update of MAT, here are two different workarounds that you can use today.
Option 1: Make a quick change to MAT’s .targets file
This option changes the timing of the build step so that MAT runs earlier in the process, ensuring the languages are added before the app bundle process runs. This is a simple change that will fix the issue, but requires administrator rights. This is the fix that will ship in the next release.
- Open notepad using “Run as Administrator”
- Open “C:\Program Files (x86)\MSBuild\Microsoft\Multilingual App Toolkit\v3.0\Microsoft.Multilingual.PriResources.targets”
- Modify line 20 from:
Note: The above assumes Drive C: is the OS drive. Adjust the file path as necessary.
Option 2: Don't use app bundles
This option will disable the optimization that app bundles provide for your customers. It is a quick fix and matches the same behavior as Windows 8.0 apps. It will also work with machines that don't have the manually applied fix from the preferred first option.
Using either of these options will allow you to workaround this reported issue.
The Multilingual App Toolkit team