WIX:多个功能/文件夹的重复 ID 问题

Mut*_*ran 5 wix wix3 visual-studio-2008

我是 Wix 的新手,正在创建一个多功能 Wix 项目。我们的产品有 4 个模块,每个模块都必须作为一项功能包含在 Windows 安装程序中。但所有功能都共享相同的文件夹结构。

我正在使用命令行构建我的 Wix 项目。将每个模块收集到不同的 wxs 片段中后,light.exe 会给出错误,指出目录表中存在重复的 id。

我的文件树看起来像......

    模块A - 核心
 |--bin
 |--等
 | |--经理
 |--lib
 |-- a.txt

模块B
 |--bin
 |--等
 | |--经理
 |--lib
 |-- b.txt

模块C
 |--bin
 |--等
 | |--经理
 |--lib
 |-- c.txt

我正在使用以下命令...

@echo 正在收集目标文件....
heat.exe dir .\Mod1 -cg Mod1ComponentGroup -nologo -gg -scom -sfrag -sreg -srd -ke -dr 安装 -var var.mod1files -out Mod1Files.wxs

heat.exe dir .\Mod2 -cg Mod2ComponentGroup -nologo -gg -scom -sfrag -sreg -srd -ke -dr 安装 -var var.mod2files -out Mod2Files.wxs

heat.exe dir .\Mod3 -cg Mod3ComponentGroup -nologo -gg -scom -sfrag -sreg -srd -ke -dr 安装 -var var.mod3files -out Mod3Files.wxs

@echo 编译模块....
Candle.exe -nologo myproj.wxs Mod1Files.wxs Mod2Files.wxs Mod3Files.wxs -dmod1files =.\Mod1 -dmod2files=.\Mod2 -dmod3files=.\Mod3

@创建MSI...
设置 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 错误吗?

任何帮助将非常感激。

提前致谢。

穆图

Chr*_*ter 5

如果您使用合并模块,这没问题,因为每个 ID 都会附加一个唯一的模块 ID。( dir1.GUIDA, dir1.GUIDB, dir1.GUIDC ) 如果您使用片段,则必须更改 ID 或将目录结构规范化为单个 wxs,并使用 DirectoryRef 将其拉入包含组件的其他 wxs 中。

我不确定 Heat 能否自动处理所有这些。这实际上只是一个起点。