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 服务总线