我剛剛將我的一個表單設置爲Localization:True,並將語言留爲「Default」。語言設置爲「默認」,但我沒有看到一個resource.dll?
我檢查了resx,果然它包含了我的表單的所有字符串。
所以我運行應用程序,我希望能夠在我的Debug目錄中找到衛星資源DLL,但它不存在。
所以這讓我感到驚訝......是不是DEFAULT語言編譯爲附屬DLL?
我想將語言(包括DEFAULT)作爲衛星程序集來分發。
我剛剛將我的一個表單設置爲Localization:True,並將語言留爲「Default」。語言設置爲「默認」,但我沒有看到一個resource.dll?
我檢查了resx,果然它包含了我的表單的所有字符串。
所以我運行應用程序,我希望能夠在我的Debug目錄中找到衛星資源DLL,但它不存在。
所以這讓我感到驚訝......是不是DEFAULT語言編譯爲附屬DLL?
我想將語言(包括DEFAULT)作爲衛星程序集來分發。
你是對的 - 默認資源直接編譯到程序集本身。一旦你改變了表格的Language
屬性並修改了資源,那麼在建立一個衛星裝配後就會爲這種語言創建。
這樣做的原因是,如果表單未本地化爲用戶的UI語言,則總是會使用回退語言。
謝謝,那麼有沒有辦法將我的默認語言自動複製到en-US?這樣我可以自動改變文化en_US默認情況下,當我啓動我的應用程序,它會自動加載衛星DLL ...或者我需要使用複製和粘貼:-)? – Martin 2011-03-09 14:09:17
@Martin如果你想讓en-US成爲你的默認語言,你不應該爲它製作衛星組件。 .NET將爲給定資源加載正確的語言(基於當前線程的UICulture),如果沒有找到,它將回退到默認值。這是你的意思,還是你的意思是別的? – Andy 2011-03-09 14:47:53
謝謝安迪,正是我需要的 – Martin 2011-03-18 09:04:27
看起來默認語言是作爲DLL導出的。我測試了另一種語言,並且看到了一個創建的dll。無論如何強制默認語言被導出。或者至少自動將默認語言複製到(例如)美國英語。 – Martin 2011-03-09 12:26:21