此次C#在线运行采用cmd.exe用csc对文件进行编译,然后再运行的思路实现在线运行的效果。不过会生成二个文件(.cs和.exe),可能需要定期清除临时文件夹。
首先利用时间戳生成唯一文件名,然后将前台传回的代码写入生成的文件中。
![](https://i-blog.csdnimg.cn/blog_migrate/c94905354d5af87ba50b18784da86dfb.png)
接着用process调用cmd.exe程序,启动后输入多个命令行运行,对文件进行编译,生成可运行的exe文件。
注意:1.用多行writeLine实现多命令行运行
2.调用csc是需要写出完整路径名,因为该程序是在D盘下运行的,无法在D盘中找到csc的程序
3.运行完要加exit退出,以方便后续的运行。
![](https://i-blog.csdnimg.cn/blog_migrate/cd2bb740408e7689cfedf9d6134294f1.png)
最后利用同样的方法调用生成的exe文件,就可运行出结果,通过对output的输出信息进行字符串分割处理,得到想要的结果,也可以在exeCMD
方法中捕捉到编译错误信息返回。