2010-10-05 76 views
1

我正在構建一個C#Windows應用程序來編譯&構建MFC代碼我用google搜索了很多,我發現這個線程非常有用Thread但我面臨2個問題;從C#Windows應用編譯MFC代碼

1)編譯作爲我的MFC項目相關有4種不同的配置2的Oracle 10 & 2 Orace 8i中,但是當我在命令行傳遞的Oracle 10配置它不能識別它&在生成項目ORALCE 8配置

的Oralce 8配置:一)調試b)中釋放

的Oralce 10配置:一)調試(奧拉10)b)中推出(奧拉10)

但是當處於這些值傳遞命令行例如;

devenv的/建立調試(奧拉10) 「C:\ MySolutions \ Visual Studio項目\ MySolution \ MySolution.sln」

它不會在從命令行給定的配置構建它

我打算從Process.Start(CMD路徑)調用CMD它啓動命令提示符但打開窗口後它關閉它(我說關閉它,因爲我檢查了進程選項卡在任務管理器&它不在那裏)。

請幫助我。

感謝

回答

0

#2 - 發佈一些代碼 - 這裏是我的:

using System; 
using System.Diagnostics; 
using System.ComponentModel; 

namespace MyProcess 
{ 
    class MyProcess 
    { 
     public static void Main() 
     { 
      string CmdPath, CmdArgument, FrameworkPath; 
      CmdPath = "cmd.exe"; 
      CmdArgument = ""; 
      FrameworkPath = "C:\\"; 
      ProcessStartInfo CmdLine = new ProcessStartInfo(CmdPath, CmdArgument); 
      CmdLine.WindowStyle = ProcessWindowStyle.Maximized; 
      CmdLine.WorkingDirectory = FrameworkPath; 
      CmdLine.UseShellExecute = false; 
      Process CmdProcess = new Process(); 
      CmdProcess.StartInfo = CmdLine; 
      try 
      { 
       CmdProcess.Start(); 
      } 
      catch (Exception e) 
      { 
       Console.WriteLine(e.Message); 
      } 
     } 
    } 
} 
+0

ProcessStartInfo CmdLine = new ProcessStartInfo(CmdPath,CmdArgument); CmdLine.WindowStyle = ProcessWindowStyle.Maximized; CmdLine.WorkingDirectory = FrameworkPath; CmdLine.UseShellExecute = false; Process CmdProcess = new Process(); CmdProcess.StartInfo = CmdLine; CmdProcess.Start(); – KhanZeeshan 2010-10-07 07:02:26

+0

好的 - 修改後的例子使用你的代碼,我不得不初始化CmdPath,CmdArgument和FrameworkPath。下次發佈至少編譯的代碼示例,我們可以修復它 - – Jeff 2010-10-08 03:43:40

0

對於你的問題的第一部分,我敢肯定,你需要與周圍空間的任何參數報價,所以行應該是這樣的:

devenv的/構建 「調試(奧拉10)」 「C:\ MySolutions \ Visual Studio項目\ MySolution \ MySolution.sln」

這裏假設你有一個在您的解決方案中稱爲「Debug(Ora 10)」的配置