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

2024-01-27

我是 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(使用前将#替换为@)

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

  • 为什么安装 TortoiseSVN 后 AnkhSVN 解决方案中的所有文件都标记为新文件?

    安装 TortoiseSVN 1 6 0 后 加载到启用 AnkhSVN 的 Visual Studio 2008 项目中的所有文件都被标记为新文件 蓝 色 我尝试重新安装 AnkhSVN 2 0 6347 并将存储库检出到新的 干净 文件
  • 如何以编程方式在 vs 2008 中创建新的空白解决方案?

    基于设计的方法是 新建项目 gt 其他项目类型 gt Visual Studio 解决方案 gt 空白解决方案 我必须在 C 中以编程方式创建一个空白解决方案 并在此解决方案中添加新的空项目和文件 我在网上找到了很多使用 DTE 的代码 但
  • 要发布哪些运行时库?

    我使用 Visual Studio 2008 进行 C C 工作 我相信我并不关心我的代码使用了哪些运行时库 因为我有开发人员设置 但是 当交付可执行文件时 所使用的运行时库也需要一起交付 我对吗 如果是 我如何确定实际使用了哪些共享库 或
  • 如何在 WIX 中引用用户的主目录

    我正在为 SDK 创建一个安装程序 其中包括由最终用户编译的源代码 我希望我的 Wix 安装程序默认将其放入用户的主目录中 但我找不到要使用的正确属性名称 您还可以参考HOMEPATH环境变量与 HOMEPATH 有关用于属性的语法的更多详
  • Burn in WiX 3.6 如何将 MSI 文件捆绑到 .exe 中?

    我有兴趣了解 WiX 如何捆绑使用 Burn 创建的 EXE 文件 我知道创建一个自解压 EXE 文件非常简单 我已经完成了一百万次了WinRAR http en wikipedia org wiki WinRAR EXE 文件解压到哪个目
  • 如何使用 WiX 卸载时终止进程

    我正在使用 Wix 创建 msi 安装文件 当我卸载应用程序时 它仍然在工作 并且我可以在任务管理器中看到它 我已经尝试过自定义操作的延迟执行 如 Wix 文档中所述 https wixtoolset org documentation m
  • 将构建参数传递给 .wxs 文件以动态构建 wix 安装程序

    我是一名学生开发人员 我已经为我现在工作的公司构建了几个安装程序 所以我对WIX还是比较熟悉的 我们最近决定拥有一个构建服务器来自动构建我们的解决方案 它构建调试和发布以及混淆 和非混淆 项目 你真的不需要理解这些 您需要了解的是 我有相同
  • Visual Studio 中是否有“便笺本”窗口

    我目前使用记事本来存储有关我的代码的小注释 这通常是代码和需求的混合 VS 中是否有一个 便签本 类型的窗口 我可以在其中执行此操作 另一种选择是在源文件中使用代码注释块 但这并不是我想要的 尝试添加便签 http www davidhay
  • 如何使用 Wix 运行 sql 脚本创建数据库

    我在使用 Wix 创建数据库时遇到问题 我能找到的示例 参见下面的链接 都是首先使用 wix 创建数据库并运行创建表 sql 脚本 问题是我需要将 wix 设置为使用 CREATE DATABASE 运行 sql 脚本来创建数据库和表 而不
  • 为什么VS2008中的断点会停止工作?

    我有一个 C asp net 网络应用程序 数据库层中的断点不再停止执行 但 UI 层中的断点仍然可以正常工作 任何人都可以猜测为什么会发生这种情况吗 我已经检查了所有常见的嫌疑点 所有项目都启用了调试构建 并重新编译了解决方案中的所有项目
  • 如何构建 Office 加载项而不在构建系统上注册?

    我们正在使用 Visual Studio 2008 构建 Office 2007 加载项 我们的构建是通过持续集成服务器 一台机器 执行的 每当我们签入更改或手动请求更改时 该服务器都会进行构建 服务器可以执行同时构建 我们注意到 当 Vi
  • 如何避免用户帐户控制或在Win7中始终以管理员模式运行Windows应用程序

    在 WinForms 应用程序中 当我的应用程序启动时 将出现 用户帐户控制 对话框 仅在 Windows 7 中 任何人都可以建议我如何以编程方式避免这种情况 也就是说我的应用程序应该始终以管理模式启动 或者是否有任何选项可以阻止此对话框
  • 选择合适的IDE

    您会推荐使用以下哪种 IDE 语言来在 Windows 下开发涉及识别手势并与操作系统交互的项目 我将使用 OpenCV 库来执行图像处理任务 之后 我将使用 win32 API 或 NET 框架与操作系统交互 具体取决于您建议的工具 性能
  • 在 WiX 文件中,Name="SourceDir" 指的是什么?

    WiX 文件似乎总是包含这一行
  • 可以让 ReSharper 在 Intellisense 中显示异常吗?

    我很喜欢 ReSharper 提供的重写智能感知行为 但是 我似乎无法让它显示异常 任何带有
  • 警告 LGHT1076:ICE91:文件“doc_code_file1”将安装到每个用户目录“code_Simple”

    即使我添加了注册表值设置 它给出以下警告 warning LGHT1076 ICE91 The file doc code file1 will be installed to the per user directory code Sim
  • Wix 为整个树生成单个组件 id

    我是一个几乎没有 wix 经验的人 我正在努力支持 Windows 以及我负责的组件 我正在尝试为我的产品生成的一组文件创建合并模块 这些文件存在于许多子目录中 我想知道如何为整个树中的所有文件创建一个组件 ID 我不担心小的升级 因为那是
  • 安装后 Windows 服务未出现在服务列表中

    我使用 Visual Studio 2008 用 C 创建了一个 Windows 服务 我几乎遵循了这个 http www codeproject com KB dotnet simplewindowsservice aspx http w
  • 如何在自定义操作期间移动进度条

    在安装程序中运行自定义操作时 没有进度条 我们正在使用立即 C 管理代码自定义操作 运行自定义操作时是否有其他方法显示进度 预先致谢 维卢 使用 ProgressText 元素 模板 属性是放置标记以反映进度的地方 例如 请参阅标准 Ins
  • Gridview 错误:对 Bind 的调用格式不正确

    我有以下 gridview 代码

随机推荐