我改写了OnBeforeUninstall
来阻止我的应用程序的安装项目在某些情况下被卸载,但似乎只是没有被调用并且没有效果。
protected override void OnBeforeUninstall(IDictionary savedState)
{
if (ApplicationIsBusy())
throw new ApplicationException("Prevent uninstall while application busy.");
}
我可以通过覆盖
Uninstall
方法来取消卸载,但是到那时安装项目已经关闭了我的应用程序。当我的应用程序忙于安装项目,然后在运行时尝试关闭它并中断我的工作进程之前,如何“失败”卸载尝试? 最佳答案
在调用自定义代码之前,请调用base.OnBeforeUninstall(savedState),以便已注册的委托接收事件,从而允许您的自定义代码在卸载之前执行。
protected override void OnBeforeUninstall(IDictionary savedState)
{
// Add this
base.OnBeforeUninstall(savedState);
if (ApplicationIsBusy())
throw new ApplicationException("Prevent uninstall while application busy.");
}