我是 Wix 的新手,正在创建一个多功能 Wix 项目。我们的产品有 4 个模块,每个模块都必须作为一项功能包含在 Windows 安装程序中。但所有功能都共享相同的文件夹结构。
我正在使用命令行来构建我的 Wix 项目。将每个模块收集到不同的 wxs 片段后,light.exe 给出错误,指出目录表中存在重复的 id。
我的文件树看起来像......
ModuleA - Core
|--bin
|--etc
| |--mgr
|--lib
|-- a.txt
ModuleB
|--bin
|--etc
| |--mgr
|--lib
|-- b.txt
ModuleC
|--bin
|--etc
| |--mgr
|--lib
|-- c.txt
我正在使用以下命令...
@echo Harvesting target files....
heat.exe dir .\Mod1 -cg Mod1ComponentGroup -nologo -gg -scom -sfrag -sreg -srd -ke -dr INSTALLLOCATION -var var.mod1files -out Mod1Files.wxs
heat.exe dir .\Mod2 -cg Mod2ComponentGroup -nologo -gg -scom -sfrag -sreg -srd -ke -dr INSTALLLOCATION -var var.mod2files -out Mod2Files.wxs
heat.exe dir .\Mod3 -cg Mod3ComponentGroup -nologo -gg -scom -sfrag -sreg -srd -ke -dr INSTALLLOCATION -var var.mod3files -out Mod3Files.wxs
@echo Compile modules....
candle.exe -nologo myproj.wxs Mod1Files.wxs Mod2Files.wxs Mod3Files.wxs -dmod1files =.\Mod1 -dmod2files=.\Mod2 -dmod3files=.\Mod3
@Creating MSI...
set msi_name=MYProduct.1.0.12345.Win32.msi
light.exe -nologo -ext WixUIExtension -cultures:en-us myproj.wixobj Mod1Files.wixobj Mod2Files.wixobj Mod3Files.wixobj -o %msi_name%
有什么办法可以避免重复 ID 错误吗?
任何帮助将非常感激。
提前致谢。
Muthu
如果您使用合并模块,这没问题,因为每个 ID 都会附加一个唯一的模块 ID。 ( dir1.GUIDA, dir1.GUIDB, dir1.GUIDC ) 如果您使用片段,则必须更改 ID 或将目录结构规范化为单个 wxs,并使用 DirectoryRef 将其拉入包含组件的其他 wxs 中。
我不确定 Heat 能否自动处理所有这些。这实际上只是一个起点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)