2010-07-23 22 views
6

Tôi muốn so sánh một vài dll của một lần cài đặt với một vài dll của một lần cài đặt ứng dụng khác mà tôi đang làm việc. Tôi cần đảm bảo chúng giống hệt nhau. Làm cách nào để so sánh hai dll để đảm bảo chúng có cùng một phương thức, thuộc tính, phiên bản, v.v. giống nhau?Làm cách nào để so sánh nội dung của hai dll?

Tôi đã bắt đầu sử dụng RedGate .Net Reflector, nhưng nhiệm vụ trở nên tẻ nhạt vì vậy tôi nghĩ tôi sẽ cung cấp cho SO một shot, xem nếu có ai khác trong tình huống của tôi trước và có giải pháp nhanh.

Cảm ơn bạn!

Trả lời

7

Tôi giả định rằng bạn không thể dựa vào phiên bản lắp ráp để trả lời câu hỏi này.

Tìm kiếm nhanh trên google đã bật bài đăng này theo số Scott Hanselman trỏ đến một số công cụ có thể giải quyết được sự cố của bạn.

+0

SN của assembly không chứa ngầm thông tin ABI: -/ –

+0

Vâng, tôi nhận ra rằng, OP cần phải so sánh hai assembly với nhau cho thấy chúng là một số vấn đề quản lý phiên bản. –

+0

Có, phiên bản của hội đồng không bao giờ được cập nhật cho hai bản phát hành, vì vậy tôi đang cố gắng giúp một số khách hàng tìm thấy phiên bản họ đang sử dụng. – Eric

2

Edit: Để tìm mẹo quyết tâm không có lập trình, xem confusedGeeks trả lời :-)

Tôi sẽ sử dụng một lắp ráp SN để xác định "phiên bản", sau đó;

Nếu ABI không được phản ánh trong phiên bản, hãy thực hiện md5sum phụ đối với các tệp hoặc thực hiện so sánh phản chiếu của hai cụm. Tất nhiên, md5sum sẽ "bắt" các thay đổi nội bộ/biên dịch ngay cả khi ABI không thay đổi. Phản ánh ABI, trong khi phức tạp hơn và có khả năng làm chậm con chó, có thể xác định ABI thay đổi tại chỗ. Nó có thể chỉ đơn giản và đủ để chỉ "ghi đè lên" bất kỳ hội đồng nào có cùng phiên bản (và để các phiên bản trước/sau vẫn còn cho đến khi bị ai đó gỡ bỏ).

+0

là một md5sum đủ để xác nhận rằng chúng giống nhau không? Kể từ khi tôi so sánh một phiên bản được lắp ráp với một hội đồng mà không có tem phiên bản ... sẽ không thay đổi md5sum giữa hai? – Eric

+0

@Eric Trừ khi bạn lo lắng về một số tin tặc NIHM rất thông minh đang cố gắng ăn cắp phô mai của bạn, md5sum có thể được sử dụng đáng tin cậy: các khoản md5 khác nhau -> nội dung tệp khác nhau. –

2

Tôi sử dụng WinMerge tất cả thời gian để thực hiện tác vụ này. Bạn thậm chí có thể so sánh toàn bộ thư mục. Đây là khóa học nếu bạn chỉ cần biết nếu chúng giống nhau, vì nó sẽ không hiển thị cho bạn bất kỳ mã nào.

3

Tại sao không sử dụng Phụ thuộc Walker? Sao chép tất cả các hàm đã xuất vào tệp văn bản. Lặp lại tương tự với các DLL khác. Sau đó, phân biệt hai tệp văn bản.

Tôi đã làm điều đó một lần để giải quyết lỗi 127, cho biết nó không thể tải tệp DLL vì thiếu phụ thuộc 'không xác định'.

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