Sie sind auf Seite 1von 36

25th December 2012

* What is Application Repackaging?


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/

Das könnte Ihnen auch gefallen