TableOperation存在于两个DLL中

时间:2014-02-01 16:30:54

标签: c# azure azure-storage azure-table-storage azure-sdk-.net

我正在为Windows Azure开发一个应用程序,并且刚开始使用存储API的2.1.0.4版(存储模拟器尚不支持最新版本)的azure表存储。当我现在尝试执行TableOperation时:

cloudTable.Execute(TableOperation.Insert(entity));

我得到以下异常:

  

'Microsoft.WindowsAzure.Storage.dll'和'Microsoft.WindowsAzure.Diagnostics.StorageUtility.dll'中存在“Microsoft.WindowsAzure.Storage.Table.TableOperation”类型

我怎样才能让它发挥作用?
我使用的是不兼容的Diagnostics版本(它来自Azure SDK 2.2)吗?

2 个答案:

答案 0 :(得分:2)

免责声明,我在Microsoft工作的团队中负责提供Storage SDK库。

诊断库使用特殊的子包来避免与用户选择的存储sdk依赖关系发生任何版本冲突。为此,他们基本上IL将存储库及其依赖项(odatalib)注入此实用程序DLL。但是这些类型被标记为内部,因此您不应该看到此编译器错误,因为内部类型应该对您隐藏。我试图通过使用SDK 2.2创建一个新的云项目并添加对您提到的StorageUtility.dll的引用并在使用存储类型时没有收到类似的编译器错误来重现这一点。您能否提供有关您的repro,项目设置等的更多信息。

由于

答案 1 :(得分:0)

作为一种解决方法,我使用了外部别名功能:
Having problems when two of referenced assemblies both define type A.A1

但我仍然想要一个“好的解决方案”......