Một đề cập gần đây về PostSharp nhắc tôi nhớ về điều này:Công cụ nào thực hiện sửa đổi biên dịch của IL?
Năm ngoái tôi làm việc, chúng tôi đã nghĩ đến việc sử dụng PostSharp để đưa thiết bị vào mã của chúng tôi. Điều này là trong một Team Foundation Server Team Build/Môi trường tích hợp liên tục.
Suy nghĩ về nó, tôi có cảm giác dai dẳng về cách thức hoạt động của PostSharp - nó chỉnh sửa IL được tạo ra bởi các trình biên dịch. Điều này làm phiền tôi một chút.
Tôi không quan tâm nhiều đến mức PostSharp sẽ không thực hiện công việc của mình một cách chính xác; Tôi đã lo lắng về thực tế rằng đây là lần đầu tiên tôi có thể nhớ lại về một công cụ như thế này. Tôi lo ngại rằng các công cụ khác có thể không tính đến điều này.
Thật vậy, khi chúng tôi di chuyển dọc theo, chúng tôi đã làm có một số vấn đề xuất phát từ thực tế là PostSharp đã bị nhầm lẫn về thư mục gốc IL đã tham gia. Dường như là do xung đột với mục tiêu MSBUILD giải quyết các tham chiếu dự án. Xung đột xuất hiện là do thực tế là PostSharp sử dụng một thư mục tạm thời để lưu trữ các phiên bản chưa sửa đổi của IL.
Ở mức giá nào, tôi không có StackOverflow để tham chiếu trở lại sau đó! Bây giờ tôi làm, tôi muốn hỏi tất cả các bạn nếu bạn biết về bất kỳ công cụ nào khác chỉnh sửa IL như là một phần của quá trình xây dựng; hay Microsoft mất rằng loại công cụ vào tài khoản trong Visual Studio, MSBUILD, Team Build vv
Cập nhật: Cảm ơn câu trả lời.
Dòng dưới cùng có vẻ như vậy, ít nhất với VS 2010, Microsoft thực sự nên lưu ý rằng loại điều này có thể xảy ra. Vì vậy, nếu có vấn đề trong lĩnh vực này trong VS2010, sau đó Microsoft có thể chia sẻ đổ lỗi.
có một Add-in cho Reflector gọi Reflexil (http://sebastien.lebreton.free.fr/reflexil/) dựa trên Mono.Cecil. –