2013-11-26 22 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版本之後相當一段時間。 –

相關問題