Недавнее упоминание о PostSharp напомнило мне об этом:
В прошлом году, когда я работал, мы думали об использовании PostSharp для внедрения инструментов в наш код. Это было в среде 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 есть проблемы в этой области, Microsoft может разделить вину.