Поддержка .NET 6
Введение
Начиная с Aspose.Slides 23.2, реализована поддержка .NET6. Особенность этой поддержки — .NET6 больше не поддерживает System.Drawing.Common для Linux (изменение, нарушающее совместимость), и Slides реализует эту графическую подсистему самостоятельно как C++‑компонент.
Aspose.Slides для .NET теперь работает без зависимости от GDI/libgdiplus на:
- Windows
- Linux
MacOS поддержка находится в стадии разработки.
Использование Slides для .NET 6 в AWS и Azure
.NET6 — предпочтительная версия Aspose.Slides для облачных решений (AWS, Azure или других облаков).
Раньше при использовании Aspose.Slides на Linux‑хосте требовалось устанавливать дополнительные зависимости (libgdiplus), что часто было неудобно или непрактично (например, при работе с AWS Lambda). С Slides для .NET6 эти зависимости больше не нужны, поэтому развертывание значительно упрощается.
Еще один аспект — проблемы, возникавшие при использовании Aspose.Slides в облачных решениях с Windows‑хостом. Например, у Azure Functions есть ограничения для процесса, что приводит к сбоям при экспорте PDF (см. это). Использование Aspose.Slides для .NET6 решает эту проблему.
Использование пакета System.Drawing.Common и классов Slides для .NET 6 (CS0433: Ошибка «Тип существует как в Slides, так и в System.Drawing.Common»)
Иногда в проекте необходимо одновременно использовать зависимости System.Drawing и Slides для .NET6 (например, когда проект .NET6 зависит от других пакетов, которые в свою очередь зависят от System.Drawing). Это может вызвать такие ошибки:
- CS0433: The type ‘Image’ exists in both ‘Aspose.Slides, Version=23.2.0.0, Culture=neutral, PublicKeyToken=716fcc553a201e56’ and ‘System.Drawing.Common, Version=6.0.0.0
- CS0433: The type ‘Graphics’ exists in both ‘Aspose.Slides, Version=23.2.0.0, Culture=neutral, PublicKeyToken=716fcc553a201e56’ and ‘System.Drawing.Common, Version=6.0.0.0
В этом случае можно использовать extern alias для Aspose.Slides (версии ниже 24.8):
- Выберите сборку Aspose.Slides в зависимостях проекта и нажмите Properties.

- Установите псевдоним (например, “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, устаревший публичный API с зависимостями от System.Drawing удалён. Что касается приведённого выше примера кода, получить изображение слайда можно следующим образом.
static Aspose.Slides.IImage GetThumbnail(Presentation presentation)
{
return presentation.Slides[0].GetImage();
}
Новый API более подробно описан в разделе Modern API.