Sorry to piss on a bonfire.. but since when do you have beta versions of installers!?
Sounds like right now, all it does is adds a pretty picture (UI) to the front end of a self-extracting archive... a bit like coding a text editor, but making the editor part read-only until v0.2
I think the moral of the story here is: if you're going to do something, sit down, take your time, and do a thorough and quality job. Don't rush something out in 5 minutes and then do daily fixes which, after a week, make it usable. Especially at 155MB per time! Something various memory editing app devs should have been aware of too.
NSIS is a wonderful install system. It really is, but I don't fell that it's needed in this case.
Oh, and make your life easier, use Venis IX. I've done some things with NSIS, mainly addon installers for BF1942, so if you need any help, just let me know.
The main power behind the NSIS system is not that it's got the world class compression algorithm of LZMA, and indeed LZMA (whole). It is that you can interact, and change the course of the installation process on the fly. I've provided an example of that in this post, you'll find it in the attachments.
For this example, try to change the directory to a place where the LFS.exe would not be found, then change it to your install directory for LFS, where the LFS.exe is found. Take a look at the back ground color for the install directory text box and you'll notice a change.
Here is the code of the attached is the installer.
; Includes !include LogicLib.nsh
; Define your application name !define APPNAME "Live For Speed" !define VERSION "S2 0.5Y" !define APPNAMEANDVERSION "${APPNAME} ${VERSION}"
BrandingText "${APPNAME}"
; Main Install settings Name "${APPNAMEANDVERSION}" InstallDir "$PROGRAMFILES\${APPNAME}" InstallDirRegKey HKLM "Software\${APPNAME}" "" OutFile "Install.exe"
; Custom function, to see if LFS.exe is present. Function .onVerifyInstDir FindWindow $R0 "#32770" "" $HWNDPARENT GetDlgItem $R0 $R0 1019 ${If} ${FileExists} "$INSTDIR\LFS.exe" SetCtlColors $R0 000000 00FF00 ${Else} SetCtlColors $R0 000000 FF0000 ${EndIf} FunctionEnd
; Modern install component descriptions !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${Section1} "Live For Speed" !insertmacro MUI_FUNCTION_DESCRIPTION_END
;Uninstall section Section Uninstall
;Remove from registry... DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" DeleteRegKey HKLM "SOFTWARE\${APPNAME}"
; Delete self Delete "$INSTDIR\uninstall.exe"
; Delete Shortcuts Delete "$DESKTOP\InstallScript.lnk" Delete "$SMPROGRAMS\Live For Speed\InstallScript.lnk" Delete "$SMPROGRAMS\Live For Speed\UninstallProgram.lnk"
; Clean up Live For Speed Delete "$INSTDIR\Install.nsi"
; Remove remaining directories RMDir "$SMPROGRAMS\Live For Speed"
SectionEnd
; eof
This would be very useful for patch updates to LFS, so that you can confirm, without requiring that the install directory include the LFS.exe. As so they don't update the wrong files. Also patches would be smaller with the use of another add on that simple changes only the bytes that are effected for each file that needs to be patched. It's a tremendous improvement over old simple patches systems, but still having it's own pit falls. Such as if the user moidfied the file, then the new file could become corrupted as the installed is expecting a non edited file.
You could say that I kinda grok this stuff, so I'm kinda excited that some one else has brought it into the front. I can provide more examples on this install system. Like providing links in the start menu to the LFS Website, LFS Fourm, LFS Wiki.
; This would be placed inside of the ; 'Section "Live For Speed" Section1' and 'Section End' around 'CreateShortCut'. CreateShortCut "$SMPROGRAMS\Live For Speed\LFS Site.lnk" "http://www.lfs.com/" CreateShortCut "$SMPROGRAMS\Live For Speed\LFS Wiki.lnk" "http://www.lfswiki.com/" CreateShortCut "$SMPROGRAMS\Live For Speed\LFS Forum.lnk" "http://www.lfsforum.com/"