WIX:在安装期间使用临时文件

mad*_*ger 7 binary custom-action wix temporary-files

我正在编写一个WIX安装程序,我有以下要求:
在安装过程中,我需要将一个绝对路径传递给我的安装程序中包含的文件(让我们称之为A)到COM组件,该组件已经存在于硬盘驱动器上并且是另一个程序的一部分.我已经编写了一个适当的自定义操作,它需要一个文件A的路径.我不想将A作为安装在Program Files文件夹中的文件包含在卸载过程中并删除.相反,我想将A只临时放在硬盘驱动器上,调用我的自定义操作,这将导致COM组件使用A的内容,然后从磁盘中删除A. 有没有简单的方法来实现这一目标?

我试图利用二进制表并在那里存储A,但是我不知道如何使用绝对路径引用A. 我知道我可以将A放在MSI文件之外,但我想在一个MSI中保留每个文件安装程序的需求.

任何帮助,将不胜感激.

Bob*_*son 8

删除MSI安装的文件意味着MSI会认为它"已损坏"并尝试自动修复它(如果需要这样做).这种情况会在几种情况下自动发生(例如,广告的快捷方式和COM注册),所以我建议不要这样做.把文件留在那里 - 它完成了它的工作,将它留在那里是没有害处的.


Sco*_*ger 7

我会采取这种方法.

将文件"A"安装到任何目录中.运行更新COM组件所需的自定义操作.然后运行另一个自定义操作或修改当前写入的操作以在文件不再使用后删除该文件.这将不会留下文件"A"的痕迹,如果您安排自定义操作仅在安装期间运行,则您不必担心卸载.

  • 不,卸载时不会出错.如果卸载程序没有看到文件,它就会被它吹掉. (2认同)