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

时间:2014-08-20 21:24:09

标签: .net windows cultureinfo

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

两种培养物是zh-CHS和zh-CHT,它们以CultureData.GetCultures方法加入。其他文化应该由CultureData.nativeEnumCultureNames返回,但它似乎返回一个空数组。

此行为似乎仅限于单个工作站。我在其他计算机上尝试过相同的代码并获得正常结果。我该如何解决这个问题?我试图重新安装.NET框架但没有成功。

编辑1:这仅影响.NET 4 / 4.5。如果我的项目以.NET 3.5为目标,它可以工作,返回311种文化。

1 个答案:

答案 0 :(得分:1)

检查是否存在密钥HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Nls \ ExtendedLocale。如果缺少,可以通过添加此密钥来解决known issue