CodeDOM 编译没有错误但无法启动控制台
CodeDOM compilation no errors but fails to launch console
我已经创建了我的项目,现在想使用 CodeDOM 编译器进行编译。
我有一个文件夹,里面装满了应该编译成 EXE 的 .CS 文件。该应用程序应该是一个控制台应用程序,尽管它无法启动任何控制台。没有构建错误。以下是我的编译方法:
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 文件作为参考。但是,启动控制台失败 window.
有什么想法吗?也许控制台应用程序需要某些选项?
编辑:
使用 ILSpy,程序集似乎包含它应该具有的所有 类 等。
提前致谢。
我从 CompilerOptions 中删除了 /target:winexe,现在可以使用了。
我已经创建了我的项目,现在想使用 CodeDOM 编译器进行编译。 我有一个文件夹,里面装满了应该编译成 EXE 的 .CS 文件。该应用程序应该是一个控制台应用程序,尽管它无法启动任何控制台。没有构建错误。以下是我的编译方法:
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 文件作为参考。但是,启动控制台失败 window.
有什么想法吗?也许控制台应用程序需要某些选项?
编辑: 使用 ILSpy,程序集似乎包含它应该具有的所有 类 等。
提前致谢。
我从 CompilerOptions 中删除了 /target:winexe,现在可以使用了。