【问题标题】:WiX MSI: Bundle a Demo Project with InstallerWiX MSI:将演示项目与安装程序捆绑在一起
【发布时间】:2014-10-01 03:10:26
【问题描述】:

我正在尝试将演示项目与应用程序的 WiX MSI 安装程序捆绑在一起。我的目标是在用户的 Documents 目录中创建一个包含“Demo Project”文件夹的“Projects”文件夹。

由于我的安装范围是“perMachine”,因此将文件添加到用户目录会导致每个文件出现以下错误:

It must use a registry key under HKCU as its KeyPath, not a file

我可以通过将 RegistryValue 元素添加到每个组件来修复此错误,但演示项目至少有 1000 个文件。

我正在考虑为演示项目创建另一个安装程序,该安装程序将具有“perUser”安装范围,然后将其捆绑到 WiX 引导程序中。唯一的缺点是它感觉像一个黑客。

在为应用程序安装补充材料时,推荐的方法是什么?我应该构建另一个安装程序还是有一个 WiX 扩展允许我将文件复制到用户的文档目录?

【问题讨论】:

    标签: wix


    【解决方案1】:

    因为它是一个演示项目,并且对您的应用程序并不重要,所以一种方法是将其压缩并将该单个 zip 文件作为组件。在您的每文件组件案例中,演示项目的潜在问题是用户将开始以某种方式摆弄演示,最终将提示 Windows Installer 修复它。如果项目是客户使用开发工具打开并开始更改的项目,则尤其如此。您不希望与修复的演示交互影响您正在运行的应用程序。

    没有将文件复制到用户文件夹的 WiX 或 MSI 方法,因为这实际上是注册表键路径的用途。它还具有为尚未创建的用户帐户工作的优势。当另一个用户登录并使用应用程序时,Windows 注意到该用户缺少密钥路径,并提示从原始安装源安装密钥路径组件(文件)。

    【讨论】:

    • 我喜欢 zip 文件的想法。它将减少有关演示不起作用的支持电话......因为用户更改了它。 (过去,我在只读位置安装了演示。)重新回到原始示例,重新开始通往成功的道路。 (当然,源代码管理也会这样做。)
    • 感谢 PhilDW 的反馈。我今天早些时候注意到,WiX 允许在安装软件包后执行命令。也许我可以将 zip 与应用程序捆绑在一起,然后将其解压缩到用户的 Documents 目录中。这可能会消除与注册表打交道的麻烦。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-22
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多