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种文化。
答案 0 :(得分:1)
检查是否存在密钥HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Nls \ ExtendedLocale。如果缺少,可以通过添加此密钥来解决known issue。