Problem
Po zainstalowaniu pakietu Microsoft ASP.NET Web API OData 5.0.0-rc1 prerelease kończy się następującym wyjątkiem:
Nie można załadować pliku lub zestawu „System.Web.Http, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35” lub jednej z jego zależności. Definicja manifestu zlokalizowanego zestawu nie jest zgodna z odwołaniem do zestawu. (Wyjątek od HRESULT: 0x80131040)
Mój projekt MVC 4 jest zupełnie nowy i naprawdę mały, nie ma w nim nic nadzwyczajnego. Celuję w .NET Framework 4.5
Potrzebuję tego pakietu NuGet, aby zaimplementować PATCH przy użyciu klasy Delta (gdy używam wersji 4.0.0.0 pakietu, klasa Delta nie działa).
Jak mogę to naprawić?
Moje wersje System.Web.Http
W GAC mam wersję 5.0.0.0 System.Web.Http
gacutil -l System.Web.Http Globalna pamięć podręczna zestawów zawiera następujące zestawy: System.Web.Http, Version = 5.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35, processorArchitecture = MSIL
W programie Visual Studio podczas przeglądania zestawów dana wersja System.Web.Http to 4.0.0.0 (dlaczego?)
W moim projekcie odniesienie do System.Web.Http
- Ma wersję 5.0.0.0
- Wskazuje folder \ lib \ net45 \ pakietu
- Ma CopyLocal = true
Rzeczy, których próbowałem
Próbowałem powiązać przekierowanie v 4.0.0.0 z 5.0.0.0 w 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>
Ale daje mi kolejny wyjątek:
Próba dostępu metody „System.Web.Http.GlobalConfiguration..cctor ()” do pola „System.Web.Http.GlobalConfiguration.CS $ <> 9__CachedAnonymousMethodDelegate2” nie powiodła się.
Wydaje mi się, że wersja 4.0.0.0 naprawdę musi być używana przez podstawowy silnik Web Api.
Powiązane pytania
Błąd analizy kodu Nie można załadować pliku lub zestawu „System.Net.Http, wersja = 2.0.0.0 w interfejsie API sieci Web MVC4 Nie można załadować pliku lub zestawu” System.Net.Http, wersja = 2.0.0.0 w interfejsie API sieci Web MVC4