2016-12-16 154 views
2

我使用Inno安裝程序在Windows上爲桌面應用程序安裝Fontawesome字體。首先安裝通常作爲字體未安裝工作正常,但在隨後的安裝我經常遇到鎖定問題:使用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 Setup的檢查,如果字體被鎖定,並提供一個用戶關閉瀏覽器(或其他應用程序),以允許更換。

+0

工作,謝謝!雖然Inno似乎無法關閉Chrome,但必須手動關閉它。仍然沒關係。現在,如果Inno只是不會試圖一遍又一遍地安裝相同的版本...... –

+0

這也許是可以解決的。問一個新問題。 –