加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

利用heat.exe并收集已经本地化的文件名,并使用wix将它们包含到ms

发布时间:2020-12-14 05:28:11 所属栏目:Windows 来源:网络整理
导读:我有一个问题,我想要做的是否可行,如果答案是肯定的,那该怎么做. 我是wix的新手,并且一直在阅读如何动态地将文件夹包含到安装程序中,最终我能够在nant中执行任务,使用heat.exe生成wxs文件,后者将新生成的wxs文件添加到光和蜡烛任务.这允许我将文件夹的内容添
我有一个问题,我想要做的是否可行,如果答案是肯定的,那该怎么做.

我是wix的新手,并且一直在阅读如何动态地将文件夹包含到安装程序中,最终我能够在nant中执行任务,使用heat.exe生成wxs文件,后者将新生成的wxs文件添加到光和蜡烛任务.这允许我将文件夹的内容添加到msi,然后将该文件夹及其内容安装.

我的问题开始于我添加到msi的文件夹包含已经本地化的文件(这是一项要求).

当我将文件添加到其名称为俄语的目录结构中,例如不是1252代码页时,我收到错误:

[exec] ……Templates.wxs(65) : error LGHT0311 : A string was
provided with characters that are not available in the specified
database code page ‘1252’. Either change these characters to ones that
exist in the database’s code page,or update the database’s code page
by modifying one of the following attributes: Product/@Codepage,
Module/@Codepage,Patch/@Codepage,PatchCreation/@Codepage,or
WixLocalization/@Codepage.

我试图将Product / @ Codepage设置为65001(UTF-8),但这并没有解决问题.

最终我想要做的是能够将文件夹及其内容添加到安装程序,而其他人则添加任意数量的文件,这些文件的名称已本地化到该文件夹??中.这样,每当构建运行并随后创建msi时,msi将包含该文件夹及其内容.

非常感谢你提前.

解决方法

这就是WiX.chm关于设置MSI数据库代码页的说法:

You can set this to a valid Windows code page by integer like 1252,or
by web name like Windows-1252. UTF-7 and UTF-8 are not officially
supported because of user interface issues. Unicode is not supported.

只要您要使用不同语言命名的文件,即File表不适合单个Windows代码页,您就没有多少选择.据说UTF-8没有得到官方支持,这留下了希望的地方.

如果将Product元素的CodePage属性设置为UTF-8,它将成功构建.您可以毫无问题地安装/卸载生成的MSI.我玩了一下,并没有面对上面那个警告中提到的任何“界面问题”.

此外,我已经搜索了一下这个主题,并发现InstallShield允许将MSI数据库代码页设置为UTF-8,which is reflected in their docs(在该页面上搜索’utf-8′).他们对潜在的界面问题有更多的说法:

However,some scenarios result in user interface issues. For example,
if an end user specifies the /qb command-line option or uninstalls the
product from Add or Remove Programs,Windows Installer uses very small
fonts to display the user interface text in a UTF-8 database.

他们还希望保持安全,因此默认情况下此设置为false(无UTF-8,仅ASCII).

那么,最后,在你的情况下我会怎么做?

>如果这是对安装包的严格要求,请使用UTF-8作为代码页
>测试与本地化相关的所有可能组合的所有可能方案(安装/卸载/修复/升级/等)(英语操作系统,非英语操作系统,当前文化和文化UI的各种组合)
>如果你面对那些幽灵“界面问题”,向你的利益相关者展示这些问题,决定这是否是你可以忍受的,如果你这样做就发布已知问题
>否则,回收这个想法,只是感谢你的生活有机会提升你在这方面的技能:)

希望这可以帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读