"Publish language" 选项到底是什么?
What exactly does "Publish language" option?
我有一个 ClickOnce 项目 - winform 应用程序 - 按国家/地区有两个安装位置,一个用于捷克共和国,一个用于斯洛伐克。
每当我为不同的国家/地区发布时,我只更改安装文件夹和发布文件夹。
最近我将应用程序本地化为斯洛伐克语。但是在发布包中,我将两个 packages/publish 位置的 "Publish language" 设置为捷克语。
根据文档,它应该只会影响 ClickOnce 安装程序的语言。但实际上它影响了整个应用程序的文化。我什至添加了这一行:
[STAThread]
static void Main()
{
//localization code
Thread.CurrentThread.CurrentUICulture = new CultureInfo("sk-SK");
Thread.CurrentThread.CurrentCulture = new CultureInfo("sk-SK");
但在安装后,应用程序在斯洛伐克 Windows 上以捷克语显示,即使在启动时使用此代码 运行 也是如此。
当我将语言更改为斯洛伐克语或中性语言时,客户端会出现以下 ClickOnce 错误(因为我更改了发布语言):
The deployment identity does not match the subscription.
重新安装斯洛伐克语后 "Publish language" 它可以在斯洛伐克语中正确显示。
即使我在代码中手动将文化设置为 sk-SK
并且客户端有斯洛伐克语 Windows 并且只有 "Publish language" 设置为捷克?是否有解决方法,使我不必重新安装所有客户端?
抱歉,我回复晚了,只是我自己遇到了这个问题。即使将 CurrentUICulture 设置为斯洛伐克语,您仍会看到捷克语的原因是 ClickOnce 中的 "Publish language" 设置决定了将哪些语言程序集发送到客户端。因为 ClickOnce 设置为 Czech,所以它只会发布 Czech .dll 文件以交付给客户端。允许多种语言(语言由客户端 Windows 安装或通过 CurrentThread.CurrentUICulture 确定)的唯一方法是将 ClickOnce 发布语言设置为“(默认)”或 "neutral"。有关详细信息,请参阅 MSDN docs。
不幸的是,似乎无法在首次发布后尝试更改发布语言,因为这会导致
The deployment identity does not match the subscription.
如您所见。这是我目前正在尝试解决的问题,而无需通过 uninstalling/reinstalling 程序指导客户。
我有一个 ClickOnce 项目 - winform 应用程序 - 按国家/地区有两个安装位置,一个用于捷克共和国,一个用于斯洛伐克。 每当我为不同的国家/地区发布时,我只更改安装文件夹和发布文件夹。
最近我将应用程序本地化为斯洛伐克语。但是在发布包中,我将两个 packages/publish 位置的 "Publish language" 设置为捷克语。
根据文档,它应该只会影响 ClickOnce 安装程序的语言。但实际上它影响了整个应用程序的文化。我什至添加了这一行:
[STAThread]
static void Main()
{
//localization code
Thread.CurrentThread.CurrentUICulture = new CultureInfo("sk-SK");
Thread.CurrentThread.CurrentCulture = new CultureInfo("sk-SK");
但在安装后,应用程序在斯洛伐克 Windows 上以捷克语显示,即使在启动时使用此代码 运行 也是如此。 当我将语言更改为斯洛伐克语或中性语言时,客户端会出现以下 ClickOnce 错误(因为我更改了发布语言):
The deployment identity does not match the subscription.
重新安装斯洛伐克语后 "Publish language" 它可以在斯洛伐克语中正确显示。
即使我在代码中手动将文化设置为 sk-SK
并且客户端有斯洛伐克语 Windows 并且只有 "Publish language" 设置为捷克?是否有解决方法,使我不必重新安装所有客户端?
抱歉,我回复晚了,只是我自己遇到了这个问题。即使将 CurrentUICulture 设置为斯洛伐克语,您仍会看到捷克语的原因是 ClickOnce 中的 "Publish language" 设置决定了将哪些语言程序集发送到客户端。因为 ClickOnce 设置为 Czech,所以它只会发布 Czech .dll 文件以交付给客户端。允许多种语言(语言由客户端 Windows 安装或通过 CurrentThread.CurrentUICulture 确定)的唯一方法是将 ClickOnce 发布语言设置为“(默认)”或 "neutral"。有关详细信息,请参阅 MSDN docs。
不幸的是,似乎无法在首次发布后尝试更改发布语言,因为这会导致
The deployment identity does not match the subscription.
如您所见。这是我目前正在尝试解决的问题,而无需通过 uninstalling/reinstalling 程序指导客户。