InstallShield使用RemoveFile删除最初未在卸载时安装的文件

时间:2011-08-30 14:48:00

标签: windows-installer installshield installshield-2009

首先,我知道在SO上有类似的问题,但我还没有看到任何适合我的问题的答案。

InstallShield 2009安装我的程序,我的程序创建一个ini文件。当程序卸载时,它会离开ini(因为它不在原始安装中)。我尝试在直接编辑器中使用RemoveFile。我给了它属性,正确的安装模式,但我不知道“组件”是什么,或者我应该用它做什么。我已经挖掘了每个InstallShield帮助文件并在线查看,但描述“组件”的所有内容都非常模糊。调试器不会抛出任何与RemoveFile相关的错误或警告,但是当我运行新的卸载程序时,该文件仍然存在。我几天来一直在努力解决这个问题,并在RemoveFile中尝试了各种各样的事情无济于事!

简单地说......我只想删除位于安装可执行文件的安装目录中的ini。什么是最简单的方法,什么是“组件”?

1 个答案:

答案 0 :(得分:2)

Windows Installer需要该组件来检测是否完全处理“removefile指令”。我引用那个词是因为没有这样的术语,实际上 - 这只是为了便于解释。

因此,如果组件计划安装(包含在正在安装的功能中,条件解析为true),并且InstallMode是“在安装时删除或两者都有”,Windows Installer将尝试查找您的文件在位于DirProperty中的FileName中指定,并尝试将其删除。

如果计划卸载组件,并且InstallMode是“卸载时删除或两者兼而有之”,则相同的逻辑将在卸载时起作用。

如果不安装/卸载组件(例如,正在安装另一个功能或条件为false),Windows Installer将忽略“removefile指令”。

希望现在更有意义。