2009-11-13 66 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版本,您可以在控制面板中更改此選項,但不能用於單一語言版本。

相關問題