【问题标题】:What exactly does "Publish language" option?“发布语言”选项到底是什么?
【发布时间】:2015-03-02 08:27:33
【问题描述】:

我有一个 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 并且仅将“发布语言”设置为捷克语,我也看不到斯洛伐克语界面?是否有解决方法,这样我就不必重新安装所有客户端?

【问题讨论】:

  • 我已经重新安装了所有客户端...

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


【解决方案1】:

抱歉,我回复晚了,但我自己只是想解决这个问题。即使您已将 CurrentUICulture 设置为 Slovak,您仍会看到捷克语的原因是因为 ClickOnce 中的“发布语言”设置决定了哪些语言程序集将被发送到客户端。因为 ClickOnce 设置为捷克语,所以它只会发布捷克语 .dll 文件以传递给客户端。允许多种语言(其中语言由客户端 Windows 安装或通过 CurrentThread.CurrentUICulture 确定)的唯一方法是将 ClickOnce 发布语言设置为“(默认)”或“中性”。请参阅MSDN docs 了解更多信息。

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

部署标识与订阅不匹配。

如您所见。这是我目前正在尝试解决的问题,而无需指导客户卸载/重新安装程序。

【讨论】:

    猜你喜欢
    • 2017-07-04
    • 1970-01-01
    • 2018-08-18
    • 2014-10-14
    • 2019-01-24
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    相关资源
    最近更新 更多