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

基于net7.0-windows构建Docker镜像遇System.Drawing.Common问题求助

问题:Docker构建含System.Drawing.Common的.NET项目报错,是否需要修改Dockerfile?

背景

我之前在Stack Overflow上提问过控制台应用中添加System.Drawing.Common的相关问题,现在在Visual Studio Code中构建Docker镜像时出现报错:
报错截图

我希望能在Docker中运行该项目,已按照建议修改了项目的.csproj文件,代码如下:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net7.0-windows</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>    
    <UseWPF>True</UseWPF>
    <Nullable>enable</Nullable>
    <EnableWindowsTargeting>true</EnableWindowsTargeting> <!-- 添加此行 -->
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="DSharpPlus" Version="5.0.0-nightly-01492" />
    <PackageReference Include="DSharpPlus.CommandsNext" Version="5.0.0-nightly-01492" />
    <PackageReference Include="DSharpPlus.Interactivity" Version="5.0.0-nightly-01492" />
    <PackageReference Include="DSharpPlus.SlashCommands" Version="5.0.0-nightly-01492" />
    <PackageReference Include="LibGit2Sharp" Version="0.26.2" />
    <PackageReference Include="RestSharp" Version="109.0.1" />
    <PackageReference Include="System.Drawing.Common" Version="7.0.0" />
    <PackageReference Include="System.Threading.Timer" Version="4.3.0" />
    <PackageReference Include="TwitchLib.Api" Version="3.9.0-preview-f7f2908" />
  </ItemGroup>

</Project>

但尚未修改Dockerfile,当前Dockerfile代码如下:

FROM mcr.microsoft.com/dotnet/runtime:7.0 AS base
WORKDIR /app
 
# 创建非root用户并赋予/app目录权限
RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app
USER appuser
 
 
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
WORKDIR /src
COPY ["DockerConsole.csproj", "./"]
RUN dotnet restore "DockerConsole.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "DockerConsole.csproj" -c Release -o /app/build
 
FROM build AS publish
RUN dotnet publish "DockerConsole.csproj" -c Release -o /app/publish /p:UseAppHost=false
 
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "DockerConsole.dll"]

请问是否需要对Dockerfile进行修改?


内容的提问来源于Stack Exchange,提问作者Cost

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 11:07:16