The install log for a WIX-based installer indicates the installation process occurs twice, making custom actions occur at unexpected times -


i have wix installers 2 c# custom actions (cas) first default settings, , save settings provided during installation.

  • the load custom action runs after="costfinalize"
  • the save custom action runs after="installfiles"...

check out log file, though... you'll see phases inexplicably occur twice in particular installation run, first time failing perform tasks occur during phases (such during installfiles, no files installed until second occurrence of installfiles phase in single install).

this problem, because save function must operate on app.config file deployed install folder, after first ocurrence of installfiles, file has not yet moved expected location, causing load of fail during save custom action....

looking further through installation, you'll see phases repeat, time deploying files during installfiles, custom action no longer runs @ point, ran after first instance...

what happening here?

log file

=== logging started: 1/25/2011  16:08:06 === action 16:08:06: install.  action start 16:08:06: install. action 16:08:06: findrelatedproducts. searching related applications action start 16:08:06: findrelatedproducts. action ended 16:08:06: findrelatedproducts. return value 1. action 16:08:06: validateproductid.  action start 16:08:06: validateproductid. action ended 16:08:06: validateproductid. return value 1. action 16:08:06: costinitialize. computing space requirements action start 16:08:06: costinitialize. action ended 16:08:06: costinitialize. return value 1. action 16:08:06: filecost. computing space requirements action start 16:08:06: filecost. action ended 16:08:06: filecost. return value 1. action 16:08:06: costfinalize. computing space requirements action start 16:08:06: costfinalize. action ended 16:08:06: costfinalize. return value 1. action 16:08:06: loadschedulerconfigdefaults.  action start 16:08:06: loadschedulerconfigdefaults. sfxca: extracting custom action temporary directory: c:\docume~1\eloy06~1\locals~1\temp\msi53a.tmp-\ sfxca: binding clr version v2.0.50727 calling custom action wixcustomactions!wixcustomactions.customactions.loadschedulerconfigdefaults *** loadschedulerconfigdefaults *** attempting load registry settings database connectivity ccp database... attempting set session pre-existing registry keys... ccp_database => orangeccp ccp_server => desk06096d ccp_uis => sspi ccp_connectiontimeout => 240 attempting load registry settings database connectivity cca database... attempting set session pre-existing registry keys... cca_database => orangecca cca_server => desk06096d cca_uis => sspi cca_connectiontimeout => 240 attempting load registry settings database connectivity ccc database... attempting set session pre-existing registry keys... ccc_database => orangeccc ccc_server => desk06096d ccc_uis => sspi ccc_connectiontimeout => 240 attempting load registry settings database connectivity ccr database... attempting set session pre-existing registry keys... ccr_database => orangeccr ccr_server => desk06096d ccr_uis => sspi ccr_connectiontimeout => 240 attempting load app.config file read defaults @ c:\program files\eloyalty\eloyalty scheduler service\eloyalty.schedulerservice.exe.config. unable read appconfig file @ c:\program files\eloyalty\eloyalty scheduler service\eloyalty.schedulerservice.exe.config. first-time installation. action ended 16:08:07: loadschedulerconfigdefaults. return value 1. action 16:08:07: welcomedlg.  action start 16:08:07: welcomedlg. info 2898. wixui_font_normal textstyle, system created 'tahoma' font, in 0 character set, of 13 pixels height. info 2898. wixui_font_bigger textstyle, system created 'tahoma' font, in 0 character set, of 19 pixels height. action 16:08:07: welcomedlg. dialog created info 2898. wixui_font_title textstyle, system created 'tahoma' font, in 0 character set, of 14 pixels height. action 16:08:08: myinstalldirdlg. dialog created action 16:08:09: loadschedulerconfigdefaults.  action start 16:08:09: loadschedulerconfigdefaults. action ended 16:08:10: loadschedulerconfigdefaults. return value 1. action 16:08:10: wixuivalidatepath.  action start 16:08:10: wixuivalidatepath. action ended 16:08:10: wixuivalidatepath. return value 1. action 16:08:10: setupregistrydlg. dialog created action 16:08:11: setupregistrydlg2. dialog created action 16:08:19: verifyreadydlg. dialog created action ended 16:08:19: welcomedlg. return value 1. action 16:08:19: progressdlg.  action start 16:08:19: progressdlg. action 16:08:19: progressdlg. dialog created action ended 16:08:19: progressdlg. return value 1. action 16:08:19: executeaction.  action start 16:08:19: executeaction. action 16:08:20: install.  action start 16:08:20: install. action 16:08:20: findrelatedproducts. searching related applications action start 16:08:20: findrelatedproducts. action ended 16:08:20: findrelatedproducts. return value 0. action 16:08:20: validateproductid.  action start 16:08:20: validateproductid. action ended 16:08:20: validateproductid. return value 1. action 16:08:20: costinitialize. computing space requirements action start 16:08:20: costinitialize. action ended 16:08:20: costinitialize. return value 1. action 16:08:20: filecost. computing space requirements action start 16:08:20: filecost. action ended 16:08:20: filecost. return value 1. action 16:08:20: costfinalize. computing space requirements action start 16:08:20: costfinalize. action ended 16:08:20: costfinalize. return value 1. action 16:08:20: installvalidate. validating install action start 16:08:20: installvalidate. action ended 16:08:20: installvalidate. return value 1. action 16:08:20: removeexistingproducts. removing applications action start 16:08:20: removeexistingproducts. action ended 16:08:20: removeexistingproducts. return value 1. action 16:08:20: installinitialize.  action start 16:08:20: installinitialize. action ended 16:08:34: installinitialize. return value 1. action 16:08:34: processcomponents. updating component registration action start 16:08:34: processcomponents. action 16:08:35: generatescript. generating script operations action: generatescript: updating component registration tion ended 16:08:35: processcomponents. return value 1. installfiles: file: copying new files,  directory: ,  size:  // @ point, logfile had binary data injected, removed it. ction start 16:08:35: installfiles. action ended 16:08:35: removefiles. return value 0.tion 16:08:35: installfiles. copying new files tion start 16:08:35: installfiles. action start 16:08:35: installfiles.tion ended 16:08:35: removefiles. return value 0. action 16:08:35: installfiles. copying new filaction start 16:08:35: installfile file: [1],  directory: [9],  size: [6 ction ended 16:08:35: removefiles. return value file: [1],  directory: [9],  size: [6]tion start 16:08:35: installfiles. tion ended 16:08:35: removefiles. return value 0. tion 16:08:35: installfiles. copying new files tion start 16:08:35: installfiles. tallfiles: file: copying new files,  directory: ,  size:  action ended 16:08:35: installfiles. return value 1. action 16:08:35: setschedulerconfigoptions.  tion start 16:08:35: setschedulerconfigoptions. // logfile returned normal @ point binary data injections xca: extracting custom action temporary directory: c:\windows\installer\msi53e.tmp-\ xca: binding clr version v2.0.50727 calling custom action wixcustomactions!wixcustomactions.customactions.setschedulerconfigoptions *** setschedulerconfigoptions *** *** writeregistrydbsettings *** ccp database => orangeccp ccp server => desk06096d ccp useintegratedsecurity => sspi ccp portalconnectiontimeout => 240 cca database => orangecca cca server => desk06096d cca useintegratedsecurity => sspi cca portalconnectiontimeout => 240 ccc database => orangeccc ccc server => desk06096d ccc useintegratedsecurity => sspi ccc portalconnectiontimeout => 240 ccr database => orangeccr ccr server => desk06096d ccr useintegratedsecurity => sspi ccr portalconnectiontimeout => 240 registry settings written. appconfig file not found @ c:\program files\eloyalty\eloyalty scheduler service\eloyalty.schedulerservice.exe.config. not clear out connection strings. action ended 16:08:36: setschedulerconfigoptions. return value 1. action 16:08:36: installservices. installing new services action start 16:08:36: installservices. installservices: service:  action ended 16:08:36: installservices. return value 1. action 16:08:36: startservices. starting services action start 16:08:36: startservices. startservices: service: starting services action ended 16:08:36: startservices. return value 1. action 16:08:36: registeruser. registering user action start 16:08:36: registeruser. action ended 16:08:36: registeruser. return value 1. action 16:08:36: registerproduct. registering product action start 16:08:36: registerproduct. registerproduct: registering product action ended 16:08:36: registerproduct. return value 1. action 16:08:36: publishfeatures. publishing product features action start 16:08:36: publishfeatures. publishfeatures: feature: publishing product features action ended 16:08:36: publishfeatures. return value 1. action 16:08:36: publishproduct. publishing product information action start 16:08:36: publishproduct. publishproduct:  action ended 16:08:36: publishproduct. return value 1. action 16:08:36: installfinalize.  action start 16:08:36: installfinalize. action 16:08:36: processcomponents. updating component registration 1: {d83da1c7-fb6e-4c8a-9122-1d25764cf081} 2: {44fc813b-f7b3-4b54-9d82-5df3b7c2bce5} 3: c:\program files\eloyalty\eloyalty scheduler service\eloyalty.schedulerservice.exe  action 16:08:36: stopservices. stopping services action 16:08:36: deleteservices. deleting services action 16:08:36: installfiles. copying new files installfiles: file: common.logging.dll,  directory: c:\program files\eloyalty\eloyalty scheduler service\,  size: 28672 installfiles: file: eloyalty.portallib.dll,  directory: c:\program files\eloyalty\eloyalty scheduler service\,  size: 91136 installfiles: file: eloyalty.schedulerservice.exe,  directory: c:\program files\eloyalty\eloyalty scheduler service\,  size: 26112 installfiles: file: eloyalty.schedulerservice.exe.config,  directory: c:\program files\eloyalty\eloyalty scheduler service\,  size: 922 installfiles: file: eloyalty.schedulerservice.pdb,  directory: c:\program files\eloyalty\eloyalty scheduler service\,  size: 65024 installfiles: file: log4net.config,  directory: c:\program files\eloyalty\eloyalty scheduler service\,  size: 1405 installfiles: file: log4net.dll,  directory: c:\program files\eloyalty\eloyalty scheduler service\,  size: 270336 installfiles: file: quartz.dll,  directory: c:\program files\eloyalty\eloyalty scheduler service\,  size: 438272 action 16:08:36: installservices. installing new services action 16:08:37: startservices. starting services startservices: service: eloyalty scheduler service action 16:08:39: registerproduct. registering product registerproduct: {d83da1c7-fb6e-4c8a-9122-1d25764cf081} action 16:08:39: publishfeatures. publishing product features publishfeatures: feature: productfeature action 16:08:39: publishproduct. publishing product information 1: {d83da1c7-fb6e-4c8a-9122-1d25764cf081}  action 16:08:39: rollbackcleanup. removing backup files action ended 16:08:39: installfinalize. return value 1. action ended 16:08:39: install. return value 1. property(s): upgradecode = {2a1341a1-fffd-4bed-a609-14cb1c265330} property(s): fileinstalldir = c:\program files\eloyalty\eloyalty scheduler service\ property(s): ccp_database = orangeccp property(s): ccp_server = desk06096d property(s): ccp_uis = sspi property(s): ccp_connectiontimeout = 240 property(s): cca_database = orangecca property(s): cca_server = desk06096d property(s): cca_uis = sspi property(s): cca_connectiontimeout = 240 property(s): ccc_database = orangeccc property(s): ccc_server = desk06096d property(s): ccc_uis = sspi property(s): ccc_connectiontimeout = 240 property(s): ccr_database = orangeccr property(s): ccr_server = desk06096d property(s): ccr_uis = sspi property(s): ccr_connectiontimeout = 240 property(s): wixui_installdir = fileinstalldir property(s): arpnomodify = 1 property(s): eloyalty = c:\program files\eloyalty\ property(s): programfilesfolder = c:\program files\ property(s): targetdir = c:\ property(s): sourcedir = c:\development\trunk\portalsdev\csharp\production\installers\wix\eloyalty.schedulerservicewixinstaller\bin\debug\ property(s): versionnt = 501 property(s): manufacturer = eloyalty property(s): productcode = {d83da1c7-fb6e-4c8a-9122-1d25764cf081} property(s): productlanguage = 1033 property(s): productname = eloyalty scheduler service property(s): productversion = 2.7.0 property(s): configfile = eloyalty.schedulerservice.exe.config property(s): defaultuifont = wixui_font_normal property(s): wixui_mode = installdir property(s): errordialog = errordlg property(s): securecustomproperties = cca_connectiontimeout;cca_database;cca_server;cca_uis;ccc_connectiontimeout;ccc_database;ccc_server;ccc_uis;ccp_connectiontimeout;ccp_database;ccp_server;ccp_uis;ccr_connectiontimeout;ccr_database;ccr_server;ccr_uis;newerfound;olderfound;previousversionsinstalled;selffound property(s): msilogfilelocation = c:\development\trunk\portalsdev\csharp\production\installers\wix\eloyalty.schedulerservicewixinstaller\bin\debug\log.txt property(s): packagecode = {c6dd6531-cb70-44eb-8aec-467bc66c7cc0} property(s): productstate = -1 property(s): packagecodechanging = 1 property(s): currentdirectory = c:\development\trunk\portalsdev\csharp\production\installers\wix\eloyalty.schedulerservicewixinstaller\bin\debug property(s): clientuilevel = 0 property(s): clientprocessid = 3364 property(s): username = eloyalty property(s): companyname = eloyalty property(s): versiondatabase = 200 property(s): action = install property(s): executeaction = install property(s): rootdrive = c:\ property(s): installlevel = 1 property(s): wixui_installdir_valid = 1 property(s): secondsequence = 1 property(s): addlocal = productfeature property(s): msisystemrebootpending = 1 property(s): versionmsi = 4.05 property(s): windowsbuild = 2600 property(s): servicepacklevel = 3 property(s): servicepacklevelminor = 0 property(s): msintproducttype = 1 property(s): windowsfolder = c:\windows\ property(s): windowsvolume = c:\ property(s): systemfolder = c:\windows\system32\ property(s): system16folder = c:\windows\system\ property(s): remoteadmints = 1 property(s): tempfolder = c:\docume~1\eloy06~1\locals~1\temp\ property(s): commonfilesfolder = c:\program files\common files\ property(s): appdatafolder = c:\documents , settings\eloy06096\application data\ property(s): favoritesfolder = c:\documents , settings\eloy06096\favorites\ property(s): nethoodfolder = c:\documents , settings\eloy06096\nethood\ property(s): personalfolder = c:\documents , settings\eloy06096\my documents\ property(s): printhoodfolder = c:\documents , settings\eloy06096\printhood\ property(s): recentfolder = c:\documents , settings\eloy06096\recent\ property(s): sendtofolder = c:\documents , settings\eloy06096\sendto\ property(s): templatefolder = c:\documents , settings\eloy06096\templates\ property(s): commonappdatafolder = c:\documents , settings\all users\application data\ property(s): localappdatafolder = c:\documents , settings\eloy06096\local settings\application data\ property(s): mypicturesfolder = c:\documents , settings\eloy06096\my documents\my pictures\ property(s): admintoolsfolder = c:\documents , settings\eloy06096\start menu\programs\administrative tools\ property(s): startupfolder = c:\documents , settings\eloy06096\start menu\programs\startup\ property(s): programmenufolder = c:\documents , settings\eloy06096\start menu\programs\ property(s): startmenufolder = c:\documents , settings\eloy06096\start menu\ property(s): desktopfolder = c:\documents , settings\eloy06096\desktop\ property(s): fontsfolder = c:\windows\fonts\ property(s): gptsupport = 1 property(s): oleadvtsupport = 1 property(s): shelladvtsupport = 1 property(s): intel = 6 property(s): physicalmemory = 3288 property(s): virtualmemory = 3291 property(s): adminuser = 1 property(s): logonuser = eloy06096 property(s): usersid = s-1-5-21-15890611-392985980-6498272-20570 property(s): userlanguageid = 1033 property(s): computername = desk06096d property(s): systemlanguageid = 1033 property(s): screenx = 1680 property(s): screeny = 1050 property(s): captionheight = 19 property(s): bordertop = 1 property(s): borderside = 1 property(s): textheight = 16 property(s): textinternalleading = 3 property(s): colorbits = 32 property(s): ttcsupport = 1 property(s): time = 16:08:39 property(s): date = 1/25/2011 property(s): msinetassemblysupport = 4.0.30319.1 property(s): msiwin32assemblysupport = 5.1.2600.5512 property(s): redirecteddllsupport = 2 property(s): privileged = 1 property(s): database = c:\windows\installer\da7c51.msi property(s): originaldatabase = c:\development\trunk\portalsdev\csharp\production\installers\wix\eloyalty.schedulerservicewixinstaller\bin\debug\eloyalty.schedulerservicewixinstaller.msi property(s): uilevel = 5 property(s): preselected = 1 property(s): costingcomplete = 1 property(s): outofdiskspace = 0 property(s): outofnorbdiskspace = 0 property(s): primaryvolumespaceavailable = 0 property(s): primaryvolumespacerequired = 0 property(s): primaryvolumespaceremaining = 0 property(s): sourcedir = c:\development\trunk\portalsdev\csharp\production\installers\wix\eloyalty.schedulerservicewixinstaller\bin\debug\ property(s): sourcedirproduct = {d83da1c7-fb6e-4c8a-9122-1d25764cf081} property(s): producttoberegistered = 1 action ended 16:08:39: executeaction. return value 1. action 16:08:39: exitdialog.  action start 16:08:39: exitdialog. action 16:08:39: exitdialog. dialog created action ended 16:09:00: exitdialog. return value 1. action ended 16:09:00: install. return value 1. property(c): upgradecode = {2a1341a1-fffd-4bed-a609-14cb1c265330} property(c): fileinstalldir = c:\program files\eloyalty\eloyalty scheduler service\ property(c): ccp_database = orangeccp property(c): ccp_server = desk06096d property(c): ccp_uis = sspi property(c): ccp_connectiontimeout = 240 property(c): cca_database = orangecca property(c): cca_server = desk06096d property(c): cca_uis = sspi property(c): cca_connectiontimeout = 240 property(c): ccc_database = orangeccc property(c): ccc_server = desk06096d property(c): ccc_uis = sspi property(c): ccc_connectiontimeout = 240 property(c): ccr_database = orangeccr property(c): ccr_server = desk06096d property(c): ccr_uis = sspi property(c): ccr_connectiontimeout = 240 property(c): wixui_installdir = fileinstalldir property(c): arpnomodify = 1 property(c): eloyalty = c:\program files\eloyalty\ property(c): programfilesfolder = c:\program files\ property(c): targetdir = c:\ property(c): sourcedir = c:\development\trunk\portalsdev\csharp\production\installers\wix\eloyalty.schedulerservicewixinstaller\bin\debug\ property(c): versionnt = 501 property(c): manufacturer = eloyalty property(c): productcode = {d83da1c7-fb6e-4c8a-9122-1d25764cf081} property(c): productlanguage = 1033 property(c): productname = eloyalty scheduler service property(c): productversion = 2.7.0 property(c): configfile = eloyalty.schedulerservice.exe.config property(c): defaultuifont = wixui_font_normal property(c): wixui_mode = installdir property(c): errordialog = errordlg property(c): securecustomproperties = cca_connectiontimeout;cca_database;cca_server;cca_uis;ccc_connectiontimeout;ccc_database;ccc_server;ccc_uis;ccp_connectiontimeout;ccp_database;ccp_server;ccp_uis;ccr_connectiontimeout;ccr_database;ccr_server;ccr_uis;newerfound;olderfound;previousversionsinstalled;selffound property(c): msilogfilelocation = c:\development\trunk\portalsdev\csharp\production\installers\wix\eloyalty.schedulerservicewixinstaller\bin\debug\log.txt property(c): packagecode = {c6dd6531-cb70-44eb-8aec-467bc66c7cc0} property(c): productstate = -1 property(c): packagecodechanging = 1 property(c): currentdirectory = c:\development\trunk\portalsdev\csharp\production\installers\wix\eloyalty.schedulerservicewixinstaller\bin\debug property(c): clientuilevel = 0 property(c): clientprocessid = 3364 property(c): msisystemrebootpending = 1 property(c): versiondatabase = 200 property(c): versionmsi = 4.05 property(c): windowsbuild = 2600 property(c): servicepacklevel = 3 property(c): servicepacklevelminor = 0 property(c): msintproducttype = 1 property(c): windowsfolder = c:\windows\ property(c): windowsvolume = c:\ property(c): systemfolder = c:\windows\system32\ property(c): system16folder = c:\windows\system\ property(c): remoteadmints = 1 property(c): tempfolder = c:\docume~1\eloy06~1\locals~1\temp\ property(c): commonfilesfolder = c:\program files\common files\ property(c): appdatafolder = c:\documents , settings\eloy06096\application data\ property(c): favoritesfolder = c:\documents , settings\eloy06096\favorites\ property(c): nethoodfolder = c:\documents , settings\eloy06096\nethood\ property(c): personalfolder = c:\documents , settings\eloy06096\my documents\ property(c): printhoodfolder = c:\documents , settings\eloy06096\printhood\ property(c): recentfolder = c:\documents , settings\eloy06096\recent\ property(c): sendtofolder = c:\documents , settings\eloy06096\sendto\ property(c): templatefolder = c:\documents , settings\eloy06096\templates\ property(c): commonappdatafolder = c:\documents , settings\all users\application data\ property(c): localappdatafolder = c:\documents , settings\eloy06096\local settings\application data\ property(c): mypicturesfolder = c:\documents , settings\eloy06096\my documents\my pictures\ property(c): admintoolsfolder = c:\documents , settings\eloy06096\start menu\programs\administrative tools\ property(c): startupfolder = c:\documents , settings\eloy06096\start menu\programs\startup\ property(c): programmenufolder = c:\documents , settings\eloy06096\start menu\programs\ property(c): startmenufolder = c:\documents , settings\eloy06096\start menu\ property(c): desktopfolder = c:\documents , settings\eloy06096\desktop\ property(c): fontsfolder = c:\windows\fonts\ property(c): gptsupport = 1 property(c): oleadvtsupport = 1 property(c): shelladvtsupport = 1 property(c): intel = 6 property(c): physicalmemory = 3288 property(c): virtualmemory = 3264 property(c): adminuser = 1 property(c): logonuser = eloy06096 property(c): usersid = s-1-5-21-15890611-392985980-6498272-20570 property(c): userlanguageid = 1033 property(c): computername = desk06096d property(c): systemlanguageid = 1033 property(c): screenx = 1680 property(c): screeny = 1050 property(c): captionheight = 19 property(c): bordertop = 1 property(c): borderside = 1 property(c): textheight = 16 property(c): textinternalleading = 3 property(c): colorbits = 32 property(c): ttcsupport = 1 property(c): time = 16:09:00 property(c): date = 1/25/2011 property(c): msinetassemblysupport = 4.0.30319.1 property(c): msiwin32assemblysupport = 5.1.2600.5512 property(c): redirecteddllsupport = 2 property(c): privileged = 1 property(c): username = eloyalty property(c): companyname = eloyalty property(c): database = c:\docume~1\eloy06~1\locals~1\temp\e39fd9.msi property(c): originaldatabase = c:\development\trunk\portalsdev\csharp\production\installers\wix\eloyalty.schedulerservicewixinstaller\bin\debug\eloyalty.schedulerservicewixinstaller.msi property(c): sourcedir = c:\development\trunk\portalsdev\csharp\production\installers\wix\eloyalty.schedulerservicewixinstaller\bin\debug\ property(c): versionhandler = 4.05 property(c): uilevel = 5 property(c): action = install property(c): executeaction = install property(c): rootdrive = c:\ property(c): costingcomplete = 1 property(c): outofdiskspace = 0 property(c): outofnorbdiskspace = 0 property(c): primaryvolumespaceavailable = 0 property(c): primaryvolumespacerequired = 0 property(c): primaryvolumespaceremaining = 0 property(c): installlevel = 1 property(c): wixui_installdir_valid = 1 === logging stopped: 1/25/2011  16:09:00 === msi (c) (24:a0) [16:09:00:211]: product: eloyalty scheduler service -- installation completed successfully.  msi (c) (24:a0) [16:09:00:227]: windows installer installed product. product name: eloyalty scheduler service. product version: 2.7.0. product language: 1033. installation success or error status: 0. 

