2013-05-02 9 views
5

Moja hostowana usługa korzysta z usługi Azure Storage 2.0 (dokładnie 2.0.5.1 z Nuget). W Visual Studio 2010 nie miałem problemu. Przeszedłem do Visual Studio 2012 i teraz w jakiejś stronie internetowej mojej roli głównej internetowej pojawia się następujący wyjątek typu Microsoft.WindowsAzure.Storage.StorageException:Błąd podczas ładowania Azure Storage 2.0 - nie można załadować Microsoft.Data.OData 5.0.2

Could not load file or assembly 'Microsoft.Data.OData, Version=5.0.2.0, 
Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. 
The located assembly's manifest definition does not match 
the assembly reference. (Exception from HRESULT: 0x80131040) 

podczas Azure Storage 2.0.5.1 wymaga Microsoft.Data.OData 5.2.0.0. Pozostałe role pracowników działają dobrze i wydają się znajdować prawidłowy zespół. W każdym projekcie Azure Storage 2.0 jest instalowany z Nuget, a wszystkie odniesienia wskazują na folder packages.

Używam Azure SDK 1.8 w .NET 4.0 - oznacza to, że również korzystam z klienta Azure Storage Client 1.7.

Odpowiedz

4

Po krótkim dochodzeniu odkryłam, że ta strona ładowane Microsoft.WindowsAzure.Storage ze ścieżki SDK, ta sama ścieżka, z którego ładowany Microsoft.WindowsAzure.StorageClient w innych zespołach - w oknach modułów w Visual Studio widzę, że iisexpress ładuje montażowe z wersją pliku 2.0.0.0. W moim rozumieniu odniesienie do Microsoft.WindowsAzure.StorageClient może zmusić program Visual Studio do załadowania Microsoft.WindowsAzure.Storage z niewłaściwej ścieżki.

Po odrobinie manipulowania przeniosłem zespół Microsoft.WindowsAzure.Storage z folderu SDK, zmuszając Visual Studio do odniesienia się do zespołu pobranego przez Nuget - w ten sposób nie miałem problemu.

Ewentualnie mogę też przenieść Microsoft.WindowsAzure.StorageClient do innej lokalizacji i zmienić referencje w moim projekcie - ale to będzie zupełnie bezużyteczne, ponieważ zamierzam całkowicie przejść na Azure Storage 2.0 (na przykład mam nadzieję, że na Azure SDK 2.0 Diagnostics używa Storage 2.0).

+2

Można również użyć wiążącego przekierowania, które wydaje się być tym, co biblioteka robi mimo to. –

+0

@ Prawidłowa obserwacja prawidła. Zazwyczaj wolałbym śledzić przyczynę problemu z ładowaniem zespołu, ponieważ może on ukryć pewne "podstawowe" problemy (na przykład w tym przypadku zespoły załadowane z niewłaściwej ścieżki) i tylko w ostateczności (kiedy nie mogę znaleźć przyczyną problemu) użyj przekierowania zespołu. – edymtt

Powiązane problemy