= 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 [AdminReleaseManagement 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 [AdminDepLibs 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