【问题标题】:conflict between Azure.Fluent.Management and Azure.Storage.Blobs packages?Azure.Fluent.Management 和 Azure.Storage.Blobs 包之间的冲突?
【发布时间】:2020-08-08 01:11:24
【问题描述】:

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

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

这很好用。今天,我用Nuget(12.4版)安装了Azure.Storage.Blobs包。安装此包后,出现错误:

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

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

【问题讨论】:

    标签: azure asp.net-core azure-blob-storage azure-fluent-api


    【解决方案1】:

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

    IAzure azureConn = Microsoft.Azure.Management.Fluent.Azure
                      .Configure()
                      .Authenticate(credentials)
                      .WithDefaultSubscription();
    

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

    【讨论】:

    • 谢谢,这确实是问题所在。只是一个后续问题:这是设计故障,还是无法避免的事情?我觉得这很奇怪,因为它们都是 Microsoft 库,而 Visual Studio 并没有为此提出解决方案。
    • @CMorgan,我不知道这是否是设计故障。我认为如果它们具有相同的名称,vs 将始终在类上使用命名空间。
    猜你喜欢
    • 2017-02-09
    • 1970-01-01
    • 1970-01-01
    • 2023-02-09
    • 2019-02-09
    • 2018-07-09
    • 1970-01-01
    • 2021-09-23
    • 2012-06-27
    相关资源
    最近更新 更多