我在使用
DevExpress
中的 Docker Linux container
报告生成 PDF 文件时遇到问题。我收到的错误消息是:
The type initializer for 'SkiaSharp.SKFontManager' threw an exception.
在 Windows 上运行应用程序时不会出现此问题,但在
Linux Docker container.
中部署应用程序时,此问题仍然存在
我尝试通过确保在容器内安装必要的依赖项来解决此问题,例如
libfontconfig1
、libfreetype6
等。以下是我尝试过的命令:
apt-get update && \
apt-get install -yq nodejs && \
apt-get install -yq nodejs libfontconfig1 libfreetype6 && \
rm -rf /var/lib/apt/lists/*
apt update && \
apt install -y libc6 && \
apt install -y libgcc1 && \
apt install -y libgssapi-krb5-2 && \
apt install -y libicu66 && \
apt install -y libssl1.1 && \
apt install -y libfontconfig1 && \
apt install -y libicu-dev && \
apt install -y libjpeg-turbo8 && \
apt install -y libstdc++6 && \
apt install -y zlib1g && \
apt install -y gnupg ca-certificates && \
尽管做出了这些努力,错误仍然存在,特别是当应用程序到达
XtraReport
实例来加载 PDF 文件的布局时,即使升级到 .NET 7
后也是如此。
如果您能提供有关如何解决此问题并在
Docker Linux container
中成功生成 PDF 文件的任何见解或建议,我将不胜感激。预先感谢您的帮助。
在 Docker Linux 容器上运行的 DevExpress.Reporting.Core 和 DevExpress.Drawing.Skia 23.2.3 也有同样的问题。
Docker 容器现在正在生成 PDF 文件。
项目是.NET 8 Api,在Program.cs文件中:
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
DevExpress.Drawing.Internal.DXDrawingEngine.ForceSkia();
}
然后在容器外壳中:
apt update
apt install libfreetype6 libfontconfig1 libjpeg62-turbo libpng16-16 zlib1g libx11-6 libxext6 libxrandr2 libxinerama1 libxcursor1 libxi6
希望这有帮助。