PrivateFontCollection.AddFontFile()抛出通用GDI +错误异常

时间:2016-10-03 11:31:18

标签: c# gdi+ privatefontcollection

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

  

System.Runtime.InteropServices.ExternalException:一般错误   发生在GDI +中。在   System.Drawing.Text.PrivateFontCollection.AddFontFile(String filename)

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

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

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

1 个答案:

答案 0 :(得分:0)

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