.NET 6 以降向けクロスプラットフォーム パッケージ
はじめに
Aspose.Slides for .NET は2つの NuGet パッケージとして提供されています。Aspose.Slides.NET は Microsoft の System.Drawing.Common ライブラリを使用してスライドを描画します。Aspose.Slides.NET6.CrossPlatform は代わりに独自のグラフィックエンジンで描画します。本記事では、2 番目のパッケージが存在する理由、実行環境、Linux で必要なもの、そして System.Drawing.Common と同一プロジェクトで併用する方法について説明します。
別パッケージが必要な理由
.NET 6 以降、Microsoft は System.Drawing.Common を Windows のみでサポート としています。その結果、Linux 上では Aspose.Slides.NET は libgdiplus ライブラリに加えて System.Drawing.EnableUnixSupport スイッチが必要となり、プロジェクトが System.Drawing.Common 7 以降を参照している場合は失敗します。System Requirements でこれらの条件が説明されています。
Aspose.Slides.NET6.CrossPlatform は System.Drawing.Common も libgdiplus も使用しません。そのグラフィックエンジンは、パッケージが各対応プラットフォーム用に 1 つずつ含むネイティブライブラリです。両パッケージは同じ Aspose.Slides 名前空間とクラスを提供するため、切り替えても変更が必要なのはパッケージ参照だけで、コードはそのままです。
| Aspose.Slides.NET | Aspose.Slides.NET6.CrossPlatform | |
|---|---|---|
| Graphics | System.Drawing.Common | パッケージに含まれるネイティブ グラフィックエンジン |
| Target frameworks | net462, net6.0, netstandard2.0 |
net6.0 |
| Linux requirements | libgdiplus と System.Drawing.EnableUnixSupport スイッチ |
fontconfig |
| Alpine Linux | サポート | 未サポート |
サポートされているプラットフォーム
Aspose.Slides.NET6.CrossPlatform は .NET 6 以降のバージョンで、以下のプラットフォームで動作します。
- Windows: x86 と x64。ネイティブライブラリは Microsoft Visual C++ ランタイムを使用します。詳しくは System Requirements を参照してください。
- Linux: glibc 2.23 以降を使用した x64、および glibc 2.39 以降を使用した ARM64。
- macOS: x64 (Intel) と ARM64 (Apple silicon)。
Windows の ARM64、Alpine Linux や musl を使用したその他のディストリビューション、あるいは CentOS 7 のように古い glibc を使用しているディストリビューションでは実行できません。そのようなシステムでは Aspose.Slides.NET を使用してください。
Linux でのインストール
Linux では、このパッケージは fontconfig ライブラリが必要で、libgdiplus は必要ありません。Debian および Ubuntu では、fontconfig をインストールし、次にパッケージをプロジェクトに追加します。
sudo apt-get update && sudo apt-get install -y libfontconfig1
dotnet add package Aspose.Slides.NET6.CrossPlatform
Debian および Ubuntu では、libfontconfig1 が DejaVu フォントもインストールするため、追加のフォントパッケージなしでテキストが表示されます。fontconfig がない状態で Presentation を作成しようとすると、TypeInitializationException が発生し、内部の DllNotFoundException が libfontconfig.so.1 を開けないことを報告します。System Requirements にはセットアップを確認する簡単なプログラムが含まれています。
クラウドおよびコンテナホスト
libgdiplus が不要なため、Linux ホストで libgdiplus をインストールできない環境では Aspose.Slides.NET6.CrossPlatform を使用します。ただし、fontconfig とフォントは必要で、ミニマルなベースイメージには含まれていないことがあります。たとえば .NET 8 用の AWS Lambda ベースイメージにはどちらも含まれていません。そのイメージを基にしたコンテナで、dnf install -y fontconfig を実行すると、Noto Sans フォントもインストールされます。
特定のクラウドプラットフォーム向けのガイドは、Aspose.Slides on Cloud Platforms をご参照ください。
同一プロジェクトで System.Drawing.Common を使用する (CS0433)
Aspose.Slides.NET6.CrossPlatform を使用するプロジェクトは、System.Drawing.Common を直接または他のパッケージ経由で参照できます。現在の Aspose.Slides のバージョンでは System 名前空間に公開型がないため、両ライブラリは競合せず、同一ファイルで Aspose.Slides と System.Drawing 名前空間をインポート可能です。
コンパイラが CS0433 エラーを出し、Image や Graphics などの型が Aspose.Slides と System.Drawing.Common の両方に存在する場合、プロジェクトは古いバージョンの Aspose.Slides を使用しています。パッケージを最新バージョンに更新してください。Aspose.Slides は描画された画像を IImage オブジェクトとして返します。この詳細は Modern API に記載されています。
FAQ
Aspose.Slides.NET から Aspose.Slides.NET6.CrossPlatform に切り替える際、コードを変更する必要がありますか?
いいえ。両パッケージは同じ Aspose.Slides 名前空間とクラスを提供するため、パッケージ参照を差し替えるだけで済みます。Aspose.Slides.NET6.CrossPlatform は System.Drawing.EnableUnixSupport スイッチを必要としません。プロジェクトにはどちらか一方のパッケージだけを追加してください。
.NET Framework プロジェクトで Aspose.Slides.NET6.CrossPlatform を使用できますか?
いいえ。このパッケージは .NET 6 以降のみを対象としています。.NET Framework 4.6.2 以降を使用する場合は Aspose.Slides.NET を使用してください。