2016-12-16 4 views
2

Я использую Inno Setup для установки шрифта Fontawesome для настольного приложения в Windows. Первая установка обычно работает нормально, как не установлены шрифты, а на последующих инсталляциях я часто сталкиваюсь с фиксирующими проблемами:Установка шрифтов с установкой Inno - Замена шрифтов, которые заблокированы

Inno Installer locked font file Dialog

Чтобы установить шрифт, я использую:

Source: "FontAwesome.ttf"; DestDir: "{fonts}"; FontInstall: "FontAwesome";\ 
     Flags: uninsneveruninstall 

Теперь я знаю, что могу использовать Flags: onlyifdoesntexist для установки шрифтов только в том случае, если они не существуют и что работает. Однако иногда мне нужно обновить шрифт из-за изменения версии и новых шрифтов, которые были добавлены.

Ошибка, по-видимому, происходит, только если что-то использует шрифт. Помимо основного установленного приложения, я использую Chrome и открываю страницы, которые используют FontAwesome и, по-видимому, также блокируют установленный шрифт.

В идеале, мне нужно, чтобы этот шрифт был заблокирован, заменив его после следующей перезагрузки или после того, как шрифт будет разблокирован.

Также похоже, что Inno пытается заменить шрифт каждый раз, даже если версия шрифта одинаков. Согласно the docs (внизу документа) файлы должны быть заменены только в том случае, если версия для установки выше, но это, похоже, не происходит с шрифтом, который требуется установить каждый раз.

Есть ли способ заставить Inno правильно иметь дело с обновлениями шрифтов, если этот шрифт используется?

+0

Ваше изменение о версии шрифта: Это новый вопрос. Это не связано с блокировкой. –

ответ

2

Вы можете попытаться добавить *.ttf в CloseApplicationsFilter.

CloseApplicationsFilter=*.exe,*.dll,*.chm,*.ttf 

Он должен производить проверку установки Inno, если шрифт заблокирован, и предлагают пользователю закрыть Chrome (или другое приложение), чтобы разрешить замену.

+0

Это работает, спасибо! Хотя Inno, похоже, не может закрыть Chrome - придется вручную закрыть его. Все еще хорошо. Теперь, если Inno только не будет пытаться установить одну и ту же версию снова и снова ... –

+0

Это, вероятно, тоже можно решить. Задайте новый вопрос. –

Смежные вопросы