究竟是什么"发布语言"选项?

时间:2015-03-02 08:27:34

标签: c# winforms visual-studio-2012 localization clickonce

我有一个ClickOnce项目 - winform应用程序 - 各国有两个安装位置,一个用于捷克共和国,一个用于斯洛伐克。 每当我为不同的国家/地区发布时,我只会更改“安装”文件夹和“发布”文件夹。

最近我将应用程序本地化为斯洛伐克语。但是在发布包中我发布了#34;发布语言"对于两个包/发布位置都设置为捷克语。

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");

但安装后,即使启动时运行此代码,应用程序也会在斯洛伐克语上以捷克语显示。 当我将语言更改为斯洛伐克语或中性语时,它会在客户端上出现以下ClickOnce错误(因为我更改了发布语言):

  

部署标识与订阅不匹配。

重新安装斯洛伐克"发布语言"它在斯洛伐克语中正确显示。

为什么即使我在代码中手动将文化设置为sk-SK并且客户端具有斯洛伐克Windows并且只有"发布语言"是捷克?是否有解决方法,以便我不必重新安装所有客户端?

1 个答案:

答案 0 :(得分:4)

对不起,我的回复很晚,但我自己就是在反对这个问题。即使您已将CurrentUICulture设置为斯洛伐克语,您仍然会看到捷克语的原因是因为"发布语言" ClickOnce中的设置确定将哪些语言程序集发送到客户端。因为ClickOnce设置为捷克语,所以它只会发布要传递给客户端的捷克.dll文件。允许多种语言(其中语言由客户端Windows安装或通过CurrentThread.CurrentUICulture确定)的唯一方法是将ClickOnce发布语言设置为"(默认)"或"中立"。有关详细信息,请参阅MSDN docs

不幸的是,似乎无法在首次发布后尝试更改发布语言,因为这会导致

  

部署标识与订阅不匹配。

你发现了

这是我目前试图解决的问题,而无需通过卸载/重新安装程序来指导客户。