从外部 C# 函数回滚 msi 安装程序的执行

Rollback the execution of a msi installer from an external C# function

我在 C# winforms 中有一个程序可以按顺序启动一些安装程序或捆绑包。我想实现一个按钮来取消和回滚当前安装程序的执行(就像用户按下取消按钮时一样)然后回滚所有以前安装程序的执行。

可以吗?

您可能需要查看 Windows 安装程序 XML (WiX) 刻录引导程序。您可以编写一个自定义引导程序应用程序来驱动 UI 以安装您的捆绑包。它还具有用于围绕您的包裹放置事务并能够回滚它们的模式。

如果您想做现在正在做的事情,您需要将自己注册为 MSI 的外部 UI 处理程序,然后使用 MSI API 取消安装并调用回滚.