Tôi có một ứng dụng .NET dường như có một số phiên bản phụ thuộc của nó thay đổi giữa gỡ lỗi và chạy dưới dạng ứng dụng bản phát hành đã cài đặt. Tôi sẽ chỉ tập trung vào việc lắp ráp Castle.Core cho các chi tiết của tôi, nhưng cùng một vấn đề xảy ra với một vài người khác là tốt. Một gói NuGet tôi đang sử dụng yêu cầu Castle.Core như là một phụ thuộc (tất cả các trường hợp của vấn đề của tôi có liên quan đến hội đồng có nguồn gốc từ NuGet, trong trường hợp nó quan trọng).Phụ thuộc lắp ráp thay đổi sau khi cài đặt
Trong Visual Studio, khi tôi cài đặt gói NuGet với Castle.Core dependency, mọi thứ chỉ chạy tốt, cả trong cấu hình Debug và Release. Tôi có thể thấy rằng tham chiếu dự án Castle.Core đang tham chiếu phiên bản 3.3.0.0. Tuy nhiên, khi tôi đóng gói tất cả mọi thứ được tạo ra bởi cấu hình phiên bản sử dụng InstallShield và cài đặt ứng dụng (với tất cả các cụm sống trong dir chương trình tương tự), tôi nhận được lỗi runtime này:
Could not load file or assembly 'Castle.Core, Version=3.2.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
Các gói NuGet liệt kê sự phụ thuộc của nó vào Castle .Core as (≥3.2.0.0 & & < 4.0.0.0). Cả hai 3.2.0.0 và 3.3.0.0 đều thỏa mãn các điều kiện đó.
Nếu tôi hạ cấp thủ công Castle.Core xuống 3.2.0.0, tham chiếu của dự án của tôi cho thấy rằng nó đã thực sự bị hạ cấp. Nhưng khi tôi chạy dự án trong Visual studio, tôi nhận được:
Could not load file or assembly 'Castle.Core, Version=3.3.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
với một ngoại lệ bên trong:
Could not load file or assembly 'Castle.Core, Version=3.2.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
Tuy nhiên, nếu tôi sau đó gói nó vào một trình cài đặt và khởi động nó như một ứng dụng được cài đặt , nó hoạt động.
Với tôi, có cảm giác như hành động đóng gói các bộ hội đồng vào một trình cài đặt đang làm cho các phiên bản phụ thuộc thay đổi. Tôi không thể tưởng tượng được như vậy, nhưng tôi đang gặp rắc rối với một lời giải thích tốt hơn.
Có ai có thể giải thích những gì đang xảy ra ở đây và cách tôi có thể khắc phục sự cố không?
Tôi sẽ không bao giờ tìm ra điều này, cảm ơn bạn đã trả lời câu hỏi của riêng bạn. –
Đã lưu lại cho tôi nhiều thời gian! –
Vì vậy, giải pháp là bao gồm 'App.config' trong trình cài đặt của bạn? – Jess