问题描述
以下示例对于 dotnet 5.0 已过时:https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.assemblybuilder?view=net-5.0#examples
即使查询字符串包含 ?view=net-5.0
,该示例也无法成功编译。我已经将其中一些过时的功能更新为新 API。
但是,我仍然需要保存生成的模块 (DLL) 以通过 PEVerify 或 IL Verifier 检查 IL。
那么,Save()
中缺少的 AssemblyBuilder
方法是什么?
目前我的解决方法是将 <TargetFramework>net5.0</TargetFramework>
中的 <TargetFramework>net48</TargetFramework>
替换为 .csproj
,但这完全是一团糟。
而且,虽然 dotnet
命令行工具禁止使用 -f net48
,但我们仍然可以在 .csproj
中手动更改它并获得正确的项目。
解决方法
目前您不能,因为该功能 is not yet implemented in .NET Core/.NET 5.0 and probably won't be in .NET 6.0 either。
除非所述功能在 .NET 中实现,ILPack 应该满足您的要求。
关于破碎的例子,我有opened an issue on GitHub。
,目前我的解决方法是将 <TargetFramework>net5.0</TargetFramework>
中的 <TargetFramework>net48</TargetFramework>
替换为 .csproj
,但这完全是一团糟。
另外,虽然dotnet
命令行工具禁止使用-f net48
(即.net Framework),但我们仍然可以在.csproj
中手动修改,得到正确的工程。