gpt4 book ai didi

c# - 使用 CodeDomProvider 隐藏命令提示符

转载 作者:太空宇宙 更新时间:2023-11-03 20:41:00 25 4
gpt4 key购买 nike

我刚刚使用 MSDN 中的文章制作了自己的小型自定义 c# 编译器。

但是,当我使用我的示例编译器创建一个新的 Windows 窗体应用程序时,MSDOS 窗口也会出现,如果我关闭 DOS 窗口,我的 WinForms 应用程序也会关闭。我怎样才能告诉编译器?根本不显示 MSDOS 窗口?

谢谢你:)

这是我的代码:

using System;

namespace JTS
{
public class CSCompiler
{
protected string ot,
rt,
ss, es;

protected bool rg, cg;

public string Compile(String se, String fe, String[] rdas, String[] fs, Boolean rn)
{
System.CodeDom.Compiler.CodeDomProvider CODEPROV = System.CodeDom.Compiler.CodeDomProvider.CreateProvider("CSharp");
ot =
fe;

System.CodeDom.Compiler.CompilerParameters PARAMS = new System.CodeDom.Compiler.CompilerParameters();
// Ensure the compiler generates an EXE file, not a DLL.
PARAMS.GenerateExecutable = true;
PARAMS.OutputAssembly = ot;
PARAMS.CompilerOptions = "/target:winexe"; PARAMS.ReferencedAssemblies.Add(typeof(System.Xml.Linq.Extensions).Assembly.Location);
PARAMS.LinkedResources.Add("this.ico");

foreach (String ay in rdas)
{
if (ay.Contains(".dll"))
PARAMS.ReferencedAssemblies.Add(ay);
else
{
string refd = ay;
refd = refd + ".dll";
PARAMS.ReferencedAssemblies.Add(refd);
}

}

System.CodeDom.Compiler.CompilerResults rs = CODEPROV.CompileAssemblyFromFile(PARAMS, fs);

if (rs.Errors.Count > 0)
{
foreach (System.CodeDom.Compiler.CompilerError COMERR in rs.Errors)
{
es = es +
"Line number: " + COMERR.Line +
", Error number: " + COMERR.ErrorNumber +
", '" + COMERR.ErrorText + ";" +
Environment.NewLine + Environment.NewLine;
}
}
else
{
// Compilation succeeded.
es = "Compilation Succeeded.";

if (rn) System.Diagnostics.Process.Start(ot);
}
return es;
}
}
}

最佳答案

在 C# 编译器中,当/target 开关为 exe 时,会显示控制台窗口。当/target=winexe 时,不显示控制台窗口。 http://msdn.microsoft.com/en-us/library/6h25dztx.aspx

试试这个:

System.CodeDom.Compiler.CompilerParameters PARAMS = new System.CodeDom.Compiler.CompilerParameters(); PARAMS->CompilerOptions = "/target:winexe";

参见: http://msdn.microsoft.com/en-us/library/system.codedom.compiler.compilerparameters.compileroptions.aspx

关于c# - 使用 CodeDomProvider 隐藏命令提示符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2661171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com