2009-11-13 35 views
11

我有一个C#应用程序必须在具有不同区域性设置的机器上运行。没问题,我想,它只会查找启动机器上当前的文化,并为我做所有事情。那么不,它会缝合一些不太正确的东西。为什么我的CurrentCulture en-GB和我的CurrentUICulture en-US

我有Windows XP机器的设置为美国英语区域和语言选项的一切,但是当我的应用程序启动时,它报告说我CurrentCultureen-GB和我CurrentUICultureen-US

如何让我的程序只使用PC设置的任何设置?

这是一个Windows服务应用程序,如果它有任何区别。

感谢

+1

是否与我在使用en-GB设置的计算机上编译应用程序有关,然后在带有en-US设置的计算机上执行该应用程序?我只是看不到我的en-GB来自哪里,而我的开发机器是唯一的链接。 – SnAzBaZ 2009-11-13 23:22:44

回答

6

一个Windows服务通常不会您UserAccount下运行,那么你的区域设置是什么都没有关系。这是关于系统帐户的区域设置。我猜你运行的是Windows的en-GB版本,系统帐户仍然使用该版本。

有办法获得该帐户,请检查SuperUser

+0

是的,它被加载为en-GB并改为en-US,我认为这会修复它。现在就去吧 – SnAzBaZ 2009-11-14 00:02:47

+0

工作过,非常感谢。 – SnAzBaZ 2009-11-14 00:23:32

1

我知道你可以设置你的不变的文化是什么作为构建的一部分,但在阅读本当你构建框的文化成为您不变的文化我很惊讶。你有没有尝试搜索所有文件的en-GB只是为了确保它不是默认的地方?

无论如何,有一种解决方法。如果你想与O/S的文化来覆盖这一点,你可以在以下位置,并设置您的CurrentCulture和的CurrentUICulture属性是:

System.Globalization.CultureInfo.InstalledUICulture 
+0

谢谢。我已经检查过,而且我没有设置它,我唯一一次使用System.Globalization的时候只是在查看CurrentCulture的设置。我将把我的开发PC改为en-US,看看能否解决它。 – SnAzBaZ 2009-11-13 23:47:19

+1

哦,InstalledUICulture在en-US报道,它只是CurrentCulture,仍然坚持它是en-GB :-( – SnAzBaZ 2009-11-13 23:48:24

4

我认为符合下列条件:

  • 的CurrentCulture(这会影响数字和日期格式)将反映帐户下,你的应用程序运行的区域设置。您可以使用当前用户的“控制面板”/“区域设置”轻松更改此设置,并且如果您也是用于Windows服务常用系统帐户的“默认”用户的管理员。要更改默认用户,可以在某处使用“默认使用”按钮。

  • CurrentUICulture将对应于您正在使用的Windows版本的语言。对于MUI版本,您可以在控制面板中更改此选项,但不能用于单一语言版本。

相关问题