如何允许.net程序在运行时编译C#代码?

如何允许.net程序在运行时编译C#代码?,c#,.net,compiler-construction,runtime,C#,.net,Compiler Construction,Runtime,我见过几个.net应用程序,它们允许您选择一个C#.cs源文件,程序本身将编译并运行此代码 这是如何做到的?它可能使用Microsoft.CSharp命名空间中的CSharpCodeProvider类。您需要查看以下编译代码的方法: CompileAssemblyFromDom CompileAssemblyFromFile CompileAssemblyFromSource 我的猜测是显式调用csc.exe编译器。请记住,此依赖项和任何依赖项都必须包含在部署中 您可以查看哪些文件解释了C#文

我见过几个.net应用程序,它们允许您选择一个C#.cs源文件,程序本身将编译并运行此代码


这是如何做到的?

它可能使用Microsoft.CSharp命名空间中的CSharpCodeProvider类。您需要查看以下编译代码的方法:

CompileAssemblyFromDom
CompileAssemblyFromFile
CompileAssemblyFromSource

我的猜测是显式调用csc.exe编译器。请记住,此依赖项和任何依赖项都必须包含在部署中


您可以查看哪些文件解释了C#文件。虽然它是免费的,但不是开源的…

MSDN有一系列文章来解释这一点

是你的朋友吗