Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MessageBox赢得';在CodeDom生成的代码中不显示_C#_Codedom - Fatal编程技术网

C# MessageBox赢得';在CodeDom生成的代码中不显示

C# MessageBox赢得';在CodeDom生成的代码中不显示,c#,codedom,C#,Codedom,我用C#编写了一个生成器,它用CodeDom编译代码。 已编译的.exe必须显示一个MessageBox,但它不能这样做。 一切正常,编译并生成.exe,但输出不起作用(MessageBox不显示) 这是我的密码: private void button1_Click(object sender, EventArgs e) { String InputCode = String.Empty; //Unser TestCode, in dem Wir ein

我用C#编写了一个生成器,它用CodeDom编译代码。 已编译的.exe必须显示一个MessageBox,但它不能这样做。 一切正常,编译并生成.exe,但输出不起作用(MessageBox不显示)

这是我的密码:

private void button1_Click(object sender, EventArgs e)
    {
        String InputCode = String.Empty;
        //Unser TestCode, in dem Wir ein MessageBox aufrufen
        InputCode = "MessageBox.Show((1 + 2 + 3).ToString());";   //Here is the MSGBox

        System.CodeDom.Compiler.CodeDomProvider CodeDomProvider = System.CodeDom.Compiler.CodeDomProvider.CreateProvider("CSharp");
        //Parameter für die Compilierung, wie die einzubindenen Bibliotheken usw.
        System.CodeDom.Compiler.CompilerParameters CompilerParameters = new System.CodeDom.Compiler.CompilerParameters();
        CompilerParameters.ReferencedAssemblies.Add("System.dll");
        CompilerParameters.OutputAssembly = "Outpu2t.exe";
        CompilerParameters.ReferencedAssemblies.Add("System.Windows.Forms.dll");
        CompilerParameters.CompilerOptions += "/target:winexe" + " " + "/win32icon:" + "\"" + textBox6.Text + "\"";
        CompilerParameters.GenerateExecutable = true;
        CompilerParameters.GenerateInMemory = false;

        //Über den StringBuilder wird der Code zusammengesetzt
        StringBuilder Temp = new StringBuilder();
        Temp.AppendLine(@"using System;");
        Temp.AppendLine(@"using System.Windows.Forms;");
        Temp.AppendLine(@"using System.Diagnostics;");
        Temp.AppendLine(@"namespace RunTimeCompiler{");
        Temp.AppendLine(@"public class Test{");
        Temp.AppendLine(@"public static void Main(){");
        Temp.AppendLine(@"}");
        Temp.AppendLine(@"public void Ergebnis(){");
        if (checkBox7.Checked)
        {
            Temp.AppendLine(@"ProcessStartInfo startInfo = new ProcessStartInfo();");
            Temp.AppendLine(@"startInfo.WindowStyle = ProcessWindowStyle.Hidden;");
        }
        else
        {
        }
        Temp.AppendLine(@InputCode);                //Here is the MessageBox 
        Temp.AppendLine(@"}}}");


        System.CodeDom.Compiler.CompilerResults CompilerResults = CodeDomProvider.CompileAssemblyFromSource(CompilerParameters, Temp.ToString());
        if (CompilerResults.Errors.Count > 0)
        {
            MessageBox.Show(CompilerResults.Errors[0].ErrorText, "Fehler bei Laufzeitkompilierung", MessageBoxButtons.OK, MessageBoxIcon.Error);
            return;
        }
        else
        {
            MessageBox.Show("Done","Finished", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
    }

您正在生成的代码具有空的
Main()
。因此,您的代码什么也不做,因为这正是您告诉它要做的。

您正在生成的代码中有一个空的
Main()
。因此,您的代码没有任何作用,因为这正是您告诉它要做的。

谢谢先生,我相信我应该睡觉,因为我已经两天没睡了,我不能再思考了。^谢谢先生,我相信我应该睡觉,因为我已经两天没睡了,我不能再思考了^^