Wix创建多语言msi

Wix创建多语言msi,wix,windows-installer,multilingual,Wix,Windows Installer,Multilingual,最近,我正在为我的团队创建一个多语言wix msi包。我在谷歌和stackoverflow上搜索了一段时间,终于找到了以下内容:。目前,我刚刚添加了两种语言支持:英语和简体中文,以检查这种方法是否适合我。wxs的主要前部如下所示: <Product Id="B5CB3C6A-A8ED-4308-8ADE-17729FE1FB23" Name="MyProduct" Language="!(loc.LANG)" Codepage="UTF-8" Version="11.51.0027" Ma

最近,我正在为我的团队创建一个多语言wix msi包。我在谷歌和stackoverflow上搜索了一段时间,终于找到了以下内容:。目前,我刚刚添加了两种语言支持:英语和简体中文,以检查这种方法是否适合我。wxs的主要前部如下所示:

<Product Id="B5CB3C6A-A8ED-4308-8ADE-17729FE1FB23" Name="MyProduct" Language="!(loc.LANG)" Codepage="UTF-8" Version="11.51.0027" Manufacturer="My Company" UpgradeCode="D42070C3-43CB-4E2B-9B96-2F8D84A6C8A8">
    <Package InstallerVersion="200" Compressed="yes" Languages="1033,2052" InstallPrivileges="elevated" InstallScope="perMachine" />

对于产品的语言属性,我从本地化wxl文件中得到了值,我现在有两个文件,一个是en-US.wxl,另一个是zh-CN.wxl

在en-US.wxl:1033中

在zh-CN.wxl 2052中

我还在2个wxl文件中设置了相应的代码页,将en-US代码页设置为1252,将zh-CN设置为936

在VS中构建项目后,我得到了2个msi,一个在en US文件夹中,另一个在zh CN文件夹中,我使用以下命令创建多语言msi:

cscript WiLangId.vbs zh CN\MyProduct.msi产品2052

Msitrans.exe-g en US\MyProduct.msi zh CN\MyProduct.msi zh-CN.mst

cscript WiSubStg.vbs en US\MyProduct.msi zh-CN.mst 2052

cscript WiSubStg.vbs en US\MyProduct.msi


在cmd中执行上述命令,我将最终的msi复制到中文win7系统上进行尝试,问题是双击msi进行安装后,第一个UI对话框仍然是英文的,但很快就变成了中文,很抱歉,我无法在这里发布屏幕截图,因为stackoverflow需要10个声誉才能发布图像,但我看到的第一个对话框上的文字是“准备安装…”,右下角的一个按钮是“取消”,2-3秒后,UI变成中文。以前是否有人遇到过此问题?

默认情况下,Windows系统还原点在MSI安装开始时创建(如果在系统范围内启用)。此系统还原点似乎发生在区域设置转换之前,并导致您观察到的行为

您可以通过将
msifestinstall
属性设置为
1
或包含它的任何值(例如
5
,如果您还想减少进度消息的数量)来禁用它


例如,在.wxs文件中:



您可以在

上阅读有关
msifestinstall
的信息这是一个添加了中文支持的英文系统吗?您可能看到嵌入在
msiexec.exe
或相关语言资源dll中的系统消息。因此,它被硬编码到系统本身的语言资源中,与您的软件包或其中包含的语言无关。答案很好,但我认为真正的问题与本地化支持(语言)有关,而不是系统还原点创建或安装速度慢。