我有一个运行自定义操作的安装项目。自定义操作本身使用一些临时文件,这些文件在调用自定义操作之前由安装程序复制。自定义操作完成后,将删除这些文件。
在安装阶段,一切正常。
我的问题是在卸载阶段。调用另一个自定义操作,它还需要访问这些临时文件。我的问题是在卸载阶段如何在计算机上临时复制文件?
提前致谢。
答案 0 :(得分:3)
虽然Cosmin所回答的必须是真的,但他似乎并不知道InstallShield有一个名为Support Files的功能,它已经完成了他描述的所有内容。将一些文件拖到Installation Designer中行为与逻辑|支持文件| Language Independent和InstallShield将自动将它们流式传输到ISSetupFile表中,并对安装期间将文件解压缩到临时目录的自定义操作进行排序,并在最后清理文件。
可以使用[SUPPORTDIR]属性找到这些文件的位置。如果您使用的是延迟自定义操作,那么您将通过CustomActionData属性对此进行序列化。
此外,如果您正在使用DTF自定义操作,您应该知道,如果您使用Content and Copy Always的操作向CA CSPROJ添加内容,那么它将被打包并提取到当前目录以便访问你的代码正在执行。
答案 1 :(得分:1)
Windows Installer不支持临时文件。所以我假设您只是安装一些文件并在安装结束时删除它们。这不是一个好方法,因为对于Windows Installer,它们基本上缺少资源。
临时文件的正确方法是将它们存储在Binary表中,并使用自定义操作在安装开始时提取它们,并在结束时删除它们。多个设置创作工具直接支持此功能。
在您的情况下,您可以尝试这种方法:
这样,卸载自定义操作就可以访问您的文件。