Building a Windows installer for the BOINC client
On the build machine:
- Make sure you have updated the version number in various files, and have updated the project list, both of which are described here.
 
VS2019
- set the following environment variables (control panel / system / advanced system settings / environment variables)
BUILDCODESIGN points to the directory where boinc.pfx file is located CODESIGNBOINC contains password for boinc.pfx file
 - Build the win_build/boinc_vs2019.sln solution (Release, 64 bit)
 
VS2010
- Make sure you have current dependent libraries.
 - Copy curl/ca-bundle.crt to win_build/Build/Release
 
- Delete developr/David/symstore in the dependencies tree (remove old symbols)
 - Build the win_build/boinc.sln solution (Release, 64 bit)
 - If custom actions (in clientsetup/) have changed, copy boinccas.dll from win_build/Build/x64/Release to win_build/installerv2/redist/Windows/x64.
 - Set up boinc_codesign directory (peer of boinc/):
 
copy boinc.pfx and android_keystore (get these files from davea or Rom)
- Copy customdict.txt and customenv.cmd to
 
boinc_depends_xxx/developr/David (or whatever your username is).
- Edit customdict.txt to point to where boinc_codesign dir is,
 
e.g. BUILDCODESIGN=C:\users\David\documents\boinc_git\boinc_codesign (don't use spaces in path).
- clean out boinc_depends_win_vs2010/developr/David/symstore
 - Run Visual Studio shell:
 
in start menu, Microsoft Visual Studio 2010 / Visual Studio Tools/ Visual Studio Command Prompt
- On shell command line:
cd "c:/users/David/documents/boinc_git/boinc_7.8/win_build/" [or whatever the branch directory is] buildenv.cmd type release platform x64 [ screen turns blue to indicate release mode ] codesign The following doesn't work since isaac no longer directly accessible: updatesymstore deploysymstore (enter boincadm password)(stores are on isaac in boinc/doc/symstore)
 
(updatesymstore and deploysymstore are scripts in boinc_depends_win_vs2010/win_build).
Both
- Make sure you have the latest VirtualBox and Extension Pack.
 - Run the Installshield VM (BOINC Windows Installer.vbox)
 
In the VM:
- Start / My computer / Z: (takes you to c: drive of host)
 - go to c:/users/David/documents/boinc_git/boinc_7.x/win_build/installerv2
 - 1) open BOINCx64.ism
 - in Installation Designer tab:
- click on General Information
 - Product version: set
 - Product code: get new one (at right)
 - don't change Upgrade Code!
 
 - select  Media / Releases in navbar:
- select Releases/Webx64 in dir tree
 - change Setup File Name
 - File / Save
 - Build / batch build
 - check box next to Webx64, click Build
 - go to 1); Same for BOINCx64_vbox.ism
 
 - installers end up on host in boinc_7.x/win_build/installerv2/BOINCx64/WEBx64/Web/DiskImages/DISK1/boincxxx.exe (that's the file you copy to boinc/doc/dl on isaac)
 - Create tag if needed
 - Commit the changes
 
Updating VirtualBox in installers
The version of vbox in the installer is the one in the installer VM. To update this:
- On the host, download the version you want from the vbox site (this includes 32 and 64 bit).
 - From the cmd prompt, cd to ~/Downloads and Extract the various components from the VirtualBox installer via:
VirtualBox-4.3.20-96996-Win.exe --extract --path c:\temp\virtualbox43
(change 4.3.20-96996 and 43 based on the version you downloaded). - This produces:
VirtualBox-xxx.msi
 
In the VM:
- Go to c:/program files/InstallShield/2011/SetUpPrerequisites
 - Copy the above file into this dir; delete older versions if you want.
 - Rename Oracle VM VirtualBox xxx (x64).prq to new version
 - Run !Installshield: Start/All Programs/Installshield/Installshield 2011
 - select Tools/Prerequisite Editor
 - File/Open, open the Oracle VM Virtualbox x.x.xx (x64).prq file
 - Remove the existing file; add the new one (xxx.msi).
 - select Conditions tab
 - double click on HKEY_LOCAL....
 - change version number there, and make sure 64-bit registry is selected
 - select Application to Run tab
 - update the filename to the new .msi file
 - select Properties tab
 - Change description to new version #
 - save, close dialog
 - double-click boincx64_vbox.ism
 - Select Application Data / Redistributables
 - In list of files, check box for new .prq file.
 - save project
 
