如何使用MSI.DLL以编程方式安装.msi文件并提供中止/取消?

时间:2011-07-19 13:32:03

标签: c# .net interop windows-installer

为了在通过下载的.msi文件更新应用程序时提供自定义更友好的UI,我必须提供一个自定义(WPF,如果它很重要)窗口,它将通过调用MSI.DLL来复制msiexec正在做的事情。通过互操作的功能。

最初,这是对下载的.msi文件的一个简单的msiexec调用,如果它能保持这么简单就会很好。

我还需要像msiexec一样提供取消功能。

通过MSI.DLL函数以编程方式启动/停止/中止的正确方法是什么?

(我所做的是查看不同的MSI Interop实现,包括WiX,但不能轻易识别API来执行此操作)。

2 个答案:

答案 0 :(得分:1)

这就是MSI所谓的“外部UI处理程序”。有关详细信息,请参阅MSI SDK,例如“使用MsiSetExternalUI监视安装。”

答案 1 :(得分:0)

谢谢大家,阅读你发布的内容是一次有趣的学习经历。

然而事实证明我没有在StackOverflow上挖掘得足够多,我的问题已经发布并在这里回答:

How to interactive a silently installing msi? (Progress data and cancel it)