我有一些代码可以使用CSHARPCODEPROVIDER创建c#source的EXE,这是:
public static void BuildAssembly(string code)
{
Microsoft.CSharp.CSharpCodeProvider provider =
new CSharpCodeProvider();
ICodeCompiler compiler = provider.CreateCompiler();
CompilerParameters compilerparams = new CompilerParameters();
compilerparams.ReferencedAssemblies.Add("System.dll");
compilerparams.GenerateExecutable = true;
compilerparams.GenerateInMemory = false;
compilerparams.OutputAssembly = @"C:UsersmeAppDataRoamingtest.exe";
CompilerResults results =
compiler.CompileAssemblyFromSource(compilerparams, code);
if (results.Errors.HasErrors)
{
StringBuilder errors = new StringBuilder("Compiler Errors :rn");
foreach (CompilerError error in results.Errors)
{
errors.AppendFormat("Line {0},{1}t: {2}n",
error.Line, error.Column, error.ErrorText);
}
throw new Exception(errors.ToString());
}
else
{
}
}
都可以正常工作,它编译了我的控制台应用程序C#代码。但是,当我编写一个控制台应用程序时,我要求看台不可见,我只需转到应用程序属性,然后将输出类型从控制台更改为Windows应用程序。那么,如何通过上面粘贴的功能来执行此操作?我浏览了所有选项,但是..不知道:(
谢谢。
尝试以下:
compilerparams.CompilerOptions = "/target:winexe";