Wie man Aspose.Cells für .Net6 ausführt

Übersicht

Für die .NET6-Plattformen (oder später) gibt es im Vergleich zu früheren Plattformen (.netcore31 oder früher) einen wichtigen Unterschied in Bezug auf die Grafikbibliothek. In diesem offiziellen Microsoft-Dokument wird erklärt, dass die Grafikbibliothek “System.Drawing.Common” für .NET6 oder spätere Versionen nur auf Windows unterstützt wird, und es werden Empfehlungen zur Ersetzung der Grafikbibliothek gegeben.

Für das Produkt Apose.Cells haben wir die Evaluierung durchgeführt und die Migration der Grafikbibliothek abgeschlossen. Wir verwenden SkiaSharp anstelle von System.Drawing.Common in Nicht-Windows-Systemen, wie in der offiziellen Dokumentation von Microsoft empfohlen. Bitte beachten Sie, dass diese wichtige Änderung ab Aspose.Cells 22.10.1 oder später für .Net6 wirksam wird.

Für .netcore31 oder früher verwenden wir aus Gründen der Kompatibilität und Stabilität weiterhin die Grafikbibliothek “System.Drawing.Common”. Die Abhängigkeiten für .netcore31 oder früher sind wie folgt:

  • System.Drawing.Common, 4.7.0.
  • System.Security.Cryptography.Pkcs, 5.0.1.
  • System.Text.Encoding.CodePages, 4.7.0.

Aspose.Cells für .Net6 unter Windows ausführen

Zunächst können Sie eine .net6-Anwendung mit VS2022 erstellen, dann können Sie die folgenden Installationsoptionen wählen:

Über NuGet installieren

  1. Suchen Sie nach Aspose.Cells auf NuGet: Aspose.Cells for .NET NuGet-Paket. Sie können Aspose.Cells auch über den NuGet-Paketmanager in VS2022 installieren.

  2. “SkiaSharp” oder “System.Drawing.Common” wird automatisch als Abhängigkeit von Aspose.Cells 22.10.1 oder neuer für .Net6-Plattformen installiert, die von der Konfiguration des “Zielbetriebssystems” in Ihrem Projekt abhängt.

  • Setzen Sie das „Zielbetriebssystem“ in Ihrem Projekt auf „Windows“, verwenden Sie „System.Drawing.Common“ als Abhängigkeit in Ihrem Windows-System für das .Net6-Projekt. In dieser Konfiguration ist das Zeichnungsergebnis näher an .Netcore31 oder früher. Zielbetriebssystem konfigurieren
  • Setzen Sie das „Zielbetriebssystem“ in Ihrem Projekt auf „Keine“ oder andere Optionen, verwenden Sie „SkiaSharp“ als Abhängigkeit in Ihrem Windows-System für das .Net6-Projekt. Bitte beachten Sie, dass die Version, die „SkiaSharp“ als Abhängigkeit verwendet, die Druckfunktion nicht unterstützt.

Installation über msi oder DLL

  1. Aspose.Cells.msi oder DLL herunterladen

  2. Öffnen Sie das Installationsverzeichnis oder das DLL-Verzeichnis, wählen Sie dann Schritt 3 oder 4 aus:

  3. Suchen Sie das Unterverzeichnis „net6.0-windows“, fügen Sie die Aspose.Cells.dll hinzu, um sie Ihrer .NET6-Anwendung hinzuzufügen. Fügen Sie manuell die folgenden NuGet-Pakete zu Ihrem .NET6-Projekt hinzu:

  • System.Drawing.Common, 4.7.0.
  • System.Security.Cryptography.Pkcs, 6.0.3.
  • System.Text.Encoding.CodePages, 4.7.0.

Auf diese Weise verwenden Sie „System.Drawing.Common“ als Abhängigkeit in Ihrem Windows-System für das .NET6-Projekt. In dieser Konfiguration ist das Zeichnungsergebnis näher an .Netcore31 oder früher.

  1. Suchen Sie das Unterverzeichnis „net6.0“, fügen Sie die Aspose.Cells.dll hinzu, um sie Ihrer .NET6-Anwendung hinzuzufügen. Fügen Sie manuell die folgenden NuGet-Pakete zu Ihrem .NET6-Projekt hinzu:
  • SkiaSharp, 2.88.6.
  • System.Security.Cryptography.Pkcs, 6.0.3.
  • System.Text.Encoding.CodePages, 4.7.0.

