2016-12-21 11 views
0

システムアーキテクチャをチェックし、システムアーキテクチャに基づいて対応するmsiファイルを呼び出す.exeファイルがあります。C# - さらにmsiファイルを呼び出すexeファイルを実行する

私は

Process process = new Process(); 
process.StartInfo.FileName = "my.exe"; 
process.StartInfo.Arguments = "/quiet"; 
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
process.StartInfo.WorkingDirectory = "path//to//exe//directory"; 
Console.WriteLine(process.StartInfo.WorkingDirectory); 
process.Start(); 
process.WaitForExit(); 
以下のコード

exeファイルが呼び出さなっているを使ってC#から、このexeファイルを実行しようとしています。私はアプリケーションログを見ることができ、ログにはエラーはありません。

ただし、msiが起動またはインストールされていません。 同じexeファイルを手動で実行しようとすると、msiがインストールされます。

注:このmy.exeには、同じディレクトリにある他の依存ファイルがあります。

なぜ私は手動でこれを行うことができますが、C#プログラムからmsiをインストールすることができません。

私は管理者モードでVisualStudiosを実行しています。

答えて

0

私はThread.Sleep()を追加した後、これを解決しました。 before "process.WaitForExit()"

+0

これは動作していますが、なぜこれが動作しているのか把握できません。 msiのインストールが開始される前にプロセスが強制終了されたと私は理解しています。しかし、もし私がより詳細なexpalnationを持っていればそれは素晴らしいだろう。 – user2048204

0

管理者として.exe(およびmsi)を実行する必要があります。

ことを確保するために、以下を使用します。また

process.StartInfo.Verb = "runas" 

、あらゆる可能性のあるエラーを参照するには静かな引数を削除し、それを試してみてください。

MSIを呼び出すと「my.exe」がインストールされますか?

+0

My.exeはMSIをインストールすることになっています。 – user2048204

+0

しかし、私は管理者としてVisual Studioを実行しています – user2048204

+0

msiのインストール方法を共有できますか? "l * C:\ mylog.log"を追加できますか? msiexec/i /l * C:\ mylog.logパスとmsiファイルが見つからない "my.exe"については何もできませんか? – Deitools

関連する問題