c# - Microsoft.AspNetCore.App - Azure Pipelines 是否与 ASP.NET Core 一起使用?
问题描述
我的问题
如何引用框架“Microsoft.AspNetCore.App”并成功构建 Azure Pipeline?
语境
我开始使用 Azure DevOps 并遇到了我的第一个症结。
我有一个 ASP.NET Core 3.1 遇到这个问题,只有在 Azure DevOps 中构建时。本地构建很好;应用程序运行良好。我认为我的管道设置有些问题,但我正在努力确定到底是什么。这是我的错误:
SampleClass.cs(69,19):错误 CS1705:具有标识“Sample,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”的程序集“Sample”使用“Microsoft.AspNetCore.Http.Abstractions,Version=3.1.0.0” ,Culture=neutral,PublicKeyToken=adb9793829ddae60',其版本高于引用的程序集 'Microsoft.AspNetCore.Http.Abstractions',标识为 'Microsoft.AspNetCore.Http.Abstractions,Version=1.0.2.0,Culture=neutral,PublicKeyToken=adb9793829ddae60 '。
Sample的项目文件中的违规依赖项:
<Project Sdk="Microsoft.NET.Sdk.Web">
...
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.14.0" />
我相信这是罪魁祸首,因为它与文档对齐:
- 对 Microsoft.NET.Sdk.App 的隐式引用将 ...Http.Abstraction.dll 解析为3.1.0版本。
- 包括包引用解析 ...Http.Abstraction.dll 在版本1.0.2。
所以这个问题至少得到了解释;错误的文件在磁盘上- 在 Azure Pipelines 中。在我的本地机器上,我看到安装了所有 3.1.0 程序集的框架 Microsoft.AspNetCore.App.Ref 包。当我删除应用洞察依赖项时,我收到新的类型错误,表明在构建期间正在恢复错误的版本。
我需要考虑什么来解决在 Azure Pipelines 中还原错误文件的原因?
我已验证
- 该构建代理应该已经安装了我需要的运行时(涵盖.NET Core 3.1.0),
- Azure DevOps 使用的 msbuild.exe 命令在本地对我来说是成功的,
- 删除应用洞察依赖并不能解决问题(只会将其更改为“您是否缺少程序集”错误)。
msbuild.exe "path\to\Sample.sln" /nologo /nr:false /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:platform="any cpu" /p:configuration= “发布”/p:VisualStudioVersion="16.0"
为什么这对我在本地可以正常工作,但在其他环境中却失败了?
解决方案
推荐阅读
- node.js - 如何更新 rethinkDB 中的嵌套对象
- python - 如何在笔记本 tkinter 中将标签从一个选项卡移动到另一个选项卡?
- c# - C# 图表,当数据只有 12 个月间隔时的 x 轴示例:3 个月
- regex - 正则表达式更改以检测更多预域
- apache-spark - 如何确保 Spark 主节点正在使用工作节点?(谷歌集群)
- linux - 在 Linux 上运行 Powershell 脚本的问题
- html - 中心图像超出 R 中的边距
- webgl - WebGL:强制画布失去上下文
- cucumber - 可以从更高级别的黄瓜场景中调用空手道 DSL 吗?
- android - 如何在 android studio 中将多个项目合并/合并为一个?