2010-10-05 12 views
1

Je construis une application Windows C# pour compiler & Construire le code MFC j'ai beaucoup recherché sur googled et j'ai trouvé ce fil très utile Thread mais je suis confronté à 2 problèmes;Compiler le code MFC à partir de l'application Windows C#

1) liés à compiler mon projet MFC ont 4 configurations différentes 2 pour Oracle 10 & 2 pour Orace 8i mais quand je passe la configuration Oracle 10 dans la ligne de commande, il ne reconnaît pas & construit le projet à Oralce 8 Configuration

Oralce 8 Configuration: a) Mise au point b) de sortie

Oralce 10 Configuration: a) de débogage (Ora 10) b) sortie (Ora 10)

mais quand est transmettre ces valeurs dans ligne de commande pour par exemple;

devenv/build Debug (Ora 10) "c: \ MySolutions \ Projects Visual Studio \ MySolution \ MySolution.sln"

il ne construit pas à la configuration donnée en ligne de commande

2) Relatif à la classe de processus en C# j'appelle CMD de Process.Start (Chemin vers CMD) il démarre l'invite de commande mais après l'ouverture des fenêtres il le ferme (je l'ai dit ferme parce que j'ai vérifié l'onglet task-manager & ce n'était pas là).

S'il vous plaît aidez-moi avec ceci.

Merci

Répondre

0

Pour # 2 - Poster un code - est ici le mien:

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; Processus CmdProcess = new Process(); CmdProcess.StartInfo = CmdLine; CmdProcess.Start(); – KhanZeeshan

+0

Ok - exemple modifié pour utiliser votre code, j'ai dû initialiser CmdPath, CmdArgument, et FrameworkPath. La prochaine fois publiez un exemple de code qui compile au moins et nous pouvons le résoudre - – Jeff

0

Pour la partie 1 de votre question, je suis assez sûr que vous avez besoin des guillemets autour des arguments avec des espaces, de sorte que le ligne devrait ressembler à ceci:

devenv/build "Debug (Ora 10)" "c: \ MySolutions \ Projects Visual studio \ MySolution \ MySolution.sln"

cela suppose que vous avez configuration appelée "Debug (Ora 10)" dans votre solution