c# - 哪些工具执行 IL 的编译后修改?

标签 c# postsharp intermediate-language

最近提到 PostSharp 让我想起了这一点:

去年在我工作的地方,我们考虑使用 PostSharp 将检测注入(inject)我们的代码。这是在 Team Foundation Server Team Build/Continuous Integration 环境中进行的。

考虑到这一点,我对 PostSharp 的运行方式产生了一种挥之不去的感觉——它编辑由编译器生成的 IL。这让我有点困扰。

我不太担心 PostSharp 不能正确地完成它的工作;我很担心这是我第一次听说这样的工具。我担心其他工具可能不会考虑到这一点。

事实上,随着我们的推进,我们确实遇到了一些问题,原因是 PostSharp 对原始 IL 所在的文件夹感到困惑。这破坏了我们的构建。这似乎是由于与解析项目引用的 MSBUILD 目标发生冲突。冲突似乎是由于 PostSharp 使用临时目录来存储 IL 的未修改版本。

无论如何,那时我没有 StackOverflow 可以引用!既然我这样做了,我想问问你们大家是否知道在构建过程中编辑 IL 的任何其他工具;或者 Microsoft 是否在 Visual Studio、MSBUILD、Team Build 等中考虑了此类工具。


更新:感谢您的回答。

底线似乎是,至少对于 VS 2010,Microsoft 确实应该意识到这种事情可能会发生。因此,如果 VS2010 中出现这方面的问题,那么微软可能会分担责任。

最佳答案

我知道 Mono.Cecil ,一个扩展 System.Reflection 工具集的框架库,它被​​ Lin 使用Fu项目。

我不确定构建过程支持,你应该检查它们的大小。

关于c# - 哪些工具执行 IL 的编译后修改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1137426/

相关文章:

.net - 编辑 .IL 文件的工具?

c# - .Net接口(interface)继承编译

c# - 属性类如何引用使用它的实例?

c# - Postsharp:从方面访问已应用的方面

C# 可以将对象附加到方法调用而不将其作为参数吗?

compiler-construction - 函数的中间代码生成

c# - c# 编译器比 VB.NET 编译器更聪明吗?

c# - c#中的垃圾收集误解

c# - 使用MVVM获取在MPF中选中的复选框项

c# - 使用自定义属性