Hi Ben,

> Le 23 mars 2018 à 19:53, Ben Coman <[email protected]> a écrit :
> 
> Coincidentally I have returned to Windows for a short while so thought I 
> should 
> put my money where my mouth is and have a stab at this.  After a few hours 
> trying with NSIS, 
> I went searching for an alternative and Advanced Installer looked like a good 
> chance.
> https://www.advancedinstaller.com/feats-list.html 
> <https://www.advancedinstaller.com/feats-list.html>
> The important part of  (free) Basic Features  is "Windows 10/8/7/Vista and 
> UAC installs"
> Also further down are some CI options. 

What bothers me is that it is not a free tool.
I can see the list of features here: 
https://www.advancedinstaller.com/feats-list.html

> 
> After just the "Simple Installation" tutorial and experimenting a few hours I 
> ironed out 
> a potential solution uploaded for testing to 
> http://www.mediafire.com/file/3g579bmzqspt8e1/BCPharoLauncher.msi 
> <http://www.mediafire.com/file/3g579bmzqspt8e1/BCPharoLauncher.msi>
> with the full build tree at  
> http://www.mediafire.com/file/5ijiww848lbkk7m/PharoLauncher%20Advanced%20Installer.zip
>  
> <http://www.mediafire.com/file/5ijiww848lbkk7m/PharoLauncher%20Advanced%20Installer.zip>
> Links should be live for 30 days.
> I've directly attached the much smaller installer-configuration file 
> "PharoLauncher.aip". 
> 
> 
> PharoLauncher was built with some minor changes from above... 
> 1. Download/extracted  http://files.pharo.org/platform/Pharo6.1-win.zip 
> <http://files.pharo.org/platform/Pharo6.1-win.zip>
> 
> 2. Renamed  Pharo6.1    folder to  BCPharoLauncher
>     Renamed  Pharo6.1.*  files to    PharoLauncher1.1.* 
> 
> 3. Metacello new
>        smalltalkhubUser: 'Pharo'
>        project: 'PharoLauncher';
>        configuration: 'PharoLauncher';
>         load.  
>      PharoLauncher hardResetPersistanceState: true.
>      PhLDeploymentScript doAll. 
>      PhLDeploymentScript  closeWindowsAndOpenLauncher.
>      Smalltalk snapshot: true  andQuit: true. 
> 
> 4. Moved the  image & changes  files into a subfolder "PerUserFiles"
> 
> 5. Built  BCPharoLauncher.msi
> 
> I prefixed my initials to distinguish it from the current official 
> PharoLauncher installer.
> Hopefully this can be adopted as the official installer and they can be 
> dropped off.
> 
> 
> Key features:
> a.  Provides a choice to install for "Everybody" (i.e. C:\Program Files 
> (x86)\Pharo\BCPharoLauncher\)
>      or "Only for me" (i.e. 
> C:\Users\Ben\AppData\Local\Programs\Pharo\BCPharoLauncher\)
>      per attached screen snapshot.
> 
> b.  Start the install as a Standard User and it escalates only as needed.
> 
> c.  The Desktop and Start Menu shortcuts run the following script...       
>           // File: PharoLauncher.js
>           // Author: Ben Coman 2018.03.24
>           // Purpose: Facilitate each user to run a personal copy of 
> PharoLauncher.image in their own data area.
>           
>           // Locations
>           basename = "\\PharoLauncher1.1 <smb://PharoLauncher1.1>";
>           WshShell = WScript.CreateObject("WScript.Shell");
>           fso = WScript.CreateObject("Scripting.FileSystemObject");
>           systemFolder = fso.GetAbsolutePathName(".");
>           vmFilename = systemFolder + "\\Pharo.exe <smb://Pharo.exe>"
>           systemBasename = systemFolder + "\\PerUserFiles 
> <smb://PerUserFiles>" + basename;
>           userFolder = 
> WshShell.ExpandEnvironmentStrings("%LOCALAPPDATA%\\Pharo");
>           userFolder2 = userFolder + "\\PharoLauncher <smb://PharoLauncher>";
>           userBasename = userFolder2 + basename;
>           
>           // Ensure user data folder exists for PharoLauncher
>           if( ! fso.FolderExists(userFolder))
>           {   fso.CreateFolder(userFolder);
>               fso.CreateFolder(userFolder2)
>           }
>           
>           // If either  image or changes  files missing from user folder,  
> copy from system folder.  
>           if( ! fso.FileExists(userBasename + ".image") || ! 
> fso.FileExists(userBasename + ".changes")) 
>           {
>               //WScript.Echo("Setting up user environment");
>               fso.CopyFile(systemBasename + ".image",    userBasename + 
> ".image", true);
>               fso.CopyFile(systemBasename + ".changes",  userBasename + 
> ".changes", true);
>           }
>           
>           // Start personal copy of PharoLauncher
>           WshShell.Exec(vmFilename + " " + userBasename + ".image »)

UAC support is really nice.
I would like to have the community opinion on using a non-free tool like 
advancedinstaller.
If there is no objection, I would consider it seriously for a next Pharo 
Launcher version.

Thanks for this work Ben!

Reply via email to