【发布时间】:2013-04-12 09:30:14
【问题描述】:
伙计们,我正在开发一个可以跨多台机器运行的应用程序。我最近在其中引入了Cultures 以支持所有货币。
我有 2 台主要的开发 PC,我在它们之间移动代码。一台是 Windows 8 笔记本电脑,另一台是 Windows 7 PC。
这两台机器中SpecificCultures的列表好像不一样。当可执行文件在 Windows 8 上运行时,会返回更多的 SpecificCultures,并且还会重命名一些现有的。
我使用以下代码转储所有特定文化的文本文件:
StringBuilder sb = new StringBuilder();
foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.SpecificCultures))
{
sb.Append(ci.Name + "\t" + new RegionInfo(ci.LCID).CurrencyEnglishName);
sb.AppendLine();
}
StreamWriter f = new StreamWriter(@"specificCulturesFound.txt");
f.Write(sb);
f.Close();
从我的 Windows 8 笔记本电脑返回的 SpecificCultures 是:http://pastebin.com/cznLRG62
从我的 Windows 7 PC 返回的SpecificCultures 是这样的:http://pastebin.com/MwMXwSdb
如果您在 Notepad++ 或其他工具中比较它们,您会发现差异。
例如:例如,et-EE Estonian Kroon 条目仅适用于我的 Windows 7 PC,而 ku-Arab-IQ Iraqi Dinar 仅适用于 Windows 8 笔记本电脑
问题是,我该如何处理这种情况?应用程序发布后,将在具有不同 .NET 框架版本的不同机器上运行。
有没有办法通过应用程序导出所有收集的 CultureInfo 数据,以便可以使用它而不是从已安装的 .NET 框架中获取它?
【问题讨论】:
-
你可以随时依赖
CultureInfo.InvariantCulture
标签: c# c#-4.0 currency cultureinfo culture