使用MsiSetExternalUI安装MSI vb.net

时间:2013-07-30 10:37:14

标签: progress-bar windows-installer vb.net-2010

我正在尝试创建一个vb.net项目,它将调用多个msi来安装。

我已经能够使用

执行此操作
Program.StartInfo.FileName = "C:Windows\System32\msiexec.exe"
Program.StartInfo.Arguments = "/i  MsiName.msi /qb”
Program.Start()
Program.WaitForExit()

这有效但我希望能够使用该表单显示与我认为使用MsiSetExternalUI并能够将退出代码传递给exe的安装进度相关的进度条。

我不知道如何以这种方式调用msi。任何人都可以帮助代码调用一个msi并传递这些信息,以便我可以在表单上显示它吗?

感谢您的帮助。

更新

我可以找到一些C ++示例和编码,但遗憾的是我对脚本编写起来相对较新,所以我不知道如何将C ++转换为VB.net,因此非常感谢编写此过程的任何帮助。

1 个答案:

答案 0 :(得分:0)

查看Windows Installer XML(Wix)部署工具框架(DTF)MSI互操作库(Microsoft.Deployment.WindowsInstaller.dll)它包含调用安装所需的所有部分,并提供外部UI处理程序来接收ProgressBar更新消息,然后您可以将其路由到VB.Net UI。

有关详细信息,请参阅以下主题和子主题:

Monitoring an Installation Using MsiSetExternalUI

示例在C ++中使用MSI Win32函数,DTF互操作库使用类封装所有这些。 DTF帮助文件告诉您哪些类和方法映射到哪个Win32函数。