如何解决这两个名称空间之间的冲突?

时间:2019-04-08 14:56:23

标签: visual-studio azure-files

在我的代码中,我同时使用这两个名称空间,并且在我尝试使用两个名称空间中都存在的CopyStatus之前,它们都可以正常工作。这段代码在具有完全相同的名称空间的LINQPad5中可以正常工作,但是在VS2019中,我发现它无法对Storage.File类中的CopyState进行罚款。

using Microsoft.WindowsAzure.Storage.Blob;
using Microsoft.WindowsAzure.Storage.File;

LINQPad5中的代码

CloudFile file = share.GetRootDirectoryReference().GetFileReference(myfile);

string blobSas = blob.GetSharedAccessSignature(new SharedAccessBlobPolicy()
{
    Permissions = SharedAccessBlobPermissions.Read,
    SharedAccessExpiryTime = DateTime.UtcNow.AddHours(24)
});
Uri blobSasUri = new Uri(blob.StorageUri.PrimaryUri.ToString() + blobSas);
file.StartCopy(blobSasUri);
file.FetchAttributes();

int count=0;
while (file.CopyState.Status != Microsoft.WindowsAzure.Storage.File.CopyStatus.Success)
{
    Thread.Sleep(1000);
    Console.WriteLine(@"{0} - Sleep one second", count++.ToString());
    file.FetchAttributes();
}

但是这个(几乎)相同的代码在VS2109中不起作用。

enter image description here

file.StartCopy(bpe.BlobUri);
file.FetchAttributes();
while (file.CopyState.Status != Microsoft.WindowsAzure.Storage.File.CopyStatus.Success)

显示Microsoft.WindowsAzure.Storage.File。 CopyStatus 的图片不 存在。

enter image description here

2 个答案:

答案 0 :(得分:1)

此问题可能主要是由于VS 2019中缺少一个块,我建议安装最新的WindowsAzure.storage Nugget here 重新启动VS,然后重试。

答案 1 :(得分:1)

解决方案是升级到.NET Framework 4.7.2,并在NuGet中安装Microsoft.WindowsAzure.Storage.DataMovement而不是Microsoft.WindowsAzure.Storage。

然后限定using语句:

using AF=Microsoft.WindowsAzure.Storage.File;
using AB=Microsoft.WindowsAzure.Storage.Blob;