wix - 使用 WiX,如何根据安装时可用的内容将单个文件安装到(可能)多个子目录?

标签 wix windows-installer

我正在使用 WiX,并想知道获取文件并将其安装到特定位置的每个可用子目录所需的 .wxs。这可能意味着 0 个或多个最终安装位置,在安装时根据当前存在的目录结构确定。例如,如果我开始安装:

\target
 \subdir-1
 \subdir-2

然后在安装结束时,我的文件将位于\subdir-1 和\subdir-2 中。另一方面,如果安装开始时这些目录在系统上不存在,则根本不会安装我的文件,也不会创建子目录。

最佳答案

Afaik 这在 WiX 中是不可能的(因为将组件安装到多个位置基本上违反了 MSI 的性质)。

你也可以

  • 为每个子文件夹创建不同的组件,或
  • 使用自定义操作将组件复制到所有子文件夹。

  • 在后一种情况下,您还应该为卸载提供相应的 CA,它会再次从子文件夹中删除所有文件。

    编辑:似乎我上面的答案不完全正确。 MSI 支持使用 DuplicateFile 复制文件表和 WiX 3.0 还提供了一种称为 "smart cabbing" 的机制。 .两者都在 blog post 中提到亚伦·斯特布纳 (Aaron Stebner)。

    关于wix - 使用 WiX,如何根据安装时可用的内容将单个文件安装到(可能)多个子目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/736041/

    相关文章:

    java - 安装程序生成器 API 或使用命令行应用程序?

    windows-vista - 在 Vista 上的 Windows Installer 中将 UAC 设为可选

    wix - 如何在 64 位操作系统上只安装一次产品?

    wix - 如何从 UI WixUI_Minimal 内置的 Wix 安装程序中删除许可证对话框

    wix - 为 Visual Studio 11 注册加载项、项目模板和项模板

    WIX - 在已安装文件夹内创建卸载快捷方式

    wix - 产品版本显示在 WIX 制作的 MSI 文件属性中?

    windows - 如何从命令行提取.msi功能?

    batch-file - 用于安装 MSI 的批处理脚本

    windows - 在 MSI 包中设置 UI 级别