InstallShield:卸载程序未删除所有文件夹
我正在使用 Installshield 2010。我进行了基本的 MSI 设置,但在卸载时遇到问题。
卸载不会删除所有文件夹。
完成安装后,我卸载后却发现仍然有剩余的路径。
例如,C:\ProgramFiles\CompanyName\Account\User_1234.xml
仍然存在,而其他一切都消失了。
User_1234.xml
文件由应用程序生成,该文件通常不会出现在安装过程中。因此,为什么这个文件在删除它时可能会遇到一些问题(安装程序端),这是有道理的。
同时,我认为它会被删除,因为它位于 CompanyName
文件夹中。
有什么方法可以指定删除其中的所有内容(包括 CompanyName
文件夹)?
感谢您的任何想法。
I am using Installshield 2010. I made a basic MSI setup, and I am having a problem with uninstalling.
Uninstalling does not remove all folders.
After a complete install, I then uninstall only to find that there is still a path leftover.
For example, C:\ProgramFiles\CompanyName\Account\User_1234.xml
still remains, while everything else is gone.
The User_1234.xml
file is generated by the application, and this file is not normally in the install process. So it makes sense why this file may have some problems getting rid of it (installer side).
At the same time, I would think that it would be removed due to the fact that it is within the CompanyName
folder.
Is there any way to specify to get rid of everything inside and including the CompanyName
folder?
Thanks for any ideas.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您有几个问题,我将首先解决明显的问题。是的,Windows Installer 默认行为是不删除用户数据。这可能是安装程序未安装的文件,也可能是安装程序修改后已修改的文件。要让安装程序删除它们,您必须创建RemoveFiles 表来指示它要删除哪些文件。
删除文件表(Windows Installer)
现在我'将解决不太明显的问题。您不应期望应用程序能够在运行时写入 ProgramFiles。我不知道你的软件是做什么的,但你应该认真考虑应用程序设计的这个方面。
You have a couple problems and I'll address the obvious one first. Yes, Windows Installer default behavior is to not delete user data. This could be files not installed by the installer or files that were modified since the installer modified them. To get the installer to remove them, you must author the RemoveFiles table to teach it which files to remove.
Remove Files Table (Windows Installer)
Now I'll address the less obvious problem. You shouldn't expect your application to be able to write to ProgramFiles at runtime. I don't know what your software does but you should seriously consider this aspect of your application design.