寻求可将.NET Framework程序集转换为.NET Standard的CLI工具
.NET Framework程序集转.NET Standard 2.0的工具方案
针对你这种仅包含枚举定义和简单接口、无业务逻辑的程序集,不需要重新开发工具,有几个现成的方案可以用:
IL工具链(ildasm/ilasm):这是.NET自带的原生工具,步骤直接清晰:
- 用
ildasm把目标dll导出为IL代码文件和资源文件 - 编辑IL文件,找到
.assembly节点下的目标框架属性,替换成.NET Standard 2.0对应的元数据(比如移除.NET Framework相关的custom instance void [mscorlib]System.Runtime.Versioning.TargetFrameworkAttribute::.ctor(string)指令,换成.NET Standard的属性值) - 用
ilasm重新编译IL文件和资源,生成新的dll
这个方法适合少量文件处理,也可以写脚本实现批量自动化。
- 用
AsmResolver:这是一个专门用于操作.NET程序集的类库,能直接在内存中修改程序集的元数据。你只需要写几行代码,就能批量修改程序集的目标框架标识、替换依赖的程序集引用。因为你的程序集只有枚举和接口,没有复杂逻辑,用这个库完全能搞定,不需要处理复杂的IL指令。
dnlib:和AsmResolver类似,也是成熟的.NET程序集操作库,支持修改程序集的目标框架信息、调整依赖集。它的API设计简洁,处理这类简单程序集的转换非常高效,同样不需要源码就能完成修改。
注意事项
因为你的程序集没有依赖复杂的.NET Framework专属API,只是简单的类型定义,修改目标框架元数据后不会有运行时兼容性问题,这类转换是完全安全的。
内容的提问来源于stack exchange,提问作者KLAAP
相关产品推荐
相关产品推荐

