新手问题,让我尽量让它尽可能清楚。我有一个程序,需要静默执行一个msi包(好多个,但这不是问题)
MSI包包含在与我的程序位于同一目录中的文件夹中。我暂时给它一个简单的名称“InstallFiles”。
我并不热衷于使用完整路径名称,例如。 C:\我的程序\另一个目录\另一个目录等,因为它将被放在多个PC上,无论新旧,在这种情况下,驱动器号可以更改。到目前为止,我有:
install.StartInfo.FileName = "msiexec";
install.StartInfo.Arguments = "/i F:\\InstallFiles\\JRE.msi";
install.Start();
install.WaitForExit();
然而,当它启动它时它只给我Windows Installer开关信息然后终止,我该如何让它运行?我将如何改变文件路径?
答案 0 :(得分:1)
执行.msi文件应该像.exe文件,这是你的答案:https://stackoverflow.com/a/12436300/359170
使用以下代码启动应用程序:
Process.Start("yourfile.msi");
并且它不需要完整路径,它会将当前目录添加到您在那里写的文件名。
但是
System.IO.Directory.GetCurrentDirectory();
获取当前执行的文件目录。你可以通过像这样添加文件名来获取文件路径:
string path = System.IO.Directory.GetCurrentDirectory() + "\\yourfile.msi";
答案 1 :(得分:1)
使用以下开关:
/ Q [N | B | - [R | F]
Sets user interface level
n - No UI
b - Basic UI
r - Reduced UI
检查http://msdn.microsoft.com/en-us/library/windows/desktop/aa367988%28v=vs.85%29.aspx以获取详细的命令行选项。