0 Bewertungen0% fanden dieses Dokument nützlich (0 Abstimmungen)
37 Ansichten36 Seiten
Application Repackaging is the process of capturing the changes made by an Installation Program (Package) and it is designed to support company standards and distribution methods. O / icrosoft 2ffice 34 2000 and 5P are good e.amples.
Application Repackaging is the process of capturing the changes made by an Installation Program (Package) and it is designed to support company standards and distribution methods. O / icrosoft 2ffice 34 2000 and 5P are good e.amples.
Application Repackaging is the process of capturing the changes made by an Installation Program (Package) and it is designed to support company standards and distribution methods. O / icrosoft 2ffice 34 2000 and 5P are good e.amples.
It is the process of capturing the changes made by an Installation Program (Package) and it is designed to support company standards and distribution methods. * What are the steps of Repackaging? o e!ie" the packaging re#uirements o $naly%e the !endor package (e!ie") o epackage the application (&cripting) o 'ustomi%e the package o (est the package o elease the package to end users * Why it is required & problems in Legacy Installation? o 'ustomi%ed Installation o educe 'ost o &elf epair o &ource esiliency o )nattended Install o *igh &upport 'osts o +ragile Installs , )ninstalls o Difficult , labor Intensi!e to deploy * What applications should not be repackaged& Why? o -.isting /&I packages should be deployed as they are. o If you repackage an application and find that it references the /&I.D00 file1 it is better not to repackage the application. o /icrosoft 2ffice 34 2000 and 5P are good e.amples. o $pplications containing system files managed by the 6indo"s 34 +ile Protection features of 6indo"s 34 2000 and later are also to be a!oided1 such as Internet-.plorer 34 1 6indo"s 34 &er!ice Packs and certain hotfi.es. $ll these applications are hard coded to use the 6indo"s Installer Application & Packaging asics !"A#$ Dynamic 7ie"s template. Po"ered by 8logger. Page 1 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingbasicsblogspotin/ service, and may make calls back to certain locations within the original MSI package. * What are the types of Packaging tools? o Wise for Windows Installer o Install Shield o SMS Installer o Marimba * What are the types of Deployment tools? o Microsoft Systems Management Server (SMS) o Altiris lient Management S!ite o Altiris "otification Server onsole o #$ %adia&I'M (ivoli * What is Windows Installer? It is a b!ilt)in *perating System service for Installing and Managing Applications. It provides a standard method for developing, c!stomi+ing, installing and !pdating applications. * Benefits of the Windows Installer? o Advertising o Installation on ,emand o %epair (Self)healing) o %ollback ((ransactional operations) o Managed Shared %eso!rces o Installation in locked)down environments * What are the types of Setup Captures in Wise / Install shield? In wise there are three types o -irt!al apt!re . reates a clean virt!al *S on yo!r comp!ter, and the installation is redirected in the clean virt!al *S. o SmartMonitor . Watches the installation and records the changes the installation performs. o Snapshot . Scan the comp!ter before and after the installation and record the differences between the first scan and the second. In Install Shield there are two types o Installation Monitor . %epackager watches lower)level system activities and records related changes made to the system by the set!p(s) programs o Snapshot . Scan the comp!ter before and after the installation and record the differences between the first scan and the second. * SI Installation echanism !Background echanism"? o Ac/!isition (he Installer first installs the feat!re and then progresses thro!gh the actions specified in the se/!ence tables of the installation database. (hese ,ynamic -iews template. $owered by 'logger. Page 2 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingbasicsblogspotin/ actions query the installation database and generate a script that gives a step-by-step procedure for performing the installation. o Execution The installer passes the information to a process with elevated privileges and runs the script. o Rollback If an installation is unsuccessful the installer restores the original state of the computer. !hen the installer processes the installation script it simultaneously generates a rollback script. In addition to the rollback script the installer saves a copy of every file it deletes during the installation. These files are kept in a hidden system directory. "nce the installation is complete the rollback script and the saved files are deleted. * What is a MSI? #$I is %#icrosoft !indows Installer&. It is an installation in the form of a single file. It is actually a database that contains several tables '()*+. Each of these tables contains instructions and set-up information. In wise there are ,-) '(.*//+ tables. * Structure of MSI? o 0roducts '1ollection of 2eatures+ o 2eatures '1ollection of 1omponents+ o 1omponents '1ollection of files and Registries+ * What is Product? 0roduct is an 3pplication. * What is Feature? 2eatures are buckets for 1omponents. !indows Installer configuration commands operate only on 2eatures 'installing advertising 4ninstalling+. $elf-healing install-on-demand and user profile fix-up operate at the 2eature level. * What is Component? 1omponents are collections of resources that are always installed or removed as a unit from a user5s system. 3 resource can be a file registry key shortcut or anything else that may be installed. Every component is assigned a unique component code 64I7. * What is Registry, Tell the Structure types of Registry? The Registry is a single place for storing information about the !indows "$ '8ardware 9 $oftware+. $tructure * Root :eys ; $ubtrees * $ubkeys * 8ives * Entries Types * #achine-$pecific '8:1R 8:<# 8:11 8:4+ 7ynamic =iews template. 0owered by >logger. Page 3 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingbasicsblogspotin/ + User-Specific (HKCU, HKU) Root Keys + HKEY_CLASS_ROOT (HKCR) + HKEY_LOCAL_MACHIE (HKLM) + HKEY_CURRET_CO!I" (HKCC) + HKEY_CURRET_USER (HKCU) + HKEY_USERS (HKU) * What are Shortcuts & Types? S#ortc$ts %re t#e e&try poi&ts to t#e %pp'ic%tio&s i&st%''e( o& t#e syste) *#ic# is &or)%''y poi&ts to % fi'e+ o A(,ertise( (!i'e s#o$'( -e I&st%''e( -y t#e App'ic%tio&) o o& A(,ertise( (!i'e t#%t is &ot p%rt of I&st%''%tio&+ It is %'so c%''e( Co))%&( Li&e s#ortc$ts) * What are INI File & its format? II fi'es %re p'%i&-te.t fi'es t#%t co&t%i& co&fi/$r%tio& i&for)%tio&+ 0II0 st%&(s for i&iti%'i1%tio&+ 2Sectio&3 Key&%)e4,%'$e * What are Services & its types? A *i&(o*s ser,ice is % -%c5/ro$&( process *#ic# is 'o%(e( -y t#e Ser,ice Co&tro' M%&%/er of t#e OS+ o 6i&78 Ser,ice (6i&78 ser,ices %re t#e ser,ices *#ic# is r$&&i&/ -y t#e e.ec$t%-'e fi'e i&st%''e( -y t#e App'ic%tio&)+ o Syste) or Ker&e' Ser,ices (Ker&e' ser,ices %re t#e ser,ices *#ic# %re $se( -y t#e OS to co))$&ic%te to t#e #%r(*%re (e,ices)+ * Where is Service information stored? Most of t#e Ser,ice i&for)%tio& is store( i& t#e *i&(o*s re/istry9HKLM:Syste):C$rre&tCo&tro'Set:%)e of t#e Ser,ice; < I& t#e MSI, *#ic# t%-'es co&t%i& i&for)%tio& %-o$t t#e ser,ice (et%i's= o Ser,iceI&st%'' (Ser,ice >et%i's) o Ser,iceCo&tro' (Co&tro''i&/ t#e ser,ice ($ri&/ I&st%''%tio& ? U&I&st%''%tio&) * What is ODB & DSN and its types? O>@C )e%&s Ope& >%t%-%se Co&&ecti,ity+ T#e p$rpose of O>@C is to %''o* t#e $ser to %ccess (%t% fro) %&y %pp'ic%tio&+ T#e '%yer -et*ee& t#e %pp'ic%tio& %&( t#e >@MS c%''e( >S+ o Syste) >S (>S *i'' -e %,%i'%-'e for %'' $sers) o User >S (>S *i'' -e %,%i'%-'e for t#%t p%rtic$'%r $ser) * What is File !ssociation? T#e 6i&(o*s oper%ti&/ syste) reco/&i1es fi'e types %&( %ssoci%tes t#e) *it# pro/r%)s -%se( o& t#eir fi'e e.te&sio&+ A fi'e t#%t c%rries &o e.te&sio& or &o %ssoci%te( pro/r%) is c%''e( Orp#%&e(+ * What is "nvironment #aria$le & its types? >y&%)ic Aie*s te)p'%te+ Bo*ere( -y @'o//er+ Page 4 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingbasicsblogspotin/ Environment Variables are the variables that are set by the Operating System& Application. o System Variable (Available for all users) o User Variable (Available for that particular user) * What is Property & types of Properties, give some Examples? Properties are global variables that the icrosoft !in"o#s $nstaller uses "uring an installation. o Private %he installer can be use only internally (values can&t be change" "uring the run time). ' anufacture( Pro"uct)o"e( Pro"uct$*( Pro"uct+ame( Pro"uctVersion ,, o Public %he installer can be uses both internally & e-ternally (values can be change" "uring the run time also). ' $+S%A...EVE.( ,. o /estricte" Public %he user can&t change the value both internally & e-ternally "ue to security purposes. ' A..USE/S( /E0OO%( /E$+S%A..O*E , * What is the Use of the following Properties? 1 A..USE/S (+ull( 2( 3) User 4 Per4user( +ot vali"( Per4user A"min 4 Per4user( Per4machine( Per4machine 1 /E0OO% (5orce( Suppress( /eallySuppress) Al#ays prompt for a reboot at the en" of the installation. Suppress prompts for a reboot at the en" of the installation. 0ut the user can still prompt by using 5orce/eboot action. Suppress all prompts for reboots "uring the installation. 1 /E$+S%A..O*E (to specify the type of reinstallation of the Application) p 4 $f file is missing o 4 $f file is missing or if an ol"er version is installe". e 4 $f file is missing or an e6ual or ol"er version is installe". " 4 $f file is missing or a "ifferent version is installe". c 4 $f file is missing or the store" chec7sum "oesn8t match the calculate" value. a 4 5orce all files to be reinstalle". u 4 /e#rite all re6uire" user specific registry entries. m 4 /e#rite all re6uire" computer4specific registry entries. s 4 Over#rite all e-isting shortcuts. v 4 /un from source an" re4cache the local pac7age. *o not uses the v reinstall option for the first installation of an application or feature. 1 /E$+S%A.. (.ist of features to be $nstalle") 1 /eboot/e6uire" (Prompts for /eboot) 9es 4 Prompt for /eboot +o 4 !on&t Prompt for /eboot *ynamic Vie#s template. Po#ere" by 0logger. Page 5 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingasics!logspot!in/ + ADDLOCAL (Features to be Installed locally during Run Time) + ADDSOURC (Features to be run !rom source) + I"STALLL#L ($%ic% !eatures to be Installed) * What is Merge Module? &erge modules are a mec%anism in $indo's Installer t%at allo's com(anies to (re(ac)age and s%are standard com(onent de!initions* &erge modules are used to deli+er s%ared code, !iles, resources, registry entries and setu( logic to a((lications as a single com(ound !ile* * What are all Merge Module tables? &oduleSignature, &oduleCom(onents, &oduleDe(endency, &odule-clusion, &oduleAdminUISe.uence, &oduleAdmin-ecuteSe.uence, &oduleAd+tUISe.uence, &oduleAd+t-ecuteSe.uence, &oduleIgnore, &oduleInstallUISe.uence, &oduleInstall-ecuteSe.uence, &oduleSubstitution, &oduleCon!iguration * How the Merge Module is working (Background mechanism)? &erge &odule is 'or)ing by c%ec)ing t%e +ersion, si/e 0 date o! t%e !ile* I! t%e !ile is Dll or OC1, it 'ill c%ec) t%e +ersion, ot%er !iles li)e te-t it 'ill c%ec) t%e Si/e 0 Date* It 'or)s by t%e &ec%anism o! S%ared Dlls Count conce(t '%ic% is stored in t%e Registry in!ormation 234L&5So!t'are5&icroso!t5$indo's5Current#ersion5S%aredDlls56 * You can create Merge Module for text file, how? 7es you can create &erge &odule !or t%e te-t !ile also* It 'ill 'or)s by t%e mec%anism o! c%ec)ing t%e !ile Si/e 0 Date* * What are the t!es of "nstallation modes? All $indo's Installer (ac)age s%ould be Installed by t%e !ollo'ing command line &sie-ec 8O(tion 9O(tional :arameter; o Install O(tions + 8I < Installs a (roduct + 8= < Ad+ertise a (roduct u < Ad+ertises to t%e current user m < Ad+ertises to all users o! mac%ine g < Language identi!ier t < A((lies trans!orm to ad+ertised (ac)age + 8a < Administrati+e Installation + 8- < UnInstalls a (roduct o Dis(lay O(tions (during Installation 0 UnInstallation) + 8.uiet < no user interaction + 8(assi+e < unattended mode + 8. < sets user inter!ace le+el n < "o UI n+ < "o UI e-ce(t !or a modal dialog at t%e end r < Reduced UI 'it% no modal dialog at t%e end b < >asic UI Dynamic #ie's tem(late* :o'ered by >logger* Page 6 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingbasicsblogspotin/ b! - Basic UI with hide cancel button b+ - Basic UI with a modal dialog at the end b+! Basic UI with a modal dialog at the end & hide cancel button b- - Basic UI with no modal dialog at the end b-! - Basic UI with no modal dialog at the end & hide cancel button f - Full UI + /help - help information o Restart ptions + /norestart - !o not restart after the Installation + /promptrestart - "rompts the user for restart if necessar# + /forcerestart - $lwa#s restart the computer after Installation o %ogging ptions &'rites logging information into a logfile at the specified e(isting path) !efault is *iwearmo*+ + /l - I - ,tatus messages w - -onfatal warnings e - $ll error messages a - ,tart up of actions r - $ction-specific records u - User re.uests c - Initial UI parameters m - ut-of-memor# or fatal e(it information o - ut-of-dis/-space messages p - 0erminal properties 1 - 2erbose output ( - 3(tra debugging information + - $ppend to e(isting log file ! - Flush each line to the log 4 - %og all information5 e(cept for 1 and ( options + / log 3.ui1alent of /l4 o Update ptions + /update + /uninstall + /p - $pplies a "atch o Repair ptions &Repairs a product+ + /f p - onl# if file is missing o - If file is missing or an older 1ersion is installed &default+ e - If file is missing or an e.ual or older 1ersion is installed d - If file is missing or a different 1ersion is installed c - If file is missing or chec/sum does not match the calculated 1alue a - forces all files to be reinstalled u - $ll re.uired user-specific registr# entries &default+ m - $ll re.uired computer-specific registr# entries &default+ s - $ll e(isting shortcuts &default+ 1 - Runs from source and reaches local pac/age o thers + /m 6enerates an ,7, status )mif file + /8 r /h !ispla#s the cop# rights for 'indows Installer + /# 9alls the s#stem function !llRegister,er1er to self-register modules !#namic 2iews template) "owered b# Blogger) Page 7 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingasics!logspot!in/ passed in on the command line. + /z Calls the system function DllUnRegisterServer to Unregister modules passed in on the command line. + /c Advertises a new instance of the product + /n Specifies the particular instance of the product * How to give Permission for files, folders & Registry keys in MSI? n the !S" we can give permissions through #oc$ %ermission ta&le. * How to give Permission for files, folders & Registry keys through VB Sri!t & wh"t is the synt"#? 'e can give permission for files ( folders through )* Script &y using the CAC#S ( +CAC#S commands. CAC#s should only run on ,-.S partitions. CAC#S / Changes Access Control #istS 0Cacls 1/-2 1/32 1/C2 1/4 user5 perm2 1/R user 1...22 1/% user5 perm 1...22 1/D user 1...22 0 o /- Changes AC#s of specified files in the current directory and su&directories o /3 3dit AC# instead of replacing it o /C Continue 6ignore7 access denied errors o /4 user 5 perm where access rights granted can &e5 R C . 6read" change" full control7 o /R user Revo$e specified user8s access rights 6only valid with /37 o /% user5 perm Replace specified user8s access rights. %ermission can &e5 , R C . 6none" read" change" full control7 o /D user Deny specified user access 3.g. 0cacls c59myfile.t:t /3 /4 5 .; n )* Script the synta: as <n 3rror Resume ne:t Set 'shell = Create<&>ect 60'script.Shell;7 'shell.Run 0cacls c59myfile.t:t /3 /4 5 .; * How to dis"$le %RP &et"ils during the Inst"ll"tion through 'omm"nd line, tell some %RP !ro!erties? msie:ec /i AR%S?S-3!C<!%<,3,-=@ o AR%AU-A<RB3DCD.%R3.+ o AR%C<!!3,-S o AR%C<,-AC- o AR%,S-A###<CA-<, o AR%,<!<D.? o AR%,<R3!<)3 o AR%,<R3%AR o AR%%R<DUC-C<, o AR%R3AD!3 o AR%SB3 o AR%S?S-3!C<!%<,3,- o AR%UR#,.<A*<U- Dynamic )iews template. %owered &y *logger. Page 8 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingasics!logspot!in/ o ARPURLUPDATEINFO * During Installation how to take a back up copy of the Application through Command line? I never tried check it out. * What is Dll Cache folder? During the process of SF !S"ste# Fi$e hecker% or &FP !&indo's Fi$e Protection%( it 'i$$ sc)n )$$ the protected fi$es !.S*S( .DLL( .E+E( .TTF( .FON( )nd .O+ e,tensions% to verif" their versions. If the versions )re not correct( it 'i$$ rep$)ce the p)rticu$)r fi$es fro# the -)ck up fo$der c)$$ed DLL )che fo$der. * What is SFC? SF #e)ns .S"ste# Fi$e hecker.. It is ) co##)nd/$ine uti$it" th)t sc)ns the oper)ting s"ste#0s fi$es to ensure th)t the" )re the correct ones !origin)$ 1icrosoft fi$es%. 2ut it c)n -e run or schedu$ed #)nu)$$" on$". During the process( it 'i$$ sc)n )$$ the protected fi$es !.S*S( .DLL( .E+E( .TTF( .FON( )nd .O+% to verif" their versions. If the versions )re not correct( it 'i$$ rep$)ce the p)rticu$)r fi$es fro# the -)ck up fo$der c)$$ed DLL )che fo$der * What is Windows File rotection !WF"? &FP is )$so one Uti$it" too$ 'hich 'i$$ do )uto#)tic)$$". So#e )pp$ic)tions 'i$$ rep$)ce the s"ste# fi$es !S*S( .DLL( .E+E( .TTF( .FON( )nd .O+% 'ith different fi$es of the s)#e n)#e or 'ith s)#e fi$e 'ith different versions. If the fi$es )re in ) protected fo$der( then &indo's Fi$e Protection )uto#)tic)$$" deter#ines 'hich fi$e ')s )ffected( )nd $ooks up the fi$e sign)ture in ) c)t)$ogue fi$e to see if the fi$e is the correct 1icrosoft version( )nd if it is digit)$$" signed. If it is not( then the correct fi$e 'i$$ -e copied over it fro# either the 'innt3s"ste#453d$$c)che fo$der( or fro# the &indo's D. * #ow Do I Control Windows File rotection !WF"? A$$ registr" settings for &FP6S"ste# Fi$e hecker )re $oc)ted in789E*:LOAL:1A8INE3 SOFT&ARE3 1icrosoft3 &indo's NT3 urrent;ersion3 &in$ogon<. 2" def)u$t( on$" Ad#inistr)tors )nd S"ste# 'i$$ -e )-$e to #odif" these settings. SFDis)-$e !RE=:D&ORD% > ? en)-$ed !def)u$t%. @ ? dis)-$ed( pro#pt )t -oot to re/en)-$e !de-ugger reAuired%. 5 ? dis)-$ed )t ne,t -oot on$"( no pro#pt to re/en)-$e !de-ugger reAuired%. SFSc)n !RE=:D&ORD% > ? do not sc)n protected fi$es )t -oot !def)u$t%. @ ? sc)n protected fi$es )t ever" -oot. 5 ? sc)n protected fi$es once. D"n)#ic ;ie's te#p$)te. Po'ered -" 2$ogger. Page 9 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingasics!logspot!in/ SFCQuota (REG_DWORD) n = size (in megabytes) of dlla!e "uota# FFFFFFFF = a!e$%&oteted system files on t!e loal !a&d d&i'e# SFCS!o()&og&ess (REG_DWORD) * = System File C!e+e& %&og&ess mete& is not dis%layed# , = System File C!e+e& %&og&ess mete& is dis%layed (default)# SFCDllCa!eDi& (REG_E-)./D_S0) )at! = loal loation of dlla!e di&eto&y (default is 1System&oot1 2system342dlla!e)# * What is Advertisement? 5t means t!at6 t!e .'ailability of an a%%liation to use&s o& ot!e&s (it! out atually t!e full 5nstallation# 7!e&e a&e t(o ty%es of .d'e&tising o .ssigning .n .%%liation a%%ea&s (s!o&tuts6 files 8 &egist&ies) to a use& o& ot!e&s6 (!en an .%%liation is 9assigned:# W!en t!e use& t&ies to o%en6 it is installed u%on demand# o )ublis!ing /o Ent&y %oints a%%ea& to a use& o& ot!e&s6 (!en an .%%liation 9%ublis!ed: to t!e g&ou%# 5t is ati'ated only if t!e g&ou% .%%liation ati'ates t!e %ublis!ed .%%liation i#e# 5nstallation on Demand# * What is Advertised Feature & Component? 5f a Featu&e o& Com%onent is ad'e&tised6 only t!e inte&faes &e"ui&ed fo& loading and laun!ing t!e a%%liation a&e installed to t!e use& o& ot!e&s# 5f a use& ati'ates an ad'e&tised inte&fae t!e installe& t!en %&oeeds to install t!e neessa&y Com%onents 8 Featu&es# * What is Installation on Demand? W!en a use& o& a%%liation ati'ates an ad'e&tised featu&e o& %&odut6 t!e installe& %&oeeds (it! installation of t!e needed om%onents# * What is Transform? . t&ansfo&m is a (indo(s installe& file (it! t!e e;tension (#<S7)# 5t s!ould be used along (it! a <S5 to ustomize o& !ange t!e installation %a+age (it!out modifying t!e <S5# 7!e installe& an only a%%ly t&ansfo&ms du&ing an installation# * What are the types of Transform? o Embedded t&ansfo&m Embedded t&ansfo&ms a&e sto&ed inside t!e #msi file of t!e %a+age# o Seu&ed t&ansfo&m Seu&ed t&ansfo&ms a&e sto&ed loally on t!e use&=s om%ute& in a loation (!e&e6 on a seu&e file system6 t!e use& does not !a'e (&ite aess# Su! t&ansfo&ms a&e a!ed in t!is loation du&ing t!e installation o& ad'e&tisement of t!e %a+age# Du&ing subse"uent installation$on$demand o& maintenane installations of t!e %a+age6 t!e installe& uses t!e a!ed t&ansfo&ms# o >nseu&ed t&ansfo&m 7&ansfo&ms t!at !a'e not been seu&ed a&e alled unseu&ed Dynami ?ie(s tem%late# )o(e&ed by @logge&# Page 10 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingasics!logspot!in/ transforms. To apply an unsecured transform, pass the transform file names in the TRANSFORMS property or command line string during the installation. * How to Create Transform in Wise / Install Shield? In Wise ac!age Studio, "y using Install Tailor or Ne# ro$ect %& other templates %& Transform In Install Shield Admin Studio, "y using the Ne# ro$ect %& Transform * How many Transform can be created for one Vendor MSI? Any Num"er * How many Transforms can be supplied in the Command line? Any Num"er * What is Custom ction? The Microsoft Windo#s Installer pro'ides many "uilt%in actions for performing the installation process. For some cases the de'eloper #rites an action to e(ecute his o#n installation is called custom action * What are the types of Custom ctions? o )** file stored in a +inary ta"le stream o )** file that is installed #ith a product o ,-, file stored in a +inary ta"le stream o ,-, file that is installed #ith a product o )isplays a specified error message and returns failure, terminating the installation o ,-, file ha'ing a path specified "y a property 'alue o ,-, file ha'ing a path referencing a directory o .Script file stored in a +inary ta"le stream o .Script file that is installed #ith a product o .Script te(t specified "y a property 'alue o .Script te(t stored in this se/uence ta"le o 0+Script file stored in a +inary ta"le stream o 0+Script file that is installed #ith a product o 0+Script te(t specified "y a property 'alue o 0+Script te(t stored in this se/uence ta"le o roperty set #ith formatted te(t o )irectory set #ith formatted te(t o Installation of a pac!age nested inside of the first pac!age. See Nested Installation Actions o Installation of a pac!age that resides in the first application1s source tree. See Nested Installation Actions o Installation of an application that is ad'ertised or already installed. See Nested Installation Actions * What are the types of Se!uences in the Custom ctions? o Normal 2ser Interface o Normal ,(ecute Immediate 3 )eferred o Administrati'e 2ser Interface o Administrati'e ,(ecute Immediate 3 )eferred )ynamic 0ie#s template. o#ered "y +logger. Page 11 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingbasicsblogspotin/ o Advertisement Execute Immediate / Deferred * What are the types of Conditions in the Custom Actions and what is the use? o Not Installed - During Installation only o REMOVE - During UnInstallation only o NO REMOVE - During !ot" Install # UnInstall * What are the types of In Script options in the Custom Actions? o Immediate Execution Immediate custom actions$ can !e se%uenced any&"ere &it"in any of t"e se%uence ta!les' It "as access to t"e installation data!ase (read # set installation )ro)erties$ modify feature # com)onent states$ add tem)orary columns$ ro&s$ and ta!les*' o Deferred Execution + User ,ontext Deferred custom actions can only !e se%uenced !et&een t"e InstallInitiali-e and Install.inali-e actions in execute se%uence ta!les' It doesn/t "ave access to t"e installation data!ase' Deferred custom actions are not executed immediately' Instead t"ey are sc"eduled to run later during t"e execution scri)t' "e execution scri)t isn0t )rocessed until t"e InstallExecute$ InstallExecuteAgain$ or Install.inali-e action is run' If t"e ,urrent User doesn/t "ave t"e elevated )rivileges (,ustom actions ma1e c"anges in t"e system directly*$ t"e custom actions s"ould run in Deferred Execution in User ,ontext only' o Roll!ac1 only "is Action s"ould !e executed during t"e Installation of t"e Roll!ac1 scri)t or if t"e Installation is Unsuccessful o ,ommit only "is Action s"ould !e executed during t"e Installation of t"e ,ommit scri)t' o Deferred Execution + 2ystem ,ontext Deferred custom actions can only !e se%uenced !et&een t"e InstallInitiali-e and Install.inali-e actions in execute se%uence ta!les' It doesn/t "ave access to t"e installation data!ase' Deferred custom actions are not executed immediately' Instead t"ey are sc"eduled to run later during t"e execution scri)t' "e execution scri)t isn0t )rocessed until t"e InstallExecute$ InstallExecuteAgain$ or Install.inali-e action is run' If t"e ,urrent User "ave t"e elevated )rivileges (,ustom actions ma1e c"anges in t"e system directly*$ t"en it s"ould run in Deferred Execution in 2ystem ,ontext only' * What is the difference between Immediate Execute / Deferred Execute in the Custom Actions? o Immediate custom actions$ can !e se%uenced any&"ere &it"in any of t"e se%uence ta!les Deferred custom actions can only !e se%uenced !et&een t"e InstallInitiali-e and Install.inali-e actions in execute se%uence ta!les Dynamic Vie&s tem)late' 3o&ered !y 4logger' Page 12 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingbasicsblogspotin/ o Immediate custom actions have access to the Installation database Deferred custom actions doesnt have access to the Installation database o Immediate custom actions can only run in the User Context Deferred custom actions can run both in the context of the user and elevated using the system context. * What is the difference between Deferred in System Context / Deferred in User Context in the Custom Actions? If the Custom action which installs or modify a file under the INST!!DI" or Installation should be run in #Deferred in User Context$ If the Custom action which installs or modify the system file directly should be run in #Deferred %xecution in System Context$ * What are the types of rocessin! "ptions in the Custom Actions and what is the use? o Synchronous &indows Installer runs the custom action synchronously to the main installation. It waits for the custom action to com'lete successfully before continuing the main installation. o Synchronous( ignore exit code &indows Installer runs the custom action synchronously to the main installation. It waits for the custom action to com'lete before continuing the main installation) the action can be either success or fail. o synch( wait at end of se*uence &indows Installer runs the custom action simultaneously with the main installation. t the end it waits for the exit code from the custom action before continuing. o synch( no wait &indows Installer runs the custom action simultaneously with the main installation. It doesnt wait for com'letion of the custom action and doesnt chec+ the exit code also. * What are the types of Schedu#in! "ptions in the Custom Actions and what is the use? o lways %xecute This action execute in all se*uences o "un first time This action execute only the first time &indows Installer encounters it. o "un once 'er 'rocess This action execute only one time either %xecute se*uence that should not run if the installation is running in silent mode. o "un only if UI se*uence was run This action execute only if either %xecute se*uence is run following User Interface se*uence. * What is $aunch Condition? !aunch Condition is used to chec+ system re*uirements on the destination com'uter Dynamic ,iews tem'late. -owered by .logger. Page 13 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingbasicsblogspotin/ * What is App Search? App Search action is used to search for existing versions of products (Files, Registry, INI, Directory & Coponent! * What is Isolated Component, why we are using and its types? It eans that to prevent over"riting of previous versions of shared coponents, and ensures that other applications do not over"rite your version of shared coponents# o $anifest file concept o %ocal file concept * What is the MSI Assembly tables & its use? $SI Asse&ly ta&les specify 'indo"s Installer settings for $icrosoft (#N)* Frae"or+ asse&lies and 'in,- asse&lies# It is used for the registration of #Net Asse&ly files# 'hen installing asse&lies to the glo&al asse&ly cache, the installer cannot use the sae directory structure# Asse&lies can exist only once in the asse&ly cache# Asse&lies are added and reoved fro the asse&ly cache atoically * What is the latest version o Windows Installer? *he latest version of 'indo"s Installer is .#/ * What is the dierence between Wise !ac"age Studio & Install Shield Admin Studio? 0oth tools are ore or less sae, &ut as per y +no"ledge for capturing part Install Shield is good, it "on1t capture unnecessary files & registry +eys and for editing the $SI or #"si or #is, 'ise is &etter &ecause 'ise 23I is good# I found lot of &ug in Install Shield only o 23I part o Shortcut Icon (other than executa&le files! o Directory ta&le (INS*A%%DIR! o Create unnecessary entries "hile editing the $S* o 4roduct language property "on1t change in the $SI after the copilation, default 5/,, o Create un"anted coponent & create folder entry "hile editing any coponent o Coponent naes o It "on1t validate the $SI if that $SI is installed in the local syste * What is Conlict Management? 'hen t"o or ore applications install the sae syste files (D%%s, #607s, and #8C7s!, 'indo"s registry, and other ites# *o detect, Conflict $anageent should &e use and for resolve the soft"are conflicts, Application Isolation concept should &e use * What are the types o #eployment $Sotware #istribution%? Dynaic 6ie"s teplate# 4o"ered &y 0logger# Page 14 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingbasicsblogspotin/ o Group policy (Active Directory) o Software Update Services (SUS) o Windows Update Web site o Systems Management service (SMS) * What is Software Distribution? One of te more critical aspects to managing a Windows environment is te ability to deploy new applications! updates! upgrades " patces# Distributing new or updated software is called as Software Distribution# * What is Group Policy (GPO) & how to set it? Administrators use Group $olicy to define options for managing! configuration of servers! des%tops! and groups of users# &t is used to set policies across a given site! domain! or range of organi'ational units# Use (gpedit#msc) in te run command to set te policy# * What is Elevate !ser & how to create it? &f te user aving te privileges of MS& features (Windows &nstaller) is called as *levated User +ou can create troug (gpedit#msc) in te run ,ommand or registry %eys -.*+/0O,A0/MA,-&1*2SO34WA5*2$olicies2Microsoft2Windows2&n staller 4ype 6 DWO5D .ey6 Always&nstall*levated 7alue 6 8 * What is Wrapper "S#? &t means tat te Application (MS&) is pac%aged by calling te *9e (*9ecutable file) inside te MS& (&nternally calling te source or e9e)# * What is $oc% own environ&ent? Software restriction policies provide administrators wit a $olicy:driven mecanism to identify software running on computers in a domain! and control its ability to e9ecute# 4is policy can be used to bloc% malicious scripts! elp loc%down a computer! or prevent unwanted applications from running# * 'ow o eploy the Pac%a(e? o Group policy (Active Directory) o Software Update Services (SUS) o Windows Update Web site o Systems Management service (SMS) * What is #ntelli"irror? &ntelliMirror management tecnologies is a set of powerful features for cange and configuration management# &t ensures tat users; data! software! and personal settings are available wen tey move from one computer to anoter! and persist wen teir computers are connected to te networ%# Microsoft divides &ntelliMirror<s features into te following four Dynamic 7iews template# $owered by =logger# Page 15 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingasics!logspot!in/ categories: o User Data Management :. IntelliMirror supports the mirroring of user data to the network and local copies of selected network data. o Software Installation and Maintenance : IntelliMirror allows you to centrally manage software installation, repairs, updates, and removal. o User Settings Management : IntelliMirror allows you to centrally define computing environment settings for both users and workstations. o emote Installation Services : IntelliMirror allows you to image workstations with the !indows "### $rofessional operating system * What is Active Directory? Deploying applications through the %ctive Directory is done through the use of group policies, and therefore applications are deployed either on a per user basis or on a per computer basis. * What are the other tools which are used during the testing & solving the Issues in the Application? o $icture &aker o !indows Install Master o Install rite o egMon o 'ileMon o (sDiff o Icon )*tractor + Icon ,uilder o eg)*tractor o !i-ogUtl o !ise(omeg o esource!". * What is Orca tool & what is the purpose and Advantages? &his tool is a Microsoft product. It is used for edit the MSI Databases /tables0. o 1o limitation for the table entries o )asy to edit the Databases o If you edit any tables and give save, only those tables will be modified, but in !ise or Install Shield all the tables will change * Why multiple MSIEec is running during the Installation? !indows Installer uses a client2server model for performing installations. %dditionally for security reasons, !indows Installer hosts D-- and script custom actions in a 3sandbo*3 process. Depending on how the install was initiated, one of the MSI)*ec processes can be the client process /(urrent User0. %nother MSI)*ec process is !indows Installer service /System0. * Which drive your Application will Install! " drive has less space and D drive has more space? Why & how to solve? It will install 4D5 drive only due to !indows Installer features. Dynamic 6iews template. $owered by ,logger. Page 16 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingbasicsblogspotin/ We can solve by adding WindowsVolume entry in the directory table as parent of TARGET!R * What is a Patch? "atching is a streamlined process for updating earlier versions of a Windows !nstaller setup pac#age i$e$ when you update only files that already e%ist in your installation pac#age$ &nly the pac#age code is changed$ * What is Upgrade? 'pgrade is a process of updating the earlier versions of a Windows !nstaller setup pac#age i$e$ Adding( changing ) deleting new *iles ) Registries$ +ut here product code( product version ) pac#age code should be changed$ * What are the types of Upgrades and what is the difference? o ,mall 'pdate A small update is a product update that changes a few files or possibly adds some new content$ +ut there is a limitation for the changes that can be made to the feature-component structure for the pac#age$ &nly the pac#age code is changed$ !t is also called as a ./otfi%. or 0uic# *i% Engineering 10*E2$ o 3inor 'pgrade A minor update is a product update that ma#es enough changes$ +ut there is a limitation for the changes that can be made to the feature- component structure for the pac#age$ The pac#age code ) product version is changed for the product$ !t is also called as a ,ervice "ac#$ o 3a4or 'pgrade A ma4or update is a product update with a large number of changes$ There is no limitation for the changes that can be made to the feature- component structure for the pac#age$ The pac#age code( product code ) product version is changed for the product$ !t is also called as a ."roduct 'pgrade$ * How you validate the MSI? !n Wise "ac#age ,tudio( by using "ac#age Validation option by selecting the 3,! with the default 5ub file or +rowse your own 5ub file$ !n !nstall ,hield( by +uild -6 Validate-6 efault 5ub file or +rowse your own 5ub file$ * What is ICE? !t means !nternal 5onsistency Evaluation$ !5Es are used to validate installation pac#ages$ * ive so!e ICE Error nu!"er and tell how to solve the ICE Errors? There are totally 78 !5E Errors and 9: !5E3 Errors in the Windows !nstaller$ ,ome e%amples are as follows o !5E;< - +asic data and foreign #ey validation ynamic Views template$ "owered by +logger$ Page 17 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingasics!logspot!in/ o ICE18 - Validates the KeyPath column of the Component table when it is NULL o ICE!1 - Validates that all components in the Component table map to a featu"e in the #eatu"eComponents table o ICE$$ - Chec%s fo" ent"ies in the "e&ist"y table that belon& in othe" tables o ICE$8 - Validates that components installed unde" the use"'s p"ofile use a "e&ist"y %ey unde" (KCU as thei" %ey path o ICE)* - Chec%s that new di"ecto"ies in the use" p"ofile a"e "emo+ed in "oamin& scena"ios o ICE,- - Validates that indi+idual components do not mi. pe"-machine and pe"-use" data o ICE,/ - Chec%s that ad+e"tised sho"tcuts belon& to components that a"e installed by the ta"&et featu"e of the sho"tcut oICE81 oICE,0 * What are the File types of Application Packaging? o 12I - 3ic"osoft 1indows Installe" P"o4ect file o I23 - Install 2hield P"o4ect file o 32I - 3ic"osoft 1indows Installe" o 325 - 3ic"osoft 5"ansfo"m o PCP - 1indows Installe" Patch P"o4ect file o 32P - 3ic"osoft 1indows Installe" Patch o 123 - 3ic"osoft 1indows Installe" 3e"&e 3odule P"o4ect file o 323 - 3ic"osoft 1indows Installe" 3e"&e 3odule o E6E - E.ecutable file * How to install the .Exe file through silent mode? No"mally all the E.e file can be Installed silently by 78 s9 :ut it depends up on the E6E file beha+io" * How to register the !! manually? :y usin& the command line option 7"e&s+"$!9 #o" e.ample 1 "e&s+"$! ;ll name #o" <e&iste" the ;ll ! "e&s+"$! 8u #o" Un"e&iste"ed the ;ll $ "e&s+"$! 8s #o" 2ilent "e&iste" * What is "#$ "omponent? 5he Component which is ha+in& the C=3 info"mation ent"ies is called as C=3 Component If the component is C=3 Component> it should ha+e ent"ies in the Class> P"o&I;> <e&ist"y ? 5ypelib tables in the 32I #o" e.ample most of the me"&e module components a"e called as C=3 Component @32C=3C5Loc.> C=3C5Loc. AB * How the "#$ "omponent is working %$echanism&? ;ynamic Views template Powe"ed by :lo&&e" Page 18 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingasics!logspot!in/ COM Component is working by the mechanism of Windows Installer Tokens. It is nothing but d!ertising. This token triggers the Windows Installer to check for the key files of the rele!ant feature and parent features of an M"I. If these tokens are deleted the self healing mechanism is not in!oked. Windows installer tokens should ne!er be part of the registry table of an M"I. They are created at install time by the msie#ec ser!ice due to the way the M"I has been authored using ad!ertising. These tokens e#ist in $ forms. o Tokens within .lnk files that indicate to the O" that they are Windows Installer ad!ertised shortcuts. o Tokens for ad!ertised file e#tensions. o Tokens for ad!ertised COM %ll information. They ha!e the following structure. &our browser may not support display of this image. * What are the default Windows 'nstaller properties? o 'dminTools(older) C*+%ocument and "ettings+Current ,ser+"tart Menu+-rograms+dministrati!e Tools+ o 'pp%ata(older) C*+%ocument and "ettings+Current ,ser+pplication %ata+ o 'Commonpp%ata(older) C*+%ocument and "ettings+ll ,sers+pplication %ata+ o 'Common(iles(older) C*+-rogram (iles+Common (iles+ o '%esktop(older) C*+%ocuments and "ettings+Current ,ser+%esktop+ o '(a!orites(older) C*+%ocuments and "ettings+Current ,ser+(a!orites++ o '(onts(older) C*+Windows+(onts+ o '.ocalpp%ata(older) C*+%ocuments and "ettings+Current ,ser+.ocal "ettings+pplication %ata+ o 'My-ictures(older) C*+%ocuments and "ettings+Current ,ser+My %ocuments+My -ictures+ o '/et0ood(older) C*+%ocuments and "ettings+Current ,ser+/et0ood+ o '-ersonal(older) C*+%ocuments and "ettings+Current ,ser+My %ocuments+ o '-rint0ood(older) C*+%ocuments and "ettings+Current ,ser+-rint0ood+ o '-rofiles(older) C*+%ocuments and "ettings+Current ,ser+ o '-rogram(iles(older) C*+-rogram (iles+ o '-rogramMenu(older) C*+%ocuments and "ettings+Current ,ser+"tart Menu+-rograms+ %ynamic 1iews template. -owered by 2logger. Page 19 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingasics!logspot!in/ o '3ecent(older) C*+%ocuments and "ettings+Current ,ser+3ecent+ o '"endTo(older) C*+%ocuments and "ettings+Current ,ser+"endTo+ o '"tartMenu(older) C*+%ocuments and "ettings+Current ,ser+"tart Menu+ o '"tartup(older) C*+%ocuments and "ettings+Current ,ser+"tart Menu+-rograms+"tartup+ o '"ystem45(older) C*+Windows+"ystem+ o '"ystem(older) C*+Windows+"ystem$6+ o 'Temp(older) C*+%ocuments and "ettings+Current ,ser+.ocal "ettings+Temp+ o 'Template(older) C*+%ocuments and "ettings+Current ,ser+Templates+ o 'Windows(older) C*+Windows+ o 'Windows1olume) C*+ * What are the default Environment settings in XP? o ..,"73"-3O(I.7 C*+%ocuments and "ettings+ll ,sers o --%T C*+%ocuments and "ettings+current ,ser+pplication %ata o Common-rogram(iles C*+-rogram (iles+Common (iles o COM-,T73/M7 "ystem /ame o Com"pec C*+Windows+system$6+cmd.e#e o 0OM7%3I17 C* o 0OM7-T0 C*+%ocuments and "ettings+Current ,ser o -rogram(iles C*+-rogram (iles o "ystem%ri!e C* o "ystem3oot C*+Windows o T7M- C*+%ocuments and "ettings+,"73/M7+.ocal "ettings+Temp o ,"73/M7 Current ,ser o ,"73-3O(I.7 C*+%ocuments and "ettings+Current ,ser o Windir %ynamic 1iews template. -owered by 2logger. Page 20 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingasics!logspot!in/ C:\Windows * What is Package Code? The Package Code is a GUID identifying a particular Microsoft Windows Installer package It associates an M!I file * What is Product Code? The Product Code is a GUID identifying a particular "pplication or product * What is the difference between Static & Dynamic scanning? o !tatic !canner : This scanner looks at all the files included in the pro#ect and checks for any dependencies It then reco$$ends all the possi%le dependencies and allows you to add the$ to the pro#ect o Dyna$ic !canner : The Dyna$ic !canner $onitors the syste$ for dyna$ically loaded files in $e$ory while running the application file Use the dyna$ic scanner to launch your application and test the controls in the application !o$e of these controls load files in the $e$ory that are picked %y the dyna$ic scanner This scanner then reco$$ends all these files in the for$ of a list fro$ which you select or deselect files "ll the selected files are added to the pro#ect %y this scanner The dyna$ic scanner is $ore ro%ust than the static scanner and certainly picks $ore dependencies * What is the Event Viewer how to o!en & what is it use? It is a Windows utility tool in the &! 'ou can open %y gi(ing )e(ent(wr* in the run co$$and also It is used to (iew all e+ceptional e(ents occur in the &! and also for the !yste$ ad$inistrator to track the perfor$ance of the &! * What is V" Scri!t? ,- !cript is a Microsoft !cripting language that $eans it is a lightweight progra$$ing language It is a light (ersion of Microsoft.s progra$$ing language ,isual -asic It is used to add interaction for the we% page pro#ects * What is Wise Scri!t? I ne(er worked on / Tell so$e o%#ects in the ,- !cript 0 when 0 why it is used in the "pplication1 o Class &%#ect :2 Pro(ides access to the e(ents of a created class o Dictionary &%#ect :2&%#ect that stores data key3 ite$ pairs o 4rr &%#ect :2Contains infor$ation a%out run2ti$e errors o 5ile!yste$&%#ect &%#ect :2Pro(ides access to a co$puter.s file syste$ o Match &%#ect :2Pro(ides access to the read2only properties of a regular e+pression $atch Dyna$ic ,iews te$plate Powered %y -logger Page 21 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingbasicsblogspotin/ o Matches Collection :-Collection of regular expression Match objects o RegExp Object :-Provides simple regular expression support * How to install only one particular feature during the Installation through Command line? msiexec /i !!"OC"# * Transforms $he installation process can be manipulated b% appl%ing transforms &'mst( to the installation database' transform ma)es changes to elements of the database' *or example+ ,indo-s .nstaller can use a transform file to change the language in the user interface of an application' $he ,indo-s .nstaller transform files modif% the installation pac)age file at installation time+ and can therefore d%namicall% affect the installation behavior' Customi/ation transforms+ much li)e patches+ remain cached on the computer' $hese transforms are applied to the base pac)age file -henever ,indo-s .nstaller needs to perform a configuration change to the installation pac)age' $ransforms are applied at initial installation0 the% cannot be applied to an alread% installed application' Custom Actions :.nstallExecute1e2uence Merge Modules 3 4ested Executables :as a'msm file component+ voids version conflicts self heal or self repair $ransforms 'mst file 1ecure+ unsecure+ embeded defualt -unsecure &can modif%( secure -read onl% Microsoft Windows Installer Microsoft included ,indo-s .nstaller as a core service &msiexec'exe( -ithin ,indo-s 5666 to install+ repair+ and remove soft-are based on instructions contained in 'M1. files' $hese 'M1. files are basicall% database files that contain all the information an application needs in order to install a pac)aged application' $hen once %ou pac)age %our application %ou can deplo% it using 7roup Polic% b% one of t-o methods: Assigning an application' 8ou can assign a 'M1. pac)age to either a computer or a user' .f %ou assign it to a computer+ the pac)aged application installs the next time the computer reboots' .f %ou assign it to a user+ the application t%picall% installs -hen the user tries to run it from the 1tart menu or tries to open a file that has a file extension associated -ith !%namic 9ie-s template' Po-ered b% :logger' Page 22 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingbasicsblogspotin/ the application. Publishing an application. You can publish a .MSI package to users only. This provides the user with an option within Add or Remove Programs in ontrol Panel that lets them manually install the application i! they want to. This tool !ully complies with Microso!t"s .MSI standards while also e#tending the capabilities o! .MSI packages without making changes to their native !ormat. The result is a power!ul tool that can be used to deploy legacy$ %eb&based$ and .'(T applications )uickly and easily. The Msie#ec.e#e program is a component o! %indows Installer. This program uses a dynamic link library$ Msi.dll$ to read the package !iles *.msi+$ apply trans!orms *.mst+$ and incorporate command&line options. The installer per!orms all installation&related tasks, copying !iles onto the hard disk$ making registry modi!ications$ creating shortcuts on the desktop$ and displaying dialog bo#es to )uery user installation pre!erences when necessary. (ach package *.msi+ !ile contains a relational type database that stores all the instructions and data re)uired to install *and uninstall+ the program across many installation scenarios. -or e#ample$ a package !ile could contain instructions !or installing an application when a prior version o! the application is already installed. The package !ile could also contain instructions !or installing the so!tware on a computer where that application has never been present. The Installer is actually a relational database. This database consists o! the Installer package *data..msi+. This package contains in!ormation such as the installation se)uence$ system dependencies$ destination !older paths$ setup properties$ component to !eature relationship$ and overall installation options. This database is never actually changed or written to. Instead$ it uses what is called a Trans!orm !ile *.mst+ to apply customi/ations that you desire$ to trans!orm the database !rom its de!ault state. The Installer doesn0t stop there. It also is used !or post&installation !eatures such as 1etect and Repair$ Add2Remove programs$ Run -rom 'etwork and Install on -irst 3se options. It is also used to give (levated Rights *which is not turned 4' by de!ault+ to an application on %indows 'T so the user doesn0t have to be a member o! the local 'T Administrator group. 4verall$ the Installer technology creates a higher level o! customi/ation than has ever been attempted be!ore. %indows Installer technologies are divided into two parts that work in combination, a client&side installer service *Msie#ec.e#e+ and a package !ile *.msi !ile+. %indows Installer uses the in!ormation contained within a package !ile to install the application. Installation package !ile (ach package *.msi+ !ile contains a relational type database that stores all the instructions and data re)uired to install *and uninstall+ the program across many installation scenarios. -or e#ample$ a package !ile could 1ynamic 5iews template. Powered by 6logger. Page 23 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingbasicsblogspotin/ contain instructions for installing an application when a prior version of the application is already installed. The package file could also contain instructions for installing the software on a computer where that application has never been present. Because the database is relational, changes made to one table are propagated automatically throughout the database. This is a very efficient process for introducing consistent changes into the installation process that simplifies customizing a large application or group of applications. The Windows Installer database tables reflect the general layout of the entire group of applications, including: !vailable features "omponents #elationships between features and components $ecessary registry settings The Windows Installer database %.msi file& consists of multiple interrelated tables that together compose a relational database of the information necessary to install a group of features. The following table describes the groups of related tables: 'roup (escription "ore table group (escribes the fundamental features and components of the application) installer package. *ile table group "ontains the files associated with the installation package. #egistry table group "ontains the registry entries. +ystem table group Tracks the tables and columns of the installation database. ,ocator table group -sed to search the registry, installer configuration data, directory tree, or .ini files for the uni.ue signature of a file. /rogram installation group 0olds properties, bitmaps, shortcuts, and other elements needed for the application installation. Installation procedure group 1anages the tasks performed during the installation by standard actions and custom actions. How do I install only the features I want? The !((,2"!,, !((+2-#"3, and !(43#TI+3 properties can be used to install only a certain number of known features. The following command5line script would be used to install the 6+ports6 and 6$ews6 features of the e7ample.msi package locally on the machine. msie7ec 8i e7ample.msi !((,2"!,9+ports,$ews 8.b (ynamic 4iews template. /owered by Blogger. Page 24 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingbasicsblogspotin/ The following command5line script would advertise the 6+ports6 feature and install the 6$ews6 feature to run from source. 1sie7ec 8i e7ample.msi !(43#TI+39+ports !((+2-#"39$ews 8.b !nother important thing to remember is that feature names are case5sensitive. What is a managed application? !ns: ! managed application is an application where the system administrator e7erts some level of control over the installation and maintenance of the product. 1anaged applications are often used to deploy software to large numbers of users or machines. 1anaged applications are a way for system administrators to allow users to install authorized software in locked5down environments where users generally do not have the rights to install software. !n application is considered managed if it is: Installed or advertised to a user by a member of the !dministrators group. Installed or advertised per5machine by a member of the !dministrators group. !ssigned or published on Windows :;;; and later by an !dministrator. 1arked as managed by another software and deployment management system. The e7act method depends on the management system used, but generally re.uires an administrator<s action. !n installation package cannot declare itself 6managed.6 Whether or not an application is managed is controlled by the system administrator. $ote that 6managed6 is different from 6elevated.6 !n elevated application is an application that can run with system privileges when installing. !ll managed applications are elevated, but applications can be elevated without being managed by means of the !lwaysInstall3levated policy. (ue to its security implications, this policy is disabled by default and re.uires careful consideration before use. What are the differences between a 'deferred' custom action and an 'immediate' custom action? Deferredcustom actions can only be se.uenced between the InstallInitialize and Install*inalize actions in e7ecute se.uence tables. Immediate custom actions, on the other hand, can be se.uenced anywhere within any of the se.uence tables. (eferred custom actions cannot access the installation database. In fact, deferred custom actions have very limited access to the installation session because an installation script can be e7ecuted outside of the installation session that created it. Immediate custom actions have access to the installation database and can read and set installation properties, modify feature and component states, and add temporary columns, rows, and tables among other things. (ynamic 4iews template. /owered by Blogger. Page 25 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingasics!logspot!in/ While both deferred and immediate custom actions can run in the context of the user initiating the installation, only deferred custom actions can run elevated using the system context. Deferred custom actions are not executed immediately. Instead they are scheduled to run later during the execution script. The execution script isn't processed until the InstallExecute, InstallExecuteAgain, or Installinali!e action is run. When should I use a deferred custom action instead of an immediate custom action? Deferred custom actions should be used "hen the custom action must ma#e a change to the system or call another system service. Additionally, only deferred custom actions can run in an elevated context. If your custom action re$uires elevated privileges in order to run, your custom action needs to be mar#ed as deferred. %ote& 'ustom actions mar#ed to run in the system context (msidb'ustomActionTypeIn)cript * msidb'ustomActionType%oImpersonate+ "ill only run in the system context if the installation itself is elevated. Additionally, "hen ma#ing a change to the system by means of a custom action, you should also include a rollback custom action that can undo the change. What are the differences between small, minor, and major updates? A small update is a product update that changes a fe" files or possibly adds some ne" content. A minor update is a product update that ma#es enough changes to "arrant changing the product version for the product, "hereas a ma,or update is a product update "ith a large number of changes that "arrants a change in the product code. This table summari!es "hat changes in each update and the possible distribution vehicles for each. It's sometimes easier to thin# of a small update as a -hotfix- or .uic# ix Engineering (.E+ update, a minor update as a service pac#, and a ma,or update as a product upgrade. )mall and minor updates can be considered almost e$ual in that the only real difference is that a minor update has a change to the /roduct0ersion "hereas a small update does not. The rules that they follo" and application of the patch are the same. Application of small and minor update patches re$uires explicit reinstallations. 1a,or updates are not sub,ect to that limitation and a reinstallation is not re$uired for patch application. Additionally small and minor update patches are limited in the changes that can be made to the feature2component structure for the pac#age. )ignificant changes can be made to the feature2component structure in the scope of a ma,or update. Custom actions Dynamic 0ie"s template. /o"ered by 3logger. Page 26 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingbasicsblogspotin/ Custom actions are actions entirely defined by the user. They can be executable files, dynamic linked libraries, Visual Basic scripts or JavaScript files. They can be scheduled at any time during the installation. Basically, an installation process consists of to se!uences" #nstallation $ser #nterface Se!uence and #nstallation %xecute Se!uence. #n &dvanced #nstaller, these se!uences are located in the Custom &ctions page, under the 'ro(ect )etails tree. #n the User Interface Sequence only immediate custom actions can be used. #t contains a list of Standard &ctions *http"++.blogger.com+blogger.g, blog#)-.//01/223104.24/0345 starting ith Begin and ending ith ExecuteAction. ExecuteAction is the one that triggers the execute se!uence. &t the end of the installation process, the installer returns from the execute se!uence in the $# Se!uence. #t does that in order to execute the actions that may be specified after ExecuteAction. The installation process ends ith the %xit)ialog. The Execute Sequence contains a list of Standard &ctions *http"++.blogger.com+blogger.g,blog#)-.//01/223104.24/0345 that starts ith Begin and ends ith InstallFinalize. #t also can contain all types of custom actions" immediate, deferred, rollback and commit actions. #n &dvanced #nstaller, the %xecute Se!uence standard actions are organi6ed in three categories" 7 Before #nitiali6ation 7 Before 8ile #nstallation 7 Before 8inali6ation #n the 9Before #nitiali6ation9 category only immediate actions can be used. The se!uence that starts ith the InstallInitialize standard action and ends ith InstallFinalize ill be gone through tice. The first time the installer scans all the actions contained by the %xecute Se!uence and it creates the installation script used for the actual install. The second time, based on the installation script, the installer executes all the actions contained by the package only if their conditions ere true hen the script as built. 8or example, it ill start+stop services, it ill rite+modify registries, create shortcuts and it ill install the files on the target machine. :hen the installation script execution is done, the installer returns to the $ser #nterface Se!uence in order to display the exit dialog and+or execute any custom actions that may be placed after the ExecuteAction standard action. &s mentioned above, there are four types of actions" 7 immediate actions 7 deferred actions 7 rollback actions 7 commit actions The immediate actions can be used anyhere in the #nstall $# Se!uence and in the %xecute Se!uence, but for the second one there is a phase here immediate actions can no longer be used. That is hen the installation script is triggered. The immediate actions should not modify the target machine since those changes cannot be rolled back. The deferred actions, can run only during the installation script execution. The deferred actions should be the only ones that makes changes on the local )ynamic Vies template. 'oered by Blogger. Page 27 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingasics!logspot!in/ machine. This is why each deferred action must have a rollback action so that the changes it makes can be undone if the setup fails or is canceled. The rollback actions are used when the application is installed, but something went wrong and the installation must be rolled back. While the installation script is executed, the installer builds a rollback script. After every standard action is executed, the installer adds a rollback command to the rollback script. The commit actions are the opposite of the rollback actions. The commit script is executed after the InstallFinalize standard action when everything ended successfully. Its purpose is to delete the backup files created by the rollback script. For each of the deferred, rollback and commit actions you have an additional option With no impersonation. This is related to the current user!s rights set by the "ser Account #ontrol $only for Windows %ista or above& when running the package. A normal user can run a custom action that re'uires administrator rights only if the (With no impersonation) option is set for it. All path variables can be viewed and modified in the *ath %ariables explorer in the *ath %ariables view. +ou can use path variables in almost any location in Install,hield where you link to source files, such as in the -ialog .ditor, dynamic file links, and the release location. Instead of entering the path variables yourself, you can have Install,hield recommend them whenever you browse to a path. *ath variables are used during the development of your installation pro/ect. These paths do not apply to the target machines where the application is being installed. 0ather, they are used to link to source files for your installation pro/ect. When the pro/ect is built, those links are evaluated and the files they point to will be built into the installation. There are four types of path variables that you can use. .ach type functions somewhat differently from the others. 0egardless of the path variable type you use, the variable name is provided in the same manner throughout Install,hield. Types of *ath %ariables %ariable Type -escription Path Variables Define commonly used paths in a central location so that you do not need to change every source file!s path each time you move the pro/ect or change the directory structure. In the previous example, if you keep all of your application!s source files in various subfolders under #1Work1Files, you could create one variable that points to the Files folder234yFiles5. If you want to include a file that is in #1Work1Files1Images, you enter 3 4yFiles51Images. If you move your files to -1Work1Files, you can go to one place, your variable 34yFiles5. -ynamic %iews template. *owered by 6logger. Page 28 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingasics!logspot!in/ Predefined Path Variables [ms-its:C:Program%20FilesCommon% 20FilesInstallShieldAdminStudioHel0!0"IHelPre#efPathVariables$htm% Predefined ath &ariables are ath &ariables that oint to some of the most 'ommonl( used folders$ )nli*e other t(es of ath &ariables+ these &alues 'annot be edited in InstallShield$ See ,egistr( Path Variables [ms-its:C:Program%20FilesCommon% 20FilesInstallShieldAdminStudioHel0!0"IHel,egPathVariables$htm% -he &alues of registr(- based ath &ariables are deri&ed from the registr( *e(s (ou 'reated$ After 'reating the registr( *e(+ (ou need to set a ath &ariable to this *e($ .n&ironment Variables [ms-its:C:Program%20FilesCommon% 20FilesInstallShieldAdminStudioHel0!0"IHel.n&iroPathVariables$htm% .n&ironment ath &ariables are based on the &alues of (our s(stem/s en&ironment &ariables$ 0ou 'an set an en&ironment ath &ariable to an e1isting en&ironment &ariable$ Standard Path Variables [ms-its:C:Program%20FilesCommon% 20FilesInstallShieldAdminStudioHel0!0"IHelStandardPathVariables$htm% Standard+ or user-defined+ ath &ariables are defined through #(nami' Vie2s temlate$ Po2ered b( 3logger$ Page 29 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingasics!logspot!in/ InstallShield. You can specify a path variable such as <MyFiles> with a value of C:\or!\Files. "hese variables do not rely on any outside sources# such as the re$istry or syste% paths. Standard &ctions & indows Installer installation is run as a se'uence of events# called Standard &ctions. In between the%# you can schedule your own Custo% &ctions (http:))www.blo$$er.co%)blo$$er.$*blo$I+,-../0.1120/3-13./234 . "he standard actions used by &dvanced Installer can be shown by usin$ the "Show Standard Action" button on the toolbar of the 5Custo% &ctions5 pa$e and they are: Standard &ction +escription Begin starts the 6I se'uence 7when the dialo$s are shown8 PrepareDlg 59repare+l$5 dialo$ is shown AppSearch perfor%s the searches in the Search (http:))www.blo$$er.co%)blo$$er.$* blo$I+,-../0.1120/3-13./234 pa$e FindRelatedProducts older or newer versions of the pac!a$e are searched. If an older version is found# its 9roduct Code is placed in the 5:;+9<:+6C"S5 property LaunchConditions evaluates the launch conditions CCPSearch validates that 'ualifyin$ products are installed on a syste% before an up$rade is perfor%ed InstallUISequence +yna%ic =iews te%plate. 9owered by >lo$$er. Page 30 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingasics!logspot!in/ RMCCPSearch validates that qualifying products are installed on a system before an upgrade is performed CostInitialize determines the disk space required by the install process FileCost determines the disk space required by each file in the Files and Folders [http://www.blogger.com/blogger.g? blogI!"##$%#&&'%$("&(#$'() page CostFinalize ends the disk space costing and resolves the folders in the pro*ect MigrateFeatureStates during an upgrade it reads the feature states in the old version and then sets these feature states in the new version. WelcomeDlg +,elcomlg+ dialog is shown ResumeDlg +-esumelg+ dialog is shown MaintenanceWelcomeDlg +.aintenance,elcomelg+ dialog is shown PatchWelcomeDlg +/atch,elcomelg+ dialog is shown ProgressDlg +/rogresslg+ dialog is shown ExecuteAction starts the 01ecute sequence 2when the actual installation is performed3 4tandard 5ction escription Begin starts the 01ecute sequence 2when the actual installation is performed3 AppSearch performs the searches in the 4earch [http://www.blogger.com/blogger.g? blogI!"##$%#&&'%$("&(#$'() page FindRelatedProducts older or newer versions of the package are searched. If an older version is found6 its /roduct 7ode is placed in the +89/-8:7;4+ property LaunchConditions evaluates the launch conditions CCPSearch validates that qualifying products are installed on a system before an upgrade is performed RMCCPSearch validates that qualifying products are installed on a system before an upgrade is performed alidateProductID sets the /roductI property to the full product identifier CostInitialize determines the disk space required by the install process FileCost InstallExecuteSequence Before Initialization ynamic <iews template. /owered by =logger. Page 31 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingbasicsblogspotin/ determines the disk space required by each file in the Files and Folders [http://www.blogger.com/blogger.g? blogID!""#$"%%&$#'!%'"#&'( page. IsolateComponents installs a copy of a component )commonly a shared D**+ into a pri,ate location for use by a specific application )typically an .e-e+. .his isolates the application from other copies of the component that may be installed to a shared location on the computer CostFinalize ends the disk space costing and resol,es the folders in the pro/ect Set!DBCFolders checks for e-isting 0D12 dri,ers on the system and sets the target directory of each new dri,er to the location of an e-isting dri,er MigrateFeatureStates during an upgrade it reads the feature states in the old ,ersion and then sets these feature states in the new ,ersion Installalidate ,erifies that all ,olumes to which cost has been attributed ha,e sufficient space for the installation. It also notifies the user if one or more files to be o,erwritten or remo,ed are currently in use by an acti,e process Remo"eExistingProducts upgrades an older ,ersion of the package if one is found 3tandard 4ction Description InstallInitialize marks the beginning of the sequence of actions which change the system AllocateRegistr#Space ensures that an appropriate amount of free registry space e-ists in the registry. ProcessComponents registers and unregisters components5 their key paths and the component clients Msi$npu%lishAssem%lies unpublishes the assemblies installed by the package. 6uns only during an uninstall Uninstall remo,es components $npu%lishComponents remo,es information about components published by the package. 6uns only during an uninstall $npu%lishFeatures remo,es selection7state and feature7component mapping information from the system registry. 6uns only during an uninstall StopSer"ices stops ser,ices which use 83top8 control operations [http://www.blogger.com/blogger.g? blogID!""#$"%%&$#'!%'"#&'( in the package Before File Installation Dynamic 9iews template. :owered by 1logger. Page 32 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingbasicsblogspotin/ DeleteSer"ices removes services which use "Delete" control operations [http://www.blogger.com/blogger.g? blogID=25595!!"9#2!#59"#$ in the pac%age. $nregisterComPlus removes &'() applications *rom the registr+. ,uns onl+ -uring an uninstall Sel&$nregModules unregisters all mo-ules which use- sel* registration [http://www.blogger.com/blogger.g? blogID=25595!!"9#2!#59"#$ -uring install. ,uns onl+ -uring an uninstall $nregister'#peLi%raries unregisters t+pe libraries *rom the s+stem. ,uns onl+ -uring an uninstall Remo"e!DBC removes the 'D.& -ata sources/ translators an- -rivers. ,uns onl+ -uring an uninstall $nregisterFonts removes registration in*ormation about installe- *onts *rom the s+stem. ,uns onl+ -uring an uninstall Remo"eRegistr#alues removes registr+ entries create- in the ,egistr+ [http://www.blogger.com/blogger.g? blogID=25595!!"9#2!#59"#$ page. ,uns onl+ -uring an uninstall $nregisterClassIn&o manages the removal o* &'( class in*ormation *rom the s+stem registr+. ,uns onl+ -uring an uninstall $nregisterExtensionIn&o manages the removal o* e0tension1relate- in*ormation *rom the s+stem registr+. ,uns onl+ -uring an uninstall $nregisterProgIdIn&o manages the unregistration o* '23 4rogI- in*ormation with the s+stem. ,uns onl+ -uring an uninstall $nregisterMIMEIn&o unregisters (I(31relate- registr+ in*ormation *rom the s+stem. ,uns onl+ -uring an uninstall Remo"eI(Ialues removes I5I *iles or entries create- in the 6iles an- 6ol-ers [http://www.blogger.com/blogger.g? blogID=25595!!"9#2!#59"#$ page. ,uns onl+ -uring an uninstall Remo"eShortcuts removes the shortcuts create- in the 6iles an- 6ol-ers [http://www.blogger.com/blogger.g? blogID=25595!!"9#2!#59"#$ page. ,uns onl+ -uring an uninstall Remo"eEn"ironmentStrings mo-i*ies or removes the environment variables create- in the 3nvironment [http://www.blogger.com/blogger.g? blogID=25595!!"9#2!#59"#$ page. ,uns onl+ -uring an uninstall Remo"eDuplicateFiles removes *iles create- b+ 6ile Duplication [http://www.blogger.com/blogger.g? D+namic 7iews template. 4owere- b+ .logger. Page 33 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingbasicsblogspotin/ blogID=25595!!"9#2!#59"#$ operations. ,uns onl+ -uring an uninstall Remo"eFiles removes the *iles create- in the 6iles an- 6ol-ers [http://www.blogger.com/blogger.g? blogID=25595!!"9#2!#59"#$ page. ,uns onl+ -uring an uninstall Remo"eFolders removes the *ol-ers create- in the 6iles an- 6ol-ers [http://www.blogger.com/blogger.g? blogID=25595!!"9#2!#59"#$ page. ,uns onl+ -uring an uninstall CreateFolders creates the *ol-ers speci*ie- in the 6iles an- 6ol-ers [http://www.blogger.com/blogger.g? blogID=25595!!"9#2!#59"#$ page. Mo"eFiles moves or copies *iles which use 6ile (ove [http://www.blogger.com/blogger.g? blogID=25595!!"9#2!#59"#$ operations 8tan-ar- 9ction Description InstallFiles installs the *iles speci*ie- in the 6iles an- 6ol-ers [http://www.blogger.com/blogger.g? blogID=25595!!"9#2!#59"#$ page PatchFiles patches *iles inclu-e- in the patch. ,uns onl+ -uring a patch installation DuplicateFiles -uplicates the *iles which use 6ile Duplication [http://www.blogger.com/blogger.g? blogID=25595!!"9#2!#59"#$ operations BindImage bin-s each e0ecutable or D22 that must be boun- to the D22s importe- b+ it. :his is not use- b+ pac%ages create- with 9-vance- Installer CreateShortcuts creates the shortcuts speci*ie- in the 6iles an- 6ol-ers [http://www.blogger.com/blogger.g? blogID=25595!!"9#2!#59"#$ page RegisterClassIn&o manages the registration o* &'( class in*ormation with the s+stem RegisterExtensionIn&o manages the registration o* e0tension relate- in*ormation with the s+stem. RegisterProgIdIn&o manages the registration o* '23 4rogI- in*ormation with the s+stem RegisterMIMEIn&o registers (I(31relate- registr+ in*ormation with the s+stem WriteRegistr#alues creates the registr+ values speci*ie- in the ,egistr+ [http://www.blogger.com/blogger.g? blogID=25595!!"9#2!#59"#$ page WriteI(Ialues Before Finalization D+namic 7iews template. 4owere- b+ .logger. Page 34 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingbasicsblogspotin/ creates INI files or entries specified in the Files and Folders [http://www.blogger.com/blogger.g? blogID=255!5""#!$2"$5#$% page WriteEn"ironmentStrings creates or modifies the en&ironment &ariables created in the 'n&ironment [http://www.blogger.com/blogger.g? blogID=255!5""#!$2"$5#$% page RegisterFonts registers fonts mar(ed for registration [http://www.blogger.com/blogger.g? blogID=255!5""#!$2"$5#$% Install!DBC installs )D*+ dri&ers, translators and data so-rces Register'#peLi%rariesregisters t.pe libraries with the s.stem Sel&RegModules registers the mod-les which -se self registration [http://www.blogger.com/blogger.g? blogID=255!5""#!$2"$5#$% RegisterComPlus registers +)/0 applications InstallSer"ices installs ser&ices specified in the 1er&ices [http://www.blogger.com/blogger.g? blogID=255!5""#!$2"$5#$% page StartSer"ices starts ser&ices which -se 21tart2 control operations [http://www.blogger.com/blogger.g? blogID=255!5""#!$2"$5#$% in the pac(age Rollback performs installation rollbac( in case of an error Install installs or remo&es components Commit remo&es rollbac( information Register$ser creates -sers and gro-ps specified in the 3sers and 4ro-ps [http://www.blogger.com/blogger.g? blogID=255!5""#!$2"$5#$% page RegisterProduct registers the prod-ct information with the installer and with 5dd/6emo&e 7rograms. 5lso, it caches the /1I pac(age Pu%lishComponents manages components which need to be p-blished MsiPu%lishAssem%liesp-blishes the assemblies installed b. the pac(age Pu%lishFeatures writes each feat-re8s state into the s.stem registr. Pu%lishProduct manages the ad&ertisement of the prod-ct information with the s.stem. 9his action p-blishes the prod-ct if the prod-ct is in ad&ertise mode or if an. feat-re is being installed or reinstalled InstallIIS manages the elements created in the II1 [http://www.blogger.com/blogger.g? blogID=255!5""#!$2"$5#$% page InstallFinalize r-ns a script that contains all operations spooled since the installation started. 5lso, it mar(s the end of the ':ec-te se;-ence D.namic <iews template. 7owered b. *logger. Page 35 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingasics!logspot!in/ Posted 25th December 2012 by VU3RJY 4 Dynamic Views template Powered by !lo""er #lassic $ %pplication Pac&a"in" !asics Page 36 of 36 Application Packaging Basics & FAQ 8/3/2014 http://applicationpackagingbasicsblogspotin/