updates more information

the custom actions defined such in .wsx file:

<!-- package handles custom actions importing , setting application settings -->     <binary id="wixcustomactionspackage.dll" sourcefile="wixcustomactionspackage.dll" />     <customaction id="loadschedulerconfigdefaults" return="check" execute="immediate" binarykey="wixcustomactionspackage.dll" dllentry="loadschedulerconfigdefaults"/>     <customaction id="setschedulerconfigoptions" return="check" execute="immediate" binarykey="wixcustomactionspackage.dll" dllentry="setschedulerconfigoptions"/> 

they set execute such:

<installuisequence>       <custom action="loadschedulerconfigdefaults" after="costfinalize" />     </installuisequence>     <installexecutesequence>       <removeexistingproducts before="installinitialize"/>       <!-- fail installer if newer installed version detected -->       <schedulereboot suppress="yes"></schedulereboot>       <custom action="setschedulerconfigoptions" after="installfiles" ><![cdata[remove=all]]></custom>     </installexecutesequence> 

... loadschedulerconfigdefaults scours existing registry , app.config file (if 1 exists previous install) , gathers default values prompt user during ui sequence in custom dialogs...

the user either keeps defaults, or overwrites them custom settings, continues through install, @ time expect, since saveschedulerconfigoptions set run after installfiles, able load newly deployed (or non-overwritten old) app.config, , clear settings out set in registry...

but unfortunately, can tell log, run after installfiles, version of doesn't deploy anything, file-deploying replica occurring later in log file...

you can set customaction element's execute attribute 'firstsequence' if want run custom action once.

i suggest reading following understand in's , out's , make sure having need do.

installation phases , in-script execution options custom actions in windows installer


Comments

Popular posts from this blog

java - SNMP4J General Variable Binding Error -

windows - Python Service Installation - "Could not find PythonClass entry" -

Determine if a XmlNode is empty or null in C#? -