在 Class 库(.NET 标准)中找不到位图 Class

Cannot find Bitmap Class in Class Library (.NET Standard)

我想制作一个 Class 库(.NET 标准),我正在使用 System.Drawing、

但我收到错误消息:

CS0246 C# The type or namespace name 'Bitmap' could not be found (are you missing a using directive or an assembly reference?)

我正在使用 .NET Standard 2.0。

更新

截至上个月(2018 年 5 月),Microsoft 发布了 System.Drawing.Common 的生产版本(之前为 preview/RC),这是一个取代 CoreCompat.System.Drawing 两个版本的 NuGet 包包裹。这应该在以后使用。

对于使用 docker

的用户

您还需要在最终 docker 图像中使用 libgdiplus 库,因为 System.Drawing.Common 依赖于此。您可以使用以下 Dockerfile 命令安装它:

RUN apt-get update \
    && apt-get install -y libgdiplus libc6-dev \
    && ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll \
    && ln -s /usr/lib/x86_64-linux-gnu/libdl.so /lib64/libdl.so.2 \
    && ln -s /usr/lib/x86_64-linux-gnu/libdl.so /lib64/libdl.so

旧答案

现在您可以使用 CoreCompat.System.Drawing nuget 包。

我们已经在生产代码中使用它几个月了(在视频屏幕上绘制)并且它一直运行良好。它基本上是 System.Drawing.

的替代品

我是 CoreCompat.System.Drawing 的作者。如果您使用的是 .NET Core 2.0,我建议您改用 System.Drawing.Common,这是 Microsoft 为 .NET Core 维护的 System.Drawing 实现。

如果您使用的是 Linux 或 macOS,请务必安装 libgdiplus。在 macOS 上,运行 brew install mono-libgdiplus; Linux 你的包管理器应该为你提供一个 libgdiplus 包。