在Process.start中指定命令行参数

时间:2014-08-24 10:21:34

标签: c# installer windows-installer process.start

我正在尝试在C#中编写一个Windows应用程序 - 用户选择一个MSI文件和一个实例名称,然后单击“运行安装程序”按钮.......将使用该实例调用MSI文件将名称作为参数。

所以基本上生成的命令看起来像:

msiexec  /i "E:\Local Profile\Desktop\BranchBankingConnectorSetup.msi" MSINEINSTANCE=1 TRANSFORMS=:Instance1

问题是.....我第一次运行安装程序后,安装了分支银行连接器的实例1 .....如果我尝试再次运行实例2 - 程序仍然会出现实例1的安装程序。

这是我的代码:

System.Diagnostics.Process p  = new System.Diagnostics.Process();
p.StartInfo.FileName = "e:\\command.bat";
p.StartInfo.UseShellExecute = false;
p.Start();

文件e:\ command.bat包含上述提及命令,首先使用所选实例编号更新此文件,然后调用。

2 个答案:

答案 0 :(得分:0)

不要使用批处理文件
你可以在StartInfo中传递参数

System.Diagnostics.Process p  = new System.Diagnostics.Process();
p.StartInfo.FileName = "msiexec.exe"; //You better provide a full path here
p.StatInfo.Arguments = " /i \"E:\\Local Profile\\Desktop\\BranchBankingConnectorSetup.msi\" MSINEINSTANCE=1 TRANSFORMS=:Instance1";
p.StartInfo.UseShellExecute = false;
p.Start();

答案 1 :(得分:0)

试试这个

p.StatInfo.Arguments = "required arguments"