当自定义表数据中有选项卡时,会发生编译错误,就好像编译器认为选项卡正在尝试创建另一列一样。
我尝试了一个实际的标签,xml转义标签(	)和msi转义标签([{tab}],其中{tab}是实际标签)
实施例: < Data Column =“”> Testing 1,2,3< / Data>
在'Testing'和'1,2,3'之间是一个标签。
错误是: 自定义表格列“1,2,3”未知。
答案 0 :(得分:2)
您不能 - 通过制表符分隔的文件将数据导入.msi包。请参阅MSI SDK中的“存档文件格式”。如果字段可以是二进制,则可以导入文件的内容,可以是任何内容。
答案 1 :(得分:0)
在查看“归档文件格式”后,我用orca进行了更多实验 在MSI SDK中,看到了tab的转换为char 16(DLE)。
从挖掘到源代码,似乎编译器使用制表符分隔的中间格式将自定义表行传递给链接器,但它不会以任何方式转义数据中的实际制表符。
这就是选项卡后的数据看起来像列名的原因。
Wix已经正确翻译了回车符,17(DC1)和换行符,25(EM),控制字符在SDK中提供的字符。
从源代码编码也可以正确翻译标签,但由于前面提到的中间格式,标签永远不会出现在数据中。
Wix应该能够使用永远不会出现在xml而不是tab中的字符。
我下载了源代码并更改了编译器和链接器以使用null,\ x0,而不是tab,\ t,它解决了确认我之前的怀疑者的问题。我会把它打开作为一个bug。