Поддержка .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 (см. this). Использование Aspose.Slides для .NET6 решает эту проблему.
Использование пакета System.Drawing.Common и классов Slides для .NET 6 (Ошибка CS0433: тип существует и в Slides, и в System.Drawing.Common)
Иногда в проекте необходимо одновременно использовать зависимости System.Drawing и Slides для .NET6 (например, когда проект .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’
В этом случае можно использовать 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.