Компилировать код MFC из приложения C # Windows - PullRequest
1 голос
/ 05 октября 2010

Я создаю C # приложение для Windows для компиляции и сборки кода MFC Я много гуглил и нашел эту тему очень полезной Тема , но у меня 2 проблемы;

1) Относится к компиляции, поскольку у моего проекта MFC есть 4 разные конфигурации 2 для Oracle 10 и 2 для Orace 8i, но когда я передаю конфигурацию Oracle 10 в командной строке, он не распознает ее и создает проект вКонфигурация oralce 8

Конфигурация Oralce 8: а) Отладка б) Выпуск

Конфигурация Oralce 10: а) Отладка (Ora 10) б) Выпуск (Ora 10)

нокогда это передать эти значения в командной строке, например:

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

это не 't построить его в данной конфигурации из командной строки

2) Относится к классу процесса в C # Я вызываю CMD из Process.Start (путь к CMD), он запускает Command-Подскажите, но после открытия окна он закрывает его (я сказал, что закрывает его, потому чтоиспользовать Я проверил вкладку «Процесс» в диспетчере задач, и ее там не было).

Пожалуйста, помогите мне с этим.

Спасибо

Ответы [ 2 ]

0 голосов
/ 08 октября 2010

В части 1 вашего вопроса я уверен, что вам нужны кавычки вокруг аргументов с пробелами, поэтому строка должна выглядеть следующим образом:

devenv / build "Debug (Ora 10)" "c: \ MySolutions \ Проекты Visual Studio \ MySolution \ MySolution.sln"

Предполагается, что в вашем решении есть конфигурация "Отладка (Ora 10)"

0 голосов
/ 07 октября 2010

Для # 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);
           }
        }
    }
}
...