Telepítőprogram készítése Windows rendszerekre a futtatókörnyezethez és az adatbázishoz
A RoolWikiBÓL
A telepítőt a NullSoft NSIS [1] rendszerével, a 2.42-es verzióval készítettem. Ehhez programot kell írni, melyet az NSIS lefordít, mely eredménye a telepítő lesz. Alábbiakban a program egyes részletei láthatók. A teljes program szövege itt található:
- roolnet Start futtatókörnyezet telepítő szkript
- PostgreSQL adatbáziskezelő + roolnet adatbázis telepítése
Tartalomjegyzék |
Fejlesztőkörnyezet telepítője
A telepítés néhány fő részre bontható:
- Globális beállítások
- Licensz elfogadása
- Az adatbázis gép címének bekérése
- Telepítési célmappa kiválasztása
- Fájlok másolása
- Ikon készítése az asztalra
- Start menübe bejegyzés
- Eltávolító készítése
Globális beállítások
XPStyle on ShowInstDetails hide ShowUninstDetails hide ; The name of the installer Name "${prodname}" Caption "${prodname}" ; The file to write by compiler OutFile "${setup}" SetDateSave on SetDatablockOptimize on CRCCheck on SilentInstall normal ; The default installation directory InstallDir "$PROGRAMFILES\${company}\${prodname}" InstallDirRegKey HKLM "${regkey}" "" ; Request application privileges for Windows Vista RequestExecutionLevel admin LoadLanguageFile "${NSISDIR}\Contrib\Language files\Hungarian.nlf"
Licensz elfogadása
LicenseData <fájlnév> Page license
Az adatbázis gép címének bekérése
# hostname paraméterhet Var Dialog Var hostLabel Var hostText Var hostText_State Var hostImage Var hostImageHandle # end of hostname paraméterhet ... Page custom nsDialogsPage_hostParam nsDialogsPageLeave_hostParam ... # host bekérése, a parancsikon készítéséhez Function nsDialogsPage_hostParam nsDialogs::Create 1018 Pop $Dialog ${If} $Dialog == error Abort ${EndIf} ${NSD_CreateLabel} 0 70u 100% 12u "Kérem adja meg a roolnet adatbázist szolgáltató gép nevét (vagy IP címét)!" Pop $hostLabel ${NSD_CreateText} 0 83u 100% 13u $hostText_State Pop $hostText ${NSD_CreateBitmap} 0 0 100% 100% "" Pop $hostImage ${NSD_SetImage} $hostImage $PLUGINSDIR\hostimage.bmp $hostImageHandle nsDialogs::Show FunctionEnd Function nsDialogsPageLeave_hostParam ${NSD_GetText} $hostText $hostText_State FunctionEnd
Telepítési célmappa kiválasztása
Page directory
Fájlok másolása
Page instfiles ... Section "" ;No components page, name is not important ; Set output path to the installation directory. SetOutPath $INSTDIR ; Put file there File vrt.exe File vrtsblib.dll File libpq.dll File qsqlpsql.dll File qt-mt331.dll File odbc.dll File lpsolve55.dll File vrtlibdevice.dll File vrtlibglp58hw.dll File vrtlibglp58mcs.dll File vrtlibite.dll File vrtlibserial.dll File vrtlibsocket.dll File vrtlibstmcs.dll ; ikon létrehozása CreateShortCut "$INSTDIR\${prodname}.lnk" \ "$INSTDIR\vrt.exe" \ "${execparam}" \ "$INSTDIR\vrt.exe" 0 \ SW_SHOWNORMAL \ ALT|CONTROL|SHIFT|F5 \ "roolnet futtatókörnyezet" SectionEnd ; end the section
Ikon készítése az asztalra
CopyFiles "$INSTDIR\${prodname}.lnk" "$DESKTOP\${prodname}.lnk"
Start menübe bejegyzés
CreateDirectory "${startmenu}" CopyFiles "$INSTDIR\${prodname}.lnk" "${startmenu}\${prodname}.lnk"
CreateShortCut "${startmenu}\roolnet Start Eltávolítás.lnk" "$INSTDIR\$uninstallerName"
!ifdef website WriteINIStr "${startmenu}\roolnet Start Honlap.url" "InternetShortcut" "URL" ${website} WriteINIStr "${startmenu}\roolnet Start Dokumentáció.url" "InternetShortcut" "URL" "www.elelmiszerbiztonsag.hu/mediawiki" !endif
Eltávolító készítése
UninstPage uninstConfirm UninstPage instfiles
A Section-ben:
writeUninstaller $INSTDIR\$uninstallerName
UninstallText "${prodname} eltávolítása."
Section "Uninstall" RMDir /r "$SMPROGRAMS\${company}" delete $INSTDIR\uninstaller.exe delete "$SMPROGRAMS\roolnet Start" delete $INSTDIR\vrt.exe delete $INSTDIR\vrtsblib.dll delete $INSTDIR\libpq.dll delete $INSTDIR\qsqlpsql.dll delete $INSTDIR\qt-mt331.dll delete $INSTDIR\odbc.dll delete $INSTDIR\lpsolve55.dll delete $INSTDIR\vrtlibdevice.dll delete $INSTDIR\vrtlibglp58hw.dll delete $INSTDIR\vrtlibglp58mcs.dll delete $INSTDIR\vrtlibite.dll delete $INSTDIR\vrtlibserial.dll delete $INSTDIR\vrtlibsocket.dll delete $INSTDIR\vrtlibstmcs.dll delete "$INSTDIR\${prodname}.lnk" RMDir $INSTDIR RMDir "$PROGRAMFILES\${company}" delete "$DESKTOP\${prodname}.lnk" SectionEnd ; end the section Uninstall