2012-05-14 5 views
14

Wenn ich mein Installationsprogramm öffne (das ich mit NSIS erstellt habe), wird das Dialogfeld UAC mit Informationen zu meinem Installationsprogramm angezeigt. Das Feld Publisher ist "unbekannt". Ich habe gehört, die Anwendung digital zu signieren. Wissen Sie, wie man das in NSIS macht?Einstellen des UAC-Feldes 'Publisher' für ein NSIS-Installationsprogramm

Wie kann ich das Feld/Attribut Publisher auf "My Installer" oder einen anderen Text setzen?

Ich denke, der folgende Code soll das Verlag Feld setzen, aber es funktioniert nicht, es bleibt immer noch ‚unbekannt‘:

InstallDir "abc" 
Name  "def"   
OutFile  "def.exe" 

VIProductVersion     "1.0.0.0" 
VIAddVersionKey ProductName  "def" 
VIAddVersionKey Comments   "MY DESCRIPTION" 
VIAddVersionKey CompanyName  "My Installer" 
VIAddVersionKey LegalCopyright "MY COMPANYNAME" 
VIAddVersionKey FileDescription "MY DESCRIPTION" 
VIAddVersionKey FileVersion  1 
VIAddVersionKey ProductVersion 1 
VIAddVersionKey InternalName  "def" 
VIAddVersionKey LegalTrademarks "PTY LTD" 
VIAddVersionKey OriginalFilename "def.exe" 

Section 
    DetailPrint "Hello World" 
SectionEnd 
+1

Wenn Sie nicht mit nicht freigegebenen Version von NSIS von Svn spielen möchten, können Sie es nicht einfach ändern. Siehe http://stackoverflow.com/questions/4244497/changing-nsis-installer-properties – Seki

+2

Wichtig ist, dass das Feld "publisher" dort digital signiert wird, wobei der Herausgeber derjenige der Signatur ist. Das bedeutet, dass Sie zunächst eine Signatur kaufen müssen. –

Antwort

17

Sie auf Authenticodesign das Installationsprogramm mit einem Zertifikat haben würden Von Windows vertraute Autorität (Wenn Sie Teil von Winqual sein möchten, benötigen Sie ein spezielles Zertifikat, und MS erlaubt nur die Verwendung von VeriSign), da dieses Feld aus dem digitalen Zertifikat extrahiert wird (sofern eines vorhanden ist) und nicht aus der PE-Versionsinformation.

Um als Teil des Build-Prozesses zu signieren, können Sie diese hack verwenden, oder wenn Sie die Unicode-Gabel verwenden, können Sie den !finalize Befehl verwenden.

Verwandte Themen