【发布时间】:2018-08-12 17:30:22
【问题描述】:
我们正在尝试将大型代码库从一个 UI 库迁移到另一个。这两个库在概念上非常相似,在大多数情况下存在一些命名差异。我们希望尽可能多地自动化。
我们希望实现类似于 Unity 的 API 更新工具 (https://docs.unity3d.com/Manual/APIUpdater.html) 的功能,它会自动替换对过时 API 的调用。是否有 C# 的源代码编织工具/框架?我知道有 Fody (https://github.com/Fody/Fody),但它在 IL 级别运行,而不是在源代码级别。
【问题讨论】:
-
在 IL 级别操作,而不是在源代码级别 我认为它们都是 IL 级别的工具。除此之外......您可以使用 Roslyn 来解析代码并对其进行转换?
-
这是我最简单的选择吗?这听起来像是很多工作,我无法证明花时间是合理的。
-
标签错误:这不是源码编织,而是源码转换。源编织是当您想要为每次编译添加预处理或后处理步骤时,您想要的是代码的一次性转换。
-
使用 Roslyn 应该很容易做到,它可以在源代码级别上运行,就像您需要的那样。
-
@Georg 相应地编辑了标题,但找不到标签。
标签: c# unity3d compile-time-weaving