Azure 构建 - 命名空间“Microsoft”中不存在类型或命名空间名称“OpenApi”

Posted

技术标签:

【中文标题】Azure 构建 - 命名空间“Microsoft”中不存在类型或命名空间名称“OpenApi”【英文标题】:Azure Builds - The type or namespace name 'OpenApi' does not exist in the namespace 'Microsoft' 【发布时间】:2020-06-03 15:10:04 【问题描述】:

鉴于: Azure Builds 新手

我有一个使用 Swashbuckle.AspNetCore 的简单 WebApi 项目。在本地一切正常(当然),但是当我尝试在 Azure 构建中构建时,我收到以下错误:

命名空间中不存在类型或命名空间名称“OpenApi” '微软'

我将 SwashBuckle 和 OpenApi NuGet 包添加到 Azure Artifacts 并在我的构建脚本中引用。

- task: NuGetCommand@2
  inputs:
    command: 'restore'
    restoreSolution: '**/*.sln'
    feedsToUse: 'select'
    vstsFeed: '/12b2f6b8-fb61-4aac-a526-27a85a46a5b4'

/reference:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Xml.XPath.XDocument.dll" /reference:"C :\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\WindowsBase.dll" /debug+ /debug:portable /filealign:512 /optimize+ /out:obj\Release\ netcoreapp3.1\ApiApplication1.dll /target:exe /warnaserror- /utf8output /deterministic+ /analyzer:"C:\Program Files\dotnet\sdk\3.1.202\Sdks\Microsoft.NET.Sdk.Web\analyzers\cs\ Microsoft.AspNetCore.Analyzers.dll" /analyzer:"C:\Program Files\dotnet\sdk\3.1.202\Sdks\Microsoft.NET.Sdk.Web\analyzers\cs\Microsoft.AspNetCore.Mvc.Analyzers.dll" /analyzer:"C:\Program Files\dotnet\sdk\3.1.202\Sdks\Microsoft.NET.Sdk.Web\analyzers\cs\Microsoft.AspNetCore.Components.Analyzers.dll" Controllers\WeatherForecastController.cs Program.cs Startup.cs WeatherForecast.cs "C:\Users\rodneysantiago\AppData\Local\Temp.NETCoreApp,Version=v3.1.AssemblyAttributes.cs" obj\Release\netcoreapp3.1\ApiApplication1.AssemblyIn fo.cs /warnaserror+:NU1605 使用目录中的编译器进行共享编译:C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\Roslyn

[错误]RsWpfAndApiSolution\ApiApplication1\Startup.cs(12,17):错误 CS0234:命名空间“Microsoft”中不存在类型或命名空间名称“OpenApi”(您是否缺少程序集引用?) H2>

Startup.cs(12,17):错误 CS0234:命名空间“Microsoft”中不存在类型或命名空间名称“OpenApi”(您是否缺少程序集引用?)[C:\agent2_work\2\s \RsWpfAndApiSolution\ApiApplication1\ApiApplication1.csproj] 完成构建项目“C:\agent2_work\2\s\RsWpfAndApiSolution\ApiApplication1\ApiApplication1.csproj”(默认目标)——失败。 完成构建项目“C:\agent2_work\2\s\RsWpfAndApiSolution\RsWpfAndApiSolution.sln”(默认目标)——失败。

构建失败。

【问题讨论】:

这部分是不同包 Microsoft.OpenApi 的一部分吗? 我刚刚添加了那个 nuget 包 nuget.exe push -Source "TeamFeed" -ApiKey AzureDevOps c:\lib\microsoft.openapi.1.1.4.nupkg 来喂食,得到了同样的信息 @Rod 尝试在本地打开你的项目,删除包,然后去manage nuget package选择包源,看看你是否会成功构建。 奇怪的是没有包文件夹。我只使用 Swashbuckle.AspNetCore。我更新了帖子。 就我而言,我的一个 NuGet 源返回了 401 Unauthorized 错误。我在构建输出窗口中没有看到这个错误。修复 NuGet 包源导致包正确下载并解决了我的问题。 【参考方案1】:

卸载 Swashbuckle.AspNetCore 并使用同一软件包的最新版本重新安装以解决此错误。不幸的是,VS 没有显示此错误,但它在 CI/CD 中或在命令行中运行时被捕获。

【讨论】:

是的,这对我有用。谢谢。

以上是关于Azure 构建 - 命名空间“Microsoft”中不存在类型或命名空间名称“OpenApi”的主要内容,如果未能解决你的问题,请参考以下文章

命名空间“Microsoft.Azure.WebJobs”中不存在 EventHubTriggerAttribute

命名空间Microsoft.Extensions中不存在缓存

C# 消息队列-Microsoft Azure service bus 服务总线

Azure 管道无法生成,因为它找不到类型或命名空间名称

Microsoft.ServiceBus.Messaging 与 Microsoft.Azure.ServiceBus

如何使用 Azure.Data.Tables 跳过、获取和订购?