【发布时间】:2012-11-13 18:17:49
【问题描述】:
我正在开发一个 C# windows 服务 + UI 应用程序。
我有一个问题,如果在卸载过程中用户试图启动 UI,那么卸载会损坏并卡住(因为 ui 持有一些文件的句柄并防止它们被删除)。
处理这种情况的最佳方法是什么?我想也许我应该在开始卸载过程时限制对 .exe 的访问,这样用户将无法启动它。
但我想知道是否有关于如何做到这一点的 BKM
编辑
应用程序已经安装在客户的机器上,所以我不能对应用程序本身进行任何更改。
我有一个升级安装程序,它可以在卸载过程中执行一些操作。升级安装程序首先卸载应用程序,然后重新安装。我只能将代码添加到升级安装程序,因此我不能使用互斥锁。 谢谢!
【问题讨论】:
-
使用全局互斥标识符,当它不是新的时,退出应用程序。限制 .exe 是一些奇怪的 hack。
-
“处理这种情况的最佳方法是什么?” - 让安装程序发出警告,指出要删除的文件正在使用中。
-
请告诉我们更多关于“卸载”的信息。是自酿的吗?处理锁定/正在使用的文件是一条老路,卸载过程应该可以正确处理这个问题。
-
@spender - 最知名的方法
标签: c# .net uninstallation