最近提到的PostSharp讓我想起了這件事:哪些工具執行IL的後編譯修改?
去年我工作的地方,我們正在考慮用PostSharp在我們的代碼中插入工具。這是在Team Foundation Server團隊構建/持續集成環境中。
考慮一下,我對PostSharp的運行方式感到嘮叨不已 - 它編輯了編譯器生成的IL。這讓我困擾了一下。
我並不擔心PostSharp不會正確地完成工作;我擔心這是我第一次聽到有關這樣的工具的消息。我擔心其他工具可能沒有考慮到這一點。
事實上,當我們移動時,我們確實有有一些問題,這是因爲PostSharp對原始IL所在的文件夾感到困惑。這打破了我們的構建。這似乎是由於與解決項目引用的MSBUILD目標衝突。衝突似乎是由於PostSharp使用臨時目錄來存儲未修改的IL版本。
無論如何,我沒有StackOverflow來引用當時的!現在我知道了,如果您知道任何其他編輯IL作爲構建過程的一部分的工具,我想問問大家。或者微軟是否採取那種工具的考慮在Visual Studio中,MSBUILD,團隊建設等
更新:感謝您的答案。
底線似乎是,至少在VS 2010中,微軟真的應該意識到這種事情可能會發生。所以如果在VS2010中這個領域存在問題,那麼微軟可能會承擔責任。
有用於反射器的外接稱爲Reflexil (http://sebastien.lebreton.free.fr/reflexil/)是基於Mono.Cecil。 – 2009-10-03 01:32:28