2016-12-01 41 views
-2

我試圖通過CSharpProvider保存到桌面生成的代碼中。我怎樣才能做到這一點?如何在運行時編譯中保存生成的exe文件

CodeDomProvider codeProvider = CodeDomProvider.CreateProvider("CSharp"); 
string Output = "Out.exe"; 
Button ButtonObject = (Button)sender; 

textBox2.Text = ""; 
System.CodeDom.Compiler.CompilerParameters parameters = new CompilerParameters(); 
//Make sure we generate an EXE, not a DLL 
parameters.GenerateExecutable = true; 
parameters.OutputAssembly = Output; 
CompilerResults results = codeProvider.CompileAssemblyFromSource(parameters, textBox1.Text); 

if (results.Errors.Count > 0) 
{ 
    textBox2.ForeColor = Color.Red; 
    foreach (CompilerError CompErr in results.Errors) 
    { 
     textBox2.Text = textBox2.Text + 
        "Line number " + CompErr.Line + 
        ", Error Number: " + CompErr.ErrorNumber + 
        ", '" + CompErr.ErrorText + ";" + 
        Environment.NewLine + Environment.NewLine; 
    } 
} 
else 
{ 
    //Successful Compile 
    textBox2.ForeColor = Color.Blue; 
    textBox2.Text = "Success!"; 
    //If we clicked run then launch our EXE 
    if (ButtonObject.Text == "Run") Process.Start(Output); 
} 

我不想運行它只是保存它。

+0

你有沒有嘗試設置out.exe有一個路徑? – BugFinder

+0

是的,它的工作謝謝你。 – DeadLock

回答

-1

我已經解決了。將out.exe更改爲c:\ out.exe。

相關問題