2011-07-19 51 views
0

爲了在通過下載的.msi文件更新應用程序時提供定製的更友好的用戶界面,我必須提供一個自定義(如果它很重要)的自定義窗口,它將依次調用msiexec通過調用MSI.DLL函數通過互操作。如何使用MSI.DLL以編程方式安裝.msi文件並提供中止/取消?

最初,它是一個簡單的msiexec調用下載的.msi文件,它會很好,如果它可以保持這種簡單。

我還需要提供取消功能,就像msiexec一樣。

通過MSI.DLL函數以編程方式啓動/停止/終止此操作的正確方法是什麼? (我所做的是看不同的MSI Interop實現,包括WiX,但不能輕易識別API來做到這一點)。

+0

你看了'MsiEndTransaction'功能? http://msdn.microsoft.com/en-us/library/bb736318(v=VS.85).aspx這是一個LINQ到MSI的帖子,您可以根據自己的需要進行調整(它比啓動msiexec進程):http://bartdesmet.net/blogs/bart/archive/2008/06/13/linq-to-msi-part-1-interop.aspx –

+0

檢查出WiX的新的刻錄功能... http ://robmensching.com/blog/posts/2010/9/6/Burn-baby.-Burn –

回答

1

這就是MSI所稱的「外部UI處理程序」。有關詳細信息,請參閱MSI SDK,例如「使用MsiSetExternalUI監視安裝」。

相關問題