0

以下を使用して、実行時に C# をコンパイルします。

CompilerParameters parameters = new CompilerParameters
        {
            GenerateInMemory = true,
            GenerateExecutable = true,
            IncludeDebugInformation =  true
        };


        // True - memory generation, false - external file generation
        // True - exe file generation, false - dll file generation

        var res = pro.CompileAssemblyFromSource(parameters,
            code);

        Assembly assembly = res.CompiledAssembly;
        Type program = assembly.GetType("First.Program");
        MethodInfo main = program.GetMethod("Main");
        var invoke = main?.Invoke(null, null);

res.Outputは空のリストですが、コードConsole.WriteLine()に が含まれている場合は、メイン アプリケーションのコンソールに書き込まれます。書かれていることをつかみたい。

4

1 に答える 1

0

もチェックする必要がありres.Errorsます。エラーがある場合は、代わりにそこに表示されます。Errorsとの両方Outputが空の場合、出力なしでコンパイルが成功した可能性があります。小切手:cr.NativeCompilerReturnValue.ToString()

于 2017-10-21T16:40:27.663 に答える