PrivateFontCollection.AddFontFile() генерирует общее исключение ошибки GDI+

Добавление частного шрифта прекрасно работает на моей локальной машине с 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, возникает та же "общая ошибка" - так что это может быть проблема с разрешениями)

У кого-нибудь есть решение этой проблемы? Возможно ли, что у пользователя службы на производительной машине отсутствуют другие права, необходимые для "установки" частных шрифтов? Возможно, шрифт устанавливается в определенную директорию, которая не разрешена, но я не мог выяснить, где это будет. Пожалуйста, помогите мне с этой самоочевидной "общей ошибкой".

1 ответ

Кажется, проблема в том, чтобы не использовать абсолютный путь. Сначала не думал об этом, потому что удаление файла привело к явному FileNotFound. Использование абсолютного пути сделало свое дело.

Другие вопросы по тегам