我有一个问题,我正在尝试做的是否可行,如果答案是肯定的,该怎么做。
我是wix的新手,并且一直在阅读如何动态地将文件夹包含到安装程序中,最终我能够在nant中执行任务,使用heat.exe生成wxs文件,后者添加新生成的wxs文件到灯光和蜡烛任务。这允许我将文件夹的内容添加到msi,然后将该文件夹及其内容安装。
我的问题从我添加到msi的文件夹包含其名称已经本地化的文件开始(这是一项要求)。
当我将文件添加到名称为俄语的目录结构中时,例如,这不是1252代码页,我收到错误:
[exec] ...... Templates.wxs(65):错误LGHT0311:字符串是 提供指定中不可用的字符 数据库代码页'1252'。将这些字符更改为那些字符 存在于数据库的代码页中,或更新数据库的代码页 通过修改以下属性之一:Product / @ Codepage, Module / @ Codepage,Patch / @ Codepage,PatchCreation / @ Codepage,或 WixLocalization / @代码页。
我尝试将Product/@Codepage
设置为65001
(UTF-8),但这并没有解决问题。
最终我想要做的是能够将文件夹及其内容添加到安装程序,而其他人则添加任意数量的文件,这些文件的名称已本地化到该文件夹中。这样,无论何时构建运行并随后创建msi,msi都将包含该文件夹及其内容。
非常感谢你。
答案 0 :(得分:4)
这就是WiX.chm关于设置MSI数据库代码页的说法:
您可以按1252之类的整数将其设置为有效的Windows代码页,或者 通过网络名称,如Windows-1252。 UTF-7和UTF-8不是正式的 由于用户界面问题而受支持。不支持Unicode。
只要您要使用不同语言命名的文件,即File表不适合单个Windows代码页,您就没有多少选择。据说UTF-8没有得到官方支持,这留下了希望的地方。
如果您将CodePage
元素的Product
属性设置为UTF-8
,则会成功构建。您可以毫无问题地安装/卸载生成的MSI。我已经玩了一些,并没有面对上面那个警告中提到的任何“界面问题”。
此外,我已经搜索了一下这个主题,并发现InstallShield允许将MSI数据库代码页设置为UTF-8,which is reflected in their docs(在该页面上搜索“utf-8”)。他们对潜在的界面问题有更多的说法:
但是,某些情况会导致用户界面问题。例如, 如果最终用户指定/ qb命令行选项或卸载 来自“添加或删除程序”的产品,Windows Installer使用非常小 用于在UTF-8数据库中显示用户界面文本的字体。
他们也希望保持安全,因此默认情况下此设置为false
(无UTF-8,仅为ASCII)。
所以,最后,在你的情况下我会怎么做?
UTF-8
作为代码页希望这有帮助。