BI Setup Manual
BI Setup suite consists of multiple applications that allow creation of various types of setups. It is provided free of charge for any non commercial community projects developed for BI projects.
Setup.dat format
This list is only stub. More info for each option needed.
- D
- install entire directory from installation source to target destination
- D:source:destination
- DN
- install entire directory from installation source to target destination, without wtitting to uninstall.log
- DN:source:destination
- Q
- special command
- Q:DirectX:[dialog|silent|no]
- Q:FileType:extension:registry class:exe name:default icon number
- Q:firewall:application name:path to exe adds application to Windows Firewall exclude list
- Q:GameExplorer:GDF dll name
- Q:openAL:[no|silent] controls whether openAL is to be installed. Default value is silent.
- the openAL installer must be named OpenALwEAX.exe
- Q:GEPlayTask:name:app path:arguments
- Q:GESupportTask:name:app path:arguments
- Q:license:[no|yes] controls whether license screen is to be shown. Default value is no.
- Q:info:[no|yes] controls whether info screen is to be shown. Default value is no.
- Q:showResultOK:[no|yes] value "no" disable last dialog "application succesfuly installed". Default value is yes.
- the info text should be saved as data\info
- Q:allusers:[no|yes] controls whether show check box(for all users) on 1st screen. Default value is yes.
- the license text should be saved as data\license
- Q:registry:ValueName:ValueType:RegistryPathRoot:PathToRegistryKey:ValueData
- any occurence of the string %(INSTALL_PATH) inside value will be converted into install path.
- only HKLM can be used for the RegistryPathRoot (in the current implementation)
- only string can be used for the ValueType (in the current implementation)
- Q:runApp:appName appName will be first installed similarly as with X:appName:appName command and run at the end of the installation. The setup waits until appName finishes its work. Then, the file is removed from the destination.
- Q:testVolumeLabel:[no|yes] when we want use virtual drives instead of CDROM (subst m: dir). Default value is yes
- Q:harddest:[no|yes] default no, if yes then setup will leave a wizard directory page and will install directly to destination set by I command;
- Q:welcome:[no|yes] controls first(welcome) screen is to be shown. Default value is yes.
- Q:forceinstall:[no|yes] if yes then information that this application is already installed is skiped. Default value is no.
- F
- install individual file from installation source to target destination
- F:source:destination
- X
- install individual file without uninstall feature (not written to the uninstall log)
- X:source:destination
- S[A]
- individual file - shortcut in Start menu
- S:source:destination
- SA:source:source arguments:destination
- S[A]D
- individual file - shortcut on Desktop
- SD:source:destination
- SAD:source:source arguments:destination
- S[A]T
- individual file - shortcut on Send To
- ST:source:destination
- SAT:source:source arguments:destination
- P
- show picture in the setup screen (multiple pictures can be used with relative time stamp)
- P:filename:length
- I
- implicit target path for instalation
- I:[S|PROGRAMS|PROGRAMFILES]:ARMA - will install to C:\Program files\ARMA\
- I:N:C:\ARMA - will install to C:\ARMA\
- I:[TMP|TEMP]:- will install to windows temporary folder
- I:DESKTOP: - will install to user's "Decktop"
- I:DOCUMENTS: - will install to user's "My Documents"
- in install path can be used enviromental variables (%username%,%cd%,etc.)
- optional, "_" can by each of possible commands, I:_:path:regpath:regvalue:pathExpansion - will check register in HKLM and if register value exist then this value+pathExpansion is used as installation destination
- J
- subdirectory for instalation
- G
- directory for start menu group
- U
- uninstall
- U:N ... replace the last item from uninstall log
- U:D:uninstall.exe:application name:display info
- U:-:uninstall.exe:application name:display info
- if specified with D, the install directory will be used (default or changed by user in change directory dialog)
- U:P:A:appName ... application name (this will be used in uninstall to remove user directory under Local Settings\Application Data\
- U:F:filename:remove file from destination folder when install over
- U:S:dirname:remove directories from destination folder when install over
- U:P:P:productBinFile ... (dta\product.bin) used to specify the param file containg info about directory name under My documents which should be removed in uninstall process.
- U:P:E:profilePathDefault ... the entry name inside productBinFile used to specify directory to remove
- notice: all U:P:?: commands can be used only after the A: and I: commands!!!
- U:protect write to uninstall.log information that uninstall Star Force
- A
- application name
- R
- registry root
- K
- CD key check
- C
- source CD ROM definition
- L
- total length of all installed files (unpacked - i.e. size of the product after installation)
- W,O,E
- Final dialog actions - documented on the following section
Final dialog actions
All Final dialog actions have the same basic format: X:Y|Z|TEXT|stringToShow
- First char (here X) is the action specification:
- W
- execute the application and wait until finished
- O
- open the document
- E
- execute the application and continue or trigger the special action (based on fifth char Z)
- Third char (here Y) is check box default value:
- +
- check box checked as default
- -
- check box UNchecked as default
- Fifth char (here Z) is one of:
- D
- consider the TEXT to be the filename in Destination directory
- E
- consider the TEXT to be the filename in Source directory
- A
- can be used only in E action. Then the TEXT is the special command
- Special commands for E:+|A|cmd|txt are:
- createDesktop
- it create shortcut icon on desktop
- createSendTo
- it create shortcut icon on Send To
Uninstall
uninstall.dat format
- F
- remove file
- D
- remove directory
- K
- remove registry key (HKEY_LOCAL_MACHINE)
- C
- remove registry key (HKEY_CLASSES_ROOT)
- U
- U:regpath:regvalue - remove registry regvalue from HKCU/regpath
- G
- uninstall from Game Explorer
- W
- remove application from the Windows Firewall exclude list
- P
- backup of U:P commands from setup.dat
- P:A:appName ... application name (this will be used in uninstall to remove user directory under Local Settings\Application Data\
- P:P:productBinFile ... (dta\product.bin) used to specify the param file containg info about directory name under My documents which should be removed in uninstall process.
- P:E:profilePathDefault ... the entry name inside productBinFile used to specify directory to remove
- P:M:applicationPath ... the path to the root of application (in order to locate the productBinFile.
- the final uninstall MessageBox with question to remove user saves directories is displayed only when the U:P commands are present in setup.dat
- Q
- Q:protect uninstall StarForce
Setup patching other setup
Setup.exe can be run with parameter saying which other setup.exe should be used to find resources and setupNN.bin files. This can be used in the following cases:
- customers downloaded broken online version of setup.exe (very large file)
- send them new setup.exe without any data (Better to rename it, such as setupPatch.exe)
- customer can run new setup.exe with old one as parameter
- This also works for setup.exe + setup01.bin files, but in this case the new patching setup.exe must be located at the very same directory as the setup.exe and setup01.bin files.
- programmer needs to debug large setup.exe file (he run only new debug version and loads data from other exe)
Notice: The best way to run setup.exe with such parameter is to drag and drop the large setup.exe into new setup.exe.
Compression
Files being installed in setup can be gzip compressed. Setup will recognize it and decompress. File can have the *.gz extension but this must be specified in setup.dat if necessary (only if there is source file specified, for instance F:source:destination command). Inside directories, the files can be compressed with *.gz extension and no change in setup.dat is necessary.
UNICODE and languages
In order to allow multiple languages usage in *.csv files, including russian, it was necessary to convert setup project into UNICODE. These versions are located on subdirectories Unicode.
U:\Tools\Setup\Setup\UNICODE\Setup.exe U:\Tools\Setup\AutoRun\UNICODE\AutoRun.exe U:\Tools\Setup\UnInstall\UNICODE\UnInstall.exe
The usage is as follows:
- if unicode setup.exe is used, unicode uninstall.exe must be used too and vice versa.
- when some unicode executable is used, the proper *.csv file must be saved in UTF8
- the best is when conversion saves also leading UTF8 format bytes EF BB BF, as this is far simple way to recognize it as UTF8.
- this can be done by using save as in notepad.exe
- the best is when conversion saves also leading UTF8 format bytes EF BB BF, as this is far simple way to recognize it as UTF8.
- the *.dat files are considered as UTF8 too, but it can work in ANSI too (as there are typicaly no language specific characters).
- As the executables have changed, their CRC checksum in setup.crc (if provided) must be updated.
Language Testing
There are two methods to test a different languages:
- changle it in windows: Control Panel/Regional and Language Options/Regional Options/Standards and formats
- change column name in the stringtable (*.csv)
SetupConvert
- Steps:
- copy the NEW setup.exe into your setup directory
- run setupConvert from some local directory, where you want the output
- cd SetupTemp
- setupConvert.exe [-one] pathToSetupDirectoryWithNewSetupExe
- It should create setupConvert directory and new instalation inside, containing large setup.exe.
- if run without -one parameter, there will be also setupNN.bin files, all files less than 2GB in size.
The important think is, that setup.exe in your setup directory should be the new one (step 1).
SetupConvert uses its own logging capability, so it writes more information, including error messages.
- recommendation: call setupConvert from cmd line, or use redirection
- setupConvert path 2> report.log
- estimated time of creation process can be 2 minnutes for each GB
CRCCheck
CRC check creates setup.crc file that serves as additional verification that file was properly installed. It's optional but recommended especially for any larger files.
b:\crccheck\crccheck.exe
Usage: CRCCheck {pattern} or: CRCCheck -check
CRCCheck -check: Check CRC, use stdin as CRC and filename input. CRCCheck {pattern}: Pattern may be folder name or filename of dat file suitable for SQSetup
Output is sent to stdout.
Notice: For *.gz files CRC should be computed from unpacked data, as setup.exe controls unpacked data only. New CRCCheck.exe do that now, so CRC of *.gz is always computed from unpacked data (using this tool).