最近我正在为我的团队创建一个多语言wix msi包。我搜索了Google上的本地化以及stackoverflow已经有一段时间了,终于找到了要遵循的内容:http://www.geektieguy.com/2010/03/13/create-a-multi-lingual-multi-language-msi-using-wix-and-custom-build-scripts/。目前我只添加了2种语言支持:英语和简体中文,以检查这种方法是否适合我。主要的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文件中获取价值,现在我有2个文件,一个是en-US.wxl,另一个是zh-CN.wxl,< / p>
在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 zh-CN \ 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个声誉才能发布图片,但我看到的第一个Dialog上的文字是&#34;准备安装.... &#34;和右下角的按钮&#34;取消&#34;用户界面在2-3秒后成为中文。有没有人提出过这个问题?
答案 0 :(得分:0)
在MSI安装开始时,默认情况下(如果在系统范围内启用)创建Windows系统还原点。该系统还原点似乎发生在语言环境转换之前,并导致您观察到的行为。
您可以通过将MSIFASTINSTALL
属性设置为1
或包含该属性的任何值来禁用它(例如,如果您还想减少进度消息的数量,请使用5
)
<Property Hidden="yes" Id="MSIFASTINSTALL" Value="1" />
例如,在您的.wxs文件中:
<?xml version="1.0" ?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util='http://schemas.microsoft.com/wix/UtilExtension'>
<Product Id="XXX" Name="XXX" Language='!(loc.LANG)' Codepage='0'
Version="XXX" Manufacturer="XXX"
UpgradeCode="XXX">
<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" />
<!-- Disable System Restore point creation for this MSI (faster installation) -->
<Property Hidden="yes" Id="MSIFASTINSTALL" Value="1" />
<!-- Rest of your setup ... -->
</Product>
</Wix>
您可以在Microsoft Windows docs上了解有关MSIFASTINSTALL
的信息