问题描述
我正在尝试编写一个 MSBuild 任务,让我将 IL 代码内联到方法中,类似于 Glenn Slayden's answer to this question。我已经编写了反编译和修改 IL 的代码,但我不知道如何重新编译它。
我发现没有任何库(包括 Mono.Cecil)允许您从单个字符串编译原始 IL 代码。 Glenn Slayden 使用 ILAsm,但我找不到适用于 .NET 5 的 ILAsm。
如何从单个字符串编译原始 IL 代码?
解决方法
Microsoft 现在在 NuGet 上发布 ILAsm 和 ILDasm,使用以下 ID:
Microsoft.NETCore.ILAsm
Microsoft.NETCore.ILDAsm
您可以使用 nuget install {ID}
将它们安装到当前目录中,然后使用 {ID}.{version}\runtimes\native\{exe name}.exe
运行它们。
,
我找到了问题的答案。制作 DllExport 的 3F 拥有 ILAsm 和 ILDasm 附带的 CoreCLR 修改版。