如何在GitLab流水线中安装MSBuild以构建.NET Framework 4.6.2项目
GitLab CI 构建.NET Framework 4.6.2项目MSBuild配置方案
方案结论
明确:不建议直接将BuildTools_Full.exe作为二进制文件推送到GitLab仓库使用,原因如下:
BuildTools_Full.exe是MSBuild的安装包,并非可直接执行的MSBuild本体,需要运行安装流程、写入系统注册表并安装配套依赖后才能正常调用,直接放到仓库中无法直接执行Msbuild.exe myProject完成构建- 大体积二进制文件存入代码仓库会大幅提升仓库体积,降低代码拉取、克隆的效率,不符合代码仓库的使用规范
可直接使用的落地配置
你当前配置中使用的mcr.microsoft.com/dotnet/framework/sdk是微软官方提供的.NET Framework SDK镜像,已经预安装了适配.NET Framework 4.6.2的MSBuild工具链,不需要额外手动下载安装,你只需要调整配置中MSBuild的路径指向镜像内的默认安装位置即可。
你可以直接使用如下修正后的.gitlab-ci.yml配置,提交到你的项目仓库即可正常触发构建流程:
.shared_windows_runners: tags: - shared-windows - windows - windows-1809 stages: - build build: extends: - .shared_windows_runners stage: build image: mcr.microsoft.com/dotnet/framework/sdk script: - echo "开始构建项目" # 调用镜像内预安装的MSBuild - '& "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\MSBuild.exe" WebCICD.sln'
如果担心镜像更新后MSBuild路径变动,可以用vswhere工具动态获取路径,调整script部分如下:
script: - $msbuildPath = & "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -products * -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\MSBuild.exe" | select -first 1 - '& $msbuildPath WebCICD.sln'
内容的提问来源于stack exchange,提问作者Doraemon
相关产品推荐
相关产品推荐

