2010-11-22 145 views
16

我有一個名爲setup.exe的基於NSIS的安裝程序文件。當我進入「屬性」 - >「詳細信息」時,許多細節都丟失了。當我運行安裝程序時,UAC請求提升權限(這沒問題),但發佈者是「未知」。更改NSIS安裝程序屬性

如何在最終的setup.exe中設置這些屬性,最好是隻更改NSIS安裝程序腳本本身?

回答

30

對於屬性,您需要版本信息表:各種VIAddVersionKey指令和VIProductVersion。作爲一個例子,這裏是一個從PortableApps.com Launcher片段:

Name "${NamePortable} (PortableApps.com Launcher)" 
OutFile "${PACKAGE}\${AppID}.exe" 
Icon "${PACKAGE}\App\AppInfo\appicon.ico" 
Caption "${NamePortable} (PortableApps.com Launcher)" 
VIProductVersion ${Version} 
VIAddVersionKey ProductName "${NamePortable}" 
VIAddVersionKey Comments "A build of the PortableApps.com Launcher for ${NamePortable}, allowing it to be run from a removable drive. For additional details, visit PortableApps.com" 
VIAddVersionKey CompanyName PortableApps.com 
VIAddVersionKey LegalCopyright PortableApps.com 
VIAddVersionKey FileDescription "${NamePortable} (PortableApps.com Launcher)" 
VIAddVersionKey FileVersion ${Version} 
VIAddVersionKey ProductVersion ${Version} 
VIAddVersionKey InternalName "PortableApps.com Launcher" 
VIAddVersionKey LegalTrademarks "PortableApps.com is a Trademark of Rare Ideas, LLC." 
VIAddVersionKey OriginalFilename "${AppID}.exe" 

至於UAC提示出版商場,這是不同的。這與簽署有關。您首先需要一個數字證書,這需要花錢,然後您可以將它與!finalize集成。

+0

!finalize僅用於SVN構建,您必須等待該命令的2.47。但是在NSIS論壇上還有一些關於簽名使用的其他線程!system – Anders 2010-11-22 17:06:33

+0

@Anders:啊,我剛剛搜索了「nsis sign」(知道可以完成,我們的頭人簽署了我們的東西),並且發現了很多關於簽名* uninstallers *但沒有什麼安裝程序。 (關於簽署卸載程序的Wiki頁面,但沒有任何關於簽署安裝程序的內容?應該糾正這一點。)我沒有認出'!finalise',但認爲它可能已在2.46中引入,我忘了它。考慮到我已經爲它完成了一個Vim語法文件並通過了這些命令,我​​想我只是沒有真正想到它。 – 2010-11-22 23:48:13