如何从单个字符串编译原始 IL 代码?

问题描述

我正在尝试编写一个 MSBuild 任务,让我将 IL 代码内联到方法中,类似于 Glenn Slayden's answer to this question。我已经编写了反编译和修改 IL 的代码,但我不知道如何重新编译它。
我发现没有任何库(包括 Mono.Cecil)允许您从单个字符串编译原始 IL 代码。 Glenn Slayden 使用 ILAsm,但我找不到适用于 .NET 5 的 ILAsm。

如何从单个字符串编译原始 IL 代码

解决方法

Microsoft 现在在 NuGet 上发布 ILAsmILDasm,使用以下 ID:

Microsoft.NETCore.ILAsm
Microsoft.NETCore.ILDAsm

您可以使用 nuget install {ID} 将它们安装到当前目录中,然后使用 {ID}.{version}\runtimes\native\{exe name}.exe 运行它们。

,

我找到了问题的答案。制作 DllExport 的 3F 拥有 ILAsm 和 ILDasm 附带的 CoreCLR 修改版。