MigraDoc และ .NET Core 2.0

ฉันได้สร้างไลบรารีชั้นเรียนสำหรับการสร้าง 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 ไม่เกี่ยวข้องกับ .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 ด้วยซ้ำ "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