【问题标题】:MigraDoc and .NET Core 2.0MigraDoc 和 .NET Core 2.0
【发布时间】:2018-07-04 10:15:15
【问题描述】:

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

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

无法加载文件或程序集'System.Drawing.Common, 版本=0.0.0.0,文化=中性,PublicKeyToken=xxxx'。系统 找不到指定的文件。

我猜这是因为 MigraDoc 在其实现中使用了“System.Drawing”,而 .NET Core 框架不支持(据我所知)。

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

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

注意:MigraDoc Core 包与 .NET Core Framework 无关。名字冲突纯属巧合。

【问题讨论】:

  • 你是只面向 Windows 还是其他平台?
  • 目前唯一的目标是Windows,是的。最初是为一个WinForms项目制作的,但不是我的同事,也想在.NET Core 2.0项目中使用。

标签: c# .net-core system.drawing migradoc


【解决方案1】:

我找到了一个用于PDFSharp & MigraDoc here on github 的端口,它使用System.Drawing.Common 并与.Net Core 一起使用。

我也有同样的情况,并且可以完全正常工作。

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

【讨论】:

    【解决方案2】:

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

    Core 包使用 System.Drawing 不是 bug。

    .NET Core 的 PDFsharp 有第三方端口,例如:
    https://github.com/groege/PdfSharpCore
    也许这些端口之一是您的选择。

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

    【讨论】:

    • 感谢您的回答。我应该注意到,我知道,MigraDoc Core 与 .NET Core 完全无关。我正在寻找一种替代方案,它不需要完全重写我的类库。我将尝试您提到的一些 MigraDoc 端口。替换 System.Drawing 似乎不太可能。
    猜你喜欢
    • 2018-04-16
    • 2018-12-21
    • 1970-01-01
    • 2018-08-03
    • 2018-04-01
    • 1970-01-01
    • 2018-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多