Azure devops 中的 Docker 构建失败并显示消息无法加载文件或程序集“Microsoft.CodeAnalysis,

Posted

技术标签:

【中文标题】Azure devops 中的 Docker 构建失败并显示消息无法加载文件或程序集“Microsoft.CodeAnalysis,【英文标题】:Docker build in Azure devops failing with message Could not load file or assembly 'Microsoft.CodeAnalysis, 【发布时间】:2019-12-17 03:50:39 【问题描述】:

我有一个 Docker 构建作为 Azure devops 构建管道中的任务运行。最近,我不得不在项目中添加一个 git 子模块,其中包含一个引用 Entity Framework Core 的 .Net Standard 2.0 库。现在,当我运行构建时,我收到以下错误消息:

CSC:错误 CS8032:分析器实例 Microsoft.EntityFrameworkCore.RawSqlStringInjectionDiagnosticAnalyzer 不能从创建 /root/.nuget/packages/microsoft.entityframeworkcore.analyzers/2.2.1/analyzers/dotnet/cs/Microsoft.EntityFrameworkCore.Analyzers.dll :无法加载文件或程序集“Microsoft.CodeAnalysis, 版本=2.8.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35'。 系统找不到指定的文件.. [/.../MyProject.csproj]

我尝试将 Microsoft.CodeAnalysis nuget 包添加到项目中,但这只会导致更多错误消息。我也尝试添加 Microsoft.Net.Compilers,但它只能在完整的 .Net 框架下构建,因此不适用于我们管道的其他领域。

正在使用的构建代理是托管的 Ubuntu 1604,它应该具有最新的 .NET 核心 SDK。一切都在本地编译。

【问题讨论】:

【参考方案1】:

发现问题。我的目标是 dockerfile 中的旧 .Net 版本。

旧命令:

FROM microsoft/aspnetcore-build:2.0.0 as build

新命令:

FROM microsoft/aspnetcore-build as build

【讨论】:

以上是关于Azure devops 中的 Docker 构建失败并显示消息无法加载文件或程序集“Microsoft.CodeAnalysis,的主要内容,如果未能解决你的问题,请参考以下文章

Azure Devops Pipeline YAML 中的 Git 标记名称

DevOps 和 Azure 应用服务中的环境变量

基于Docker托管Azure DevOps代理

使用 Azure DevOps 构建管道将机密传递给容器时,Docker BuildKit 返回“/run/secrets/<secret-id>:没有这样的文件或目录”

您如何使用Azure Devops CLI下载构建工件?

Azure DevOps 中的多个 YAML 构建管道