安静地执行从C#中的MSI包(silently execute a MSI package from

2019-07-31 15:00发布

新手的问题,让我试试,使这个尽可能明确。 我有一个需要安静地执行MSI包的程序(以及多,但是这不是问题)

MSI包包含位于同一目录作为我的程序文件夹中。 我已经给它“InstallFiles”暂时的一个简单的名字。

我并不热衷于使用完整如路径名。 C:\我的程序\其他目录\另一个目录等等,因为它会在多台电脑,新与旧,被放置在这种情况下,驱动器盘符会发生变化。 到目前为止,我有:

install.StartInfo.FileName = "msiexec";
install.StartInfo.Arguments = "/i F:\\InstallFiles\\JRE.msi";
install.Start();
install.WaitForExit();

然而,当它推出了只给我的Windows安装程序切换的信息,然后终止,我怎么得到它的运行,我将如何去改变文件路径?

Answer 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";


Answer 2:

用下面的开关使用:

/ 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详细的命令行选项。



文章来源: silently execute a MSI package from C#