In desktop apps, the System.Resources.NeutralResourcesLanguageAttribute attribute informs the resource manager of an app's default culture and the location of its resources. By default, resources are embedded in the main app assembly, and you can use the attribute as follows. This statement specifies that the English (United States) is the app's default culture.
code reference: System.Resources.NeutralResourcesLanguageAttribute#1
You can also use the System.Resources.NeutralResourcesLanguageAttribute attribute to indicate where System.Resources.ResourceManager can find the resources of the default culture by providing an System.Resources.UltimateResourceFallbackLocation enumeration value in the attribute statement. This is most commonly done to indicate that the resources reside in a satellite assembly. For example, the following statement specifies that English (United States) is the app's default or neutral culture and that its resources reside in a satellite assembly. The System.Resources.ResourceManager object will look for them in a subdirectory named en-US.
code reference: System.Resources.NeutralResourcesLanguageAttribute#2
We recommend that you always use the System.Resources.NeutralResourcesLanguageAttribute attribute to define the default culture of your app.
The attribute performs two roles:
If the default culture's resources are embedded in the app's main assembly and System.Resources.ResourceManager has to retrieve resources that belong to the same culture as the default culture, the System.Resources.ResourceManager automatically uses the resources located in the main assembly instead of searching for a satellite assembly. This bypasses the usual assembly probe, improves lookup performance for the first resource you load, and can reduce your working set. See Packaging and Deploying Resources for the process System.Resources.ResourceManager uses to probe for resource files.
If the default culture's resources are located in a satellite assembly rather than in the main app assembly, the System.Resources.NeutralResourcesLanguageAttribute attribute specifies the culture and the directory from which the runtime can load the resources.
In win8_appname_long apps whose resources are loaded and retrieved by using the System.Resources.ResourceManager class, the System.Resources.NeutralResourcesLanguageAttribute attribute defines the neutral culture whose resources are used in the event of a failed probe. It does not specify the location of the resources. By default, System.Resources.ResourceManager uses the app's package resource index (PRI) file to locate the resources of the default culture. The neutral culture that is defined by the System.Resources.NeutralResourcesLanguageAttribute attribute is added to the end of the UI language list to simulate this effect.
If you load and retrieve resources by using the wrt tp://go.microsoft.com/fwlink/p/?LinkId=238182 class or the types in the tp://go.microsoft.com/fwlink/p/?LinkId=238194 namespace, the System.Resources.NeutralResourcesLanguageAttribute attribute is ignored.