如何在运行时在当前程序集中编译动态代码?

How can I compile dynamic code at runtime in the current assembly?

我使用VBCodeProvider编译代码,但是它生成了一个新的程序集,而且我还需要添加对我需要使用的程序集的所有引用。

有没有办法在当前程序集中编译代码?

VBCodeProvider 已过时。使用罗斯林。但这仍然不允许您在运行时修改现有程序集,因为这是不可能的。

编译并加载新程序集。您可以使用反射自动将引用列表添加到 Roslyn 编译。

您无法调整当前程序集。

几年前,我写了一篇关于动态编译的文章:http://emoreau.com/Entries/Articles/2011/07/Compiling-code-on-the-fly.aspx

顺便说一句,Roslyn 仅在您使用 VS2015 时可用(除非您使用的是适用于 VS2013 的 CTP,但它对于其他任何测试都不是一个好主意)。