16

Tôi có một dự án asp.net MVC 4 với MEF và RavenBD.Làm thế nào để giải quyết Antlr3 phụ thuộc địa ngục

Khi tải dự án nó ném ngoại lệ này: Không thể tải tập tin hoặc lắp ráp Antlr3.Runtime.dll

Tôi đã tìm thấy rằng cả hai RavenDB và WebGrease (cài đặt với MVC 4) sử dụng Antlr3. Nhưng WebGrease đi kèm với dll Antlr3 riêng của nó, được ký bởi Microsoft - PublicKeyToken 31bf3856ad364e35

Mặc định Antlr3 PublicKeyToken là eb42632606e9261f.

RavenDB và WebGrease sử dụng cùng phiên bản Antlr3 3.3.1.7705

Làm cách nào để giải quyết vấn đề này?

+1

RavenDB sẽ loại bỏ các dep Antlr3 sớm –

+0

@ Ayende-rahien Cảm ơn bạn Ayende cho thông tin. Thật không may tôi sẽ có cùng một vấn đề nếu một phụ thuộc của tôi sẽ phụ thuộc vào Antlr3. Tôi có nghĩa là vấn đề không phải là do RavenDB nhưng WebGrease đang sử dụng phiên bản Antlr3 được biên dịch riêng của mình. – W3Max

Trả lời

6

Rất tiếc, tôi không tìm thấy giải pháp cho các phụ thuộc xung đột của cùng một phiên bản có chữ ký khác nhau.

Nhưng tin tốt là một trong những người đóng góp của WebGrease, Howard Dierking, đã trả lời các thắc mắc của tôi qua email. Đây là câu trả lời của anh ấy:

Xin chào Maxime - xin lỗi vì bạn đã gặp phải điều này. Tôi đang làm việc để làm một vài điều cần nhanh chóng giải quyết vấn đề này:

1) Chuẩn bị một bản cập nhật để gói ANTLR với phiên bản mới nhất ANTLR - sẽ kiểm tra và push to nuget.org

2) Làm việc với nhóm WebGrease để thay đổi gói NuGet của họ để nó không gửi antlr.dll mà thay vào đó là gói phụ thuộc - khi nói chuyện với họ, họ không biết rằng gói đã tồn tại.

Điều này sẽ giải quyết vấn đề địa ngục dll mà bạn gặp phải. Hy vọng rằng việc này sẽ không mất hơn một vài tuần với những ngày nghỉ lễ.

Cảm ơn,

_howard

+0

hiện đang gặp sự cố tương tự. Bạn đã giải quyết điều đó? My 'WebGrace varsion 1.3.0' (mới nhất từ ​​Nuget) phiên bản' Antlr3.Runtime 3.3.1.7705' (xuất phát từ Nuget) – Kuncevic

1

tôi đã cùng một vấn đề và giải quyết nó bằng cách xóa tất cả các dự án từ máy tính của tôi, nhận được phiên bản mới nhất từ ​​máy chủ và xây dựng lại tất cả các phụ thuộc NuGet sau khi dự án nạp vào. Bạn có thể thử điều này, nó làm việc cho tôi.

Dường như một số phụ thuộc NuGet để lại một số thùng rác đằng sau sau khi bị gỡ bỏ và đó là cách duy nhất để thực hiện một sạch sẽ xây dựng lại cho tất cả các giải pháp

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