winforms “发布语言”选项究竟是什么?

gwo2fgha  于 2022-11-17  发布在  其他
关注(0)|答案(1)|浏览(180)

我有一个ClickOnce项目- winform应用程序-有两个按国家划分的安装位置,一个用于捷克共和国,一个用于斯洛伐克。每当我为不同的国家发布时,我只更改安装文件夹和发布文件夹。
最近我已经将应用程序本地化为斯洛伐克语。但是在发布包中,我将两个包/发布位置的“发布语言”都设置为捷克语。

根据文档,它应该只影响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,并且仅将“发布语言”设置为捷克语,我也看不到斯洛伐克语界面?是否有解决方法可以使我不必重新安装所有客户端?

esyap4oy

esyap4oy1#

抱歉,我回应得晚了,但我自己也遇到了这个问题。即使将CurrentUICulture设置为Slovak,您仍然会看到捷克语的原因是ClickOnce中的“发布语言”设置决定了将哪些语言程序集发送到客户端。由于ClickOnce被设置为捷克语,则它只会发布要传递到客户端的捷克语.dll文件。(其中语言由客户端Windows安装或通过CurrentThread.CurrentUICulture确定)的方法是将ClickOnce发布语言设置为“(默认)”或“中性”。有关详细信息,请参阅MSDN docs
不幸的是,在首次发布后尝试更改发布语言似乎是不可能的,因为这会导致
部署标识与订阅不匹配。
正如你所发现的。这是我目前试图解决的问题,而不必指导客户端卸载/重新安装程序。

相关问题