MSI不在C#内运行
我试图使用Proces.Start方法从C#运行MSI文件。 MSI文件很好,因为我可以正常运行,但是当我尝试在某些C#代码中运行MSI文件时,我收到以下错误。
“无法打开此安装包。validation包是否存在,以及您是否可以访问它,或联系应用程序供应商以validation这是否是有效的Windows安装程序包”
下面是我用来运行MSI文件的代码……
Process p = Process.StartApplication.StartupPath "/Packages/Name.msi"); p.WaitForExit();
我该如何解决这个问题?
好的,我现在明白了。 我刚刚更改它以运行使用MSI文件生成的setup.exe文件,而不是运行MSI文件…
msi文件无法自行运行。 如果双击它们,Windows将启动
msiexec /i PathToYour.msi
你有没有明确地这样做?
示例:(礼貌@Webleeuw)
Process p = new Process(); p.StartInfo.FileName = "msiexec"; p.StartInfo.Arguments = "/i PathToYour.msi"; p.Start();
除了质疑海报对本杰明回答的评论:
Process p = new Process(); p.StartInfo.FileName = "msiexec"; p.StartInfo.Arguments = "/i PathToYour.msi"; p.Start();
也可以直接使用关联的应用程序执行.msi文件。 将UseShellExecute
设置为true
时会发生这种情况:
Process.Start(new ProcessStartInfo() { FileName = @"c:\somepath\mySetup.msi", UseShellExecute = true });