Мы создаем большое количество шрифтов для краткого использования. Шрифты встроены в документы. Я хочу удалить файлы шрифтов, если они больше не используются. Как мы можем это сделать? Следующий упрощенный код не работает:Как удалить файл PrivateFontCollection.AddFontFile?
PrivateFontCollection pfc = new PrivateFontCollection();
pfc.AddFontFile(fontFile);
FontFamily family = pfc.Families[0];
Console.WriteLine(family.GetName(0));
family.Dispose();
pfc.Dispose();
GC.Collect();
GC.WaitForPendingFinalizers();
File.Delete(fontFile);
Удаление файла происходит из строя, поскольку файл заблокирован. Что я могу сделать еще, чтобы освободить блокировку файлов?
PS: Перед использованием AddMemoryFont. Эта работа с Windows 7. Но с Windows 8 .NET используйте неправильные файлы шрифтов после того, как первый FontFamily был удален. Поскольку каждый документ может содержать другие шрифты, нам нужно очень большое количество шрифтов и не может содержать ссылки на все.
Добавлена ошибка подключения https://connect.microsoft.com/VisualStudio/feedback/details/1379843 – Peter