2

初心者の質問ですが、これをできるだけ明確にしてみましょう。msiパッケージをサイレントに実行する必要があるプログラムがあります(複数ありますが、それは問題ではありません)

MSIパッケージは、私のプログラムと同じディレクトリにあるフォルダに含まれています。とりあえず「InstallFiles」という簡単な名前を付けました。

私はフルパス名を使用することに熱心ではありません。C:\ my program \ another directory \ another directoryなど。古いものと新しいものの複数のPCに配置されるため、ドライブ文字が変更される可能性があります。これまでのところ:

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

ただし、起動すると、Windowsインストーラーのスイッチ情報のみが表示されて終了します。実行するにはどうすればよいですか。また、ファイルパスを変更するにはどうすればよいですか。

4

2 に答える 2

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を確認してください。

于 2012-09-16T15:37:43.827 に答える
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";
于 2012-09-16T15:36:22.980 に答える