Có ai biết một công cụ tốt mà sẽ so sánh hai phiên bản khác nhau của cùng một dll và trích xuất sự khác biệt?Công cụ để so sánh .dll và tháo rời những khác biệt?
cảm ơn
Có ai biết một công cụ tốt mà sẽ so sánh hai phiên bản khác nhau của cùng một dll và trích xuất sự khác biệt?Công cụ để so sánh .dll và tháo rời những khác biệt?
cảm ơn
Trình phản xạ có công cụ Diff.
Tại sao không tháo rời trước và sau đó so sánh?
Xuất với Reflector, sau đó so sánh các thư mục với Beyond Compare. Thật tuyệt! :) –
Sử dụng .NET Reflector (phiên bản miễn phí là tất cả các bạn cần) để mở file dll sau đó nhấp chuột phải và chọn để xuất khẩu chúng vào các thư mục riêng biệt.
Sau đó sử dụng ExamDiff Pro để so sánh các thư mục (Bạn có thể dùng thử miễn phí 30 ngày). Bạn có thể điều hướng thông qua các thư mục con và mở từng tệp khi cần thiết vào cửa sổ So sánh mới (Chỉ cần nhấp đúp vào trong cửa sổ ExamDiff Pro). Hoạt động tuyệt vời!
ExamDiff Pro cũng có plugin Dump PE32 sẽ so sánh trực tiếp giữa tệp .dll và .exe. Điều này rất hữu ích khi nhìn vào các thay đổi tiêu đề và cờ các khác biệt nhị phân, nhưng sẽ không dịch ngược nó cho bạn (vì vậy hãy sử dụng phương thức Reflector ở trên).
nah nó không hoạt động. tôi có thể thấy mã trong phản xạ tốt. nhưng xuất cho 134 lỗi. Xong. – hamish
dotPeek từ JetBrains cũng có thể được sử dụng. Nó cũng miễn phí.
Lặp lại ở trên cho lắp ráp bạn muốn để so sánh, sau đó mở hai thư mục trong một công cụ khác. Tôi đã sử dụng WinMerge.
Bạn sẽ nhận thấy rằng phần lớn các tệp có sự khác biệt. Điều này là do các tập tin có một comment ở phía trên như thế này
// MVID: {some guid here}
Bạn có thể tạo một bộ lọc trong WinMerge để bỏ qua nó
^// MVID:
Khi bạn chấp nhận những thay đổi, nó sẽ quét lại các thư mục và bỏ qua bất kỳ dòng nào bắt đầu bằng nhận xét đó. Bây giờ bạn sẽ chỉ thấy những thay đổi bạn quan tâm.
Cái này hoạt động tuyệt vời và hoàn toàn miễn phí. Bạn có thể cần thêm nhiều bộ lọc hơn nữa. Tôi cũng phải thêm '^ // Assembly location:'. Cảm ơn Colin – mariozski
Ngoài ra, hãy chắc chắn nhấp vào tùy chọn hộp kiểm "Bật bộ lọc dòng", trong tab LineFilters. Tôi đã bỏ lỡ nó, ban đầu, và dành mười phút gãi đầu. –
Đội Microsoft BCL có một công cụ thực hiện việc này, nó được gọi là LibCheck và có thể được tìm thấy ở đây
http://blogs.msdn.com/b/bclteam/archive/2005/03/21/400123.aspx
Đây là một công cụ cũ, và tôi đã phải biên dịch lại mã nguồn sử dụng một phiên bản sau này của thời gian chạy, nhưng nó hoạt động tốt và cung cấp các báo cáo html về các thay đổi.
công cụ tốt, cảm ơn – flesh
Điều này vẫn làm việc với phiên bản Reflector mới nhất? Tôi chỉ bị rơi làm một sự khác biệt. – mkmurray
Tôi không thể làm việc này với phiên bản mới nhất (6.5), điều này quá tệ vì nó nghe rất hay. – theChrisKent