在WPF中检测卸载事件

myss37ts  于 2023-10-22  发布在  其他
关注(0)|答案(1)|浏览(162)

我试图创建一个示例的WPF应用程序,将执行一些任务时,应用程序被禁用。我找不到任何可以在应用程序被禁用时触发的事件。
我尝试使用这个示例代码,

public App()
{
    PackageCatalog pk = PackageCatalog.OpenForCurrentPackage();
    pk.PackageUninstalling += PackageUninstalling;
}

private void PackageUninstalling(PackageCatalog sender, PackageUninstallingEventArgs args)
{
    // Do something here
}

但这会导致System.InvalidOperationException错误,
System.InvalidOperationException:'进程没有包标识。(HRESULT中的异常:0x80073D54)“

**编辑:**应用程序与Windows应用程序打包项目打包。
Edit2:发现问题,原因是应用未打包。 Package 后,问题就解决了。感谢mm8但是我在卸载过程中找不到任何卸载事件。

fbcarpbf

fbcarpbf1#

您必须运行实际的Windows应用程序打包项目,而不是应用程序项目。未打包的应用没有包标识。
要检测卸载,您可以使用desktop6:UninstallAction包扩展,该扩展需要customInstallActions受限功能,并指定用户卸载应用时要运行的安装程序文件。
据我所知,没有其他方法可以让一个关闭的应用程序检测到这一点。

相关问题