【发布时间】:2021-07-24 01:33:14
【问题描述】:
我正在尝试编写一个 MSBuild 任务,让我可以将 IL 代码内联到方法中,类似于 Glenn Slayden's answer to this question。我已经编写了代码来反编译和修改 IL,但我不知道如何重新编译它。
我没有找到任何库,包括 Mono.Cecil,允许您从单个字符串编译原始 IL 代码。 Glenn Slayden 使用 ILAsm,但我找不到适用于 .NET 5 的 ILAsm。
如何从单个字符串编译原始 IL 代码?
【问题讨论】:
-
您可以使用ilasm.exe 编译已保存到文件的IL,然后使用
Assembly.Load(File.ReadAllBytes("path"))加载它。很难判断这是否是一种有效的方法,因为您没有在生成 IL 时包含您的实现。 -
这能回答你的问题吗? Compiling code dynamically using C#
-
不,这不能回答我的问题。我有一串要编译的 IL 代码。 @DekuDesu 我无法使用 ILAsm,因为缺少 .NET 5 的实现。如果有,请您将它或与它相关的文章发送给我吗?像 ILAsm 这样的东西似乎是我目前唯一的选择。