Компиляция CodeDOM без ошибок, но не удается запустить консоль

Я создал свой проект и теперь хочу скомпилировать его с помощью компилятора CodeDOM. У меня есть папка с файлами .CS, которые нужно скомпилировать в EXE. Приложение должно быть консольным приложением, хотя оно не может запустить какую-либо консоль. Ошибок при построении нет. Ниже приведен мой метод компиляции:

public static void Build(string AssemblyName, string OutputDirectory, string[] SourceFiles)
        {
            CodeDomProvider codeProvider = CodeDomProvider.CreateProvider("CSharp");
            CompilerParameters parameters = new CompilerParameters();
            parameters.GenerateExecutable = true;
            parameters.GenerateInMemory = false;
            parameters.ReferencedAssemblies.Add("System.dll");
            parameters.ReferencedAssemblies.Add("System.Data.dll");
            parameters.ReferencedAssemblies.Add("System.Xml.dll");
            parameters.OutputAssembly = OutputDirectory + @"\" + AssemblyName + ".exe";
            parameters.CompilerOptions = "/unsafe /target:winexe /platform:x86";

            if (codeProvider.Supports(GeneratorSupport.EntryPointMethod))
            {
                parameters.MainClass = "MyApp.Program";
            }

            CompilerResults results = codeProvider.CompileAssemblyFromFile(parameters, SourceFiles);

            if (results.Errors.Count > 0)
            {
                foreach (CompilerError error in results.Errors)
                    Console.WriteLine(error.ErrorText);
            }
        }

string[] SourceFiles правильно предоставляет все файлы .CS (классы, структуры и перечисления), расположенные в папке следующим образом:

"D:\\Development\\MyAppCodeDom\\Program.cs"
"D:\\Development\\MyAppCodeDom\\IniParser.cs"

И еще 26 таких. Я не использую никакие внешние DLL-файлы в качестве справочных материалов. Однако не удается запустить окно консоли.

Есть идеи? Возможно, консольное приложение требует определенных опций?

EDIT: При использовании ILSpy сборка содержит ВСЕ классы и т. д., которые она должна иметь.

Заранее спасибо.


person Roel    schedule 19.06.2015    source источник
comment
Он создает .exe? И вы дважды щелкаете по .exe? Ничто в коде, указанном выше, не говорит о фактическом запуске сборки...   -  person Bruce Dunwiddie    schedule 19.06.2015
comment
Догадаться. Удалил /target:winexe - теперь все работает.   -  person Roel    schedule 20.06.2015


Ответы (1)


Я удалил /target:winexe из CompilerOptions, и теперь он работает.

person Roel    schedule 20.06.2015