Blazor Server 在 Linux 上抛出 System.PlatformNotSupportedException
错误是因为 System.Drawing
命名空间在 Linux 上不可用。这个命名空间通常用于处理图像,但在 Linux 上并没有对应的实现。
要解决这个问题,可以考虑以下两种方法:
ImageSharp
库替代 System.Drawing
:
SixLabors.ImageSharp
的引用。ImageSharp
的 API 替代 System.Drawing
。例如,使用 SixLabors.ImageSharp.Image.Load()
方法加载图像。System.PlatformNotSupportedException
错误。下面是一个使用 ImageSharp
的代码示例:
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Processing;
// 加载图像
using (var image = Image.Load("path/to/image.jpg"))
{
// 在此处进行图像处理操作
// 例如,使用 `image.Resize()` 来调整图像大小
// 保存图像
image.Save("path/to/processed_image.jpg");
}
System.Drawing.Common
NuGet 包。System.Drawing
提供一个实现,从而避免抛出 System.PlatformNotSupportedException
错误。请注意,第二种方法可能会导致项目依赖于 Mono 运行时,并且可能会引入其他兼容性问题。因此,如果你只是简单地需要在 Linux 上处理图像,推荐使用第一种方法。
上一篇:Blazor Server 应用在 HttpMessageHandler 清理期间出现挂起问题
下一篇:Blazor Server-app、WebAssembly-HostedByDotNetCore和WebAssembly之间的一个合理解释是什么?