Vấn đề
Sau khi cài đặt gói Microsoft ASP.NET Web API OData 5.0.0-rc1, vui lòng kết thúc với ngoại lệ sau:
Không thể tải tệp hoặc lắp ráp 'System.Web.Http, Phiên bản = 4.0.0.0, Văn hóa = trung lập, PublicKeyToken = 31bf3856ad364e35' hoặc một trong các phụ thuộc của nó. Định nghĩa tệp kê khai của hội đồng định vị không khớp với tham chiếu hợp ngữ. (Ngoại lệ từ HRESULT: 0x80131040)
Dự án MVC 4 của tôi là hoàn toàn mới và thực sự nhỏ, không có gì lạ mắt trong đó. Tôi nhắm mục tiêu .NET framework 4.5
Tôi cần gói nuget này để triển khai PATCH bằng cách sử dụng lớp Delta (Khi tôi sử dụng phiên bản 4.0.0.0 của gói, lớp Delta không hoạt động).
Lam sao tôi co thể sửa no?
Các phiên bản System.Web.Http của tôi
Trong GAC, tôi có phiên bản 5.0.0.0 của System.Web.Http
gacutil -l System.Web.Http Global Assembly Cache chứa các tập hợp sau: System.Web.Http, Version = 5.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35, processorArchitecture = MSIL
Trong Visual Studio , khi tôi duyệt các hội đồng, phiên bản System.Web.Http đã cho là 4.0.0.0 (Tại sao?)
Trong dự án của tôi , tham chiếu đến System.Web.Http
- Có phiên bản 5.0.0.0
- Trỏ đến thư mục \ lib \ net45 \ của gói
- Có CopyLocal = true
Những điều tôi đã thử
Tôi đã cố gắng liên kết chuyển hướng v 4.0.0.0 đến 5.0.0.0 trong Web.config
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="4.0.0.0-4.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
Nhưng nó cho tôi một ngoại lệ khác:
Cố gắng bằng phương pháp 'System.Web.Http.GlobalConfiguration..cctor ()' để truy cập trường 'System.Web.Http.GlobalConfiguration.CS $ <> 9__CachedAnonymousMethodDelegate2' không thành công.
Tôi đoán rằng v 4.0.0.0 thực sự cần được sử dụng bởi công cụ Web Api cốt lõi.
Các câu hỏi được liên kết
Lỗi phân tích mã Không thể tải tệp hoặc lắp ráp 'System.Net.Http, Phiên bản = 2.0.0.0 trong API Web MVC4 Không thể tải tệp hoặc lắp ráp' System.Net.Http, Phiên bản = 2.0.0.0 trong API Web MVC4