簡體   English   中英

從多台計算機(多個OS)使用System.Drawing包

[英]Using System.Drawing package from multiple machines (multiple OS)

我們正在構建一個使用System.Drawing包的.Net Core 2.0 C#Web應用程序。

我在Mac上編寫代碼,但它也會在Windows計算機上開發,並部署到Linux服務器中。

要在OSX上使用System.Drawing,我必須將runtime.osx.10.10-x64.CoreCompat.System.Drawing Nuget包添加到我的項目依賴項中。

但是該代碼現在在Window計算機上不起作用。 當嘗試使用Graphics(System.Drawing的一部分)對象的DrawString方法時,我們得到System.AccessViolationException。

因此,我的問題是解決此問題的常用方法是什么? 在這種多操作系統設置中甚至可以使用System.Drawing類嗎?

相同的System.Drawing代碼應該可以在Linux,Windows和macOS上運行,而無需進行任何更改。 您是正確的,您需要手動安裝libgdiplus(例如,通過brew install mono-libgdiplus )或引用System.Drawing的runtime.osx.10.10-x64.CoreCompat.System.Drawing才能在Mac上運行。

System.Drawing將在Windows上運行而無需任何外部依賴項。

如果您仍在使用CoreCompat.System.Drawing(我維護),建議您遷移到System.Drawing.Common-這是System.Drawing for .NET Core的Microsoft實現。

如果問題仍然在Windows上重現,則最好的選擇是復制一段應該被用來重現您的問題的代碼,因此我可以看一下。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM