我们有一个应用程序 (GrapeCity ActiveReports) 生成 pdf 报告,该报告在基于下图构建的容器内运行: microsoft/dotnet-framework:4.7.2-sdk
此图像基于 2019ltsc 版本,这是问题所在。 pdf 生成应用程序(尝试)为这些报告使用 Arial 字体,但在 Windows 字体目录中找不到。
根据这篇 Microsoft 博客(在容器改进部分),2019ltsc 版本删除了除Arial之外的所有字体,并且显然阻止了安装其他字体。 https://blogs.windows.com/windowsexperience/2018/05/29/annoucing-windows-server-2019-insider-preview-build-17677/
以交互方式启动未修改的 SDK 图像并浏览至C:\Windows\Fonts仅显示当前lucon.ttf字体,不显示其他任何内容。我们还尝试了 Microsoft 的此文档中概述的安装字体方法,但没有进行任何更改。字体本身安装良好,但生成程序无法使用它。https://docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-windows-containers-custom-fonts
运行时返回以下异常:
System.InvalidOperationException: Cannot read the file for font: Arial
Run Code Online (Sandbox Code Playgroud)
更新:收到 MS 支持的回复,目前看来可能没有解决方案。
经过几天的研究,关于为什么基于 mcr.microsoft.com.windows/servercore:ltsc2019 的图像中唯一的字体是 lucon.ttf,我没有取得太大进展,而且似乎没有公开的方法可以向 Windows Server 添加其他字体2019 年核心形象。我根据情况发邮件给windows server 2019产品团队咨询这个问题。但是,请理解,由于权限限制,我不能保证我可以得到产品团队的反馈。我会继续研究和监控产品团队,如果有任何进展,我会尽快回复您。