Azure.Fluent.Management 和 Azure.Storage.Blobs 包之间存在冲突吗?

CMo*_*gan 3 azure azure-blob-storage asp.net-core azure-fluent-api

在我的项目中,我安装了该Microsoft.Azure.Management.Fluent软件包(版本 1.27)来为我的 azure 订阅进行资源管理。我的连接对象如下所示:

AzureCredentials credentials = GenerateCredentials(); // custom method that returns my creds.
IAzure azureConn = Azure
   .Configure()
   .Authenticate(credentials)
   .WithDefaultSubscription();
Run Code Online (Sandbox Code Playgroud)

这很好用。今天,我安装了Azure.Storage.Blobs软件包Nuget(版本 12.4)。安装这个包后,我得到一个错误:

> CS0234 C# The type or namespace name 'Configure' does not exist in the
> namespace 'Azure' (are you missing an assembly reference?)
Run Code Online (Sandbox Code Playgroud)

当我卸载该Azure.Storage.Blobs软件包时,错误消失。这里可能发生了什么?我在 Net Core 2.2 MVC 项目中使用它。

Iva*_*ang 5

您应该使用完全限定的类名而不是Azure类来解决冲突,下面的代码可以:

IAzure azureConn = Microsoft.Azure.Management.Fluent.Azure
                  .Configure()
                  .Authenticate(credentials)
                  .WithDefaultSubscription();
Run Code Online (Sandbox Code Playgroud)

原因是安装后Azure.Storage.Blobs,包含了一个Azure用于blob存储的命名空间。所以在代码中,当你输入 时Azure.Configure(),编译器会混淆,Azurenamespace还是class?显然,它会认为Azure是一个命名空间(这里,Azure命名空间是用于blob存储的),但是该Configure()方法不在这个命名空间中,那么就会抛出这样的错误。