【发布时间】:2016-01-08 20:13:36
【问题描述】:
我正在尝试安装一些对我们的几个应用程序通用的字体,因此将它们放在一个共享的合并模块中似乎是可行的方法。但我无法获得准确的 Wix 语法。这是我的合并模块配置文件中的内容:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Module Id="TS3DFontsMerge" Language="1033" Version="1.0.0.0">
<Package Id="F6029400-FD05-4213-A0B2-1755387595BF" Manufacturer="Tech Soft 3D" InstallerVersion="200" />
<DirectoryRef Id="FontsFolder">
<Component Id="TechSoft3DFonts" Guid="0B9C43FC-3835-42DE-80F6-1DB2A912BEE5">
<File Id="ts3d.ttf" Source="..\..\..\samples\fonts\ts3d.ttf" TrueType="yes" />
<File Id="MyriadCAD.otf" Source="..\..\..\samples\fonts\MyriadCAD.otf" TrueType="yes" />
</Component>
</DirectoryRef>
</Module>
</Wix>
我遵循here 描述的模型。在这种情况下,我收到此错误:
ts3d_fonts_merge.wxs(5,0):错误 CNDL0205:ID 为“FontsFolder”的目录不是有效的根目录。每个产品或模块可能只有一个根目录,其 Id 属性值必须为“TARGETDIR”,其 Name 属性值必须为“SourceDir”。 ts3d_fonts_merge.wxs(5,0): 错误 CNDL0025: Directory 元素需要 Name 属性,因为没有父 Directory 元素。
所以我的切入点问题是:如何让 Wix 识别合并模块中的 FontsFolder 预定义 ID?我使用的是 WixToolset v3.10。
这是我尝试过的其他几件事...
当我直接在主产品安装程序中使用它时,我必须使用
ts3d_fonts_merge.wxs(5,0):错误 LGHT0094:未解决对“模块:TS3DFontsMerge”部分中符号“目录:FontsFolder”的引用。
如果我将 FontsFolder 包装在 TARGETDIR 标记中(正如第一个错误所暗示的那样?),我会收到警告说字体安装到了错误的位置。这是错误消息:
light.exe(0,0): 警告 LGHT1076: ICE07: 'ts3d.ttf.F6029400_FD05_4213_A0B2_1755387595BF' 是字体,必须安装到 FontsFolder。当前安装目录:'FontsFolder.F6029400_FD05_4213_A0B2_1755387595BF' light.exe(0,0): 警告 LGHT1076: ICE07: 'MyriadCAD.otf.F6029400_FD05_4213_A0B2_1755387595BF' 是字体,必须安装到 FontsFolder。当前安装目录:'FontsFolder.F6029400_FD05_4213_A0B2_1755387595BF'
有什么想法吗?
【问题讨论】:
标签: wix