.NET 6 支援

簡介

Aspose.Slides 23.2 開始,已實作對 .NET6 的支援。此支援的特殊之處在於 .NET6 不再支援 Linux 上的 System.Drawing.Common(重大變更),且 Slides 自行以 C++ 元件實作此圖形子系統。

Aspose.Slides for .NET 現在在以下平台上無需依賴 GDI/libgdiplus:

  • Windows
  • Linux

MacOS 支援正在進行中。

在 AWS 與 Azure 上使用 .NET 6 版 Slides

.NET6 是在雲端(AWS、Azure 或其他雲端解決方案)使用 Aspose.Slides 的首選版本。

先前,若在 Linux 主機上使用 Aspose.Slides,必須安裝額外的相依性(libgdiplus),這常常不便或不實際(例如在使用 AWS Lambda 時)。使用 .NET6 版 Slides 後,這些依賴不再需要,部署變得更簡單。

另一個需要考慮的問題是,當在 Windows 主機的雲端方案上使用 Aspose.Slides 時會發生的問題。例如,Azure Functions 針對處理程序有限制,導致 PDF 匯出作業時出現問題(參見此處)。使用 .NET6 版 Aspose.Slides 可解決此問題。

使用 System.Drawing.Common 套件與 .NET 6 版 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’ 中

在此情況下,您可以使用 extern alias 針對 Aspose.Slides(版本低於 24.8):

  1. 從專案的相依性中選取 Aspose.Slides 程式集,然後點選 PropertiesAspose Slides 套件屬性
  2. 設定別名(例如,「Slides」)。 Aspose 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 已於 Modern API 中有更詳細的說明。