1

我有一個主要以C#編寫的.Net 3.5應用程序,它使用.resx文件來存儲幾種不同語言的國際化數據,包括字符串,控件大小和位置等等。我試圖弄清楚的是:有可能以這樣的方式編譯我的應用程序,即默認文化數據將以與其他文化數據非常相似的方式被拉出到附屬程序集中?刪除程序集中的默認語言並將其移動到衛星程序集

我試圖阻止用戶以一種(非默認)語言使用軟件,刪除bin目錄中的文化文件夾,然後有訪問默認語言的情況。

如果這是不切實際的或不可能的,因爲框架的限制,是可以或許編譯在默認以外的語言,這樣我就可以給應用程序給用戶的一個單一的,非默認的版本?

非常感謝您的回答。

+0

如果本地化不可用,您期望的行爲是什麼? – 2010-08-27 23:39:12

+0

如果本地化不可用,我希望應用程序顯示佔位符值,也許是變量名稱。看起來我必須將應用中的所有外向值更改爲佔位符值,然後在運行時使用這些佔位符作爲所需資源文件中保存的實際值的關鍵字。 – 2010-09-09 15:11:35

回答

1

我幾天前做了類似的事情,因爲我需要所有應用程序的程序集都可以訪問相同的資源。您只需創建一個包含資源的單獨程序集,並從應用程序的程序集中引用它。請注意,如果你這樣做,資源組裝將不會是衛星彙編:它會明確地從其他程序集引用,如果應用程序不存在,它將不會啓動。

另請注意,默認情況下,由Visual Studio生成的資源類是內部的。爲了公開它們,您需要用PublicResxFileCodeGenerator替換自定義工具ResxFileCodeGenerator