.net - 加载 Azure 存储 2.0 时出错 - 无法加载 Microsoft.Data.OData 5.0.2

标签 .net azure visual-studio-2012 nuget azure-storage

我的托管服务使用 Azure Storage 2.0(确切地说是来自 Nuget 的 2.0.5.1)。在 Visual Studio 2010 下我没有任何问题。我切换到 Visual Studio 2012,现在在我的主要 Web 角色的某些网站中,我收到以下类型为 Microsoft.WindowsAzure.Storage.StorageException 的异常:

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)

而 Azure 存储 2.0.5.1 需要 Microsoft.Data.OData 5.2.0.0 。其他 worker 角色工作得很好,他们似乎找到了正确的装配。在每个项目中,Azure Storage 2.0 都是从 Nuget 安装的,所有引用都指向 packages 文件夹。

我在 .NET 4.0 下使用 Azure SDK 1.8 - 这意味着我还使用 Azure 存储客户端 1.7。

最佳答案

经过一番调查,我发现该网站从 SDK 路径加载了 Microsoft.WindowsAzure.Storage,与我加载 Microsoft.WindowsAzure.StorageClient 的路径相同> 在其他程序集中 - 在 Visual Studio 的模块窗口中,我可以看到 iisexpress 加载文件版本为 2.0.0.0 的程序集。据我了解,对 Microsoft.WindowsAzure.StorageClient 的引用可能会强制 Visual Studio 从错误的路径加载 Microsoft.WindowsAzure.Storage

经过一番摆弄后,我将 Microsoft.WindowsAzure.Storage 程序集移出 SDK 文件夹,强制 Visual Studio 引用 Nuget 下载的程序集 - 这样我就没有问题了.

另一种方法是,我还可以将 Microsoft.WindowsAzure.StorageClient 移动到另一个位置并更改项目中的引用 - 但这毫无用处,因为我计划移动到 Azure Storage 2.0完全(例如,我希望在 Azure SDK 2.0 诊断中使用存储 2.0)。

关于.net - 加载 Azure 存储 2.0 时出错 - 无法加载 Microsoft.Data.OData 5.0.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16345631/

相关文章:

c# - 使用System.Net.Socket,我们如何知道远程套接字何时关闭?

c# - Math.Round() 为 double 产生意想不到的结果

c# - 'Enums' 类中不允许代码优先枚举? (英孚 5)

Terraform 中的 Azure 应用服务粘性槽设置

c++ - 在 Visual Studio 2012 中跟踪 LNK1112 错误

tsql - 在 Visual Studio 2012 中使用数据库项目和 SQL Data Tools : How do I get temp tables to resolve?

.net - 当数据库中数据不可用时测试 SQL Server 存储过程的任何工具。

azure - 部署到 azure 应用服务时站点不显示

azure - 静默访问 token 如何用于 azure b2c

azure - 在 VS 2012 Express for web 中打开 .ccproj 文件