Azure.Fluent.Management 和 Azure.Storage.Blobs 包之间的冲突?
Posted
技术标签:
【中文标题】Azure.Fluent.Management 和 Azure.Storage.Blobs 包之间的冲突?【英文标题】:conflict between Azure.Fluent.Management and Azure.Storage.Blobs packages? 【发布时间】: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 项目中使用它。
【问题讨论】:
【参考方案1】:你应该使用全限定类名而不是Azure
类来解决冲突,下面的代码是可以的:
IAzure azureConn = Microsoft.Azure.Management.Fluent.Azure
.Configure()
.Authenticate(credentials)
.WithDefaultSubscription();
原因是安装Azure.Storage.Blobs
后,有一个命名空间Azure
包含用于blob 存储。所以在代码中,当你输入Azure.Configure()
时,编译器会混淆,Azure
是namespace
还是class
?当然,它会将Azure
视为一个命名空间(这里Azure
命名空间用于存储blob),但Configure()
方法不在此命名空间中,则会抛出此类错误。
【讨论】:
谢谢,这确实是问题所在。只是一个后续问题:这是设计故障,还是无法避免的事情?我觉得这很奇怪,因为它们都是 Microsoft 库,而 Visual Studio 并没有为此提出解决方案。 @CMorgan,我不知道这是否是设计故障。我认为如果它们具有相同的名称,vs 将始终在类上使用命名空间。以上是关于Azure.Fluent.Management 和 Azure.Storage.Blobs 包之间的冲突?的主要内容,如果未能解决你的问题,请参考以下文章
第三十一节:扫盲并发和并行同步和异步进程和线程阻塞和非阻塞响应和吞吐等
shell中$()和 ` `${}${!}${#}$[] 和$(()),[ ] 和(( ))和 [[ ]]
Java基础8---面向对象代码块和继承和this和super和重写和重载和final
Java基础8---面向对象代码块和继承和this和super和重写和重载和final
JS中some()和every()和join()和concat()和pop(),push(),shift(),unshfit()和map()和filter()