簡體   English   中英

CSharpCodeProvider輸出控制台應用程序作為Windows窗體應用程序

[英]CSharpCodeProvider Output console app as windows form app

我有一些代碼可以使用CSharpCodeProvider從c#源動態創建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:\Users\me\AppData\Roaming\test.exe";
    CompilerResults results =
       compiler.CompileAssemblyFromSource(compilerparams, code);
    if (results.Errors.HasErrors)
    {
        StringBuilder errors = new StringBuilder("Compiler Errors :\r\n");
        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";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM