Automatic updating and upgrade management for Windows Installer XML (WiX) -
i have been using installshield le in visual studio 2010, heavily limited , buggy. looked @ paid installshield versions, these have many limitations price tag.
so decided switch wix. have had experience years ago. pretty easy build simple installer using sharpdevelop wix tools.
now trying collect solutions , tools wix. basically, need following functionality (requested client):
when launch installer, should check text file on server , see if newer version available. if it's case, installer should able download updated installer package , launch (are there downloader utilities in wix?)
solving dependencies. major dependency of app .net 4 (which depends on windows installer 3). installer should offer user download , install them automatically
logging installation process, collecting log file of dependencies' installation process. don't want user hunt various .log files in case .net4 or windowsinstaller3 installation fails. information should collected in 1 place , if fails, should show user custom popup dialog option save complete install log file , send me
installer should able detect if there newer version of app installed, , show meaningful customized error message before exits
installer should able detect if there older version of app installed. , offer user exit installation or uninstall previous version , install new version. btw, there no minor component upgrades planned, prefer reinstall fresh (i guess, major upgrade in terms of windowsinstaller). installshield le failed on me this, showed error box message product, did not offer uninstall it
in case of upgrade, installer should able detect if of application components in use (running application processes) , show custom error message , not cryptic "installation failed"
i have read may bit painful manage upgrades if keep upgradecode intact, because code stored in windows registry in compressed way , if user renames downloaded file, might detected new product windowsinstaller ... or maybe case windowsinstaller .msi files , wix has trick avoid issue?
about update downloading - need functionality in application itself. not sure how implement efficiently, can reuse same update downloader code/utility in both wix installer , in app.
is possible satisfy these requirements using existing wix tools, or maybe i'll need code components scratch?
wix way go in opinion.
when launch installer, should check text file on server , see if newer version available. if it's case, installer should able download updated installer package , launch (are there downloader utilities in wix?)
in opinion, type of functionality best handled application. can implement such functionality in custom bootstrapper. latest development of wix includes bootstrapper engine burn allows write own custom bootstrapper on top of it.
solving dependencies. major dependency of app .net 4 (which depends on windows installer 3). installer should offer user download , install them automatically
you can use standard wix bootstrapper install .net prereq. or if create own custom managed bootstrapper application, can install .net prereq bootstrapper as in example
logging installation process, collecting log file of dependencies' installation process. don't want user hunt various .log files in case .net4 or windowsinstaller3 installation fails. information should collected in 1 place , if fails, should show user custom popup dialog option save complete install log file , send me
using 2 bootstrapping methods above, when launch msi can specify parameters logging. in own custom managed bootstrapper created button open log files created during installation.
installer should able detect if there newer version of app installed, , show meaningful customized error message before exits
you can using launch conditions
installer should able detect if there older version of app installed. , offer user exit installation or uninstall previous version , install new version. btw, there no minor component upgrades planned, prefer reinstall fresh (i guess, major upgrade in terms of windowsinstaller). installshield le failed on me this, showed error box message product, did not offer uninstall it
in experience major upgrades least complicated approach.
in case of upgrade, installer should able detect if of application components in use (running application processes) , show custom error message , not cryptic "installation failed"
i think wix/windows installer @ handling these scenarios , automatically notifying user files/applications need shutdown without having author in installer.
all said, may want creating own custom managed bootstrapper using wix , burn. not trivial however. best place go download source code wix weekly releases , checkout project src\setup\wixba. custom ba wrote install wix. there isn't documentation out there yet because wix 3.6 not released (although pretty stable). don't have create own ba make solid wix installer can handle upgrades , logging.
Comments
Post a Comment