Inno Setup

vložil Radek Červinka 1. července 2011 22:00

Miluji programy, které nemusím instalovat (a které mohu kdykoliv smazat).

Delphi je pro takové programy ideální, protože programy v něm napsané v podstatě nemusí mít žádné závislosti. Ale jsou situace, zvláště při komplikovanějších programech, kdy je pro korektní funkci vhodné provést instalaci např. protože potřebujete pro zápis někam administrátorské práva.

Existuje více nástrojů na vytvoření instalace, namátkou InstallAware (očesaná verze je součástí instalace Delphi), InstallShield (podle mne složitá a přeceňovaná klasika), NSIS (Nullsoft Scriptable Install System) (OSS, bohužel poslední verze je z roku 2009) a pak samozřejmě Inno Setup.

Je to už dávno co jsem potřeboval napsat první instalátor. Zkusil jsem tehdy InstallShield a nikdy více (sám mu od té doby říkám zkomoleninou). A pak jsem narazil na InnoSetup a během 5minut vytvořil potřebnou instalaci. A to rozhodlo.

InnoSetup disponuje wizardem, který pro jednodušší instalace stačí. Výsledkem jeho práce je prostý textový soubor, který můžete dále editovat, přidávat funkce, přidat skript pro složitější operace, volat externí DLL (např. v Delphi) pro extra složité operace atd. Samozřejmě můžete wizarda vynechat :-) a napsat pravidla přímo.

Z dalších vlastnosti: samozřejmě unistall, uživatelská konfigurace instalace, zápis do registrů a ini, vytváření zástupců, podpora pro 64bit Windows, lokalizace, single exe instalace, integrovaný pascal pro složitější skripty a je free. A mnozí další efektové.

Inno Setup

Jak jsem psal, tak velmi významné je možnost volat vaše DLL v Delphi a výsledek následně zpracovat ve skriptu Inno setupu. To prakticky posouvá limity použití. Samozřejmě, takový InstallAware má prima podporu pro web instalaci (což každý, kdo instaloval Delphi posledních verzí pochopil, jelikož instalátor Delphi je vytvořen právě v InstallAware], ale poměrem cena/výkon u mne Inno setup zvítězil.

Např. povolení firewall pro váš program sender.exe

[Run]
Filename: "{sys}\netsh.exe"; Parameters: "firewall add allowedprogram "
"{app}\sender.EXE"" ""sender"" ENABLE ALL"; StatusMsg: "Enable firewall…"; 
Flags: runhidden; MinVersion: 0,5.01.2600sp2;

nebo zápis do registru a vytvoření ikony.


[Registry]
Root: HKCR; Subkey: "TestPrg"; ValueType: string; ValueName: ""; ValueData: "hodnota"; Flags: uninsdeletekey

[Icons]
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

Odkaz na ukázku volání DLL byl uveden na začátku.

Mnoho ukázek je na v helpu nebo ve Inno Setup Knowledge Base, nebo často pomůže google, jelikož Inno setup je opravdu populární.


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: , ,

Nástroje

Komentáře

2.7.2011 13:51:55 #

Karel Janeček

Dobrý den, díky za zajímavý článek. Již prakticky od počátku mé práce v Delphi (začínal jsem verzí 2, pro Turbo a Borland Pascal aplikace jsem si psal vlastní instalační utility) používám k plné spokojenosti InstallShield. Pravda, není úplně levný, ale dle mého názoru uživatelsky příjemný a nabízí vše, co potřebuji.

Karel Janeček

2.7.2011 14:04:56 #

Radekc

Jasně, každému může vyhovovat něco jiného.

Ještě jsem zapomněl, že Inno Setup je psaný v Delphi a jsou dostupné zdrojové kódy. Zatím jsem je nepotřeboval, ale ta možnost tu je.

Radekc

2.7.2011 16:43:51 #

Vladimír klaus

InnoSetup používám přes 10 let (přesně to nedám). Výborný a spolehlivý nástroj, který mě ještě nezklamal. A "chyby", které jsou mezi verzemi opravovány, jsou opravdu zcela okrajové, takže pro běžné použití vlastně neexistují.

Nejsložitější instalací (podpořenou scriptem) byla vlastně kombinace 6 instalací - 2 x CD (síťová, klientská, lokální), nebo instalace produktu ze 3 DVD, kde se scriptem řídila výměna disků a řada dalších věcí.

Jednoznačně jde o jednu z nejlepších věcí, kterou jsem za svůj programátorský život potkal. A kdo mě na tento úžasný soft v minulém století upozornil? Christian Ghisler...

Vladimír klaus

2.7.2011 18:52:44 #

Radim

Pouzivate tiez - http://www.innoide.org/ ??

Radim

3.7.2011 12:19:15 #

pepak

Jak velký mají tyhle instalační programy footprint? Jinými slovy, o kolik se zvětší velikost výsledného souboru, pokud místo běžného komprimovaného archívu použiju jednotlivé instalátory?

pepak

3.7.2011 13:04:22 #

Radekc

Jelikož jsem včera dělal instalátor pro Dual FileView, tak pro Inno Setup je to:
- původní archív (klasický zip, max. komprese), bez unistalátoru - 512 978 bytes
- innosetup exe včetně unistalátoru - 634053 bytes

Když jsem do původního zipu přidal unistalátor (jen pro porovnání, nemá vliv na funkčnost) - 849 987
- původní archív přes 7z - 326 004 bytes (s unistalátorem 565 432 bytes)

Což je pro Innosetup dobrý výsledek.

Radekc

Komentování ukončeno

Naše nabídka

Partial English version.

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy nebo burzy práce).

Pokud chcete podpořit tento server libovolnou částkou, můžete použít PayPal. Moc děkuji.

Delphi Certified Developer

O Delphi.cz

Delphi je jediný moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64 , Mac OSX a na iPhone a Android (s výhledem na další platformy díky FireMonkey) na současném trhu (včetně Windows 8.1).

V současnosti je světová komunita přes dva miliónů vývojářů.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Anketa

Poslední komentáře

Comment RSS