https://github.com/HakanL/WkHtmlToPdf-DotNet?tab=readme-ov-file 我看到代码使用 Docker 容器(我在 MacBook 项目 C# .NET Core 中工作项目)
Docker 如果您使用微软提供的 Linux 版本的 docker 容器 for net core,则需要安装几个库。
以下示例适用于基于 debian 的 Linux 发行版;
在 WORKDIR /app 命令之前插入以下行
运行apt更新 运行 apt install -y libgdiplus 运行 ln -s /usr/lib/libgdiplus.so /lib/x86_64-linux-gnu/libgdiplus.so 运行 apt-get install -y --no-install-recommends zlib1g fontconfig libfreetype6 libx11-6 libxext6 libxrender1 wget gdebi 运行 wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.stretch_amd64.deb 运行 gdebi --n wkhtmltox_0.12.5-1.stretch_amd64.deb 运行 apt install libssl1.1 运行 ln -s /usr/local/lib/libwkhtmltox.so /usr/lib/libwkhtmltox.so
我插入 DockerFile。
我进入我的项目并出现错误 显示:
[ticketservice.api 基础 4/10] RUN ln -s /usr/lib/libgdiplus.so /lib/x86_64-linux-gnu/libgdiplus.so: 0.179 ln:无法创建符号链接'/lib/x86_64-linux-gnu/libgdiplus.so':没有这样的文件或目录
无法解决:进程“/bin/sh -c ln -s /usr/lib/libgdiplus.so /lib/x86_64-linux-gnu/libgdiplus.so”未成功完成:退出代码:1
“libgdiplus.so”找不到,我该如何修复它?
我想使用 NugetPackage Haukcode.WkHtmlToPdfDotNet。在 C# .NET Core 中
花了一个早上的大部分时间试图解决这个问题。我的情况和你一样,我在 MacBook 上构建这个,它确实可以在 Windows 和 Linux 上运行。
Libgdiplus install 查找您的机器系统,然后根据该系统安装操作系统 (Libgdiplus)
当您运行以下命令并查看 Docker Desktop 中的日志时,您可以看到 docker 文件正在安装不同的文件
RUN ls -d1 /lib/**/*
Docker 有一个解决方案,您可以指定构建的平台(就像您使用多个操作系统一样,这可能会导致奇怪的事情)请参阅链接了解更多Docker 多平台
要使其正常工作,您需要在运行文件时在构建命令中指定平台。我使用 linux amd64,这对我有用
--platform linux/amd64
希望这能解决您的问题