2016-06-14 6 views
0
  RegistryKey rkey = Registry.LocalMachine; 

      //找到devenv.exe路径 
      RegistryKey rkey1 = rkey.OpenSubKey(REGISTKEY, false); 
      string devenvPath = rkey1.GetValue("").ToString(); 

      ProcessStartInfo startInfo = new ProcessStartInfo(devenvPath); 
      startInfo.Arguments = "/rebuild \"debug|x86\" " + solutionPath; 

      //执行编译过程 
      Process process = new Process(); 
      process.StartInfo = startInfo; 

      try 
      { 
       process.Start(); 
       process.WaitForExit(); 
      } 

質問は「私はコンパイルを成功させるか失敗するか」という質問は、コンパイルは失敗します。しかし、私はそれをどのように知ることができますか?どのように私はコンパイルが成功したか、process.start()とdevenv.exeで失敗したのでしょうか?

+0

あり、それは、Visual Studioと思い –

+0

より直接MSBuildのではなく使用するように/より良い方が簡単ですあなたは私の考えを得ることはできません。devenv.exeやmsbuildに関して、どうすればコンパイルが失敗するのでしょうか?あなたのコードを見せてください。 – SupperLee

+0

正しいツールがあれば、検索エンジンの使い方を知ることができます:http://stackoverflow.com/questions/8072998/how-to-detect-the-status-of-msbuild-from-command-ラインまたはCシャープ –

答えて

0

DevEnv.exeは、ビルドに失敗したときにexitcodeを設定します。単にこの終了コードを読んで、それがゼロでないかどうかを確認してください。そこその特定のトピックに関するStackOverflowの上の多くの疑問がありますが、あなただけ自動的にコンパイルしたい場合は、基本的にあなたが何をする必要があるか

process.WaitForExit(); 
bool isCompilationSuccesful = (process.ExitCode == 0); 
+0

幸いstackoverflow.Itであなたに会うために、それは働いた、ありがとう〜 – SupperLee

関連する問題