You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bitbucket Pipeline构建.NET 4.8项目失败,求解决方案

解决Bitbucket Pipeline构建.NET Framework 4.8项目的问题

问题原因拆解

1. 使用.NET 5 SDK镜像构建失败

你用mcr.microsoft.com/dotnet/sdk:5.0镜像时遇到的错误:

error MSB3644: 未找到.NETFramework,Version=v4.8的引用程序集。请安装该框架版本的Developer Pack(SDK/目标包)或重新定向应用程序。可从https://aka.ms/msbuild/developerpacks下载.NET Framework Developer Packs。

这是因为.NET 5 SDK镜像面向的是.NET Core/.NET 5+生态,默认不包含.NET Framework 4.8的引用程序集。你本地安装的Developer Pack只作用于本地开发环境,Pipeline的容器环境和本地完全隔离,无法共享这个安装。

2. .NET Framework 4.8镜像拉取及启动失败

你尝试mcr.microsoft.com/dotnet/framework/sdk:4.8等镜像时遇到的两个错误:

rpc error: code = NotFound desc = failed to pull and unpack image "mcr.microsoft.com/dotnet/framework/sdk:4.8": no match for platform in manifest: not found
failed to create containerd task: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/bin/sh": stat /bin/sh: no such file or directory: unknown.

核心原因是微软官方的.NET Framework SDK/runtime镜像仅支持Windows容器,而Bitbucket Pipeline默认使用的是Linux容器环境:

  • 平台不匹配导致镜像拉取失败(Linux环境找不到Windows镜像的manifest)
  • Windows容器使用的是CMD/PowerShell,而非Linux的/bin/sh,所以容器启动时找不到shell命令。

可行解决方案

方案一:使用Mono镜像在Linux环境构建

Mono是.NET Framework的开源实现,支持在Linux上构建.NET Framework 4.8项目。可以在Bitbucket Pipeline中使用Mono的SDK镜像:

示例bitbucket-pipelines.yml配置:

image: mono:6.12-sdk

pipelines:
  default:
    - step:
        name: Build .NET Framework 4.8 Project
        script:
          - msbuild YourSolution.sln /p:Configuration=Release /p:Platform="Any CPU"

方案二:配置Bitbucket Pipeline使用Windows Runner

如果必须使用官方.NET Framework SDK镜像,需要将Pipeline切换到Windows运行环境:

  1. 启用Bitbucket的Windows Runner(可选择托管型或自托管型)
  2. 在bitbucket-pipelines.yml中指定Windows环境和.NET Framework 4.8 SDK镜像:

示例配置:

image: mcr.microsoft.com/dotnet/framework/sdk:4.8

pipelines:
  default:
    - step:
        name: Build with .NET Framework 4.8 SDK
        runs-on: windows
        script:
          - msbuild YourSolution.sln /p:Configuration=Release

注意:托管型Windows Runner需要Bitbucket Cloud的特定计划支持,自托管型则需要你自行部署Windows服务器作为Runner节点。


内容的提问来源于stack exchange,提问作者user27594537

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 17:48:19