我正在尝试创建一个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,因此非常感谢编写此过程的任何帮助。
答案 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函数。