Cómo ejecutar Aspose.Cells para .Net6

Descripción general

Para las plataformas .NET6 (o posteriores), en comparación con las plataformas anteriores (.netcore31 o anteriores), una diferencia importante es la biblioteca de gráficos. en este funcionarioMicrosoft Documento, explica que para .NET6 o versiones posteriores la biblioteca de gráficos “System.Drawing.Common” solo será compatible con Windows y ofrece recomendaciones para reemplazar la biblioteca de gráficos.

Para el producto Apose.Cells, realizamos la evaluación y completamos la migración de la biblioteca de gráficos. Usamos SkiaSharp en lugar de System.Drawing.Common en sistemas que no son Windows, como se sugiere en la documentación oficial de Microsoft. Tenga en cuenta que este cambio crítico entrará en vigor en Aspose.Cells 22.10.1 o posterior para .Net6.

Para .netcore31 o anterior, por compatibilidad y estabilidad, actualmente todavía utilizamos la biblioteca de gráficos “System.Drawing.Common”. Las dependencias para .netcore31 o anteriores son las siguientes:

  • System.Drawing.Common, 4.7.0.
  • Sistema.Seguridad.Criptografía.Pkcs, 5.0.1.
  • System.Text.Encoding.CodePages, 4.7.0.

Ejecute Aspose.Cells para .Net6 en Windows

Primero puedes crear una aplicación .net6 con VS2022, luego puedes elegir las siguientes opciones de instalación:

Instalar a través de nuget

  1. Busque Aspose.Cells desde NuGet:Aspose.Cells for .NET NuGet Paquete. También puede instalar Aspose.Cells desde el administrador de paquetes Nuget en VS2022.

  2. “SkiaSharp” o “System.Drawing.Common” se instalarán automáticamente como una dependencia de Aspose.Cells 22.10.1 o posterior para plataformas .Net6, que depende de la configuración del “SO de destino” en su proyecto.

  • Configure el “SO de destino” en “Windows” para su proyecto; utilizará “System.Drawing.Common” como una dependencia de su sistema Windows para el proyecto .Net6. En esta configuración, el resultado del dibujo es más cercano a .netcore31 o anterior. Configurar sistema operativo de destino
  • Configure el “SO de destino” en “Ninguno” u otras opciones para su proyecto; utilizará “SkiaSharp” como una dependencia de su sistema Windows para el proyecto .Net6.Tenga en cuenta que la versión que utiliza “SkiaSharp” como dependencia no admite la función de impresión en impresora.

Instalar a través de msi o DLL

  1. Descargue Aspose.Cells.msi o DLL

  2. Abra el directorio de instalación o el directorio DLL, luego seleccione el paso 3 o 4 a continuación:

  3. Ubique el subdirectorio “net6.0-windows”, agregue el Aspose.Cells.dll a su aplicación .net6. Agregue manualmente los siguientes paquetes nuget a su proyecto .net6:

  • System.Drawing.Common, 4.7.0.
  • Sistema.Seguridad.Criptografía.Pkcs, 6.0.3.
  • System.Text.Encoding.CodePages, 4.7.0.

De esta manera, utilizará “System.Drawing.Common” como una dependencia de su sistema Windows para el proyecto .Net6. En esta configuración, el resultado del dibujo es más cercano a .netcore31 o anterior.

  1. Ubique el subdirectorio “net6.0”, agregue el Aspose.Cells.dll a su aplicación .net6. Agregue manualmente los siguientes paquetes nuget a su proyecto .net6:
  • SkiaSharp, 2.88.6.
  • Sistema.Seguridad.Criptografía.Pkcs, 6.0.3.
  • System.Text.Encoding.CodePages, 4.7.0.

De esta manera, utilizará “SkiaSharp” como una dependencia de su sistema Windows para el proyecto .Net6.Tenga en cuenta que la versión que utiliza “SkiaSharp” como dependencia no admite la función de impresión en impresora.

Ejecute Aspose.Cells para .Net6 en Linux

Consulte el método de instalación en Windows, solo puede seleccionar SkiaSharp como dependencia de la biblioteca de gráficos en el sistema Linux.

Debe realizar las siguientes operaciones adicionales para garantizar el uso adecuado de SkiaSharp en Linux:

  1. Ejecute el siguiente comando en su sistema Linux:
apt-get update && apt-get install -y libfontconfig1

OR

apk update && apk add fontconfig 
  1. Agregue los paquetes nuget “SkiaSharp.NativeAssets.Linux 2.88.6” a su proyecto .net6.

  2. O puede optar por agregar los paquetes nuget “SkiaSharp.NativeAssets.Linux.NoDependencies 2.88.6” a su proyecto .net6, en lugar de los dos pasos anteriores.

Ejemplo de Dockerfile para Ubuntu

  1. Agregue los paquetes nuget “SkiaSharp.NativeAssets.Linux 2.88.6” a su proyecto .net6.

  2. Utilice el siguiente 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"]

Ejemplo de Dockerfile para Alpine

  1. Agregue los paquetes nuget “SkiaSharp.NativeAssets.Linux 2.88.6” a su proyecto .net6.

  2. Utilice el siguiente 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"]