VCL daha doğrusu masaüstü yazılımlarımız için kolay kurulum işleminin nasıl yapılacağını sizler için aşağıda detaylı bir şekilde açıklamaya çalışalım. Biz setup oluşturma işlemi için open source bir uygulama olan NSIS kullanacağız.
NSIS (Nullsoft Scriptable Install System), Windows işletim sistemleri için kolay kurulum exeleri oluşturmak için sık tercih edilen profesyonel açık kaynaklı bir uygulamadır. Mümkün olduğunca küçük ve esnek olacak şekilde tasarlanmıştır, bu nedenle internet dağıtımı için çok uygundur.
Son kullanıcının ürününüzle ilgili ilk deneyimi kolay kurulum işlemidir. Bu setup oluşturma işlemi istikrarlı ve güvenilir olmalıdır, bunlar başarılı yazılımın önemli bir bileşenidir. NSIS ile yazılımınızı kurmak için gereken her şeyi yapabilen uygulama kurulumları oluşturabilirsiniz.
NSIS, betik tabanlıdır ve en kompleks kurulum görevlerini bile işlemek için mantık oluşturmanıza izin verir. Birçok eklenti ve komut dosyası zaten mevcuttur: Web yükleyicileri oluşturabilir, Windows ve diğer yazılım bileşenleri ile iletişim kurabilir, paylaşılan bileşenleri yükleyebilir veya güncelleştirebilirsiniz. Biz örneğimizde c# programı ile yazdığımız bir uygulamanın setup oluşturmasını işleyeceğiz.
NSIS Section blokları kurulum yapılacak uygulama dosya bloklarıdır bu dosyalar birden fazla olabilir, dosya tiplerinde herhangi bir sınırlama yoktur örnek exe, dll yada resim dosyaları olabilir.
SectionIn RO, kuruluma zorlama işlemi yapar custom moduna girmez mutlaka kurulumunu yapar. Section 1 ise InstType lardaki index 1 olana işaret eder bu örneğimizde component seçiminde mevcut ise kurulum yaptırır.
Kullanıcıların seçimleri doğrultusunda kurulum işlemini yönlendirebiliriz. Aşağıdaki örneğimizde oracle dosyaları kopyalandıktan sonra oracle setup.exe dosyasının çalışsın mı sorusunu kullanıcının kararırına bırakmaktadır.
Section "Oracle Kolay Kurulum" ORACLEIDX SectionIn 1 ; Oracle Kurulumu SetOutPath "$INSTDIR\oracle" File /r "D:\Araclar\Oracle 11g Client Win 7\client" SearchPath $1 $INSTDIR\oracle\client\setup.exe ; MessageBox MB_OK "$INSTDIR\oracle\client\setup.exe=$1" MessageBox MB_YESNO "Do you want to continue to set up process for Oracle?" IDYES true IDNO false true: Exec '"$1"' ExecShell "open" '"$INSTDIR"' Sleep 500 BringToFront false: Abort SectionEnd
Tek bir dosya yerine komple dizinin kopyalanması için aşağıdaki şekilde bir kullanım yapabiliriz.
File /r "D:\Araclar\Oracle 11g Client Win 7\client"
CreateShortCut "$DESKTOP\ornek.lnk" "$INSTDIR\ornek.exe" "" "$INSTDIR\ornek.exe" 0
NSIS bir çok konuda oldukça başarılı örneğimizde yer vermedik ama Dialog pencereleri oluşturabilir, Windows Registiry işlemlerinden tutun ini dosyalarının oluşturulmasına kadar benzer bir çok şeyi yapabilirsiniz.
Örnek oluşturması açısında aşağıdaki scriptin üzerinde çalışabilirsiniz.
!define MUI_PRODUCT "Ornek Uygulama Kolay Kurulum" !define MUI_FILE "ornek.exe" !define MUI_VERSION "1.0" !define MUI_BRANDINGTEST "Ornek Uygulama Kolay Kurulum" !ifdef NOCOMPRESS SetCompress off !endif ;-------------------------------- Name "Ornek Uygulama" Caption "Ornek Uygulama Instalation" ;Icon: "C:\Program Files (x86)\NSIS\Contrib\Graphics\Icons\nsis1-install.ico" OutFile "orneksetup.exe" InstallDir "c:\ornek\" RequestExecutionLevel admin ; Pages Page components Page directory Page instfiles ;-------------------------------- !ifndef NOINSTTYPES ; only if not defined ;InstType "Most" InstType "Full" ;InstType "More" ;InstType "Base" InstType "Minimal" ;InstType /NOCUSTOM ;InstType /COMPONENTSONLYONCUSTOM !endif Section "Ornek Uygulama Kolay Kurulum" SectionIn RO SetOutPath $INSTDIR ; ornek uygulama File "c:\ornek\Win32\Debug\ornek.exe" CreateShortCut "$DESKTOP\ornek.lnk" "$INSTDIR\ornek.exe" "" "$INSTDIR\ornek.exe" 0 SectionEnd Section "Teamviewer Kolay Kurulum" TEAMIDX SectionIn 1 SetOutPath $INSTDIR ; Teamviewer File "d:\Araclar\teamviewer.exe" CreateShortCut "$DESKTOP\BoranTW.lnk" "$INSTDIR\teamviewer.exe" "" "$INSTDIR\teamviewer.exe" 0 SectionEnd Section "Oracle Kolay Kurulum" ORACLEIDX SectionIn 1 ; Oracle Kurulumu SetOutPath "$INSTDIR\oracle" File /r "D:\Araclar\Oracle 11g Client Win 7\client" SearchPath $1 $INSTDIR\oracle\client\setup.exe ; MessageBox MB_OK "$INSTDIR\oracle\client\setup.exe=$1" MessageBox MB_YESNO "Do you want to continue to set up process for Oracle?" IDYES true IDNO false true: Exec '"$1"' ExecShell "open" '"$INSTDIR"' Sleep 500 BringToFront false: Abort SectionEnd Function .onSelChange SectionSetText ${TEAMIDX} "Boran Teamviewer Kolay Kurulum" SectionSetText ${ORACLEIDX} "Oracle Kolay Kurulum" ; SectionGetText ${ORACLEIDX} $0 ; StrCmp $0 "" e ; SectionSetText ${ORACLEIDX} "" ; Goto e2 ;e: ; SectionSetText ${ORACLEIDX} "Oracle Kolay Kurulum" ;e2: FunctionEnd
Kaynak http://nsis.sourceforge.net/Main_Page [nsis.sourceforge.net]
Yorumlar