2014-10-01 96 views
1

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

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

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

我可以通过添加RegistryValue元素来解决这个错误每个组件,但在演示项目至少有1000个文件。

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

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

回答

2

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

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

+0

我喜欢压缩文件的想法。它会减少有关演示无法正常工作的支持请求......因为用户改变了它。 (过去,我已经将演示安装在只读位置。)重置回原始示例,重新启动成功路径。 (当然,源代码控制也可以。) – 2014-10-02 01:04:58

+0

感谢PhilDW的反馈。我今天早些时候注意到,WiX允许在安装包后执行命令。也许我可以将zip与应用程序捆绑在一起,然后将其解压到用户的Documents目录中。这可能会消除必须处理注册表。 – MrMcKizzle 2014-10-02 03:48:50

相关问题