0

在装有 Windows 10 Pro 的本地开发机器上添加私有字体可以正常工作。但是在 Windows Server 2012 R2 上,相同的代码会导致以下错误:

System.Runtime.InteropServices.ExternalException:GDI+ 中出现一般错误。在 System.Drawing.Text.PrivateFontCollection.AddFontFile(字符串文件名)

var privateFontCollection = new PrivateFontCollection();
privateFontCollection.AddFontFile("Roboto-Regular.ttf");

当我删除文件时,它会导致 NotFoundException,因此文件路径必须正确。我确保每个用户都拥有该文件的所有可能权限。(我发现如果我拒绝本地 win 10 机器上的所有权限,则会发生相同的“一般错误” - 所以这可能是权限问题)

有没有人解决这个问题?生产机器上的服务用户是否可能缺少“安装”私有字体所需的其他一些权限?也许字体被安装到一个不允许的特定目录 - 但我找不到它会在哪里。请帮助我解释这个自我解释的“一般错误”。

4

1 回答 1

1

不使用绝对路径似乎是个问题。一开始没有想到,因为删除文件导致了显式的FileNotFound。使用绝对路径就可以了。

于 2016-10-04T06:41:21.060 回答