dan*_*ela 0 c# system.drawing multiplatform .net-core
我们正在构建一个使用 System.Drawing 包的 .Net Core 2.0 C# Web 应用程序。
我在Mac上编写代码,但它也会在Windows机器上开发,并部署到Linux服务器上。
要在 OSX 上使用 System.Drawing,我必须将 runtime.osx.10.10-x64.CoreCompat.System.Drawing Nuget 包添加到我的项目依赖项中。
但该代码现在无法在 Windows 机器上运行。当尝试使用 Graphics(System.Drawing 的一部分)对象的 DrawString 方法时,我们得到 System.AccessViolationException。
所以,我的问题是解决这个问题的常用方法是什么?是否可以在这个多操作系统设置中使用 System.Drawing 类?
相同的 System.Drawing 代码应该可以在 Linux、Windows 和 macOS 上运行,无需任何更改。您是正确的,您需要手动安装 libgdiplus (例如通过brew install mono-libgdiplus)或引用runtime.osx.10.10-x64.CoreCompat.System.DrawingSystem.Drawing 才能在 Mac 上工作。
System.Drawing 将在 Windows 上运行,无需任何外部依赖项。
如果您仍在使用 CoreCompat.System.Drawing(我维护的),我建议您迁移到 System.Drawing.Common - 这是 System.Drawing for .NET Core 的 Microsoft 实现。
如果问题仍然在 Windows 上重现,您最好的选择是复制一段可用于重现您的问题的代码,以便我可以查看它。
| 归档时间: |
|
| 查看次数: |
1150 次 |
| 最近记录: |