2013-11-26 24 views
1

我有Azure存储SDK 2.0(内部包含存储客户端库1.7.0)。我使用下面的方法来从的拷贝的blob T.StartCopyFromBlob不适用于Azure

var blockBlob = blobContainer.GetBlockBlobReference(azureBlobName); 

blockBlob.StartCopyFromBlob(new Uri(amazonObjectUrl), null, null, null); 

但我收到以下错误:

Error 2 'Microsoft.WindowsAzure.StorageClient.CloudBlob' does not contain 
a definition for 'CopyState' and no extension method 'CopyState' accepting a first argument 
of type 'Microsoft.WindowsAzure.StorageClient.CloudBlob' could be found (are you missing a 
using directive or an assembly reference?) 

你能帮我吗?

+0

您有使用存储客户端库1.7版的任何特定原因吗? –

+0

不,没有理由为什么我想要使用** 1.7.0 **,但是当我从NuGet下载Azure存储包时,它会自动添加SCL 1.7.0。我想使用2.0或1.7.1,但我不能。 – iomca4u

回答

0

你应该做的是摆脱旧库的所有引用。所以你的代码不应该有对​​命名空间的任何引用。相反,您的代码应该使用Microsoft.WindowsAzure.Storage,Microsoft.WindowsAzure.Storage.AuthMicrosoft.WindowsAzure.Storage.Blob名称空间,它们是该库的2.0版本的一部分。

如果这是一个全新的项目,那么你应该没问题。但是,如果它是一个您正在尝试升级的旧项目,则该库的2.0版本会发生一些变化,这会破坏使用1.7版本的代码。如果您要从1.7迁移到2.0,您可能会发现此博客文章很有用:http://gauravmantri.com/2012/11/28/storage-client-library-2-0-migrating-blob-storage-code/

+0

但是,如果我删除Microsoft.WindowsAzure.StorageClient那么我如何继续使用StorageCredentialsAccountAndKey方法?我正在使用您在[link]中找到的代码片断(http://gauravmantri.com/2012/06/14/how-to-copy-an-object-from-amazon-s3-to-windows-azure-blob- storage-using-copy-blob /) – iomca4u

+0

您需要在'Microsoft.WindowsAzure.Storage.Auth'命名空间中使用'StorageCredentials'类。博客文章是用1.7.1库编写的。 2.0版本之后相当一段时间。 –

相关问题