MigraDoc 和 .NET Core 2.0

Noc*_*ceo 4 c# system.drawing migradoc .net-core

我为 PDF 生成制作了一个类库。它是使用 PDFshart-MigraDoc(核心包*)实现的。类库本身使用 .NET Standard 作为其目标框架。

我可以在经典 C# 项目(如 WinForms)中使用类库,但是如果我尝试将它与 .NET Core 2.0 一起使用,我会收到以下错误:

无法加载文件或程序集“System.Drawing.Common,Version=0.0.0.0,Culture=neutral,PublicKeyToken=xxxx”。该系统找不到指定的文件。

我想这样做的原因可能是 MigraDoc 在其实现中使用了“System.Drawing”,(据我所知).NET Core 框架不支持它。

但是,这并没有真正解决我的问题,即我需要类库适用于所有 .NET 框架。根据这篇文章的建议,我尝试包含 NuGet 包CoreCompat.System.Drawing。但这一直没有效果,可能是因为 MigraDoc 还在尝试使用“原始”System.Drawing库。

有什么方法可以让我的类库适用于 .NET Core?还是我运气不好……?

注意:MigraDoc Core Package 与 .NET Core Framework 无关。名字的冲突只是巧合。

小智 5

在 github 上找到了PDFSharp & MigraDoc的端口,它使用System.Drawing.Common并与 .Net Core 一起工作。

我有同样的并让它完全工作。

注意:您可能需要在 .Net Core 项目中添加System.Drawing.Common Nuget 包


Je *_*not 1

更新:
从 PDFsharp 6.0.0 开始,PDFsharp 支持 .NET 6.0,并且 Core 构建不再依赖于 System.Drawing。
从 PDFsharp 6.1.0 开始,PDFsharp Core 还支持 .Netstandard 2.0。

原始答案:
MigraDoc/PDFsharp Core 包早在 .NET Core 发布之前就已创建。“Core”对于那些 MigraDoc 包具有不同的含义,并且它们确实使用 System.Drawing。

Core 包使用 System.Drawing 并不是一个错误。

有适用于 .NET Core 的 PDFsharp 第三方端口,如下所示: https:
//github.com/groege/PdfSharpCore
也许这些端口之一适合您。

也许有 System.Drawing 的便携式替代品。