Tôi có một assembly cung cấp một API và được sử dụng bởi một số assembly khác. Tôi cần xác minh rằng phiên bản API dll mới hơn vẫn tương thích với các hội đồng cũ hơn đang sử dụng phiên bản API cũ hơn.Làm thế nào tôi có thể kiểm tra tính tương thích ngược của API giữa các assembly .net
Tôi đã tìm thấy một vài câu hỏi mà hỏi giống nhau, nhưng không có câu trả lời mà giải quyết vấn đề của tôi:
công cụ đề nghị chỉ có thể so sánh hai hội đồng và nói rằng nếu có những thay đổi có thể xảy ra trong API, nhưng không phải nếu API mới nhất thực sự phá vỡ hội đồng cũ sử dụng nó. Tôi muốn tìm một công cụ hoặc viết một bài kiểm tra có thể kiểm tra xem mỗi dll cũ có thể hoạt động với dll API mới của tôi hay không.
Đối với những thay đổi trong API nhiều khả năng tôi sẽ chỉ mở rộng nó, nhưng mặc dù nó vẫn có thể phá vỡ mã trong hội đồng cũ hơn. Một số ví dụ về sự thay đổi đó có thể được tìm thấy ở đây:
- A definite guide to API-breaking changes in .NET
- .NET: with respect to AssemblyVersion, what defines binary compatibility?
Đối nay là giải pháp duy nhất tôi thấy là để biên dịch mã nguồn của các hội đồng cũ với các API mới nhất , nhưng tôi chỉ muốn làm điều đó với các hội đồng và thêm chúng như là một phần của các bài kiểm tra đơn vị của tôi. Có cách nào tốt hơn tôi có thể xử lý điều đó không?
chỉnh sửa:
Tôi đang tìm một công cụ mà sẽ có thể tự động hóa quá trình thẩm tra khả năng tương thích ngược giữa cụm .net. (dòng lệnh hoặc với một số api quá)
Có thể do thiếu hiểu biết của tôi, nhưng tôi không hiểu công cụ bạn đang tìm kiếm có thể làm tốt hơn hoặc dễ dàng hơn mà chỉ cần biên dịch các nguồn kết hợp. Ý tôi là, công cụ này sẽ cần cả nguồn cũ và nguồn mới để có thể phân tích những thay đổi đột phá theo cách bạn dự định, phải không? Có lẽ bạn có thể điền vào tôi. –
@GertArnold Tôi đã cập nhật câu hỏi của mình, tôi muốn tự động hóa quy trình này, vì vậy có thể không thuận tiện khi biên dịch mã nguồn theo cách thủ công hoặc chạy công cụ theo cách thủ công – username