MigraDoc и .NET Core 2.0

Я сделал библиотеку классов для 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. Я попытался включить пакет NuGet CoreCompat.System.Drawing на основе рекомендаций из этот пост. Но это было безрезультатно, вероятно, потому, что MigraDoc все еще пытается использовать "оригинальную" System.Drawing библиотеку.

Есть ли способ заставить мою библиотеку классов работать с .NET Core? Или мне не повезло...?

Примечание. Пакет MigraDoc Core не имеет ничего общего с .NET Core Framework. Столкновение имен — простое совпадение.


person Jakob Busk Sørensen    schedule 04.07.2018    source источник
comment
Вы ориентируетесь только на Windows или на другие платформы?   -  person I liked the old Stack Overflow    schedule 04.07.2018
comment
В настоящее время единственной целью является Windows, да. Первоначально он был сделан для проекта WinForms, но не мой коллега, который также хочет использовать его в проекте .NET Core 2.0.   -  person Jakob Busk Sørensen    schedule 04.07.2018


Ответы (2)


Я нашел порт для PDFSharp и MigraDoc здесь, на github, который используетSystem.Drawing.Common и работает с .Net Core.

У меня было так же, и он полностью работал.

Примечание. Вам может потребоваться добавить System.Drawing.Common пакет Nuget в вашем проекте .Net Core.

person Vikas Rana    schedule 08.03.2019

Пакеты MigraDoc/PDFsharp Core были созданы задолго до анонса .NET Core. «Ядро» имеет другое значение для этих пакетов MigraDoc, и они используют System.Drawing.

Это не ошибка, что пакет Core использует System.Drawing.

Существуют сторонние порты PDFsharp для .NET Core, такие как этот:
https://github.com/groege/PdfSharpCore
Возможно, вам подойдет один из этих портов.

Возможно, есть портативные замены для System.Drawing.

person I liked the old Stack Overflow    schedule 04.07.2018
comment
Спасибо за Ваш ответ. Я должен был отметить, что я знаю, что MigraDoc Core совершенно не связан с .NET Core. Я искал альтернативу, которая не требует полной перезаписи моей библиотеки классов. Я попробую некоторые из упомянутых вами портов MigraDoc. Замена System.Drawing не кажется возможной. - person Jakob Busk Sørensen; 04.07.2018