System.Process.Start - 运行msi问题

1 vb.net

当我尝试在vb应用程序中使用System.Process.Start("test.msi")运行msi时,我收到以下错误.

无法打开安装包.联系应用供应商......

双击时,Msi文件工作正常,尝试使用文本文件和exe文件的System.Process.Start,它们工作正常,只有msi才有问题

文件.运行远景.也试过xp但没有运气

谢谢

Col*_*ard 5

如果你有一个带有msi的setup.exe,那就改用它.否则,请使用以下代码:

Process p = new Process();
p.StartInfo.FileName = "msiexec";
p.StartInfo.Arguments = "/i PathToYour.msi";
p.Start();
Run Code Online (Sandbox Code Playgroud)

(从这里:MSI不在C#内运行)

需要这样做的原因是当你这样做时System.Process.Start("file.txt")它会工作,因为它是(某种)调用notepad.exe %1哪个适用于文本文件但msiexec %1不适用于msi,因为msiexec有一个必需参数(选项).

您可以通过在命令行上尝试msiexec file.msi来自行测试 - 它将为您提供以下有用的消息:

msi没有选项