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