C#CultureInfo.GetCultures返回(几乎)空的列表

Windows 8.1 Pro,Visual Studio 2013,.NET Framework 4.5.2

这里是代码:

var cultures = CultureInfo.GetCultures(CultureTypes.AllCultures); Console.WriteLine("Culture count: " + cultures.Length); 

这是输出:

 Culture count: 2 

这两种文化是在CultureData.GetCultures方法中添加的zh-CHS和zh-CHT。 其他文化应该由CultureData.nativeEnumCultureNames返回,但它似乎返回一个空的数组。

这种行为似乎仅限于一个工作站。 我已经尝试了其他电脑上的相同的代码,并得到正常的结果。 我怎么去解决这个问题? 我试图重新安装.NET框架没有成功。

编辑1:这只会影响.NET 4 / 4.5。 如果我的项目的目标是.NET 3.5,它会起作用,返回311文化。

检查是否存在关键HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Nls \ ExtendedLocale。 如果缺少,可以通过添加此项来解决已知的问题 。