2011-01-18 30 views
10

Chúng tôi sử dụng các biện pháp triệt tiêu toàn cầu của FxCop để ngăn chặn các vi phạm quy tắc được tìm thấy trong mã cũ. Theo mã cũ, tôi có nghĩa là mã được viết đôi khi nhiều năm trước khi chúng tôi bật phân tích mã. Chúng tôi sửa các vi phạm trong mã mới. Chúng tôi không thể sửa chữa các vi phạm trong mã cũ cùng một lúc để chúng tôi sử dụng các biện pháp ngăn chặn.Có cách nào để xác định các tin nhắn FxCop chưa sử dụng hoặc cũ không?

Theo thời gian, các tệp đàn áp toàn cầu của chúng tôi đã trở nên cồng kềnh. Thông thường khi một chữ ký đã thay đổi trên một phương pháp cũ, sự ức chế trước sẽ trở thành không hợp lệ vì nó không còn phù hợp với mã. Chúng tôi đã tạo ra các biện pháp ngăn chặn mới để bỏ qua vi phạm cũ nhưng thường các thuộc tính SuppressMessage cũ bị bỏ lại phía sau.

Có ai biết cách xác định các khai báo SupressMessage không khớp với mã không? Cho rằng vấn đề không ai biết làm thế nào để xác định các thuộc tính SuppressMessage không hợp lệ vì không có vi phạm để ngăn chặn?

Tôi nghĩ rằng có thể có một trình biên dịch hoặc cảnh báo hoặc thông báo nhật ký FxCopCmd có thể xác định các hạn chế không sử dụng. Nếu không phải là không ai biết một kịch bản hoặc phần mở rộng VS mà không?

Cảm ơn.

+0

Tôi hy vọng bạn có kế hoạch cuối cùng sẽ xóa tất cả các biện pháp ngăn chặn này. Tôi thấy rằng họ lộn xộn mã nếu sử dụng quá nhiều. – Bernard

+0

@Bernard - Sự ức chế toàn cầu không nằm trong tệp lớp của bạn, vì vậy bạn sẽ không thấy chúng trừ khi bạn tìm kiếm chúng. Cơn đau là khi bạn cố gắng tìm ra cái bạn muốn loại bỏ hoặc thay đổi. – Pedro

+0

@Pedro: Bạn đã đúng. Nhưng bạn cũng có thể ngăn chặn các cảnh báo ở cấp độ phương pháp, mà tôi sẽ không khuyên bạn nên làm. – Bernard

Trả lời

2

Bạn có thể sử dụng ứng dụng FxCop UI độc lập cho việc này. Thêm cột "Lần chạy cuối cùng" vào tab kết quả "Đã loại trừ trong nguồn". Sau khi phân tích, cột này sẽ hiển thị một giá trị sai cho bất kỳ sự ức chế trong nguồn nào mà không tìm thấy vi phạm tương ứng trong quá trình phân tích. Để tối đa hóa độ tin cậy của kết quả, bạn nên đảm bảo rằng bạn đang sử dụng cùng một tập hợp các quy tắc quy tắc cho phân tích mà bạn sử dụng khi chạy phân tích từ Visual Studio.

BTW, nếu bạn muốn có thể phá vỡ công trình xây dựng của bạn khi tìm thấy những áp lực "cũ", bạn có thể cân nhắc bỏ phiếu tại https://connect.microsoft.com/visualstudio/feedback/details/277253/add-mechanism-for-detecting-unnecessary-suppressmessageattribute-instances.

+0

Cảm ơn, tôi sẽ thử ngay bây giờ. –

+1

Liên kết dường như bị hỏng và tôi không thể tìm thấy liên kết này. Bạn có thể cập nhật bài đăng của mình không? – julealgon

Các vấn đề liên quan