Auf diese Weise verwenden Sie „SkiaSharp“ als Abhängigkeit in Ihrem Windows-System für das .NET6-Projekt. Bitte beachten Sie, dass die Version, die „SkiaSharp“ als Abhängigkeit verwendet, die Druckfunktion nicht unterstützt.

Aspose.Cells für .NET6 auf Linux ausführen

Beachten Sie die Installationsmethode unter Windows, Sie können nur SkiaSharp als Grafikbibliotheksabhängigkeit im Linux-System auswählen.

Sie müssen die folgenden zusätzlichen Operationen durchführen, um eine ordnungsgemäße Verwendung von SkiaSharp unter Linux sicherzustellen:

  1. Führen Sie den folgenden Befehl in Ihrem Linux-System aus:
apt-get update && apt-get install -y libfontconfig1

ODER

apk update && apk add fontconfig 
  1. Fügen Sie die NuGet-Pakete „SkiaSharp.NativeAssets.Linux 2.88.6“ zu Ihrem .NET6-Projekt hinzu.

  2. Oder Sie können wählen, die NuGet-Pakete „SkiaSharp.NativeAssets.Linux.NoDependencies 2.88.6“ zu Ihrem .NET6-Projekt hinzuzufügen, anstelle der beiden oben genannten Schritte.

Beispiel Dockerfile für Ubuntu

  1. Fügen Sie die NuGet-Pakete “SkiaSharp.NativeAssets.Linux 2.88.6” Ihrem .NET6-Projekt hinzu.

  2. Verwenden Sie das folgende Dockerfile:

    # Ubuntu 20.04
    FROM mcr.microsoft.com/dotnet/runtime:6.0-focal AS base
    WORKDIR /app
    
    # add "libfontconfig1" package if using "SkiaSharp.NativeAssets.Linux" in your project
    # Or you need to use "SkiaSharp.NativeAssets.Linux.NoDependencies" in your project
    RUN apt-get update && apt-get install -y libfontconfig1
    
    # Copy fonts from local to docker
    # For example, put a "fonts" folder in your project folder, and put the font files in it,
    # then, use the following line:
    COPY fonts/ /usr/share/fonts
    
    FROM mcr.microsoft.com/dotnet/sdk:6.0-focal AS build
    WORKDIR /src
    COPY ["Ubuntu_Docker.csproj", "."]
    RUN dotnet restore "./Ubuntu_Docker.csproj"
    COPY . .
    WORKDIR "/src/."
    RUN dotnet build "Ubuntu_Docker.csproj" -c Release -o /app/build
    
    FROM build AS publish
    RUN dotnet publish "Ubuntu_Docker.csproj" -c Release -o /app/publish
    
    FROM base AS final
    WORKDIR /app
    COPY --from=publish /app/publish .
    ENTRYPOINT ["dotnet", "Ubuntu_Docker.dll"]

Beispiel Dockerfile für Alpine

  1. Fügen Sie die NuGet-Pakete “SkiaSharp.NativeAssets.Linux 2.88.6” Ihrem .NET6-Projekt hinzu.

  2. Verwenden Sie das folgende Dockerfile:

    #Alpine 3.16
    FROM mcr.microsoft.com/dotnet/runtime:6.0-alpine3.16 AS base
    WORKDIR /app
    
    # add "fontconfig" package if using "SkiaSharp.NativeAssets.Linux" in your project
    # Or you need to use "SkiaSharp.NativeAssets.Linux.NoDependencies" in your project
    RUN apk update && apk add fontconfig 
    
    # Copy fonts from local to docker
    # For example, put a "fonts" folder in your project folder, and put the font files in it,
    # then, use the following line:
    COPY fonts/ /usr/share/fonts
    
    FROM mcr.microsoft.com/dotnet/sdk:6.0-alpine3.16 AS build
    WORKDIR /src
    COPY ["Alpine_Docker.csproj", "."]
    RUN dotnet restore "./Alpine_Docker.csproj"
    COPY . .
    WORKDIR "/src/."
    RUN dotnet build "Alpine_Docker.csproj" -c Release -o /app/build
    
    FROM build AS publish
    RUN dotnet publish "Alpine_Docker.csproj" -c Release -o /app/publish
    
    FROM base AS final
    WORKDIR /app
    COPY --from=publish /app/publish .
    ENTRYPOINT ["dotnet", "Alpine_Docker.dll"]