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