Added a basic, but working, installer.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/experienceui-setup.nsi Mon Aug 03 21:48:40 2009 -0400
@@ -0,0 +1,134 @@
+; ExperienceUI installation
+Name "ExperienceUI SDK"
+
+SetCompressor /final /solid lzma
+
+!define XPUI_SYSDIR ".\Contrib\ExperienceUI"
+!include "${XPUI_SYSDIR}\XPUI.nsh"
+OutFile "experienceui-${XPUI_VERSION}.exe"
+InstallDir "$PROGRAMFILES\NSIS\ExperienceUI"
+InstallDirRegKey HKLM "Software\NSIS\ExperienceUI" ""
+RequestExecutionLevel admin
+
+${Page} Welcome2
+${LicensePage} "Contrib\ExperienceUI\License.rtf"
+${Page} Directory
+${Page} InstConfirm
+${Page} InstFiles
+
+${UnPage} Welcome2
+${UnPage} UnConfirm
+${UnPage} InstFiles
+${UnPage} Finish
+
+${Language} English
+
+Function .onInit
+ ClearErrors
+ ReadRegStr $0 HKLM "Software\NSIS" ""
+ IfErrors 0 +2
+ Return
+
+ ; Set installation dir only if the ExUI is not installed
+ ClearErrors
+ ReadRegStr $R0 HKLM "Software\NSIS\ExperienceUI" ""
+ IfErrors +2
+ Return
+
+ StrCpy $INSTDIR "$0\ExperienceUI"
+FunctionEnd
+
+Section
+ SetOutPath $INSTDIR
+ File /r Contrib
+ File /r Docs
+ File /r Examples
+ File /r Include
+ File /r Plugins
+
+ ; Write install dir
+ WriteRegStr HKLM "Software\NSIS\ExperienceUI" "" "$INSTDIR"
+
+ ; Write uninstaller
+ WriteUninstaller "$INSTDIR\uninstall-exui.exe"
+
+ ; Registry stuff
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" "DisplayName" "$(^Name)"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" "UninstallString" "$INSTDIR\uninstall-exui.exe"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" "DisplayIcon" "$INSTDIR\Contrib\Graphics\Icons\XPUI-install.ico"
+
+ ; Register with NSIS
+ ClearErrors
+ ReadRegStr $0 HKLM "Software\NSIS" ""
+ IfErrors 0 +3
+ ; NSIS not found
+ MessageBox MB_OK|MB_ICONEXCLAMATION "Setup did not detect NSIS on your system. Integrating the ExperienceUI with NSIS will be your job once you install NSIS."
+ Return
+
+ MessageBox MB_YESNO|MB_ICONQUESTION "Found NSIS installation at $0. Do you want to register the ExperienceUI SDK with this copy of NSIS?$\n$\n(If you don't, you'll have to specify the full path to XPUI.nsh in your scripts.)" IDYES +2
+ Return
+
+ ; Write in .nsh
+ ; $0 = NSIS installation dir
+ ClearErrors
+ FileOpen $1 "$0\Include\XPUI.nsh" "w"
+ FileWrite $1 "!define XPUI_SYSDIR $\"$INSTDIR\Contrib\ExperienceUI$\"$\r$\n"
+ FileWrite $1 "!include $\"$$"
+ ; stupid compiler bugs...
+ FileWrite $1 "{XPUI_SYSDIR}\XPUI.nsh$\"$\r$\n"
+ FileClose $0
+SectionEnd
+
+Section "Uninstall"
+ Delete "$INSTDIR\uninstall-exui.exe"
+ DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)"
+ DeleteRegKey HKLM "Software\NSIS\ExperienceUI"
+
+ ; The goal here: completely clean up the ExperienceUI, but if
+ ; there's other stuff, don't touch it
+
+ ; Remember, only RmDir /r removes directories with files.
+ ; Otherwise, it only removes fully empty directories.
+
+ ; Contrib
+ RmDir /r "$INSTDIR\Contrib\ExperienceUI"
+ Delete "$INSTDIR\Contrib\Graphics\Icons\XPUI-install.ico"
+ Delete "$INSTDIR\Contrib\Graphics\Icons\XPUI-uninstall.ico"
+ RmDir "$INSTDIR\Contrib\Graphics\Icons"
+ RmDir "$INSTDIR\Contrib\Graphics"
+ RmDir "$INSTDIR\Contrib"
+
+ ; Docs
+ RmDir /r "$INSTDIR\Docs\ExperienceUI"
+ RmDir "$INSTDIR\Docs"
+
+ ; Examples
+ RmDir /r "$INSTDIR\Examples\ExperienceUI"
+ RmDir "$INSTDIR\Examples"
+
+ ; Include
+ Delete "$INSTDIR\Include\NSISArray.nsh"
+ Delete "$INSTDIR\Include\RecFind.nsh"
+ Delete "$INSTDIR\Include\system.nsh"
+ Delete "$INSTDIR\Include\XPUI.nsh"
+ RmDir "$INSTDIR\Include"
+
+ ; Plugins
+ Delete "$INSTDIR\Plugins\DcryptDll.dll"
+ Delete "$INSTDIR\Plugins\messagebox.dll"
+ Delete "$INSTDIR\Plugins\newadvsplash.dll"
+ Delete "$INSTDIR\Plugins\NSISArray.dll"
+ Delete "$INSTDIR\Plugins\WAnsis.dll"
+ Delete "$INSTDIR\Plugins\ZipDLL.dll"
+ RmDir "$INSTDIR\Plugins"
+
+ RmDir "$INSTDIR"
+
+ ClearErrors
+ ReadRegStr $0 HKLM "Software\NSIS" ""
+ IfErrors +2
+ Return
+
+ Delete "$0\Include\XPUI.nsh"
+
+SectionEnd
\ No newline at end of file