[英]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.