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
-
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.
-
“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.
- 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
-
Abra el directorio de instalación o el directorio DLL, luego seleccione el paso 3 o 4 a continuación:
-
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.
- 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:
- Ejecute el siguiente comando en su sistema Linux:
apt-get update && apt-get install -y libfontconfig1
OR
apk update && apk add fontconfig
-
Agregue los paquetes nuget “SkiaSharp.NativeAssets.Linux 2.88.6” a su proyecto .net6.
-
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
-
Agregue los paquetes nuget “SkiaSharp.NativeAssets.Linux 2.88.6” a su proyecto .net6.
-
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
-
Agregue los paquetes nuget “SkiaSharp.NativeAssets.Linux 2.88.6” a su proyecto .net6.
-
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"]