2010-04-14 39 views
5

Tôi sẽ phân tích hai phiên bản khác nhau của cùng một dll với fxcop. Tôi muốn chỉ hiển thị sự khác biệt giữa hai báo cáo này. Có ai biết nếu điều này là có thể?So sánh hai kết quả fxcop

Cảm ơn thời gian của bạn.

+0

Bạn có thể hoàn thành việc này không? –

Trả lời

2

Có, có thể, nhưng không có sẵn công cụ tích hợp sẵn cho việc này. Một cách tiếp cận khá đơn giản là sử dụng một công cụ khác để so sánh hai báo cáo. Nếu kết quả quá ồn ào đối với bạn, một cách tiếp cận khác là cuộn công cụ của riêng bạn để so sánh XML của hai báo cáo.

2

Bạn đang sử dụng giao diện người dùng hoặc dòng lệnh?

Với công cụ dòng lệnh, bạn có một số tùy chọn. Một trong số đó là nhập một báo cáo cũ để sử dụng làm đường cơ sở. Sau đó, thiết lập dự án fxcop để báo cáo chỉ các lỗi mới: Trạng thái báo cáo = "Đang hoạt động, vắng mặt" NewOnly = "True"

Dòng lệnh sẽ giống như sau: fxcopcmd.exe /i:OldVersionReport.xml/out: NewVersionReport .xml /p:FXCopProject.fxcop /f:mydll.dll

Báo cáo mới sẽ chỉ có lỗi mới hoạt động và cũng là danh sách thiếu các lỗi cố định tức thời từ phiên bản cũ.

Trong khi điều này sẽ làm việc cho hầu hết các phần, bạn cần phải hiểu rằng sự khác biệt sẽ không được 100% acurate. FXCop làm tốt nhất của nó để phù hợp với báo cáo cũ cho phiên bản mới của DLL, nhưng đôi khi nó không thành công. Ví dụ: nếu bạn đã khắc phục vi phạm cụ thể ở một nơi nào đó trong mã, nhưng đã thêm cùng một loại vi phạm ở một nơi khác, FXCop rất có thể sẽ bỏ lỡ điều này và không có sự khác biệt.

0

Đối với FxCop VS 2010, tất cả những gì bạn cần là phải có /saveMessagesToReport:Absent cùng với tệp FxCop cũ được tạo /import:"OldFile.xml" được chỉ định. Chỉ là một ví dụ.

 fxcopcmd.exe /import:"c:\Old.xml" /summary "/file:c:\*.dll" 
    /saveMessagesToReport:Absent /out:"c:\Output.xml"