3

devenv.exe を起動して他のソリューションをビルドしようとする Visual Studio パッケージを作成しています。ビルドの出力をリアルタイムで取得する必要があるため、ユーザーはビルドの進行状況 (出力) を確認できますが、その方法がわかりません。可能であれば。

私はそのように試しました:

            string rebuildLog = string.Empty;
            string logFileName = System.IO.Path.GetTempFileName();

            System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
            psi.FileName = @"devenv.exe";
            psi.Arguments = "\"" + config.DmsPath + "\"" + @" /rebuild" + " Release|x64 " +" /out " + logFileName;

            System.Diagnostics.Process process = new System.Diagnostics.Process();
            process.StartInfo = psi;
            process.StartInfo.RedirectStandardOutput = true;
            process.StartInfo.UseShellExecute = false;

            process.Start();

            while (!process.StandardOutput.EndOfStream)
            {
                string line = process.StandardOutput.ReadLine();
                MessageBox.Show(line); // just to see if it works. It should go to log form
            }


            rebuildLog = GetRebuildLog(logFileName);

そして、rebuildLog には出力があります。

誰でも助けることができますか?

4

1 に答える 1

10

答えが見つかりました。devenv.exe は単純なコンソール出力を書き込まないため、変更する必要がありました

psi.FileName = @"devenv.exe"; to psi.FileName = @"devenv.com " ; そしてそれはうまくいきました。

于 2012-10-26T14:00:04.810 に答える