[NSIS] Instalator z podstawaowymi funkcjami


(Cranegger) #1

Witam. Sprawa wygląda tak: Szybko potrzebuję stworzyć instalator do mojego programu, a niestety mam mało czasu. Nie znam języka skryptowego z NSIS-a i nie mam czasu się go uczyć (mam kilka dni na skończenie dużego projektu + instalatora).

Nie potrzebuję niczego wielkiego, jedynie:

-instalatora

-deinstalatora

-wyświetlenia licencji

-dodania ikony na pulpit

-dodania programu do listy programów

Jeśli ktoś ma jakiegoś gotowca bardzo bym prosił o podanie.

Jesli znacie inne dobre instalatory, które nie wymagają znajomości żadnych języków skryptowych to proszę o liniki.


(somekind) #2

Ja używam InnoSetup. Można ściągnąć z dobreprogramy.pl, tam też jest plik dla polskich instalatorów.

Przykład skryptu:

; Script generated by the Inno Setup Script Wizard.

; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!


[Setup]

AppName=Nazwa programu

AppVerName=Nazwa programu 1.0

AppPublisher=MyCompany Software

AppPublisherURL=www.google.pl

AppSupportURL=http://www.google.pl

AppUpdatesURL=http://www.google.pl

DefaultDirName={pf}\Nazwa programu

DefaultGroupName=Nazwa programu

AllowNoIcons=yes

LicenseFile=D:\licencja.txt

OutputBaseFilename=Nazwa_programu_Setup

Compression=lzma/ultra

SolidCompression=yes


[Languages]

Name: "english"; MessagesFile: "compiler:Default.isl"

Name: "polish"; MessagesFile: "compiler:Languages\Polish.isl"


[Tasks]

Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked


[Files]

Source: "D:\Nazwa_programu.exe"; DestDir: "{app}"; Flags: ignoreversion

Source: "D:\licencja.txt"; DestDir: "{app}"; Flags: ignoreversion

; NOTE: Don't use "Flags: ignoreversion" on any shared system files


[Icons]

Name: "{group}\Nazwa programu; Filename: "{app}\Nazwa_programu.exe" ; WorkingDir: "{app}"; Comment: "Nazwa programu"

Name: "{group}\{cm:ProgramOnTheWeb,Nazwa programu}"; Filename: "http://www.google.pl"

Name: "{group}\{cm:UninstallProgram,Nazwa programu}"; Filename: "{uninstallexe}"

Name: "{commondesktop}\Nazwa programu"; Filename: "{app}\Nazwa_programu.exe"; WorkingDir: "{app}"; Tasks: desktopicon

Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Nazwa programu"; Filename: "{app}\Nazwa_programu.exe"; WorkingDir: "{app}"; Tasks: quicklaunchicon


[Run]

Filename: "{app}\Nazwa_programu.exe"; Description: "{cm:LaunchProgram,Nazwa_programu}"; WorkingDir: "{app}"; Flags: nowait postinstall skipifsilent

Wystarczy nieco zmodyfikować :slight_smile:


(Cranegger) #3

Miałem InnoSetup na kompie i jakoś go nie zainstalowałem… Wielkie dzięki! Wszystko da się w nim wyklikać :wink:

Męczę się od rana z tym NSIS-em. Uratowałeś mi życie… Wielkie dzięki!

Pojawił się problem :frowning: Deinstalator nie usuwa plików utworzonych przez program.


(somekind) #4

Niemożliwe. Powinien wywalić wszytko, co jest w sekcji [Files]. U mnie usuwa. (O ile oczywiście pliki nie są używane przez inne procesy, sprawdź to)


(Cranegger) #5

Ale tych plików nie było w sekcji files. Są to pliki które program sam utworzył podczas działania, są to wszystkie przechowywane przez niego dane.


(somekind) #6

A to nic dziwnego :slight_smile:

Poczytaj manula, pewno tam jest napisane, jak usunąć takie pliki. Bo ja nigdy nie miałem potrzeby.


(Cranegger) #7

Manual nie pomaga. Nie mogę nic znaleźć na ten temat :frowning:

// Połączono posty.

Pokombinowałem i działa:

[UninstallDelete]

Type: files; Name: "{app}\*"

Type: files; Name: "{app}\config\*"

Type: files; Name: "{app}\ltm\*"

Type: files; Name: "{app}\fact\*"