[10 July 2007] The security patch of 10 July 2007 http://www.microsoft.com/technet/security/Bulletin/ms07-040.mspx changes culture names to use the new names on Windows XP/2003/2000 as well as Vista.
In order to conform to RFC 4646 (replaces RFC 3066), we updated the names of some locales, which can cause applications using resources with the old names to fail to compile, usually with invalid culture or duplicate names. The duplicates are caused because when the name isn’t recognized it is ignored. Then the default resources end up conflicting. There are two workarounds:
a) (preferred) rename the resource files to the correct RFC 4646 names:
Old Microsoft Name
RFC 4646 Name en-CB -> en-029 az-AZ-Latn -> az-Latn-AZ uz-UZ-Latn -> uz-Latn-UZ sr-SP-Latn -> sr-Latn-CS az-AZ-Cyrl -> az-Cyrl-AZ uz-UZ-Cyrl -> uz-Cyrl-UZ sr-SP-Cyrl -> sr-Cyrl-CS bs-BA-Cyrl -> bs-Cyrl-BA sr-BA-Latn -> sr-Latn-BA sr-BA-Cyrl -> sr-Cyrl-BA bs-BA-Latn -> bs-Latn-BA iu-CA-Latn -> iu-Latn-CA div-MV -> dv-MV zh-CHT -> zh-Hant (Aliased, may not be necessary) zh-CHS -> zh-Hans (Aliased, may not be necessary)
b) If you cannot rename the resources or still rely on the old names, then you can create custom cultures with the old names. See Vista changes .Net 2.0 Locale Names, sample work around custom cultures/locales
Hope this helps,