2015-03-02 37 views
2

我有一個ClickOnce項目 - winform應用程序 - 兩個國家安裝位置,一個捷克共和國,一個斯洛伐克。 每當我發佈不同的國家我只更改安裝文件夾和發佈文件夾。「發佈語言」選項到底是什麼?

最近我已經將應用程序本地化爲斯洛伐克語。但是在發佈軟件包中,對於包/發佈位置,我都將「發佈語言」設置爲捷克語。

enter image description here

根據文檔應該只會影響的ClickOnce安裝程序的語言。但實際上它影響了整個應用程序的文化。我甚至已經加入此行:

[STAThread] 
    static void Main() 
    { 
     //localization code 

     Thread.CurrentThread.CurrentUICulture = new CultureInfo("sk-SK"); 
     Thread.CurrentThread.CurrentCulture = new CultureInfo("sk-SK"); 

但之後安裝的應用程序,即使是在啓動時該代碼運行顯示在斯洛伐克的Windows捷克語言。 當我語言更改爲斯洛伐克或中性的,那麼它提供了以下錯誤的ClickOnce在客戶端上(因爲我已經改變了發佈語言):

部署標識不匹配訂閱。

當用斯洛伐克語「重新發布語言」重新安裝時,它在斯洛伐克語中正確顯示。

爲什麼我看不到斯洛伐克界面,即使我在代碼中手動設置文化到sk-SK,客戶端有斯洛伐克語Windows,只有「Publish language」設置爲捷克語?是否有解決方法,以便我不必重新安裝所有客戶端?

+0

我重新安裝了所有客戶端... – 2015-04-03 05:18:20

回答

4

對不起,我遲到了,但只是自己反對這個問題。即使您將CurrentUICulture設置爲斯洛伐克語,您仍將看到捷克語的原因是因爲ClickOnce中的「發佈語言」設置決定將哪些語言程序集發送給客戶端。由於ClickOnce設置爲捷克語,因此它只會發佈捷克.dll文件以交付給客戶端。允許多種語言(其中語言由客戶端Windows安裝或通過CurrentThread.CurrentUICulture確定)的唯一方法是將ClickOnce發佈語言設置爲「(默認)」或「中性」。有關更多信息,請參閱MSDN docs

遺憾的是,似乎試圖改變後首先發布發佈語言是不可能的,因爲這會導致

部署標識不匹配訂閱。

正如您發現的那樣。這是我目前試圖解決的問題,而無需通過卸載/重新安裝程序來指導客戶端。