.NET6 支持
介绍
从 Aspose.Slides 23.2 开始,实现了对.NET6的支持。这项支持的特点在于 .NET6 不再支持 Linux 的 System.Drawing.Common (重大更改),而 Slides 则将该图形子系统作为 C++ 组件自行实现。
Aspose.Slides for .NET 现在在以下平台上无需依赖 GDI/libgdiplus:
- Windows
- Linux
MacOS 支持正在进行中。
在 AWS 和 Azure 上使用 .NET6 的 Slides
.NET6 是在云中(AWS、Azure 或其他云解决方案)使用 Aspose.Slides 的首选版本。
之前,当在 Linux 主机上使用 Aspose.Slides 时,必须安装额外的依赖项(libgdiplus),这往往不方便或不切实际(例如,在使用 AWS Lambda 时)。使用 .NET6 的 Slides 时,不再需要这些依赖项,因此部署变得更加容易。
另一个需要考虑的问题是,当在 Windows 主机的云解决方案中使用 Aspose.Slides 时出现的问题。例如, Azure Functions 对进程存在限制,这在 PDF 导出操作中会导致问题(请参见 此处)。使用 Aspose.Slides for .NET6 可以解决这个问题。
使用 System.Drawing.Common 包和 .NET6 的 Slides 类 (CS0433: 类型在 Slides 和 System.Drawing.Common 中都存在的错误)
有时,项目中必须使用 System.Drawing 和 .NET6 的 Slides 两个依赖项(例如,当 .NET6 项目依赖于其他包,而这些包又依赖于 System.Drawing)。这可能会导致像这样的复杂错误:
- CS0433: 类型 ‘Image’ 同时存在于 ‘Aspose.Slides, Version=23.2.0.0, Culture=neutral, PublicKeyToken=716fcc553a201e56’ 和 ‘System.Drawing.Common, Version=6.0.0.0’
- CS0433: 类型 ‘Graphics’ 同时存在于 ‘Aspose.Slides, Version=23.2.0.0, Culture=neutral, PublicKeyToken=716fcc553a201e56’ 和 ‘System.Drawing.Common, Version=6.0.0.0’
在这种情况下,您可以为 Aspose.Slides(版本小于 24.8)使用 extern alias:
- 从项目的依赖项中选择 Aspose.Slides 程序集,然后点击 属性。
- 设置一个别名(例如,“Slides”)。
现在,System.Drawing.Common 的类型将被默认使用。当需要使用 Aspose.Slides 的类型时,应指定外部程序集别名。
extern alias Slides;
using Slides::Aspose.Slides;
完整示例:
extern alias Slides;
using Slides::Aspose.Slides;
static Slides::System.Drawing.Image GetThumbnail(Presentation pres)
{
return pres.Slides[0].GetThumbnail();
}
从 24.8 版本开始,已移除对 System.Drawing 的过时公共 API。关于上面的代码示例,您可以如下获取幻灯片图像。
static Aspose.Slides.IImage GetThumbnail(Presentation presentation)
{
return presentation.Slides[0].GetImage();
}
新 API 的详细描述可见 现代 API。