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 问题 的相关文章

  • 验证服务是否被标记为删除

    有时 当我卸载安装程序 使用 WIX 创建的 时 服务仍标记为删除 用户必须重新启动计算机才能再次安装 我如何验证该服务是否已标记为删除并告诉用户在进行其他安装之前重新启动计算机 一般来说 当某项服务仍然锁定在该服务上 从而阻止 Windo
  • WiX:数字签名 BootStrapper 项目

    我有一个项目 我为其构建了 WiX msi 文件 我还有一个 WiX 引导程序 exe 文件 用于检查 C 2005 是否存在 如果未找到则安装它 然后安装 msi 软件包 我的项目包括作为 msm 文件的 Crystal Reports
  • 调试错误“类型‘xx’是在未引用的程序集中定义的”

    完整错误如下 方式 System Windows Forms Control 是 在程序集中定义的不是 参考 您必须添加参考 组装 System Windows Forms 版本 2 0 0 0 文化 中立 PublicKeyToken b
  • 警告 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
  • Visual Studio 2008 在构建解决方案时跳过项目

    我最近在Win2k8R2机器上安装了VS2008并打开了一个VS2005项目 C 成功转换到 VS2008 后 我尝试在调试 x64 模式下构建项目 但该项目正在被跳过 我尝试了 清理 和 重建 但这些也被跳过 我能够在调试 win32 模
  • 为什么不推荐使用本机 Visual C++ 中的事件处理?

    http msdn microsoft com en us library ee2k0a7d aspx http msdn microsoft com en us library ee2k0a7d aspx 还支持事件处理 本机 C 类 C
  • 我可以将特定警告视为错误吗?

    以下是我有时在学生代码中看到的模式的简化版本 bool foobar int a int b if a lt b return true 当然 真正的代码要复杂得多 Visual Studio 报告警告 C4715 并非所有控制路径都会返回
  • 如何从 Visual Studio 以调试模式运行 NUnit?

    我最近正在为我一直在研究的一些 C 构建一个测试框架 我在工作区中设置了 NUnit 和一个新项目来测试该组件 如果我从 Nunit v2 4 加载单元测试 一切都会很好 但我已经到了在调试模式下运行并设置一些断点非常有用的地步 我已经尝试
  • OpenCV 2.4.3rc 和 CUDA 4.2:“OpenCV 错误:没有 GPU 支持”

    我在这张专辑中上传了几张截图 https i stack imgur com TELST jpg https i stack imgur com TELST jpg 我正在尝试在 Visual Studio 2008 中的 OpenCV 中
  • 如何更改 Visual Studio 的默认 Web 浏览器?

    这是针对未锚定到 aspx 文件的 Silverlight 项目的 因此右键单击等有点不可能 有任何想法吗 Edit 添加 html 文件 然后单击它 真是蠢啊 上次我问问题是凌晨三点 为什么右键单击不可行 至少对于任何 HTML 文档 即
  • WiX - 提交多个属性以推迟自定义操作

    我的 WiX 安装程序在处理延迟 立即自定义操作时遇到问题 请原谅我的英语 我想将用户输入的一些属性交给延迟的自定义操作 我知道我需要立即自定义操作和 CustomActionData 来执行此操作 我就是这样实现的 二进制
  • 使用 Visual Studio 复制文件?

    我想创建一个 Visual Studio 我正在使用 VSTS 2008 项目 它只执行文件复制工作 更详细地说 我将向该项目添加一些文件 并将该项目复制文件 包含在该项目中 到某个目标位置我构建该项目 有什么想法如何在 VSTS 中做到这
  • Wix 安装结束后添加多个复选框

    我的 C 应用程序有一个设置 在设置结束时 我添加了一个建议启动应用程序的复选框 效果很好 但我无法添加第二个复选框来提议启动可选安装程序 有我的代码
  • Visual Studio 属性页环境变量

    如果右键单击解决方案资源管理器中的项目并转到常规 gt 调试 则会有一个环境部分 您应该能够使用语法 NAME VALUE 设置环境变量 我的问题是 如果我尝试在那里创建一个新的环境变量 它似乎实际上不起作用或无法设置 有人对这个有经验么
  • WiX 自定义操作项目 - BadImageFormatException

    我正在开发我的第一个自定义操作 但无法加载生成的 CA dll 文件 这是最简单的过程和结果 我创建了一个自定义操作项目并保留所有默认值 该类看起来像这样 using Microsoft Deployment WindowsInstalle
  • “应用程序无法正确启动(0xc000007b)。单击“确定”关闭应用程序。”

    当我尝试打开 Visual Studio 2010 时 我在运行 Windows Server 2008 R2 Enterprise SP1 的 VPS 上收到标题中的错误消息 即使在我安装了 SQL Server 2012 和 VS 20
  • 将引导程序与 MSI ui 一起使用

    我有可以安装的 MSI 文件 它包含一个定制的 UI 还收集用户的数据 作为安装的一部分 如果缺少的话我想安装以下内容 Net框架4 0 Microsoft Visual C 2010 可再发行组件包 x64 据我所知 引导程序也应该包含
  • 为什么 Assembly.GetManifestResourceStream() 中的文本以三个垃圾字符开头?

    我有一个 SQL 文件作为嵌入式资源添加到我的 VS NET 2008 项目中 每当我使用以下代码读取文件的内容时 返回的字符串总是以三个垃圾字符开头 然后是我期望的文本 我认为这与我正在使用的 Encoding Default 有关 但这
  • 如何查明已安装哪些产品 - 已安装较新的产品 MSI windows

    我可以通过 WIX 创建 MSI gt 我们将其安装在 IIS 上 发生了什么 我们已经在 1 8 上安装了某个版本的应用程序 然后我们安装了 99 0 版本只是为了测试目的 然后我们卸载了这个 99 版本 然后我尝试安装其他版本并获得 已
  • 良好的 WiX 编辑器 [重复]

    这个问题在这里已经有答案了 我目前正在开发一个使用 WiX 创建 MSI 的项目 我过去在 Sourceforge 上使用 WiXEdit 来管理包含在 WiX 项目中的文件 因为它比直接操作 XML 稍微容易一些 但它仍然有点笨重 有谁知

随机推荐