我已经为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框架。我试图根据this post的建议包含NuGet包CoreCompat.System.Drawing。但这没有效果,可能是因为MigraDoc仍在尝试使用“原始”System.Drawing
库。
有什么方法可以让我的类库可以用于.NET Core吗?或者我运气不好......?
注意:MigraDoc核心软件包与.NET核心框架无关。名字的冲突只是巧合。
我找到了PDFSharp & MigraDoc here on github的一个端口,它使用System.Drawing.Common
并与.Net Core一起工作。
我也一样,完全正常工作。
注意:您可能需要在.Net Core项目中添加System.Drawing.Common
Nuget Package。
MigraDoc / PDFsharp核心软件包是在.NET Core发布之前很久就创建的。 “Core”对于那些MigraDoc包有不同的含义,它们确实使用System.Drawing。
这不是Core包使用System.Drawing的错误。
对于.NET Core,有第三方端口的PDFsharp,如下所示: https://github.com/groege/PdfSharpCore 也许其中一个端口是您的选择。
也许System.Drawing有便携式替代品。