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(); 
      } 

die Frage ist zum Beispiel „Wie kann ich die Kompilierung ist ein Erfolg oder nicht? Konw“ ich einige falsche Briefe schrieb, Kompilieren wird scheitern. Aber wie kann ich das wissen?Wie kann ich wissen, kompilieren ist Erfolg oder mit Process.Start fehlgeschlagen() und Devenv.exe

+0

Wenn Sie nur automatisch kompilieren wollen, ist es besser/einfacher direkt zu verwenden msbuild anstatt Visual Studio –

+0

Ich denke, Du bekommst meine Idee nicht. Egal, devenv.exe oder msbuild, wie kann ich konw kompilieren scheitern? Zeig mir deinen Code. – SupperLee

+0

Sobald Sie die richtigen Werkzeuge haben, ist es eine Frage des Wissens, wie man eine Suchmaschine benutzt: http://stackoverflow.com/questions/8072998/how-to-detect-the-status-of-msbuild-from-command- line-or-c-sharp –

Antwort

0

DevEnv.exe setzt exitcode, wenn der Build fehlschlägt. Einfach diesen Exitcode auslesen und prüfen, ob es nicht Null ist. Es gibt eine Menge von Fragen auf Stackoverflow zu diesem speziellen Thema, aber im Wesentlichen, was Sie tun müssen, ist

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

Glücklich, Sie in stackoverflow zu treffen. Es hat funktioniert, Nochmals vielen Dank ~ – SupperLee

Verwandte Themen