Não foi possível carregar o erro Microsoft.Data.OData Version = 5.2.0.0 no Microsoft Azure Cloud Worker Role using Table Storage

Eu tenho um problema muito peculiar usando o armazenamento de tabela do Azure. Eu tenho um projeto do .NET 4.5 no Visual Studio 2012 onde eu lido com todas as minhas funções de armazenamento de tabela do Azure. Este projeto / dll é referenciado por dois outros projetos, meu site do MVC e meu Papel do Trabalhador do Azure. (Eu estou executando sob os emuladores do Azure na minha máquina, mas também acontece quando eu implantar na nuvem)

Eu tenho a seguinte função que é chamada quando eu salvar ou recuperar um registro:

internal static CloudTable GetTable(CloudStorageAccount storageAccount, string tableReference)
{
    CloudTableClient tableClient = storageAccount.CreateCloudTableClient();

    CloudTable table = tableClient.GetTableReference(tableReference);
    table.CreateIfNotExists();

    return tableClient.GetTableReference(table.Name);
}

No meu site do MVC, tenho uma função que salvará um registro em uma tabela do Armazenamento do Azure e, em minha Função de Trabalhador do Azure, haverá um serviço que lerá o registro.

Portanto, ambos usam a mesma dll para armazenamento e recuperação, no entanto meu projeto MVC não tem problemas para salvar o registro, mas no serviço de função do Azure Worker quando ele tenta recuperar o registro lança a exceção quando tenta executar "table.CreateIfNotExists () ".

Não foi possível carregar o arquivo ou assembly 'Microsoft.Data.OData, Version = 5.2.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' ou uma de suas dependências. A definição de manifesto do assembly localizado não corresponde à referência de assembly. (Exceção de HRESULT: 0x80131040)

Já fiz o seguinte:

Atualizados todos os pacotes do NuGet do nível da solução para as versões mais recentesEu passei por todas as referências de projeto para ter certeza de que não há dll antigo ou versões anteriores por aí, em particular o System.Spatial, Microsoft.WindowsAzure.Configuration, Microsoft.WindowsAzure.ServiceRuntime e Microsoft.ServiceBus, Microsoft.WindowsAzure.Storage, Microsoft.Data.Edm e Microsoft.Data.ODataEu até criei um novo projeto Cloud Service e WorkerRole a partir do zero para ter certeza de que não é algo no projeto WorkerRole atual que está quebrado.

Eu não rolei a dll de volta para 5.2 como eu tinha muitos problemas em outros projetos onde eu uso recursos que são específicos de 5.3 em diante.

Atualmente estou executando todos os dll em 5.5.

Quando eu executo o utilitário AsmSpy.exeAqui, Recebo a seguinte saída que não tenho 100% de certeza de como interpretar.

> Reference: Microsoft.Data.Edm
>         5.5.0.0 by Microsoft.Data.OData
>         5.5.0.0 by Microsoft.Data.Services.Client
>         5.5.0.0 by Microsoft.WindowsAzure.ActiveDirectory.GraphHelper.2013_04_05
> Reference: System.Spatial
>         5.5.0.0 by Microsoft.Data.OData
>         5.5.0.0 by Microsoft.Data.Services.Client Reference: Microsoft.Data.OData
>         5.5.0.0 by Microsoft.Data.Services.Client
>         5.2.0.0 by Microsoft.WindowsAzure.Storage   <-- THIS SEEMS TO BE THE ONE THAT IS CAUSING ISSUES

Como eu interpreto, é que o dll Microsoft.WindowsAzure.Storage está fazendo referência V 5.2.0.0 da dll Microsoft.Data.OData, mas como faço para corrigir isso, se este é o problema? De acordo com a documentação que vi na dll de armazenamento é que é para referir-se a 5.4 e para cima, não 5.2 ...?

questionAnswers(5)

yourAnswerToTheQuestion