最近提到 PostSharp 让我想起了这一点:
去年我工作的地方,我们正在考虑使用 PostSharp 将检测注入我们的代码。这是在 Team Foundation Server 团队构建/持续集成环境中。
考虑到这一点,我对 PostSharp 的运行方式产生了一种烦人的感觉——它编辑了编译器生成的 IL。这让我有点困扰。
我不太担心 PostSharp 不能正确完成它的工作。我担心这是我第一次记得听说过这样的工具。我担心其他工具可能不会考虑到这一点。
事实上,随着我们的前进,我们确实遇到了一些问题,因为 PostSharp 对原始 IL 所在的文件夹感到困惑。这破坏了我们的构建。这似乎是由于与解决项目引用的 MSBUILD 目标发生冲突。冲突似乎是由于 PostSharp 使用临时目录来存储 IL 的未修改版本这一事实。
无论如何,当时我没有 StackOverflow 可以参考!现在我知道了,我想问你们大家是否知道在构建过程中编辑 IL 的任何其他工具;或者微软是否在 Visual Studio、MSBUILD、Team Build 等中考虑了这种工具。
更新:感谢您的回答。
底线似乎是,至少在 VS 2010 中,微软确实应该意识到这种事情可能会发生。所以如果VS2010在这方面出现问题,那么微软可能会分担责任。