Page 1
IntroductiontoWindowsInstallerXML(WiX)toolset
WhatisWiX?WiXisasetoftoolsthatallowsyoutocreateWindowsInstaller-baseddeploymentpackagesforyourapplication.TheWiXtoolsetisbasedonadeclarativeXMLauthoringmodel.YoucanuseWiXonthecommandlinebyusingtheWiXtoolsorMSBuild.Inaddition,thereisalsoaWiXVisualStudioplug-inthatsupportsVS2005,VS2008,andVS2010.TheWiXtoolsetsupportsbuildingthefollowingtypesofWindowsInstallerfiles:
Installer(.msi)Patches(.msp)MergeModules(.msm)Transforms(.mst)
WiXsupportsabroadspectrumofWindowsInstallerfeatures.Inaddition,WiXalsooffersasetofbuilt-incustomactionsthatcanbeusedandincorporatedinWindowsInstallerpackages.ThecustomactionsareofferedinasetofWiXextensions.SomecommonWiXextensionsincludesupportforInternetInformationSystem(IIS),StructuredQueryLanguage(SQL),the.NETFramework,VisualStudio,andWindowsetc.
Page 2
HowdoesWiXwork?TheWiXsourcecodeiswritteninXMLformatwitha.wxsfileextension.TheWiXtoolsfollowthetraditionalcompileandlinkmodelusedtocreateexecutablesfromsourcecode.Atbuildtime,theWiXsourcefilesarevalidatedagainstthecoreWiXschema,thenprocessedbyapreprocessor,compiler,andlinkertocreatethefinalresult.ThereareasetofWiXtoolsthatcanbeusedtoproducedifferentoutputtypes.ForacompletelistoffiletypesandtoolsinWiX,seetheFileTypesandtheListofToolssections.
Seethefollowingtopicsformoredetailedinformation:
FundamentalToolsandConceptsCreatingInstallationPackageBundlesWorkinginVisualStudioWorkingwithMSBuildHowToGuidesStandardCustomActionsCreatinganInstallationPatchWiXSchemaReferenceDevelopingforWiX
Page 3
WiXsystemrequirementsWiXsupportsboth.NET3.5and4.0andlater.WiX'sMSBuildsupportsrequires.NET3.5,whichisnotinstalledbydefaultonWindows8andWindowsServer2012andlater.Toinstallthe.NET3.5feature,gotoControlPanel,openProgramsandFeatures,andchooseTurnWindowsfeaturesonoroff.Inthelistoffeatures,choose.NETFramework3.5(includes.NET2.0and3.0)andthenchooseOK.
InthenextversionofWiX(v3.11),.NET4.0willberequired;buildingusing.NET3.5willnolongerbesupported.
Page 4
WiXToolsetLicenseTheWiXtoolsetisreleasedundertheMicrosoftReciprocalLicense(MS-RL).AreciprocallicenseisusedtoensurethatotherswhobuildontheeffortoftheWiXcommunitygivebacktotheWiXcommunity.SpecificallythelicensechangesandimprovementstotheWiXtoolsetmustbepublishedusingthesamelicense.
ThefulltextoftheMS-RLlicenseisreproducedbelow.ItcanalsobefoundintheLICENSE.TXTfileincludedwiththesourcecode.
MicrosoftReciprocalLicense(MS-RL)
Thislicensegovernsuseoftheaccompanyingsoftware.Ifyouusethesoftware,youacceptthislicense.Ifyoudonotacceptthelicense,donotusethesoftware.
1. Definitions
Theterms"reproduce,""reproduction,""derivativeworks,"and"distribution"havethesamemeaninghereasunderU.S.copyrightlaw.
A"contribution"istheoriginalsoftware,oranyadditionsorchangestothesoftware.
A"contributor"isanypersonthatdistributesitscontributionunderthislicense.
"Licensedpatents"areacontributor'spatentclaimsthatreaddirectlyonitscontribution.
2. GrantofRights
(A)CopyrightGrant-Subjecttothetermsofthislicense,includingthelicenseconditionsandlimitationsinsection3,eachcontributorgrantsyouanon-exclusive,worldwide,royalty-freecopyrightlicensetoreproduceitscontribution,preparederivativeworksofitscontribution,anddistributeitscontributionoranyderivativeworks
Page 5
thatyoucreate.
(B)PatentGrant-Subjecttothetermsofthislicense,includingthelicenseconditionsandlimitationsinsection3,eachcontributorgrantsyouanon-exclusive,worldwide,royalty-freelicenseunderitslicensedpatentstomake,havemade,use,sell,offerforsale,import,and/orotherwisedisposeofitscontributioninthesoftwareorderivativeworksofthecontributioninthesoftware.
3. ConditionsandLimitations
(A)ReciprocalGrants-Foranyfileyoudistributethatcontainscodefromthesoftware(insourcecodeorbinaryformat),youmustproviderecipientsthesourcecodetothatfilealongwithacopyofthislicense,whichlicensewillgovernthatfile.Youmaylicenseotherfilesthatareentirelyyourownworkanddonotcontaincodefromthesoftwareunderanytermsyouchoose.
(B)NoTrademarkLicense-Thislicensedoesnotgrantyourightstouseanycontributors'name,logo,ortrademarks.
(C)Ifyoubringapatentclaimagainstanycontributoroverpatentsthatyouclaimareinfringedbythesoftware,yourpatentlicensefromsuchcontributortothesoftwareendsautomatically.
(D)Ifyoudistributeanyportionofthesoftware,youmustretainallcopyright,patent,trademark,andattributionnoticesthatarepresentinthesoftware.
(E)Ifyoudistributeanyportionofthesoftwareinsourcecodeform,youmaydosoonlyunderthislicensebyincludingacompletecopyofthislicensewithyourdistribution.Ifyoudistributeanyportionofthesoftwareincompiledorobjectcodeform,youmayonlydosounderalicensethatcomplieswiththislicense.
(F)Thesoftwareislicensed"as-is."Youbeartheriskofusingit.Thecontributorsgivenoexpresswarranties,guaranteesorconditions.Youmayhaveadditionalconsumerrightsunderyourlocallawswhichthislicensecannotchange.Totheextentpermittedunderyourlocallaws,thecontributorsexcludetheimpliedwarrantiesofmerchantability,fitnessforaparticularpurposeandnon-
Page 7
GettingStartedThereareseveraloptionsavailabletogetstartedlearninghowtouseWiX.
Page 8
HowToGuidesThishelpfileincludesasetofHowToGuidesthatexplainhowtoaccomplishcommonWindowsInstallertasksusingWiX.
Page 9
TutorialsWiXTutorialVideoonChannel9
Page 10
CommunityIfyouprefertolearnbyinteractingwiththecommunity,thereisaWiXusersmailinglist.
Page 11
IntegratedDevelopmentEnvironmentIfyouprefertolearnbyusinganintegrateddevelopmentenvironment,thereisanoverviewofWiXeditorsathttp://robmensching.com/blog/posts/2007/11/20/wix-editors.
Page 12
ReverseEngineeringIfyouprefertolearnbyworkingbackwardfromaWindowsInstallerpackageyouhavealreadycreated,youcanruntheWiXdecompiler(Dark)toconvertyourpackageintoWiXauthoringandthenrecompileitusingtheWiXcompiler(Candle)andWiXlinker(Light).
Page 13
ReadingSourceCodeIfyouprefertolearnbyreadingcode,WiXisanopensourceproject,andyoucanlookatthesourcecodebyreviewingtheHowtobeaWiXDevelopertopic.
Page 14
FixaBug,WriteaFeatureIfyouprefertolearnbywritingcode,youcanreviewtheWiXissuetracker.
ForWiXdevelopmentassistance,thereisaWiXdevelopermailinglist.
Page 15
GettingHelpPleaseseehttp://wixtoolset.org/formoreinformationabouttheWiXtoolset.Thissiteincludesthefollowinginformation:
1. LinkstodownloadweeklyreleasesoftheWiXtoolset.2. TheWiXbugdatabasewhereyoucanreportnewbugsorcheckthe
statusofexistingbugs.3. Mailingliststoaskquestions,makesuggestionsordiscusstheWiX
toolsetwithotherusersandtheWiXdevelopers.4. LinkstoblogsmaintainedbytheWiXdevelopers.
Page 16
FileTypesTherearemanyfiletypesinWiXthataregeneratedfromdifferenttoolsinthetoolset.Atthehighestlevel,allinputfilesandintermediatefilesforWiXareXMLfiles.ThefinaloutputisintheformofstandardWindowsInstallerdatabasefiles.
Forexample,tobuildanMSIorMSP,thecompilerprocessesthesourcefiles(.wxsand.wxi)andproducesobjectfiles(.wixobj).Theseobjectsfilesarethenconsumedbythelinker,whichproducesWindowsInstallerdatabasefiles(.msior.msm).ThisisanalogoustotheC++modelofcompilingsourcecodetoobjectfiles,thenlinkingtoproduceexecutables.
Page 17
ListoffiletypesThefollowinglistdescribesthesupportedfiletypesinWiX:
Extension Type Description
.wxi WiXIncludeFile
A.wxifileisanalogousto.hfilesforC++.Therootelementofthisfileis<Include>.Everythingundertherootelementwillbeinsertedinlinewhenthisfileisincludedinanothersourceorincludefile.
.wxl WiXLocalizationFile
A.wxlfilecontainsasetofstringsusedforlocalizingaproductintoaspecifiedculture.Therootelementofthisfileis<WixLocalization>.ThecultureisspecifiedbysettingtheCultureattributeonthe<WixLocalization>element.
.wxs WiXSourceFile
A.wxsfileisanalogoustoa.cppfileforC++.TheRootelementofthisfileis<Wix>.Formoredetail,seeAdditionalInformationbelow.
.wixobj WiXObjectFile
A.wixobjfileiscreatedbythecompilerforeachsourcefilecompiled.The.wixobjfilecontainsoneormoresectionsthat,inturn,containsymbolsandreferencestoothersymbols.Formoredetail,seeAdditionalInformationbelow.
.wixout WiXXMLOutputFile
A.wixoutfileiscreatedbythelinkerwhichrepresentstheresultoflinkingasetofobjectfiles.The.wixoutisanXMLrepresentationofthefinaloutput.
.wixlib WiXLibraryFile
A.wixlibfileisalibraryofsetupfunctionalitythatcanbeeasilysharedacrossdifferentWiX-
Page 18
basedpackagesbyincludingitwhenlinkingthesetuppackage.
.wixpdb WiXDebugFile
A.wixpdbfileiscreatedbythelinkerforeachfinaloutput.Itcontainsthedebugginginformation.
.wixmsp WiXXMLPatchFile
A.wixmspfileistheXMLoutputgeneratedbylinkingobjectfilesinapatchbuild.
.wixmst WiXTransformFile
A.wixmstfileisanXMLrepresentationofthedifferencebetweenapairoffinaloutputsorXMLoutputs.
.msi WindowsInstallerInstallationPackage
Aninstallationpackagefile(.msi)isthebasicunitofinstallationfortheWindowsInstaller.
.msm WindowsInstallerMergeModule
Amergemodulefile(.msm)isusedtosharesetuplogicacrossdifferent.msipackages.Amergemodulecanbecreatedbyonedevelopmentteam,thenmergedintoanotherdevelopmentteam's.msipackage.
.mst WindowsInstallerTransform
Atransformfile(.mst)isusedtoapplychangestoan.msifile.
.pcp WindowsInstallerPatchCreationProcess
Apatchcreationpropertiesfile(.pcp)isusedasaninputtothepatchbuildingtoolsprovidedintheWindowsInstallerSDK.
Page 19
AdditionalInformation
Structureof.wxsfiles
All.wxsfilesarewell-formedXMLdocumentsthatcontainasinglerootelementnamed<Wix/>.TherestofthesourcefilemayormaynotadheretotheWiXschemabeforepreprocessing.However,afterbeingpreprocessedallsourcefilesmustconformtotheWiXschemaortheywillfailtocompile.
Theroot<Wix>elementcancontainatmostoneofthefollowingelementsaschildren:<Product>,<Module>,and<Patch>.However,therecanbeanunboundednumber<Fragment>elementsaschildrenoftheroot<Wix>element.Whenasourcefileiscompiledintoanobjectfile,eachinstanceoftheseelementscreatesanewsectionintheobjectfile.Therefore,thesethreeelementsareoftenreferredtoassectionelements.
Itisimportanttonote,thattherecanbeonlyone<Product>or<Module>or<Patch>sectionelementpersourcefilebecausetheyarecompiledintospecialsectionscalledentrysections.Entrysectionsareusedasstartingpointsinthelinkingprocess.Sections,entrysections,andtheentirelinkingprocessaredescribedingreaterdetaillaterinthisdocument.
ThechildrenofthesectionelementsdefinethecontentsoftheWindowsInstallerdatabase.You’llrecognize<Property>elementsthatmaptoentriesinthePropertytableandahierarchyof<Directory>elementsthatbuilduptheDirectorytable.Mostelementscontainan“Id”attributethatwillactastheprimarykeyfortheresultingrowintheWindowsInstallerdatabase.Inmostcases,the“Id”attributealsodefinesasymbolwhenthesourcefileiscompiledintoanobjectfile.
Symbolsandreferences
Everysymbolinanobjectfileiscomposedoftheelementnameplustheuniqueidentifierfromthe“Id”attribute.Symbolsareimportantbecausetheycanbereferencedbyothersectionsfromanysourcefile.For
Page 20
example,a<Directory>structurecanbedefinedina<Fragment>inonesourcefileanda<Component>canbedefinedunderadifferentsourcefile’s<Fragment>.Bymakingthe<DirectoryRef>elementaparentofthe<Component>anexplicitreferenceiscreatedthatreferencesthesymboldefinedbya<Directory>inthefirstsourcefile.ThelinkeristhenresponsibleforstitchingthesymbolandthereferencetogetherinasingleWindowsInstallerdatabase.Insomecases,implicitreferencesaregeneratedbythecompilerwhileprocessingasourcefile.Theseimplicitreferencesbehaveidenticallytoexplicitreferences.
Inadditiontothesimplereferencesdescribedabove,WiXsupportsspecificcomplexreferences.Complexreferencesareusedincaseswherethelinkermustgenerateextrainformationtolinkthesymbolandreferencetogether.TheperfectexampleofacomplexreferenceisintheWindowsInstaller’sFeature/Componentrelationship.Whena<Component>isreferencedexplicitlybya<Feature>througha<ComponentRef>element,thelinkermusttakethe<Feature>’ssymbolandthe<Component>’ssymbolandaddanentrytotheFeatureComponentstable.
ThisFeature/Componentrelationshipisevenmorecomplexbecausecertainelementsina<Component>,forexample<Shortcut>,havereferencesbacktotheprimaryFeatureassociatedwiththeComponent.Thesereferencesfromachildelementofa<Component>arecalledreversereferencesorsometimesfeaturebacklinks.Processingcomplexreferencesandreversereferencesisprobablythemostdifficultworkthelinkerhastodo.
Structureofthe.wixobjfile
A.wixobjfileiscreatedbythecompilerforeachsourcefilecompiled.The.wixobjfileisanXMLdocumentthatfollowstheobjects.xsdschemadefinedintheWiXproject.Asstatedabovethe.wixobjfilecontainsoneormoresectionsthat,inturn,containsymbolsandreferencestoothersymbols.
Whilethesymbolsandreferencesarearguablythemostimportantpiecesofdatainthe.wixobjfile,theyarerarelythebulkoftheinformation.Instead,most.wixobjfilesarecomposedof<table>,<row>and<field>elementsthatprovidetherawdatatobeplacedintheWindowsInstallerdatabase.Inmanycases,thelinkerwillnotonly
Page 21
processthesymbolsandreferencesbutalsouseandupdatetherawdatafromthe.wixobjfile.Itisinterestingtonotethattheobjectfileschema,objects.xsd,usescamelcasingwherethesourcefileschema,wix.xsd,usesPascalcasing.Thiswasaconsciouschoicetoindicatethattheobjectfilesarenotintendedtobeeditedbytheuser.Infact,allschemasthatdefinedatatobeprocessedonlybytheWiXtoolsusecamelcasing.
Page 22
ListofToolsToviewtheusageinformationofthetools,run/?onthetoolviathecommandline.
Name Description
Candle PreprocessesandcompilesWiXsourcefilesintoobjectfiles(.wixobj).Formoreinformationoncompiling,seeCompiler.Formoreinformationonpreprocessing,seePreprocessor.
Light Linksandbindsoneormore.wixobjfilesandcreatesaWindowsInstallerdatabase(.msior.msm).Whennecessary,LightwillalsocreatecabinetsandembedstreamsintotheWindowsInstallerdatabaseitcreates.Formoreinformationonlinking,seeLinker.
Lit Combinesmultiple.wixobjfilesintolibrariesthatcanbeconsumedbyLight.Formoreinformation,seeLibrarian.
Dark ConvertsaWindowsInstallerdatabaseintoasetofWiXsourcefiles.ThistoolisveryusefulforgettingallyourauthoringintoaWiXsourcefilewhenyouhaveanexistingWindowsInstallerdatabase.However,youwillthenneedtotweakthisfiletoaccomodatedifferentlanguagesandbreakingthingsintofragments.
Heat GeneratesWiXauthoringfromvariousinputformats.Itisusedforharvestingfiles,VisualStudioprojectsandInternetInformationServerwebsites,"harvesting"thesefilesintocomponentsandgeneratingWindowsInstallerXMLSourcefiles(.wxs).HeatisgoodtousewhenyoubeginauthoringyourfirstWindowsInstallerpackageforaproduct.
Insignia Inscribesaninstallerdatabasewithinformationaboutthedigitalcertificatesitsexternalcabsaresignedwith.Formore
Page 23
information,seeInsignia.
Melt Convertsan.msmintoacomponentgroupinaWiXsourcefile.
Torch Performsadifftogenerateatransform(.wixmstor.mst)forXMLoutputs(.wixoutor.wixpdb)or.msifiles.
Smoke Runsvalidationcheckson.msior.msmfiles.
Pyro TakesanXMLoutputpatchfile(.wixmsp)andoneormoreXMLtransformfiles(.wixmst)andproducesan.mspfile.
WixCop EnforcesstandardsonWiXsourcefiles.WixCopcanalsobeusedtoassistinconvertingasetofWiXsourcefilescreatedusinganolderversionofWiXtothelatestversionofWiX.Formoreinformation,seeWixCop.
WixUnit RunsvalidationsonasetofXMLfilesandtheexpectedoutputfile.TakesasetofWiXsourcefilesandanexpectedMSIastheinputandoutputsPass/Fail.
LuxandNit
Authorandrundeclarativeunittestsforcustomactions.Formoreinformation,seeUnit-testingcustomactionswithLux.
Page 24
ResponsefilesAllWiXcommand-linetoolssupportresponsefiles,whicharetextfilesthatcontaincommand-lineswitchesandarguments.AnythingyoucanputonaWiXtoolcommandlinecaninsteadgointoaresponsefile.Responsefilesareusefulwhenyouhavecommandlinesthataretoolongforyourcommandshell.Forexample,youmightwanttogeneratearesponsefilethatcontainscommand-lineswitchesandthefilesthatyouwanttocompilewithcandle.exe:
-nologo-wx1.wxs2.wxs3.wxs
andissueacommandlike:
[email protected]
Specifyaresponsefilewiththe@character,followedimmediatelybythepathnameoftheresponsefile,withnowhitespacein-between.Responsefilescanappearatthebeginning,inthemiddle,orattheendofcommandlinearguments.
Page 25
WiXToolsetDiagramBelowisadiagramshowingtherelationshipofalloftheWiXtoolsandtheoutputthattheygenerate.
Page 26
PreprocessorOftenyouwillneedtoadddifferentpiecesofyoursetupduringbuildtimedependingonmanyfactorssuchastheSKUbeingbuilt.ThisisdonebyusingconditionalstatementsthatwillfilterthexmlbeforeitissenttotheWiXcompiler(candle).Ifthestatementevaluatestotrue,theblockofxmlwillbesenttocandle.Ifthestatementevaluatestofalse,candlewillneverseethatsectionofxml.
TheconditionalstatementsareBooleanexpressionsbasedonenvironmentvariables,variablesdefinedinthexml,literalvalues,andmore.
Example
Let’sstartwithanexample.Sayyouwanttoincludeafileifyou’rebuildingthe“EnterpriseSKU.”Yourbuildusesanenvironmentvariable%MySku%=Enterprisetospecifythissku.
Whenyoubuildtheenterprisesku,thisfilewillbeincludedinthexmlpassedontocandle.Whenyoubuildadifferentsku,thexmlfromEnterpriseFeature.wxiwillbeignored.
<?if$(env.MySku)=Enterprise?><?includeEnterpriseFeature.wxi?><?endif?>
Page 27
IncludeFiles<?include?>Asshownintheexampleabove,filescanbeincludedbyusingtheincludetag.Thefilenamereferencedinthetagwillbeprocessedasifitwerepartofthisfile.
Therootelementoftheincludefilemustbe<Include>.Therearenootherrequirementsbeyondtheexpectedwixschema.Forexample,
<Include><FeatureId='MyFeature'Title='My1stFeature'Level='1'><ComponentRefId='MyComponent'/></Feature></Include>
Page 28
VariablesAnyvariablecanbetestedforitsvalueorsimplyitsexistence.Customvariablescanalsobedefinedinyourxml.
Threetypesofvariablesaresupported:
$(env._NtPostBld)Getstheenvironmentvariable%_NtPostBld%
$(sys.CURRENTDIR)Getsthesystemvariableforthecurrentdirectory
$(var.A)GetsthevariableAthatwasdefinedinthisxml
Thepreprocessorevaluatesvariablesthroughouttheentiredocument,includingin<?if?>expressionsandattributevalues.
EnvironmentVariables
Anyenvironmentvariablecanbereferencedwiththesyntax$(env.VarName).Forexample,ifyouwanttoretrievetheenvironmentvariable%_BuildArch%,youwoulduse$(env._BuildArch).Environmentvariablenamesarecase-insensitive.
SystemVariables
WiXhassomebuilt-invariables.Theyarereferencedwiththesyntax$(sys.VARNAME)andarealwaysinuppercase.
CURRENTDIRThecurrentdirectorywherethebuildprocessisrunning.
SOURCEFILEPATHThefullpathtothefilebeingprocessed.
SOURCEFILEDIRThedirectorycontainingthefilebeingprocessed.
Page 29
BUILDARCHTheplatform(Intel,x64,Intel64,ARM)thispackageiscompiledfor(setbythe-archswitchtoCandle.exeortheInstallerPlatformMSBuildproperty).
NOTE:Allbuilt-indirectoryvariablesare“\”terminated.
Customvariables<?define?>
Ifyouwanttodefinecustomvariables,youcanusethe<?define?>statement.Youcanalsodefinevariablesonthecommandlineusingcandle.exeusingthe-dswitch.Later,thevariablesarereferredtointhe<?if?>statementswiththesyntax$(var.VarName).Variablenamesarecase-sensitive.
Howtodefinetheexistenceofavariable:<?defineMyVariable?>
Howtodefinethevalueofavariable(note:quotesarerequiredifthevalueortheexpansionofothervariablesinthevaluecontainspaces):<?defineMyVariable=“HelloWorld”?><?defineMyVariable=“$(var.otherVariableContainingSpaces)”?>
Therightsideofthedefinitioncanalsorefertoanothervariable:<?defineMyVariable=$(var.BuildPath)\x86\bin\?>
Howtoundefineavariable:<?undefMyVariable?>
Todefinevariablesonthecommandline,youcantypeacommandsimilartothefollowing:
candle.exe-dMyVariable="HelloWorld"...
Youcanrefertovariablesinyoursourcethataredefinedonlyonthecommandline,butcandle.exewillerrwhenpreprocessingyoursourcecodeifyoudonotdefinethosevariablesonthecommandline.
Page 30
ConditionalStatementsThereareseveralconditionalstatements,theyinclude:
<?if?><?ifdef?><?ifndef?><?else?><?elseif?><?endif?>
Thepurposeoftheconditionalstatementistoallowyoutoincludeorexcludeasegmentofxmlatbuildtime.Iftheexpressionevaluatestotrue,itwillbeincluded.Ifitevaluatestofalse,itwillbeignored.
Theconditionalstatementsalwaysbeginwitheitherthe<?if?>,<?ifdef?>,or<?ifndef?>tags.Theyarefollowedbyanxmlblock,anoptional<?else?>or<?elseif?>tag,andmustendwithan<?endif?>tag.
Expressions(usedin<?if?>and<?elseif?>)
Forexample:<?if[expression]?>
Theexpressionfoundinsidethe<?if?>and<?elseif?>tagsisaBooleanexpression.Itadherestoasimplegrammarthatfollowstheserules:
TheexpressionisevaluatedlefttorightExpressionsarecase-sensitivewiththefollowingexceptions:
EnvironmentalvariablenamesThesekeywords:and,or,notThe~=operatoriscase-insensitive.
Allvariablesmustusethe$()syntaxorelsetheywillbeconsideredaliteralvalue.Ifyouwanttousealiteral$(,escapethedollarsignwithasecondone.Forexample,$$(Variablescanbecomparedtoaliteraloranothervariable
Page 31
Comparisonswith=,!=,and~=arestringcomparisons.Comparisonswithinequalityoperators(<,<=,>,>=)mustbedoneonintegers.Ifthevariabledoesn'texist,evaluationwillfailandanerrorwillberaised.
Theoperatorprecedenceisasfollows.Notethat“and”and“or”havethesameprecedence:
""(),$()<,>,<=,>=,=,!=,~=NotAnd,Or
Nestedparenthesisareallowed.Literalscanbesurroundedbyquotes,althoughquotesarenotrequired.Quotes,leading,andtrailingwhitespacearestrippedoffliteralvalues.Invalidexpressionswillcauseanexceptiontobethrown.
Variables(usedin<ifdef?>and<ifndef?>)
Forexample:<?ifdef[variable]?>
For<ifdef?>,ifthevariablehasbeendefined,thisstatementwillbetrue.<ifndef?>worksintheexactoppositeway.
MoreExamples
Notethattheseexampleswillactuallyeachbeano-opbecausetherearen’tanytagsbetweentheifandendiftags.
<?definemyValue="3"?><?definesystem32=$(env.windir)\system32?><?defineB="goodvar"?><?defineC=3?><?defineIExist?>
<?if$(var.Iexist)?><?endif?><!--true-->
Page 32
<?if$(var.myValue)=6?><?endif?><!--false--><?if$(var.myValue)!=3?><?endif?><!--false--><?ifnot"x"="y"?><?endif?><!--true--><?if$(env.systemdrive)=a?><?endif?><!--false--><?if3<$(var.myValue)?><?endif?><!--false--><?if$(var.B)="goodVAR"?><?endif?><!--false--><?if$(var.A)andnot$(env.MyEnvVariable)?><?endif?><!--false--><?if$(var.A)Or($(var.B)And$(var.myValue)>=3)?><?endif?><!--true--><?ifdefIExist?><!--true--><?else?><!--false--><?endif?>
Page 33
ErrorsandWarningsYoucanusethepreprocessortoshowmeaningfulerrorandwarningmessagesusing,<?errorerror-message?>and<?warningwarning-message?>.Whenoneofthesepreprocessorinstructionsisencounteredthepreprocessorwilleitherdisplayanerrorandstopthecompileordisplayawarningandcontinue.
Anexample:
<?ifndefRequiredVariable?><?errorRequiredVariablemustbedefined?><?endif?>
Page 34
IterationStatementsThereisasingleiterationstatement,<?foreachvariable-nameinsemi-colon-delimited-list?><?endforeach?>.Whenthisoccursthepreprocessorwill
createaprivatecopyofthevariablecontextsetthevariableintheforeachstatementtoaniterationonthesemicolondelimitedlistgenerateafragmentwiththevariablesubstituted
Theeffectofthisprocessisthatthefragmentisusedasatemplatebythepreprocessorinordertogenerateaseriesoffragments.Thevariablenameinthe?foreachstatementcanbeprecededby"var.".Whenavariableisusedinsidethetextofthefragment,itmustbeprecededby"var."
Anfewexamples:
<?foreachLCIDin1033;1041;1055?><FragmentId='Fragment.$(var.LCID)'><DirectoryRefId='TARGETDIR'><ComponentId='MyComponent.$(var.LCID)'/></DirectoryRef></Fragment><?endforeach?>
or
<?defineLcidList=1033;1041;1055?><?foreachLCIDin$(var.LcidList)?><FragmentId='Fragment.$(var.LCID)'><DirectoryRefId='TARGETDIR'><ComponentId='MyComponent.$(var.LCID)'/></DirectoryRef></Fragment><?endforeach?>
Page 35
or
filename:ExtentOfLocalization.wxi<Include><?defineLcidList=1033;1041;1055?></Include>
and
<?includeExtentOfLocalization.wxi?><?foreachLCIDin$(var.LcidList)?><FragmentId='Fragment.$(var.LCID)'><DirectoryRefId='TARGETDIR'><ComponentId='MyComponent.$(var.LCID)'/></DirectoryRef></Fragment><?endforeach?>
AnalternativetotheforeachprocesswouldbetowritethetemplateWiXfragmentintoaseparatefileandhaveanotherprocessgeneratetheauthoringthatwillbepassedtoWiX.Thegreatestmeritofthisalternativeisthatit'seasiertodebug.
Page 36
EscapingThepreprocessortreatsthe$characterinaspecialwayifitisfollowedbya$or(.Ifyouwanttousealiteral$$,use$$$$instead.Everytwo$characterswillbereplacedwithone.Forexample,$$$$$willbereplacedwith$$$.
Page 37
FunctionsThepreprocessorsupportsthefollowingfunctions:
$(fun.AutoVersion(x.y))Getsanautogeneratedversionnumberusingthesameschemeas.NETAssemblyVersionattribute.Theparametersx.yspecifythemajorandminorverionnumber,thebuildissettothenumberofdayssince1/1/2000andrevisiontothenumberofsecondssincemidnightdividedby2.BothvaluesarecalculatedusingUTC.
Page 38
ExtensionsWiXhassupportforpreprocessorextensionsviathePreprocessorExtensionclass.ThePreprocessorExtensioncanprovidecallbackswithcontextatforeachinitialization,variableevaluation,functiondefinitions,andthelastcallbeforeinvokingthecompiler(forfullcustompreprocessing).
Page 39
CompilerTheWindowsInstallerXMLcompilerisexposedbycandle.exe.Candleisresponsibleforpreprocessingtheinput.wxsfilesintovalidwell-formedXMLdocumentsagainsttheWiXschema,wix.xsd.Then,eachpost-processedsourcefileiscompiledintoa.wixobjfile.
Thecompilationprocessisrelativelystraightforward.TheWiXschemalendsitselftoasimplerecursivedescentparser.Thecompilerprocesseseachelementinturncreatingnewsymbols,calculatingthenecessaryreferencesandgeneratingtherawdataforthe.wixobjfile.
Page 40
Linker(light)TheWindowsInstallerXMLlinkerisexposedbylight.exe.Lightisresponsibleforprocessingoneormore.wixobjfiles,retrievingmetadatafromvariousexternalfilesandcreatingaWindowsInstallerdatabase(MSIorMSM).Whennecessary,lightwillalsocreatecabinetsandembedstreamsinthecreatedWindowsInstallerdatabase.
Thelinkerbeginsbysearchingthesetofobjectfilesprovidedonthecommandlinetofindtheentrysection.Ifmorethanoneentrysectionisfound,lightfailswithanerror.ThisfailureisnecessarybecausetheentrysectiondefineswhattypeofWindowsInstallerdatabaseisbeingcreated,aMSIorMSM.Itisnotpossibletocreatetwodatabasesfromasinglelinkoperation.
Whilethelinkerwasdeterminingtheentrysection,thesymbolsdefinedineachobjectfilearestoredinasymboltable.Aftertheentrysectionisfound,thelinkerattemptstoresolveallofthereferencesinthesectionbyfindingsymbolsinthesymboltable.Whenasymbolisfoundinadifferentsection,thelinkerrecursivelyattemptstoresolvereferencesinthenewsection.Thisprocessofgatheringthesectionsnecessarytoresolveallofthereferencescontinuesuntilallreferencesaresatisfied.Ifasymbolcannotbefoundinanyoftheprovidedobjectfiles,thelinkerabortsprocessingwithanerrorindicatingtheundefinedsymbol.
Afterallofthesectionshavebeenfound,complexandreversereferencesareprocessed.ThisprocessingiswhereComponentsandMergeModulesarehookedtotheirparentFeaturesor,inthecaseofMergeModules,ComponentsareaddedtotheModuleComponentstable.ThereversereferenceprocessingaddstheappropriateFeatureidentifiertothenecessaryfieldsforelementslike,Shortcut,Class,andTypeLib.
Onceallofthereferencesareresolved,thelinkerprocessesalloftherowsretrievingthelanguage,version,andhashforreferencedfiles,calculatingthemedialayout,andincludingthenecessarystandardactionstoensureasuccessfulinstallationsequence.Thispartoftheprocessingtypicallyendsupgeneratingadditionalrowsthatgetaddedassociatedwiththeentrysectiontoensuretheyareincludedinthefinal
Page 41
WindowsInstallerdatabase.
Finally,lightworksthroughthemechanicsofgeneratingIDTfilesandimportingthemintotheWindowsInstallerdatabase.Afterthedatabaseisfullycreated,thefinalpostprocessingisdonetomergeinanyMergeModulesandcreateacabinetifnecessary.TheresultisafullyfunctionalWindowsInstallerdatabase.
Page 42
UsageInformation
light.exe[-?][-bbasePath][-nologo][-outoutputFile]objectFile[objectFile...][@responseFile]
Lightsupportsthefollowingcommandlineparameters:
Switch Meaning
-ai Allowidenticalrows;identicalrowswillbetreatedasawarning.
-au Allowunresolvedreferences;thiswillcauseinvalidoutputtobecreated.
-b<path> Specifyabasepathtolocateallfiles;thedefaultvalueisthecurrentworkingdirectory.
-bcgg Usebackwardscompatibleguidgenerationalgorithm(rarelyneeded).
-bf Bindfilesintoawixout;thisswitchisonlyvalidwhenalsoprovidingthe-xooption.
-binder<classname>
Specifyaspecificcustombindertouseprovidedbyanextension.
-cc Specifyapathtocachebuiltcabinetfiles;thepathwillnotbedeletedafterlinking.
-ct<N> Specifythenumberofthreadstousewhencreatingcabinets;thedefaultisthe%NUMBER_OF_PROCESSORS%environmentvariable.
Page 43
-cultures:<cultures>
Specifiesasemicolonorcommadelimitedlistoflocalizedstringculturestoloadfrom.wxlfilesandlibraries.Precedenceofculturesisfromlefttoright.FormoreinformationseeSpecifyingculturestobuild.
-cub Providea.cubfilecontainingadditionalinternalconsistencyevaluators(ICEs)torun.
-d<name>=<value>
DefineaWiXvariable.
-dcl:level Setthedefaultcabinetcompressionlevel.Possiblevaluesarelow,medium,high,none,andmszip(default).
-dut Dropunrealtablesfromtheoutputimage.
-eav Exactassemblyversions.Ifthisoptionisnotspecified,theassemblyversionispaddedwithzerosincertaincasestoworkaroundabugthatexistsintheinitialreleaseofthe.NETFramework1.1.Thisbugwassubsequentlyfixedinthe.NETFramework1.1SP1.Usethisoptionifyourequirenon-paddedassemblyversionsintheMsiAssemblyNametable(orinrelevantbindvariables),anddonotmindifyourMSIisincompatiblewiththeinitialreleaseofthe.NETFramework1.1.Formoreinformation,seethisblogpost.
Notethatwhenusingthisoption,yoursetupwillstillbecompatiblewiththe.NETFramework1.0RTM,.NETFramework1.1SP1,.NETFramework2.0,andlaterversionsofthe.NETFramework.
ThispropertyisavailablestartingwithWiXv3.5.
Page 44
-ext Specifyanextensionassembly.
-fv AddaFileVersionattributetoeachassemblyintheMsiAssemblyNametable(rarelyneeded).
-ice:<ICE> Specifyaspecificinternalconsistencyevaluator(ICE)torun.
-loc<loc.wxl> Providea.wxlfiletoreadlocalizationstringsfrom.
-nologo SkipprintingLightlogoinformation.
-notidy PreventLightfromdeletingtemporaryfilesafterlinkingiscomplete(usefulfordebugging).
-O1 Optimizesmartcabbingforsmallestcabinets(deprecated).
-O2 Optimizesmartcabbingforfasterinstalltime(deprecated).
-out Specifyanoutputfile;bydefault,Lightwillwritetothecurrentworkingdirectory.
-pdbout<output.wixpdb>
Savethewixpdbtoaspecificfile.Thedefaultisthesamenameastheoutputwiththewixpdbextension.
-pedantic Displaypedanticoutputmessages.
-reusecab Reusecabinetsfromthecabinetcacheinsteadofrebuildingcabinets.
-sa Suppressassemblies:donotgetassemblynameinformationforassemblies.
Page 45
-sacl SuppressresettingACLs(usefulwhenlayingoutanimagetoanetworkshare).
-sadmin SuppressaddingdefaultAdminsequenceactions.
-sadv SuppressaddingdefaultAdvtsequenceactions.
-sloc Suppresslocalization.
-sice:<ICE> Suppressrunninginternalconsistencyevaluators(ICEs)withspecificIDs.
-sma SuppressprocessingthedataintheMsiAssemblytable.
-sf Suppressfiles:donotgetanyfileinformation;thisswitchisequivalenttothecombinationofthe-saand-shswitches.
-sh Suppressfileinformation:donotgethash,version,languageandotherfileproperties.
-sl Suppresslayoutcreation.
-spdb Suppressoutputtingthewixpdb.
-ss Suppressschemavalidationfordocuments;thisswitchprovidesaperformanceboostduringlinking.
-sts SuppresstaggingsectionIdattributeonrows.
-sui SuppressaddingdefaultUIsequenceactions.
-sv Suppressintermediatefileversionmismatchchecking.
Page 46
-sval SuppressMSI/MSMvalidation.
-sw<N> SuppresswarningswithspecificmessageIDs.
-swall Suppressallwarnings(deprecated).
-usf<output.xml>
Specifyanunreferencedsymbolsfile.
-v Generateverboseoutput.
-wx<N> Treatwarningsaserrors.
-wxall Treatallwarningsaserrors(deprecated).
-xo GenerateXMLoutputinsteadofanMSI.
-? DisplayLighthelpinformation.
Page 47
BinderVariables
StandardBinderVariables
Somepropertiesarenotavailableuntilthelinkerisabouttogenerate,orbind,thefinaloutput.Thesevariablesarecalledbindervariablesandsupportedbindervariablesarelistedbelow.
AllVersionedFiles
Thefollowingstandardbindervariablesareavailableforallversionedbinaries.
Variablename Exampleusage Examplevalue
bind.fileLanguage.FileID !(bind.fileLanguage.MyFile) 1033
bind.fileVersion.FileID !(bind.fileVersion.MyFile) 1.0.0.0
Assemblies
Thefollowingstandardbindervariablesareavailableforallmanagedandnativeassemblies(exceptwherenoted),wheretheFile/@Assemblyattributeissetto".net"or"win32".
Variablename Exampleusage
bind.assemblyCulture.FileID(managedonly)
!(bind.assemblyCulture.MyAssembly)
bind.assemblyFileVersion.FileID !(bind.assemblyFileVersion.MyAssembly)
bind.assemblyFullName.FileID !(bind.assemblyFullName.MyAssembly)
Page 48
(managedonly)
bind.assemblyFullNamePreservedCase.FileID(managedonly)
!(bind.assemblyFullNamePreservedCase.MyAssembly)
bind.assemblyName.FileID !(bind.assemblyName.MyAssembly)
bind.assemblyProcessorArchitecture.FileID !(bind.assemblyProcessorArchitecture.MyAssembly)
bind.assemblyPublicKeyToken.FileID !(bind.assemblyPublicKeyToken.MyAssembly)
bind.assemblyPublicKeyTokenPreservedCase.FileID(managedonly)
!(bind.assemblyPublicKeyTokenPreservedCase.MyAssembly)
bind.assemblyType.FileID(nativeonly)
!(bind.assemblyType.MyAssembly)
bind.assemblyVersion.FileID !(bind.assemblyVersion.MyAssembly)
Properties
YoucanalsoreferencepropertyvaluesfromthePropertytableatbindtime;however,youcannotreferencepropertiesasbindervariableswithin
Page 49
otherproperties,includingtheattributesontheProductelement-manyofwhicharecompiledintothePropertytable.Youcanreferenceotherbindervariableslikefileinformationaboveinproperties,orevenlocalizationandcustombindervariablesdocumentedbelow.
SpecializationsforeachfieldoftheProductVersionpropertyarealsoprovidedasshownbelow.IfyouhavedefinedpropertieslikeProductVersion.Majorinyourpackageauthoringtheywillnotbeoverwritten,butwillbeusedinsteadoftheautomaticbindervariableswiththesamename.
Variablename Exampleusage
bind.property.Property !(bind.property.ProductVersion)
bind.property.ProductVersion.Major !(bind.property.ProductVersion.Major)
bind.property.ProductVersion.Minor !(bind.property.ProductVersion.Minor)
bind.property.ProductVersion.Build !(bind.property.ProductVersion.Build)
bind.property.ProductVersion.Revision !(bind.property.ProductVersion.Revision)
PackageProperties
Youcanreferencethefollowingpropertiesfrompackagesinyourbundle.Thisallowsdeveloperstousepropertyvaluesalreadydefinedintheirpackagestosetattributesintheirbundle.
Variablename Exampleusage
bind.packageDescription.PackageID !(bind.packageDescription.MyProduct)
Page 50
bind.packageLanguage.PackageID !(bind.packageLanguage.MyProduct)
bind.packageManufacturer.PackageID !(bind.packageManufacturer.MyProduct)
bind.packageName.PackageID !(bind.packageName.MyProduct)
bind.packageVersion.PackageID !(bind.packageVersion.MyProduct)
LocalizationVariables
VariablescanbepassedinbeforebindingtheoutputfilefromaWiXlocalizationfile,or.wxlfile.Thisprocessallowsthedevelopertolinkoneormore.wixobjfilestogetherwithdiferent.wxlfilestoproducedifferentlocalizedpackages.
Localizationvariablesareinthefollowingformat:
!(loc.VariableName)
CustomBinderVariables
YoucancreateyourownbindervariablesusingtheWixVariableelementorbysimplytypingyourownvariablenameinthefollowingformat:
!(bind.VariableName)
Custombindervariablesallowyoutousethesame.wixobjfilesbutspecifydifferentvalueswhenlinking,similartohowlocalizationvariablesareused.Youmightusebindervariablesfordifferentbuilds,likevaryingthetargetprocessorarchitecture.
Page 51
LibraryTool(lit)LitistheWiXlibrarycreationtool.Itcanbeusedtocombinemultiple.wixobjfilesintolibrariesthatcanbeconsumedbylight.
Page 52
UsageInformation
lit.exe[-?][-nologo][-outlibraryFile]objectFile[objectFile...][@responseFile]
Litsupportsthefollowingcommandlineparameters:
Switch Meaning
-b Specifyabasepathtolocateallfiles;thedefaultvalueisthecurrentworkingdirectory.
-bf Bindfilesintothelibraryfile.
-ext<extension>
Specifyanextensionassembly.
-loc<loc.wxl>
Providea.wxlfiletoreadlocalizationstringsfrom.
-nologo SkipprintingLitlogoinformation.
-out Specifyanoutputfile;bydefault,Litwillwritetothecurrentworkingdirectory.
-pedantic Showpedanticmessages.
-ss Suppressschemavalidationfordocuments;thisswitchprovidesaperformanceboostduringlinking.
-sv Suppressintermediatefileversionmismatchchecking.
-sw<N> SuppresswarningswithspecificmessageIDs.For
Page 53
example,-sw1011-sw1012.
-swall Suppressallwarnings(deprecated).
-v Generateverboseoutput
-wx<N> Treatwarningsaserrors.Forexample,-wx1011-wx1012.
-wxall Treatallwarningsaserrors(deprecated).
-? DisplayLithelpinformation
Page 54
HarvestTool(Heat)GeneratesWiXauthoringfromvariousinputformats.
Everytimeheatisrunitregeneratestheoutputfileandanychangesarelost.
Page 55
UsageInformation
heat.exe[-?]harvestType<harvesterarguments>-outsourceFile.wxs
Heatsupportstheharvestingtypes:
HarvestType Meaning
dir Harvestadirectory.
file Harvestafile.
project HarvestoutputsofaVisualStudioproject.
website HarvestanIISwebsite.
perf Harvestperformancecountersfromacategory.
reg Harvestregistyinformationfromaregfile..
Heatsupportsthefollowingcommandlineparameters:
Switch Meaning
-ag Autogeneratecomponentguidsatcompiletime,e.g.setGuid="*".
-cg<ComponentGroupName> Componentgroupname(cannotcontainspacese.g-cgMyComponentGroup).
-configuration Configurationtosetwhenharvestingtheproject.
Page 56
-directoryid Overriddendirectoryidforgenerateddirectoryelements.
-dr<DirectoryName> Directoryreferencetorootdirectories(cannotcontainsspacese.g.-drMyAppDirRef).
-ext<extension> Extensionassemblyor"class,assembly".
-generate Specifywhatelementstogenerate,oneof:components,container,payloadgroup,layout(defaultiscomponents).
-gg Generateguidsnow.Allcomponentsaregivenaguidwhenheatisrun.
-g1 Generatecomponentguidswithoutcurlybraces.
-ke Keepemptydirectories.
-nologo Skipprintingheatlogoinformation.
-out Specifyoutputfile(default:writetocurrentdirectory).
-platform Platformtosetwhenharvestingtheproject.
-pog:<group> SpecifyoutputgroupofVisualStudioproject,oneof:Binaries,Symbols,Documents,Satellites,Sources,Content.
Binaries-primaryoutputoftheproject,e.g.theassemblyexeordll.
Page 57
Symbols-debugsymbolfiles,e.g.pdb.Documents-documentationfiles.Satellites-thelocalizedresourceassemblies.Sources-sourcefiles.Content-contentfiles.
Thisoptionmayberepeatedformultipleoutputgroups;e.g.-pog:Binaries-pog:Content.
-projectname Overriddenprojectnametouseinvariables.
-scom SuppressCOMelements.
-sfrag Suppressgenerationoffragmentsfordirectoriesandcomponents.
-srd Suppressharvestingtherootdirectoryasanelement.
-sreg Suppressregistryharvesting.
-suid Suppressuniqueidentifiersforfiles,components,&directories.
-svb6 SuppressVB6COMregistrationentries.WhenregisteringaCOMcomponentcreatedinVB6itaddsregistryentriesthatarepartoftheVB6runtimecomponent.ThisflagisrecommendforVB6componentstoavoidbreakingtheVB6runtimeonuninstall.
Thefollowingvaluesareexcluded:
Page 58
-CLSID\{D5DE8D20-5BB8-11D1-A1E3-00A0C90F2731}-Typelib\{EA544A21-C82D-11D1-A3E4-00A0C90AEA82}-Typelib\{000204EF-0000-0000-C000-000000000046}-AnyInterfacesthatreferencethesetwotypelibraries
-sw<N> SuppressallwarningsoraspecificmessageID,e.g.-sw1011-sw1012.
-swall Suppressallwarnings(deprecated).
-t<xsl> TransformharvestedoutputwithXSLfile.
-indent<n> Indentationmultiple(overridesdefaultof4).
-template<template> Usetemplate,oneof:fragment,module,product.Default:fragment.
-v Verboseoutput.
-var<VariableName> SubstituteFile/@Source="SourceDir"withapreprocessororawixvariable(e.g.-varvar.MySourcewillbecomeFile/@Source="$(var.MySource)\myfile.txt"and-varwix.MySourcewillbecomeFile/@Source="!(wix.MySource)\myfile.txt".
-wixvar Generatebindervariablesinsteadofpreprocessorvariables.
Page 59
-wx[N] TreatallwarningsoraspecificmessageIDasanerror.e.g.-wx1011-wx1012.
-wxall Treatallwarningsaserrors(deprecated).
-?|-help Displayheathelpinformation.
Page 60
Commandlineexamples
Harvestadirectory
heatdir".\MyFiles"-gg-sfrag-template:fragment-outdirectory.wxs
Thiswillharvestthesubfolder"MyFiles"asasinglefragmenttothefiledirectory.wxs.Itwillgenerateguidsforallthefilesastheyarefound.
Harvestafile
heatfile".\MyFiles\File.dll"-ag-template:fragment-outfile.wxs
Thiswillharvestthefile"File.dll"asasinglefragmenttothefilefile.wxs.Thecomponentguidwillbesetto"*".
HarvestaVisualStudioproject
heatproject"MyProject.csproj"-pog:Binaries-ag-template:fragment-outproject.wxs
ThiswillharvestthebinaryoutputfilesfromtheVisualStudioproject"MyProject.csproj"asasinglefragmenttothefileproject.wxs.Thecomponentguidwillbesetto"*".
HarvestaWebsite
heatwebsite"DefaultWebSite"-template:fragment-outwebsite.wxs
Thiswillharvestthewebsite"DefaultWebSite"asasinglefragmenttothefilewebsite.wxs.
HarvestaVB6COMcomponent
Page 61
heatfile".\MyFiles\VB6File.dll"-ag-template:fragment-svb6-outvb6file.wxs
ThiswillharvesttheVB6COMcomponent"VB6File.dll"asasinglefragmenttothefilevb6file.wxsandsuppresstheVB6runtimespecificregistyentries.
Harvestperformancecounters
heatperf"MyCategory"-outperf.wxs
Thiswillharvestalltheperformancecountersfromthecategory"MyCategory".
Harvestaregistryfile
heatregregistry.reg-outreg.wxs
Thiswillharvestalltheregistryinformationfromthefileregistry.reg.Theregistryfilecanbeeitherastandard"WindowsRegistryEditorVersion5.00"reigstryfileoralegacyWin9.x/NT4(REGEDIT4)reigstryfile.
Page 62
InsigniaInsigniaisatoolusedforinscribinganMSIwiththedigitalsignaturesthatitsexternalCABsaresignedwith.
TosignyourexternalcabswithInsignia,firstbuildyourMSInormally,andsignyourcabsmanually.ThencallInsigniawiththepathtoyourMSI-InsigniawillupdateyourMSIwiththedigitalsignatureinformationofitsassociatedexternalcabs.Thefilewillbeupdatedin-place.ThensignyourMSI.Thiswillallowwindowsinstallertoverify,atinstall-time,thattheexternalcabshaven'tchangedsinceyoubuiltthem.Forexample:
insignia-imsetup.msi
IfyouuseMSBuild,aneasiermethodfordoingthisexists.Inyour.wixprojfile,setthe"SignOutput"propertyto"true".Thenoverridethe"SignCabs"target,usingthe"SignCabs"propertyasalistofcabstosign,tosigntheexternalcabs.Here'sanexamplesigningthosecabsusingsigntool.exe:
<TargetName="SignCabs"><ExecCommand="Signtool.exesign/a"%(SignCabs.FullPath)""/></Target>
Finally,overridethe"SignMsi"target.Here'sasimilarexample,alsousingsigntool.exe.
<TargetName="SignMsi"><ExecCommand="signtool.exesign/a"%(SignMsi.FullPath)""/></Target>
Thiswillcausethebuildprocess,afterlinkingtheMSI,tosignanyexternalcabs,inscribeyourMSIwiththedigitalsignaturesofthosecabs,andthensigntheMSI,allattheappropriatetimesduringthebuildprocess.
Insigniacanalsobeusedtodetachandre-attachtheburnenginefroma
Page 63
bundle,sothatitcanbesigned.Forexample:
insignia-ibbundle.exe-oengine.exe...signengine.exeinsignia-abengine.exebundle.exe-obundle.exe...signbundle.exe
Again,thereisaneasiermethodwithMSBuild.Setthe"SignOutput"propertyto"true",thenoverridethe"SignBundleEngine"and"SignBundle"targets.Forexample:
<TargetName="SignBundleEngine"><ExecCommand="Signtool.exesign/a"@(SignBundleEngine)""/></Target><TargetName="SignBundle"><ExecCommand="Signtool.exesign/a"@(SignBundle)""/></Target>
Page 64
WixCopWixCopservestwomainpurposes:
ToupgradeWiXauthoringtothecurrentschemaToformatWiXauthoringaccordingtoasetofcommonformatting
WixCop'scommand-linesyntaxis:
WixCop.exe[options]sourceFile[sourceFile...]
WixCoptakesanynumberofWiXsourcefilesascommand-linearguments.Wildcardsarepermitted.WixCopsupportsresponsefilescontainingoptionsandsourcefiles,using@responseFilesyntax.
WixCopreturnsthefollowingexitcodes:
0,whennoerrorsarereported.1,whenafatalerroroccurs.2,whenWixCopviolationsoccur.
ThefollowingtabledescribestheswitchesthatWixCopsupports.
WixCopswitch
Description
-? Showhelp.-nologo Don'tshowtheWixCopbanner.-f Fixerrorsencounteredinsourcefiles.Thisswitchtakes
effectonlyforsourcefilesthatarewritable.-s Lookforsourcefilesinsubdirectories.-indent:n Overridesthedefaultnumberofspacesperindentation
level(4)tothenumbernyouspecify.-set1filename
Loadsaprimarysettingsfile(seebelow).Notethattherearenocharactersseparating-set1andthesettingsfilename.
-set2filename
Loadsanalternatesettingsfilethatoverridessomeorallofthesettingsintheprimarysettingsfile.Notethatthere
Page 65
arenocharactersseparating-set2andthesettingsfilename.
WixCopsettingsfiles
WixCopsupportstwosettingsfiles.Generally,theprimarysettingsfileisyour“global”settingsandthealternatesettingsfileletsyouoverridetheglobalsettingsforaparticularproject.
SettingsfilesareXMLwiththefollowingstructure:
<Settings><IgnoreErrors><TestId="testId"/></IgnoreErrors><ErrorsAsWarnings><TestId="testId"/></ErrorsAsWarnings><ExemptFiles><FileName="foo.wxs"/></ExemptFiles></Settings>
TheIgnoreErrorselementliststestIDsthatshouldbeignored.TheErrorsAsWarningselementliststestIDsthatshouldbedemotedfromerrorstowarnings.TheExemptFileselementlistsfilesthatshouldbeskipped.ThefollowingtabledescribestheteststhatWixCopsupports.
WixCoptestID DescriptionUnknown Internalonly:returnedwhen
astringcannotbeconvertedtoanInspectorTestType.
InspectorTestTypeUnknown Internalonly:displayedwhenastringcannotbeconvertedtoanInspectorTestType.
XmlException DisplayedwhenanXMLloadingexceptionhasoccurred.
Page 66
UnauthorizedAccessException Displayedwhenafilecannotbeaccessed;typicallywhentryingtosavebackafixedfile.
DeclarationEncodingWrong DisplayedwhentheencodingattributeintheXMLdeclarationisnot'UTF-8'.
DeclarationMissing DisplayedwhentheXMLdeclarationismissingfromthesourcefile.
WhitespacePrecedingCDATAWrong DisplayedwhenthewhitespaceprecedingaCDATAnodeiswrong.
WhitespacePrecedingNodeWrong Displayedwhenthewhitespaceprecedinganodeiswrong.
NotEmptyElement Displayedwhenanelementisnotemptyasitshouldbe.
WhitespaceFollowingCDATAWrong DisplayedwhenthewhitespacefollowingaCDATAnodeiswrong.
WhitespacePrecedingEndElementWrong Displayedwhenthewhitespaceprecedinganendelementiswrong.
XmlnsMissing Displayedwhenthexmlnsattributeismissingfromthedocumentelement.
XmlnsValueWrong Displayedwhenthexmlnsattributeonthedocumentelementiswrong.
CategoryAppDataEmpty DisplayedwhenaCategoryelementhasanemptyAppDataattribute.
COMRegistrationTyper DisplayedwhenaRegistryelementencountersanerrorwhilebeingconvertedtoa
Page 67
strongly-typedWiXCOMelement.
UpgradeVersionRemoveFeaturesEmpty DisplayedwhenanUpgradeVersionelementhasanemptyRemoveFeaturesattribute.
FeatureFollowParentDeprecated DisplayedwhenaFeatureelementcontainsthedeprecatedFollowParentattribute.
RadioButtonMissingValue DisplayedwhenaRadioButtonelementismissingtheValueattribute.
TypeLibDescriptionEmpty DisplayedwhenaTypeLibelementcontainsaDescriptionelementwithanemptystringvalue.
ClassRelativePathMustBeAdvertised DisplayedwhenaRelativePathattributeoccursonanunadvertisedClasselement.
ClassDescriptionEmpty DisplayedwhenaClasselementhasanemptyDescriptionattribute.
ServiceInstallLocalGroupEmpty DisplayedwhenaServiceInstallelementhasanemptyLocalGroupattribute.
ServiceInstallPasswordEmpty DisplayedwhenaServiceInstallelementhasanemptyPasswordattribute.
ShortcutWorkingDirectoryEmpty DisplayedwhenaShortcutelementhasanemptyWorkingDirectoryattribute.
IniFileValueEmpty DisplayedwhenaIniFileelementhasanemptyValueattribute.
Page 68
FileSearchNamesCombined DisplayedwhenaFileSearchelementhasaNameattributethatcontainsboththeshortandlongversionsofthefilename.
WebApplicationExtensionIdDeprecated DisplayedwhenaWebApplicationExtensionelementhasadeprecatedIdattribute.
WebApplicationExtensionIdEmpty DisplayedwhenaWebApplicationExtensionelementhasanemptyIdattribute.
PropertyValueEmpty DisplayedwhenaPropertyelementhasanemptyValueattribute.
ControlCheckBoxValueEmpty DisplayedwhenaControlelementhasanemptyCheckBoxValueattribute.
RadioGroupDeprecated DisplayedwhenadeprecatedRadioGroupelementisfound.
ProgressTextTemplateEmpty DisplayedwhenaProgresselementhasanemptyTextTemplateattribute.
RegistrySearchTypeRegistryDeprecated DisplayedwhenaRegistrySearchelementhasaTypeattributesetto'registry'.
WebFilterLoadOrderIncorrect DisplayedwhenaWebFilter/@LoadOrderattributehasavaluethatisnotmorestonglytyped.
SrcIsDeprecated Displayedwhenanelementcontainsadeprecatedsrcattribute.
Page 69
RequireComponentGuid DisplayedwhenaComponentelementismissingtherequiredGuidattribute.
LongNameDeprecated DisplayedwhenaanelementhasaLongNameattribute.
RemoveFileNameRequired DisplayedwhenaRemoveFileelementhasnoNameorLongNameattribute.
DeprecatedLocalizationVariablePrefix Displayedwhenalocalizationvariablebeginswiththedeprecated'$'character.
NamespaceChanged Displayedwhenthenamespaceofanelementhaschanged.
UpgradeVersionPropertyAttributeRequired DisplayedwhenanUpgradeVersionelementismissingtherequiredPropertyattribute.
UpgradePropertyChild DisplayedwhenanUpgradeelementcontainsadeprecatedPropertychildelement.
RegistryElementDeprecated DisplayedwhenadeprecatedRegistryelementisfound.
PatchSequenceSupersedeTypeChanged DisplayedwhenaPatchSequence/@Supersedeattributecontainsadeprecatedintegervalue.
PatchSequenceTargetDeprecated DisplayedwhenadeprecatedPatchSequence/@Targetattributeisfound.
VerbTargetDeprecated DisplayedwhenadeprecatedVerb/@Targetattributeisfound.
ProgIdIconFormatted Displayedwhena
Page 70
ProgId/@Iconattributevaluecontainsaformattedstring.
IgnoreModularizationDeprecated DisplayedwhenadeprecatedIgnoreModularizationelementisfound.
PackageCompressedIllegal DisplayedwhenaPackage/@CompressedattributeisfoundunderaModuleelement.
PackagePlatformsDeprecated DisplayedwhenaPackage/@Platformsattributeisfound.
ModuleGuidDeprecated DisplayedwhenadeprecatedModule/@Guidattributeisfound.
GuidWildcardDeprecated Displayedwhenadeprecatedguidwildcardvalueisfound.
FragmentRefIllegal DisplayedwhenaFragmentRefElementisfound.
FileRedundantNames DisplayedwhenaFile/@NamematchesaFile/@ShortName.
Page 71
Unit-testingcustomactionswithLuxCustomactionsareafrequentcauseofinstallationfailuressoit'simportanttotestthemthoroughly.Customactionsthemselvesusuallyaren'ttested.Thetraditionaltestingapproachistorunfunctionaltestsonanentireinstallerandtocoverasmanyscenariosandplatformcombinationsaspossible.
Page 72
CustomactionpatternsWiXcompilerextensionsprovideonewayofimprovingcustomactionquality:Becausecompilerextensionsrunatbuildtimeinsteadofinstalltime,theycanperformallsortsofdatavalidationandconversiononstrongly-typedauthoringbeforeconvertingittorowsandcolumnsofcustomtablesintheMSIpackage.
Immediatecustomactionsthenreadthosecustomtables,checkcurrentstate(forexample,componentactionstate,thestateofthemachineitself),andserializetheresultingdataintoacustomactiondataproperty.Immediatecustomactionsaretheplacetodothelogicthatneedslivestateandcannotbedeterminedatbuildtimebyacompilerextension.Becauseimmediatecustomactionsruninthesecuritycontextoftheinstallinguserandoutsideaninstallationtransaction,theygenerallydonothavepermissionstomodifythemachineandiftheyfail,theinstallationsimplyendswithouttheneedtodoanycleanuporrollback.
Deferredcustomactionsreadthecustomactiondatapropertysetbyimmediatecustomactionstoknowwhattodo.Onewaytoimprovecustomactionreliabilityistomakeasfewdecisionsaspossibleindeferredcustomactions;instead,implementallthelogicincompilerextensionsandimmediatecustomactionsandhavedeferredcustomactionssimplyreadthecustomactiondatapropertyinalooptomodifythemachine.
TheWiXcustomactionsthatmodifythemachineusethispattern.Forexample,XmlConfigauthoringisvalidatedbytheWixUtilExtensioncompilerextensionandtranslatedtorowsandcolumnsintheXmlConfigtable.TheSchedXmlConfigimmediatecustomactionreadstheXmlConfigtable,constructsacustomactiondatapropertybasedontheXmlConfigtableandmachine'sstate(includingcheckingcomponentstateandstoringexistingfiledatatosupportrollback),thenschedulestheExecXmlConfigdeferredcustomactiontoexecutetheXMLchangesandtheExecXmlConfigRollbackrollbackcustomactiontorollbackthechanges.
Page 73
TestingwithLuxLuxisaWiXextension(andassociatedtools)thatletyouwritedata-drivenunittestsforyourcustomactions.
Theexecutivesummary:Luxrunsyourimmediatecustomactionsthenvalidatestheysetpropertiestothevaluesyouexpect.
Whileit'sasimpleapproach,ifyourcustomactionsarefactoredasdiscussedabove,validatingthepropertiessetbyimmediatecustomactionscanvalidatealltheinteractionbetweenyourcustomactions,theMSIpackage,andMSIitself.
Ifyourcustomactionsaren'tfactoredasdiscussed--forexample,ifyourdeferredcustomactionsexpectonlyaninstallationdirectoryandhavelogictoconstructfilepathsfromit--thenit'slikelythatyourimmediatecustomactionsdon'thavealotoflogicthat'susefultotest.
Luxdoesnothelpyoutestthecustomactioncodethatactuallymodifiesthemachine;forthat,continuetouseotherunit-testframeworksandautomatedtests.Byworkingonlywithimmediatecustomactions,LuxcanletMSIrunthecustomactionsas-is,eliminatingtheneedtowritecustomtestdoublesfortheMSIAPI.Luxrunsfromaper-userpackagesounlessyourunthetestsfromanelevatedcommandprompt,noneofthecustomactionsgetelevatedprivilegesandthereforecannotmodifythemachine.
Here'showLuxworks:
1. YouwriteyourunittestsusingXMLinWiXsourcefiles.2. TheLuxextensionconvertstheXMLtoatableinatest.msi
package.3. TheLuxcustomactionrunsafterallotherimmediatecustomactions
andevaluatesyourunittests.
Page 74
AuthoringunittestsLuxsupportsthefollowingunittests:
PropertyvaluesExpressionsMulti-valuepropertiesName/value-pairproperties
Notethatyoushouldalwaysauthorunittestsinfragmentsseparatefromyourcustomactionauthoringoranyotherproductauthoring.Ifyoumixunittestswithotherauthoring,WiXincludestheunit-testdatainyour"real"installers.
Page 75
PropertyvaluetestsAsimpletestletsyouspecifyapropertytotest,avaluetotestagainst,andtheoperatortocomparewith(whichdefaultsto"equal").
<Fragment><lux:UnitTestCustomAction="TestCustomActionSimple"Property="SIMPLE"Value="[INSTALLFOLDER]"Operator="equal"/></Fragment>
Whenthetestruns,LuxcomparesthevalueoftheSIMPLEpropertyagainstthe(formatted)value[INSTALLFOLDER].Ifthetwomatch(becausetheoperatoris"equal"),thetestpasses.LegalvaluesoftheOperatorattributeare:
equal(Default)ComparesPropertytoValueandsucceedsiftheyareequal.
notEqualComparesPropertytoValueandsucceedsiftheyareNOTequal.
caseInsensitiveEqualComparesPropertytoValueandsucceedsiftheyareequal(ignoringcase).
caseInsensitiveNotEqualComparesPropertytoValueandsucceedsiftheyareNOTequal(ignoringcase).
Page 76
TestconditionsConditionsletyouvalidatecodepathsinyourcustomaction.Forexample,ifyourcustomactionbehavesdifferentlyonWindowsXPthanitdoesonWindowsVistaandlater,youcancreatetwotestswithmutuallyexclusiveconditions:
<Fragment><lux:UnitTestCustomAction="TestCustomActionSimple"Property="SIMPLE"Value="[INSTALLFOLDER]"><lux:Condition><![CDATA[VersionNT<600]]></lux:Condition></lux:UnitTest><lux:UnitTestCustomAction="TestCustomActionSimple"Property="SIMPLE"Value="[INSTALLFOLDER]"><lux:Condition><![CDATA[VersionNT>=600]]></lux:Condition></lux:UnitTest></Fragment>
Ifatesthasacondition,thetestrunsonlyifitsconditionistrue.
Page 77
ExpressiontestsExpressiontestsletyoutestanyvalidMSIexpression.Iftheexpressionistrue,thetestpasses.Iftheexpressionisfalseorinvalid,thetestfails.
<Fragment><lux:UnitTestCustomAction="TestCustomActionSimple"><lux:Expression>NOTMsiSystemRebootPendingANDSIMPLE</lux:Expression></lux:UnitTest></Fragment>
Page 78
Multi-valuepropertytestsBecausedeferredcustomactionscanaccessonlyasinglecustom-actiondataproperty,customactionsthatneedmorethanonepieceofdataencodeitinasinglestring.Onewayistohavetheimmediatecustomactionseparatemultipleelementswithaknownseparatorcharacter,thenhavethedeferredcustomactionsplitthestringatthoseseparatecharacters.LuxsupportssuchseparatorsusingtheValueSeparatorandIndexattributes.
<Fragment><lux:UnitTestCustomAction="TestCustomActionMultiValue"Property="MULTIVALUE"ValueSeparator="*"><lux:Condition>VersionNT</lux:Condition><lux:UnitTestIndex="0"Value="1"/><lux:UnitTestIndex="1"Value="[INSTALLFOLDER]"><lux:Condition>NOTInstalled</lux:Condition></lux:UnitTest><lux:UnitTestIndex="2"Value="WIXEAST"/></lux:UnitTest></Fragment>
AconditionundertheparentUnitTestelementappliestoallindividualunittests.OverrideitwithaConditionchildelement.
Page 79
Name/value-pairpropertytestsAnotherwayofprovidingmultiplevaluestoadeferredcustomactionistocombinename/valuepairsintoasinglestring.Luxsupportsname/value-pairpropertiesusingtheNameValueSeparatorandIndexattributes.
<Fragment><lux:UnitTestCustomAction="TestCustomActionNameValuePairs"Property="NAMEVALUEPAIRS"NameValueSeparator="#"><lux:UnitTestIndex="InstallationRoot"Value="[INSTALLFOLDER]"/><lux:UnitTestIndex="Developers"Operator="caseInsensitiveNotEqual"Value="WIXEAST"/></lux:UnitTest></Fragment>
Page 80
TestmutationsImmediatecustomactionsfrequentlyneedtocreatedifferentcustomactiondatadependingonglobalmachinestate.Forexample,ifacomponentisalreadyinstalled,acustomactionmighthavedifferentbehaviortoupgradethecomponent,versusinstallingitforthefirsttime.
BecauseLuxrunsonlyimmediatecustomactions,it'snotpossibletoactuallyupdatetheglobalmachinestate.OneapproachistocreatemultiplecustomactionDLLs,mockingMSIfunctionstoreturnhard-codedvalues.Luxsimplifiesthismodelwithtestmutations.
Testmutationsletyouauthorunittestswithdifferentexpectedresults.ThemutationidispassedasthevalueoftheWIXLUX_RUNNING_MUTATIONproperty.Yourcustomaction,typicallyinan'#ifdefDEBUG'block,retrievestheWIXLUX_RUNNING_MUTATIONpropertyandmockdifferentbehaviorbasedonthemutation.Toauthortestmutations,usetheMutationelementwithUnitTestelementsaschildren.Forexample:
<lux:MutationId="SimulateDiskFull"><lux:UnitTest.../></lux:Mutation>
Nitrunsthetestpackageonceforeachmutation,settingtheWIXLUX_RUNNING_MUTATIONpropertytoonemutationidatatime.Teststhataren'tchildrenofamutationareruneverytime.
Page 81
BuildingtestpackagesLuxunittestsrunfromaminimalpackagethatincludesjustyourunittestsandtheresourcestheyneedtorun.BecauseLuxrunsonlyimmediatecustomactions,itdoesn'tneedafull,per-machinepackagethatincludesallthefilesandotherresourcestobeinstalled.SuchaminimalpackagesavesbuildtimebutdoesrequirethatyourWiXsourcecodebewellmodularizedwithfragments.Forexample,youshouldalwaysauthorunittestsinfragmentsseparatefromanyotherauthoring.Ifyoumixunittestswithotherauthoring,WiXincludestheunit-testdatainyour"real"installers.Likewise,anyotherWiXauthoringincludedinunit-testfragmentsisincludedintestpackages.
Luxcomeswithatoolthatsimplifiesthecreationoftestpackages.Itsnameislux.exe.Touselux.exe:
1. Compilethesourcefilecontainingyourunittests.2. Runlux.exeonthe.wixobjfileandspecifyasourcefileforthetest
package.3. Compilethetestpackagesource.4. Linkthetestpackage.wixobjwiththeunittests.wixobj.
Forexample:
candle-extWixLuxExtensionCustomActions.wxsluxCustomActions.wixobj-outLuxSample1_test.wxscandle-extWixLuxExtensionLuxSample1_test.wxslight-extWixLuxExtensionLuxSample1_test.wixobjCustomActions.wixobj-outLuxSample1_test.msi
LuxalsoincludesanMSBuildtaskand.targetsfiletoletyoubuildtestpackagesfromthesame.wixprojyouusetobuildyourinstallers.Tobuildatestpackage,buildtheBuildTestPackagetargetusingMSBuild3.5:
%WINDIR%\Microsoft.NET\Framework\v3.5\MSBuild.exe/t:BuildTestPackage
Page 82
RunningunittestsAfterbuildingthetestpackage,youcanrunitwithloggingenabledtocapturetestresults:
msiexec/ltest1.log/ibin\Debug\LuxSample1_test.msi
SearchthelogforWixRunImmediateUnitTeststoseetestresultsandotherloggingfromtheLuxcustomaction.
Page 83
Nit:TheLuxtestrunnerLuxalsoincludesNit,aconsoleprogramthatmonitorstheloggingmessagesemittedbyunittestsandreportssuccessorfailure.TouseNitonyourtestpackages,justspecifytheirfilenamesasargumentstonit.exe.Forexample:
nitLuxSample1_test.msi
LuxalsoletsyourunNitonyourtestpackagesfromthesame.wixprojyouusetobuildyourinstallers.TorunatestpackageunderNit,buildtheTesttargetusingMSBuild3.5:
%WINDIR%\Microsoft.NET\Framework\v3.5\MSBuild.exe/t:Test
Thetestpackagewillbebuiltbeforethetestsarerun,ifnecessary.Theoutputlookslikethefollowing,withfailingtestshighlightedinredasbuilderrors:
Test:TestluxB21F0D12E0701DBA30FFB92A532A5390passed:Property'SIMPLE'matchedexpectedvalue'[INSTALLFOLDER]'.TestTestConditionBeforeVistapassed:Property'SIMPLE'matchedexpectedvalue'[INSTALLFOLDER]'.TestTestConditionVistaOrLaterpassed:Property'SIMPLE'matchedexpectedvalue'[INSTALLFOLDER]'.TestTestExpressionTruthpassed:Expression'NOTMsiSystemRebootPendingANDSIMPLE'evaluatedtotrue.nit.exe:errorNIT8103:TestluxA6D27EC5903612D7F3786FF71952E314failed:Property'MULTIVALUE'expectedvalue'2'butactualvaluewas'1'.Testlux210257649C16AFA33793F1CDDF575505passed:Property'MULTIVALUE'matchedexpectedvalue'[INSTALLFOLDER]'.nit.exe:errorNIT8103:Testlux402940A90D3ADAD181D599AB8C260FA0failed:Property'MULTIVALUE'expectedvalue'xxxWIXEAST'butactualvaluewas'WIXEAST'.Testlux453EC8DB458A8F66F0D22970CFF2AE99passed:Property'NAMEVALUEPAIRS'matchedexpectedvalue'[INSTALLFOLDER]'.Testlux20CB4F88795F22D15631FD60BA03AFEBpassed:Property'NAMEVALUEPAIRS'matchedexpectedvalue'WIXWEST'.nit.exe:errorNIT8102:2testsfailed.7testspassed.DoneBuildingProject"C:\Delivery\Dev\wix35\src\lux\samples\LuxSample1\LuxSample1.wixproj"(Testtarget(s))--FAILED.
BuildFAILED.
"C:\Delivery\Dev\wix35\src\lux\samples\LuxSample1\LuxSample1.wixproj"(Testtarget)(1)->
Page 84
(Testtarget)->nit.exe:errorNIT8103:TestluxA6D27EC5903612D7F3786FF71952E314failed:Property'MULTIVALUE'expectedvalue'2'butactualvaluewas'1'.nit.exe:errorNIT8103:Testlux402940A90D3ADAD181D599AB8C260FA0failed:Property'MULTIVALUE'expectedvalue'xxxWIXEAST'butactualvaluewas'WIXEAST'.nit.exe:errorNIT8102:2testsfailed.7testspassed.
0Warning(s)3Error(s)
TimeElapsed00:00:07.87
Page 85
FAQArethesereallyunittests?TheylookalotlikeFittests.
Fittestsaretabularanddata-driven,sotheyhavealotincommonwithLux'sunittests.Butfittestsarefocusedonhigh-leveloutputs,whereasunittestsarelow-leveldevelopertests.
Usingthecustomactioncodeas-issoundsgood,butarethereanylimitationswiththatapproach?
Yes.Becauseyouarerunningtheactualcustomaction,anycodepathsthatrelyonmachinestatereflectthestateofthemachineyourunthetestson.Forexample,codethathasdifferentbehaviorondifferentversionsofWindowsrunsonlyoneway,justlikeitdoesinanormalinstaller.YoucanadddebugcodethatlooksforthepresenceoftheWIXLUXTESTPACKAGEproperty;it'ssetto1inatestpackage.
Ihaveunitteststhatfailbecausedirectorypropertiesarebeingreturnedasemptystrings.Why?
Themostlikelycauseisthatyourdirectoriesaredefinedaschildrenofyourinstaller'sProductelement.Lux.exebuildsitsownProductelementtoproductaminimaltestpackage,sononeoftheresourcesdefinedinyourProductareavailabletotheunittests.ThesimplestsolutionistomovethoseresourcestotheirownFragment.
DoIhavetowritemycustomactionsinC++?No,Luxworkswithanyimmediatecustomactions,regardlessofthelanguagethey'rewrittenin,includingMSItype51property-settingcustomactions.
Page 86
MSITablestoWiXSchemaIntheWiXschema,itsnotalwaysentirelyobvioushowthetablesfromtheWindowsInstallerschemamaptotheWiXschema.Belowaresomehelpfulhintsonhowtofigureouttherelationshipsbetweenthetwoschemas.
Page 87
DuplicateFileTableThisisauthoredusingaCopyFilenodenestedunderaFilenode.YouonlyneedtosettheId,DestinationFolder,andDestinationNameattributes.
Page 88
LaunchConditionTableThisisauthoredusingaConditionnodeauthoredunderFragmentorProduct.YouonlyneedtosettheMessageattribute.
Page 89
LockPermissionsTableThisisauthoredusingPermission.
Page 90
MoveFileTableThisisauthoredusingaCopyFilenodenestedunderaComponentnode.YouwillneedtosetallattributesexceptDelete.SetDeleteto'yes'inordertousethemsidbMoveFileOptionsMoveoption.
Page 91
PublishComponentTableThePublishComponentfunctionalityisavailableinWiXbyusingaCategory.HereisasmallsampleofwhataPublishComponentrecordwouldlooklikeinMSI,theninWiXnotation.
MSI
ComponentId Qualifier Component_ AppData Feature_{11111111-2222-3333-4444-5555555555555}
1033 MyComponent RandomData
MyFeature
WiX
<ComponentId='MyComponent'Guid='87654321-4321-4321-4321-110987654321'><CategoryId='11111111-2222-3333-4444-5555555555555'AppData='RandomData'Qualifier='1033'/></Component>...<FeatureId='MyFeature'Level='1'><ComponentRefId='MyComponent'/></Feature>
Page 92
RemoveIniFileThisisauthoredusingIniFile.JustsettheActionattributeto'removeLine'or'removeTag'asappropriate.
Page 93
RemoveRegistryTableThisisauthoredusingRegistry.SimplysettheActionattributeto'remove'or'removeKey'(asappropriate)inordertogetanentryintheRemoveRegistrytable.
Page 94
CodePagesCodepagesmapcharactercodestoactualcharacters,orgraphemes.Codepagesarealsousedtoconvertfromoneencodingtoanother.
Page 95
CodePagesinWindowsInstallerWindowsInstallerstoresstringsinapackageaccordingtoaparticularcodepage.Aseparatecodepageisusedforthesummaryinformationstreamandtherestofthepackagedatabase,whichincludestheActionText,Error,Property,andothertables.
FormoreinformationaboutcodepagesinWindowsInstaller,readCodePageHandling.
Page 96
SettingtheCodePageusingWiXTop-levelelementslikeProduct,Module,Patch,andPatchCreationsupportaCodepageattribute.YoucansetthistoavalidWindowscodepagebyintegerlike1252,orbywebnamelikeWindows-1252.UTF-7andUTF-8arenotofficiallysupportedbecauseofuserinterfaceissues.Unicodeisnotsupported.
Tosupportauthoringasinglepackagethatcanbelocalizedintomultiplelanguages,youcansetthePackage/@SummaryCodepageorPatchInformation/@SummaryCodepageelementtoanlocalizationexpressionlike!(loc.SummaryCodepage).YouthendefinetheSummaryCodepagevalueinalocalizationfile,typicallyendingina.wxlextension.TherootWixLocalizationelementalsosupportsaCodepageattributethatisusedtoencodetherestofthepackagedatabase.
Youcanalsosetthecodepageto0.Inthiscase,WindowsInstallertreatsstringsasneutral,meaningthatyoucanonlysafelyuseASCIIcharacters-thefirst128ANSIcharacters-butthedatabasewillbesupportedacrossWindowsplatforms.SeeCreatingaDatabasewithaNeutralCodePageformoreinformation.
ForawalkthroughabouthowtoauthorabuildlocalizedpackagesusingWiXseeHowTo:MakeyourinstallerlocalizableandHowTo:Buildalocalizedversionofyourinstaller.
Page 97
UsefulWindowsInstallerInformationLinktotheWindowsInstaller4.5SDK:http://msdn.microsoft.com/en-us/library/cc185688.aspx
ListofWindowsInstallerdefaultproperties:http://msdn.microsoft.com/en-us/library/aa370905.aspx
ListofWindowsInstalleroperatorsforconditionalexpressions:http://msdn.microsoft.com/en-us/library/aa368012.aspx
Page 98
ProjectTemplatesTheWiXVisualStudiopackageprovidesthefollowingVisualStudioprojecttemplates:
WiXProject-usedtocreateanewWindowsInstallerpackage(.msi)file.EachnewWiXprojectincludesa.wxsfilethatconsistsofa<Product>elementthatcontainsaskeletonwiththeWiXauthoringrequiredtocreateafullyfunctionalWindowsInstallerpackage.The<Product>elementincludes<Package>,<Media>,<Directory>,<Component>and<Feature>elements.WiXLibraryProject-usedtocreateanewWiXlibrary(.wixlib)file.A.wixlibfileisalibraryofsetupfunctionalitythatcanbeeasilysharedacrossdifferentWiX-basedpackagesbyincludingitwhenlinkingthesetuppackage.EachnewWiXlibraryprojectincludesa.wxsfilethatconsistsofanempty<Fragment>elementthatcanbepopulatedwithWiXauthoringthatcanbesharedbymultiplepackages.WiXMergeModuleProject-usedtocreateanewWindowsInstallermergemodule(.msm)file.AmergemodulecontainsasetofWindowsInstallerresourcesthatcanbesharedbymultipleWindowsInstallerinstallationpackagesbymergingthecontentsofthemoduleintothe.msipackage.EachnewWiXmergemoduleprojectincludesa.wxsfilethatconsistsofa<Module>elementthatcontainsaskeletonwiththeWiXauthoringrequiredtocreateafullyfunctionalmergemodule.The<Module>elementincludes<Package>,<Directory>and<Component>elements.
Tocreateanewproject:
1. ClickonFile|New|ProjectontheVisualStudiomenu.2. NavigatetotheWindowsInstallerXMLnode.3. SelecttheprojecttemplateandpressOK.
Page 99
ItemTemplatesWiXVisualStudiopackageprovidesthefollowingitemtemplatesforWiXprojects:
WiXFile-a.wxsfilepre-populatedwiththesameinformationasthedefaultWXSfileinaWiXLibraryProjectWiXIncludeFile-ablank.wxifileWiXLocalizationFile-ablank.wxlfileTextFile-ablank.txtfile
FormoreinformationaboutWiXfiletypes,pleasevisittheFileListsection.
Toaddanewitem:
1. Right-clickontheprojectnodeintheSolutionExplorer.2. ChooseAdd|NewItem...andselecttheappropriateitemtemplate.3. TypeintheitemnameintheNamefieldandpressAdd.
Page 100
ProjectPropertyPagesToaccesstheWiXprojectpropertypages,right-clickonaWiXprojectintheVisualStudioSolutionExplorerandchooseProperties.WiXprojectscontainthefollowingpropertypages:
InstallerBuildBuildEventsPathsToolSettings
Page 101
InstallerPropertyPageTheInstallertabcontainsthefollowingconfigurableoptions:
Outputname-atextboxthatcontainsthenameofthefilethatwillbecreatedbythebuildprocess.Outputtype-adrop-downlistthatallowsyoutoselecttheoutputtype:AnMSIpackage,mergemodule,WiXlibrary,orbootstrapper.
Page 102
BuildPropertyPageTheBuildtabcontainsthefollowingconfigurableoptions:
TheGeneralsectionallowsyoutodefineconfiguration-specificconstantsandspecifytheculturetobuild.FormoreinformationseeSpecifyingculturestobuild.TheMessagessectionallowsyoutospecifywarninglevels,toggletreatingwarningsaserrorsandverboseoutput.TheOutputsectionallowsyoutospecifytheoutputpath,toggledeletetemproaryfiles,suppressoutputofthewixpdbfile,andtogglewhetherornottobindfilesintothelibraryfile(ifitisaWiXLibraryproject).
Page 103
BuildEventsPropertyPageTheBuildEventstabcontainsthefollowingconfigurableoptions:
Pre-buildeventcommandline-atextboxthatcontainsthepre-buildeventstoexecutebeforebuildingthecurrentproject.Post-buildeventcommandline-atextboxthatcontainsthepost-buildeventstoexecuteafterbuildingthecurrentproject.Runthepost-buildevent-adrop-downcomboboxthatallowsyoutospecifytheconditionsinwhichpost-buildeventsshouldbeexecuted.
TheBuildEventstabcontainsbuttonsnamedEditPre-build...andEditPost-build...thatdisplayeditdialogsforthepreandpost-buildeventcommandlines.TheeditdialogscontainalistofallvalidWiXprojectreferencevariablesandtheirvaluesbasedonthecurrentprojectsettings.
Page 104
PathsPropertyPageThePathstabcontainsthefollowingconfigurableoptions:
TheReferencePathssectionallowsyoutodefinepathsyouwanttousewhenlocatingreferences(WiXextensionsandWiXlibraries).TheIncludePathssectionallowsyoutodefinepathsyouwanttousewhenlocatingWiXIncludefiles.
Page 105
ToolSettingsPropertyPageTheToolSettingstabcontainsthefollowingconfigurableoptions:
TheICEvalidationsectionallowsyoutotoggleICEvalidationsuppressionorspecifywhichICEvalidationtosuppress.TheAdditionalparameterssectionallowsyoutospecifycommandlineargumentstopassdirectlytotheWiXtoolsatbuildtime.
Page 106
ReadingtheDefaultWiXProjectTemplateOnceaWiXprojectiscreated,itcreatesafilecontainingthebeginningofthesetupcodefortheproject.EverythingneededtocreateanMSIcanbeaddedtothisfile.
Note:IfyouarenotfamiliarwithWindowsInstallersetuppackages,youarestronglyencouragedtoreviewtheMSDNdocumentationabouttheInstallationPackagebeforecontinuing.ItwillprovidealotofvaluablecontextaswedigintothedetailsofaWindowsInstallersetuppackage.
<?xmlversion="1.0"encoding="UTF-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><ProductId="*"Name="MySetup"Language="1033"Version="1.0.0.0"Manufacturer="MyCompany"UpgradeCode="$guid3$"><PackageInstallerVersion="200"Compressed="yes"InstallScope="perMachine"/>
<MajorUpgradeDowngradeErrorMessage="Anewerversionof[ProductName]isalreadyinstalled."/><MediaTemplate/>
<FeatureId="ProductFeature"Title="MySetup"Level="1"><ComponentGroupRefId="ProductComponents"/></Feature></Product>
<Fragment><DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"><DirectoryId="INSTALLFOLDER"Name="MySetup"/></Directory></Directory></Fragment>
<Fragment><ComponentGroupId="ProductComponents"Directory="INSTALLFOLDER"><!--<ComponentId="ProductComponent">--><!--TODO:Insertfiles,registrykeys,andotherresourceshere.-->
Page 107
<!--</Component>--></ComponentGroup></Fragment></Wix>
IfyouarefamiliarwiththeWindowsInstaller,thestructureofthe.wxsfileshouldbefamiliar.First,theWixelementexistspurelytowraptherestofthecontentinthefile.TheWixelementalsospecifiesthenamespace,thexmlnsattributethatenablesvalidationduringcompileandauto-completeinVisualStudioviaIntelliSense.Next,theProductelementdefinestherequiredWindowsInstallerpropertiesusedtoidentifytheproduct,suchastheProductCode,ProductName,ProductLanguage,andProductVersion.Third,thePackageelementcontainstheattributesfortheSummaryInformationStreamthatprovidesinformationaboutthesetuppackageitself.Therestoftheelements,excepttheComponentRefelement,maptoWindowsInstallertablesbythesamename,forexampletheDirectorytable,Componenttable,andFeaturetable.TheComponentelementistiedtotheFeatureswhichmapstotheentriesintheFeatureComponentstable.
ThedefaulttemplatethatisgeneratedwhenyoucreateanewWiXprojectwillgeneratesabuildwarning.IntheOutputwindow,youmayseethiswarning:
Thecabinet'MySetup.cab'doesnotcontainanyfiles.Ifthisinstallationcontainsnofiles,thiswarningcanlikelybesafelyignored.Otherwise,pleaseaddfilestothecabinetorremoveit.
BecausetheWiXprojectdoesnotyetreferenceanapplication,thereisnothingtoinstall.Onceafileisaddedtotheinstaller,thiswarningwillgoaway.
Page 108
CreatingaSimpleSetupInthistutorial,wewillcreateaC#WindowsFormApplicationandthenuseWiXtocreateaninstallerfortheapplication.
Page 109
Step1:CreatetheC#WindowsFormApplication1. ClickFile,thenselectNew,thenselectProject.2. ChoosetheVisualC#nodeintheProjectTypestree,thenselect
WindowsFormsApplication.3. Nameyourapplication"MyApplication"andpressOK.
Page 110
Step2:Createtheinstallerfortheapplication1. ClickFile,thenclickNew,thenclickProject.2. ChoosetheWindowsInstallerXMLnodeintheProjecttypestree,
thenselectSetupProject3. Nameyourproject"MySetup"andpressOK.4. IntheMySetupproject,right-clickontheReferencesnodeand
chooseAddReference....5. NavigatetotheProjectstab,clickontheMyApplicationproject,
andclicktheAddbutton,andthenpressOK.
6. Findthecommentthatsays:
<!--TODO:Insertyourfiles,registrykeys,andotherresourceshere.-->
Deletethatlineandreplaceitwiththefollowinglinesofcode:
<FileSource="$(var.MyApplication.TargetPath)"/>
7. BuildtheWiXproject.
That'sit!Nowyouhaveaworkinginstallerthatinstallsanduninstallstheapplication.
Ifyoutypethatcodeintotheeditor(insteadofcopyingandpastingfromthisexample)youwillnoticethatIntelliSensepicksupthevalidelementsandattributes.IntelliSensewithWiXinVisualStudiocansaveyousignificantamountsoftypingandtimewhensearchingforthenameoftheelementsorattributesasyoubecomemorecomfortablewiththeWiXlanguage.
ThelineofcodeyouaddedinstructstheWiXtoolsettoaddafileresourcetothesetuppackage.TheSourceattributespecifieswheretofindthefileforpackagingduringthebuild.Ratherthanhard-codevaluesfortheseattributesintooursourcecode,weusetheWiXpreprocessorvariablesthatarepassedtotheWiXcompiler.Moreinformationaboutusingpreprocessorvariables,includingatableofallsupportedvalues,
Page 111
canbefoundintheAddingProjectReferencestopic.
Page 112
UsingProjectReferencesandVariablesTheWiXprojectsupportsaddingprojectreferencestootherprojectssuchasVBandC#.Thisensuresthatbuildorderdependenciesaredefinedcorrectlywithinthesolution.Inaddition,itgeneratesasetofWiXpreprocessorvariablesthatcanbereferencedinWiXsourcefilesandpreprocessordefinitionswhicharepassedtothecompileratbuildtime.
ToaddaprojectreferencetoaWiXproject:
1. Right-clickontheReferencesnodeoftheprojectintheSolutionExplorerandchooseAddReference....
2. IntheAddReferencedialog,clickontheProjectstab.3. Selectthedesiredproject(s)andclicktheAddbutton,andthen
pressOKtodismissthedialog.
Page 113
SupportedProjectReferenceVariablesOnceaprojectreferenceisadded,alistofprojectvariablesbecomesavaliabletobereferencedintheWiXsourcecode.Projectreferencevariablesareusefulwhenyoudonotwanttohavehard-codedvalues.Forexample,the$(var.MyProject.ProjectName)variablewillquerythecorrectprojectnameatbuildtimeevenifIchangethenameofthereferencedprojectafterthereferenceisadded.
ThefollowingdemonstrateshowtouseprojectreferencevariablesinWiXsourcecode:
<FileId="MyExecutable"Name="$(var.MyProject.TargetFileName)"Source="$(var.MyProject.TargetPath)"DiskId="1"/>
TheWiXprojectsupportsthefollowingprojectreferencevariables:
Variablename Exampleusage Examplevalue
var.ProjectName.Configuration $(var.MyProject.Configuration) DebugorRelease
var.ProjectName.FullConfiguration $(var.MyProject.FullConfiguration) Debug|AnyCPU
var.ProjectName.Platform $(var.MyProject.Platform) AnyCPU,Win32,x64oria64
var.ProjectName.ProjectDir $(var.MyProject.ProjectDir) C:\users\myusername\Documents\VisualStudio2010\Projects\MyProject\
var.ProjectName.ProjectExt $(var.MyProject.ProjectExt) .csproj
var.ProjectName.ProjectFileName $(var.MyProject.ProjectFileName) MyProject.csproj
var.ProjectName.ProjectName $(var.MyProject.ProjectName) MyProject
var.ProjectName.ProjectPath $(var.MyProject.ProjectPath) C:\users\myusername\Documents\VisualStudio
Page 114
2010\Projects\MyProject\MyApp.csproj
var.ProjectName.TargetDir $(var.MyProject.TargetDir) C:\users\myusername\Documents\VisualStudio2010\Projects\MyProject\bin\Debug\
var.ProjectName.TargetExt $(var.MyProject.TargetExt) .exe
var.ProjectName.TargetFileName $(var.MyProject.TargetFileName) MyProject.exe
var.ProjectName.TargetName $(var.MyProject.TargetName) MyProject
var.ProjectName.TargetPath $(var.MyProject.TargetPath) C:\users\myusername\Documents\VisualStudio2010\Projects\MyProject\bin\Debug\MyProject.exe
var.ProjectName.Culture.TargetPath $(var.MyProject.en-US.TargetPath)
C:\users\myusername\Documents\VisualStudio2010\Projects\MyProject\bin\Debug\en-US\MyProject.msm
var.SolutionDir $(var.SolutionDir) C:\users\myusername\Documents\VisualStudio2010\Projects\MySolution\
var.SolutionExt $(var.SolutionExt) .sln
var.SolutionFileName $(var.SolutionFileName) MySolution.sln
var.SolutionName $(var.SolutionName) MySolution
var.SolutionPath $(var.SolutionPath) C:\users\myusername\Documents\VisualStudio2010\Projects\MySolution\MySolution.sln
Note:var.ProjectName.Culture.TargetPathisonlyavailableforprojectsthathavemultiplelocalizedoutputs(e.g.MSMs).
Page 115
Creatinga.wixprojFileInordertobuildWiXusingMSBuild,a.wixprojfilemustbecreated.Theeasiestwaytocreateanew.wixprojforyourinstalleristoWiXinVisualStudiobecauseitautomaticallygeneratesstandardmsbuildprojectfilesthatcanbebuiltonthecommandlinebysimplytyping:
msbuild<projectfile>.wixproj
IfyoudonothaveVisualStudioavailable,a.wixprojfilecanbecreatedusinganytexteditor.Thefollowingisasample.wixprojfilethatbuildsaninstallerconsistingofasingleproduct.wxsfile.Ifyouwanttocopyandpastethisexample,remembertochangethe<ProjectGuid>valuetomatchyourown.
<ProjectDefaultTargets="Build"xmlns="http://schemas.microsoft.com/developer/msbuild/2003"><PropertyGroup><ConfigurationCondition="'$(Configuration)'==''">Debug</Configuration><PlatformCondition="'$(Platform)'==''">x86</Platform><ProductVersion>3.0</ProductVersion><ProjectGuid>{c523055d-a9d0-4318-ae85-ec934d33204b}</ProjectGuid><SchemaVersion>2.0</SchemaVersion><OutputName>WixProject1</OutputName><OutputType>Package</OutputType><WixTargetsPathCondition="'$(WixTargetsPath)'==''">$(MSBuildExtensionsPath)\Microsoft\WiX\v[[Version.Major]].x\Wix.targets</PropertyGroup><PropertyGroupCondition="'$(Configuration)|$(Platform)'=='Debug|x86'"><OutputPath>bin\$(Configuration)\</OutputPath><IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath><DefineConstants>Debug</DefineConstants></PropertyGroup><PropertyGroupCondition="'$(Configuration)|$(Platform)'=='Release|x86'"><OutputPath>bin\$(Configuration)\</OutputPath><IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath></PropertyGroup><ItemGroup><CompileInclude="Product.wxs"/></ItemGroup><ImportProject="$(WixTargetsPath)"/></Project>
Additional.wxsfilescanbeaddedusingadditional<Compile>elementswithinanItemGroup.Localizationfiles(.wxl)shouldbeaddedusingthe<EmbeddedResource>elementwithinanItemGroup.Includefiles(.wxi)
Page 116
shouldbeaddedusingthe<Content>elementwithinanItemGroup.
Page 117
IntegratingWiXProjectsIntoDailyBuildsOneofthemostcommonreasonsforusingMSBuildwithWiXprojectfilesistointegratethebuildofaninstallerintoanexistingdailybuildprocess.ThisisoftencoupledwithaneedtobuildWiXprojectswithouthavingtopre-installanyWiXtoolsonthedailybuildmachine.WiXprojectsandtheWiXtoolstobuildthemcanbeaddedtomostdailybuildprocessesthatsupportMSBuildusingafewsimplesteps.
Page 118
Step1:CheckintheWiXToolsToavoidhavingtoinstallWiXonbuildmachinesyoucancheckallthetoolsnecessarytobuildWiXprojectsintoyoursourcecodecontrolsystem.Here'show:
1. CreateadirectoryinyoursourcecodecontrolsystemtoholdtheWiXtools.It'scommontocreateanumberedsubdirectorymatchingtheversionofWiXthatyou'recheckingin.Ex:wix\[[Version]]
2. Unzipthecontentsofwix[[Version.Major]][[Version.Minor]]-binaries.zip\*intothedirectorycreatedinstep1.
3. IfyouuseDeploymentToolsFoundationortheWiXSDKheaderfilesandlibraries,createaparalleldirectorytreetotheoneyoucreatedinstep1andcopythecontentsofwix[[Version.Major]][[Version.Minor]]-binaries.zip\sdk\*intothatdirectory.
4. Addandcheckinthefilesfromsteps1through3.
Page 119
Step2:ModifyYour.wixprojFileAftercheckingtheWiXtoolsintosourcecodecontrolthe.wixprojfilemustbemodifiedtopointtothelocationofthecheckedintools.Openthe.wixprojfileinanytexteditor,suchasVisualStudio,andaddthefollowingtothefileanywherebetweenthe<Project>elementbeforethe<Import>element:
<PropertyGroup><WixToolPath>$(SourceCodeControlRoot)\wix\[[Version]]\</WixToolPath><WixTargetsPath>$(WixToolPath)Wix.targets</WixTargetsPath><WixTasksPath>$(WixToolPath)wixtasks.dll</WixTasksPath></PropertyGroup>
TheWixToolPathmustbesettopointtothelocationoftheWiXtoolsdirectorycreatedinStep1.Themethodusedtoreferencethelocationwillvarydependingonyourbuildsystem,butcommonchoicesareanMSBuildpropertythatissetviaanenvironmentvariable(suchas$(BinariesRoot)inaTeamFoundationServerbuild)oracustompropertypassedinonthecommand-line.
Youcanalsousearelativepathtothedirectory(suchas..\..\tools\),butnotethattheWixTargetsPathpropertyvaluemustberelativetothe.wixprojprojectfilethatusesit.TheWixTasksPathpropertyisusedinsidewix.targetstoloadWixTasks.dll;itsvalue,ifarelativepath,mustberelativetothewix.targetsfile.Thosetwofilesusuallylivetogether,sothevaluewouldbeWixTasks.dllwithnoextrapathinformation.
NotethatWixToolPathmustendinabackslash.
Page 120
BuildingWiXProjectsInTeamFoundationBuildOnceyouhavecreatedaWiXprojectfile,youneedtoperformsomeadditionalstepsinordertosuccessfullybuildtheWiXprojectinTeamFoundationBuild.Withouttheseadditionalsteps,theWiXprojectwillbeignoredbydefaultbyTeamFoundationBuildeventhoughitisanMSBuild-compatibleproject.
Page 121
Step1:UpdatetheSolutionBuildConfigurationBydefault,WiXprojectswillnotbebuiltwhenbuildingthe'AnyCPU'platformbecauseWindowsInstallerpackagesareCPU-specific.Asaresult,youneedtousethefollowingstepstoupdatethesolutionbuildconfigurationtoincludeyourWiXprojectanditsdependenciesaspartofaTeamFoundationBuild.
1. Inthesolution,openConfigurationManager(Build|ConfigurationManager).
2. Setthe'Debug'configurationastheactiveconfiguration.3. Selectthe'x86'platformthatyouplantobuildfromthedrop-down
list.4. EnsurethattheWiXprojectischeckedinthe'Build'column.5. EnsurethatanyprojectreferencesthattheWiXprojectusesarealso
checkedinthe'Build'column.6. Setthe'Release'configurationastheactiveconfiguration.7. Repeatsteps3-5toensurethattheWiXprojectandits
dependencieswillbuildforthe'Release'configuration.8. Ifyouplantobuildthe'x64'platform,repeatsteps3-7forthe'x64'
platform.9. CloseConfigurationManagerandsavethesolution.
Page 122
Step2:AddtheBuildConfigurationstoTFSBuild.projNowthatyouhaveaddedtheWiXprojectanditsdependentprojectstothe'x86'and/or'x64'buildconfigurations,TeamFoundationBuildwillbuildyourWiXprojectinthesebuildconfigurations.However,thesebuildconfigurationsmaynotbespecifiedinyourTeamFoundationBuildDefinition(TFSBuild.proj).
WhenyoucreateanewBuildDefinition,youcanselectthe'Debug/MixedPlatforms'and'Release/MixedPlatforms'buildconfigurationstobuildallprojectsinyoursolution,includingWiXprojects.
IfyouhaveanexistingBuildDefinition,youneedtousethefollowingstepstomodifyitsoitwillbuildWiXprojectsalongwiththeotherprojectsinyoursolution.
1. Right-clickontheBuildDefinitionandselectViewConfigurationFolder.
2. CheckoutandopenthefilenamedTFSBuild.proj.3. Addthefollowingbuildconfigurationstothe<ConfigurationToBuild>
sectioniftheydonotalreadyexistthere,orupdatethemiftheydoalreadyexist:
<ConfigurationToBuildInclude="Debug|MixedPlatforms"><FlavorToBuild>Debug</FlavorToBuild><PlatformToBuild>MixedPlatforms</PlatformToBuild></ConfigurationToBuild><ConfigurationToBuildInclude="Release|MixedPlatforms"><FlavorToBuild>Release</FlavorToBuild><PlatformToBuild>MixedPlatforms</PlatformToBuild></ConfigurationToBuild>
4. Close,saveandcheckinthechangestoTFSBuild.proj.
Aftermakingtheabovechangesandqueuingthebuild,youwillseefoldersnamed'Debug'and'Release'inthebuildoutput.Eachofthesefolderswillcontainasub-foldernamed'en-us'(oranotherculturedependingonthesettingsintheWiXproject)thatcontainsthebuilt
Page 123
WindowsInstallerpackage.
Page 124
HarvestDirectoryTargetTheHarvestDirectorytargetpassesHarvestDirectoryitemstotheHeatDirectorytasktogenerateauthoringfromafile.Authoringisgeneratedfortypelibrariesandself-registrationfromDllRegisterServerforanyfilesfoundindirectories.Thistargetisprocessedbeforecompilation.GeneratedauthoringisautomaticallyaddedtotheCompileitemgrouptobecompiledbytheCandletask.
<ItemGroup><HarvestDirectoryInclude="..\TestProject\Data"><DirectoryRefId>DataDir</DirectoryRefId></HarvestDirectory></ItemGroup>
ThefollowingtablesdescribethecommonWiXMSBuildpropertiesanditemsthatareapplicabletotheHarvestDirectorytarget.
Page 125
ItemsThefollowingitemsanditemmetadataareusedbytheHarvestDirectorytarget.
ItemorMetadata Description@(HarvestDirectory) Requireditemgroup.
Thelistofdirectoriestoharvest.
%(HarvestDirectory.ComponentGroupName)
Optionalstringmetadata.Ifyouareharvestingmultipledirectoriesinyourproject,youshouldspecifythismetadatatocreateuniquefilenamesforthegeneratedauthoring.
ThenameoftheComponentGrouptocreateforallthegeneratedauthoring.
%(HarvestDirectory.DirectoryRefId) Optionalstringmetadata.
TheIDofthedirectorytoreferenceinsteadofTARGETDIR.
%(HarvestDirectory.KeepEmptyDirectories)
Optionalbooleanmetadata.
WhethertocreateDirectoryentriesforemptydirectories.Thedefaultisfalse.
Page 126
%(HarvestDirectory.PreprocessorVariable) Optionalstringmetadata.
SubstituteSourceDirforanothervariablename(ex:var.Dir).
%(HarvestDirectory.SuppressCom) Optionalbooleanmetadata.
SuppressgenerationofCOMregistryelements.Thedefaultisfalse.
%(HarvestDirectory.SuppressRootDirectory)
Optionalbooleanmetadata.
SuppressgenerationofaDirectoryelementfortheparentdirectoryofthefile.Thedefaultisfalse.
%(HarvestDirectory.SuppressRegistry) Optionalbooleanmetadata.
Suppressgenerationofanyregistryelements.Thedefaultisfalse.
%(HarvestDirectory.Transforms) Optionalstringmetadata.
XSLtransformstoapplytothegeneratedWiXauthoring.Separatemultipletransformswithsemicolons.
Page 127
PropertiesThefollowingpropertiesareusedbytheHarvestDirectorytarget.
Property Description$(HarvestDirectoryAutogenerateGuids) Optionalboolean
Whethertogenerateauthoringthatreliesonauto-generationofcomponentGUIDs.Thedefaultis$(HarvestAutogenerateGuids)ifspecified;otherwise,true.
$(HarvestDirectoryComponentGroupName) Optionalstringproperty.Ifyouareharvestingmultipledirectoriesinyourproject,youshouldspecifythismetadatatocreateuniquefilenamesforthegeneratedauthoring.
Thecomponentgroupnamethatwillcontainallgeneratedauthoring.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestDirectoryDirectoryRefId) Optionalstringproperty.
TheidentifieroftheDirectoryelementthatwillcontainallgeneratedauthoring.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestDirectoryGenerateGuidsNow) Optionalboolean
Whethertogenerateauthoringthat
Page 128
generatesdurableGUIDswhenharvesting.Thedefaultis$(HarvestGenerateGuidsNow)ifspecified;otherwise,
$(HarvestDirectoryKeepEmptyDirectories) Optionalboolean
WhethertocreateDirectoryentriesforemptydirectorieswhenharvesting.Thedefaultisfalse.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestDirectoryNoLogo) Optionalboolean
Whethertoshowthelogoforheat.exe.Thedefaultis$(NoLogo)ifspecified;otherwise,false.
$(HarvestDirectoryPreprocessorVariable) Optionalstringproperty.
SubstituteSourceDirforanothervariablename(ex:var.Dir)inallgeneratedauthoring.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestDirectorySuppressAllWarnings) Optionalboolean
Specifiesthatallwarningsshouldbesuppressed.Thedefaultis$(HarvestSuppressAllWarnings)ifspecified;otherwise,
$(HarvestDirectorySuppressCom) Optionalboolean
WhethertosuppressgenerationofCOMregistryelementswhenharvestingfilesin
Page 129
directories.Thedefaultis
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestDirectorySuppressFragments) Optionalboolean
Whethertosuppressgenerationofseparatefragmentswhenharvesting.Thedefaultis$(HarvestSuppressFragments)ifspecified;otherwise,
$(HarvestDirectorySuppressRegistry) Optionalboolean
Whethertosuppressgenerationofallregistryelementswhenharvestingfilesindirectories.Thedefaultis
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestDirectorySuppressRootDirectory) Optionalboolean
WhethertosuppressgenerationofaDirectoryelementforallauthoringwhenharvesting.Thedefaultis
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestDirectorySuppressSpecificWarnings) Optionalstringparameter.
Specifiesthatcertainwarningsshouldbesuppressed.Thedefaultis$(HarvestSuppressSpecificWarnings)ifspecified.
$(HarvestDirectorySuppressUniqueIds) Optionalboolean
Page 130
WhethertosuppressgenerationofuniquecomponentIDs.Thedefaultis$(HarvestSuppressUniqueIds)specified;otherwise,
$(HarvestDirectoryTransforms) Optionalstringproperty.
XSLtransformstoapplytoallgeneratedWiXauthoring.Separatemultipletransformswithsemicolons.Thedefaultis$(HarvestTransforms)ifspecified.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestDirectoryTreatSpecificWarningsAsErrors) Optionalstringparameter.
Specifiesthatcertainwarningsshouldbetreatedaserrors.Thedefaultis$(HarvestTreatSpecificWarningsAsErrors)ifspecified.
$(HarvestDirectoryTreatWarningsAsErrors) Optionalboolean
Specifiesthatallwarningsshouldbetreatedaserrors.Thedefaultis$(HarvestTreatWarningsAsErrors)ifspecified;otherwise,
$(HarvestDirectoryVerboseOutput) Optionalboolean
Specifiesthatthetoolshouldprovideverboseoutput.Thedefaultis$(HarvestVerboseOutput)ifspecified;otherwise,false.
Page 131
HarvestFileTargetTheHarvestFiletargetpassesHarvestFileitemstotheHeatFiletasktogenerateauthoringfromafile.Authoringisgeneratedfortypelibrariesandself-registrationfromDllRegisterServer.Thistargetisprocessedbeforecompilation.GeneratedauthoringisautomaticallyaddedtotheCompileitemgrouptobecompiledbytheCandletask
<ItemGroup><HarvestFileInclude="comserver.dll"><ComponentGroupName>COM</ComponentGroupName><DirectoryRefId>ServerDir</DirectoryRefId></HarvestFile></ItemGroup>
ThefollowingtablesdescribethecommonWiXMSBuildpropertiesanditemsthatareapplicabletotheHarvestFiletarget.
Page 132
ItemsThefollowingitemsanditemmetadataareusedbytheHarvestFiletarget.
ItemorMetadata Description@(HarvestFile) Requireditemgroup.
Thelistoffilestoharvest.%(HarvestFile.ComponentGroupName)
Optionalstringmetadata.
ThenameoftheComponentGrouptocreateforallthegeneratedauthoring.
%(HarvestFile.DirectoryRefId) Optionalstringmetadata.
TheIDofthedirectorytoreferenceinsteadofTARGETDIR.
%(HarvestFile.PreprocessorVariable) Optionalstringmetadata.
SubstituteSourceDirforanothervariablename(ex:var.Dir).
%(HarvestFile.SuppressCom) Optionalbooleanmetadata.
SuppressgenerationofCOMregistryelements.Thedefaultisfalse.
%(HarvestFile.SuppressRootDirectory)
Optionalbooleanmetadata.
SuppressgenerationofaDirectoryelementfortheparentdirectoryofthefile.Thedefaultisfalse.
Page 133
%(HarvestFile.SuppressRegistry) Optionalbooleanmetadata.
Suppressgenerationofanyregistryelements.Thedefaultisfalse.
%(HarvestFile.Transforms) Optionalstringmetadata.
XSLtransformstoapplytothegeneratedWiXauthoring.Separatemultipletransformswithsemicolons.
Page 134
PropertiesThefollowingpropertiesareusedbytheHarvestFiletarget.
Property Description$(HarvestFileAutogenerateGuids) Optionalbooleanproperty.
Whethertogenerateauthoringthatreliesonauto-generationofcomponentGUIDs.Thedefaultis$(HarvestAutogenerateGuids)ifspecified;otherwise,true.
$(HarvestFileComponentGroupName) Optionalstringproperty.
Thecomponentgroupnamethatwillcontainallgeneratedauthoring.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestFileDirectoryRefId) Optionalstringproperty.
TheidentifieroftheDirectoryelementthatwillcontainallgeneratedauthoring.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestFileGenerateGuidsNow) Optionalbooleanproperty.
WhethertogenerateauthoringthatgeneratesdurableGUIDswhenharvesting.Thedefaultis$(HarvestGenerateGuidsNow)ifspecified;otherwise,false
Page 135
$(HarvestFileNoLogo) Optionalbooleanproperty.
Whethertoshowthelogoforheat.exe.Thedefaultis$(NoLogo)ifspecified;otherwise,false.
$(HarvestFilePreprocessorVariable) Optionalstringproperty.
SubstituteSourceDirforanothervariablename(ex:var.Dir)inallgeneratedauthoring.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestFileSuppressAllWarnings) Optionalbooleanparameter.
Specifiesthatallwarningsshouldbesuppressed.Thedefaultis$(HarvestSuppressAllWarnings)ifspecified;otherwise,false
$(HarvestFileSuppressCom) Optionalbooleanproperty.
WhethertosuppressgenerationofCOMregistryelementswhenharvesting.Thedefaultisfalse.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestFileSuppressFragments) Optionalbooleanproperty.
Whethertosuppressgenerationofseparatefragmentswhenharvesting.Thedefaultis$(HarvestSuppressFragments)ifspecified;otherwise,true
$(HarvestFileSuppressRegistry) Optionalbooleanproperty.
Page 136
Whethertosuppressgenerationofallregistryelementswhenharvesting.Thedefaultisfalse.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestFileSuppressRootDirectory) Optionalbooleanproperty.
WhethertosuppressgenerationofaDirectoryelementforallauthoringwhenharvesting.Thedefaultis
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestFileSuppressSpecificWarnings) Optionalstringparameter.
Specifiesthatcertainwarningsshouldbesuppressed.Thedefaultis$(HarvestSuppressSpecificWarnings)ifspecified.
$(HarvestFileSuppressUniqueIds) Optionalbooleanproperty.
WhethertosuppressgenerationofuniquecomponentIDs.Thedefaultis$(HarvestSuppressUniqueIds)specified;otherwise,false
$(HarvestFileTransforms) Optionalstringproperty.
XSLtransformstoapplytoallgeneratedWiXauthoring.Separatemultipletransformswithsemicolons.Thedefaultis$(HarvestTransforms)ifspecified.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
Page 137
$(HarvestFileTreatSpecificWarningsAsErrors) Optionalstringparameter.
Specifiesthatcertainwarningsshouldbetreatedaserrors.Thedefaultis$(HarvestTreatSpecificWarningsAsErrors)ifspecified.
$(HarvestFileTreatWarningsAsErrors) Optionalbooleanparameter.
Specifiesthatallwarningsshouldbetreatedaserrors.Thedefaultis$(HarvestTreatWarningsAsErrors)ifspecified;otherwise,false
$(HarvestFileVerboseOutput) Optionalbooleanparameter.
Specifiesthatthetoolshouldprovideverboseoutput.Thedefaultis$(HarvestVerboseOutput)ifspecified;otherwise,false.
Page 138
HarvestProjectsTargetTheHarvestProjectstargetpassesHarvestProjectitemstotheHeatProjecttasktogenerateauthoringfromaprojectfile.
Harvestingprojectsisdisabledbydefaultbecauseitmaynotalwaysworkcorrectly,butyoucanenableitbyaddingthefollowingtothetopofyourWiXprojectfile:
<PropertyGroup><EnableProjectHarvesting>True</EnableProjectHarvesting></PropertyGroup>
Ifenabled,thistargetisprocessedbeforecompilation.GeneratedauthoringisautomaticallyaddedtotheCompileitemgrouptobecompiledbytheCandletask.
<ItemGroup><HeatProjectInclude="..\TestProject\TestProject.csproj"><ProjectOutputGroups>Binaries;Sources</ProjectOutputGroups></HeatProject></ItemGroup>
ThefollowingtablesdescribethecommonWiXMSBuildpropertiesanditemsthatareapplicabletotheHarvestProjectstarget.
Page 139
ItemsThefollowingitemsanditemmetadataareusedbytheHarvestProjectstarget.
ItemorMetadata Description@(HarvestProject) Requireditemgroup.
Thelistofprojectstoharvest.TheHeatProjectitemgroupisprovidedonlyforbackwardcompatibility.
%(HarvestProject.ProjectOutputGroups)
Optionalstringmetadata.
Theprojectoutputgroupstoharvest.Separatemultipleoutputgroupswithsemicolons.Examplesinclude"Binaries"and"Source".
%(HarvestProject.Transforms) Optionalstringmetadata.
XSLtransformstoapplytothegeneratedWiXauthoring.Separatemultipletransformswithsemicolons.
Page 140
PropertiesThefollowingpropertiesareusedbytheHarvestProjectstarget.
Property Description$(HarvestProjectsAutogenerateGuids) Optionalbooleanproperty.
Whethertogenerateauthoringthatreliesonauto-generationofcomponentGUIDs.Thedefaultis$(HarvestAutogenerateGuids)ifspecified;otherwise,true.
$(HarvestProjectsGenerateGuidsNow) Optionalbooleanproperty.
WhethertogenerateauthoringthatgeneratesdurableGUIDswhenharvesting.Thedefaultis$(HarvestGenerateGuidsNow)ifspecified;otherwise,
$(HarvestProjectsNoLogo) Optionalbooleanproperty.
Whethertoshowthelogoforheat.exe.Thedefaultis$(NoLogo)ifspecified;otherwise,false.
$(HarvestProjectsProjectOutputGroups) Optionalstringproperty.
Theprojectoutputgroupstoharvestfromallprojects.Separatemultipleprojectoutputgroupswithsemicolons.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestProjectsSuppressAllWarnings) Optionalbooleanparameter.
Page 141
Specifiesthatallwarningsshouldbesuppressed.Thedefaultis$(HarvestSuppressAllWarnings)ifspecified;otherwise,
$(HarvestProjectsSuppressFragments) Optionalbooleanproperty.
Whethertosuppressgenerationofseparatefragmentswhenharvesting.Thedefaultis$(HarvestSuppressFragments)ifspecified;otherwise,
$(HarvestProjectsSuppressSpecificWarnings) Optionalstringparameter.
Specifiesthatcertainwarningsshouldbesuppressed.Thedefaultis$(HarvestSuppressSpecificWarnings)ifspecified.
$(HarvestProjectsSuppressUniqueIds) Optionalbooleanproperty.
WhethertosuppressgenerationofuniquecomponentIDs.Thedefaultis$(HarvestSuppressUniqueIds)specified;otherwise,
$(HarvestProjectsTransforms) Optionalstringproperty.
XSLtransformstoapplytoallgeneratedWiXauthoring.Separatemultipletransformswithsemicolons.Thedefaultis$(HarvestTransforms)ifspecified.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestProjectsTreatSpecificWarningsAsErrors) Optionalstringparameter.
Specifiesthatcertainwarningsshouldbetreatedaserrors.Thedefaultis$(HarvestTreatSpecificWarningsAsErrors)
Page 142
ifspecified.$(HarvestProjectsTreatWarningsAsErrors) Optionalbooleanparameter.
Specifiesthatallwarningsshouldbetreatedaserrors.Thedefaultis$(HarvestTreatWarningsAsErrors)ifspecified;otherwise,
$(HarvestProjectsVerboseOutput) Optionalbooleanparameter.
Specifiesthatthetoolshouldprovideverboseoutput.Thedefaultis$(HarvestVerboseOutput)ifspecified.
Page 143
CandleTaskTheCandletaskwrapscandle.exe,theWiXcompiler.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.Tocontrolthesesettingsinyour.wixprojfile,youcancreateaPropertyGroupandspecifythesettingsthatyouwanttouseforyourbuildprocess.ThefollowingisasamplePropertyGroupthatcontainssettingsthatwillbeusedbytheCandletask:
<PropertyGroup><CompilerTreatWarningsAsErrors>False</CompilerTreatWarningsAsErrors><CompilerVerboseOutput>True</CompilerVerboseOutput><DefineConstants>Variable1=value1;Variable2=value2</DefineConstants><InstallerPlatform>x86</InstallerPlatform><SuppressSpecificWarnings>1111</SuppressSpecificWarnings><TreatSpecificWarningsAsErrors>2222</TreatSpecificWarningsAsErrors></PropertyGroup>
ThefollowingtabledescribesthecommonWiXMSBuildparametersthatareapplicabletotheCandletask.
Parameter DescriptionSuppressAllWarnings Optionalbooleanparameter.
Specifiesthatallwarningsshouldbesuppressed.Thisisequivalenttothe-swswitch.
SuppressSchemaValidation Optionalbooleanparameter.
Specifiesthatschemavalidationofdocumentsshouldbesuppressed.Thisisequivalenttothe-ssswitch.
SuppressSpecificWarnings Optionalstringparameter.
Specifiesthatcertainwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switch.
TreatSpecificWarningsAsErrors Optionalstringparameter.
Page 144
Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switch.
TreatWarningsAsErrors Optionalbooleanparameter.
Specifiesthatallwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitch.
VerboseOutput Optionalbooleanparameter.
Specifiesthatthetoolshouldprovideverboseoutput.Thisisequivalenttothe-vswitch.
ThefollowingtabledescribestheparametersthatarespecifictotheCandletask.
Parameter DescriptionCompilerAdditionalOptions Optionalstringparameter.
Specifiesadditionalcommandlineparameterstoappendwhencallingcandle.exe.
CompilerSuppressAllWarnings Optionalbooleanparameter.
Specifiesthatallcompilerwarningsshouldbesuppressed.Thisisequivalenttothe-swswitchincandle.exe.
CompilerSuppressSchemaValidation Optionalbooleanparameter.
Specifiesthatthecompilershouldsuppressschema
Page 145
validationofdocuments.Thisisequivalenttothe-ssswitchincandle.exe.
CompilerSuppressSpecificWarnings Optionalstringparameter.
Specifiesthatcertaincompilerwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switchincandle.exe.
CompilerTreatSpecificWarningsAsErrors Optionalstringparameter.
Specifiesthatcertaincompilerwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switchincandle.exe.
CompilerTreatWarningsAsErrors Optionalbooleanparameter.
Specifiesthatallcompilerwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitchincandle.exe.
CompilerVerboseOutput Optionalbooleanparameter.
Specifiesthatthecompilershouldprovideverboseoutput.Thisisequivalenttothe-vswitchincandle.exe.
DefineConstants Optionalstringparameter.
Specifiesasemicolon-delimitedlistofpreprocessorvariables.
Page 146
Thisisequivalenttothe-d<name>[=<value>]switchincandle.exe.
SuppressFilesVitalByDefault Optionalbooleanparameter.
Specifiesthatthecompilershouldsuppressmarkingfilesasvitalbydefault.Thisisequivalenttothe-sfdvitalswitchincandle.exe.
PreprocessToStdOut Optionalbooleanparameter.
Specifiesthatthecompilershouldoutputpreprocessinginformationtostdout.Thisisequivalenttothe-pswitchincandle.exe.
PreprocessToFile Optionalstringparameter.
Specifiesthatthecompilershouldoutputpreprocessinginformationtoafile.Thisisequivalenttothe-p<file>switchincandle.exe.
IncludeSearchPaths Optionalstringparameter.
Specifiesdirectoriestoaddtothecompilerincludesearchpath.Thisisequivalenttothe-I<dir>switchincandle.exe.
InstallerPlatform Optionalstringparameter.
Page 147
Specifiestheprocessorarchitectureforthepackage.Validvaluesarex86,x64,andia64.(Deprecatedvaluesincludeintelforx86andintel64foria64.)Thisisequivalenttothe-archswitchincandle.exe.
Setsthesys.BUILDARCHpreprocessorvariableand,whenthevalueisx64oria64,defaultstheWin64attributeto"yes"onallPackage,Component,CustomAction,andRegistrySearchelementsinthesourcefile.
OnlyValidateDocuments Optionalbooleanparameter.
Specifiesthatthecompilershouldonlyvalidatedocuments.Thisisequivalenttothe-zsswitchincandle.exe.
Pedantic Optionalbooleanparameter.
Specifiesthatthecompilershoulddisplaypedanticmessages.Thisisequivalenttothe-pedanticswitchincandle.exe.
ShowSourceTrace Optionalbooleanparameter.
Page 148
Specifiesthatthecompilershouldshowsourcetraceinformationforerrors,warningsandverbosemessages.Thisisequivalenttothe-traceswitchincandle.exe.
Page 149
HeatDirectoryTaskTheHeatDirectorytaskwrapsheat.exe,theWiXharvester,usingthedirharvestingtype.Authoringisgeneratedfortypelibrariesandself-registrationfromDllRegisterServerforanyfilesfoundindirectories.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.Tocontrolthesesettingsinyour.wixprojfile,youcancreateaPropertyGroupandspecifythesettingsthatyouwanttouseforyourbuildprocess.ThefollowingisasamplePropertyGroupthatcontainssettingsthatwillbeusedbytheHeatDirectorytask:
<HeatDirectoryNoLogo="$(HarvestDirectoryNoLogo)"SuppressAllWarnings="$(HarvestDirectorySuppressAllWarnings)"SuppressSpecificWarnings="$(HarvestDirectorySuppressSpecificWarnings)"ToolPath="$(WixToolPath)"TreatWarningsAsErrors="$(HarvestDirectoryTreatWarningsAsErrors)"TreatSpecificWarningsAsErrors="$(HarvestDirectoryTreatSpecificWarningsAsErrors)VerboseOutput="$(HarvestDirectoryVerboseOutput)"AutogenerateGuids="$(HarvestDirectoryAutogenerateGuids)"GenerateGuidsNow="$(HarvestDirectoryGenerateGuidsNow)"OutputFile="$(IntermediateOutputPath)_%(HarvestDirectory.Filename)_dir.wxsSuppressFragments="$(HarvestDirectorySuppressFragments)"SuppressUniqueIds="$(HarvestDirectorySuppressUniqueIds)"Transforms="%(HarvestDirectory.Transforms)"Directory="@(HarvestDirectory)"ComponentGroupName="%(HarvestDirectory.ComponentGroupName)"DirectoryRefId="%(HarvestDirectory.DirectoryRefId)"KeepEmptyDirectories="%(HarvestDirectory.KeepEmptyDirectories)"PreprocessorVariable="%(HarvestDirectory.PreprocessorVariable)"SuppressCom="%(HarvestDirectory.SuppressCom)"SuppressRootDirectory="%(HarvestDirectory.SuppressRootDirectory)"SuppressRegistry="%(HarvestDirectory.SuppressRegistry)"/>
ThefollowingtabledescribesthecommonWiXMSBuildparametersthatareapplicabletotheHeatDirectorytask.
Page 150
Parameter DescriptionNoLogo Optionalbooleanparameter.
Specifiesthatthetoollogoshouldbesuppressed.Thedefaultisfalse.Thisisequivalenttothe-nologoswitch.
SuppressAllWarnings Optionalbooleanparameter.
Specifiesthatallwarningsshouldbesuppressed.Thedefaultisfalse.Thisisequivalenttothe-swswitch.
SuppressSpecificWarnings Optionalstringparameter.
Specifiesthatcertainwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switch.
TreatSpecificWarningsAsErrors Optionalstringparameter.
Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switch.
TreatWarningsAsErrors Optionalbooleanparameter.
Specifiesthatallwarningsshouldbetreatedaserrors.Thedefaultisfalse.Thisisequivalenttothe-wxswitch.
VerboseOutput Optionalbooleanparameter.
Specifiesthatthetoolshouldprovideverboseoutput.Thedefaultisfalse.Thisisequivalenttothe-vswitch.
ThefollowingtabledescribestheparametersthatarecommontoallheattasksthatareapplicabletotheHeatDirectorytask.
Page 151
Parameter DescriptionAutogenerateGuids Optionalbooleanparameter.
Whethertogenerateauthoringthatreliesonauto-generationofcomponentGUIDs.Thedefaultis$(HarvestAutogenerateGuids)ifspecified;otherwise,true.
GenerateGuidsNow Optionalbooleanparameter.
WhethertogenerateauthoringthatgeneratesdurableGUIDswhenharvesting.Thedefaultis$(HarvestGenerateGuidsNow)ifspecified;otherwise,false.
OutputFile Requireditemparameter.
Specifiestheoutputfilethatcontainsthegeneratedauthoring.
SuppressFragments Optionalbooleanparameter.
Whethertosuppressgenerationofseparatefragmentswhenharvesting.Thedefaultis$(HarvestSuppressFragments)ifspecified;otherwise,true.
SuppressUniqueIds Optionalbooleanparameter.
WhethertosuppressgenerationofuniquecomponentIDs.Thedefaultis$(HarvestSuppressUniqueIds)ifspecified;otherwise,false.
Transforms Optionalstringparameter.
XSLtransformstoapplytoallgeneratedWiXauthoring.Separatemultipletransformswithsemicolons.Thedefaultis$(HarvestTransforms)ifspecified.
Page 152
ThefollowingtabledescribestheparametersthatarespecifictotheHeatDirectorytask.
Parameter DescriptionDirectory Requireditemgroupparameter.
Thelistofdirectoriestoharvest.ComponentGroupName Optionalstringparameter.Ifyouare
harvestingmultipledirectoriesinyourproject,youshouldspecifythismetadatatocreateuniquefilenamesforthegeneratedauthoring.
ThenameoftheComponentGrouptocreateforallthegeneratedauthoring.
DirectoryRefId Optionalstringparameter.
TheIDofthedirectorytoreferenceinsteadofTARGETDIR.
KeepEmptyDirectories Optionalbooleanparameter.
WhethertocreateDirectoryentriesforemptydirectories.
PreprocessorVariable Optionalstringparameter.
SubstituteSourceDirforanothervariablename(ex:var.Dir).
SuppressCom Optionalbooleanparameter.
SuppressgenerationofCOMregistryelements.Thedefaultisfalse.
SuppressRegistry Optionalbooleanparameter.
Suppressgenerationofanyregistryelements.Thedefaultisfalse.
SuppressRootDirectory Optionalbooleanparameter.
Page 153
SuppressgenerationofaDirectoryelementfortheparentdirectoryofthefile.Thedefaultisfalse.
Page 154
HeatFileTaskTheHeatFiletaskwrapsheat.exe,theWiXharvester,usingthefileharvestingtype.Authoringisgeneratedfortypelibrariesandself-registrationfromDllRegisterServer.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.Tocontrolthesesettingsinyour.wixprojfile,youcancreateaPropertyGroupandspecifythesettingsthatyouwanttouseforyourbuildprocess.ThefollowingisasamplePropertyGroupthatcontainssettingsthatwillbeusedbytheHeatFiletask:
<HeatFileNoLogo="$(HarvestFileNoLogo)"SuppressAllWarnings="$(HarvestFileSuppressAllWarnings)"SuppressSpecificWarnings="$(HarvestFileSuppressSpecificWarnings)"ToolPath="$(WixToolPath)"TreatWarningsAsErrors="$(HarvestFileTreatWarningsAsErrors)"TreatSpecificWarningsAsErrors="$(HarvestFileTreatSpecificWarningsAsErrors)VerboseOutput="$(HarvestFileVerboseOutput)"AutogenerateGuids="$(HarvestFileAutogenerateGuids)"GenerateGuidsNow="$(HarvestFileGenerateGuidsNow)"OutputFile="$(IntermediateOutputPath)_%(HarvestFile.Filename)_file.wxs"SuppressFragments="$(HarvestFileSuppressFragments)"SuppressUniqueIds="$(HarvestFileSuppressUniqueIds)"Transforms="%(HarvestFile.Transforms)"File="@(HarvestFile)"ComponentGroupName="%(HarvestFile.ComponentGroupName)"DirectoryRefId="%(HarvestFile.DirectoryRefId)"PreprocessorVariable="%(HarvestFile.PreprocessorVariable)"SuppressCom="%(HarvestFile.SuppressCom)"SuppressRegistry="%(HarvestFile.SuppressRegistry)"SuppressRootDirectory="%(HarvestFile.SuppressRootDirectory)"/>
ThefollowingtabledescribesthecommonWiXMSBuildparametersthatareapplicabletotheHeatFiletask.
Parameter Description
Page 155
NoLogo Optionalbooleanparameter.
Specifiesthatthetoollogoshouldbesuppressed.Thedefaultisfalse.Thisisequivalenttothe-nologoswitch.
SuppressAllWarnings Optionalbooleanparameter.
Specifiesthatallwarningsshouldbesuppressed.Thedefaultisfalse.Thisisequivalenttothe-swswitch.
SuppressSpecificWarnings Optionalstringparameter.
Specifiesthatcertainwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switch.
TreatSpecificWarningsAsErrors Optionalstringparameter.
Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switch.
TreatWarningsAsErrors Optionalbooleanparameter.
Specifiesthatallwarningsshouldbetreatedaserrors.Thedefaultisfalse.Thisisequivalenttothe-wxswitch.
VerboseOutput Optionalbooleanparameter.
Specifiesthatthetoolshouldprovideverboseoutput.Thedefaultisfalse.Thisisequivalenttothe-vswitch.
ThefollowingtabledescribestheparametersthatarecommontoallheattasksthatareapplicabletotheHeatFiletask.
Page 156
Parameter DescriptionAutogenerateGuids Optionalbooleanparameter.
Whethertogenerateauthoringthatreliesonauto-generationofcomponentGUIDs.Thedefaultis$(HarvestAutogenerateGuids)ifspecified;otherwise,true.
GenerateGuidsNow Optionalbooleanparameter.
WhethertogenerateauthoringthatgeneratesdurableGUIDswhenharvesting.Thedefaultis$(HarvestGenerateGuidsNow)ifspecified;otherwise,false.
OutputFile Requireditemparameter.
Specifiestheoutputfilethatcontainsthegeneratedauthoring.
SuppressFragments Optionalbooleanparameter.
Whethertosuppressgenerationofseparatefragmentswhenharvesting.Thedefaultis$(HarvestSuppressFragments)ifspecified;otherwise,true.
SuppressUniqueIds Optionalbooleanparameter.
WhethertosuppressgenerationofuniquecomponentIDs.Thedefaultis$(HarvestSuppressUniqueIds)ifspecified;otherwise,false.
Transforms Optionalstringparameter.
XSLtransformstoapplytoallgeneratedWiXauthoring.Separatemultipletransformswithsemicolons.Thedefaultis$(HarvestTransforms)ifspecified.
Page 157
ThefollowingtabledescribestheparametersthatarespecifictotheHeatFiletask.
Parameter DescriptionFile Requireditemgroupparameter.
Thelistoffilestoharvest.ComponentGroupName Optionalstringparameter.
ThenameoftheComponentGrouptocreateforallthegeneratedauthoring.
DirectoryRefId Optionalstringparameter.
TheIDofthedirectorytoreferenceinsteadofTARGETDIR.
PreprocessorVariable Optionalstringparameter.
SubstituteSourceDirforanothervariablename(ex:var.Dir).
SuppressCom Optionalbooleanparameter.
SuppressgenerationofCOMregistryelements.Thedefaultisfalse.
SuppressRegistry Optionalbooleanparameter.
SuppressgenerationofaDirectoryelementfortheparentdirectoryofthefile.Thedefaultisfalse.
SuppressRootDirectory Optionalbooleanparameter.
Suppressgenerationofanyregistryelements.Thedefaultisfalse.
Page 158
HeatProjectTaskTheHeatProjecttaskwrapsheat.exe,theWiXharvester,usingtheprojectharvestingtype.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.Tocontrolthesesettingsinyour.wixprojfile,youcancreateaPropertyGroupandspecifythesettingsthatyouwanttouseforyourbuildprocess.ThefollowingisasamplePropertyGroupthatcontainssettingsthatwillbeusedbytheHeatProjecttask:
<HeatProjectNoLogo="$(HarvestProjectsNoLogo)"SuppressAllWarnings="$(HarvestProjectsSuppressAllWarnings)"SuppressSpecificWarnings="$(HarvestProjectsSuppressSpecificWarnings)"ToolPath="$(WixToolPath)"TreatWarningsAsErrors="$(HarvestProjectsTreatWarningsAsErrors)"TreatSpecificWarningsAsErrors="$(HarvestProjectsTreatSpecificWarningsAsErrors)VerboseOutput="$(HarvestProjectsVerboseOutput)"AutogenerateGuids="$(HarvestProjectsAutogenerateGuids)"GenerateGuidsNow="$(HarvestProjectsGenerateGuidsNow)"OutputFile="$(IntermediateOutputPath)_%(_Project.Filename).wxs"SuppressFragments="$(HarvestProjectsSuppressFragments)"SuppressUniqueIds="$(HarvestProjectsSuppressUniqueIds)"Transforms="%(_Project.Transforms)"Project="@(_Project)"ProjectOutputGroups="%(_Project.ProjectOutputGroups)"/>
ThefollowingtabledescribesthecommonWiXMSBuildparametersthatareapplicabletotheHeatProjecttask.
Parameter DescriptionNoLogo Optionalbooleanparameter.
Specifiesthatthetoollogoshouldbesuppressed.Thedefaultisfalse.Thisisequivalenttothe-nologoswitch.
Page 159
SuppressAllWarnings Optionalbooleanparameter.
Specifiesthatallwarningsshouldbesuppressed.Thedefaultisfalse.Thisisequivalenttothe-swswitch.
SuppressSpecificWarnings Optionalstringparameter.
Specifiesthatcertainwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switch.
TreatSpecificWarningsAsErrors Optionalstringparameter.
Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switch.
TreatWarningsAsErrors Optionalbooleanparameter.
Specifiesthatallwarningsshouldbetreatedaserrors.Thedefaultisfalse.Thisisequivalenttothe-wxswitch.
VerboseOutput Optionalbooleanparameter.
Specifiesthatthetoolshouldprovideverboseoutput.Thedefaultisfalse.Thisisequivalenttothe-vswitch.
ThefollowingtabledescribestheparametersthatarecommontoallheattasksthatareapplicabletotheHeatProjecttask.
Parameter DescriptionAutogenerateGuids Optionalbooleanparameter.
Whethertogenerateauthoringthatreliesonauto-generationofcomponentGUIDs.Thedefaultis$(HarvestAutogenerateGuids)if
Page 160
specified;otherwise,true.GenerateGuidsNow Optionalbooleanparameter.
WhethertogenerateauthoringthatgeneratesdurableGUIDswhenharvesting.Thedefaultis$(HarvestGenerateGuidsNow)ifspecified;otherwise,false.
OutputFile Requireditemparameter.
Specifiestheoutputfilethatcontainsthegeneratedauthoring.
SuppressFragments Optionalbooleanparameter.
Whethertosuppressgenerationofseparatefragmentswhenharvesting.Thedefaultis$(HarvestSuppressFragments)ifspecified;otherwise,true.
SuppressUniqueIds Optionalbooleanparameter.
WhethertosuppressgenerationofuniquecomponentIDs.Thedefaultis$(HarvestSuppressUniqueIds)ifspecified;otherwise,false.
Transforms Optionalstringparameter.
XSLtransformstoapplytoallgeneratedWiXauthoring.Separatemultipletransformswithsemicolons.Thedefaultis$(HarvestTransforms)ifspecified.
ThefollowingtabledescribestheparametersthatarespecifictotheHeatProjecttask.
Parameter DescriptionProject Requireditemgroupparameter.
Page 161
Thelistofprojectstoharvest.ProjectOutputGroups Optionalstringparameter.
Theprojectoutputgroupstoharvest.Separatemultipleoutputgroupswithsemicolons.Examplesinclude"Binaries"and"Source".
Page 162
InsigniaTaskTheInsigniataskwrapsinsignia.exe,theWiXinscribing/signingtool.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.Tocontrolthesesettingsinyour.wixprojfile,youcancreateaPropertyGroupandspecifythesettingsthatyouwanttouseforyourprocess.YoucanrefertotheCandleTaskfordetailsabouthowtosetupaPropertyGroup.
ThefollowingtabledescribesthecommonWiXMSBuildparametersthatareapplicabletotheInsigniatask.
Parameter DescriptionSuppressAllWarnings Optionalbooleanparameter.
Specifiesthatallwarningsshouldbesuppressed.Thisisequivalenttothe-swswitch.
SuppressSpecificWarnings Optionalstringparameter.
Specifiesthatcertainwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switch.
TreatSpecificWarningsAsErrors Optionalstringparameter.
Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switch.
TreatWarningsAsErrors Optionalbooleanparameter.
Specifiesthatallwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitch.
VerboseOutput Optionalbooleanparameter.
Specifiesthatthetoolshouldprovide
Page 163
verboseoutput.Thisisequivalenttothe-vswitch.
ThefollowingtabledescribestheparametersthatarespecifictotheInsigniatask.
Parameter DescriptionBundleFile Optionalstringparameter.
Specifythebundlefiletobeusedeithertoextracttheenginefromortosign.
OriginalBundleFile Optionalstringparameter.
Specifytheoriginalbundlefiletobeusedforreattachinganenginebundle.
DatabaseFile Optionalstringparameter.
Specifiesthemsipackagetoinscribe.OutputFile Optionalstringparameter.
Specifiestheoutputfileinallcases.Inthecaseofsingingabundle,itspecifiesthesignedbundle.Inthecaseofdetachingtheengine,itspecifiesthedetachedenginefile.Lastly,whenreattachingtheengine,itspecifiesthenewbundlewiththereattachedengine.
NoLogo Optionalbooleanparameter.
Skipprintinginsignialogoinformation.
Page 164
LightTaskTheLighttaskwrapslight.exe,theWiXlinker.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.Tocontrolthesesettingsinyour.wixprojfile,youcancreateaPropertyGroupandspecifythesettingsthatyouwanttouseforyourbuildprocess.ThefollowingisasamplePropertyGroupthatcontainssettingsthatwillbeusedbytheLighttask:
<PropertyGroup><LinkerTreatWarningsAsErrors>False</LinkerTreatWarningsAsErrors><LinkerVerboseOutput>True</LinkerVerboseOutput><SuppressIces>ICE18;ICE45;ICE82</SuppressIces><SuppressSpecificWarnings>1111</SuppressSpecificWarnings><TreatSpecificWarningsAsErrors>2222</TreatSpecificWarningsAsErrors><WixVariables>Variable1=value1;Variable2=value2</WixVariables></PropertyGroup>
ThefollowingtabledescribesthecommonWiXMSBuildparametersthatareapplicabletotheLighttask.
Parameter DescriptionBindInputPaths Optionalstring
parameter.
Specifiesabinderpaththatshouldbeusedtolocateallfiles.Thisisequivalenttothe-b<path>switch.NamedBindPathsarecreatedbyprefixingthe2-or-more-characterbucketnamefollowedbyanequalsign("=")tothesuppliedpath.
BindFiles Optionalbooleanparameter.
Page 165
Specifiesthatthetoolshouldbindfilesintoa.wixoutfile.ThisisonlyvalidwhentheOutputAsXmlparameterisalsoprovided.Thisisequivalenttothe-bfswitch.
Pedantic Optionalbooleanparameter.
Specifiesthatthetoolshoulddisplaypedanticmessages.Thisisequivalenttothe-pedanticswitch.
SuppressAllWarnings Optionalbooleanparameter.
Specifiesthatallwarningsshouldbesuppressed.Thisisequivalenttothe-swswitch.
SuppressIntermediateFileVersionMatching Optionalbooleanparameter.
Specifiesthatthetoolshouldsuppressintermediatefileversionmismatchchecking.Thisisequivalenttothe-svswitch.
SuppressSchemaValidation Optionalbooleanparameter.
Specifiesthatschemavalidationofdocuments
Page 166
shouldbesuppressed.Thisisequivalenttothe-ssswitch.
SuppressSpecificWarnings Optionalstringparameter.
Specifiesthatcertainwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switch.
TreatSpecificWarningsAsErrors Optionalstringparameter.
Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switch.
TreatWarningsAsErrors Optionalbooleanparameter.
Specifiesthatallwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitch.
VerboseOutput Optionalbooleanparameter.
Specifiesthatthetoolshouldprovideverboseoutput.Thisisequivalenttothe-vswitch.
ThefollowingtabledescribestheparametersthatarespecifictotheLighttask.
Page 167
Parameter DescriptionAllowIdenticalRows Optionalboolean
parameter.
Specifiesthatthelinkershouldallowidenticalrows.Identicalrowswillbetreatedaswarnings.Thisisequivalenttothe-aiswitchinlight.exe.
AllowDuplicateDirectoryIds Optionalbooleanparameter.
Specifiesthatthelinkershouldallowduplicatedirectoryidentifiers.Thisallowsduplicatedirectoriesfromdifferentlibrariestobemergedintotheproduct.Thisisequivalenttothe-adswitchinlight.exe.
AllowUnresolvedReferences Optionalbooleanparameter.
Specifiesthatthelinkershouldallowunresolvedreferences.Thiswillnotcreatevalidoutput.Thisisequivalenttothe-auswitchinlight.exe.
AdditionalCub Optionalstringparameter.
Specifiesanadditional.cubfilethatthelinkershouldusewhenrunningICEvalidation.Thisis
Page 168
equivalenttothe-cub<file.cub>switchinlight.exe.
BackwardsCompatibleGuidGeneration Optionalbooleanparameter.
SpecifiesthatthelinkershouldusethebackwardcompatibleGUIDgenerationalgorithm.Thisisequivalenttothe-bcggswitchinlight.exe.
CabinetCachePath Optionalstringparameter.
Specifiesapaththatthelinkershouldusetocachebuiltcabinetfiles.Thisisequivalenttothe-cc<path>switchinlight.exe.
CabinetCreationThreadCount Optionalintegerparameter.
Specifiesthatnumberofthreadsthatthelinkershouldusewhenbuildingcabinetfiles.Thisisequivalenttothe-ct<N>switchinlight.exe.
Cultures Optionalstringparameter.
Specifiesasemicolonorcommadelimitedlistoflocalizedstringculturestoloadfrom.wxlfilesandlibraries.Precedenceofculturesisfromleftto
Page 169
right.Thisisequivalenttothe-cultures:<cultures>switchinlight.exe.
DefaultCompressionLevel Optionalstringparameter.
Specifiesthecompressionlevelthatthelinkershouldusewhenbuildingcabinetfiles.Validvaluesarelow,medium,high,noneandmszip.Thisisequivalenttothe-dcl:<level>switchinlight.exe.
DropUnrealTables Optionalbooleanparameter.
Specifiesthatthelinkershoulddropunrealtablesfromtheoutputimage.Thisisequivalenttothe-dutswitchinlight.exe.
ExactAssemblyVersions Optionalbooleanparameter.
Specifiesthatthelinkershoulduseexactassemblyversions.Thisisequivalenttothe-eavswitchinlight.exe.
Ices Optionalstringparameter.
Specifiesthatthelinkershouldrunspecificinternalconsistencyevaluators(ICEs).Thisis
Page 170
equivalenttothe-ice:<ICE>switchinlight.exe.
LeaveTemporaryFiles Optionalbooleanparameter.
Specifiesthatthelinkershouldnotdeletetemporaryfiles.Thisisequivalenttothe-notidyswitchinlight.exe.
LinkerAdditionalOptions Optionalstringparameter.
Specifiesadditionalcommandlineparameterstoappendwhencallinglight.exe.
LinkerBindInputPaths Optionalstringparameter.
Specifiesabinderpaththatthelinkershouldusetolocateallfiles.Thisisequivalenttothe-b<path>switchinlight.exe.NamedBindPathsarecreatedbyprefixingthe2-or-more-characterbucketnamefollowedbyanequalsign("=")tothesuppliedpath.
LinkerBindFiles Optionalbooleanparameter.
Specifiesthatthelinkershouldbindfilesintoa.wixoutfile.Thisisonlyvalidwhenthe
Page 171
OutputAsXmlparameterisalsoprovided.Thisisequivalenttothe-bfswitchinlight.exe.
LinkerPedantic Optionalbooleanparameter.
Specifiesthatthelinkershoulddisplaypedanticmessages.Thisisequivalenttothe-pedanticswitchinlight.exe.
LinkerSuppressAllWarnings Optionalbooleanparameter.
Specifiesthatalllinkerwarningsshouldbesuppressed.Thisisequivalenttothe-swswitchinlight.exe.
LinkerSuppressIntermediateFileVersionMatching Optionalbooleanparameter.
Specifiesthatthelinkershouldsuppressintermediatefileversionmismatchchecking.Thisisequivalenttothe-svswitchinlight.exe.
LinkerSuppressSchemaValidation Optionalbooleanparameter.
Specifiesthatthelinkershouldsuppressschemavalidationofdocuments.Thisisequivalenttothe-ssswitchinlight.exe.
Page 172
LinkerSuppressSpecificWarnings Optionalstringparameter.
Specifiesthatcertainlinkerwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switchinlight.exe.
LinkerTreatSpecificWarningsAsErrors Optionalstringparameter.
Specifiesthatcertainlinkerwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switchinlight.exe.
LinkerTreatWarningsAsErrors Optionalbooleanparameter.
Specifiesthatalllinkerwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitchinlight.exe.
LinkerVerboseOutput Optionalbooleanparameter.
Specifiesthatthelinkershouldprovideverboseoutput.Thisisequivalenttothe-vswitchinlight.exe.
OutputAsXml Optionalbooleanparameter.
Specifiesthatthelinkershouldoutputa.wixout
Page 173
fileinsteadofa.msifile.Thisisequivalenttothe-xoswitchinlight.exe.
PdbOutputFile Optionalstringparameter.
Specifiesthatthelinkershouldcreatetheoutput.wixpdbfilewiththeprovidedname.Thisisequivalenttothe-pdbout<output.wixpdb>switchinlight.exe.
ReuseCabinetCache Optionalbooleanparameter.
Specifiesthatthelinkershouldreusecabinetfilesfromthecabinetcache.Thisisequivalenttothe-reusecabswitchinlight.exe.
SetMsiAssemblyNameFileVersion Optionalbooleanparameter.
SpecifiesthatthelinkershouldaddafileVersionentrytotheMsiAssemblyNametableforeachassembly.Thisisequivalenttothe-fvswitchinlight.exe.
SuppressAclReset Optionalbooleanparameter.
SpecifiesthatthelinkershouldsuppressresettingACLs.Thisisusefulwhen
Page 174
layingoutanimagetoanetworkshare.Thisisequivalenttothe-saclswitchinlight.exe.
SuppressAssemblies Optionalbooleanparameter.
Specifiesthatthelinkershouldnotgetassemblynameinformationforassemblies.Thisisequivalenttothe-saswitchinlight.exe.
SuppressDefaultAdminSequenceActions Optionalbooleanparameter.
Specifiesthatthelinkershouldsuppressdefaultadminsequenceactions.Thisisequivalenttothe-sadminswitchinlight.exe.
SuppressDefaultAdvSequenceActions Optionalbooleanparameter.
Specifiesthatthelinkershouldsuppressdefaultadvertisedsequenceactions.Thisisequivalenttothe-sadvswitchinlight.exe.
SuppressDefaultUISequenceActions Optionalbooleanparameter.
SpecifiesthatthelinkershouldsuppressdefaultUIsequenceactions.Thisisequivalenttothe-uiswitchinlight.exe.
Page 175
SuppressFileHashAndInfo Optionalbooleanparameter.
Specifiesthatthelinkershouldsuppressgatheringfileinformation(hash,version,language,etc).Thisisequivalenttothe-shswitchinlight.exe.
SuppressFiles Optionalbooleanparameter.
Specifiesthatthelinkershouldsuppressgatheringallfiledata.ThishasthesameeffectassettingtheSuppressAssembliesadnSuppressFileHashAndInfoparameters.Thisisequivalenttothe-sfswitchinlight.exe.
SuppressIces Optionalstringparameter.
SpecifiesthatthelinkershouldsuppressrunningspecificICEs.Thisisequivalenttothe-sice:<ICE>switchinlight.exe.
SuppressLayout Optionalbooleanparameter.
Specifiesthatthelinkershouldsuppresslayoutcreation.Thisisequivalenttothe-slswitchinlight.exe.
Page 176
SuppressMsiAssemblyTableProcessing Optionalbooleanparameter.
SpecifiesthatthelinkershouldsuppressprocessingthedataintheMsiAssemblytable.Thisisequivalenttothe-smaswitchinlight.exe.
SuppressPatchSequenceData Optionalbooleanparameter.
SpecifiesthatthelinkershouldsuppresspatchsequencedatainpatchXMLtodecreasebundlesizeandincreasepatchapplicabilityperformance(patchpackagesthemselvesarenotmodified).
SuppressPdbOutput Optionalbooleanparameter.
Specifiesthatthelinkershouldsuppressoutputting.wixpdbfiles.Thisisequivalenttothe-spdbswitchinlight.exe.
SuppressValidation Optionalbooleanparameter.
Specifiesthatthelinkershouldsuppress.msiand.msmvalidation.Thisisequivalenttothe-svalswitchinlight.exe.
SuppressTagSectionIdAttributeOnTuples Optionalboolean
Page 177
parameter.
SpecifiesthatthelinkershouldsuppressaddingthesectionIdattributeonrows.Thisisequivalenttothe-stsswitchinlight.exe.
UnreferencedSymbolsFile Optionalstringparameter.
Specifiesanunreferencedsymbolsfilethatthelinkershoulduse.Thisisequivalenttothe-usf<output.xml>switchinlight.exe.
WixVariables Optionalstringparameter.
Specifiesasemicolon-delimitedlistofbind-timeWiXvariables.Thisisequivalenttothe-d<name>[=<value>]switchinlight.exe.
Page 178
LitTaskTheLittaskwrapslit.exe,theWiXlibrarycreationtool.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.Tocontrolthesesettingsinyour.wixprojfile,youcancreateaPropertyGroupandspecifythesettingsthatyouwanttouseforyourbuildprocess.ThefollowingisasamplePropertyGroupthatcontainssettingsthatwillbeusedbytheLittask:
<PropertyGroup><LibTreatWarningsAsErrors>False</LibTreatWarningsAsErrors><LibVerboseOutput>True</LibVerboseOutput><SuppressSpecificWarnings>1111</SuppressSpecificWarnings><TreatSpecificWarningsAsErrors>2222</TreatSpecificWarningsAsErrors></PropertyGroup>
ThefollowingtabledescribesthecommonWiXMSBuildparametersthatareapplicabletotheLittask.
Parameter DescriptionBindInputPaths Optionalstring
parameter.
Specifiesabinderpaththatshouldbeusedtolocateallfiles.Thisisequivalenttothe-b<path>switch.NamedBindPathsarecreatedbyprefixingthe2-or-more-characterbucketnamefollowedbyanequalsign("=")tothesuppliedpath.
BindFiles Optionalbooleanparameter.
Specifiesthatthetool
Page 179
shouldbindfilesintoa.wixoutfile.ThisisonlyvalidwhentheOutputAsXmlparameterisalsoprovided.Thisisequivalenttothe-bfswitch.
Pedantic Optionalbooleanparameter.
Specifiesthatthetoolshoulddisplaypedanticmessages.Thisisequivalenttothe-pedanticswitch.
SuppressAllWarnings Optionalbooleanparameter.
Specifiesthatallwarningsshouldbesuppressed.Thisisequivalenttothe-swswitch.
SuppressIntermediateFileVersionMatching Optionalbooleanparameter.
Specifiesthatthetoolshouldsuppressintermediatefileversionmismatchchecking.Thisisequivalenttothe-svswitch.
SuppressSchemaValidation Optionalbooleanparameter.
Specifiesthatschemavalidationofdocumentsshouldbesuppressed.
Page 180
Thisisequivalenttothe-ssswitch.
SuppressSpecificWarnings Optionalstringparameter.
Specifiesthatcertainwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switch.
TreatSpecificWarningsAsErrors Optionalstringparameter.
Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switch.
TreatWarningsAsErrors Optionalbooleanparameter.
Specifiesthatallwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitch.
VerboseOutput Optionalbooleanparameter.
Specifiesthatthetoolshouldprovideverboseoutput.Thisisequivalenttothe-vswitch.
ThefollowingtabledescribestheparametersthatarespecifictotheLittask.
Page 181
Parameter DescriptionLibAdditionalOptions Optionalstring
parameter.
Specifiesadditionalcommandlineparameterstoappendwhencallinglit.exe.
LibBindFiles Optionalbooleanparameter.
Specifiesthatthelibrarycreationtoolshouldbindfilesintoa.wixoutfile.ThisisonlyvalidwhentheOutputAsXmlparameterisalsoprovided.Thisisequivalenttothe-bfswitchinlit.exe.
LibPedantic Optionalbooleanparameter.
Specifiesthatthelibrarycreationtoolshoulddisplaypedanticmessages.Thisisequivalenttothe-pedanticswitchinlit.exe.
LibSuppressAllWarnings Optionalbooleanparameter.
Specifiesthatalllibrarycreationtoolwarningsshouldbesuppressed.Thisis
Page 182
equivalenttothe-swswitchinlit.exe.
LibSuppressIntermediateFileVersionMatching Optionalbooleanparameter.
Specifiesthatthelibrarycreationtoolshouldsuppressintermediatefileversionmismatchchecking.Thisisequivalenttothe-svswitchinlit.exe.
LibSuppressSchemaValidation Optionalbooleanparameter.
Specifiesthatthelibrarycreationtoolshouldsuppressschemavalidationofdocuments.Thisisequivalenttothe-ssswitchinlit.exe.
LibSuppressSpecificWarnings Optionalstringparameter.
Specifiesthatcertainlibrarycreationtoolwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switchinlit.exe.
LibTreatSpecificWarningsAsErrors Optionalstringparameter.
Specifiesthatcertainlibrarycreationtool
Page 183
warningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switchinlit.exe.
LibTreatWarningsAsErrors Optionalbooleanparameter.
Specifiesthatalllibrarycreationtoolwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitchinlit.exe.
LibVerboseOutput Optionalbooleanparameter.
Specifiesthatthelibrarycreationtoolshouldprovideverboseoutput.Thisisequivalenttothe-vswitchinlit.exe.
LinkerBindInputPaths Optionalstringparameter.
Specifiesabinderpaththatthelibrarycreationtoolshouldusetolocateallfiles.Thisisequivalenttothe-b<path>switchinlit.exe.NamedBindPathsarecreatedbyprefixingthe2-or-more-characterbucketnamefollowedbyan
Page 184
equalsign("=")tothesuppliedpath.
Page 185
UsingBuilt-inWixUIDialogSetsTheWixUIdialoglibrarycontainsthefollowingbuilt-indialogsetsthatprovideafamiliarwizard-stylesetupuserinterface.
1. WixUI_Advanced2. WixUI_FeatureTree3. WixUI_InstallDir4. WixUI_Minimal5. WixUI_Mondo
Thebuilt-inWixUIdialogsetsarealsocustomizable,fromthebitmapsshownintheUItoaddingandremovingcustomdialogs.SeeCustomizingtheWixUIDialogSetsforadditionalinformation.
Page 186
Howtoaddabuilt-inWixUIdialogsettoaproductinstallerAssumingyouhaveanexistinginstallerthatisfunctionalbutisjustlackingauserinterface,herearethestepsyouneedtofollowtoincludeabuilt-inWixUIdialogset:
1. AddaUIRefelementtoyoursetupauthoringthathasanIdthatmatchesthenameofoneofthedialogsetsdescribedabove.Forexample:
<Product...><UIRefId="WixUI_InstallDir"/></Product>
2. Passthe-extand-culturesswitchesto[light.exe](../overview/light.html)toreferencetheWixUIExtension.Forexample:
light-extWixUIExtension-cultures:en-usProduct.wixobj-outProduct.msi
Note-IfyouareusingWiXinVisualStudioyoucanaddtheWixUIExtensionusingtheAddReferencedialogandthenecessarycommandlineswillautomaticallybeaddedwhenlinkingyour.msi.Todothis,usethefollowingsteps:
1. OpenyourWiXprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd
Reference...3. SelecttheWixUIExtension.dllassemblyfromthelistandclick
Add4. ClosetheAddReferencedialog
Page 187
CustomizingBuilt-inWixUIDialogSetsThebuilt-inWixUIdialogsetscanbecustomizedinthefollowingways:
Specifyingaproduct-specificlicenseagreementfile.Specifyingproduct-specificsetupUIbitmaps.AddinganoptionalcheckboxandoptionaltexttotheExitDlg.Customizingthetextdisplayedinbuilt-indialogs.ChangingtheUIsequenceofabuilt-indialogset.Insertingacustomdialogintoabuilt-indialogset.
Page 188
SpecifyingalicensefileWixUIExtension.dllincludesadefault,placeholderlicenseagreement.Tospecifyyourproduct'slicense,overridethedefaultbyspecifyingaWiXvariablenamedWixUILicenseRtfwiththevalueofanRTFfilethatcontainsyourlicensetext.YoucandefinethevariableinyourWiXauthoring:
<WixVariableId="WixUILicenseRtf"Value="bobpl.rtf"/>
Alternatively,youcandefinethevariableusingthe-dswitchwhenrunninglight:
light-extWixUIExtension-cultures:en-us-dWixUILicenseRtf=bobpl.rtfProduct.wixobj-outProduct.msi
Thefileyouspecifymustbeinadirectorylightislookinginforfiles.Usethe-bswitchtoadddirectories.
Thereisaknownissuewiththerichtextcontrolusedtodisplaythetextofthelicensefilethatcancausethetexttoappearblankuntiltheuserscrollsdowninthecontrol.ThisistypicallycausedbycomplexRTFcontent(suchastheRTFgeneratedwhensavinganRTFfileinMicrosoftWord).IfyourunintothisbehaviorinyoursetupUI,oneofthefollowingworkaroundswillfixitinmostcases:
OpenyourRTFfileinWordPadandsaveitfromthereinordertoremovethecomplexRTFcontentfromthefile.Aftersavingit,rebuildyourMSI.UseadialogsetotherthantheWixUI_Minimalset.Thisproblemtypicallyonlyoccurswhenthelicenseagreementscreenisthefirstonedisplayedduringsetup,whichonlyhappenswiththeWixUI_Minimaldialogset.
Page 189
ReplacingthedefaultbitmapsTheWixUIdialoglibraryincludesdefaultbitmapsforthebackgroundofthewelcomeandcompletiondialogsandthetopbanneroftheotherdialogs.Youcanreplacethosebitmapswithyourownforproductbrandingpurposes.Toreplacedefaultbitmaps,specifyWiXvariablevalueswiththefilenamesofyourbitmaps,justlikewhenreplacingthedefaultlicensetext.
Variablename Description DimensionsWixUIBannerBmp Topbanner 493×58WixUIDialogBmp Backgroundbitmapusedonthe
welcomeandcompletiondialogs493×312
WixUIExclamationIco ExclamationiconontheWaitForCostingDlg
32×32
WixUIInfoIco Informationicononthecancelanderrordialogs
32×32
WixUINewIco ButtonglyphontheBrowseDlg 16×16WixUIUpIco ButtonglyphontheBrowseDlg 16×16
Page 190
CustomizingtheExitDlgTheExitDlgisthedialoginthebuilt-inWixUIdialogsetsthatisdisplayedattheendofasuccessfulsetup.TheExitDlgsupportsshowingbothoptional,customizabletextandanoptionalcheckbox.
SeeHowTo:RuntheInstalledApplicationAfterSetupforanexampleofhowtoshowacheckboxontheExitDlg.
ToshowoptionaltextontheExitDlg,settheWIXUI_EXITDIALOGOPTIONALTEXTpropertytothestringyouwanttoshow.Forexample:
<PropertyId="WIXUI_EXITDIALOGOPTIONALTEXT"Value="Thankyouforinstallingthisproduct."/>
Theoptionaltexthasthefollowingbehavior:
Theoptionaltextisdisplayedasliteraltext,sopropertiessurroundedbysquarebracketssuchas[ProductName]willnotberesolved.Ifyouneedtoincludepropertyvaluesintheoptionaltext,youmustscheduleacustomactiontosettheproperty.Forexample:
<CustomActionId="CA_Set_WIXUI_EXITDIALOGOPTIONALTEXT"Property="WIXUI_EXITDIALOGOPTIONALTEXT"Value="Thankyouforinstalling[ProductName]."/><InstallUISequence><CustomAction="CA_Set_WIXUI_EXITDIALOGOPTIONALTEXT"After="FindRelatedProducts">NOTInstalled</Custom></InstallUISequence>
Longstringswillwrapacrossmultiplelines.
Theoptionaltextisonlyshownduringinitialinstallation,notduringmaintenancemodeoruninstall.
Page 191
Customizingthetextinbuilt-indialogsAlltextdisplayedinbuilt-inWixUIdialogsetscanbeoverriddenwithcustomstringsifdesired.Inordertodoso,youmustaddastringtoyourproduct'sWiXlocalization(.wxl)filethathasthesameIdvalueasthestringthatyouwanttooverride.YoucanfindtheWixUIstringIdvaluesbylookinginthefilenamedWixUI_en-us.wxlintheWiXsourcecode.
Forexample,tooverridethedescriptivetextontheWelcomeDlg,youwouldaddthefollowingtoa.wxlfileinyourproject:
<StringId="WelcomeDlgDescription">Thisisacustomwelcomemessage.ClickNexttocontinueorCanceltoexit.</String>
Page 192
ChangingtheUIsequenceofabuilt-indialogsetEachoftheWixUIdialogsetscontainsapre-definedsetofdialogsthatwillbedisplayedinaspecificorder.Informationaboutthedialogsincludedineachbuilt-inWixUIdialogsetcanbefoundintheWixUIDialogLibraryReference.
Itispossibletochangethedefaultsequenceofabuilt-indialogset.Todoso,youmustcopythecontentsofthe<Fragment/>thatincludesthedefinitionofthedialogsetthatyouwanttocustomizefromtheWiXsourcecodetoyourproject.Then,youmustmodifythe<Publish/>elementstodefinetheexactdialogsequencethatyouwantinyourinstallationexperience.
Forexample,toremovetheLicenseAgreementDlgfromtheWixUI_InstallDirdialogset,youwoulddothefollowing:
1. Copythefullcontentsofthe<Fragment/>definedinWixUI_InstallDir.wxsintheWiXsourcecodetoyourproject.
2. Removethe<Publish/>elementsthatareusedtoaddBackandNexteventsfortheLicenseAgreementDlg.
3. Changethe<Publish/>elementthatisusedtoaddaNexteventtotheWelcomeDlgtogototheInstallDirDlginsteadoftheLicenseAgreementDlg.Forexample:
<PublishDialog="WelcomeDlg"Control="Next"Event="NewDialog"Value="
4. Changethe<Publish/>elementthatisusedtoaddaBackeventtotheInstallDirDlgtogototheWelcomeDlginsteadoftheLicenseAgreementDlg.Forexample:
<PublishDialog="InstallDirDlg"Control="Back"Event="NewDialog"Value="
Page 193
Insertingacustomdialogintoabuilt-indialogsetYoucanaddcustomdialogstotheUIsequenceinabuilt-inWixUIdialogset.Todoso,youmustdefinea<UI/>elementforyournewdialog.Then,youmustcopythecontentsofthe<Fragment/>thatincludesthedefinitionofthedialogsetthatyouwanttocustomizefromtheWiXsourcecodetoyourproject.Finally,youmustmodifythe<Publish/>elementstodefinetheexactdialogsequencethatyouwantinyourinstallationexperience.
Forexample,toinsertadialognamedSpecialDlgbetweentheWelcomeDlgandtheLicenseAgreementDlgintheWixUI_InstallDirdialogset,youwoulddothefollowing:
1. DefinetheappearanceoftheSpecialDlgina<UI/>elementinyourproject.
2. Copythefullcontentsofthe<Fragment/>definedinWixUI_InstallDir.wxsintheWiXsourcecodetoyourproject.
3. Add<Publish/>elementsthatdefinetheBackandNexteventsfortheSpecialDlg.Forexample:
<PublishDialog="SpecialDlg"Control="Back"Event="NewDialog"Value="WelcomeDlg">1</Publish><PublishDialog="SpecialDlg"Control="Next"Event="NewDialog"Value="LicenseAgreementDlg">1</Publish>
4. Changethe<Publish/>elementthatisusedtoaddaNexteventtotheWelcomeDlgtogototheSpecialDlginsteadoftheLicenseAgreementDlg.Forexample:
<PublishDialog="WelcomeDlg"Control="Next"Event="NewDialog"Value="
5. Changethe<Publish/>elementthatisusedtoaddaBackeventtotheLicenseAgreementDlgtogototheSpecialDlginsteadoftheWelcomeDlg.Forexample:
Page 194
<PublishDialog="LicenseAgreementDlg"Control="Back"Event="NewDialog"Value="
Page 195
UsingLocalizedVersionsofWixUI
UsingtranslatedUIstringsWixUIExtensionincludesasetofWiXlocalization(.wxl)filesthatcontaintranslatedUItext,errorandprogresstextstringsforseverallanguages.TospecifyaUIlanguageforyourinstaller,passthedesiredculturevalueonthecommandlinewhencallinglight.Forexample:
light-extWixUIExtension-cultures:fr-FRProduct.wixobj-outProduct.msi
WixUIExtensionincludestranslatedstringsforthefollowinglanguages:
Language Location Culturecode
WXLfile
Arabic SaudiArabia ar-SA WixUI_ar-SA.wxlBulgarian Bulgaria bg-BG WixUI_bg-BG.wxlCatalan Spain ca-ES WixUI_ca-ES.wxlCroatian Croatia hr-HR WixUI_hr-HR.wxlCzech CzechRepublic cs-CZ WixUI_cs-CZ.wxlDanish Denmark da-DK WixUI_da-DK.wxlDutch Netherlands nl-NL WixUI_nl-NL.wxlEnglish UnitedStates en-US WixUI_en-US.wxlEstonian Estonia et-EE WixUI_et-EE.wxlFinnish Finland fi-FI WixUI_fi-FI.wxlFrench France fr-FR WixUI_fr-FR.wxlGerman Germany de-DE WixUI_de-DE.wxlGreek Greece el-GR WixUI_el-GR.wxlHebrew Israel he-IL WixUI_he-IL.wxlHindi India hi-IN WixUI_hi-IN.wxlHungarian Hungary hu-HU WixUI_hu-HU.wxl
Page 196
Italian Italy it-IT WixUI_it-IT.wxlJapanese Japan ja-JP WixUI_ja-JP.wxlKazakh Kazakhstan kk-KZ WixUI_kk-KZ.wxlKorean Korea ko-KR WixUI_ko-KR.wxlLatvian Latvia lv-LV WixUI_lv-LV.wxlLithuanian Lithuania lt-LT WixUI_lt-LT.wxlNorwegian(Bokmål)
Norway nb-NO WixUI_nb-NO.wxl
Polish Poland pl-PL WixUI_pl-PL.wxlPortuguese Brazil pt-BR WixUI_pt-BR.wxlPortuguese Portugal pt-PT WixUI_pt-PT.wxlRomanian Romania ro-RO WixUI_ro-RO.wxlRussian Russia ru-RU WixUI_ru-RU.wxlSerbian(Latin) Serbiaand
Montenegrosr-Latn-CS WixUI_sr-Latn-
CS.wxlSimplifiedChinese
China zh-CN WixUI_zh-CN.wxl
Slovak SlovakRepublic sk-SK WixUI_sk-SK.wxlSlovenian Solvenia sl-SI WixUI_sl_SI.wxlSpanish Spain es-ES WixUI_es-ES.wxlSwedish Sweden sv-SE WixUI_sv-SE.wxlThai Thailand th-TH WixUI_th-TH.wxlTraditionalChinese
HongKongSAR zh-HK WixUI_zh-HK.wxl
TraditionalChinese
Taiwan zh-TW WixUI_zh-TW.wxl
Turkish Turkey tr-TR WixUI_tr-TR.wxlUkrainian Ukraine uk-UA WixUI_uk-UA.wxl
Page 197
CreatingmultiplesetupswithdifferentsetupUIlanguagesYoucancreateaseriesof.msifilesthateachusedifferentsetupUIlanguagesbycallingcandleonceandthencallinglightmultipletimeswithdifferentculturevalues.Forexample:
candleProduct.wxslight-extWixUIExtension-cultures:en-usProduct.wixobj-outProduct_en-us.msilight-extWixUIExtension-cultures:fr-frProduct.wixobj-outProduct_fr-fr.msilight-extWixUIExtension-cultures:de-deProduct.wixobj-outProduct_de-de.msilight-extWixUIExtension-cultures:it-itProduct.wixobj-outProduct_it-it.msilight-extWixUIExtension-cultures:ja-jpProduct.wixobj-outProduct_ja-jp.msilight-extWixUIExtension-cultures:pl-plProduct.wixobj-outProduct_pl-pl.msilight-extWixUIExtension-cultures:ru-ruProduct.wixobj-outProduct_ru-ru.msilight-extWixUIExtension-cultures:es-esProduct.wixobj-outProduct_es-es.msi
Page 198
UsingtranslatederrorandprogresstextBydefault,WixUIwillnotincludeanytranslatedErrororProgressTextelements.YoucanincludethembyreferencingtheWixUI_ErrorProgressTextUIelement:
<UIRefId="WixUI_ErrorProgressText"/>
Page 199
WixUI_AdvancedDialogSetTheWixUI_Advanceddialogsetprovidestheoptionofaone-clickinstalllikeWixUI_Minimal,butitalsoallowsdirectoryandfeatureselectionlikeotherdialogsetsiftheuserchoosestoconfigureadvancedoptions.
ThisdialogsetisdefinedinthefileWixUI_Advanced.wxsintheWixUIExtensionintheWiXsourcecode.
Page 200
UsingWixUI_AdvancedTouseWixUI_Advanced,youmustincludethefollowinginformationinyoursetupauthoring:
1. AdirectorywithanIdnamedAPPLICATIONFOLDER.Thisdirectorywillbethedefaultinstallationlocationfortheproduct.Forexample:
<DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"Name="PFiles"><DirectoryId="APPLICATIONFOLDER"Name="MyApplicationFolder">...</Directory></Directory></Directory>
2. ApropertywithanIdnamedApplicationFolderNameandavaluesettoastringthatrepresentsthedefaultfoldername.Thispropertyisusedtoformthedefaultinstallationlocation.
Foraper-machineinstallation,thedefaultinstallationlocationwillbe[ProgramFilesFolder][ApplicationFolderName]andtheuserwillbeabletochangeitinthesetupUI.Foraper-userinstallation,thedefaultinstallationlocationwillbe[LocalAppDataFolder]Apps[ApplicationFolderName]andtheuserwillnotbeabletochangeitinthesetupUI.
Forexample:
<PropertyId="ApplicationFolderName"Value="MyApplicationFolder"/>
3. ApropertywithanIdnamedWixAppFolderandavaluesettoWixPerMachineFolderorWixPerUserFolder.ThispropertysetsthedefaultselectedvalueoftheradiobuttonontheinstallscopedialoginthesetupUIwheretheusercanchoosewhethertoinstalltheproductper-machineorper-user.Forexample:
Page 201
<PropertyId="WixAppFolder"Value="WixPerMachineFolder"/>
ItispossibletosuppresstheinstallscopedialogintheWixUI_Advanceddialogsetsotheuserwillnotbeabletochooseaper-machineorper-userinstallation.Todothis,youmustsettheWixUISupportPerMachineorWixUISupportPerUserWiXvariablesto0.Thedefaultvalueforeachofthesevariablesis1,andyoushouldnotsetbothofthesevaluesto0inthesame.msi.Forexample,toremovetheinstallscopedialogandsupportonlyaper-machineinstallation,youcansetthefollowing:
<WixVariableId="WixUISupportPerUser"Value="0"/>
TheinstallscopedialogwillautomaticallysettheALLUSERSpropertyfortheinstallationsessionbasedontheuser'sselection.IfyousuppresstheinstallscopedialogbysettingeitheroftheseWiXvariablevalues,youmustmanuallysettheALLUSERSpropertytoanappropriatevaluebasedonwhetheryouwantaper-machineorper-userinstallation.
Page 202
WixUI_AdvancedDialogsWixUI_Advancedincludesthefollowingdialogs:
AdvancedWelcomeEulaDlgBrowseDlgDiskCostDlgFeaturesDlgInstallDirDlgInstallScopeDlgInvalidDirDlg
Inaddition,WixUI_AdvancedincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:
CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg
SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.
Page 203
WixUI_FeatureTreeDialogSetWixUI_FeatureTreeisasimplerversionofWixUI_Mondothatomitsthesetuptypedialog.Instead,thewizardproceedsdirectlyfromthelicenseagreementdialogtothefeaturecustomizationdialog.WixUI_FeatureTreeismoreappropriatethanWixUI_Mondowhenyourproductinstallsallfeaturesbydefault.
ThisdialogsetisdefinedinthefileWixUI_FeatureTree.wxsintheWixUIExtensionintheWiXsourcecode.
Page 204
WixUI_FeatureTreeDialogsWixUI_FeatureTreeincludesthefollowingdialogs:
BrowseDlgCustomizeDlgDiskCostDlgLicenseAgreementDlgWelcomeDlg
Inaddition,WixUI_FeatureTreeincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:
CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg
SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.
Page 205
WixUI_InstallDirDialogSetWixUI_InstallDirdoesnotallowtheusertochoosewhatfeaturestoinstall,butitaddsadialogtolettheuserchooseadirectorywheretheproductwillbeinstalled.
ThisdialogsetisdefinedinthefileWixUI_InstallDir.wxsintheWixUIExtensionintheWiXsourcecode.
Page 206
UsingWixUI_InstallDirTouseWixUI_InstallDir,youmustsetapropertynamedWIXUI_INSTALLDIRwithavalueoftheIDofthedirectoryyouwanttheusertobeabletospecifythelocationof.ThedirectoryIDmustbealluppercasecharactersbecauseitmustbepassedfromtheUItotheexecutesequencetotakeeffect.Forexample:
<DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"Name="PFiles"><DirectoryId="TESTFILEPRODUCTDIR"Name="TestFile">...</Directory></Directory></Directory>...<PropertyId="WIXUI_INSTALLDIR"Value="TESTFILEPRODUCTDIR"/><UIRefId="WixUI_InstallDir"/>
Page 207
WixUI_InstallDirDialogsWixUI_InstallDirincludesthefollowingdialogs:
BrowseDlgDiskCostDlgInstallDirDlgInvalidDirDlgLicenseAgreementDlgWelcomeDlg
Inaddition,WixUI_InstallDirincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:
CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg
SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.
Page 208
WixUI_MinimalDialogSetWixUI_Minimalisthesimplestofthebuilt-inWixUIdialogsets.Itssoledialogcombinesthewelcomeandlicenseagreementdialogsandomitsthefeaturecustomizationdialog.WixUI_Minimalisappropriatewhenyourproducthasnooptionalfeaturesanddoesnotsupportchangingtheinstallationdirectory.
ThisdialogsetisdefinedinthefileWixUI_Minimal.wxsintheWixUIExtensionintheWiXsourcecode.
Page 209
WixUI_MinimalDialogsWixUI_Minimalincludesthefollowingdialog:
WelcomeEulaDlg
Inaddition,WixUI_MinimalincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:
CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg
SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.
Page 210
WixUI_MondoDialogSetWixUI_Mondoincludesasetdialogsthatallowgranularinstallationcustomizationoptions.WixUI_Mondoisappropriatewhensomeproductfeaturesarenotinstalledbydefaultandthereisameaningfuldifferencebetweentypicalandcompleteinstalls.
Note:WixUI_MondousesSetInstallLevelcontroleventstosettheinstalllevelwhentheuserchoosesTypicalorComplete.ForTypical,theinstalllevelissetto3;forComplete,1000.Fordetailsaboutfeaturelevelsandinstalllevels,seeINSTALLLEVELProperty.
ThisdialogsetisdefinedinthefileWixUI_Mondo.wxsintheWixUIExtensionintheWiXsourcecode.
Page 211
WixUI_MondoDialogsWixUI_Mondoincludesthefollowingdialogs:
BrowseDlgCustomizeDlgDiskCostDlgLicenseAgreementDlgSetupTypeDlgWelcomeDlg
Inaddition,WixUI_MondoincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:
CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg
SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.
Page 212
WixUIDialogsThefollowingtabledescribeseachofthebuilt-indialogsthatisdefinedintheWixUIdialoglibrary.
DialogName DescriptionAdvancedWelcomeEulaDlg Adialogthatdisplaystheenduserlicenseagreement.Unlike
theLicenseAgreementDlg,ithasAdvancedandInstallbuttonsinsteadofNextandBackbuttons.ThisdialogisusedbytheWixUI_Advanceddialogsettoprovidetheuserwithaquickwaytoperformadefaultinstallation.
BrowseDlg Adialogthatallowstheusertobrowseforadestinationfolder.CancelDlg AdialogthatappearsaftertheuserclicksaCancelbuttonon
anydialogandconfirmswhetherornottheuserreallywantstocanceltheinstallation.
CustomizeDlg AdialogthatdisplaysafeatureselectiontreewithaBrowsebutton,DiskUsagebutton,andatextboxthatcontainsinformationaboutthecurrentlyselectedfeature.
DiskCostDlg Adialogthatallowstheusertoselectwhichdrivetoinstalltoandthatdisplaysdiskspaceusageinformationforeachdrive.
ErrorDlg Adialogthatdisplaysanerrormessagetotheuserandcanprovideanoptiontoretrythepreviousaction.
ExitDlg Adialogthatdisplaysasummarydialogaftersetupcompletessuccessfully.Itcanalsooptionallydisplayacheckboxandcustomtext.Fordetailsabouthowtoaddacheckboxandcustomtexttothisdialog,see[CustomizingBuilt-inWixUIDialogSets](../../wixui/WixUI_customizations.html)and[HowTo:RuntheInstalledApplicationAfterSetup](../../howtos/ui_and_localization/run_program_after_install.html).
FatalError Adialogthatdisplaysasummaryerrordialogifsetupfails.FeaturesDlg Adialogthatdisplaysafeatureselectiontreewithatextbox
thatcontainsinformationaboutthecurrentlyselectedfeature.UnliketheCustomizeDlg,itdoesnotcontainBrowseorDiskSpacebuttons.
FilesInUse Adialogthatdisplaysalistofapplicationsthatareholdingfiles
Page 213
inusethatneedtobeupdatedbythecurrentinstallationprocess.ItincludesRetry,IgnoreandExitbuttons.
InstallDirDlg Adialogthathasatextboxthatallowstheusertotypeinanon-defaultinstallationpathandaBrowsebuttonthatallowstheusertoselectanon-defaultinstallationfolder.Bydefault,theInstallDirDlgdialogvalidatesthatanypaththeuserentersisvalidforWindowsInstaller:Thatis,it'sapathonalocalharddrive,notanetworkpathoronaremovabledrive.Ifyouwishtodisablepathvalidationandallowinvalidpaths,setthepublicpropertyWIXUI_DONTVALIDATEPATHto1.
InstallScopeDlg Adialogthatallowstheusertochoosetoinstalltheproductforallusersorforthecurrentuser.
InvalidDirDlg Adialogthatdisplaysanerroriftheuserselectsaninvalidinstallationdirectory.
LicenseAgreementDlg AdialogthatdisplaystheenduserlicenseagreementandincludesBackandNextbuttons.UnliketheAdvancedWelcomeEulaDlg,thisdialogdoesnotallowtheusertostartadefaultinstallation.
MaintenanceTypeDlg Adialogthatincludesbuttonsthatallowtheusertochangewhichfeaturesareinstalled,repairtheproductorremovetheproduct.Itonlyappearswhentheuserrunssetupafteraproducthasbeeninstalled.
MaintenanceWelcomeDlg Anintroductorydialogthatappearswhenrunningsetupaftertheproducthasbeeninstalled.
MsiRMFilesInUse AdialogthatissimilartotheFilesInUsedialog,butthatinteractswithRestartManager.Itallowstheusertoattempttoautomaticallycloseapplicationsorignorethepromptandresultinthesetuprequiringarebootafteritcompletes.
OutOfDiskDlg Adialogthatinformstheuserthattheyhaveinsufficientdiskspaceontheselecteddriveandadvisesthemtofreeupadditionaldiskspaceorreducethenumberoffeaturestobeinstalledtothedrive.
OutOfRbDiskDlg AdialogthatissimilartotheOutOfDiskDlg,butalsoallowstheusertodisableWindowsInstallerrollbackfunctionalityinordertoconservediskspacerequiredbysetup.
PrepareDlg Asimpleprogressdialogthatappearsduringsetupinitialization
Page 214
beforethefirstinteractivedialogappears.ProgressDlg Adialogthatappearsduringinstallationthatdisplaysaprogress
barandmessagesaboutactionsarebeingperformed.ResumeDlg Anintroductorydialogthatappearswhenresuminga
suspendedsetup.SetupTypeDlg AdialogthatallowstheusertochooseTypical,Customor
Completeinstallationconfigurations.UserExit AdialogthatthatissimilartotheFatalErrordialog.Itdisplaysa
summarydialogiftheuserchoosestocancelsetup.VerifyReadyDlg Adialogthatappearsimmediatelybeforestartinginstallation.It
askstheuserforfinalconfirmationbeforestartingtomakechangestothesystem.
WaitForCostingDlg AdialogthatappearsiftheuseradvancestoofarinthesetupwizardbeforeWindowsInstallerhasfinishedcalculatingdiskcostrequirements.
WelcomeDlg Anintroductorydialogthatappearswhenrunningsetupforaproductthathasnotyetbeeninstalled.
WelcomeEulaDlg Adialogthatdisplaysanenduserlicenseagreementandallowstheusertostartinstallationafteracceptingtheagreement.ItisonlyusedbytheWixUI_Minimaldialogsetandisintendedforsimplesetupprogramsthatdonotofferanyuserconfigurableoptions.
Page 215
CreatetheSkeletonBundleAuthoringTherootelementofabundleis<Bundle>.The<Bundle>elementisachilddirectlyunderthe<Wix>element.Here'sanexampleofanemptybundle:
<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><Bundle><!--Contentsofthebundlegoeshere--></Bundle></Wix>
Inthisexample,youwillbeaddingthefollowingelementstothe<Bundle>element:
<BootstrapperApplicationRef><Chain><Variable>
Asastart,addthetwomostcommonelementsinsidea<Bundle>:
<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><Bundle><BootstrapperApplicationRef/><Chain></Chain></Bundle></Wix>
The<BootstrapperApplicationRef>elementwilleventuallypointtothestandardBootstrapperApplicationprovidedbytheWiXtoolsetandthe<Chain>elementwilleventuallycontaintheorderedlistofpackagesthatmakeupthebundle.
Page 216
NowthatyouhavetheskeletonauthoringofaBundle,youcanmoveontoaddinginformationforthe<BootstrapperApplicationRef>element.SeeAuthortheBootstrapperApplicationforaBundle.
Page 217
AuthorBootstrapperApplicationforaBundleEverybundlerequiresabootstrapperapplicationtodrivetheBurnengine.The<BootstrapperApplication>elementisusedtodefineanewbootstrapperapplication.The<BootstrapperApplicationRef>elementisusedtorefertoabootstrapperapplicationthatexistsina<Fragment>orWiXextension.
TheWiXStandardBootstrapperApplicationexistsintheWixBalExtension.dll.Thefollowingshowshowtouseitinabundle:
<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><Bundle><BootstrapperApplicationRefId="WixStandardBootstrapperApplication.RtfLicense"/><Chain></Chain></Bundle></Wix>
TheWiXStandardBootstrapperApplicationmaynotprovideallfunctionalityaspecializedbundlerequiressoacustombootstrapperapplicationDLLmaybedeveloped.Thefollowingexamplecreatesabootstrapperapplicationusingafictional"ba.dll":
<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><Bundle><BootstrapperApplicationSourceFile="path\to\ba.dll"/><Chain></Chain></Bundle></Wix>
Insidethe<BootstrapperApplication>elementand
Page 218
<BootstrapperApplicationRef>element,youmayaddadditionalpayloadfilessuchasresourcesfilesthatarerequiredbythebootstrapperapplicationDLLasfollows:
<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><Bundle><BootstrapperApplicationSourceFile="path\to\ba.dll"><PayloadSourceFile="path\to\en-us\resources.dll"/><PayloadGroupRefId="ResourceGroupforJapanese"/></BootstrapperApplication><Chain></Chain></Bundle></Wix>
Thisexamplereferencesapayloadfilethatisonthelocalmachinenamedresources.dll,aswellasagroupofpayloadfilesthataredefinedina<PayloadGroup>elementinsidea<Fragment>elsewhere.
Thenextstepistoaddinstallationpackagestothechain.
Page 219
AuthoraBundlePackageManifestInorderforanypackagetobeconsumablebyaBundle,apackagedefinitionneedstobeauthoredthatdescribesthepackage.Thisauthoringcaneithergodirectlyunderthe<Chain>elementintheBundleauthoring,orina<Fragment>whichcanthenbeconsumedbyaBundlebyputtinga<PackageGroupRef>insidethe<Chain>.ThelattermethodenablessharingofthesamepackagedefinitionacrossdifferentBundlepackages.
TheWiXschemasupportsthefollowingchainedpackagetypes:
<MsiPackage><ExePackage><MspPackage><MsuPackage>
HereisanexampleofauthoringanExePackageinasharablefragment:
<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><Fragment><PackageGroupId="MyPackage"><ExePackageSourceFile="[sources]\packages\shared\MyPackage.exe"DetectCondition="ExeDetectedVariable"DownloadUrl="http://example.com/?mypackage.exe"InstallCommand="/q/ACTION=Install"RepairCommand="/qACTION=Repair/hideconsole"UninstallCommand="/qACTION=Uninstall/hideconsole"/></PackageGroup></Fragment></Wix>
Nowyoucanaddaninstallconditiontothepackagesothatitonlyinstallsonx86WindowsXPandabove.Therearebuilt-invariablesthatcanbeusedtoconstructtheseconditionstatements.Thehighlightedsectionshowshowtoleveragethebuilt-invariablestocreatethat
Page 220
condition:
<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><Fragment><PackageGroupId="MyPackage"><ExePackageSourceFile="[sources]\packages\shared\MyPackage.exe"DetectCondition="ExeDetectedVariable"DownloadUrl="http://example.com/?mypackage.exe"InstallCommand="/q/ACTION=Install"RepairCommand="/qACTION=Repair/hideconsole"UninstallCommand="/qACTION=Uninstall/hideconsole"InstallCondition="NOTVersionNT64ANDVersionNT>=v5.1"/></PackageGroup></Fragment></Wix>
TheVersionNTpropertytakesuptoafour-partversionnumber([Major].[Minor].[Build].[Revision]).ForalistofmajorandminorversionsoftheWindowsoperatingsystem,seeOperatingSystemVersion.
Youcanalsodefineyourownvariablesandstoresearchresultsinthem.SeeDefineSearchesusingVariables.
Page 221
BurnBuilt-inVariablesTheBurnengineoffersasetofcommonly-usedvariablessoyoucanusethemwithoutdefiningyourown.Hereisthelistofthebuilt-invariablenames:
AdminToolsFolder-getsthewell-knownfolderforCSIDL_ADMINTOOLS.AppDataFolder-getsthewell-knownfolderforCSIDL_APPDATA.CommonAppDataFolder-getsthewell-knownfolderforCSIDL_COMMON_APPDATA.CommonFilesFolder-getsthewell-knownfolderforCSIDL_PROGRAM_FILES_COMMONX86.CommonFiles64Folder-getsthewell-knownfolderforCSIDL_PROGRAM_FILES_COMMON.CommonFiles6432Folder-getsthewell-knownfolderforCSIDL_PROGRAM_FILES_COMMONon64-bitWindowsandCSIDL_PROGRAM_FILES_COMMONX86on32-bitWindows.CompatibilityMode-non-zeroiftheoperatingsystemlaunchedthebootstrapperincompatibilitymode.ComputerName-nameofthecomputerasreturnedbyGetComputerName()function.Date-getsthecurrentdateusingtheshortdateformatofthecurrentuserlocale.DesktopFolder-getsthewell-knownfolderforCSIDL_DESKTOP.FavoritesFolder-getsthewell-knownfolderforCSIDL_FAVORITES.FontsFolder-getsthewell-knownfolderforCSIDL_FONTS.InstallerName-getsthenameoftheinstallerengine("WiXBurn").InstallerVersion-getstheversionoftheinstallerengine.LocalAppDataFolder-getsthewell-knownfolderforCSIDL_LOCAL_APPDATA.LogonUser-getsthecurrentusername.MyPicturesFolder-getsthewell-knownfolderforCSIDL_MYPICTURES.NTProductType-numericproducttypefromOSversioninformation.
Page 222
NTSuiteBackOffice-non-zeroifOSversionsuiteisBackOffice.NTSuiteDataCenter-non-zeroifOSversionsuiteisDatacenter.NTSuiteEnterprise-non-zeroifOSversionsuiteisEnterprise.NTSuitePersonal-non-zeroifOSversionsuiteisPersonal.NTSuiteSmallBusiness-non-zeroifOSversionsuiteisSmallBusiness.NTSuiteSmallBusinessRestricted-non-zeroifOSversionsuiteisRestrictedSmallBusiness.NTSuiteWebServer-non-zeroifOSversionsuiteisWebServer.PersonalFolder-getsthewell-knownfolderforCSIDL_PERSONAL.ProcessorArchitecture-getsthenativeSYSTEM_INFO.wProcessorArchitecture.Privileged-non-zeroiftheprocesscouldrunelevated(onVista+)orisrunningasanAdministrator(onWinXP).ProgramFilesFolder-getsthewell-knownfolderforCSIDL_PROGRAM_FILESX86.ProgramFiles64Folder-getsthewell-knownfolderforCSIDL_PROGRAM_FILES.ProgramFiles6432Folder-getsthewell-knownfolderforCSIDL_PROGRAM_FILESon64-bitWindowsandCSIDL_PROGRAM_FILESX86on32-bitWindows.ProgramMenuFolder-getsthewell-knownfolderforCSIDL_PROGRAMS.RebootPending-non-zeroifthesystemrequiresareboot.Notethatthisvaluewillreflecttherebootstatusofthesystemwhenthevariableisfirstrequested.SendToFolder-getsthewell-knownfolderforCSIDL_SENDTO.ServicePackLevel-numericvaluerepresentingtheinstalledOSservicepack.StartMenuFolder-getsthewell-knownfolderforCSIDL_STARTMENU.StartupFolder-getsthewell-knownfolderforCSIDL_STARTUP.SystemFolder-getsthewell-knownfolderforCSIDL_SYSTEMX86on64-bitWindowsandCSIDL_SYSTEMon32-bitWindows.System64Folder-getsthewell-knownfolderforCSIDL_SYSTEMon
Page 223
64-bitWindowsandundefinedon32-bitWindows.SystemLanguageID-getsthelanguageIDforthesystemlocale.TempFolder-getsthewell-knownfolderfortemplocation.TemplateFolder-getsthewell-knownfolderforCSIDL_TEMPLATES.TerminalServer-non-zeroifthesystemisrunninginapplicationservermodeofRemoteDesktopServices.UserUILanguageID-getstheselectionlanguageIDforthecurrentuserlocale.UserLanguageID-getstheformattinglanguageIDforthecurrentuserlocale.VersionMsi-versionvaluerepresentingtheWindowsInstallerengineversion.VersionNT-versionvaluerepresentingtheOSversion.Theresultisaversionvariable(v#.#.#.#)whichdiffersfromtheMSIProperty'VersionNT'whichisaninteger.Forexample,tousethisvariableinaBundleconditiontry:"VersionNT>v6.1".VersionNT64-versionvaluerepresentingtheOSversionif64-bit.Undefinedifrunninga32-bitoperatingsystem.Theresultisaversionvariable(v#.#.#.#)whichdiffersfromtheMSIProperty'VersionNT64'whichisaninteger.Forexample,tousethisvariableinaBundleconditiontry:"VersionNT64>v6.1".WindowsFolder-getsthewell-knownfolderforCSIDL_WINDOWS.WindowsVolume-getsthewell-knownfolderforthewindowsvolume.WixBundleAction-settothenumericvalueofBOOTSTRAPPER_ACTIONfromthecommand-lineandupdatedduringthecalltoIBootstrapperEngine::Plan().WixBundleDirectoryLayout-settothefolderprovidedtothe-layoutswitch(defaultisthedirectorycontainingthebundleexecutable).Thisvariablecanalsobesetbythebootstrapperapplicationtomodifywherefileswillbelaidout.WixBundleElevated-getswhetherthebundlewaslaunchedelevatedandwillbesetto1oncethebundleiselevated.Forexample,usethisvariabletoshoworhidetheelevationshieldinthebootstrapperapplicationUI.
Page 224
WixBundleExecutePackageCacheFolder-getstheabsolutepathtothecurrentlyexecutingpackage'scachefolder.Thisvariableisonlyavailablewhilethepackageisexecuting.WixBundleForcedRestartPackage-getstheIDofthepackagethatcausedaforcerestartduringapply.Thisvalueisresetonthenextcalltoapply.WixBundleInstalled-getswhetherthebundlewasalreadyinstalled.Thisvalueisonlysetwhentheengineinitializes.WixBundleLastUsedSource-getsthepathofthelastsuccessfulsourceresolutionforacontainerorpayload.WixBundleName-getsthenameofthebundle(fromBundle/@Name).Thisvariablecanalsobesetbythebootstrapperapplicationtomodifythebundlenameatruntime.WixBundleManufacturer-getsthemanufacturerofthebundle(fromBundle/@Manufacturer).WixBundleOriginalSource-getsthesourcepathfromwherethebundleoriginallyran.WixBundleOriginalSourceFolder-getsthefolderfromwherethebundleoriginallyran.WixBundleSourceProcessPath-getsthesourcepathofthebundlewhereoriginallyexecuted.Willonlybesetwhenbundleisexecutinginthecleanroom.WixBundleSourceProcessFolder-getsthesourcefolderofthebundlewhereoriginallyexecuted.Willonlybesetwhenbundleisexecutinginthecleanroom.WixBundleProviderKey-getsthebundledependencyproviderkey.WixBundleTag-getsthedeveloper-definedtagstringforthisbundle(fromBundle/@Tag).WixBundleUILevel-getstheleveloftheuserinterface(thevalueBOOTSTRAPPER_DISPLAYenum).WixBundleVersion-getstheversionforthisbundle(fromBundle/@Version).
Page 225
DefineSearchesUsingVariablesSearchesareusedtodetectifthetargetmachinemeetscertainconditions.Theresultofasearchisstoredintoavariable.Variablesarethenusedtoconstructinstallconditions.ThesearchschemasareintheWixUtilExtension.Hereisthelistofsupportedsearches:
<FileSearch><RegistrySearch><DirectorySearch><ComponentSearch><ProductSearch>
Asearchcanbedependentontheresultofanothersearch.KeepinmindthatallsearchesareintheWiXUtilExtension.SoremembertoaddtheWiXUtilExtensionnamespaceintheauthoring.Hereisanexample:
<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"><Fragment><util:RegistrySearchId="Path"Variable="UniqueId"Root="HKLM,SOFTWARE\Microsoft\MyProduct\UniqueId\"Key="Product"Result="Value"/><util:RegistrySearchVariable="patchLevel"Root="HKLM,SOFTWARE\Microsoft\MyProduct\[UniqueId]\Setup"Key="PatchLevel"Result="Exists"After="Path"/></Fragment></Wix>
Afterthesearchesaredefinedandstoredintovariables,thevariablescanthenbeusedininstallconditions.Forexample,youcanusethe
Page 226
resultoftheregistrysearchesintheinstallconditionofyourpackagebyaddingboththesearchesandtheinstallconditions.Here'sanexampleofacompletefragmentthatcontainsapackagedefinitionwithconditionsandsearches:
<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"><Fragment><util:RegistrySearchId="Path"Variable="UniqueId"Root="HKLM,SOFTWARE\Microsoft\MyProduct\UniqueId\"Key="Product"Result="Value"/><util:RegistrySearchVariable="patchLevel"Root="HKLM,SOFTWARE\Microsoft\MyProduct\[UniqueId]\Setup"Key="PatchLevel"Result="Exists"After="Path"/>
<PackageGroupId="MyPackage"><ExePackageSourceFile="[sources]\packages\shared\MyPackage.exe"DownloadURL="http://mywebdomain.com/?mypackage.exe"InstallCommand="/q/ACTION=Install"RepairCommand="/qACTION=Repair/hideconsole"UninstallCommand="/qACTION=Uninstall/hideconsole"InstallCondition="x86=1ANDOSVersion>=v5.0.5121.0ANDpatchLevel=0</PackageGroup></Fragment></Wix>
Nowyouhaveafully-definedfragmentthatcanbesharedtobeconsumedbyotherBurnpackages.ToseehowtochainthispackageintoaBurnpackage,seeChainPackagesintoaBundle.
Page 227
ChainPackagesintoaBundleTochainapackage,youcaneitherputthepackagedefinitiondirectlyunderthe<Chain>elementorputa<PackageGroupRef>insidethe<Chain>toreferenceasharedpackagedefinition.
Here'sanexampleofhavingthedefinitiondirectlyunder<Chain>:
<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><Bundle><BootstrapperApplicationRefId="WixStandardBootstrapperApplication.RtfLicense"/>
<Chain><ExePackageSourceFile="path\to\MyPackage.exe"DownloadUrl="http://example.com/?mypackage.exe"InstallCommand="/q/ACTION=Install"RepairCommand="/qACTION=Repair/hideconsole"/></Chain></Bundle></Wix>
Here'sanexampleofreferencingasharedpackagedefinition:
<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><Bundle><BootstrapperApplicationRefId="WixStandardBootstrapperApplication.RtfLicense"/>
<Chain><PackageGroupRefId="MyPackage"/></Chain></Bundle></Wix>
Page 228
SpecifyingtheWiXStandardBootstrapperApplicationLicenseTheWiXStandardBootstrapperApplication(WixStdBA)supportsdisplayingalicenseinRTFformatand/orlinkingtoalicensefilethateitherexistslocallyorontheweb.ThelicensefileisspecifiedintheelementusingtheLicenseFileorLicenseUrlattribute,dependingonwhichWixStdBAthemeisused.
WhenusingaWixStdBAthemethatdisplaystheRTFlicense,itishighlyrecommendedthatthelicenseisoverriddenbecausethedefaultuses"Loremipsum"placeholdertext.Thefollowingexampleusesalicense.rtffilefoundinthe"path\to"folderrelativetothelinkerbindpaths.
<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"><Bundle><BootstrapperApplicationRefId="WixStandardBootstrapperApplication.RtfLicense"><bal:WixStandardBootstrapperApplicationLicenseFile="path\to\license.rtf"LogoFile="path\to\customlogo.png"/></BootstrapperApplicationRef>
<Chain>...</Chain></Bundle></Wix>
Thefollowingexamplelinkstoalicensepageontheinternet.
<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"><Bundle><BootstrapperApplicationRefId="WixStandardBootstrapperApplication.HyperlinkLicense">
Page 229
<bal:WixStandardBootstrapperApplicationLicenseUrl="http://example.com/license.html"LogoFile="path\to\customlogo.png"/></BootstrapperApplicationRef>
<Chain>...</Chain></Bundle></Wix>
WhenusingaWixStdBAthemethatdisplaysthelicenseasahyperlink,thelicenseisoptional.ProvideanemptystringforWixStandardBootstrapperApplication/@LicenseUrl---thehyperlinkandacceptlicensecheckboxarenotdisplayed,providingan"unlicensed"installationexperience.
IfyougetanerrorindicatingTheWindowsInstallerXMLvariable!(wix.WixStdbaLicenseUrl)isunknown,provideavalueforWixStandardBootstrapperApplication/@LicenseUrl,evenifit'sanemptystring.
Page 230
ChangingtheWiXStandardBootstrapperApplicationBrandingTheWiXStandardBootstrapperApplicationdisplaysagenericlogointhebottomleftcorneroftheuserinterface.ItispossibletochangetheimagedisplayedusingtheWixStandardBootstrapperApplicationelementprovidedbyWixBalExtension.Thefollowingexampleusesa"customlogo.png"filefoundinthe"path\to"folderrelativetothelinkerbindpaths.
<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"><Bundle><BootstrapperApplicationRefId="WixStandardBootstrapperApplication.RtfLicense"><bal:WixStandardBootstrapperApplicationLicenseFile="path\to\license.rtf"LogoFile="path\to\customlogo.png"/></BootstrapperApplicationRef>
<Chain>...</Chain></Bundle></Wix>
FortheHyperlinkSidebarLicenseUI,therearetwologosandtheycanbeconfiguredasfollows:
<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"><Bundle><BootstrapperApplicationRefId="WixStandardBootstrapperApplication.HyperlinkSidebarLicense"><bal:WixStandardBootstrapperApplication
Page 231
LicenseUrl="License.htm"LogoFile="path\to\customlogo.png"LogoSideFile="path\to\customsidelogo.png"/></BootstrapperApplicationRef>
<Chain>...</Chain></Bundle></Wix>
Page 232
CustomizetheWiXStandardBootstrapperApplicationLayoutTheWiXStandardBootstrapperApplicationcontainsapredefineduserinterfacelayout.ItispossibletocustomizethelayoutusingtheWixStandardBootstrapperApplicationelementprovidedbyWixBalExtension.Thefollowingexampleusesa"customtheme.xml"filefoundinthe"path\to"folderrelativetothelinkerbindpaths.
<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"><Bundle><BootstrapperApplicationRefId="WixStandardBootstrapperApplication.RtfLicense"><bal:WixStandardBootstrapperApplicationLicenseFile="path\to\license.rtf"ThemeFile="path\to\customtheme.xml"/></BootstrapperApplicationRef>
<Chain>...</Chain></Bundle></Wix>
TheprogresspageofthebootstrapperapplicationcanbecustomizedtoincludeWindowsInstallerActionDatamessagesbyaddingaTextcontrolwiththenameExecuteProgressActionDataText.
<PageName="Progress"><TextX="11"Y="80"Width="-11"Height="30"FontId="2"DisablePrefix="yes">#(loc.ProgressHeader)</Text><TextX="11"Y="121"Width="70"Height="17"FontId="3"DisablePrefix="yes">#(loc.ProgressLabel)</Text><TextName="OverallProgressPackageText"X="85"Y="121"Width="-11"Height="17"FontId="3"DisablePrefix="yes">#(loc.OverallProgressPackageText)</Text><ProgressbarName="OverallCalculatedProgressbar"X="11"Y="143"Width="-11"Height="15"/><TextName="ExecuteProgressActionDataText"X="11"Y="163"Width="-11"Height="17"FontId="3"DisablePrefix="yes"/>
Page 233
<ButtonName="ProgressCancelButton"X="-11"Y="-11"Width="75"Height="23"TabStop="yes"FontId="0">#(loc.ProgressCancelButton)</Button></Page>
TheoverallsizeofthebootstrapperapplicationwindowcanbecustomizedbychangingtheWidthandHeightattributesoftheWindowelementwithinthethemealongwithmodifyingthesizeand/orpositionofallthecontrols.
<Themexmlns="http://wixtoolset.org/schemas/thmutil/2010"><WindowWidth="485"Height="300"HexStyle="100a0000"FontId="0">#(loc.Caption)</Window>
Toviewathemefilewithouthavingtobuildabundle,youcanusetheThmViewer.exewhichislocatedin%WIX%\bin\.
Page 234
UsingWiXStandardBootstrapperApplicationVariablesTheWiXStandardBootstrapperApplicationoffersasetofvariables:
WixBundleFileVersion-getsthefileversionofthebundle.exe.WixStdBALanguageId-getsthelanguageineffectfortheWixStdBAuserinterface.
Page 235
BootstrapperApplicationInterfaceTheenginecommunicateswiththebootstrapperapplicationthroughcallbackstotheIBootstrapperApplicationinterface.ThefirstcallfromtheengineisIBootstrapperApplication::OnStartup():
//IBootstrapperApplication::OnStartupSTDMETHOD(OnStartup)()=0;
Typically,theBAusesthiscallbacktostartanewthreadanddisplayauserinterface.AftertheBAreturnsfromOnStartup,theengineentersitsidleloopandwaitsforcommandsfromtheBAviaIBootstrapperEngine.
ThefirstactiontheBAshouldtakeisdetection.TheBAdoesthisbyacalltoIBootstrapperEngine::Detect:
//IBootstrapperEngine::DetectSTDMETHOD(Detect)()=0;
Afterdetection,theBAshoulddeterminewhatoperationtheuserwantstotake.Historicallythishappensasawizardsequence,promptingtheuserforinstallationlocation,featureselection,etc.Whenthedecisionsaremade,theBAplanstheoperationbycallingIBootstrapperEngine::Plan:
//IBootstrapperEngine::PlanSTDMETHOD(Plan)(__inBOOTSTRAPPER_ACTIONaction)=0;
TheBOOTSTRAPPER_ACTIONisanenumerationthatspecifiestheoverallaction.Themostcommonactionsareinstall,uninstall,andrepair.Aftertheplaniscomplete,theBAcanapplythechangesbycallingIBootstrapperEngine::Apply:
//IBootstrapperEngine::ApplySTDMETHOD(Apply)(
Page 236
__in_optHWNDhwndParent)=0;
TheBAshouldprovideawindowhandletoensurethattheelevationprompt,ifoneisrequired,isactiveanddisplayedaboveotherwindows.ThebulkoftheBAtimewillbespenthandlingcallbacksfromtheApplyaction.
WhentheBAisdone,itshouldnotifytheenginebycallingIBootstrapperEngine::Shutdown:
//IBootstrapperEngine::ShutdownSTDMETHOD(Shutdown)(__inDWORDdwExitCode,__inBOOLfRestart)=0;
TheenginewillthencalltheBAonelasttimeviaIBootstrapperApplication::OnShutdown:
//IBootstrapperApplication::OnShutdownSTDMETHOD_(void,OnShutdown)()=0;
Page 237
HowTo:AddaFileToYourInstallerInstallingfilesisthemostfundamentalaspectofanyinstaller,andisusuallywhatleadspeopletobuildaninstallerinthefirstplace.LearninghowtoplaceafileondiskusingWindowsInstallerbestpracticesnotonlyensuresmaintainabilitygoingforward,butalsoenablesyoutobuildpatcheslaterifnecessary.
Page 238
Step1:DefinethedirectorystructureInstallersfrequentlyhavemanyfilestoinstallintoafewlocationsondisk.ToimprovethereadabilityoftheWiXfile,itisagoodpracticetodefineyourinstallationdirectoriesfirstbeforelistingthefilesyou'llinstall.Directoriesaredefinedusingthe<Directory>elementanddescribethehierarchyoffoldersyouwouldliketoseeonthetargetmachine.Thefollowingsampledefinesadirectoryfortheinstallationofthemainapplicationexecutable.
<DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"><DirectoryId="APPLICATIONROOTDIRECTORY"Name="MyApplicationName"/></Directory></Directory>
TheelementwiththeidTARGETDIRisrequiredbytheWindowsInstallerandistherootofalldirectorystructuresforyourinstallation.EveryWiXprojectwillhavethisdirectoryelement.Thesecondelement,withtheidProgramFilesFolder,usesapre-definedWindowsInstallerpropertytoreferencetheProgramFilesfolderontheuser'smachine.Inmostcasesthiswillresolvetoc:\ProgramFiles\.Thethirddirectoryelementcreatesyourapplication'sfolderunderProgramFiles,anditisgiventheidAPPLICATIONROOTDIRECTORYforlateruseintheWiXproject.TheidisinallcapitalletterstomakeitapublicpropertythatcanbesetfromUIorviathecommandline.
Theresultofthesetagsisac:\ProgramFiles\MyApplicationNamefolderonthetargetmachine.
Page 239
Step2:AddfilestoyourinstallerpackageAfileisaddedtotheinstallerusingtwoelements:a<Component>elementtospecifyanatomicunitofinstallationanda<File>elementtospecifythefilethatshouldbeinstalled.
Thecomponentelementdescribesasetofresources(usuallyfiles,registryentries,andshortcuts)thatneedtobeinstalledasasingleunit.ThisisseparatefromwhetherthesetofitemsconsistofalogicalfeaturetheusercanselecttoinstallwhichisdiscussedinStep3.Whileitmaynotseemlikeabigdealwhenyouarefirstauthoringyourinstaller,componentsplayacriticalrolewhenyoudecidetobuildpatchesatalaterdate.
Ingeneral,youshouldrestrictyourselftoasinglefilepercomponent.TheWindowsInstallerisdesignedtosupportthousandsofcomponentsinasingleinstaller,sounlessyouhaveaverygoodreason,keeptoonefilepercomponent.EverycomponentmusthaveitsownuniqueGUID.Failuretofollowthesetwobasicrulescanleadtomanyproblemsdowntheroadwhenitcomestoservicing.
ThefollowingsampleusesthedirectorystructuredefinedinStep1toinstalltwofiles:anapplicationexecutableandadocumentationfile.
<DirectoryRefId="APPLICATIONROOTDIRECTORY"><ComponentId="myapplication.exe"Guid="PUT-GUID-HERE"><FileId="myapplication.exe"Source="MySourceFiles\MyApplication.exe"KeyPath="yes"Checksum</Component><ComponentId="documentation.html"Guid="PUT-GUID-HERE"><FileId="documentation.html"Source="MySourceFiles\documentation.html"KeyPath="yes"/></Component></DirectoryRef>
The<DirectoryRef>elementisusedtorefertothedirectorystructurecreatedinstep1.ByreferencingtheAPPLICATIONROOTDIRECTORYdirectory,thefileswillbeinstalledintothec:\programfiles\MyApplicationNamefolder.UnderneaththeDirectoryRefaretwoComponentelements,oneforeachofthetwofilesthatwillbeinstalled.Thisisinkeepingwiththebestpracticeofhavingonecomponentperfile.
Page 240
EachComponentelementisgivenanIdandaGuid.TheIdisusedtorefertothecomponentlaterintheWiXproject.TheGuidisusedlaterforpatchesandmustbeuniqueforeachcomponent.ForinformationongeneratingGUIDsseeHowTo:GenerateaGUID.
BeneatheachcomponentisaFileelementthatdoestheactualworkofpackagingyoursourcefilesintotheinstaller.TheIdisusedtorefertothefileelsewhereintheWiXproject.TheSourceattributespecifiesthelocationofthefileonyourmachine,soWiXcanfinditandbuilditintotheinstaller.
TheKeyPathattributeissettoyestotelltheWindowsInstallerthatthisparticularfileshouldbeusedtodeterminewhetherthecomponentisinstalled.IfyoudonotsettheKeyPathattribute,WiXwilllookatthechildelementsunderthecomponentinsequentialorderandtrytoautomaticallyselectoneofthemasakeypath.AllowingWiXtoautomaticallyselectakeypathcanbedangerousbecauseaddingorremovingchildelementsunderthecomponentcaninadvertantlycausethekeypathtochange,whichcanleadtoinstallationproblems.Ingeneral,youshouldalwayssettheKeyPathattributetoyestoensurethatthekeypathwillnotinadvertantlychangeifyouupdateyoursetupauthoringinthefuture.
TheChecksumattributeshouldbesettoyesforexecutablefilesthathaveachecksumvalueinthefileheader(thisisgenerallytrueforallexecutables),andisusedbytheWindowsInstallertoverifythevalidityofthefileonre-install.
Page 241
Step3:TellWindowsInstallertoinstallthefilesAfterdefiningthedirectorystructureandlistingthefilestopackageintotheinstaller,thelaststepistotellWindowsInstallertoactuallyinstallthefiles.The<Feature>elementisusedtodothis,andiswhereyoubreakupyourinstallerintologicalpiecesthattheusercaninstallindependently.ThefollowingexamplecreatesasinglefeaturethatinstallstheapplicationexecutableanddocumentationfromStep2.
<FeatureId="MainApplication"Title="MainApplication"Level="1"><ComponentRefId="myapplication.exe"/><ComponentRefId="documentation.html"/></Feature>
TheFeatureisgivenaId.IfyouareusinganinstallerUIsequencethatincludesfeatureselection,theTitleattributecontainsthetextdisplayedintheUIforthefeature.TheLevelattributeshouldbesetto1toenabletheinstallationofthefeaturebydefault.
The<ComponentRef>elementisusedtoreferencethecomponentscreatedinStep2viatheIdattribute.
Page 242
TheCompleteSampleThefollowingisacompletesamplethatusestheaboveconcepts.ThisexamplecanbeinsertedintoaWiXprojectandcompiled,orcompiledandlinkedfromthecommandline,togenerateaninstaller.
<?xmlversion="1.0"encoding="UTF-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><ProductId="*"UpgradeCode="PUT-GUID-HERE"Version="1.0.0.0"Language="1033"Name="MyApplicationName"<PackageInstallerVersion="300"Compressed="yes"/><MediaId="1"Cabinet="myapplication.cab"EmbedCab="yes"/>
<!--Step1:Definethedirectorystructure--><DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"><DirectoryId="APPLICATIONROOTDIRECTORY"Name="MyApplicationName"/></Directory></Directory>
<!--Step2:Addfilestoyourinstallerpackage--><DirectoryRefId="APPLICATIONROOTDIRECTORY"><ComponentId="myapplication.exe"Guid="PUT-GUID-HERE"><FileId="myapplication.exe"Source="MySourceFiles\MyApplication.exe"KeyPath="yes"Checksum</Component><ComponentId="documentation.html"Guid="PUT-GUID-HERE"><FileId="documentation.html"Source="MySourceFiles\documentation.html"KeyPath="yes"/></Component></DirectoryRef>
<!--Step3:TellWiXtoinstallthefiles--><FeatureId="MainApplication"Title="MainApplication"Level="1"><ComponentRefId="myapplication.exe"/><ComponentRefId="documentation.html"/></Feature></Product></Wix>
Page 243
HowTo:ChecktheVersionNumberofaFileDuringInstallationInstallersoftenneedtolookuptheversionnumberofafileondiskduringtheinstallationprocess.Thecheckisoftenusedinadvanceofaconditionalstatementlaterininstall,suchastoblocktheuserfrominstallingifafileismissing,ortodisplaycustominstallationUIdependingonwhetherthefileversionishighenough.Thishowtodemonstratesverifyingtheversionofafileondisk,thenusingtheresultingpropertytoblocktheapplication'sinstallationifthefileversionislowerthanexpected.
Page 244
Step1:DeterminetheversionofthefileFileversionsaredeterminedusingthe<Property>,<DirectorySearch>and<FileSearch>elements.Thefollowingsnippetlooksfortheuser32.dllfileinthemachine'sSystem32directoryandcheckstoseeifitisatleastversion6.0.6001.1751.
<PropertyId="USER32VERSION"><DirectorySearchId="SystemFolderDriverVersion"Path="[SystemFolder]"><FileSearchName="user32.dll"MinVersion="6.0.6001.1750"/></DirectorySearch></Property>
Searchingforafileisaccomplishedbydescribingthedirectoriestosearch,andthenspecifyingthefiletolookupinthatdirectory.
ThePropertyelementdefinestheIdfortheresultsofthefilesearch.ThisIdisusedlaterintheWiXproject,forexampleinconditions.TheDirectorySearchelementisusedtobuildthedirectoryhierarchytosearchforthefile.InthiscaseitisgivenauniqueId,andthepathissettotheWindowsInstallerdefinedSystemFolderpropertywhichpointstotheuser'sWindows\System32directory.TheFileSearchelementspecifiesthenameofthefiletolookforintheparentDirectorySearchfolder.TheMinVersionattributespecifiestheminimumversionofthefiletofind.
IfthefileisfoundsuccessfullytheUSER32VERSIONpropertywillbesettothefullpathtotheuser32.dllfile.
Important:Whendoingalocale-neutralsearchforafile,youmustsettheMinVersionpropertytoonerevisionnumberlowerthantheactualversionyouwanttosearchfor.Inthisexample,whilewewanttofindfileversion6.0.6001.1751,theMinVersionissetto6.0.6001.1750.ThisisbecauseofaquirkinhowtheWindowsInstallermatchesfileversions.MoreinformationisavailableintheWindowsInstallerdocumentation.
Page 245
Step2:UsethepropertyinaconditionOnceyouhavedeterminedwhetherthefileexistswiththerequestedversionyoucanusethepropertyinacondition.Thefollowingisasimpleexamplethatpreventsinstallationoftheapplicationiftheuser32.dllfileversionistoolow.
<ConditionMessage="Theinstalledversionofuser32.dllisnothighenoughtosupportthisinstaller."><![CDATA[InstalledORUSER32VERSION]]></Condition>
InstalledisaWindowsInstallerpropertythatensuresthecheckisonlydonewhentheuserisinstallingtheapplication,ratherthanonarepairorremove.TheUSER32VERSIONpartwillpassifthepropertyissettoanything,andwillfailifitisnotset.ThefilecheckinStep1willsetthepropertytothefullpathoftheuser32.dllfileifitisfoundwithanappropriatefileversion,andwillnotsetitotherwise.
Page 246
HowTo:CreateaShortcutontheStartMenuWheninstallingapplicationsitisacommonrequirementtoplaceashortcutontheuser'sStartMenutoprovidealaunchingpointfortheprogram.Thishowtowalksthroughhowtocreateashortcutonthestartmenu.ItassumesyouhaveaWiXsourcefilebasedontheconceptsdescribedinHowTo:Addafiletoyourinstaller.
Page 247
Step1:DefinethedirectorystructureStartMenushortcutsareinstalledinadifferentdirectorythanregularapplicationfiles,somodificationstotheinstaller'sdirectorystructurearerequired.ThefollowingWiXfragmentshouldbeplacedinsidea<Directory>elementwiththeTARGETDIRIDandaddsdirectorystructureinformationfortheStartMenu:
<DirectoryId="ProgramMenuFolder"><DirectoryId="ApplicationProgramsFolder"Name="MyApplicationName"/></Directory>
TheProgramMenuFolderIdisastandardWindowsInstallerpropertythatpointstotheStartMenufolderonthetargetmachine.ThesecondDirectoryelementcreatesasubfolderontheStartMenucalledMyApplicationName,andgivesitanidforuselaterintheWiXproject.
Page 248
Step2:AddtheshortcuttoyourinstallerpackageAshortcutisaddedtotheinstallerusingthreeelements:a<Component>elementtospecifyanatomicunitofinstallation,a<Shortcut>elementtospecifytheshortcutthatshouldbeinstalled,anda<RemoveFolder>elementtoensurepropercleanupwhenyourapplicationisuninstalled.
ThefollowingsampleusesthedirectorystructuredefinedinStep1tocreatetheStartMenushortcut.
<DirectoryRefId="ApplicationProgramsFolder"><ComponentId="ApplicationShortcut"Guid="PUT-GUID-HERE"><ShortcutId="ApplicationStartMenuShortcut"Name="MyApplicationName"Description="MyApplicationDescription"Target="[#myapplication.exe]"WorkingDirectory="APPLICATIONROOTDIRECTORY"/><RemoveFolderId="CleanUpShortCut"Directory="ApplicationProgramsFolder"On="uninstall"/><RegistryValueRoot="HKCU"Key="Software\Microsoft\MyApplicationName"Name="installed"Type</Component></DirectoryRef>
The<DirectoryRef>elementisusedtorefertothedirectorystructurecreatedinstep1.ByreferencingtheApplicationProgramsFolderdirectorytheshortcutwillbeinstalledintotheuser'sStartMenuinsidetheMyApplicationNamefolder.
UnderneaththeDirectoryRefisasingleComponenttogrouptheelementsusedtoinstalltheShortcut.ThefirstelementisShortcutanditcreatestheactualshortcutintheStartMenu.TheIdattributeisauniqueidfortheshortcut.TheNameattributeisthetextthatwillbedisplayedintheStartMenu.Thedescriptionisanoptionalattributeforanadditionalapplicationdescription.TheTargetattributepointstotheexecutabletolaunchondisk.Noticehowitreferencesthefullpathusingthe[#FileId]syntaxwheremyapplication.exewaspreviouslydefined.TheWorkingDirectoryattributesetstheworkingdirectoryfortheshortcut.
Tosetanoptionaliconfortheshortcutyouneedtofirstincludetheicon
Page 249
inyourinstallerusingthe<Icon>element,thenreferenceitusingtheIconattributeontheShortcutelement.
Inadditiontocreatingtheshortcutthecomponentcontainstwootherimportantpieces.ThefirstisaRemoveFolderelement,whichensurestheApplicationProgramsFolderiscorrectlyremovedfromtheStartMenuwhentheuseruninstallstheapplication.Thesecondcreatesaregistryentryoninstallthatindicatestheapplicationisinstalled.ThisisrequiredasaShortcutcannotserveastheKeyPathforacomponentwheninstallingnon-advertisedshortcutsforthecurrentusers.FormoreinformationoncreatingregistryentriesseeHowTo:Writearegistryentryduringinstallation.
Page 250
Step3:TellWindowsInstallertoinstalltheshortcutAfterdefiningthedirectorystructureandlistingtheshortcutstopackageintotheinstaller,thelaststepistotellWindowsInstallertoactuallyinstalltheshortcut.The<Feature>elementisusedtodothis.Thefollowingsnippetaddsareferencetotheshortcutcomponent,andshouldbeinsertedinsideaparentFeatureelement.
<ComponentRefId="ApplicationShortcut"/>
The<ComponentRef>elementisusedtoreferencethecomponentcreatedinStep2viatheIdattribute.
Page 251
TheCompleteSampleThefollowingisacompletesamplethatusestheaboveconcepts.ThisexamplecanbeinsertedintoaWiXprojectandcompiled,orcompiledandlinkedfromthecommandline,togenerateaninstaller.
<?xmlversion="1.0"encoding="UTF-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><ProductId="*"UpgradeCode="PUT-GUID-HERE"Version="1.0.0.0"Language="1033"Name="MyApplicationName"<PackageInstallerVersion="300"Compressed="yes"/><MediaId="1"Cabinet="myapplication.cab"EmbedCab="yes"/>
<DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"><DirectoryId="APPLICATIONROOTDIRECTORY"Name="MyApplicationName"/></Directory><!--Step1:Definethedirectorystructure--><DirectoryId="ProgramMenuFolder"><DirectoryId="ApplicationProgramsFolder"Name="MyApplicationName"/></Directory></Directory>
<DirectoryRefId="APPLICATIONROOTDIRECTORY"><ComponentId="myapplication.exe"Guid="PUT-GUID-HERE"><FileId="myapplication.exe"Source="MySourceFiles\MyApplication.exe"KeyPath="yes"Checksum</Component><ComponentId="documentation.html"Guid="PUT-GUID-HERE"><FileId="documentation.html"Source="MySourceFiles\documentation.html"KeyPath="yes"/></Component></DirectoryRef>
<!--Step2:Addtheshortcuttoyourinstallerpackage--><DirectoryRefId="ApplicationProgramsFolder"><ComponentId="ApplicationShortcut"Guid="PUT-GUID-HERE"><ShortcutId="ApplicationStartMenuShortcut"Name="MyApplicationName"Description="MyApplicationDescription"Target="[#myapplication.exe]"WorkingDirectory="APPLICATIONROOTDIRECTORY"/><RemoveFolderId="ApplicationProgramsFolder"On="uninstall"/><RegistryValueRoot="HKCU"Key="Software\Microsoft\MyApplicationName"Name="installed</Component></DirectoryRef>
<FeatureId="MainApplication"Title="MainApplication"Level="1"><ComponentRefId="myapplication.exe"/><ComponentRefId="documentation.html"/><!--Step3:TellWiXtoinstalltheshortcut-->
Page 252
<ComponentRefId="ApplicationShortcut"/></Feature></Product></Wix>
Page 253
HowTo:CreateaShortcuttoaWebpageWiXprovidessupportforcreatingshortcutstoInternetsitesaspartoftheinstallprocess.ThishowtodemonstratesreferencingthenecessaryutilitylibraryandaddinganInternetshortcuttoyourinstaller.ItassumesyouhavealreadyfollowedthestepsintheHowTo:CreateashortcutontheStartMenu.
Page 254
Step1:AddtheWiXUtilityextensionslibrarytoyourprojectTheWiXsupportforInternetshortcutsisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommand-lineyouneedtoaddthefollowingtoyourcandleandlightcommandlines:
-extWiXUtilExtension
IfyouareusingWiXinVisualStudioyoucanaddtheextensionsusingtheAddReferencedialog:
1. OpenyourWiXprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd
Reference...3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog
Page 255
Step2:AddtheWiXUtilityextensionsnamespacetoyourprojectOncethelibraryisaddedtoyourproject,youneedtoaddtheUtilityextensionsnamespacetoyourprojectsoyoucanaccesstheappropriateWiXelements.Todothismodifythetop-level<Wix>elementinyourprojectbyaddingthefollowingattribute:
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"
AcompleteWixelementwiththestandardnamespaceandtheUtilityextensionsnamespaceaddedlookslikethis:
<Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
Page 256
Step3:AddtheInternetshortcuttoyourinstallerpackageInternetshortcutsarecreatedusingthe<Util:InternetShortcut>element.ThefollowingexampleaddsanInternetShortcutelementtotheexistingshortcutcreationexamplefromHowTo:CreateashortcutontheStartMenu.
<DirectoryRefId="ApplicationProgramsFolder"><ComponentId="ApplicationShortcut"Guid="PUT-GUID-HERE"><ShortcutId="ApplicationStartMenuShortcut"Name="MyApplicationName"Description="MyApplicationDescription"Target="[#MyApplicationExeFileId]"WorkingDirectory="APPLICATIONROOTDIRECTORY"/><util:InternetShortcutId="OnlineDocumentationShortcut"Name="MyOnlineDocumentation"Target="http://wixtoolset.org/"/><RemoveFolderId="ApplicationProgramsFolder"On="uninstall"/><RegistryValueRoot="HKCU"Key="Software\Microsoft\MyApplicationName"Name="installed"Type</Component></DirectoryRef>
TheInternetShortcutisgivenauniqueidwiththeIdattribute.inthiscasetheapplication'sStartMenufolder.TheNameattributespecifiesthenameoftheshortcutontheStartMenu.TheTargetattributespecifiesthedestinationaddressfortheshortcut.The<DirectoryRef>elementisusedtorefertothedirectorystructurealreadydefinedbytheprojectfile.ByreferencingtheApplicationProgramsFolderdirectorytheshortcutwillbeinstalledintotheuser'sStartMenuinsidetheMyApplicationNamefolder.
Page 257
HowTo:CreateanUninstallShortcutWheninstallinganapplicationitisacommonrequirementtoplaceashortcutontheuser'sStartMenutoprovideamethodofuninstallingtheapplication.ThishowtodemonstratesthestepsrequiredtocreateanuninstallshortcutonthestartmenuthatpassesallICEvalidationchecks.
ThishowtoassumesyouarestartingwiththesampledescribedtheHowTo:CreateaShortcutontheStartMenutopic.
Page 258
Step1:AddtheUninstallShortcutThe<Shortcut>elementisusedtoaddtheuninstallshortcuttothestartmenu,andtheshortcutpointstomsiexec.exe(theWindowsInstallerexecutableusedtoactuallyinvoketheuninstallprocess).AnywherewithintheexistingApplicationShortcutcomponentaddthefollowing:
<ShortcutId="UninstallProduct"Name="UninstallMyApplication"Target="[SystemFolder]msiexec.exe"Arguments="/x[ProductCode]"Description="UninstallsMyApplication"/>
TheTargetattributepointstothelocationofmsiexec.exe.TheWindowsInstallerSystemFolderpropertywillresolvetotheSystem32directorywheremsiexec.exeresides.TheArgumentsattributeisusedtoletmsiexec.exeknowwhichproducttouninstallbypassingintheProductCodefortheinstallpackage.
ToavoidICEvalidationerrorsatbuilditisimportanttocoupletheShortcutelementwitharegistryentryandaRemoteFolderelement.BothofthesearedescribedinmoredetailintheHowTo:CreateaShortcutontheStartMenutopic,andareshowninthecompletesamplebelow.
Page 259
TheCompleteSampleThefollowingisacompletesamplethatusestheaboveconcepts.ThisexamplecanbeinsertedintoaWiXprojectandcompiled,orcompiledandlinkedfromthecommandline,togenerateaninstaller.
<?xmlversion="1.0"encoding="UTF-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><ProductId="*"UpgradeCode="PUT-GUID-HERE"Version="1.0.0.0"Language="1033"Name="MyApplicationName"<PackageInstallerVersion="300"Compressed="yes"/><MediaId="1"Cabinet="myapplication.cab"EmbedCab="yes"/>
<DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"><DirectoryId="APPLICATIONROOTDIRECTORY"Name="MyApplicationName"/></Directory><DirectoryId="ProgramMenuFolder"><DirectoryId="ApplicationProgramsFolder"Name="MyApplicationName"/></Directory></Directory>
<DirectoryRefId="APPLICATIONROOTDIRECTORY"><ComponentId="myapplication.exe"Guid="PUT-GUID-HERE"><FileId="myapplication.exe"Source="MySourceFiles\MyApplication.exe"KeyPath="yes"Checksum</Component><ComponentId="documentation.html"Guid="PUT-GUID-HERE"><FileId="documentation.html"Source="MySourceFiles\documentation.html"KeyPath="yes"/></Component></DirectoryRef>
<DirectoryRefId="ApplicationProgramsFolder"><ComponentId="ApplicationShortcut"Guid="PUT-GUID-HERE"><ShortcutId="ApplicationStartMenuShortcut"Name="MyApplicationName"Description="MyApplicationDescription"Target="[#myapplication.exe]"WorkingDirectory="APPLICATIONROOTDIRECTORY"/><!--Step1:Addtheuninstallshortcuttoyourinstallerpackage--><ShortcutId="UninstallProduct"Name="UninstallMyApplication"Description="UninstallsMyApplication"Target="[System64Folder]msiexec.exe"Arguments="/x[ProductCode]"/><RemoveFolderId="ApplicationProgramsFolder"On="uninstall"/><RegistryValueRoot="HKCU"Key="Software\Microsoft\MyApplicationName"Name="installed</Component></DirectoryRef>
Page 260
<FeatureId="MainApplication"Title="MainApplication"Level="1"><ComponentRefId="myapplication.exe"/><ComponentRefId="documentation.html"/><ComponentRefId="ApplicationShortcut"/></Feature></Product></Wix>
Page 261
HowTo:NGenManagedAssembliesDuringInstallationNGenduringinstallationcanimproveyourmanagedapplication'sstartuptimebycreatingnativeimagesofthemanagedassembliesonthetargetmachine.ThishowtodescribesusingtheWiXsupporttoNGenmanagedassembliesatinstalltime.
Page 262
Step1:AddtheWiX.NETextensionslibrarytoyourprojectTheWiXsupportforNGenisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommand-lineyouneedtoaddthefollowingtoyourcandleandlightcommandlines:
-extWixNetFxExtension
IfyouareusingWiXinVisualStudioyoucanaddtheextensionsusingtheAddReferencedialog:
1. OpenyourWiXprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd
Reference...3. SelecttheWixNetFxExtension.dllassemblyfromthelistandclick
Add4. ClosetheAddReferencedialog
Page 263
Step2:AddtheWiX.NETextensionsnamespacetoyourprojectOncethelibraryisaddedtoyourprojectyouneedtoaddthe.NETextensionsnamespacetoyourprojectsoyoucanaccesstheappropriateWiXelements.Todothismodifythetop-level<Wix>elementinyourprojectbyaddingthefollowingattribute:
xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension"
AcompleteWixelementwiththestandardnamespaceandthe.NETextensionsnamespaceaddedlookslikethis:
<Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
Page 264
Step3:MarkthemanagedfilesforNGenOnceyouhavethe.NETextensionlibraryandnamespaceaddedtoyourprojectyoucanusethe<NetFx:NativeImage>elementtoenableNGenonyourmanagedassemblies.TheNativeImageelementgoesinsideaparentFileelement:
<ComponentId="myapplication.exe"Guid="PUT-GUID-HERE"><FileId="myapplication.exe"Source="MySourceFiles\MyApplication.exe"KeyPath="yes"Checksum=<netfx:NativeImageId="ngen_MyApplication.exe"Platform="32bit"Priority="0"AppBaseDirectory=</File></Component>
TheIdattributeisauniqueidentifierforthenativeimage.ThePlatformattributespecifiestheplatformsforwhichthenativeimageshouldbegenerated,inthiscase32-bit.ThePriorityattributespecifieswhentheimagegenerationshouldoccur,inthiscaseimmediatelyduringthesetupprocess.TheAppBaseDirectoryattributeidentifiesthedirectorytousetosearchfordependentassembliesduringtheimagegeneration.Inthiscaseitissettotheinstalldirectoryfortheapplication.
Page 265
HowTo:ReferenceanotherDirectorySearchelementTheremaybetimeswhenyouneedtolocatedifferentfilesorsubdirectoriesunderthesamedirectory,andassigneachtoaseparateproperty.SinceyoucannotdefinethesameDirectorySearchelementmorethanonce,youmustuseaDirectorySearchRefelement.ToreferenceanotherDirectorySearchelement,youmustspecifythesameId,ParentId,andPathattributevaluesoryouwillgetunresolvedsymbolerrorswhenlinkingwithlight.exe.
Page 266
Step1:DefineaDirectorySearchelementYoufirstneedtodefinetheparentDirectorySearchelement.Thisisexpectedtocontainthedifferentfilesorsubdirectoriesyouwillassigntoseparateproperties.
<PropertyId="SHDOCVW"><DirectorySearchId="WinDir"Path="[WindowsFolder]"><DirectorySearchId="Media"Path="Media"><FileSearchId="Chimes"Name="chimes.wav"/></DirectorySearch></DirectorySearch></Property>
Thiswillsearchforthefile"chimes.wav"undertheMediadirectoryinWindows.Ifthefileisfound,thefullpathwillbeassignedtothepublicproperty"SHDOCVW".
Page 267
Step2:DefineaDirectorySearchRefelementTosearchforanotherfileintheMediadirectory,youneedtoreferenceallthesameId,ParentId,andPathattributes.BecausetheMediaDirectorySearchelementisnestedundertheWinDirDirectorySearchelement,itsParentattributeisautomaticallyassignedtheparentDirectorySearchelement'sIdattributevalue;thus,thatiswhatyoumustspecifyfortheDirectorySearchRefelement'sParentattributevalue.
<PropertyId="USER32"><DirectorySearchRefId="Media"Parent="WinDir"Path="Media"><FileSearchId="Chord"Name="chord.wav"/></DirectorySearchRef></Property>
IfyouwantedtorefertoanotherDirectorySearchelementthatusedtheIdMediabutwasunderadifferentparentpath,youwouldhavetodefineanewDirectorySearchelementunderadifferentparentthaninstep1.
Page 268
HowTo:GettheparentdirectoryofafilesearchYoucansetapropertytotheparentdirectoryofafile.
Page 269
Step1:DefinethesearchrootInthefollowingexample,thepathto[WindowsFolder]Microsoft.NETisdefinedastherootofthesearch.Ifyoudonotdefineasearchroot,WindowsInstallerwillsearchallfixeddrivesuptothedepthspecified.
<PropertyId="NGEN2DIR"><DirectorySearchId="Windows"Path="[WindowsFolder]"><DirectorySearchId="MS.NET"Path="Microsoft.NET"></DirectorySearch></DirectorySearch></Property>
Page 270
Step2:DefinetheparentdirectorytofindUnderthesearchroot,definethedirectoryyouwantreturnedandsettheDirectorySearch/@AssignToPropertyattributeto'yes'.YoumustthendefinethefileyouwanttofindusingauniqueFileSearch/@Idattributevalue.
<PropertyId="NGEN2DIR"><DirectorySearchId="Windows"Path="[WindowsFolder]"><DirectorySearchId="MS.NET"Path="Microsoft.NET"><DirectorySearchId="Ngen2Dir"Depth="2"AssignToProperty="yes"><FileSearchId="Ngen_exe"Name="ngen.exe"MinVersion="2.0.0.0"</DirectorySearch></DirectorySearch></DirectorySearch></Property>
Inthisexample,ifngen.exeisnewerthanversion2.0.0.0andisfoundnomorethantwodirectoriesunder[WindowsFolder]Microsoft.NETitsparentdirectoryisreturnedintheNGEN2DIRproperty.
Page 271
HowTo:ReadaRegistryEntryDuringInstallationInstallersoftenneedtolookupthevalueofaregistryentryduringtheinstallationprocess.Theresultingregistryvalueisoftenusedinaconditionalstatementlaterininstall,suchastoinstallaspecificcomponentifaregistryentryisnotfound.Thishowtodemonstratesreadinganintegervaluefromtheregistryandverifyingthatitexistsinalaunchcondition.
Page 272
Step1:ReadtheregistryentryintoapropertyRegistryentriesarereadusingthe<RegistrySearch>element.Thefollowingsnippetlooksforthethepresenceofthekeythatidentifiestheinstallationof.NETFramework2.0onthetargetmachine*.
<PropertyId="NETFRAMEWORK20"><RegistrySearchId="NetFramework20"Root="HKLM"Key="Software\Microsoft\NETFrameworkSetup\NDP\v2.0.50727"Name="Install"Type="raw"/></Property>
TheRegistrySearchelementspecifiesauniqueid,therootintheregistrytosearch,andthekeytolookunder.Thenameattributespecifiesthespecificvaluetoquery.Thetypeattributespecifieshowthevalueshouldbetreated.Rawindicatesthatthevalueshouldbeprefixedaccordingtothedatatypeofthevalue.Inthiscase,sinceInstallisaDWORD,theresultingvaluewillbeprependedwitha#.
TheabovesamplewillsettheNETFRAMEWORK20propertyto"#1"iftheregistrykeywasfound,andtonothingifitwasn't.
Page 273
Step2:UsethepropertyinaconditionAfterthepropertyissetyoucanuseitinaconditionanywhereinyourWiXproject.Thefollowingsnippetdemonstrateshowtouseittoblockinstallationif.NETFramework2.0isnotinstalled.
<ConditionMessage="Thisapplicationrequires.NETFramework2.0.Pleaseinstallthe.NETFrameworkthenrunthisinstalleragain."<![CDATA[InstalledORNETFRAMEWORK20]]></Condition>
InstalledisaWindowsInstallerpropertythatensuresthecheckisonlydonewhentheuserisinstallingtheapplication,ratherthanonarepairorremove.TheNETFRAMEWORK20partoftheconditionwillpassifthepropertywasset.Ifitisnotsettheinstallerwilldisplaytheerrormessagethenaborttheinstallationprocess.
*Thisregistryentryisusedforsamplepurposesonly.Ifyouwanttodetecttheinstalledversionof.NETFrameworkyoucanusethebuilt-inWiXsupport.FormoreinformationseeHowTo:Checkfor.NETFrameworkVersions.
Page 274
HowTo:WriteaRegistryEntryDuringInstallationWritingregistryentriesduringinstallationissimilartowritingfilesduringinstallation.Youdescribetheregistryhierarchyyouwanttowriteinto,specifytheregistryvaluestocreate,thenaddthecomponenttoyourfeaturelist.
Page 275
Step1:DescribetheregistrylayoutandvaluesThefollowingexampleillustrateshowtowritetworegistryentries,onetoaspecificvalueandtheothertothedefaultvalue.
<DirectoryRefId="TARGETDIR"><ComponentId="RegistryEntries"Guid="PUT-GUID-HERE"><RegistryKeyRoot="HKCU"Key="Software\Microsoft\MyApplicationName"Action="createAndRemoveOnUninstall"><RegistryValueType="integer"Name="SomeIntegerValue"Value="1"KeyPath="yes"/><RegistryValueType="string"Value="DefaultValue"/></RegistryKey></Component></DirectoryRef>
ThesnippetbeginswithaDirectoryRefthatpointstotheTARGETDIRdirectorydefinedbyWindowsInstaller.Thiseffectivelymeanstheregistryentriesshouldbeinstalledtothetargetuser'smachine.UndertheDirectoryRefisaComponentelementthatgroupstogethertheregistryentriestobeinstalled.ThecomponentisgivenanidforreferencelaterintheWiXprojectandauniqueguid.
Theregistryentriesarecreatedbyfirstusingthe<RegistryKey>elementtospecifywhereintheregistrythevaluesshouldgo.InthisexamplethekeyisunderHKEY_CURRENT_USER\Software\Microsoft\MyApplicationName.TheoptionalActionattributeisusedtotellWindowsInstallerthatthekeyshouldbecreated(ifnecessary)oninstall,andthatthekeyandallitssub-valuesshouldberemovedonuninstall.
UndertheRegistryKeyelementthe<RegistryValue>elementisusedtocreatetheactualregistryvalues.ThefirstistheSomeIntegerValuevalue,whichisoftypeintegerandhasavalueof1.ItisalsomarkedastheKeyPathforthecomponent,whichisusedbytheWindowsInstallertodeterminewhetherthiscomponentisinstalledonthemachine.ThesecondRegistryValueelementsetsthedefaultvalueforthekeytoastringvalueofDefaultValue.
Page 276
TheidattributeisomittedontheRegistryKeyandRegistryValueelementsbecausethereisnoneedtorefertotheseitemselsewhereintheWiXprojectfile.WiXwillauto-generateidsfortheelementsbasedontheregistrykey,value,andparentcomponentname.
Page 277
Step2:TellWindowsInstallertoinstalltheentriesAfterdefiningthedirectorystructureandlistingtheregistryentriestopackageintotheinstaller,thelaststepistotellWindowsInstallertoactuallyinstalltheregistryentry.The<Feature>elementisusedtodothis.Thefollowingsnippetaddsareferencetotheregistryentriescomponent,andshouldbeinsertedinsideaparentFeatureelement.
<ComponentRefId="RegistryEntries"/>
The<ComponentRef>elementisusedtoreferencethecomponentcreatedinStep1viatheIdattribute.
Page 278
HowTo:BlockInstallationBasedonOSVersionWindowsInstallerprovidesthestandardVersionNTpropertythatcanbeusedtodetecttheversionoftheuser'soperatingsystem.Oftenitisdesirabletousethispropertytoblockinstallationofanapplicationonincompatibleversionsofanoperatingsystem.ThefollowingsampledemonstrateshowtousethispropertytoblockinstallationofanapplicationonoperatingsystemspriortoWindowsVista/WindowsServer2008.
<ConditionMessage="ThisapplicationisonlysupportedonWindowsVista,WindowsServer2008,orhigher.<![CDATA[InstalledOR(VersionNT>=600)]]></Condition>
InstalledisaWindowsInstallerpropertythatensuresthecheckisonlydonewhentheuserisinstallingtheapplication,ratherthanonarepairorremove.TheVersionNTpartwillpassiftheproperty'svalueisgreaterthanorequalto600,theversionthatmatchesWindowsVista,theinstallationwillproceed.ThevaluesfordifferentversionsoftheWindowsoperatingsystemareavailableonMSDN.
Tocheckforversionsof64-bitWindowsusetheVersionNT64property.TocheckforversionsofWindowspriortoWindowsNTusetheWindows9Xproperty.
Page 279
HowTo:BlockBootstrapperInstallationBasedonRegistryKeyInthisexample,thebootstrapperwillinstall.NETFramework4.0,ifnecessary,andthenthespecificapplication.However,theapplicationdependsonapreviousinstallationofthird-partysoftware.Ideally,theuserwantstoaborttheinstallationandavoidatime-consuming.NETFrameworkinstallifthesoftwarecan'tbeused.Anexistencecheckforaregistrykey,inthisexample,allowstheinstalltoabortifit'snotfound.Here'showit'sdone:
TheprocessrequiresboththeWiXUtilandtheWiXBalextensions.Referencetheextensionsfromthebootstrapperproject,andaddtheschematotheWixelement.(The.NETFrameworkextensionisincludedmerelyaspartoftheexample.)TheWixelementshouldlooklikethis:
<Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension"xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">
Theutil:RegistrySearchelementdefinesaWiXvariable,ThirdPartyCOMLibraryInstalled,thatwillbeTruewhenthekeyexists.
<util:RegistrySearchId='SearchForThirdParty'Variable="ThirdPartyCOMLibraryInstalled"Result="exists"Root="HKLM"Key="SOFTWARE\Classes\ThirdPartyId.Server\CLSID"/>
TheWiXvariable,ThirdPartyCOMLibraryInstalled,isusedasthebal:Conditioncheckexpression.IfFalse,thevalueofthe'Message'attributeisdisplayed,andtheinstallationisaborted.
<bal:ConditionMessage="ThirdPartyApplicationCOMLibraryRequired.">
Page 280
ThirdPartyCOMLibraryInstalled</bal:Condition>
IfthecodeisorganizedinaFragment,asinthisexample,anelementmustbereferencedfromtheBundletoincludeit.Theutil:RegistrySearchelementisreferenced:
<util:RegistrySearchRefId='SearchForThirdParty'/>
ThecompleteBundleillustratestherequiredelementsincontext.
<?xmlversion="1.0"encoding="UTF-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension"xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"><BundleName="!(bind.packageName.MyApp)"Version="!(bind.packageVersion.MyApp)"Manufacturer="!(bind.packageManufacturer.MyApp)"UpgradeCode="a07ce1d5-a7ed-4d89-a7ee-fb13a5dd69ba"Copyright="Copyright(c)2013[Bundle/@Manufacturer].Allrightsreserved."IconSourceFile="$(var.My_Application1.ProjectDir)MyCo.ico"><VariableName="InstallFolder"Type="string"Value="[ProgramFilesFolder]MyCoSystems\My_Application\"/><util:RegistrySearchRefId='SearchForThirdParty'/><BootstrapperApplicationRefId="WixStandardBootstrapperApplication.HyperlinkLicense"><bal:WixStandardBootstrapperApplicationLaunchTarget="[InstallFolder]My_Application.exe"SuppressRepair="yes"SuppressOptionsUI="yes"LicenseUrl=""LogoFile="Resources/MyCoLogoWt64.png"/></BootstrapperApplicationRef><Chain>
Page 281
<PackageGroupRefId="NetFx40Redist"/><MsiPackageId="MyApp"Vital="yes"Name="MyApplication"SourceFile="$(var.MyApp_Install.TargetDir)MyApp_Install.msi"><MsiPropertyName="INSTALLLOCATION"Value="[InstallFolder]"/></MsiPackage></Chain></Bundle><Fragment><util:RegistrySearchId='SearchForThirdParty'Variable="ThirdPartyCOMLibraryInstalled"Result="exists"Root="HKLM"Key="SOFTWARE\Classes\ThirdPartyId.Server\CLSID"/><bal:ConditionMessage="ThirdPartyApplicationCOMLibraryRequired.">ThirdPartyCOMLibraryInstalled</bal:Condition></Fragment></Wix>
Page 282
HowTo:Checkfor.NETFrameworkVersionsWheninstallingapplicationswrittenusingmanagedcode,itisoftenusefultoverifythattheuser'smachinehasthenecessaryversionofthe.NETFrameworkpriortoinstallation.TheWiXsupportfordetecting.NETFrameworkversionsisincludedinaWiXextension,WixNetFxExtension.ThishowtodescribesusingtheWixNetFxExtensiontoverify.NETFrameworkversionsatinstalltime.Forinformationonhowtoinstallthe.NETFrameworkduringyourinstallationseeHowTo:Installthe.NETFrameworkUsingBurn.
Page 283
Step1:AddWixNetFxExtensiontoyourprojectYoumustaddtheWixNetFxExtensiontoyourprojectpriortouse.IfyouareusingWiXonthecommandline,youneedtoaddthefollowingtoyourcandleandlightcommandlines:
-extWixNetFxExtension
IfyouareusingWiXinVisualStudio,youcanaddtheextensionusingtheAddReferencedialog:
1. OpenyourWiXprojectinVisualStudio.2. RightclickonyourprojectinSolutionExplorerandselectAdd
Reference....3. SelecttheWixNetFxExtension.dllassemblyfromthelistandclick
Add.4. ClosetheAddReferencedialog.
Page 284
Step2:AddWixNetFxExtension'snamespacetoyourprojectOncetheextensionisaddedtoyourproject,youneedtoadditsnamespacetoyourprojectsoyoucanaccesstheappropriateWiXelements.Todothis,modifythetop-level<Wix>elementinyourprojectbyaddingthefollowingattribute:
xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension"
AcompleteWixelementwiththestandardnamespaceandWixNetFxExtension'snamespaceaddedlookslikethis:
<Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
Page 285
Step3:ReferencetherequiredpropertiesinyourprojectWixNetFxExtensiondefinespropertiesforallcurrentversionsofthe.NETFramework,includingservicepacklevels.Tomakethesepropertiesavailabletoyourinstaller,youneedtoreferencethemusingthe<PropertyRef>element.Foreachpropertyyouwanttouse,addthecorrespondingPropertyReftoyourproject.Forexample,ifyouareinterestedindetecting.NETFramework2.0addthefollowing:
<PropertyRefId="NETFRAMEWORK20"/>
Page 286
Step4:Usethepre-definedpropertiesinaconditionOncethepropertyisreferenced,youcanuseitinanyWiXconditionstatement.Forexample,thefollowingconditionblocksinstallationif.NETFramework2.0isnotinstalled.
<ConditionMessage="Thisapplicationrequires.NETFramework2.0.Pleaseinstallthe.NETFrameworkthenrunthisinstalleragain."<![CDATA[InstalledORNETFRAMEWORK20]]></Condition>
InstalledisaWindowsInstallerpropertythatensuresthecheckisonlydonewhentheuserisinstallingtheapplication,ratherthanonarepairorremove.TheNETFRAMEWORK20partoftheconditionwillpassif.NETFramework2.0isinstalled.Ifitisnotset,theinstallerwilldisplaytheerrormessagethenaborttheinstallationprocess.
Tocheckagainsttheservicepackleveloftheframework,usethe*_SP_LEVELproperties.Thefollowingconditionblocksinstallationif.NETFramework3.0SP1isnotpresentonthemachine.
<ConditionMessage="Thisapplicationrequires.NETFramework3.0SP1.Pleaseinstallthe.NETFrameworkthenrunthisinstalleragain."<![CDATA[InstalledOR(NETFRAMEWORK30_SP_LEVELandNOTNETFRAMEWORK30_SP_LEVEL="#0")</Condition>
Aswiththepreviousexample,Installedpreventsthecheckfromrunningwhentheuserisdoingarepairorremove.TheNETFRAMEWORK30_SP_LEVELpropertyissetto"#1"ifServicePack1ispresent.Sincethereisnowaytodoanumericalcomparisonagainstavaluewitha#infrontofit,theconditionfirstcheckstoseeiftheNETFRAMEWORK30_SP_LEVELissetandthenconfirmsthatitissettoanumber.Thiswillcorrectlyindicatewhetheranyservicepackfor.NET3.0isinstalled.
Page 287
HowTo:InstallDirectX9.0WithYourInstallerApplicationsthatrequirecomponentsfromDirectX9.0canbenefitfromincludingtheDirectX9.0Redistributableinsidetheirinstaller.Thissimplifiestheinstallationprocessforendusersandensurestherequiredcomponentsforyourapplicationarealwaysavailableonthetargetuser'smachine.
DirectX9.0canbere-distributedinseveraldifferentways,eachofwhichisoutlinedinMSDN'sInstallingDirectXwithDirectSetuparticle.Thishowtodescribesusingthedxsetup.exeapplicationtoinstallDirectX9.0onaVistamachineassumingtheapplicationbeinginstalledonlydependsonaspecificDirectXcomponent.
PriortoredistributingtheDirectXbinariesyoushouldreadandunderstandthelicenseagreementfortheredistributablefiles.ThelicenseagreementcanbefoundintheDocumentation\LicenseAgreements\DirectXRedist.txtfileinyourDirectXSDKinstallation.
Page 288
Step1:AddtheinstallerfilestoyourWiXprojectAddingthefilestotheWiXprojectfollowsthesameprocessasdescribedinHowTo:Addafiletoyourinstaller.Thefollowingexampleillustratesatypicalfragmentthatincludesthenecessaryfiles:
<DirectoryRefId="APPLICATIONROOTDIRECTORY"><DirectoryId="DirectXRedistDirectory"Name="DirectX9.0c"><ComponentId="DirectXRedist"Guid="PUT-GUID-HERE"><FileId="DXSETUPEXE"Source="MySourceFiles\DirectXMinInstall\dxsetup.exe"KeyPath="yes"Checksum="yes"/><FileId="dxupdate.cab"Source="MySourceFiles\DirectXMinInstall\dxupdate.cab"/><FileId="dxdllreg_x86.cab"Source="MySourceFiles\DirectXMinInstall\dxdllreg_x86.cab"/><FileId="dsetup32.dll"Source="MySourceFiles\DirectXMinInstall\dsetup32.dll"/><FileId="dsetup.dll"Source="MySourceFiles\DirectXMinInstall\dsetup.dll"/><FileId="DEC2006_d3dx9_32_x86.cab"Source="MySourceFiles\DirectXMinInstall\DEC2006_d3dx9_32_x86.cab"/></Component></Directory></DirectoryRef>
<FeatureId="DirectXRedist"Title="!(loc.FeatureDirectX)"AllowAdvertise="no"Display="hidden"Level="1"><ComponentRefId="DirectXRedist"/></Feature>
ThefilesincludedaretheminimalsetoffilesrequiredbytheDirectX9.0installprocess,asdescribedintheMSDNdocumentation.Thelastfileinthelist,DEC2006_d3dx9_32_x86.cabcontainsthespecificDirectXcomponentrequiredbytheinstalledapplication.Thesefilesareallincludedinasinglecomponentas,eveninapatchingsituation,allthefilesmustgotogether.AFeatureelementisusedtocreateafeaturespecifictoDirectXinstallation,anditsDisplayattributeissettohiddento
Page 289
preventtheuserfromseeingthefeatureinanyUIthatmaybepartofyourinstaller.
Page 290
Step2:AddacustomactiontoinvoketheinstallerToruntheDirectX9.0installeracustomactionisaddedthatrunsbeforetheinstallisfinalized.The<CustomAction>,<InstallExecuteSequence>and<Custom>elementsareusedtocreatethecustomaction,asillustratedinthefollowingsample.
<CustomActionId="InstallDirectX"FileKey="DXSETUPEXE"ExeCommand="/silent"Execute="deferred"Impersonate="no"Return="check"/>
<InstallExecuteSequence><CustomAction="InstallDirectX"Before="InstallFinalize"><![CDATA[NOTREMOVE]]></Custom></InstallExecuteSequence>
TheCustomActionelementcreatesthecustomactionthatrunsthesetup.Itisgivenauniqueid,andtheFileKeyattributeisusedtoreferencetheinstallerapplicationfromStep1.TheExeCommandattributeaddsthe/silentflagtotheinstallertoensuretheuserisnotpresentedwithanyDirectXinstalleruserinterface.TheExecuteattributeissettodeferredandtheImpersonateattributeissettonotoensurethecustomactionwillrunelevated,ifnecessary.TheReturnattributeissettochecktoensurethecustomactionrunssynchronously.
TheCustomelementisusedinsideanInstallExecuteSequencetoaddthecustomactiontotheactualinstallationprocess.TheActionattributereferencestheCustomActionbyitsuniqueid.TheBeforeattributeissettoInstallFinalizetorunthecustomactionbeforetheoverallinstallationiscomplete.TheconditionpreventstheDirectXinstallerfromrunningwhentheuseruninstallsyourapplication,sinceDirectXcomponentscannotbeuninstalled.
Page 291
Step3:IncludeprogresstextforthecustomactionIfyouareusingstandardWiXUIdialogsyoucanincludecustomprogresstextfordisplaywhiletheDirectXinstallationtakesplace.The<UI>and<ProgressText>elementsareused,asillustratedinthefollowingexample.
<UI><ProgressTextAction="InstallDirectX">InstallingDirectX9.0c</ProgressText></UI>
TheProgressTextelementusestheActionattributetoreferencethecustomactionbyitsuniqueid.ThevalueoftheProgressTextelementissettothedisplaytextfortheinstallprogress.
Page 292
HowTo:Installthe.NETFrameworkUsingBurnApplicationswrittenusingthe.NETFrameworkoftenneedtobundlethe.NETframeworkandinstallitwiththeirapplication.Wix3.6andlatermakesthiseasywithBurn.
Page 293
Step1:CreateabundleforyourapplicationFollowtheinstructionsinBuildingInstallationPackageBundles.
Page 294
Step2:Addareferencetooneofthe.NETPackageGroups1. AddareferencetoWixNetFxExtensiontoyourbundleproject.2. AddaPackageGroupRefelementtoyourbundle'schainthat
referencesthe.NETpackagerequiredbyyourapplication.Forafulllist,see[WixNetfxExtension](../../customactions/wixnetfxextension.html).EnsurethatthePayloadGroupRefisplacedbeforeanyotherpackagesthatrequire.NET.
<Chain><PackageGroupRefId="NetFx45Web"/><MsiPackageId="MyApplication"SourceFile="$(var.MyApplicationSetup.TargetPath)"/></Chain>
Page 295
Step3:Optionallypackagethe.NETFrameworkredistributableThe.NETPackageGroupsuseremotepayloadstodownloadthe.NETredistributablewhenrequired.IfyouwanttocreateabundlethatdoesnotrequireInternetconnectivity,youcanpackagethe.NETredistributablewithyourbundle.Doingsorequiresyouhavealocalcopyoftheredistributable,suchascheckedintoyoursource-controlsystem.
<Bundle><PayloadGroupId="NetFx452RedistPayload"><PayloadName="redist\NDP452-KB2901907-x86-x64-AllOS-ENU.exe"SourceFile="X:\path\to\redists\in\repo\NDP452-KB2901907-x86-x64-AllOS-ENU.exe"/></PayloadGroup></Bundle>
NotethatthePackageGroupRefinthebundle'schainisstillrequired.
Page 296
CustomizingyourbootstrapperapplicationAnynativebootstrapperapplication,includingtheWiXStandardBootstrapperApplication,willworkwellwithbundlesthatinclude.NET.
Managedbootstrapperapplicationsmusttakecarewhenincluding.NETtoensurethattheydonotunnecessarilydependonthe.NETframeworkversionbeinginstalled.
1. Referencethemanagedbootstrapperapplicationhostfromyourbundle.
<BootstrapperApplicationRefId="ManagedBootstrapperApplicationHost"><PayloadName="BootstrapperCore.config"SourceFile="$(var.MyMBA.TargetDir)\TestUX.BootstrapperCore.config<PayloadSourceFile="$(var.MyMBA.TargetPath)"/></BootstrapperApplicationRef>
2. Targetyourbootstrapperapplicationtotheversionof.NETbuiltintotheoperatingsystem.ForWindows7,thisis.NET3.5.
3. Supportusingthenewerversionsof.NETiftheolderversionsarenotavailable.ThefollowingexampleshowsthecontentoftheBootstrapperCore.configfile.
<configuration><configSections><sectionGroupname="wix.bootstrapper"type="Microsoft.Tools.WindowsInstallerXml.Bootstrapper.BootstrapperSectionGroup,BootstrapperCore<sectionname="host"type="Microsoft.Tools.WindowsInstallerXml.Bootstrapper.HostSection,BootstrapperCore</sectionGroup></configSections><startupuseLegacyV2RuntimeActivationPolicy="true"><supportedRuntimeversion="v2.0.50727"/><supportedRuntimeversion="v4.0"/>
Page 297
</startup><wix.bootstrapper><hostassemblyName="MyBootstrapperApplicationAssembly"><supportedFrameworkversion="v3.5"/><supportedFrameworkversion="v4\Client"/><!--Exampleonly.Replacethehost/@assemblyNameattributewithanassemblythatimplementsBootstrapperApplication.--><hostassemblyName="$(var.MyMBA.TargetPath)"/></host></wix.bootstrapper></configuration>
Page 298
HowTo:InstalltheVisualC++RedistributablewithyourinstallerIfyourapplicationdependsontheVisualC++runtimesyoucanincludethemaspartofyourinstallertosimplifytheinstallationexperienceforyourendusers.ThishowtodescribesincludingtheVisualC++runtimemergemodulesintoyourinstallerandexplainstheexpectedICEwarningsyouwillsee.
Page 299
Step1:ObtainthecorrectVisualC++runtimemergemodulesTheVisualC++runtimemergemodulesareinstalledwithVisualStudioandarelocatedin\ProgramFiles\CommonFiles\MergeModules.TheVisualC++8.0runtimefileisMicrosoft_VC80_CRT_x86.msm.ThissameMSMisusedfortheVisualC++8.0SP1runtime,howeveritisupdatedinplacebytheVisualStudio2005SP1installer.TheVisualStudio9.0runtimefileisMicrosoft_VC90_CRT_x86.msm.ThereisgenerallynoneedtoincludethepolicyMSMsaspartoftheinstallation.
Page 300
Step2:IncludethemergemoduleinyourinstallerToincludethemergemoduleinyourinstallerusethe<Merge>and<MergeRef>elements.Thefollowingexampleillustrateshowtheseelementsareused.
<DirectoryRefId="TARGETDIR"><MergeId="VCRedist"SourceFile="MySourceFiles\Microsoft_VC80_CRT_x86.msm"DiskId="1"Language</DirectoryRef>
<FeatureId="VCRedist"Title="VisualC++8.0Runtime"AllowAdvertise="no"Display="hidden"Level="<MergeRefId="VCRedist"/></Feature>
TheMergeelementensuresthemergemoduleisincludedinthefinalWindowsInstallerpackage.AuniqueidisassignedusingtheIdattribute.TheSourceFileattributepointstothelocationofthemergemoduleonyourmachine.TheDiskIdattributeshouldmatchtheDiskIdspecifiedinyourproject'sMediaelement.TheLanguageattributeshouldalwaysbe0.
TheMergeRefelementisusedwithinaFeatureelementtoactuallyinstallthemergemodule.IntheexampleaboveafeaturespecifictotheruntimeiscreatedandmarkedashiddentopreventitfromdisplayinginanyUIyourinstallermayuse.TheMergeRefreferstothemergemodulebyitsuniqueid.
Page 301
AnoteaboutICEwarningsIncludingtheVisualC++RuntimemergemoduleinyourinstallerwillresultinthefollowingICEwarnings:
light.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Component,Column:KeyPath,Key(s):downlevel_manifest.8.0.50727.762.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Component,Column:KeyPath,Key(s):downlevel_manifest.8.0.50727.100.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Component,Column:KeyPath,Key(s):downlevel_manifest.8.0.50727.101.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Component,Column:KeyPath,Key(s):downlevel_manifest.8.0.50727.103.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Component,Column:KeyPath,Key(s):downlevel_manifest.8.0.50727.104.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Component,Column:KeyPath,Key(s):downlevel_manifest.8.0.50727.193.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Registry,Column:Registry,Key(s):reg_downlevel_manifest.8.0.50727.100.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Registry,Column:Registry,Key(s):reg_downlevel_manifest.8.0.50727.101.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Registry,Column:Registry,Key(s):reg_downlevel_manifest.8.0.50727.103.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Registry,Column:Registry,Key(s):reg_downlevel_manifest.8.0.50727.104.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Registry,Column:Registry,Key(s):reg_downlevel_manifest.8.0.50727.193.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Registry,Column:Registry,Key(s):reg_downlevel_manifest.8.0.50727.762.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE25:PossibledependencyfailureaswedonotfindCRT.Policy.63E949F6_03BC_5C40_FF1F_C8B3B9A1E18E@0vinModuleSignaturetablelight.exe(0,0):warningLGHT1076:ICE82:ThisactionSystemFolder.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Ehasduplicatesequencenumber1inthetableInstallExecuteSequencelight.exe(0,0):warningLGHT1076:ICE82:ThisactionSystemFolder.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Ehasduplicatesequencenumber1inthetableInstallUISequencelight.exe(0,0):warningLGHT1076:ICE82:ThisactionSystemFolder.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Ehasduplicatesequencenumber1inthetableAdminExecuteSequencelight.exe(0,0):warningLGHT1076:ICE82:ThisactionSystemFolder.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Ehasduplicatesequencenumber1inthetableAdminUISequencelight.exe(0,0):warningLGHT1076:ICE82:ThisactionSystemFolder.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Ehasduplicatesequencenumber1inthetableAdvtExecuteSequence
ThesewarningsareexpectedandareduetohowtheVisualC++mergemoduleswereauthored.FormoredetailsseeAaronStebner'sblogentry.
Page 302
HowTo:BuildaLocalizedVersionofYourInstallerOnceyouhavedescribedallthestringsinyourinstallerusinglanguagefiles,asdescribedinHowTo:Makeyourinstallerlocalizable,youcanthenbuildversionsofyourinstallerforeachsupportedlanguage.ThishowtoexplainsbuildingthelocalizedinstallersbothfromthecommandlineandusingVisualStudio.
Page 303
Option1:BuildinglocalizedinstallersfromthecommandlineThefirststepinbuildingalocalizedinstalleristocompileyourWiXsourcesusingcandle.exe:
candle.exemyinstaller.wxs-outmyinstaller.wixobj
Aftertheintermediateoutputfileisgeneratedyoucanthenuselight.exetogeneratemultiplelocalizedMSIs:
light.exemyinstaller.wixobj-cultures:en-us-locen-us.wxl-outmyinstaller-en-us.msilight.exemyinstaller.wixobj-cultures:fr-fr-locfr-fr.wxl-outmyinstaller-fr-fr.msi
The-locflagisusedtospecifythelanguagefiletouse.Itisimportanttoincludethe-culturesflagonthecommandlinetoensurethecorrectlocalizedstringsareincludedforextensionssuchasWiXUIExtension.
Page 304
Option2:BuildinglocalizedinstallersusingVisualStudioVisualStudiowillautomaticallybuildlocalizedversionsofyourinstaller.IfyourWiXprojectincludesmultiple.wxlfiles,onelocalizedinstallerwillbebuiltforeachculture,unlessCulturestobuildisspecified.
Formoreinformation,seeSpecifyingculturestobuild
Page 305
SpecifyingCulturestoBuild
SpecifyingCulturestobuildontheCommandLineYoucanspecifyaspecificcultureforlight.exetobuildusingthecultureswitch:
light.exemyinstaller.wixobj-cultures:en-us-extWixUIExtension-outmyinstaller-en-us.msi
Thiswillcauselighttobuildanen-usinstallerusingtheen-usresourcesfromWixUIExtension.
Youcanstillusecultureswhenspecifyinglocalizationfiles:
light.exemyinstaller.wixobj-cultures:en-us-locmystrings_en-US.wxl-locmystrings_fr-FR.wxl-outmyinstaller-en-us.msi
Thiswillcauselighttobuildanen-usinstallerusingtheen-usresourcesfromthespecifieden-US.wxlfile.Notethatwhenspecifying-culturesanywxlfilesspecifiedwiththe-locswitchthatdonotmapwillbeignored(mystrings_fr-FR.wxlinthiscase.)
Theneutral(invariant)culturecanbespecifiedbyusingneutral:
light.exemyinstaller.wixobj-cultures:neutral-locmystrings_en-US.wxl-locmystrings_fr-FR.wxl-locmystrings.wxl-outmyinstaller.msi
Thiswillcauselighttobuildaneutralinstallerusingtheneutralresourcesfromthemystrings.wxlfile.
Youcanuseculturesandlocalizationfilestogethertospecifyfallbackcultures:
Page 306
light.exemyinstaller.wixobj-cultures:en-us;en-locmystrings_en-US.wxl-locmystrings_en.wxl-extWixUIExtension-outmyinstaller-en-us.msi
Thiswillcauselighttobuildanen-usinstallerfirstusinglocalizationvariablesfromtheen-USlocalizationfile(mystrings_en-US.wxl),thentheenlocalizationfile(mystrings_en.wxl),thenfinallyWixUIExtension.
Page 307
SpecifyingCulturestobuildinVisualStudioDuringthedevelopmentofyourinstalleryoumaywanttotemporarilydisablebuildingsomeofthelanguagestospeedupbuildtime.YoucandothisbygoingtoProject>ProjectnamePropertiesonthemenuandselectingtheBuildtab.IntheCulturestobuildfieldenterthesemicolonlistofculturesorculturegroupsyouwouldlikebuilt.
Culturestobuildmaybeusedtospecifyculturestobuildwhena.wxlfileisnotprovidedforatargetculture.Forexample,tobuildanen-USinstallerandanru-RUinstallerwhenonlyanru-RU.wxlfileisprovided,specifyen-US;ru-RU.Wixlocalizationvariablesfortheru-RUinstallerwillfirstcomefromtheprovided.wxlfile,thenreferencedWiXextensions(IE:WixUIExtension).Wixlocalizationvariablesfortheen-USinstallerwillonlycomefromreferencedextensions.
Theneutral(invariant)culturecanbespecifiedbyusingneutral.TobuildEnglish(UnitedStates),French(France),andneutralinstallersspecifythefollowing:
en-US;fr-FR;neutral
CulturestobuildmayalsobeusedtospecifyhowtousemultipleWxLfilestobuildasingleinstaller.EachcultureorculturegroupwillbuildanindividualMSI.AculturegroupconsistsofalistofculturesseparatedbycommasandisusefulforspecifyingfallbackculturesusedtolocateWiXlocalizationvariables.Multipleculturegroupsmaybeseparatedbysemi-colonstobuildmultipleoutputs.
primary1,fallback1;primary2,fallback2
Theexamplebelowdemonstratesthesettingsneededtobuildtwoinstallersfromthree.wxlfiles.Bothen-USanden-GBinstallerswillbebuilt,usingthreelocalizationfiles:setupStrings_en-US.wxl,setupStrings_en-GB.wxl,andsetupStrings_en.wxl.ThesampleusestwoculturegroupstosharetheneutralEnglishtranslationsbetweenbothof
Page 308
thefullylocalizedinstallers.
Page 309
HowTo:MakeyourinstallerlocalizableWiXsupportsbuildinglocalizedinstallersthroughtheuseoflanguagefilesthatincludelocalizedstrings.Itisagoodpracticetoputallyourstringsinalanguagefileasyoucreateyoursetup,evenifyoudonotcurrentlyplanonshippinglocalizedversionsofyourinstaller.ThishowtodescribeshowtocreatealanguagefileanduseitsstringsinyourWiXproject.
Page 310
Step1:CreatethelanguagefileLanguagefilesendinthe.wxlextensionandspecifytheircultureusingthe<WixLocalization>element.Tocreatealanguagefileonthecommandlinecreateanewfilewiththeappropriatenameandaddthefollowing:
<?xmlversion="1.0"encoding="utf-8"?><WixLocalizationCulture="en-us"xmlns="http://schemas.microsoft.com/wix/2006/localization"></WixLocalization>
IfyouareusingVisualStudioyoucanaddanewlanguagefiletoyourprojectbydoingthefollowing:
1. RightclickonyourprojectinSolutionExplorerandselectAdd>NewItem...
2. SelectWiXLocalizationFile,givethefileanappropriatename,andselectAdd
BydefaultVisualStudiocreateslanguagefilesintheen-usculture.TocreatealanguagefileforadifferentculturechangetheCultureattributetotheappropriateculturestring.
Page 311
Step2:AddthelocalizedstringsLocalizedstringsaredefinedusingthe<String>element.EachelementconsistsofauniqueidforlaterreferenceinyourWiXprojectandthestringvalue.Forexample:
<StringId="ApplicationName">MyApplicationName</String><StringId="ManufacturerName">MyManufacturerName</String>
TheStringelementgoesinsidetheWixLocalizationelement,andyoushouldaddoneStringelementforeachpieceoftextyouneedtolocalize.
Page 312
Step3:UsethelocalizedstringsinyourprojectOnceyouhavedefinedthestringsyoucanusetheminyourprojectwhereveryouwouldnormallyusetext.Forexample,tosetyourproduct'sNameandManufacturertothelocalizedstringsdothefollowing:
<ProductId="*"UpgradeCode="PUT-GUID-HERE"Version="1.0.0.0"Language="1033"Name="!(loc.ApplicationName)"Manufacturer="!(loc.ManufacturerName)">
Localizationstringsarereferencedusingthe!(loc.stringname)syntax.Thesereferenceswillbereplacedwiththeactualstringsfortheappropriatelocaleatbuildtime.
ForinformationonhowtocompilelocalizedversionsofyourinstalleronceyouhavethenecessarylanguagefilesseeHowTo:Buildalocalizedversionofyourinstaller.
Page 313
HowTo:SetYourInstaller'sIconinAdd/RemoveProgramsWindowsInstallersupportsastandardproperty,ARPPRODUCTICON,thatcontrolstheicondisplayedinAdd/RemoveProgramsforyourapplication.TosetthispropertyyoufirstneedtoincludetheiconinyourinstallerusingtheIconelement,thensetthepropertyusingthePropertyelement.
<IconId="icon.ico"SourceFile="MySourceFiles\icon.ico"/><PropertyId="ARPPRODUCTICON"Value="icon.ico"/>
ThesetwoelementscanbeplacedanywhereinyourWiXprojectundertheProductelement.TheIconelementspecifiesthelocationoftheicononyoursourcemachine,andgivesitauniqueidforuselaterintheWiXproject.ThePropertyelementsetstheARPPRODUCTIONpropertytotheidoftheicontouse.
Page 314
HowTo:RuntheInstalledApplicationAfterSetupOftenwhencompletingtheinstallationofanapplicationitisdesirabletooffertheusertheoptionofimmediatelylaunchingtheinstalledprogramwhensetupiscomplete.ThishowtodescribescustomizingthedefaultWiXUIexperiencetoincludeacheckboxandaWiXcustomactiontolaunchtheapplicationifthecheckboxischecked.
ThishowtoassumesyouhavealreadycreatedabasicWiXprojectusingthestepsoutlinedinHowTo:Addafiletoyourinstaller.
Page 315
Step1:AddtheextensionlibrariestoyourprojectThiswalkthroughrequiresWiXextensionsforUIcomponentsandcustomactions.Theseextensionlibrariesmustmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommand-lineyouneedtoaddthefollowingtoyourcandleandlightcommandlines:
-extWixUIExtension-extWixUtilExtension
IfyouareusingVisualStudioyoucanaddtheextensionsusingtheAddReferencedialog:
1. RightclickonyourprojectinSolutionExplorerandselectAddReference...
2. SelecttheWixUIExtension.dllassemblyfromthelistandclickAdd3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog
Page 316
Step2:AddUItoyourinstallerTheWiXMinimalUIsequenceincludesabasicsetofdialogsthatincludesafinisheddialogwithoptionalcheckbox.Toincludethesequenceinyourprojectaddthefollowingsnippetanywhereinsidethe<Product>element.
<UI><UIRefId="WixUI_Minimal"/></UI>
Todisplaythecheckboxonthelastscreenoftheinstallerincludethefollowingsnippetanywhereinsidethe<Product>element:
<PropertyId="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT"Value="LaunchMyApplicationName
TheWIXUI_EXITDIALOGOPTIONALCHECKBOXTEXTpropertyisprovidedbythestandardUIsequencethat,whenset,displaysthecheckboxandusesthespecifiedvalueasthecheckboxlabel.
Page 317
Step3:IncludethecustomactionCustomactionsareincludedinaWiXprojectusingthe<CustomAction>element.RunninganapplicationisaccomplishedwiththeWixShellExecTargetcustomaction.TotellWindowsInstalleraboutthecustomaction,andtosetitsproperties,includethefollowinginyourprojectanywhereinsidethe<Product>element:
<PropertyId="WixShellExecTarget"Value="[#myapplication.exe]"/><CustomActionId="LaunchApplication"BinaryKey="WixCA"DllEntry="WixShellExec"Impersonate="yes
ThePropertyelementsetstheWixShellExecTargettothelocationoftheinstalledapplication.WixShellExecTargetisthepropertyIdtheWixShellExeccustomactionexpectswillbesettothelocationofthefiletorun.TheValuepropertyusesthespecial#charactertotellWiXtolookupthefullinstalledpathofthefilewiththeidmyapplication.exe.
TheCustomActionelementincludestheactionintheinstaller.ItisgivenauniqueId,andtheBinaryKeyandDllEntrypropertiesindicatetheassemblyandentrypointforthecustomaction.TheImpersonatepropertytellsWindowsInstallertorunthecustomactionastheinstallinguser.
Page 318
Step4:TriggerthecustomactionSimplyincludingthecustomaction,asinStep3,isn'tsufficienttocauseittorun.WindowsInstallermustalsobetoldwhenthecustomactionshouldbetriggered.Thisisdonebyusingthe<Publish>elementtoaddittotheactionsrunwhentheuserclickstheFinishedbuttononthefinalpageoftheUIdialogs.ThePublishelementshouldbeincludedinsidethe<UI>elementfromStep2,andlookslikethis:
<PublishDialog="ExitDialog"Control="Finish"Event="DoAction"Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX=1andNOTInstalled</
TheDialogpropertyspecifiesthedialogtheCustomActionwillbeattachedto,inthiscasetheExitDialog.TheControlpropertyspecifiesthattheFinishbuttononthedialogtriggersthecustomaction.TheEventpropertyindicatesthatacustomactionshouldberunwhenthebuttonisclicked,andtheValuepropertyspecifiesthecustomactionthatwasincludedinStep3.TheconditionontheelementpreventstheactionfromrunningunlessthecheckboxfromStep2wascheckedandtheapplicationwasactuallyinstalled(asopposedtobeingremovedorrepaired).
Page 319
TheCompleteSample<?xmlversion="1.0"encoding="UTF-8"?><<Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><ProductId="*"UpgradeCode="PUT-GUID-HERE"Version="1.0.0.0"Language="1033"Name="MyApplicationName"Manufacturer="MyManufacturerName"><PackageInstallerVersion="300"Compressed="yes"/><MediaId="1"Cabinet="myapplication.cab"EmbedCab="yes"/>
<!--ThefollowingthreesectionsarefromtheHowTo:AddaFiletoYourInstallertopic--><DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"><DirectoryId="APPLICATIONROOTDIRECTORY"Name="MyApplicationName"/></Directory></Directory>
<DirectoryRefId="APPLICATIONROOTDIRECTORY"><ComponentId="myapplication.exe"Guid="PUT-GUID-HERE"><FileId="myapplication.exe"Source="MySourceFiles\MyApplication.exe"KeyPath="yes"Checksum</Component><ComponentId="documentation.html"Guid="PUT-GUID-HERE"><FileId="documentation.html"Source="MySourceFiles\documentation.html"KeyPath="yes"/></Component></DirectoryRef>
<FeatureId="MainApplication"Title="MainApplication"Level="1"><ComponentRefId="myapplication.exe"/><ComponentRefId="documentation.html"/></Feature>
<!--Step2:AddUItoyourinstaller/Step4:Triggerthecustomaction--><UI><UIRefId="WixUI_Minimal"/><PublishDialog="ExitDialog"Control="Finish"Event="DoAction"Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX=1andNOTInstalled</UI><PropertyId="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT"Value="LaunchMyApplicationName
<!--Step3:Includethecustomaction--><PropertyId="WixShellExecTarget"Value="[#myapplication.exe]"/><CustomActionId="LaunchApplication"
Page 320
BinaryKey="WixCA"DllEntry="WixShellExec"Impersonate="yes"/></Product></Wix>
Page 321
HowTo:ImplementaMajorUpgradeInYourInstallerWhencreatingan.msi-basedinstaller,youarestronglyencouragedtoincludelogicthatsupportsWindowsInstallermajorupgrades.Majorupgradesarethemostcommonformofupdatesfor.msi's,andincludingsupportinyourinitial.msireleasegivesyouflexibilityinthefuture.Withoutincludingsupportformajorupgradesyouriskgreatlycomplicatingyourdistributionstoryifyoueverneedtoreleaseupdateslateron.
Youcanusethefollowingstepstoenablemajorupgradesinyour.msi,buildmultipleversionsofyour.msiandtestmajorupgradescenarios.
Page 322
Step1:AddupgradeinformationneededtocausenewversionstoupgradeolderversionsInordertoallowmajorupgrades,youmustincludethefollowinginformationinyour.msi:
AddauniqueIDtoidentifythattheproductcanbeupgraded
Toaccomplishthis,youmustincludeanUpgradeCodeattributeinyourProductelement.Thislookslikethefollowing:
<ProductId="*"UpgradeCode="PUT-GUID-HERE"Name="MyApplicationName"Language="1033"Version="1.0.1"Manufacturer="MyManufacturerName"/>
Scheduletheremovalofoldversionsandhandleout-of-orderinstallations
TheMajorUpgradeelementupgradesallolderversionsofthe.msi.Bydefault,itpreventsout-of-orderinstallations:installinganolderversionafterinstallinganewerversion.
<MajorUpgradeDowngradeErrorMessage="Alaterversionof[ProductName]isalreadyinstalled.Setupwillnowexit."
ThereareseveraloptionsforwhereyoucanscheduletheRemoveExistingProductsactiontoremoveoldversionsofthe.msi.Youneedtoreviewtheoptionsandchoosetheonethatmakesthemostsenseforyourscenarios.YoucanfindasummaryoftheoptionsintheRemoveExistingProductsdocumentation.
Bydefault,MajorUpgradeschedulesRemoveExistingProductsafterInstallValidate.YoucanchangetheschedulingusingtheSchedule
Page 323
attribute.Forexample,IfyouchoosetoscheduleitafterInstallInitialize,itwilllooklikethefollowing:
<MajorUpgradeSchedule="afterInstallInitialize"DowngradeErrorMessage="Alaterversionof[ProductName]isalreadyinstalled.Setupwillnowexit."
WindowsInstallerlooksforotherinstalled.msifileswiththesameUpgradeCodevalueduringtheFindRelatedProductsaction.IfyoudonotspecificallyscheduletheFindRelatedProductsactioninyoursetupauthoring,WiXwillautomaticallyscheduleitforyouwhenitcreatesyour.msi.
Page 324
Step2:Buildversion1andversion2ofyour.msiCreatingversion1ofyour.msiisassimpleasrunningyourstandardbuildprocess-thismeansyoucompileandlinkitwiththeWiXtoolset.Inordertocreateversion2ofyour.msi,youmustmakethefollowingchangestoyoursetupauthoring,thenre-runyourbuildprocesstocreateanew.msi:
IncrementtheVersionvalueinyourProductelementtobehigherthananypreviousversionsthatyouhaveshipped.WindowsInstalleronlyusesthefirst3partsoftheversioninupgradescenarios,somakesuretoincrementyourversionsuchthatoneofthefirst3partsishigherthananypreviouslyshippedversion.Forexample,ifyourversion1usesVersionvalue1.0.1.0,thenversion2shouldhaveaVersionvalueof1.0.2.0orhigher(1.0.1.1willnotworkhere).GenerateanewIdvalueintheProductelementofthenewversionofthe.msi.
Page 325
Step3:Testupgradescenariosbeforeyoushipversion1Thisstepisveryimportantandistoooftenignored.Inordertomakesurethatupgradescenarioswillbehavethewayyouexpect,youshouldtestupgradesbeforeyoushipthefirstversionofyour.msi.Therearesomeupgrade-relatedbugsthatcanbefixedpurelybymakingfixesinversion2orhigherofyour.msi,buttherearesomebugsthataffecttheuninstallofversion1thatmustbefixedbeforeyoushipversion1.Onceversion1ships,youareessentiallylockedintotheuninstallbehaviorthatyoushipwithversion1,andthatimpactsmajorupgradescenariosbecauseWindowsInstallerperformsanuninstallofversion1behindthescenesduringversion2installation.
Herearesomeinterestingscenariostotest:
Installversion1,theninstallversion2.Makesurethatversion1iscorrectlyremovedandversion2functionscorrectly.Makesureversion2cleanlyuninstallsafterwards.Installversion2,thentrytoinstallversion1.Makesurethatversion1correctlydetectsthatversion2isalreadyinstalledandeitherblocksorsilentlyexits,dependingonwhatbehavioryouchoosetoimplementforyourout-of-orderinstallationscenarios.
Whentestingmajorupgradescenarios,makesuretopayparticularattentiontotheconditionsoncustomactionsinyour.msibecauseyoumayrunintoissuescausedbycustomactionsrunningduringamajorupgradeuninstallandleavingyourproductinapartiallyinstalledstate.TheUPGRADINGPRODUCTCODEpropertycanbeusefultopreventactionsfromrunningduringanuninstallthatisinvokedbytheRemoveExistingProductsaction.
Inaddition,payattentiontoassembliesthatneedtobeinstalledtotheGACortheWin32WinSxSstore.ThereissomeinformationaboutasequenceofeventsthatcanremoveassembliesfromtheGACandtheWinSxSstoreduringsomemajorupgradesinthisknowledgebasearticle.
Page 326
Howto:AuthorproductdependenciesTODO
Page 327
HowTo:UseWiXExtensionsTheWiXextensionscanbeusedbothonthecommandlineandwithintheVisualStudioIDE.WhenyouuseWiXextensionsintheVisualStudioIDE,youcanalsoenableIntelliSenseforeachWiXextension.
Page 328
UsingWiXextensionsonthecommandlineTouseaWiXextensionwhencallingtheWiXtoolsfromthecommandline,usethe-extcommandlineparameterandsupplytheextensionassembly(DLL)neededforyourproject.EachextensionDLLmustbepassedinviaseparate-extparameters.Forexample:
light.exeMySetup.wixobj-extWixUIExtension-extWixUtilExtension-ext"C:\MyWiXExtensions\FooExtension.dll"-outMySetup.msi
ExtensionassembliesinthesamedirectoryastheWiXtoolscanbereferredtowithoutpathor.dllextension.Extensionassembliesinotherdirectoriesmustuseacompletepathname,including.dllextension.
Note:CodeAccessSecuritymanagesthetrustlevelsofassembliesloadedbymanagedcode,includingWiXextensions.Bydefault,CASpreventsaWiXtoolrunningonalocalmachinefromloadingaWiXextensiononanetworkshare.
Page 329
UsingWiXextensionsinVisualStudioTouseaWiXextensionwhenbuildinginVisualStudiowiththeWiXVisualStudiopackage:
1. Right-clickontheWiXprojectintheVisualStudiosolutionexplorerandselectAddReference...
2. IntheAddWiXLibraryReferencedialog,clickontheBrowsetabandbrowsetotheWiXextensionDLLthatyouwanttoinclude.
3. ClicktheAddbuttontoaddareferencetothechosenextensionDLL.
4. BrowseandaddotherextensionDLLsasneeded.
ToenableIntelliSenseforaWiXextensionintheVisualStudioIDE,youneedtoaddanXMLNSdeclarationtothe<Wix>elementinyour.wxsfile.Forexample,ifyouwanttousetheNativeImagefunctionalityintheWixNetFxExtension,the<Wix>elementwouldlooklikethefollowing:
<Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
Afteraddingthis,youcanaddanelementnamed<netfx:NativeImage/>andviewIntelliSensefortheattributessupportedbytheNativeImageelement.
Page 330
HowTo:GenerateaGUIDGUIDsareusedextensivelywiththeWindowsInstallertouniquelyidentifyproducts,components,upgrades,andotherkeyelementsoftheinstallationprocess.TogenerateGUIDsusetheguidgentoolthatshipswithVisualStudio,generallylocatedunderTools>CreateGUIDmenu,ortheGuidGen.comsite.GUIDsgeneratedthiswaywillworkfineinWiX,howeversincetheyareinmixedcasetheymaycauseissuesifyousharethemwithusersofother,non-WiXtools.ForcompletecompatibilitybesuretochangethelettersintheGUIDtouppercasepriortouse.
AllexamplesintheHowTodocumentationusethetextPUT-GUID-HEREforGUIDs.EveryPUT-GUID-HEREmustbereplacedwithanewly-generatedGUID.
The<Component>,<Package>,<Patch>,<Product>elementssupportauto-generationofGUIDseverytimeyoubuildyourprojectbyspecifyinga*inplaceoftheGUID.Forexample:
<ProductId="*"Version="1.0.0.0"Language="1033"Name="MyApplicationName"Manufacturer="MyManufacturerName">
FortheComponentelementthegeneratedGUIDisbasedontheinstalldirectoryandfilenameoftheKeyPathforthecomponent.ThisGUIDwillstayconsistentfrombuild-to-buildprovidedthedirectoryandfilenameoftheKeyPathdonotchange.
Page 331
HowTo:GetaLogofYourInstallationforDebuggingWhenauthoringinstallersitisoftennecessarytogetalogoftheinstallationfordebuggingpurposes.Thisisparticularlyhelpfulwhentryingtodebugfilesearchesandlaunchconditions.Toobtainalogofaninstallationusethecommandlinemsiexectool:
msiexec/iMyApplication.msi/l*vMyLogFile.txt
ThiswillinstallyourapplicationandwriteaverboselogtoMyLogFile.txtinthecurrentdirectory.
IfyouneedtogetalogofyourinstallerwhenitislaunchedfromtheAdd/RemoveProgramsdialogyoucanenableWindowsInstallerloggingviatheregistry.
Page 332
HowTo:LookInsideYourMSIWithOrcaWhenbuildinginstallersitcanoftenbeusefultolookinsideyourinstallertoseetheactualtablesandvaluesthatwerecreatedbytheWiXbuildprocess.MicrosoftprovidesatoolwiththeWindowsSDK,calledOrca,thatcanbeusedforthispurpose.ToinstallOrca,downloadandinstalltheWindowsSDK.AftertheSDKinstallationiscompletenavigatetotheinstalldirectory(typicallyC:\ProgramFiles\MicrosoftSDKs\Windows\v7.0)andopentheToolsfolder.InsidetheToolsfolderrunOrca.msitocompletetheinstallation.(IftheWindows8.1SDKisinstalled,thenOrca-x86.msicantypicallybefoundinc:\ProgramFiles\WindowsKits\8.1\bin\x86)
OnceOrcaisinstalledyoucanrightclickonanyMSIfilefromWindowsExplorerandselectEditwithOrcatoviewthecontentsoftheMSI.
Page 333
HowTo:OptimizebuildspeedWiXprovidestwowaysofspeedingupthecreationofcabinetsforcompressingfiles:
Multithreadedcabinetcreation.Cabinetreuse.
Page 334
MultithreadedcabinetcreationLightusesmultiplethreadstobuildmultiplecabinetsinasinglepackage.Unfortunately,becausetheCABAPIitselfisn'tmultithreaded,asinglecabinetisbuiltwithonethread.Lightusesmultiplethreadswhentherearemultiplecabinets,soeachcabinetisbuiltononethread.
Bydefault,Lightusesthenumberofprocessors/coresinthesystemasthenumberofthreadstousewhencreatingcabinets.YoucanoverridethedefaultusingLight's-ctswitchortheCabinetCreationThreadCountpropertyina.wixprojproject.
Youcanusemultiplecabinetsbothexternallyandembeddedinthe.msipackage(usingtheMedia/@EmbedCabattribute).
Page 335
CabinetreuseIfyoubuildsetupswithfilesthatdon'tchangeoften,youcangeneratecabinetsforthosefilesonce,thenreusethemwithoutspendingtheCPUtimetore-buildandre-compressthem.
TherearetwoLight.exeswitchesinvolvedincabinetreuse:
-cc(CabinetCachePathpropertyin.wixprojprojects)Thevalueisthepathtousetobothwritenewcabinetsand,when-reusecab/ReuseCabinetCacheisspecified,lookforcachedcabinets.
-reusecab(ReuseCabinetCachepropertyin.wixprojprojects)When-cc/CabinetCachePathisalsospecified,WiXreusescabinetsthatdon'tneedtoberebuilt.
WiXautomaticallyvalidatesthatacachedcabinetisstillvalidbyensuringthat:
Thenumberoffilesinthecachedcabinetmatchesthenumberoffilesbeingbuilt.Thenamesofthefilesareallidentical.Theorderoffilesisidentical.Thetimestampsforallfilesallidentical.
Page 336
HowTo:SpecifysourcefilesWiXprovidesthreewaysofidentifyingasetuppackage'spayload-thefilesthatareincludedinthesetupandinstalledontheuser'smachine.
Byfilenameanddirectorytree.Byexplicitsourcefile.Vianamedbinderpaths.
Page 337
Compiling,linking,andbindingTheWiXtoolsetmodelsatypicalC/C++compilerinhowauthoringisbuilt,withacompilerthatparsestheWiXsourceauthoringtoobjectfilesandalinkerthatcombinestheobjectfilesintoanoutput.ForWiX,theoutputisan.msipackage,.msmmergemodule,or.wixliblibrary,whichhaveathirdphase:bindingpayloadfilesintotheoutput.Light.exeincludesboththelinkerandbinder.
ThoughWiXsourceauthoringreferstopayloadfiles,thecompilerneverlooksatthem;instead,onlythebinderdoes,whenitcreatescabinetscontainingthemorcopiesthemtoanuncompressedlayout.
Youcanprovidethebinderwithoneormorebinderinputpathsitusestolookforfiles.Italsolooksforfilesrelativetothecurrentworkingdirectory.Light.exe's-bswitchandtheBindInputPaths.wixprojpropertyletyouspecifyoneormorebinderinputpaths.
Binderinputpathscanalsobeprefixedwithanamewhichwillappendthatpathtotheidentifiedbinderinputpathbucket(unprefixedpathswillbeaddedtotheunnamedbinderpathsbucket).Thebucketnamemustbemorethantwocharacterslongandbefollowedbyanequalsign("=").SeeanexampleintheIdentifyingpayloadvianamedbinderpathssection
Page 338
IdentifyingfilesbynameanddirectorytreeWhenyouusetheFile/@Nameattributeanddon'tusetheFile/@Sourceattribute,thecompilerconstructsanimplicitpathtothefilebasedonthefile'sparentcomponentdirectoryplusthenameyousupply.So,forexample,giventhepartialauthoring
<DirectoryId="TARGETDIR"><DirectoryName="foo"><DirectoryName="bar"><Component><FileName="baz.txt"/>
thebinderlooksforafilefoo\bar\baz.txtintheunnamedbinderinputpaths.
Overridingimplicitpayloaddirectories
TheFileSourceattributefortheDirectoryandDirectoryRefelementssetsanewdirectoryforfilesinthatdirectoryoranychilddirectories.Forexample,giventhepartialauthoring
<DirectoryId="TARGETDIR"><DirectoryName="foo"FileSource="build\retail\x86"><DirectoryName="bar"><Component><FileName="baz.txt"/>
thebinderlooksforafilebuild\retail\x86\bar\baz.txtintheunnamedbinderinputpaths.
TheFileSourceattributecanusepreprocessorvariablesorenvironmentvariables.Ifthevalueisanabsolutepath,thebinder'sunnamedinputpathsaren'tused.
Preferreduse
Page 339
Ifthebuildtreeservingasyourpayloadsourceisalmostidenticaltothetreeofyourinstalledimageandyouhaveamoderate-to-deepdirectorytree,usingimplicitpathswillavoidrepetitioninyourauthoring.
Sourcedirectories
TheDirectory/@SourceNameattributecontrolsboththenameofthedirectorywhereLight.exelooksforfilesandthe"sourcedirectory"inthe.msipackage.Unlessyoualsowanttocontrolthesourcedirectory,justuseFileSource.
Page 340
IdentifyingpayloadbysourcefilesTheFile/@Sourceattributeisapathtothepayloadfile.Itcanbeanabsolutepathorrelativetoanyunnamedbinderinputpath.IfFile/@Sourceispresent,ittakesprecedenceovertheimplicitpathcreatedbyDirectory/@Name,Directory/@FileSource,andFile/@Name.
IfyouspecifyFile/@Source,youcanomitFile/@Namebecausethecompilerautomaticallysetsittothefilenameportionofthesourcepath.
Preferreduse
Ifthebuildtreeservingasyourpayloadsourceisdifferentfromthetreeofyourinstalledimage,usingFile/@Sourcemakesiteasytopickexplicitpathsthanaredifferentthanthe.msipackage'sdirectorytree.YoucanusemultipleunnamedbinderinputpathstoshortentheFile/@Sourcepaths.
Forexample,theWiXsetup.wixprojprojectpointstotheoutputtreeforthex86,x64,andia64platformsWiXsupportsandtheWiXsourcetree.Uniquefilenamescanbereferredtowithjusttheirfilenames;fileswiththesamenameacrossplatformsuserelativepaths.
SeetheWiXauthoringinsrc\Setup\*.wxsforexamples.
Page 341
IdentifyingpayloadvianamedbinderpathsThisissimilarinauthoringstyleto"Identifyingpayloadbysourcefiles"whilesearchingmultiplepathslike"Identifyingfilesbynameanddirectorytree".Assuch,itissortofahybridbetweenthetwo.
NamedbindpathsusestheFile/@Sourcepathprefixedwithabindpathvariablelike!(bindpath.bucketname).AswiththeunnamedbinderpathsusedwhentheFile/@Sourceisnotpresenteachpathtaggedwiththesamebucketnamewillbetesteduntilamatchingfileisfound.Iftheresultingpathisnotanabsolutefilepath,theunnamedbinderfilepathswillbesearchedforeachstringinthebucket.
<FileSource="!(bindpath.foo)bar\baz.txt"/><FileSource="!(bindpath.bar)baz\foo.txt"/>
light-bfoo=C:\foo\-bbar=C:\bar\-bfoo=D:\
willlookforthebaz.txtfilefirstatC:\foo\bar\baz.txtandthenatD:\bar\baz.txt,usingthefirstonefound,whilelookingforthefoo.txtfileatC:\bar\baz\foo.txt;while
<FileSource="!(bindpath.foo)bar\baz.txt"/><FileSource="!(bindpath.bar)baz\foo.txt"/>
light-bfoo=foo\-bbar=bar\-bfoo=baz\
willsearchforthebaz.txtfileasiflookingfortwofileshavingFile/@Sourcevaluesoffoo\bar\baz.txtandbaz\bar\baz.txtandwillsearchforthefoo.txtfileasiftheFile/@Sourcewasbar\baz\foo.txt.
Preferreduse
Ifthebuildtreeservingasyourpayloadsourceplacesthesamecategory
Page 342
offilesinseverallocationsandyouneedtosearchthoselocationsdifferentlyfordifferentcategoriesofpayloadsourcefiles,usingFile/@Sourcewiththe"!(bindpath.bucketname)"prefixmakesiteasytopickexplicitgroupsofsearchpaths.YoucanusemultipleunnamedbinderinputpathstoshortentheFile/@Sourcepathsand/ortheunnamedbinderpaths.
Forexample,apartialbuildsystemmayseparatebinaryandnon-binaryfilestodifferentpathsstoredonanetworksharewhilethelocaloverridebuildmaynothavethemseparated.ByprefixingtheFile/@Sourcevalueswiththeappropriatebindpathvariableuniquefilenamescanbereferredtowithjusttheirfilenameswhilefileswiththesamenameacrossplatformsuserelativepaths.
Page 343
UsingStandardCustomActionsCustomactionsaddtheabilitytoinstallandconfiguremanynewtypesofresources.EachoftheseresourcetypeshasoneormoreelementsthatallowyoutoinstallthemwithyourMSIpackage.Theonlythingsyouneedtodoareunderstandtheappropriateelementsfortheresourcesyouwanttoinstallandsettherequiredattributesontheseelements.TheelementsneedtobeprefixedwiththeappropriatenamespacefortheWiXextensiontheyaredefinedin.YoumustpassthefullpathtotheextensionDLLaspartofthecommandlinestothecompilerandlinkersotheyautomaticallyaddtheallofthepropererrormessages,customactionrecords,andbinaryrecordsintoyourfinalMSI.
Page 344
ExampleFirst,let'stryanexamplethatcreatesauseraccountwhentheMSIisinstalled.ThisfunctionalityisdefinedinWixUtilExtension.dllandexposedtotheuserasthe<User>element.
<Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'xmlns:util='http://schemas.microsoft.com/wix/UtilExtension'><ProductId='PutGuidHere'Name='TestUserProduct'Language='1033'Version='0.0.0.0'><PackageId='PUT-GUID-HERE'Description='TestUserPackage'InstallerVersion='200'Compressed='yes'/><DirectoryId='TARGETDIR'Name='SourceDir'><ComponentId='TestUserProductComponent'Guid='PutGuidHere'><util:UserId='TEST_USER1'Name='testName1'Password='pa$$$$word'/></Component></Directory>
<FeatureId='TestUserProductFeature'Title='TestUserProductFeature'Level='1'><ComponentRefId='TestUserProductComponent'/></Feature></Product></Wix>
Thisisasimpleexamplethatwillcreateanewuseronthemachinenamed"testName1"withthepassword"pa$$word"(thepreprocessorreplaces$$$$with$$).
TobuildtheMSIfromthisWiXauthoring:
1. Puttheabovecodeinafilenamedyourfile.wxs.2. Replacethe"PUT-GUID-HERE"attributeswithrealGUIDs.3. Runcandle.exeyourfile.wxs-ext%fullpathtoWixUtilExtension.dll%4. Runlight.exeyourfile.wixobj-ext%fullpathtoWixUtilExtension.dll%-
outyourfile.msiyourfile.wixout
Now,useOrcatoopenuptheresultingMSIandtakealookattheErrortable,theCustomActiontable,andtheBinarytable.YouwillnoticethatalloftherelevantdataformanagingusershasbeenaddedintotheMSI.Thishappenedbecauseyouhavedonetwokeythings:
Page 345
1. Youmadeuseofa<User>elementundera<Component>element.ThisindicatesthatauseristobeinstalledaspartoftheMSIpackage,andtheWiXcompilerautomaticallyaddedtheappropriateMSItabledatausedbythecustomaction.
2. YoulinkedwiththeappropriateextensionDLL(WixUtilExtension.dll).Thiscausedthelinkertoautomaticallypullalloftherelevantcustomactions,errormessages,andbinarytablerowsintotheMSI.
Page 346
OSInfocustomactionsTheWixQueryOsInfo,WixQueryOsDirs,andWixQueryOsDriverInfocustomactionsinwixca(partofWixUtilExtension)setpropertiesoverandabovetheMSIsetforOSproduct/suitedetectionandstandarddirectories.TheWixQueryOsWellKnownSIDcustomactionsetspropertiesforthelocalizednamesofsomebuiltinWindowsusersandgroups.
Tousethesecustomactionsyousimplyneedtoadda<PropertyRef>tothepropertyyouwanttouseandthenincludeWixUtilExtensionswhenlinking.Forexample:
<PropertyRefId="WIX_SUITE_SINGLEUSERTS"/><PropertyRefId="WIX_DIR_COMMON_DOCUMENTS"/><PropertyRefId="WIX_ACCOUNT_LOCALSERVICE"/>
WixUtilExtensionwillautomaticallyschedulethecustomactionsasneededaftertheAppSearchstandardaction.ForadditionalinformationaboutstandarddirectorytokensinWindowsandwhichonesaresupporteddirectlybyWindowsInstaller,seethefollowingtopicsintheMSDNdocumentation:
ConstantspecialitemIDlist(CSIDL)valuesWindowsInstallersystemfoldervalues
Page 347
WixQueryOsInfoProperties
WIX_SUITE_BACKOFFICE EquivalenttotheOSVERSIONINFOEXVER_SUITE_BACKOFFICEflag.
WIX_SUITE_BLADE EquivalenttotheOSVERSIONINFOEXVER_SUITE_BLADEflag.
WIX_SUITE_COMMUNICATIONS EquivalenttotheOSVERSIONINFOEXVER_SUITE_COMMUNICATIONSflag.
WIX_SUITE_COMPUTE_SERVER EquivalenttotheOSVERSIONINFOEXVER_SUITE_COMPUTE_SERVERflag.
WIX_SUITE_DATACENTER EquivalenttotheOSVERSIONINFOEXVER_SUITE_DATACENTERflag.
WIX_SUITE_EMBEDDEDNT EquivalenttotheOSVERSIONINFOEXVER_SUITE_EMBEDDEDNTflag.
WIX_SUITE_EMBEDDED_RESTRICTED EquivalenttotheOSVERSIONINFOEXVER_SUITE_EMBEDDED_RESTRICTEDflag.
WIX_SUITE_ENTERPRISE EquivalenttotheOSVERSIONINFOEXVER_SUITE_ENTERPRISEflag.
WIX_SUITE_MEDIACENTER EquivalenttotheGetSystemMetricsSM_SERVERR2flag.
WIX_SUITE_PERSONAL EquivalenttotheOSVERSIONINFOEXVER_SUITE_PERSONALflag.
WIX_SUITE_SECURITY_APPLIANCE EquivalenttotheOSVERSIONINFOEX
Page 348
VER_SUITE_SECURITY_APPLIANCEflag.
WIX_SUITE_SERVERR2 EquivalenttotheGetSystemMetricsSM_SERVERR2flag.
WIX_SUITE_SINGLEUSERTS EquivalenttotheOSVERSIONINFOEXVER_SUITE_SINGLEUSERTSflag.
WIX_SUITE_SMALLBUSINESS EquivalenttotheOSVERSIONINFOEXVER_SUITE_SMALLBUSINESSflag.
WIX_SUITE_SMALLBUSINESS_RESTRICTED EquivalenttotheOSVERSIONINFOEXVER_SUITE_SMALLBUSINESS_RESTRICTEDflag.
WIX_SUITE_STARTER EquivalenttotheGetSystemMetricsSM_STARTERflag.
WIX_SUITE_STORAGE_SERVER EquivalenttotheOSVERSIONINFOEXVER_SUITE_STORAGE_SERVERflag.
WIX_SUITE_TABLETPC EquivalenttotheGetSystemMetricsSM_TABLETPCflag.
WIX_SUITE_TERMINAL EquivalenttotheOSVERSIONINFOEXVER_SUITE_TERMINALflag.
WIX_SUITE_WH_SERVER WindowsHomeServer.EquivalenttotheOSVERSIONINFOEXVER_SUITE_WH_SERVERflag.
Page 349
WixQueryOsDirsProperties
WIX_DIR_ADMINTOOLS Per-useradministrativetoolsdirectory.EquivalenttotheSHGetFolderPathCSIDL_ADMINTOOLSflag.
WIX_DIR_ALTSTARTUP Per-usernonlocalizedStartupprogramgroup.EquivalenttotheSHGetFolderPathCSIDL_ALTSTARTUPflag.
WIX_DIR_CDBURN_AREA Per-userCDburningstagingdirectory.EquivalenttotheSHGetFolderPathCSIDL_CDBURN_AREAflag.
WIX_DIR_COMMON_ADMINTOOLS All-usersadministrativetoolsdirectory.EquivalenttotheSHGetFolderPathCSIDL_COMMON_ADMINTOOLSflag.
WIX_DIR_COMMON_ALTSTARTUP All-usersnonlocalizedStartupprogramgroup.EquivalenttotheSHGetFolderPathCSIDL_COMMON_ALTSTARTUPflag.
WIX_DIR_COMMON_DOCUMENTS All-usersdocumentsdirectory.EquivalenttotheSHGetFolderPathCSIDL_COMMON_DOCUMENTSflag.
Page 350
WIX_DIR_COMMON_FAVORITES All-usersfavoriteitemsdirectory.EquivalenttotheSHGetFolderPathCSIDL_COMMON_FAVORITESflag.
WIX_DIR_COMMON_MUSIC All-usersmusicfilesdirectory.EquivalenttotheSHGetFolderPathCSIDL_COMMON_MUSICflag.
WIX_DIR_COMMON_PICTURES All-userspicturefilesdirectory.EquivalenttotheSHGetFolderPathCSIDL_COMMON_PICTURESflag.
WIX_DIR_COMMON_VIDEO All-usersvideofilesdirectory.EquivalenttotheSHGetFolderPathCSIDL_COMMON_VIDEOflag.
WIX_DIR_COOKIES Per-userInternetExplorercookiesdirectory.EquivalenttotheSHGetFolderPathCSIDL_COOKIESflag.
WIX_DIR_DESKTOP Per-userdesktopdirectory.EquivalenttotheSHGetFolderPathCSIDL_DESKTOPflag.
WIX_DIR_HISTORY Per-userInternetExplorerhistorydirectory.EquivalenttotheSHGetFolderPathCSIDL_HISTORYflag.
Page 351
WIX_DIR_INTERNET_CACHE Per-userInternetExplorercachedirectory.EquivalenttotheSHGetFolderPathCSIDL_INTERNET_CACHEflag.
WIX_DIR_MYMUSIC Per-usermusicfilesdirectory.EquivalenttotheSHGetFolderPathCSIDL_MYMUSICflag.
WIX_DIR_MYPICTURES Per-userpicturefilesdirectory.EquivalenttotheSHGetFolderPathCSIDL_MYPICTURESflag.
WIX_DIR_MYVIDEO Per-uservideofilesdirectory.EquivalenttotheSHGetFolderPathCSIDL_MYVIDEOflag.
WIX_DIR_NETHOOD Per-userMyNetworkPlaceslinkobjectdirectory.EquivalenttotheSHGetFolderPathCSIDL_NETHOODflag.
WIX_DIR_PERSONAL Per-userdocumentsdirectory.EquivalenttotheSHGetFolderPathCSIDL_PERSONALflag.
WIX_DIR_PRINTHOOD Per-userPrinterslinkobjectdirectory.EquivalenttotheSHGetFolderPathCSIDL_PRINTHOODflag.
WIX_DIR_PROFILE Per-userprofiledirectory.Equivalenttothe
Page 352
SHGetFolderPathCSIDL_PROFILEflag.
WIX_DIR_RECENT Per-usermostrecentlyuseddocumentsshortcutdirectory.EquivalenttotheSHGetFolderPathCSIDL_RECENTflag.
WIX_DIR_RESOURCES All-usersresourcedatadirectory.EquivalenttotheSHGetFolderPathCSIDL_RESOURCESflag.
Page 353
WixQueryOsWellKnownSIDproperties
WIX_ACCOUNT_LOCALSYSTEM LocalizedqualifiednameoftheLocalSystemaccount(WinLocalSystemSid).
WIX_ACCOUNT_LOCALSERVICE LocalizedqualifiednameoftheLocalServiceaccount(WinLocalServiceSid).
WIX_ACCOUNT_NETWORKSERVICE LocalizedqualifiednameoftheNetworkServiceaccount(WinNetworkServiceSid).
WIX_ACCOUNT_ADMINISTRATORS LocalizedqualifiednameoftheAdministratorsgroup(WinBuiltinAdministratorsSid).
WIX_ACCOUNT_USERS LocalizedqualifiednameoftheUsersgroup(WinBuiltinUsersSid).
WIX_ACCOUNT_GUESTS LocalizedqualifiednameoftheUsersgroup(WinBuiltinGuestsSid).
WIX_ACCOUNT_PERFLOGUSERS,WIX_ACCOUNT_PERFLOGUSERS_NODOMAIN
LocalizedqualifiednameofthePerformanceLogUsersgroup(WinBuiltinPerfLoggingUsersSid).
Page 354
WixQueryOsDriverInfoproperties
WIX_WDDM_DRIVER_PRESENT Setto1ifthevideocarddriveronthetargetmachineisaWDDMdriver.ThispropertyisonlysetonmachinesrunningWindowsVistaorhigher.
WIX_DWM_COMPOSITION_ENABLED Setto1ifthetargetmachinehascompositionenabled.ThispropertyisonlysetonmachinesrunningWindowsVistaorhigher.
Page 355
PerformanceCounterCustomActionThePerfCounterelement(partofWiXUtilExtension)allowsyoutoregisteryourperformancecounterswiththeWindowsAPI.Thereareseveralpiecesthatallworktogethertosuccessfullyregister:
YourperformanceDLL-TheDLLmustexportOpen,Collect,andClosemethods.SeeMSDNformoredetail.Performanceregistryvalues-TheregistrymustcontainkeyspointingtoyourDLLanditsOpen,Collect,andClosemethods.ThesearecreatedusingtheRegistryelement.PerfmonINIandHtextfiles-ThesecontainthetextdescriptionstodisplayintheUI.SeeMSDNforlodctrdocumentation.ThisMSDNdocumentationisagoodplacetostart.Seebelowforsamplesre-purposedfromMSDN.TheRegisterPerfmoncustomaction-YoucanlinkwiththeWiXUtilExtension.dlltoensurethatthecustomactionsareincludedinyourfinalMSI.SeeUsingStandardCustomActions.Thecustomactioncalls(Un)LoadPerfCounterTextStringstoregisteryourcounterswithWindows�PerfmonAPI.Toinvokethecustomaction,youcreateaPerfCounterelementnestedwithintheFileelementforthePerfmon.INIfile.ThePerfCounterelementcontainsasingleattribute:Name.TheNameattributeshouldmatchthenameintheRegistryandinthe.INIfile.SeebelowforsampleWIXusageofthe<PerfCounter>element.
Page 356
SampleWIXsourcefragmentandPerfCounter.ini
<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><Fragment><DirectoryRefId="BinDir"><ComponentId="SharedNative"DiskId="1">
<RegistryId="Shared_r1"Root="HKLM"Key="SYSTEM\CurrentControlSet\Services\MyApplication\Performance"Name="Open"Value="OpenPerformanceData"Type="string"/><RegistryId="Shared_r2"Root="HKLM"Key="SYSTEM\CurrentControlSet\Services\MyApplication\Performance"Name="Collect"Value="CollectPerformanceData"Type="string"/><RegistryId="Shared_r3"Root="HKLM"Key="SYSTEM\CurrentControlSet\Services\MyApplication\Performance"Name="Close"Value="ClosePerformanceData"Type="string"/><RegistryId="Shared_r4"Root="HKLM"Key="SYSTEM\CurrentControlSet\Services\MyApplication\Performance"Name="Library"Value="[!PERFDLL.DLL]"Type="string"/>
<FileId="PERFDLL.DLL"Name="MyPerfDll.dll"Source="x86\debug\0\myperfdll.dll"/>
<FileId="PERFCOUNTERS.H"Name="PerfCounters.h"Source="x86\debug\0\perfcounters.h"/><FileId="PERFCOUNTERS.INI"Name="PerfCounters.ini"Source="x86\debug\0\perfcounters.ini"><PerfCounterName="MyApplication"/></File>
</Component></DirectoryRef></Fragment></Wix>
SamplePerfCounters.ini:[info]drivername=MyApplicationsymbolfile=PerfCounters.h
[languages]009=English
Page 357
004=Chinese
[objects]PERF_OBJECT_1_009_NAME=PerformanceobjectnamePERF_OBJECT_1_004_NAME=PerformanceobjectnameinChinese
[text]OBJECT_1_009_NAME=NameofthedeviceOBJECT_1_009_HELP=DisplaysperformancestatisticsofthedeviceOBJECT_1_004_NAME=NameofthedeviceinChineseOBJECT_1_004_HELP=DisplaysperformancestatisticsofthedeviceinChinese
DEVICE_COUNTER_1_009_NAME=NameoffirstcounterDEVICE_COUNTER_1_009_HELP=DisplaysthecurrentvalueofthefirstcounterDEVICE_COUNTER_1_004_NAME=NameofthefirstcounterinChineseDEVICE_COUNTER_1_004_HELP=DisplaysthevalueofthefirstcounterinChinese
DEVICE_COUNTER_2_009_NAME=NameofthesecondcounterDEVICE_COUNTER_2_009_HELP=DisplaysthecurrentrateofthesecondcounterDEVICE_COUNTER_2_004_NAME=NameofthesecondcounterinChineseDEVICE_COUNTER_2_004_HELP=DisplaystherateofthesecondcounterinChinese
PERF_OBJECT_1_009_NAME=NameofthethirdcounterPERF_OBJECT_1_009_HELP=DisplaysthecurrentrateofthethirdcounterPERF_OBJECT_1_004_NAME=NameofthethirdcounterinChinesePERF_OBJECT_1_004_HELP=DisplaystherateofthethirdcounterinChineseSamplePerfCounters.h:#defineOBJECT_10#defineDEVICE_COUNTER_12#defineDEVICE_COUNTER_24#definePERF_OBJECT_18
Page 358
QuietExecutionCustomActionTheQtExeccustomactionallowsyoutorunanarbitrarycommandlineinanMSI-basedsetupinsilentmode.QtExeciscommonlyusedtosuppressconsolewindowsthatwouldotherwiseappearappearwheninvokingtheexecutabledirectly.ThecustomactionislocatedintheWixCAlibrary,whichisapartoftheWixUtilExtension.
Page 359
NaminginWiXv3.xandWiXv4.0PriortoWiXv3.10,onlyCAQuietExecandCAQuietExec64areavailable,whichusedthepropertiesQtExecCmdTimeout(usedforboth32-bitand64-bitcustomactions),QtExecCmdLine,andQtExec64CmdLine.
StartinginWiXv3.10,thosesameidentifiersareavailablebutthenew,preferredcustomactionnamesareWixQuietExecandWixQuietExec64withpropertiesnamedWixQuietExecCmdTimeout,WixQuietExec64CmdTimeout,WixQuietExecCmdLine,andWixQuietExec64CmdLine.
InWiXv4.0,onlytheWixQuietExecnameswillbesupported.
TheWixSilentExecactionsintroducedinWiXv3.10alreadysupportthenewnamingscheme.
Page 360
ImmediateexecutionWhentheQtExecactionisrunasanimmediatecustomaction,itwilltrytoexecutethecommandstoredintheWixQuietExecCmdLineproperty.ThefollowingisanexampleofauthoringanimmediateQtExeccustomaction:
<PropertyId="WixQuietExecCmdLine"Value="commandlinetorun"/><CustomActionId="QtExecExample"BinaryKey="WixCA"DllEntry="WixQuietExec"Execute="immediate"Return="check"/>...<InstallExecuteSequence><CustomAction="QtExecExample"After="TheActionYouWantItAfter"/></InstallExecuteSequence>
Thiswillresultinrunningthecommandlineintheimmediatesequence.Iftheexitcodeofthecommandlineinthisexampleindicatesanerror(meaningthatthereturncodeisnotequalto0)thenthesetupwillfailbecausetheReturnvalueissetto“check."ChangingtheReturnvalueto"ignore"willcausethesetuptologthefailurebutskipitandcontinueinsteadoffailingtheentiresetup.
IfyouwanttorunmorethanonecommandlineintheimmediatesequencethenyouwillneedtoschedulemultipleQtExeccustomactionsandsettheWixQuietExecCmdLinepropertytoanewvaluebyschedulingaproperty-settingcustomactionimmediatelybeforeeachinstanceoftheQtExeccustomaction.
Page 361
SilentexecutionIfyouneedtorunaprogramwithoutlogginganyoftheinputparametersoroutputoftheexecutableforexample,forsecurityorprivacyreasons,youwantWixSilentExec:
<PropertyId="WixSilentExecCmdLine"Value="commandlinetorun"Hidden="yes"/><CustomActionId="SilentExecExample"BinaryKey="WixCA"DllEntry="WixSilentExec"Execute="immediate"Return="check"/>...<InstallExecuteSequence><CustomAction="SilentExecExample"After="TheActionYouWantItAfter"/></InstallExecuteSequence>
TheonlydifferenceinbehaviorbetweenWixQuietExecandWixSilentExecisthatWixSilentExecneverlogstheinputoroutputofthecommandline.TakespecialnotetomarktheinputpropertyandotherpropertiesashiddenifyoudonotwantthemloggedautomaticallybyMSI.
Page 362
DeferredexecutionWhentheWixQuietExec(orWixSilentExec)actionisrunasadeferredcustomaction,itwilltrytoexecutethecommandlinestoredinthevalueofthecustomactiondata.FordeferredQtExeccustomactions,thecustomactiondataisapropertythathasthesameIdvalueasthecustomactionId.ThefollowingisanexampleofauthoringadeferredQtExeccustomaction:
<PropertyId="QtExecDeferredExample"Value="commandlinetorun"/><CustomActionId="QtExecDeferredExample"BinaryKey="WixCA"DllEntry="WixQuietExec"Execute="deferred"Return="check"Impersonate="no"/>...<InstallExecuteSequence><CustomAction="QtExecDeferredExample"After="TheActionYouWantItAfter"/></InstallExecuteSequence>
IfyouneedtosetacommandlinethatusesotherWindowsInstallerproperties,youmustscheduleanimmediatecustomactiontosetthecommandlinepropertyvalueandscheduleadeferredcustomactiontorunQtExec.ThepropertyIdusedintheSetPropertycustomactionmustmatchtheIdvalueusedinthedeferredcustomaction.AcommonuseofthispatternforQtExeccustomactionsistorunanexecutablethatwillbeinstalledasapartofthesetup.ThefollowingisanexampleofauthoringadeferredQtExeccustomactionthatreliesonanotherpropertyvalue:
<SetPropertyId="QtExecDeferredExampleWithProperty"Value=""[#MyExecutable.exe]""Before="QtExecDeferredExampleWithProperty"/><CustomActionId="QtExecDeferredExampleWithProperty"BinaryKey="WixCA"DllEntry="WixQuietExec"Execute="deferred"Return="check"Impersonate="no"/>...<InstallExecuteSequence>
Page 363
<CustomAction="QtExecDeferredExampleWithProperty"After="TheActionYouWantItAfter"/></InstallExecuteSequence>
Page 364
Running64-bitexecutablesIfyouneedtoruna64-bitexecutable,usethe64-bitawareQtExec.Tousethe64-bitQtExec(orWixSilentExec)changetheCustomActionelement'sDllEntryattributeto"WixQuietExec64"(or"WixSilentExec64")andforimmediateexecutionusethe"WixQuietExec64CmdLine"(or"WixSilentExec64CmdLine")property.Thefollowingexamplecombinestheexamplesabovethe64-bitawareQtExecforboth.NoticethattheCustomActionelement'sIdattributesdonotneedtochange:
<PropertyId="WixQuietExec64CmdLine"Value="64-bitcommandlinetorun"/><CustomActionId="QtExecExample"BinaryKey="WixCA"DllEntry="WixQuietExec64"Execute="immediate"Return="check"/>...<SetPropertyId="QtExecDeferredExampleWithProperty"Value=""[#MyExecutable.exe]""Before="QtExecDeferredExampleWithProperty"/><CustomActionId="QtExecDeferredExampleWithProperty"BinaryKey="WixCA"DllEntry="WixQuietExec64"Execute="deferred"Return="check"Impersonate="no"/>...<InstallExecuteSequence><CustomAction="QtExecExample"After="TheImmediateActionYouWantItAfter"/><CustomAction="QtExecDeferredExampleWithProperty"After="TheDeferredActionYouWantItAfter"/></InstallExecuteSequence>
Page 365
BuildinganMSIthatusesQtExecInordertouseQtExec,youmustincludeareferencetotheWixUtilExtensionwhenbuildingyourMSI.Todothis,addthecommandlineargument-extWixUtilExtension.dllwhencallingLight.exe.
Page 366
ShellExecuteCustomActionTheWixShellExeccustomactioninwixca(partofWixUtilExtension)letsyouopendocumentorURLtargetsviatheWindowsshell.AcommonuseistolaunchreadmefilesorURLsusingtheirregistereddefaultapplicationsbasedontheirextension.NotethatWixShellExecutecanonlybeusedasanimmediatecustomactionasitlaunchesanapplicationwithoutwaitingforittoclose.WixShellExecreadsitstargetfromtheWixShellExecTargetproperty,formatsit,andthencallsShellExecutewiththeformattedvalue.Itusesthedefaultverb,whichisusually"open."Formoreinformation,seeShellExecuteFunction.
Forastep-by-stepexampleofhowtousetheShellExecutecustomactiontolaunchaprogramattheendofinstallseetheHowTo:RuntheInstalledApplicationAfterSetuptopic.
Page 367
WixDirectXExtensionTheWixDirectXExtensionincludesacustomactionnamedWixQueryDirectXCapsthatsetspropertiesyoucanusetochecktheDirectXcapabilitiesoftheinstallinguser'svideocard.
WixDirectXExtensionproperties
WIX_DIRECTX_PIXELSHADERVERSION Pixelshaderversioncapability,expressedasmajor*100+minor.Forexample,ashadermodel3.0-compliantsystemwouldhaveaWIX_DIRECTX_PIXELSHADERVERSIONvalueof300.
WIX_DIRECTX_VERTEXSHADERVERSION Vertexshaderversioncapability,expressedasmajor*100+minor.Forexample,ashadermodel3.0-compliantsystemwouldhaveaWIX_DIRECTX_VERTEXSHADERVERSIONvalueof300.
TousetheWixDirectXExtensionpropertiesinanMSI,usethefollowingsteps:
AddPropertyRefelementsforitemslistedabovethatyouwanttouseinyourMSI.Addthe-ext<pathtoWixDirectXExtension.dll>commandlineparameterwhencallinglight.exetoincludetheWixDirectXExtensionintheMSIlinkingprocess.Or,usinganMSBuild-based.wixprojproject,add<pathtoWixDirectXExtension.dll>totheWixExtensionitemgroup.WhenusingVotiveinVisualStudio,thiscanbedonebyright-clickingontheReferencesnodeinaWiXproject,choosingAddReference...thenbrowsingforWixDirectXExtension.dllandaddingareference.
Forexample:
Page 368
<PropertyRefId="WIX_DIRECTX_PIXELSHADERVERSION"/>
<CustomActionId="CA_CheckPixelShaderVersion"Error="[ProductName]requirespixelshaderversion3.0orgreater."/>
<InstallExecuteSequence><CustomAction="CA_CheckPixelShaderVersion"After="WixQueryDirectXCaps"><![CDATA[WIX_DIRECTX_PIXELSHADERVERSION<300]]></Custom></InstallExecuteSequence>
<InstallUISequence><CustomAction="CA_CheckPixelShaderVersion"After="WixQueryDirectXCaps"><![CDATA[WIX_DIRECTX_PIXELSHADERVERSION<300]]></Custom></InstallUISequence>
NotethattheWixDirectXExtensionpropertiesaresettothevalueNotSetbydefault.TheWixDirectXExtensioncustomactionisconfiguredtonotfailifitencountersanyerrorswhentryingtodetermineDirectXcapabilities.Inthistypeofscenario,thepropertieswillbesettotheirNotSetdefaultvalues.Inyoursetupauthoring,youcancomparethepropertyvaluestotheNotSetvalueortoaspecificvaluetodeterminewhetherWixDirectXExtensionwasabletoqueryDirectXcapabilitiesandifso,whattheyare.
Page 369
WixExitEarlyWithSuccessCustomActionTheWixExitEarlyWithSuccesscustomactionisanimmediatecustomactionthatdoesnothingexceptreturnthevalueERROR_NO_MORE_ITEMS.ThisreturnvaluecausesWindowsInstallertoskipallremainingactionsinthe.msiandreturnaprocessexitcodethatindicatesasuccessfulinstallation.
Thiscustomactionisusefulincaseswhereyouwantsetuptoexitwithoutactuallyinstallinganything,butwantittoreturnsuccesstothecallingprocess.Acommonscenariowherethistypeofbehaviorisusefulisinanout-of-orderinstallationscenarioforan.msithatimplementsmajorupgrades.Whenauserhasversion2ofan.msiinstalledandthenattemptstoinstallversion1,thiscustomactioncanbeusedinconjunctionwiththeUpgradetabletodetectthatversion2isalreadyinstalledtocausesetuptoexitwithoutinstallinganythingandreturnsuccess.Ifanyapplicationsredistributeversion1ofthe.msi,theirinstallationprocesseswillcontinuetoworkeveniftheuserhasversion2ofthe.msiinstalledontheirsystem.
Thereare3stepsyouneedtotaketousetheWixExitEarlyWithSuccesscustomactioninyourMSI:
Page 370
Step1:AddtheWiXutilitiesextensionslibrarytoyourprojectTheWiXsupportforWixExitEarlyWithSuccessisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommandlineyouneedtoaddthefollowingtoyourlightcommandline:
light.exemyproject.wixobj-extWixUtilExtension
IfyouareusingVotiveyoucanaddtheextensionusingtheAddReferencedialog:
1. OpenyourVotiveprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd
Reference...3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog
Page 371
Step2:AddareferencetotheWixExitEarlyWithSuccesscustomactionToaddareferencetotheWixExitEarlyWithSuccesscustomaction,includethefollowinginyourWiXsetupauthoring:
<CustomActionRefId="WixExitEarlyWithSuccess"/>
ThiswillcauseWiXtoaddtheWixExitEarlyWithSuccesscustomactiontoyourMSI,scheduleitimmediatelyaftertheFindRelatedProductsactionandconditionittoonlyrunifthepropertynamedNEWERVERSIONDETECTEDisset.
Page 372
Step3:AddlogictodefinetheNEWERVERSIONDETECTEDpropertyattheappropriatetimesInordertocausetheWixExitEarlyWithSuccesstorunatthedesiredtimes,youmustaddlogictoyourinstallertocreatetheNEWERVERSIONDETECTEDproperty.Toimplementthemajorupgradeexampledescribedabove,youcanaddanUpgradeelementlikethefollowing:
<UpgradeId="!(loc.Property_UpgradeCode)"><UpgradeVersionMinimum="$(var.ProductVersion)"OnlyDetect="yes"Property="NEWERVERSIONDETECTED"/></Upgrade>
Page 373
WixFailWhenDeferredCustomActionWhenauthoringdeferredcustomactions(whicharecustomactionsthatchangethesystemstate)inanMSI,itisnecessarytoalsoprovideanequivalentsetofrollbackcustomactionstoundothesystemstatechangeincasetheMSIfailsandrollsback.TherollbackbehaviortypicallyneedstobehavedifferentlydependingoniftheMSIiscurrentlybeinginstalled,repairedoruninstalled.Thismeansthatthefollowingscenariosneedtobeaccountedforwhencodingandtestingasetofdeferredcustomactionstomakesurethattheyareworkingasexpectedduringbothsuccessandfailurecases:
1. Successfulinstall2. Failedinstall3. Successfulrepair4. Failedrepair5. Successfuluninstall6. Faileduninstall
ThefailurecasesareoftendifficulttosimulatebyunittestingthecustomactioncodedirectlybecausedeferredcustomactioncodetypicallydependsonstateinformationprovidedtoitbyWindowsInstallerduringanactiveinstallationsession.Asaresult,thistypeoftestingusuallyrequiresfaultinjectioninordertocausetherollbackcustomactionstobeexecutedatthepropertimesduringrealinstallationscenarios.
WiXincludesasimpledeferredcustomactionnamedWixFailWhenDeferredtohelpmakeiteasiertotestrollbackcustomactionsinanMSI.WixFailWhenDeferredwillalwaysfailwhenitisexecutedduringtheinstallation,repairoruninstallationofanMSI.AddingtheWixFailWhenDeferredcustomactiontoyourMSIallowsyoutoeasilyinjectafailureintoyourMSIinordertotestyourrollbackcustomactions.
Thereare3stepsyouneedtotaketousetheWixFailWhenDeferredcustomactiontotesttherollbackcustomactionsinyourMSI:
Page 374
Step1:AddtheWiXutilitiesextensionslibrarytoyourprojectTheWiXsupportforWixFailWhenDeferredisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommandlineyouneedtoaddthefollowingtoyourlightcommandline:
light.exemyproject.wixobj-extWixUtilExtension
IfyouareusingVotiveyoucanaddtheextensionusingtheAddReferencedialog:
1. OpenyourVotiveprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd
Reference...3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog
Page 375
Step2:AddareferencetotheWixFailWhenDeferredcustomactionToaddareferencetotheWixFailWhenDeferredcustomaction,includethefollowinginyourWiXsetupauthoring:
<CustomActionRefId="WixFailWhenDeferred"/>
ThiswillcauseWiXtoaddtheWixFailWhenDeferredcustomactiontoyourMSI,scheduleitimmediatelybeforetheInstallFinalizeactionandconditionittoonlyrunifthepropertyWIXFAILWHENDEFERRED=1.
Page 376
Step3:BuildyourMSIandtestvariousscenariosTheWixFailWhenDeferredcustomactionisconditionedtorunonlywhentheWindowsInstallerpublicpropertyWIXFAILWHENDEFERRED=1.AfterbuildingyourMSIwithareferencetotheWixFailWhenDeferredcustomaction,youcanusethefollowingsetofcommandlinestosimulateaseriesofstandardinstallandrollbacktestingscenarios:
1. Standardinstall:msiexec.exe/iMyProduct.msi/qb/l*vx%temp%\MyProductInstall.log
2. Installrollback:msiexec.exe/iMyProduct.msi/qb/l*vx%temp%\MyProductInstallFailure.logWIXFAILWHENDEFERRED=1
3. Standardrepair:msiexec.exe/fvecmusMyProduct.msi/qb/l*vx%temp%\MyProductRepair.log
4. Repairrollback:msiexec.exe/fvecmusMyProduct.msi/qb/l*vx%temp%\MyProductRepairFailure.logWIXFAILWHENDEFERRED=1
5. Standarduninstall:msiexec.exe/xMyProduct.msi/qb/l*vx%temp%\MyProductUninstall.log
6. Uninstallrollback:msiexec.exe/xMyProduct.msi/qb/l*vx%temp%\MyProductUninstallFailure.logWIXFAILWHENDEFERRED=1
Page 377
WixGamingExtensionTheWixGamingExtensionletsyouregisteryourapplicationasagameinWindowsVistaandlater,inthreemaincategories:
GameExplorerintegrationwithgamedefinitionfileGameExplorertasksRichsaved-gamepreview
Page 378
GameExplorerintegrationForanoverviewofGameExplorer,seeGettingStartedWithGameExplorer.GameExplorerreliesonanembeddedfile(gamedefinitionfileorGDF)tocontrolthedatadisplayedaboutthegame.FordetailsaboutGDFs,seeTheGame-Definition-File(GDF)SchemaandGDFDeliveryandLocalization.UsingWixGamingExtension,youregisteragamewithGameExplorerusingtheGameelementasachildofyourgameexecutable'sFileelement:
<FileId="MyGameExeFile"Name="passenger_simulator.exe"KeyPath="yes"><gaming:GameId="985D5FD3-FC40-4CE9-9EE5-F2AAAB959230">...</File>
TheGame/@IdattributeisusedastheInstanceIDattributediscussedhere,ratherthangeneratingnewGUIDsatinstalltime,whichwouldrequirepersistingthegeneratedGUIDandloadingitforuninstallandmaintenancemode.
Implementationnote:UsingtheGameelementaddsarowtoacustomtableinyour.msipackageandschedulestheGamingcustomaction;atinstalltime,thatcustomactionadds/updates/removesthegameinGameExplorerandforoperatingsystemupgrades.(SeeSupportinganUpgradefromWindowsXPtoWindowsVistafordetails.)
Page 379
GameExplorertasksInGameExplorer,agame'scontextmenuincludescustomtasks:
Playtasksstartthegamewithoptionalarguments.Supporttasksstarttheuser'sdefaultbrowsertogotoaspecificURL.
Fordetails,seeGameExplorerTasks.InWixGameExtension,PlayTaskandSupportTaskarechildelementsoftheGameelement:
<FileId="MyGameExeFile"Name="passenger_simulator.exe"KeyPath="yes"><gaming:GameId="985D5FD3-FC40-4CE9-9EE5-F2AAAB959230"><gaming:PlayTaskName="Play"Arguments="-go"/><gaming:SupportTaskName="Help!"Address="http://example.com"/>......</File>
Fordetails,seetheGamingschemadocumentation.
Implementationnote:GameExplorertasksareshortcuts,sotheGamingcompilerextensiontranslatesthePlayTaskintorowsinShortcutsandSupportTaskintoWixUtilExtensionInternetShortcuts.Italsocreatesdirectoriestoholdtheshortcutsandcustomactionstosetthedirectories.
Page 380
Richsaved-gamepreviewWindowsVistaincludesashellhandlerthatletsgamesexposemetadataintheirsaved-gamefiles.Fordetails,seeRichSavedGames.Ifyourgamesupportsrichsavedgames,youcanregisteritfortherichsaved-gamepreviewusingtheWixGamingExtensionIsRichSavedGameattributeontheExtensionelement:
<ProgIdId="MyGameProgId"><ExtensionId="MyGameSave"gaming:IsRichSavedGame="yes"/></ProgId>
Implementationnote:TheGamingcompilerextensiontranslatestheIsRichSavedGameattributetorowsintheMSIRegistrytable.
Page 381
WixNetfxExtensionTheWixNetfxExtensionincludesasetofcustomactionstocompilenativeimagesusingNgen.exe.Foranexample,seeHowTo:NGenmanagedassembliesduringinstallation.
Page 382
PackageGroupsTheWixNetfxExtensionincludespackagegroupsthatmakeiteasiertoinclude.NETinyourbundles.
PackageGroupID Description
NetFx40Web .NetFramework4.0Fullwebsetup.
NetFx40Redist .NetFramework4.0Fullstandalonesetup.
NetFx40ClientWeb .NetFramework4.0ClientProfilewebsetup.
NetFx40ClientRedist .NetFramework4.0ClientProfilestandalonesetup.
NetFx45Web .NetFramework4.5websetup.
NetFx45Redist .NetFramework4.5standalonesetup.
NetFx451Web .NetFramework4.5.1websetup.
NetFx451Redist .NetFramework4.5.1standalonesetup.
NetFx452Web .NetFramework4.5.2websetup.
NetFx452Redist .NetFramework4.5.2standalonesetup.
NetFx46Web .NetFramework4.6websetup.
NetFx46Redist .NetFramework4.6standalonesetup.
Page 383
NetFx461Web .NetFramework4.6.1websetup.
NetFx461Redist .NetFramework4.6.1standalonesetup.
NetFx462Web .NetFramework4.6.2websetup.
NetFx462Redist .NetFramework4.6.2standalonesetup.
Page 384
PropertiesTheWixNetfxExtensionalsoincludesasetofpropertiesthatcanbeusedtodetectthepresenceofvariousversionsofthe.NETFramework,the.NETFrameworkSDKandtheWindowsSDK.Forinformationonhowtousethesepropertiestoverifytheuser's.NETFrameworkversionatinstalltimeseeHowTo:Checkfor.NETFrameworkVersions.
Thefollowingproperties(availablestartinginWiXv3.10)letyoudetectaparticularminimumversionof.NETFramework4.Xreleasesthatarein-placeupdates(ratherthanthatareinstalledside-by-sidewithotherreleases):
Propertyname Meaning
WIX_IS_NETFRAMEWORK_40_OR_LATER_INSTALLED Setto1if.NETFramework4.0orlaterisinstalled.
WIX_IS_NETFRAMEWORK_45_OR_LATER_INSTALLED Setto1if.NETFramework4.5orlaterisinstalled.
WIX_IS_NETFRAMEWORK_451_OR_LATER_INSTALLED Setto1if.NETFramework4.5.1orlaterisinstalled.
WIX_IS_NETFRAMEWORK_452_OR_LATER_INSTALLED Setto1if
Page 385
.NETFramework4.5.2orlaterisinstalled.
WIX_IS_NETFRAMEWORK_46_OR_LATER_INSTALLED Setto1if.NETFramework4.6orlaterisinstalled.
WIX_IS_NETFRAMEWORK_461_OR_LATER_INSTALLED Setto1if.NETFramework4.6.1orlaterisinstalled.AvailablestartinginWiXv3.11.
WIX_IS_NETFRAMEWORK_462_OR_LATER_INSTALLED Setto1if.NETFramework4.6.2orlaterisinstalled.AvailablestartinginWiXv3.11.
Thefollowingpropertyisapplicabletoallversionsofthe.NETFramework:
Propertyname Meaning
Page 386
NETFRAMEWORKINSTALLROOTDIR Settotherootinstallationdirectoryforallversionsofthe.NETFramework(%windir%\Microsoft.NET\Framework\).
Hereisacompletelistofpropertiesforthe.NETFramework1.0productfamily:
Propertyname Meaning
NETFRAMEWORK10 Setto3321-3705ifthe.NETFramework1.0isinstalled(notsetotherwise).
NETFRAMEWORK10INSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework1.0(%windir%\Microsoft.NET\Framework\v1.0.3705).
Hereisacompletelistofpropertiesforthe.NETFramework1.1productfamily:
Propertyname Meaning
NETFRAMEWORK11 Setto#1ifthe.NETFramework1.1isinstalled(notsetotherwise).
NETFRAMEWORK11_SP_LEVEL Indicatestheservicepacklevelforthe.NETFramework1.1.
NETFRAMEWORK11INSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework1.1(%windir%\Microsoft.NET\Framework\v1.1.4322).
NETFRAMEWORK11_ZH_CN_LANGPACK Setto#1ifthe.NETFramework1.1Chinese(Simplified)languagepackisinstalled(notsetotherwise).
Page 387
NETFRAMEWORK11_ZH_TW_LANGPACK Setto#1ifthe.NETFramework1.1Chinese(Traditional)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_CS_CZ_LANGPACK Setto#1ifthe.NETFramework1.1Czechlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_DA_DK_LANGPACK Setto#1ifthe.NETFramework1.1Danishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_NL_NL_LANGPACK Setto#1ifthe.NETFramework1.1Dutchlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_FI_FI_LANGPACK Setto#1ifthe.NETFramework1.1Finnishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_FR_FR_LANGPACK Setto#1ifthe.NETFramework1.1Frenchlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_DE_DE_LANGPACK Setto#1ifthe.NETFramework1.1Germanlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_EL_GR_LANGPACK Setto#1ifthe.NETFramework1.1Greeklanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_HU_HU_LANGPACK Setto#1ifthe.NETFramework1.1Hungarianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_IT_IT_LANGPACK Setto#1ifthe.NETFramework1.1Italianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_JA_JP_LANGPACK Setto#1ifthe.NETFramework1.1Japaneselanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_KO_KR_LANGPACK Setto#1ifthe.NETFramework1.1Korean
Page 388
languagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_NB_NO_LANGPACK Setto#1ifthe.NETFramework1.1Norwegianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_PL_PL_LANGPACK Setto#1ifthe.NETFramework1.1Polishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_PT_BR_LANGPACK Setto#1ifthe.NETFramework1.1Portuguese(Brazil)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_PT_PT_LANGPACK Setto#1ifthe.NETFramework1.1Portuguese(Portugal)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_RU_RU_LANGPACK Setto#1ifthe.NETFramework1.1Russianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_ES_ES_LANGPACK Setto#1ifthe.NETFramework1.1Spanishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_SV_SE_LANGPACK Setto#1ifthe.NETFramework1.1Swedishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_TR_TR_LANGPACK Setto#1ifthe.NETFramework1.1Turkishlanguagepackisinstalled(notsetotherwise).
Hereisacompletelistofpropertiesforthe.NETFramework2.0productfamily:
Propertyname Meaning
NETFRAMEWORK20 Setto#1ifthe.NETFramework2.0isinstalled(notsetotherwise).
Page 389
NETFRAMEWORK20_SP_LEVEL Indicatestheservicepacklevelforthe.NETFramework2.0.
NETFRAMEWORK20INSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework2.0(%windir%\Microsoft.NET\Framework\v2.0.50727).
NETFRAMEWORK20INSTALLROOTDIR64 Settotheinstallationdirectoryforthe64-bit.NETFramework2.0(%windir%\Microsoft.NET\Framework64\v2.0.50727).
NETFRAMEWORK20_ZH_CN_LANGPACK Setto#1ifthe.NETFramework2.0Chinese(Simplified)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_ZH_TW_LANGPACK Setto#1ifthe.NETFramework2.0Chinese(Traditional)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_CS_CZ_LANGPACK Setto#1ifthe.NETFramework2.0Czechlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_DA_DK_LANGPACK Setto#1ifthe.NETFramework2.0Danishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_NL_NL_LANGPACK Setto#1ifthe.NETFramework2.0Dutchlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_FI_FI_LANGPACK Setto#1ifthe.NETFramework2.0Finnishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_FR_FR_LANGPACK Setto#1ifthe.NETFramework2.0Frenchlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_DE_DE_LANGPACK Setto#1ifthe.NETFramework2.0German
Page 390
languagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_EL_GR_LANGPACK Setto#1ifthe.NETFramework2.0Greeklanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_HU_HU_LANGPACK Setto#1ifthe.NETFramework2.0Hungarianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_IT_IT_LANGPACK Setto#1ifthe.NETFramework2.0Italianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_JA_JP_LANGPACK Setto#1ifthe.NETFramework2.0Japaneselanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_KO_KR_LANGPACK Setto#1ifthe.NETFramework2.0Koreanlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_NB_NO_LANGPACK Setto#1ifthe.NETFramework2.0Norwegianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_PL_PL_LANGPACK Setto#1ifthe.NETFramework2.0Polishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_PT_BR_LANGPACK Setto#1ifthe.NETFramework2.0Portuguese(Brazil)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_PT_PT_LANGPACK Setto#1ifthe.NETFramework2.0Portuguese(Portugal)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_RU_RU_LANGPACK Setto#1ifthe.NETFramework2.0Russianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_ES_ES_LANGPACK Setto#1ifthe.NETFramework2.0Spanish
Page 391
languagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_SV_SE_LANGPACK Setto#1ifthe.NETFramework2.0Swedishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_TR_TR_LANGPACK Setto#1ifthe.NETFramework2.0Turkishlanguagepackisinstalled(notsetotherwise).
Hereisacompletelistofpropertiesforthe.NETFramework3.0productfamily:
Propertyname Meaning
NETFRAMEWORK30 Setto#1ifthe.NETFramework3.0isinstalled(notsetotherwise).
NETFRAMEWORK30_SP_LEVEL Indicatestheservicepacklevelforthe.NETFramework3.0.Thisvaluewillnotexistuntilaservicepackisinstalled.
NETFRAMEWORK30INSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework3.0(%windir%\Microsoft.NET\Framework\v3.0).
NETFRAMEWORK30INSTALLROOTDIR64 Settotheinstallationdirectoryforthe64-bit.NETFramework3.0(%windir%\Microsoft.NET\Framework64\v3.0).
NETFRAMEWORK30_ZH_CN_LANGPACK Setto#1ifthe.NETFramework3.0Chinese(Simplified)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_ZH_TW_LANGPACK Setto#1ifthe.NETFramework3.0Chinese(Traditional)languagepackisinstalled(notsetotherwise).
Page 392
NETFRAMEWORK30_CS_CZ_LANGPACK Setto#1ifthe.NETFramework3.0Czechlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_DA_DK_LANGPACK Setto#1ifthe.NETFramework3.0Danishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_NL_NL_LANGPACK Setto#1ifthe.NETFramework3.0Dutchlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_FI_FI_LANGPACK Setto#1ifthe.NETFramework3.0Finnishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_FR_FR_LANGPACK Setto#1ifthe.NETFramework3.0Frenchlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_DE_DE_LANGPACK Setto#1ifthe.NETFramework3.0Germanlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_EL_GR_LANGPACK Setto#1ifthe.NETFramework3.0Greeklanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_HU_HU_LANGPACK Setto#1ifthe.NETFramework3.0Hungarianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_IT_IT_LANGPACK Setto#1ifthe.NETFramework3.0Italianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_JA_JP_LANGPACK Setto#1ifthe.NETFramework3.0Japaneselanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_KO_KR_LANGPACK Setto#1ifthe.NETFramework3.0Koreanlanguagepackisinstalled(notsetotherwise).
Page 393
NETFRAMEWORK30_NB_NO_LANGPACK Setto#1ifthe.NETFramework3.0Norwegianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_PL_PL_LANGPACK Setto#1ifthe.NETFramework3.0Polishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_PT_BR_LANGPACK Setto#1ifthe.NETFramework3.0Portuguese(Brazil)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_PT_PT_LANGPACK Setto#1ifthe.NETFramework3.0Portuguese(Portugal)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_RU_RU_LANGPACK Setto#1ifthe.NETFramework3.0Russianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_ES_ES_LANGPACK Setto#1ifthe.NETFramework3.0Spanishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_SV_SE_LANGPACK Setto#1ifthe.NETFramework3.0Swedishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_TR_TR_LANGPACK Setto#1ifthe.NETFramework3.0Turkishlanguagepackisinstalled(notsetotherwise).
Hereisacompletelistofpropertiesforthe.NETFramework3.5productfamily:
Propertyname Meaning
NETFRAMEWORK35 Setto#1ifthe.NETFramework3.5isinstalled(notsetotherwise).
Page 394
NETFRAMEWORK35_SP_LEVEL Indicatestheservicepacklevelforthe.NETFramework3.5.
NETFRAMEWORK35INSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework3.5(%windir%\Microsoft.NET\Framework\v3.5).
NETFRAMEWORK35INSTALLROOTDIR64 Settotheinstallationdirectoryforthe64-bit.NETFramework3.5(%windir%\Microsoft.NET\Framework64\v3.5).
NETFRAMEWORK35_ZH_CN_LANGPACK Setto#1ifthe.NETFramework3.5Chinese(Simplified)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_ZH_TW_LANGPACK Setto#1ifthe.NETFramework3.5Chinese(Traditional)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_CS_CZ_LANGPACK Setto#1ifthe.NETFramework3.5Czechlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_DA_DK_LANGPACK Setto#1ifthe.NETFramework3.5Danishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_NL_NL_LANGPACK Setto#1ifthe.NETFramework3.5Dutchlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_FI_FI_LANGPACK Setto#1ifthe.NETFramework3.5Finnishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_FR_FR_LANGPACK Setto#1ifthe.NETFramework3.5Frenchlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_DE_DE_LANGPACK Setto#1ifthe.NETFramework3.5Germanlanguagepackisinstalled(notsetotherwise).
Page 395
NETFRAMEWORK35_EL_GR_LANGPACK Setto#1ifthe.NETFramework3.5Greeklanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_HU_HU_LANGPACK Setto#1ifthe.NETFramework3.5Hungarianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_IT_IT_LANGPACK Setto#1ifthe.NETFramework3.5Italianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_JA_JP_LANGPACK Setto#1ifthe.NETFramework3.5Japaneselanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_KO_KR_LANGPACK Setto#1ifthe.NETFramework3.5Koreanlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_NB_NO_LANGPACK Setto#1ifthe.NETFramework3.5Norwegianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_PL_PL_LANGPACK Setto#1ifthe.NETFramework3.5Polishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_PT_BR_LANGPACK Setto#1ifthe.NETFramework3.5Portuguese(Brazil)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_PT_PT_LANGPACK Setto#1ifthe.NETFramework3.5Portuguese(Portugal)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_RU_RU_LANGPACK Setto#1ifthe.NETFramework3.5Russianlanguagepackisinstalled(notsetotherwise).
Page 396
NETFRAMEWORK35_ES_ES_LANGPACK Setto#1ifthe.NETFramework3.5Spanishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_SV_SE_LANGPACK Setto#1ifthe.NETFramework3.5Swedishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_TR_TR_LANGPACK Setto#1ifthe.NETFramework3.5Turkishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_CLIENT Setto#1ifthe.NETFramework3.5clientprofileisinstalled(notsetotherwise).
NETFRAMEWORK35_CLIENT_SP_LEVEL Indicatestheservicepacklevelforthe.NETFramework3.5clientprofile.
Hereisacompletelistofpropertiesforthe.NETFramework4.0productfamily:
Propertyname Meaning
NETFRAMEWORK40FULL Setto#1ifthe.NETFramework4.0fullisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_SERVICING_LEVEL Indicatestheservicepacklevelforthe.NETFramework4.0full.ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULLINSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework4.0full(%windir%\Microsoft.NET\Framework\v4.0).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULLINSTALLROOTDIR64 Settotheinstallationdirectoryforthe64-bit.NETFramework4.0full
Page 397
(%windir%\Microsoft.NET\Framework64\v4.0).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_AR_SA_LANGPACK Setto#1ifthe.NETFramework4.0fullArabiclanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_ZH_CN_LANGPACK Setto#1ifthe.NETFramework4.0fullChinese(Simplified)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_ZH_TW_LANGPACK Setto#1ifthe.NETFramework4.0fullChinese(Traditional)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_CS_CZ_LANGPACK Setto#1ifthe.NETFramework4.0fullCzechlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_DA_DK_LANGPACK Setto#1ifthe.NETFramework4.0fullDanishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_NL_NL_LANGPACK Setto#1ifthe.NETFramework4.0fullDutchlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_FI_FI_LANGPACK Setto#1ifthe.NETFramework4.0fullFinnishlanguagepackisinstalled(notsetotherwise).Thispropertyisavailablestarting
Page 398
withWiXv3.5.
NETFRAMEWORK40FULL_FR_FR_LANGPACK Setto#1ifthe.NETFramework4.0fullFrenchlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_DE_DE_LANGPACK Setto#1ifthe.NETFramework4.0fullGermanlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_EL_GR_LANGPACK Setto#1ifthe.NETFramework4.0fullGreeklanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_HE_IL_LANGPACK Setto#1ifthe.NETFramework4.0fullHebrewlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_HU_HU_LANGPACK Setto#1ifthe.NETFramework4.0fullHungarianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_IT_IT_LANGPACK Setto#1ifthe.NETFramework4.0fullItalianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_JA_JP_LANGPACK Setto#1ifthe.NETFramework4.0fullJapaneselanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
Page 399
NETFRAMEWORK40FULL_KO_KR_LANGPACK Setto#1ifthe.NETFramework4.0fullKoreanlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_NB_NO_LANGPACK Setto#1ifthe.NETFramework4.0fullNorwegianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_PL_PL_LANGPACK Setto#1ifthe.NETFramework4.0fullPolishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_PT_BR_LANGPACK Setto#1ifthe.NETFramework4.0fullPortuguese(Brazil)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_PT_PT_LANGPACK Setto#1ifthe.NETFramework4.0fullPortuguese(Portugal)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_RU_RU_LANGPACK Setto#1ifthe.NETFramework4.0fullRussianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_ES_ES_LANGPACK Setto#1ifthe.NETFramework4.0fullSpanishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_SV_SE_LANGPACK Setto#1ifthe.NETFramework4.0full
Page 400
Swedishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_TR_TR_LANGPACK Setto#1ifthe.NETFramework4.0fullTurkishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT Setto#1ifthe.NETFramework4.0clientprofileisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_SERVICING_LEVEL Indicatestheservicepacklevelforthe.NETFramework4.0clientprofile.ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENTINSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework4.0full(%windir%\Microsoft.NET\Framework\v4.0).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENTINSTALLROOTDIR64 Settotheinstallationdirectoryforthe64-bit.NETFramework4.0full(%windir%\Microsoft.NET\Framework64\v4.0).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_AR_SA_LANGPACK Setto#1ifthe.NETFramework4.0clientArabiclanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_ZH_CN_LANGPACK Setto#1ifthe.NETFramework4.0clientChinese(Simplified)languagepackisinstalled(notsetotherwise).Thispropertyis
Page 401
availablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_ZH_TW_LANGPACK Setto#1ifthe.NETFramework4.0clientChinese(Traditional)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_CS_CZ_LANGPACK Setto#1ifthe.NETFramework4.0clientCzechlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_DA_DK_LANGPACK Setto#1ifthe.NETFramework4.0clientDanishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_NL_NL_LANGPACK Setto#1ifthe.NETFramework4.0clientDutchlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_FI_FI_LANGPACK Setto#1ifthe.NETFramework4.0clientFinnishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_FR_FR_LANGPACK Setto#1ifthe.NETFramework4.0clientFrenchlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_DE_DE_LANGPACK Setto#1ifthe.NETFramework4.0clientGermanlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
Page 402
NETFRAMEWORK40CLIENT_EL_GR_LANGPACK Setto#1ifthe.NETFramework4.0clientGreeklanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_HE_IL_LANGPACK Setto#1ifthe.NETFramework4.0clientHebrewlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_HU_HU_LANGPACK Setto#1ifthe.NETFramework4.0clientHungarianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_IT_IT_LANGPACK Setto#1ifthe.NETFramework4.0clientItalianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_JA_JP_LANGPACK Setto#1ifthe.NETFramework4.0clientJapaneselanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_KO_KR_LANGPACK Setto#1ifthe.NETFramework4.0clientKoreanlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_NB_NO_LANGPACK Setto#1ifthe.NETFramework4.0clientNorwegianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_PL_PL_LANGPACK Setto#1ifthe.NETFramework4.0client
Page 403
Polishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_PT_BR_LANGPACK Setto#1ifthe.NETFramework4.0clientPortuguese(Brazil)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_PT_PT_LANGPACK Setto#1ifthe.NETFramework4.0clientPortuguese(Portugal)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_RU_RU_LANGPACK Setto#1ifthe.NETFramework4.0clientRussianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_ES_ES_LANGPACK Setto#1ifthe.NETFramework4.0clientSpanishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_SV_SE_LANGPACK Setto#1ifthe.NETFramework4.0clientSwedishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_TR_TR_LANGPACK Setto#1ifthe.NETFramework4.0clientTurkishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
Hereisacompletelistofpropertiesforthe.NETFramework4.5and.NETFramework4.5.1productfamilies.Notethatbecausev4.5.1isanin-placeupgradetov4.5,thesamepropertiesareusedforbothversions.
Page 404
Todifferentiate,youmustchecktheactualpropertyvalue,whichcontainsthe.NETFrameworkReleasevalue.Formoreinformation,see.NETFrameworkDeploymentGuideforDevelopers.
Propertyname Meaning
NETFRAMEWORK45 SettoReleasenumberofthe.NETFramework4.5ifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.
NETFRAMEWORK45_AR_SA_LANGPACK settoReleasenumberofthe.NETFramework4.5Arabiclanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.
NETFRAMEWORK45ZH_CN_LANGPACK SettoReleasenumberofthe.NETFramework4.5Chinese(Simplified)languagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.
NETFRAMEWORK45ZH_TW_LANGPACK SettoReleasenumberofthe.NETFramework4.5Chinese(Traditional)languagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.
Page 405
NETFRAMEWORK45CS_CZ_LANGPACK SettoReleasenumberofthe.NETFramework4.5Czechlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.
NETFRAMEWORK45DA_DK_LANGPACK SettoReleasenumberofthe.NETFramework4.5Danishlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.
NETFRAMEWORK45NL_NL_LANGPACK SettoReleasenumberofthe.NETFramework4.5Dutchlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.
NETFRAMEWORK45FI_FI_LANGPACK SettoReleasenumberofthe.NETFramework4.5Finnishlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.
NETFRAMEWORK45FR_FR_LANGPACK SettoReleasenumberofthe.NETFramework4.5Frenchlanguagepackifinstalled(notsetotherwise).Thispropertyis
Page 406
availablestartingwithWiXv3.6.
NETFRAMEWORK45DE_DE_LANGPACK SettoReleasenumberofthe.NETFramework4.5Germanlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.
NETFRAMEWORK45EL_GR_LANGPACK SettoReleasenumberofthe.NETFramework4.5Greeklanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.
NETFRAMEWORK45HE_IL_LANGPACK SettoReleasenumberofthe.NETFramework4.5Hebrewlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.
NETFRAMEWORK45HU_HU_LANGPACK SettoReleasenumberofthe.NETFramework4.5Hungarianlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.
NETFRAMEWORK45IT_IT_LANGPACK SettoReleasenumberofthe.NETFramework4.5
Page 407
Italianlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.
NETFRAMEWORK45JA_JP_LANGPACK SettoReleasenumberofthe.NETFramework4.5Japaneselanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.
NETFRAMEWORK45KO_KR_LANGPACK SettoReleasenumberofthe.NETFramework4.5Koreanlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.
NETFRAMEWORK45NB_NO_LANGPACK SettoReleasenumberofthe.NETFramework4.5Norwegianlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.
NETFRAMEWORK45PL_PL_LANGPACK SettoReleasenumberofthe.NETFramework4.5Polishlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.
Page 408
NETFRAMEWORK45PT_BR_LANGPACK SettoReleasenumberofthe.NETFramework4.5Portuguese(Brazil)languagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.
NETFRAMEWORK45PT_PT_LANGPACK SettoReleasenumberofthe.NETFramework4.5Portuguese(Portugal)languagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.
NETFRAMEWORK45RU_RU_LANGPACK SettoReleasenumberofthe.NETFramework4.5Russianlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.
NETFRAMEWORK45ES_ES_LANGPACK SettoReleasenumberofthe.NETFramework4.5Spanishlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.
NETFRAMEWORK45SV_SE_LANGPACK SettoReleasenumberofthe.NETFramework4.5Swedishlanguagepackifinstalled(notset
Page 409
otherwise).ThispropertyisavailablestartingwithWiXv3.6.
NETFRAMEWORK45TR_TR_LANGPACK SettoReleasenumberofthe.NETFramework4.5Turkishlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.
Hereisacompletelistofpropertiesforthe.NETFrameworkSDKandWindowsSDK:
Propertyname Meaning
NETFRAMEWORK11SDKDIR Thelocationofthe.NETFramework1.1SDKinstallationroot.
NETFRAMEWORK20SDKDIR Thelocationofthe.NETFramework2.0SDKinstallationroot.
WINDOWSSDKCURRENTVERSIONDIR ThelocationofthecurrentlyactiveversionoftheWindowsSDK.
WINDOWSSDKCURRENTVERSION TheversionnumberofthecurrentlyactiveversionoftheWindowsSDK.
WINDOWSSDK60ADIR ThelocationoftheWindowsSDK6.0ainstallationroot.
Page 410
WINDOWSSDK61DIR ThelocationoftheWindowsSDK6.1installationroot.
WINDOWSSDK70ADIR ThelocationoftheWindowsSDK7.0ainstallationroot.ThispropertyisavailablestartingwithWiXv3.5.
Page 411
UsingWixNetfxExtensionPropertiesTousetheWixNetfxExtensionpropertiesinanMSI,usethefollowingsteps:
AddPropertyRefelementsforitemslistedabovethatyouwanttouseinyourMSI.Addthe-ext<pathtoWixNetfxExtension.dll>commandlineparameterwhencallinglight.exetoincludetheWixNetfxExtensionintheMSIlinkingprocess.
Forexample:
<PropertyRefId="NETFRAMEWORK20"/>
Page 412
WixBroadcastSettingChangeandWixBroadcastEnvironmentChangeCustomActionsTheWixBroadcastSettingChangeandWixBroadcastEnvironmentChangecustomactionsareimmediatecustomactionsthatsendaWM_SETTINGCHANGEmessagetoalltop-levelwindowsindicatingthatsettingshavechanged.WixBroadcastSettingChangeindicatesthatunspecifiedsettingshavechanged.WixBroadcastEnvironmentChangeindicatesthatenvironmentvariableshavechanged.
OtherprogramscanlistenforWM_SETTINGCHANGEandupdateanyinternalstatewiththenewsetting.
WindowsInstalleritselfsendstheWM_SETTINGCHANGEmessageforsettingsitchangeswhileprocessinganMSIpackagebutcannotdosoforchangesapackagemakesviacustomaction.Also,WindowsInstallerdoesnotsendWM_SETTINGCHANGEforenvironmentvariablechangeswhenarebootispending.
TherearetwostepsyouneedtotaketousetheWixBroadcastSettingChangeorWixBroadcastEnvironmentChangecustomactionsinyourMSIpackage:
Page 413
Step1:AddtheWiXutilitiesextensionslibrarytoyourprojectWixBroadcastSettingChangeandWixBroadcastEnvironmentChangeareincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommandlineyouneedtoaddthefollowingtoyourlightcommandline:
light.exemyproject.wixobj-extWixUtilExtension
IfyouareusingVotiveyoucanaddtheextensionusingtheAddReferencedialog:
1. OpenyourVotiveprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd
Reference...3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog
Page 414
Step2:AddareferencetotheWixBroadcastSettingChangeorWixBroadcastEnvironmentChangecustomactionsToaddareferencetotheWixBroadcastSettingChangeorWixBroadcastEnvironmentChangecustomactions,includeoneofthefollowingelementsinyourWiXsetupauthoring:
<CustomActionRefId="WixBroadcastSettingChange"/><CustomActionRefId="WixBroadcastEnvironmentChange"/>
ThiswillcauseWiXtoaddthecustomactiontoyourMSIandscheduleitimmediatelyaftertheInstallFinalizestandardaction.
Page 415
WixVSExtensionTheWixVSExtensionincludesasetofcustomactionstomanagehelpcollections.ItalsoincludesasetofpropertiesandcustomactionsthatcanbeusedtodetectthepresenceofvariousversionsofVisualStudioandregisteradd-ins,projecttemplatesanditemtemplatesforuseinVisualStudio.
PropertiesVisualStudio.NET2003VisualStudio2005VisualStudio2008VisualStudio2010VisualStudio2012VisualStudio2013VisualStudio2015VisualStudio2017
CustomActions
Page 416
PropertiesHereisacompletelistofpropertiesfortheVisualStudio.NET2003productfamily:
Propertyname Meaning
VS2003DEVENV Fullpathtodevenv.exeforVisualStudio.NET2003ifitisinstalledonthesystem.
JSHARP_REDIST_11_INSTALLED IndicateswhetherornottheJ#redistributablepackage1.1isinstalledonthesystem.
HereisacompletelistofpropertiesfortheVisualStudio2005productfamily:
Propertyname Meaning
VS2005DEVENV Fullpathtodevenv.exeforVisualStudio2005ifitisinstalledonthesystem.
VS2005_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2005itemtemplatesdirectory.
VS2005_PROJECTTEMPLATES_DIR Fullpathtothe
Page 417
VisualStudio2005projecttemplatesdirectory.
VS2005_SCHEMAS_DIR FullpathtotheVisualStudio2005XMLschemasdirectory.
VS2005PROJECTAGGREGATOR2 IndicateswhetherornottheVisualStudio2005projectaggregatorformanagedcodeadd-insisinstalledonthesystem.
VS2005_ROOT_FOLDER FullpathtotheVisualStudio2005rootinstallationdirectory.
VB2005EXPRESS_IDE Fullpathtovbexpress.exeifVisualBasic2005ExpressEditionisinstalledonthesystem.
VS2005_IDE_VB_PROJECTSYSTEM_INSTALLED Indicates
Page 418
whetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualBasicprojectsystemisinstalledforit.
VC2005EXPRESS_IDE Fullpathtovcexpress.exeifVisualC++2005ExpressEditionisinstalledonthesystem.
VS2005_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualC++projectsystemisinstalledforit.
VCSHARP2005EXPRESS_IDE Fullpathtovcsexpress.exeifVisualC#2005ExpressEditionisinstalledonthesystem.
Page 419
VS2005_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualC#projectsystemisinstalledforit.
VJSHARP2005EXPRESS_IDE Fullpathtovjsexpress.exeifVisualJ#2005ExpressEditionisinstalledonthesystem.
VS2005_IDE_VJSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualJ#projectsystemisinstalledforit.
VWD2005EXPRESS_IDE Fullpathtovwdexpress.exeifVisualWebDeveloper2005ExpressEditionisinstalledonthesystem.
Page 420
VS2005_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.
VS2005_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudioTeamTestprojectsystemisinstalledonthesystem.
VSEXTENSIONS_FOR_NETFX30_INSTALLED IndicateswhetherornottheVisualStudio2008DevelopmentToolsforthe.NETFramework3.0add-inforVisualStudio2005isinstalledonthesystem.
VS2005_WAP_PROJECT_INSTALLED IndicateswhetherornottheWebApplication
Page 421
ProjecttemplateforVisualStudio2005isinstalledonthesystem.Thisprojecttemplateisavailableasastandaloneadd-inandasapartofvisualStudio2005SP1.
VS2005_SP_LEVEL IndicatestheservicepacklevelforVisualStudio2005StandardEditionandhigher.
VSTF2005_SP_LEVEL IndicatestheservicepacklevelforVisualStudio2005TeamFoundation.
VB2005EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualBasic2005ExpressEdition.
VC2005EXPRESS_SP_LEVEL Indicatestheservicepack
Page 422
levelforVisualC++2005ExpressEdition.
VCSHARP2005EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualC#2005ExpressEdition.
VJSHARP2005EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualJ#2005ExpressEdition.
VWD2005EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualWebDeveloper2005ExpressEdition.
DEXPLORE_2005_INSTALLED IndicateswhetherornottheDocumentExplorer2005runtimecomponentspackageisinstalledonthesystem.
JSHARP_REDIST_20_INSTALLED Indicates
Page 423
whetherornottheJ#redistributablepackage2.0isinstalledonthesystem.
JSHARP_REDIST_20SE_INSTALLED IndicateswhetherornottheJ#redistributablepackage2.0secondeditionisinstalledonthesystem.
HereisacompletelistofpropertiesfortheVisualStudio2008productfamily:
Propertyname Meaning
VS90DEVENV Fullpathtodevenv.exeforVisualStudio2008ifitisinstalledonthesystem.
VS90_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2008itemtemplatesdirectory.
VS90_PROJECTTEMPLATES_DIR FullpathtotheVisualStudio2008project
Page 424
templatesdirectory.
VS90_SCHEMAS_DIR FullpathtotheVisualStudio2008XMLschemasdirectory.
VS90_ROOT_FOLDER FullpathtotheVisualStudio2008rootinstallationdirectory.
VB90EXPRESS_IDE Fullpathtovbexpress.exeifVisualBasic2008ExpressEditionisinstalledonthesystem.
VS90_IDE_VB_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2008StandardEditionorhigherisinstalledandtheVisualBasicprojectsystemisinstalledforit.
VC90EXPRESS_IDE Fullpathtovcexpress.exeifVisualC++
Page 425
2008ExpressEditionisinstalledonthesystem.
VS90_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2008StandardEditionorhigherisinstalledandtheVisualC++projectsystemisinstalledforit.
VCSHARP90EXPRESS_IDE Fullpathtovcsexpress.exeifVisualC#2008ExpressEditionisinstalledonthesystem.
VS90_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2008StandardEditionorhigherisinstalledandtheVisualC#projectsystemisinstalledforit.
VWD90EXPRESS_IDE Fullpathtovwdexpress.exe
Page 426
ifVisualWebDeveloper2008ExpressEditionisinstalledonthesystem.
VS90_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2008StandardEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.
VS90_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudioTeamTestprojectsystemisinstalledonthesystem.
VS90_BOOTSTRAPPER_PACKAGE_FOLDER ThelocationoftheVisualStudio2008bootstrapperpackagefolder.
VS90_SP1 Indicateswhetherornotservicepack1forVisual
Page 427
Studio2008StandardEditionandhigherisinstalled.
VB90EXPRESS_SP1 Indicateswhetherornotservicepack1forVisualBasic2008ExpressEditionisinstalled.
VC90EXPRESS_SP1 Indicateswhetherornotservicepack1forVisualC++2008ExpressEditionisinstalled.
VCSHARP90EXPRESS_SP1 Indicateswhetherornotservicepack1forVisualC#2008ExpressEditionisinstalled.
VWD90EXPRESS_SP1 Indicateswhetherornotservicepack1forVisualWebDeveloper2008ExpressEditionisinstalled.
Page 428
DEXPLORE_2008_INSTALLED IndicateswhetherornottheDocumentExplorer2008runtimecomponentspackageisinstalledonthesystem.
HereisacompletelistofpropertiesfortheVisualStudio2010productfamily:
Propertyname Meaning
VS2010DEVENV Fullpathtodevenv.exeforVisualStudio2010ifitisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2010itemtemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_PROJECTTEMPLATES_DIR Fullpathtothe
Page 429
VisualStudio2010projecttemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_SCHEMAS_DIR FullpathtotheVisualStudio2010XMLschemasdirectory.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_ROOT_FOLDER FullpathtotheVisualStudio2010rootinstallationdirectory.ThispropertyisavailablestartingwithWiXv3.5.
VB2010EXPRESS_IDE Fullpathtovbexpress.exeifVisualBasic2010ExpressEditionisinstalledonthesystem.Thispropertyisavailable
Page 430
startingwithWiXv3.5.
VS2010_IDE_VB_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2010StandardEditionorhigherisinstalledandtheVisualBasicprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.5.
VC2010EXPRESS_IDE Fullpathtovcexpress.exeifVisualC++2010ExpressEditionisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2010StandardEditionorhigherisinstalledandtheVisualC++
Page 431
projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.5.
VCSHARP2010EXPRESS_IDE Fullpathtovcsexpress.exeifVisualC#2010ExpressEditionisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2010StandardEditionorhigherisinstalledandtheVisualC#projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.5.
VWD2010EXPRESS_IDE Fullpathtovwdexpress.exeifVisualWebDeveloper2010
Page 432
ExpressEditionisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2010StandardEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.5.
VPD2010EXPRESS_IDE Fullpathtovpdexpress.exeifVisualStudio2010ExpressforWindowsPhoneisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_IDE_VSTS_TESTSYSTEM_INSTALLED Indicates
Page 433
whetherornottheVisualStudio2010TeamTestprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_IDE_DB_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010Databaseprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_IDE_VSD_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010Deploymentprojectsystem(setupproject)isinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
Page 434
VS2010_IDE_WIX_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010WindowsInstallerXMLprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_IDE_MODELING_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010Modelingprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_IDE_FSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010F#projectsystemisinstalledonthesystem.Thispropertyisavailablestartingwith
Page 435
WiXv3.5.
VS2010_BOOTSTRAPPER_PACKAGE_FOLDER ThelocationoftheVisualStudio2010bootstrapperpackagefolder.ThispropertyisavailablestartingwithWiXv3.5.
HereisacompletelistofpropertiesfortheVisualStudio2012productfamily:
Propertyname Meaning
VS2012DEVENV Fullpathtodevenv.exeforVisualStudio2012ifitisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.
VS2012_EXTENSIONS_DIR FullpathtotheVisualStudio2012extensionsdirectory.ThispropertyisavailablestartingwithWiXv3.6.
Page 436
VS2012_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2012itemtemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.6.
VS2012_PROJECTTEMPLATES_DIR FullpathtotheVisualStudio2012projecttemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.6.
VS2012_SCHEMAS_DIR FullpathtotheVisualStudio2012XMLschemasdirectory.ThispropertyisavailablestartingwithWiXv3.6.
VS2012_ROOT_FOLDER FullpathtotheVisualStudio2012rootinstallationdirectory.Thispropertyisavailable
Page 437
startingwithWiXv3.6.
VS2012_IDE_VB_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2012ProfessionalEditionorhigherisinstalledandtheVisualBasicprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.6.
VS2012_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2012ProfessionalEditionorhigherisinstalledandtheVisualC++projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.6.
VS2012_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2012ProfessionalEditionor
Page 438
higherisinstalledandtheVisualC#projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.6.
VWD2012EXPRESS_IDE Fullpathtovwdexpress.exeifVisualStudioExpress2012forWebisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.
VPD2012EXPRESS_IDE Fullpathtovpdexpress.exeifVisualStudio2012ExpressforWindowsPhoneisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.
VS2012_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2012
Page 439
ProfessionalEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.6.
VS2012_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2012TeamTestprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.
VS2012_IDE_DB_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2012Databaseprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.
Page 440
VS2012_IDE_WIX_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheWindowsInstallerXMLprojectsystemisinstalledonthesystemforVisualStudio2012.ThispropertyisavailablestartingwithWiXv3.6.
VS2012_IDE_MODELING_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2012Modelingprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.
VS2012_IDE_FSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2012F#projectsystemisinstalledonthesystem.Thispropertyisavailablestartingwith
Page 441
WiXv3.6.
VS2012_BOOTSTRAPPER_PACKAGE_FOLDER ThelocationoftheVisualStudio2012bootstrapperpackagefolder.ThispropertyisavailablestartingwithWiXv3.6.
HereisacompletelistofpropertiesfortheVisualStudio2013productfamily:
Propertyname Meaning
VS2013DEVENV Fullpathtodevenv.exeforVisualStudio2013ifitisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.8.
VS2013_EXTENSIONS_DIR FullpathtotheVisualStudio2013extensionsdirectory.ThispropertyisavailablestartingwithWiXv3.8.
VS2013_ITEMTEMPLATES_DIR FullpathtotheVisualStudio
Page 442
2013itemtemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.8.
VS2013_PROJECTTEMPLATES_DIR FullpathtotheVisualStudio2013projecttemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.8.
VS2013_SCHEMAS_DIR FullpathtotheVisualStudio2013XMLschemasdirectory.ThispropertyisavailablestartingwithWiXv3.8.
VS2013_ROOT_FOLDER FullpathtotheVisualStudio2013rootinstallationdirectory.ThispropertyisavailablestartingwithWiXv3.8.
VS2013_IDE_VB_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2013
Page 443
ProfessionalEditionorhigherisinstalledandtheVisualBasicprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.8.
VS2013_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2013ProfessionalEditionorhigherisinstalledandtheVisualC++projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.8.
VS2013_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2013ProfessionalEditionorhigherisinstalledandtheVisualC#projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.8.
VWD2013EXPRESS_IDE Fullpathtovwdexpress.exe
Page 444
ifVisualStudioExpress2013forWebisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.8.
VS2013WINEXPRESS_IDE Fullpathtovswinexpress.exeifVisualStudioExpress2013forWindowsisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.8.
VS2013WDEXPRESS_IDE Fullpathtowdexpress.exeifVisualStudioExpress2013forWindowsDesktopisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.8.
VPD2013EXPRESS_IDE Fullpathtovpdexpress.exeifVisualStudio2013ExpressforWindowsPhoneisinstalledonthesystem.This
Page 445
propertyisavailablestartingwithWiXv3.8.
VS2013_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2013ProfessionalEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.8.
VS2013_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2013TeamTestprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.8.
VS2013_IDE_WIX_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheWindowsInstallerXMLprojectsystemisinstalledonthesystemforVisualStudio2013.Thispropertyis
Page 446
availablestartingwithWiXv3.8.
VS2013_IDE_MODELING_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2013Modelingprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.8.
VS2013_IDE_FSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2013F#projectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.
VS2013_BOOTSTRAPPER_PACKAGE_FOLDER ThelocationoftheVisualStudio2013bootstrapperpackagefolder.ThispropertyisavailablestartingwithWiXv3.8.
HereisacompletelistofpropertiesfortheVisualStudio2015productfamily:
Propertyname Meaning
Page 447
VS2015DEVENV Fullpathtodevenv.exeforVisualStudio2015ifitisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.10.
VS2015_EXTENSIONS_DIR FullpathtotheVisualStudio2015extensionsdirectory.ThispropertyisavailablestartingwithWiXv3.10.
VS2015_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2015itemtemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.10.
VS2015_PROJECTTEMPLATES_DIR Fullpathto
Page 448
theVisualStudio2015projecttemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.10.
VS2015_SCHEMAS_DIR FullpathtotheVisualStudio2015XMLschemasdirectory.ThispropertyisavailablestartingwithWiXv3.10.
VS2015_ROOT_FOLDER FullpathtotheVisualStudio2015rootinstallationdirectory.ThispropertyisavailablestartingwithWiXv3.10.
VS2015_IDE_VB_PROJECTSYSTEM_INSTALLED IndicateswhetherVisual
Page 449
Studio2015ProfessionalEditionorhigherisinstalledandtheVisualBasicprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.10.
VS2015_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2015ProfessionalEditionorhigherisinstalledandtheVisualC++projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.10.
VS2015_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2015
Page 450
ProfessionalEditionorhigherisinstalledandtheVisualC#projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.10.
VS2015_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2015ProfessionalEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.10.
VS2015_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisual
Page 451
Studio2015TeamTestprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.10.
VS2015_IDE_MODELING_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2015Modelingprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.10.
VS2015_IDE_FSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2015F#projectsystemisinstalledonthesystem.This
Page 452
propertyisavailablestartingwithWiXv3.10.
VS2015_BOOTSTRAPPER_PACKAGE_FOLDER ThelocationoftheVisualStudio2015bootstrapperpackagefolder.ThispropertyisavailablestartingwithWiXv3.10.
HereisacompletelistofpropertiesfortheVisualStudio2017productfamily:
Propertyname Meaning
VS2017DEVENV Fullpathtodevenv.exeforVisualStudio2017ifitisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.11.
VS2017_EXTENSIONS_DIR FullpathtotheVisualStudio2017
Page 453
extensionsdirectory.ThispropertyisavailablestartingwithWiXv3.11.
VS2017_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2017itemtemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.11.
VS2017_PROJECTTEMPLATES_DIR FullpathtotheVisualStudio2017projecttemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.11.
VS2017_SCHEMAS_DIR FullpathtotheVisualStudio2017XMLschemasdirectory.
Page 454
ThispropertyisavailablestartingwithWiXv3.11.
VS2017_ROOT_FOLDER FullpathtotheVisualStudio2017rootinstallationdirectory.ThispropertyisavailablestartingwithWiXv3.11.
VS2017_IDE_DIR FullpathtotheVisualStudio2017directorycontainingdevenv.exe.ThispropertyisavailablestartingwithWiXv3.11.
VS2017_IDE_VB_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2017ProfessionalEditionorhigherisinstalledand
Page 455
theVisualBasicprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.11.
VS2017_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2017ProfessionalEditionorhigherisinstalledandtheVisualC++projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.11.
VS2017_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2017ProfessionalEditionorhigherisinstalledandtheVisual
Page 456
C#projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.11.
VS2017_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2017ProfessionalEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.11.
VS2017_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2017TeamTestprojectsystemisinstalledon
Page 457
thesystem.ThispropertyisavailablestartingwithWiXv3.11.
VS2017_IDE_MODELING_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2017Modelingprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.11.
VS2017_IDE_FSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2017F#projectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.11.
Page 458
VS2017_BOOTSTRAPPER_PACKAGE_FOLDER ThelocationoftheVisualStudio2017bootstrapperpackagefolder.ThispropertyisavailablestartingwithWiXv3.11.
Page 459
CustomActionsHereisacompletelistofcustomactions:
Customactionname Meaning
VS2003Setup Runsdevenv.exe/setupifaVisualStudio.NET2003editionisfoundonthesystem.
VS2005Setup Runsdevenv.exe/setupifVisualStudio2005StandardEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2005DEVENVproperty.
VS2005InstallVSTemplates Runsdevenv.exe/InstallVSTemplatesifVisualStudio2005StandardEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2005DEVENVproperty.
VB2005Setup Runsvbexpress.exe/setupifVisualBasic2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVB2005EXPRESS_IDEproperty.
VB2005InstallVSTemplates Runsvbexpress.exe
Page 460
/InstallVSTemplatesifVisualBasic2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVB2005EXPRESS_IDEproperty.
VC2005Setup Runsvcexpress.exe/setupifVisualC++2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVC2005EXPRESS_IDEproperty.
VC2005InstallVSTemplates Runsvcexpress.exe/InstallVSTemplatesifVisualC++2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVC2005EXPRESS_IDEproperty.
VCSHARP2005Setup Runsvcsexpress.exe/setupifVisualC#2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVCSHARP2005EXPRESS_IDEproperty.
VCSHARP2005InstallVSTemplates Runsvcsexpress.exe/InstallVSTemplatesifVisualC#2005ExpressEditionisfoundonthesystem.Includingthis
Page 461
customactionautomaticallyaddstheVCSHARP2005EXPRESS_IDEproperty.
VJSHARP2005Setup Runsvjsexpress.exe/setupifVisualJ#2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVJSHARP2005EXPRESS_IDEproperty.
VJSHARP2005InstallVSTemplates Runsvjsexpress.exe/InstallVSTemplatesifVisualJ#2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVJSHARP2005EXPRESS_IDEproperty.
VWD2005Setup Runsvwdexpress.exe/setupifVisualWebDeveloper2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD2005EXPRESS_IDEproperty.
VWD2005InstallVSTemplates Runsvwdexpress.exe/InstallVSTemplatesifVisualWebDeveloper2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD2005EXPRESS_IDE
Page 462
property.
VS90Setup Runsdevenv.exe/setupifVisualStudio2008StandardEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS90DEVENVproperty.
VS90InstallVSTemplates Runsdevenv.exe/InstallVSTemplatesifVisualStudio2008StandardEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS90DEVENVproperty.
VB90Setup Runsvbexpress.exe/setupifVisualBasic2008ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVB90EXPRESS_IDEproperty.
VB90InstallVSTemplates Runsvbexpress.exe/InstallVSTemplatesifVisualBasic2008ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVB90EXPRESS_IDEproperty.
VC90Setup Runsvcexpress.exe/setupifVisualC++2008ExpressEditionisfoundonthesystem.Includingthiscustomactionautomaticallyaddsthe
Page 463
VC90EXPRESS_IDEproperty.
VC90InstallVSTemplates Runsvcexpress.exe/InstallVSTemplatesifVisualC++2008ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVC90EXPRESS_IDEproperty.
VCSHARP90Setup Runsvcsexpress.exe/setupifVisualC#2008ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVCSHARP90EXPRESS_IDEproperty.
VCSHARP90InstallVSTemplates Runsvcsexpress.exe/InstallVSTemplatesifVisualC#2008ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVCSHARP90EXPRESS_IDEproperty.
VWD90Setup Runsvwdexpress.exe/setupifVisualWebDeveloper2008ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD90EXPRESS_IDEproperty.
VWD90InstallVSTemplates Runsvwdexpress.exe/InstallVSTemplatesifVisual
Page 464
WebDeveloper2008ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD90EXPRESS_IDEproperty.
VS2010Setup Runsdevenv.exe/setupifVisualStudio2010StandardEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2010DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.5.
VS2010InstallVSTemplates Runsdevenv.exe/InstallVSTemplatesifVisualStudio2010StandardEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2010DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.5.
VB2010Setup Runsvbexpress.exe/setupifVisualBasic2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVB2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.
VB2010InstallVSTemplates Runsvbexpress.exe/InstallVSTemplatesifVisual
Page 465
Basic2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVB2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.
VC2010Setup Runsvcexpress.exe/setupifVisualC++2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVC2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.
VC2010InstallVSTemplates Runsvcexpress.exe/InstallVSTemplatesifVisualC++2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVC2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.
VCSHARP2010Setup Runsvcsexpress.exe/setupifVisualC#2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVCSHARP2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.
VCSHARP2010InstallVSTemplates Runsvcsexpress.exe
Page 466
/InstallVSTemplatesifVisualC#2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVCSHARP2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.
VWD2010Setup Runsvwdexpress.exe/setupifVisualWebDeveloper2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.
VWD2010InstallVSTemplates Runsvwdexpress.exe/InstallVSTemplatesifVisualWebDeveloper2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.
VPD2010Setup Runsvpdexpress.exe/setupifVisualStudio2010ExpressforWindowsPhoneisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVPD2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.
Page 467
VPD2010InstallVSTemplates Runsvpdexpress.exe/InstallVSTemplatesifVisualStudio2010ExpressforWindowsPhoneisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVPD2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.
VS2012Setup Runsdevenv.exe/setupifVisualStudio2012ProfessionalEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2012DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.6.
VS2012InstallVSTemplates Runsdevenv.exe/InstallVSTemplatesifVisualStudio2012ProfessionalEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2012DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.6.
VWD2012Setup Runsvwdexpress.exe/setupifVisualStudioExpress2012forWebisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD2012EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.6.
Page 468
VWD2012InstallVSTemplates Runsvwdexpress.exe/InstallVSTemplatesifVisualStudioExpress2012forWebisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD2012EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.6.
VS2012WinExpressSetup Runsvswinexpress.exe/setupifVisualStudioExpress2012forWindows8isfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2012WINEXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.6.
VS2012WinExpressInstallVSTemplates Runsvswinexpress.exe/InstallVSTemplatesifVisualStudioExpress2012forWindows8isfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2012WINEXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.8.
VPD2012Setup Runsvpdexpress.exe/setupifVisualStudio2012ExpressforWindowsPhoneisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVPD2012EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.6.
Page 469
VPD2012InstallVSTemplates Runsvpdexpress.exe/InstallVSTemplatesifVisualStudio2012ExpressforWindowsPhoneisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVPD2012EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.6.
VS2013Setup Runsdevenv.exe/setupifVisualStudio2013ProfessionalEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2013DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.8.
VS2013InstallVSTemplates Runsdevenv.exe/InstallVSTemplatesifVisualStudio2013ProfessionalEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2013DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.8.
VWD2013Setup Runsvwdexpress.exe/setupifVisualStudioExpress2013forWebisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD2013EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.8.
Page 470
VWD2013InstallVSTemplates Runsvwdexpress.exe/InstallVSTemplatesifVisualStudioExpress2013forWebisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD2013EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.8.
VS2013WinExpressSetup Runsvswinexpress.exe/setupifVisualStudioExpress2013forWindows8isfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2013WINEXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.8.
VS2013WinExpressInstallVSTemplates Runsvswinexpress.exe/InstallVSTemplatesifVisualStudioExpress2013forWindows8isfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2013WINEXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.6.
VS2013WDExpressSetup RunsWDExpress.exe/setupifVisualStudioExpress2013forWindowsDesktopisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2013WDEXPRESS_IDEproperty.Thiscustomactionis
Page 471
availablestartingwithWiXv3.8.
VS2013WDExpressInstallVSTemplates RunsWDExpress.exe/InstallVSTemplatesifVisualStudioExpress2013forWindowsDesktopisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2013WDEXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.8.
VPD2013Setup Runsvpdexpress.exe/setupifVisualStudio2013ExpressforWindowsPhoneisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVPD2013EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.8.
VPD2013InstallVSTemplates Runsvpdexpress.exe/InstallVSTemplatesifVisualStudio2013ExpressforWindowsPhoneisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVPD2013EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.8.
VS2015Setup Runsdevenv.exe/setupifVisualStudio2015ProfessionalEditionorhigherisfoundonthesystem.Includingthiscustomactionautomaticallyaddsthe
Page 472
VS2013DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.10.
VS2015InstallVSTemplates Runsdevenv.exe/InstallVSTemplatesifVisualStudio2015ProfessionalEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2013DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.10.
VS2017Setup Runsdevenv.exe/setupifVisualStudio2017CommunityEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2017DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.11.
VS2017InstallVSTemplates Runsdevenv.exe/InstallVSTemplatesifVisualStudio2017CommunityEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2017DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.11.
Page 473
UsingWixVSExtensionPropertiesorCustomActionsTousetheWixVSExtensionpropertiesorcustomactionsinanMSI,usethefollowingsteps:
AddPropertyReforCustomActionRefelementsforitemslistedabovethatyouwanttouseinyourMSI.Addthe-ext<pathtoWixVSExtension.dll>commandlineparameterwhencallinglight.exetoincludetheWixVSExtensionintheMSIlinkingprocess.
Forexample:
<PropertyRefId="VS2005_ROOT_FOLDER"/><CustomActionRefId="VS2005Setup"/>
Whenyoureferenceanyoftheabovepropertiesorcustomactions,theWixVSExtensionautomaticallyschedulesthecustomactionsandpullsinpropertiesusedinthecustomactionconditionsandexecutionlogic.
Page 474
WixWaitForEventCustomActionIfyouhavescenariosyouwanttotestwhereapackageorbundletakesawhiletoinstall,youcanwriteasimpleMSIpackagethatincludestheWixWaitForEventcustomactiontosimulatethisbehavior.ThiscustomactionwaitsforeitherofthegloballynamedautomaticreseteventsdocumentedbelowandwilleitherreturnERROR_INSTALL_FAILUREorERROR_SUCCESSdependingonwhicheventyousignal.
Global\WixWaitForEventFail-whensignaled,thecustomactionreturnsERROR_INSTALL_FAILURE.Global\WixWaitForEventSucceed-whensignaled,thecustomactionreturnsERROR_SUCCESS.
Thisisespeciallyusefulintestcaseswhenyoudon'twantorneedtobuildyourentireproductandonlywantsmalltestpackages.
YoucanalsotestMSPpackagesusingthiscustomaction.IftheWixWaitForEventcustomactionisauthoredintothetargetMSI,dependingonwhatconditionyouauthorthecustomactionswillstillrun.YoucanalsoaddthiscustomactiontoyourupgradeMSIpackageusedforbuildingyourMSPpackage,butthenthecustomactionswillnotrunduringMSPuninstallunlessyouexplicitlyauthorthemaspatchuninstallcustomactions.
FollowthestepsbelowtoincludethiscustomactioninyourMSIpackageandscheduleitwheneverinyoursequenceyouprefer.YoucanusetheWixWaitForEventimmediatecustomactionortheWixWaitForEventDeferreddeferredcustomaction.Ifyouwanttoauthorthecustomactioninadditionalplacesthroughoutyoursequence,youwillhavetoauthortheCustomActionelementsyourselfusingdifferentCustomAction/@Idattributevalues.ThebinaryisWixCAandtheentrypointisWixWaitForEvent.
Page 475
Step1:AddtheWiXutilitiesextensionslibrarytoyourprojectTheWiXsupportforWixWaitForEventisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommandlineyouneedtoaddthefollowingtoyourlightcommandline:
light.exemyproject.wixobj-extWixUtilExtension
IfyouareusingVotiveyoucanaddtheextensionusingtheAddReferencedialog:
1. OpenyourVotiveprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd
Reference...3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog
Page 476
Step2:AddareferencetotheWixWaitForEventcustomactionToaddareferencetotheWixWaitForEventimmediatecustomaction,includethefollowinginyourWiXsetupauthoring:
<CustomActionRefId="WixWaitForEvent"/>
ThiswillcauseWiXtoaddtheWaitWaitForEventcustomactiontoyourMSIasanimmediatecustomactionscheduledimmediatelybeforeInstallFinalize.Thiswillblocktheinstallationafterscriptgeneration.Youcanscheduleitanywhereelseinyoursequence.
ToaddareferencetotheWixWaitForEventDeferreddeferredcustomaction,includethefollowinginyourWiXsetupauthoring:
<CustomActionRefId="WixWaitForEventDeferred"/>
ThisdeferredcustomactionisscheduledimmediatelyafterInstallInitializesoitwillblockafterstartingscriptexecution.Youcanschedulethiscustomactionanywhereelseinyoursequenceaswell.
Youcanschedulebothcustomactionsinthesamepackage,butyouwillneedtosignaleitherofthenamedautomaticreseteventsdocumentedabovebothtimes.
Page 477
Step3:BuildyourMSIandtestvariousscenariosOnceyou'vebuiltyourMSIpackageyoucaninstallitusingmsiexec.exe,Burn,orbyanyothermeansyouwish.WhenWindowsInstallerexecutesyourcustomaction,WindowsInstallerwillwaitforyoutosignaleithertheeventdocumentedabove.Dependingonthenamedeventyousignal,thecustomactionwillfailorsucceedcausingtheMSIorMSPpackagetofailorsucceed.
Page 478
UsingPatchCreationPropertiesApatchcontainsthedifferencesbetweenoneormorepairsofWindowsInstallerpackages.ThetoolPatchWiz.dllintheWindowsSDKcomparespairsofpackagesandproducesapatchusingafilecalledaPatchCreationProperties(PCP)file.
ItisrecommendedthatyoudownloadthelatestWindowsSDKtogetthenewesttoolsforbuildingpatches.
Page 479
SettingUptheSampleAPatchCreationProperties(PCP)fileinstructsPatchWiz.dlltogenerateapatchfromdifferencesinoneormorepairsofpackages.Apatchcontainsthedifferencesbetweenthetargetandupgradepackages,andwilltransformthetargetpackagetotheupgradepackage.Boththetargetandupgradepackagesarecreatedbelow.
Createadirectorythatwillcontainthesample
Createadirectoryfromwhichyouplanonrunningthesample.Thiswillbethesampleroot.
mdC:\sample
Createtwosubdirectories
Underthesamplerootcreatetwosubdirectoriescalled"1.0"and"1.1".
mdC:\sample\1.0mdC:\sample\1.1
CreateatextfilecalledSample.txtfor1.0
Createatextfileinthe"1.0"directorycalledSample.txtandputsometextinittellingyouthatitisthe1.0versionofthefile.
echoThisisversion1.0>C:\sample\1.0\Sample.txt
CreateatextfilecalledSample.txtfor1.1
Createatextfileinthe"1.1"directorycalledSample.txtandputsometextinittellingyouthatitisthe1.1versionofthefile.
echoThisisversion1.1>C:\sample\1.1\Sample.txt
Page 480
Createyourproductauthoringinthesamplerootfolder
CreateyourproductauthoringinthesamplerootfoldercalledProduct.wxswiththefollowingcontents:
<?xmlversion="1.0"encoding="UTF-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><ProductId="48C49ACE-90CF-4161-9C6E-9162115A54DD"Name="WiXPatchExampleProduct"Language="1033"Version="1.0.0"Manufacturer="DynamoCorporation"UpgradeCode="48C49ACE-90CF-4161-9C6E-9162115A54DD"><PackageDescription="Installsafilethatwillbepatched."Comments="ThisProductdoesnotinstallanyexecutables"InstallerVersion="200"Compressed="yes"/>
<MediaId="1"Cabinet="product.cab"EmbedCab="yes"/><FeatureRefId="SampleProductFeature"/></Product>
<Fragment><FeatureId="SampleProductFeature"Title="SampleProductFeature"Level="1"><ComponentRefId="SampleComponent"/></Feature></Fragment>
<Fragment><DirectoryRefId="SampleProductFolder"><ComponentId="SampleComponent"Guid="{C28843DA-EF08-41CC-BA75-D2B99D8A1983}"DiskId="1"><FileId="SampleFile"Name="Sample.txt"Source=".\$(var.Version)\Sample.txt"/></Component></DirectoryRef></Fragment>
<Fragment><DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"Name="PFiles">
Page 481
<DirectoryId="SampleProductFolder"Name="PatchSampleDirectory"></Directory></Directory></Directory></Fragment></Wix>
Createyourpatchauthoringinthesampleroot
CreateyourPatchCreationProperties(PCP)authoringinthesamplerootcalledPatch.wxswiththefollowingcontent:
<?xmlversion="1.0"encoding="utf-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><PatchCreationId="224C316C-5894-4771-BABF-21A3AC1F75FF"CleanWorkingFolder="yes"OutputPath="patch.pcp"WholeFilesOnly="yes">
<PatchInformationDescription="SmallUpdatePatch"Comments="SmallUpdatePatch"ShortNames="no"Languages="1033"Compressed="yes"Manufacturer="DynamoCorp"/>
<PatchMetadataAllowRemoval="yes"Description="SmallUpdatePatch"ManufacturerName="DynamoCorp"TargetProductName="Sample"MoreInfoURL="http://www.dynamocorp.com/"Classification="Update"DisplayName="SamplePatch"/>
<FamilyDiskId="5000"
Page 482
MediaSrcProp="Sample"Name="Sample"SequenceStart="5000"><UpgradeImageSourceFile="C:\sample\1.1\admin\product.msi"Id="SampleUpgrade"><TargetImageSourceFile="C:\sample\1.0\admin\product.msi"Order="2"Id="SampleTarget"IgnoreMissingFiles="no"/></UpgradeImage></Family>
<PatchSequencePatchFamily="SamplePatchFamily"Sequence="1.0.0.0"Supersede="yes"/>
</PatchCreation></Wix>
NotethatSequenceStartmustbegreaterthanthelastsequenceintheFiletableinthetargetpackageorthepatchwillnotinstall.
Page 483
BuildtheTargetandUpgradePackagesOpenacommandpromptandmakesurethefollowingWiXandWindowsInstallerSDKtoolsareinyourPATH.
Candle.exeLight.exeMsiMsp.exePatchWiz.dllMSPatchC.dllMakeCab.exe
Buildthetargetpackage
candle.exe-dVersion=1.0product.wxslight.exeproduct.wixobj-out1.0\product.msi
Performanadministrativeinstallationofthetargetpackage
Msiexec.exeisusedtoperformanadministrativeinstallationbutnothingisactuallyregisteredonyoursystem.Itismainlyfileextraction.
msiexec.exe/a1.0\product.msi/qbTARGETDIR=C:\sample\1.0\admin
Buildtheupgradepackage
candle.exe-dVersion=1.1product.wxslight.exeproduct.wixobj-out1.1\product.msi
Performanadministrativeinstallationoftheupgradepackage
msiexec.exe/a1.1\product.msi/qbTARGETDIR=C:\sample\1.1\admin
Page 484
BuildthePatchThePatch.wxsfileiscompiledintoaPCPfilethatisthenprocessedbyMsiMsp.exetoproductthepatchpackage.
candle.exepatch.wxslight.exepatch.wixobj-outpatch\patch.pcpmsimsp.exe-spatch\patch.pcp-ppatch\patch.msp-lpatch.log
Page 485
VerifythePatchToverifythatthepatchworks,installtheproductandthenthepatch.
Installthe1.0product
msiexec.exe/i1.0\product.msi/l*vxinstall.log
Verifyversion1.0
Goto"ProgramFiles\PatchSampleDirectory"andopenSample.txt.Verifythatthisisthe1.0version.CloseSample.txt.
Installthepatch
msiexec.exe/ppatch\patch.msp/l*vxpatch.log
Verifyversion1.1
Goto"ProgramFiles\PatchSampleDirectory"andopenSample.txt.Verifythatthisisnowthe1.1version.CloseSample.txt.
Uninstallthepatch
OnWindowsXPServicePack2andWindowsServer2003,goto"Add/RemovePrograms"intheControlPanelandmakesurethatShowUpdatesischecked.OnWindowsVistaandnewer,goto"Programs"then"Viewinstalledupdates"intheControlpanel.Select"SamplePatch"fromunder"WiXPatchExampleProduct"andclicktheUninstallbutton.
Goto"Programfiles\PatchSampleDirectory"andopenSample.txt.Verifythatthisisagainthe1.0version.CloseSample.txt.
Uninstalltheproduct
OnWindowsXPServicePack2andWindowsServer2003,goto"Add/RemovePrograms"intheControlPanel.OnWindowsVistaand
Page 486
newer,goto"Programs"then"Uninstallaprogram"intheControlPanel.Select"WiXPatchExampleProduct"andclicktheUninstallbutton.
Page 487
RestrictionsPleasereviewrestrictionsonhowpatchesmustbebuilttoavoidproblemduringpatchinstallation.
Page 488
RestrictionsforPatchesTherearedifferentrestrictionsforpatchesbasedonwhattypeofpatchistobeinstalled.Therearethreetypesofpatches:
SmallupdatesdonotchangetheProductVersionpropertyofatargetproductandtypicallyrepresentasmallsubsetoffilestobeupdated.MinorupgradesdochangetheProductVersionpropertyofatargetproductandtypicallyrepresentalargersubsetoffilestobeupdated.MinorupgradesmightalsobeinstalledasupgradeMSIs.MajorupgradeschangeboththeProductVersionandProductCodeandcontainallfilesinaproduct.Shippingmajorupgradesasapatchis,however,notrecommendedandWiXdoesnotsupportbuildingmajorupgradepatchesbecauseoftheproblemstheycreate.
Forinformationaboutrestrictionsforeachtypeofpatch,readChangingtheProductCode.
Page 489
UninstallablePatchesForapatchtobeuninstallable,theMsiPatchMetadatatablemustexistinthepatchpackageandmustcontaintheAllowRemovalpropertysetto1.ThiscanbeauthoredintothePatchCreationPropertiesfileusingthePatchMetadata/@AllowRemovalattributeorintothepatchXMLfileusingthePatch/@AllowRemovalattribute.
Besidethat,certaintablescannotbemodifiedintheupgradepackagefromwhichapatchisbuilt.ReadUninstallablePatchesforthecurrentlistoftables.Pyro.exewillerrorifoneofthesetableswouldbemodifiedwhenbuildingapatchXMLfile.
ThefollowingtableliststablesandcorrespondingelementsorattributesinWiX.
Table ElementorAttribute
BindImage [File](../xsd/wix/file.html)/@BindPath
Class [Class](../xsd/wix/class.html)
Complus [Component](../xsd/wix/component.html)/@ComPlusFlags
CreateFolder [CreateFolder](../xsd/wix/createfolder.html)
DuplicateFile [CopyFile](../xsd/wix/copyfile.html)
Environment [Environment](../xsd/wix/environment.html)
Extension [Extension](../xsd/wix/extension.html)
Font [File](../xsd/wix/file.html)/@FontTitle
Page 490
IniFile [IniFile](../xsd/wix/inifile.html)
IsolatedComponent [IsolatedComponent](../xsd/wix/isolatecomponent.html)
LockPermissions [Permission](../xsd/wix/permission.html)
MIME [MIME](../xsd/wix/mime.html)
MoveFile [CopyFile](../xsd/wix/copyfile.html)
ODBCAttribute [ODBCDriver](../xsd/wix/odbcdriver.html)/[Property](../xsd/wix/property.html)
ODBCDataSource [ODBCDataSource](../xsd/wix/odbcdatasource.html)
ODBCDriver [ODBCDriver](../xsd/wix/odbcdriver.html)
ODBCSourceAttribute [ODBCDataSource](../xsd/wix/odbcdatasource.html)/[Property](../xsd/wix/property.html)
ODBCTranslator [ODBCTranslator](../xsd/wix/odbctranslator.html)
ProgId [ProgId](../xsd/wix/progid.html)
PublishComponent [Category](../xsd/wix/category.html)
RemoveIniFile [IniFile](../xsd/wix/inifile.html)
SelfReg [File](../xsd/wix/file.html)/@SelfRegCost
Page 491
ServiceControl [ServiceControl](../xsd/wix/servicecontrol.html)
ServiceInstall [ServiceInstall](../xsd/wix/serviceinstall.html)
TypeLib [TypeLib](../xsd/wix/typelib.html)
Verb [Verb](../xsd/wix/verb.html)
Majorupgradepatchesarenotuninstallable.
Page 492
UsingPurelyWiXApatchcanbecreatedpurelyinWiXusingthetoolsnamedTorch.exeandPyro.exe.Usingthesetoolseliminatestheneedtoperformadministrativeinstallsoreventobindtheupgradeproductwhich,forlargeproducts,canbeexhausting.
Page 493
SettingUptheSampleAsampleproductiscreatedwhichputsdifferentresourcesintofragments.Youputresourcesintoseparatefragmentssothattheresourcesineachfragmentcanbefilteredoutofapatch.Youmightfiltersomeresourcesoutofapatchifyouwanttolimitthepatchtoupdateonlypartsofyourproductorproducts.
Createadirectorythatwillcontainthesample
Createadirectoryfromwhichyouplantorunthesample.Thiswillbethesampleroot.
mdC:\sample
Createtwosubdirectories
Underthesamplerootcreatetwosubdirectoriescalled"1.0"and"1.1".
mdC:\sample\1.0mdC:\sample\1.1
CreateatextfilecalledSample.txtfor1.0
Createatextfileinthe"1.0"directorycalledSample.txtandputsometextinittellingyouthatitisthe1.0versionofthefile.
echoThisisversion1.0>C:\sample\1.0\Sample.txt
CreateatextfilecalledSample.txtfor1.1
Createatextfileinthe"1.1"directorycalledSample.txtandputsometextinittellingyouthatitisthe1.1versionofthefile.
echoThisisversion1.1>C:\sample\1.1\Sample.txt
Page 494
Createyourproductauthoringinthesamplerootfolder
CreateyourproductauthoringinthesamplerootfoldercalledProduct.wxswiththefollowingcontents:
<?xmlversion="1.0"encoding="UTF-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><ProductId="48C49ACE-90CF-4161-9C6E-9162115A54DD"Name="WiXPatchExampleProduct"Language="1033"Version="1.0.0"Manufacturer="DynamoCorporation"UpgradeCode="48C49ACE-90CF-4161-9C6E-9162115A54DD"><PackageDescription="Installsafilethatwillbepatched."Comments="ThisProductdoesnotinstallanyexecutables"InstallerVersion="200"Compressed="yes"/>
<MediaId="1"Cabinet="product.cab"EmbedCab="yes"/><FeatureRefId="SampleProductFeature"/></Product>
<Fragment><FeatureId="SampleProductFeature"Title="SampleProductFeature"Level="1"><ComponentRefId="SampleComponent"/></Feature></Fragment>
<Fragment><DirectoryRefId="SampleProductFolder"><ComponentId="SampleComponent"Guid="{C28843DA-EF08-41CC-BA75-D2B99D8A1983}"DiskId="1"><FileId="SampleFile"Name="Sample.txt"Source=".\$(var.Version)\Sample.txt"/></Component></DirectoryRef></Fragment>
<Fragment><DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"Name="PFiles">
Page 495
<DirectoryId="SampleProductFolder"Name="PatchSampleDirectory"></Directory></Directory></Directory></Fragment></Wix>
Createyourpatchauthoringinthesampleroot
CreateyourpatchauthoringinthesamplerootcalledPatch.wxswiththefollowingcontent:
<?xmlversion="1.0"encoding="UTF-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><PatchAllowRemoval="yes"Manufacturer="DynamoCorp"MoreInfoURL="http://www.dynamocorp.com/"DisplayName="SamplePatch"Description="SmallUpdatePatch"Classification="Update">
<MediaId="5000"Cabinet="RTM.cab"><PatchBaselineId="RTM"/></Media>
<PatchFamilyRefId="SamplePatchFamily"/></Patch>
<Fragment><PatchFamilyId='SamplePatchFamily'Version='1.0.0.0'Supersede='yes'><ComponentRefId="SampleComponent"/></PatchFamily></Fragment></Wix>
Page 496
BuildingthePatchSampleOpenacommandpromptandmakesurethatthefollowingWiXtoolsareinyourPATH.
Candle.exeLight.exeTorch.exePyro.exe
YourWiXtoolsetversionshouldbeatleast3.0.3001.0
Buildthetargetlayout
Whileonlythe.wixoutisneeded,thetargetproductlayoutiscreatedtotestinstallingthepatch.Theproductmustalsobeinstalledbeforeoralongwiththepatch.
cdC:\samplecandle.exe-dVersion=1.0product.wxslight.exeproduct.wixobj-out1.0\product.msi
Buildtheupgradelayout
candle.exe-dVersion=1.1product.wxslight.exeproduct.wixobj-out1.1\product.msi
Createthetransformbetweenyourproducts
torch.exe-p-xi1.0\product.wixpdb1.1\product.wixpdb-outpatch\diff.wixmst
Buildthepatch
Thepatch.wxsfileiscompiledandlinkedlikeaproduct,butthenitisprocessedalongwithanynumberoftransformsthatyouwantthepatchtocontain.ThatproducesanMSPfilethattargetsanyoftheproducts
Page 497
fromwhichtransformswerecreatedafterfiltering.
candle.exepatch.wxslight.exepatch.wixobj-outpatch\patch.wixmsppyro.exepatch\patch.wixmsp-outpatch\patch.msp-tRTMpatch\diff.wixmst
Page 498
VerifythePatchToverifythatthepatchworks,installtheproductandthenthepatch.
Installthe1.0product
msiexec.exe/i1.0\product.msi/l*vxinstall.log
Verifyversion1.0
Goto"ProgramFiles\PatchSampleDirectory"andopenSample.txt.Verifythatthisisthe1.0version.CloseSample.txt.
Installthepatch
msiexec.exe/ppatch\patch.msp/l*vxpatch.log
Verifyversion1.1
Goto"ProgramFiles\PatchSampleDirectory"andopenSample.txt.Verifythatthisisnowthe1.1version.CloseSample.txt.
Uninstallthepatch
OnWindowsXPServicePack2andWindowsServer2003,goto"Add/RemovePrograms"intheControlPanelandmakesurethatShowUpdatesischecked.OnWindowsVistaandnewer,goto"Programs"then"Viewinstalledupdates"intheControlPanel.Select"SamplePatch"fromunder"WiXPatchExampleProduct"andclicktheUninstallbutton.
Goto"Programfiles\PatchSampleDirectory"andopenSample.txt.Verifythatthisisagainthe1.0version.CloseSample.txt.
Uninstalltheproduct
OnWindowsXPServicePack2andWindowsServer2003,goto"Add/RemovePrograms"intheControlPanel.OnWindowsVistaand
Page 499
newer,goto"Programs"then"Uninstallaprogram"intheControlPanel.Select"WiXPatchExampleProduct"andclicktheUninstallbutton.
Page 500
RestrictionsInadditiontorestrictionsaboutwhatcanbeinapatchinorderforittoinstallanduninstallcorrectly,thefollowingrestrictionsensurethatyourpatchworkscorrectly.
Patchfamiliescanonlygrow
Patchfamiliesareusedtofilterresourcesthatshouldendupinapatch.Oncethepatchiscreated,thesepatchfamiliesdictatewhichpatchesaresuperseded.Ifaresourceisremovedfromapatchfamilyinanewerpatchandthatresourceiscontainedinanolderpatchwiththesamepatchfamily,thenwhentheolderpatchissuperseded,thatresourcewillberegressedbacktoitspreviousstatebeforetheolderpatchwasinstalled.
Notethatinorderforonepatchtosupersedeanyotherpatches,allpatchfamiliesmustbesuperseded.Asinglepatchfamilyisreferencedintheexampleaboveforsimplicity.
Certainelementscannotbeaddedtouninstallablepatches
Therearecertainelementsreferencedinrestrictionsthatcannotbeaddedormodifiedifthepatchistobeuninstallable.IfaPatch/@AllowRemovalissetto"yes"andanyoftheseelementsareaddedormodified,Pyro.exewillreturnanerror.TheseelementscompileintotablesthatWindowsInstallerrestrictsinpatches,soWiXinformsyouandpreventsyoufromcreatingapatchthatisnotuninstallablewhenyouwantittobeuninstallable.
Page 501
ConditionElement(BalExtension)
DescriptionConditionsforabundle.Theconditionisspecifiedintheinnertextoftheelement.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerText(xs:string)Theconditionthatmustevaluatetotruefortheinstallationtocontinue.
ChildrenNone
Attributes
Name Type Description Required
Message String Setthevaluetothetexttodisplaywhentheconditionfailsandtheinstallationmustbeterminated.
Yes
SeeAlsoBalSchema
Page 502
OverridableAttribute(BalExtension)
DescriptionWhensetto"yes",letstheuseroverridethevariable'sdefaultvaluebyspecifyinganothervalueonthecommandline,intheformVariable=Value.Otherwise,WixStdBAwon'toverwritethedefaultvalueandwilllog"Ignoringattempttosetnon-overridablevariable:'BAR'."
WindowsInstallerreferencesNone
ParentsVariable
SeeAlsoBalSchema
Page 503
PrereqSupportPackageAttribute(BalExtension)
DescriptionWhensetto"yes",thePrereqBAwillplanthepackagetobeinstalledifitsInstallConditionis"true"orempty.
WindowsInstallerreferencesNone
ParentsExePackage,MsiPackage,MspPackage,MsuPackage
SeeAlsoBalSchema
Page 504
AutogenGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.
SeeAlsoBalSchema
Page 505
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoBalSchema
Page 506
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoBalSchema
Page 507
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoBalSchema
Page 508
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoBalSchema
Page 509
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoBalSchema
Page 510
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoBalSchema
Page 511
Guid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoBalSchema
Page 512
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoBalSchema
Page 513
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoBalSchema
Page 514
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoBalSchema
Page 515
LongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoBalSchema
Page 516
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoBalSchema
Page 517
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoBalSchema
Page 518
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoBalSchema
Page 519
ShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoBalSchema
Page 520
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoBalSchema
Page 521
WildCardLongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoBalSchema
Page 522
WildCardShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoBalSchema
Page 523
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoBalSchema
Page 524
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoBalSchema
Page 525
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoBalSchema
Page 526
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoBalSchema
Page 527
UseUILanguagesAttribute(BalExtension)
DescriptionWhensetto"yes",causesWixStdBA/PrereqBAtousetheuser'scontrolpanellanguagesettings.Otherwise,thepreviousAPI(whichuseslocaleinsteadoflanguage)isusedtomaintaincompatiblitywithpreviousversionsofWiX.OnVistaandnewerplatforms,thisvaluesetto"yes"willsearchallspecifieduserlanguages,includingfallbacklanguages,inorder.
WindowsInstallerreferencesNone
ParentsBootstrapperApplication,BootstrapperApplicationRef
SeeAlsoBalSchema
Page 528
WixManagedBootstrapperApplicationHostElement(BalExtension)
DescriptionConfigurestheManagedBootstrapperApplicationHostforaBundle.
WindowsInstallerreferencesNone
ParentsBootstrapperApplicationRef
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
LicenseFile String SourcefileoftheRTFlicensefile.CannotbeusedsimultaneouslywithLicenseUrl.
LicenseUrl String URLtargetofthelicenselink.CannotbeusedsimultaneouslywithLicenseFile.
LocalizationFile String Sourcefileofthethemelocalization.wxlfile.
LogoFile String Sourcefileofthelogographic.
NetFxPackageId String Identifierofthebundlepackagethatcontainsthe.NETFramework.ManagedBootstrapperApplicationHostusesthisidentifiertodetermine
Page 529
whether.NETneedstobeinstalledbeforethemanagedbootstrapperapplicationcanbelaunched.
ThemeFile String SourcefileofthethemeXML.
SeeAlsoBalSchema
Page 530
WixStandardBootstrapperApplicationElement(BalExtension)
DescriptionConfiguresWixStandardBootstrapperApplicationforaBundle.
WindowsInstallerreferencesNone
ParentsBootstrapperApplicationRef
InnerTextNone
ChildrenNone
Attributes
Name Type Description
LaunchArguments String Ifset,WixStdBAwillsupplytheseargumentswhenlaunchingtheapplicationspecifiedbytheLaunchTargetattribute.ThestringvaluecanbeformattedusingBurnvariablesenclosedinbrackets,torefertoinstallationdirectoriesandsoforth.
LaunchHidden YesNoType Ifsetto"yes",WixStdBAwilllaunchtheapplicationspecifiedbytheLaunchTargetattribute
Page 531
withtheSW_HIDEflag.ThisattributeisignoredwhentheLaunchTargetElevatedIdattributeisspecified.
LaunchTarget String Ifset,thesuccesspagewillshowaLaunchbuttontheusercanusetolaunchtheapplicationbeinginstalled.ThestringvaluecanbeformattedusingBurnvariablesenclosedinbrackets,torefertoinstallationdirectoriesandsoforth.
LaunchTargetElevatedId String IdofthetargetApprovedExeForElevationelement.IfsetwithLaunchTarget,WixStdBAwilllaunchtheapplicationthroughtheEngine'sLaunchApprovedExemethodinsteadofthroughShellExecute.
LaunchWorkingFolder String WixStdBAwillusethisworkingfolderwhenlaunchingthespecifiedapplication.ThestringvaluecanbeformattedusingBurnvariablesenclosedinbrackets,torefertoinstallationdirectoriesandsoforth.ThisattributeisignoredwhentheLaunchTargetElevatedIdattributeisspecified.
Page 532
LicenseFile String SourcefileoftheRTFlicensefile.CannotbeusedsimultaneouslywithLicenseUrl.
LicenseUrl String URLtargetofthelicenselink.CannotbeusedsimultaneouslywithLicenseFile.Thisattributecanbeemptytohidethelicenselinkcompletely.
LocalizationFile String Sourcefileofthethemelocalization.wxlfile.
LogoFile String Sourcefileofthelogographic.
LogoSideFile String Sourcefileofthesidelogographic.
ShowFilesInUse YesNoType Ifsetto"yes",WixStdBAwillshowapageallowingtheusertorestartapplicationswhenfilesareinuse.
ShowVersion YesNoType Ifsetto"yes",theapplicationversionwillbedisplayedontheUI.
SupportCacheOnly YesNoType Ifsetto"yes",thebundlecanbepre-cachedusingthe/cachecommandlineargument.
SuppressDowngradeFailure YesNoType Ifsetto"yes",attemptingtoinstalleradowngradedversionofabundlewillbetreatedasasuccessfuldo-nothingoperation.Thedefaultbehavior(orwhen
Page 533
explicitlysetto"no")istotreatdowngradeattemptsasfailures.
SuppressOptionsUI YesNoType Ifsetto"yes",theOptionsbuttonwillnotbeshownandtheuserwillnotbeabletochooseaninstallationdirectory.
SuppressRepair YesNoType Ifsetto"yes",theRepairbuttonwillnotbeshowninthemaintenance-modeUI.
ThemeFile String SourcefileofthethemeXML.
SeeAlsoBalSchema
Page 534
ComPlusApplicationElement(ComplusExtension)
DescriptionDefinesaCOM+application.IfthiselementisadescendentofaComponentelement,theapplicationwillbecreatedinassociationwiththiscomponent.IftheelementisachildofanyoftheFragment,ModuleorProductelementsitisconsideredtobealocater,referencinganexistingapplication.
IftheelementisachildofaComPlusPartitionelement,orhaveitsPartitionattributeset,theapplicationwillbeinstalledunderthereferencedpartition.
WindowsInstallerreferencesNone
ParentsComPlusPartition,Component,Fragment,Module,Product
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
ComPlusApplicationRole(min:0,max:unbounded)ComPlusAssembly(min:0,max:unbounded)
Attributes
Name Type Description
Id String Identifierfortheelement.
AccessChecksLevel Enumeration Thisattribute'svaluemustbeoneofthefollowing:
Page 535
applicationLevel
applicationComponentLevel
Activation Enumeration Thisattribute'svaluemustbeoneofthefollowing:inproc
local
ApplicationAccessChecksEnabled YesNoType
ApplicationDirectory String
ApplicationId String Idfortheapplication.Thisattributecanbeomitted,inwhichcaseanidwillbegeneratedoninstall.Iftheelementisalocater,attributecanbeomittedifavalueisprovidedfortheNameattribute.
Authentication Enumeration Thisattribute'svaluemustbeoneofthefollowing:default
none
connect
call
packet
integrity
privacy
AuthenticationCapability Enumeration Thisattribute'svaluemustbeoneofthefollowing:none
secureReference
Page 536
staticCloaking
dynamicCloaking
Changeable YesNoType
CommandLine String
ConcurrentApps Int
CreatedBy String
CRMEnabled YesNoType
CRMLogFile String
Deleteable YesNoType
Description String
DumpEnabled YesNoType
DumpOnException YesNoType
DumpOnFailfast YesNoType
DumpPath String
EventsEnabled YesNoType
Identity String
ImpersonationLevel Enumeration Thisattribute'svaluemustbeoneofthefollowing:anonymous
identify
impersonate
delegate
IsEnabled YesNoType
MaxDumpCount Int
Name String Nameoftheapplication.
Page 537
Thisattributecanbeomittediftheelementisalocater,andavalueisprovidedforthePartitionIdattribute.
Partition String IftheelementisnotachildofaComPlusPartitionelement,thisattributecanbeprovidedwiththeidofaComPlusPartitionelementrepresentingthepartitiontheapplicationbelongsto.
Password String
QCAuthenticateMsgs Enumeration Thisattribute'svaluemustbeoneofthefollowing:secureApps
off
on
QCListenerMaxThreads Int
QueueListenerEnabled YesNoType
QueuingEnabled YesNoType
RecycleActivationLimit Int
RecycleCallLimit Int
RecycleExpirationTimeout Int
RecycleLifetimeLimit Int
RecycleMemoryLimit Int
Replicable YesNoType
RunForever YesNoType
ShutdownAfter Int
Page 538
SoapActivated YesNoType
SoapBaseUrl String
SoapMailTo String
SoapVRoot String
SRPEnabled YesNoType
SRPTrustLevel Enumeration Thisattribute'svaluemustbeoneofthefollowing:disallowed
fullyTrusted
ThreeGigSupportEnabled YesNoType
SeeAlsoComplusSchema
Page 539
ComPlusApplicationRoleElement(ComplusExtension)
DescriptionDefinesanapplicationrole.IfthiselementisadescendentofaComponentelement,theapplicationrolewillbecreatedinassociationwiththiscomponent.IftheelementisachildofanyoftheFragment,ModuleorProductelementsitisconsideredtobealocater,referencinganexistingapplicationrole.
WindowsInstallerreferencesNone
ParentsComPlusApplication,Component,Fragment,Module,Product
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
ComPlusGroupInApplicationRole(min:0,max:unbounded)ComPlusUserInApplicationRole(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
Application String IftheelementisnotachildofaComPlusApplicationelement,thisattributeshouldbeprovidedwiththeidofaComPlusApplicationelementrepresentingtheapplicationtherolebelongsto.
Page 540
Description String
Name String Nameoftheapplicationrole. Yes
SeeAlsoComplusSchema
Page 541
ComPlusAssemblyElement(ComplusExtension)
DescriptionRepresentsaDLLorassemblytoberegisteredwithCOM+.IfthiselementisachildofaComPlusApplicationelement,theassemblywillberegisteredinthisapplication.OtherwaystheApplicationattributemustbesettoanapplication.TheelementmustbeadescendentofaComponentelement,itcannotbeachildofaComPlusApplicationlocatorelement.
WindowsInstallerreferencesNone
ParentsComPlusApplication,Component
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
ComPlusAssemblyDependency(min:0,max:unbounded)ComPlusComponent(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifierfortheelement.
Yes
Application String IftheelementisnotachildofaComPlusApplicationelement,thisattribute
Page 542
shouldbeprovidedwiththeidofaComPlusApplicationelementrepresentingtheapplicationtheassemblyistoberegisteredin.Thisattributecanbeomittedfora.NETassemblyeveniftheapplicationisnotachildofaComPlusApplicationelement.
AssemblyName String ThenameoftheassemblyusedtoidentifytheassemblyintheGAC.ThisattributecanbeprovidedonlyifDllPathFromGACissetto“yes”.
DllPath String ThepathtolocatetheassemblyDLLduringregistration.ThisattributeshouldbeprovidedifDllPathFromGACisnotsetto“yes”.
DllPathFromGAC YesNoType IndicatesthattheDLLpathshouldbeextractedfromtheGACinsteadforbeingprovidedintheDllPathattribute.Ifthisattributeissetto“yes”,thenameofthe
Page 543
assemblycanbeprovidedusingtheAssemblyNameattribute.Or,ifthisAssemblyNameattributeismissing,thenamewillbeextractedfromtheMsiAssemblyNametableusingtheidoftheparentComponentelement.
EventClass YesNoType IndicatesthattheassemblyistobeinstalledasaneventclassDLL.Thisattributeisonlyvalidfornativeassemblies.TheassemblywillbeinstalledwiththeCOM+catalog’sInstallEventClass()function.
PSDllPath String Anoptionalpathtoanexternalproxy/stubDLLfortheassembly.
RegisterInCommit YesNoType Indicatesthattheassemblyshouldbeinstalledinthecommitcustomactioninsteadofthenormaldeferredcustomaction.Thisisnecessarywheninstalling.NETassembliestotheGACinthesameinstallation,asthe
Page 544
assembliesarenotvisibleintheGACuntilaftertheInstallFinalizeactionhasrun.
TlbPath String Anoptionalpathtoanexternaltypelibfortheassembly.ThisattributemustbeprovidediftheTypeattributeissetto“.net”.
Type Enumeration Thisattribute'svaluemustbeoneofthefollowing:native
.net
Yes
Remarks
Wheninstallinganativeassembly,allcomponentscontainedintheassemblymustberepresentedasComPlusComponentelementsunderthiselement.Anycomponentnotlistedwillnotberemovedduringuninstall.
ThefieldsDllPath,TlbPathandPSDllPathareformattedfieldsthatshouldcontainfilepathstothererespectivefiletypes.AtypicalvalueforDllPathforexample,shouldbesomethinglike“[#MyAssembly_dll]”,where“MyAssembly_dll”isthekeyofthedllfileintheFiletable.
Warning:TheassemblynameprovidedintheAssemblyNameattributemustbeafullyspecifiedassemblyname,ifapartialnameisprovidedarandomassemblymatchingthepartialnamewillbeselected.
SeeAlsoComplusSchema
Page 545
ComPlusAssemblyDependencyElement(ComplusExtension)
DescriptionDefinesadependencybetweentwoassemblies.Thiselementaffectstheorderinwhichassemblesareregistered.Anyassembliesreferencedbythiselementareguarantiedtoberegisteredbefore,andunregisteredafter,theassemblyreferencedbytheparentComPlusAssemblyelement.
WindowsInstallerreferencesNone
ParentsComPlusAssembly
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
RequiredAssembly String ReferencetotheidoftheassemblyrequiredbytheparentComPlusAssemblyelement.
Yes
RemarksItisonlynecessarytoexplicitlyspecifydependenciesbetweenassembliescontainedinthesamepackage(MSIorMSM).Assembliesmergedintoapackagefromamergemodulewillalwaysbeinstalledbeforeanyassembliesspecifiedinthebasepackage.Assembliesmergedinfromdifferentmergemodulesare
Page 546
sequencedusingtheModuleDependencyMSItable.Itisnotpossibletohavecrossdependenciesbetweenmergemodulesorhaveanassemblyinamergemoduledependonanassemblyinthebasepackage.
SeeAlsoComplusSchema
Page 547
ComPlusComponentElement(ComplusExtension)
DescriptionRepresentsaCOM+componentinanassembly.
WindowsInstallerreferencesNone
ParentsComPlusAssembly
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
ComPlusInterface(min:0,max:unbounded)ComPlusRoleForComponent(min:0,max:unbounded)ComPlusSubscription(min:0,max:unbounded)
Attributes
Name Type Description
Id String Identifierfortheelement.
AllowInprocSubscribers YesNoType
CLSID Uuid CLSIDofthecomponent.
ComponentAccessChecksEnabled YesNoType
ComponentTransactionTimeout Int
ComponentTransactionTimeoutEnabled YesNoType
Page 548
COMTIIntrinsics YesNoType
ConstructionEnabled YesNoType
ConstructorString String
CreationTimeout Int
Description String
EventTrackingEnabled YesNoType
ExceptionClass String
FireInParallel YesNoType
IISIntrinsics YesNoType
InitializesServerApplication YesNoType
IsEnabled YesNoType
IsPrivateComponent YesNoType
JustInTimeActivation YesNoType
LoadBalancingSupported YesNoType
MaxPoolSize Int
MinPoolSize Int
MultiInterfacePublisherFilterCLSID String
MustRunInClientContext YesNoType
MustRunInDefaultContext YesNoType
ObjectPoolingEnabled YesNoType
PublisherID String
SoapAssemblyName String
SoapTypeName String
Synchronization Enumeration Thisattribute'svaluemustbe
Page 549
oneofthefollowing:ignored
none
supported
required
requiresNew
Transaction Enumeration Thisattribute'svaluemustbeoneofthefollowing:ignored
none
supported
required
requiresNew
TxIsolationLevel Enumeration Thisattribute'svaluemustbeoneofthefollowing:any
readUnCommitted
readCommitted
repeatableRead
serializable
SeeAlsoComplusSchema
Page 550
ComPlusGroupInApplicationRoleElement(ComplusExtension)
DescriptionThiselementrepresentsasecuritygroupmembershipinanapplicationrole.Whentheparentcomponentofthiselementisinstalled,theuserwillbeaddedtotheassociatedapplicationrole.ThiselementmustbeadescendentofaComponentelement;itcannotbeachildofaComPlusApplicationRolelocaterelement.ToreferencealocaterelementusetheApplicationRoleattribute.
WindowsInstallerreferencesNone
ParentsComPlusApplicationRole,Component
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
ApplicationRole String IftheelementisnotachildofaComPlusApplicationRoleelement,thisattributeshouldbeprovidedwiththeidofaComPlusApplicationRoleelementrepresentingtheapplicationroletheuseristobeaddedto.
Page 551
Group String ForeignkeyintotheGrouptable.
Yes
SeeAlsoComplusSchema
Page 552
ComPlusGroupInPartitionRoleElement(ComplusExtension)
DescriptionThiselementrepresentsasecuritygroupmembershipinapartitionrole.Whentheparentcomponentofthiselementisinstalled,thesecuritygroupwillbeaddedtotheassociatedpartitionrole.
WindowsInstallerreferencesNone
ParentsComPlusPartitionRole,Component
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
Group String ForeignkeyintotheGrouptable. Yes
PartitionRole String TheidofaComPlusPartitionRoleelementrepresentingthepartitiontheusershouldbeaddedto.
SeeAlsoComplusSchema
Page 553
ComPlusInterfaceElement(ComplusExtension)
DescriptionRepresentsaninterfaceforaCOM+component.
WindowsInstallerreferencesNone
ParentsComPlusComponent
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
ComPlusMethod(min:0,max:unbounded)ComPlusRoleForInterface(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
Description String
IID Uuid IIDoftheinterface. Yes
QueuingEnabled YesNoType
SeeAlsoComplusSchema
Page 554
ComPlusMethodElement(ComplusExtension)
DescriptionRepresentsamethodforaninterface.
WindowsInstallerreferencesNone
ParentsComPlusInterface
InnerTextNone
ChildrenSequence(min:1,max:1)1. ComPlusRoleForMethod(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
AutoComplete YesNoType
Description String
Index Int Dispatchidofthemethod.IfthisattributeisnotsetavaluemustbeprovidedfortheNameattribute.
Name String Nameofthemethod.IfthisattributeisnotsetavaluemustbeprovidedfortheIndexattribute.
Page 555
SeeAlsoComplusSchema
Page 556
ComPlusPartitionElement(ComplusExtension)
DescriptionDefinesaCOM+partition.IfthiselementisachildofaComponentelement,thepartitionwillbecreatedinassociationwiththiscomponent.IftheelementisachildofanyoftheFragment,ModuleorProductelementsitisconsideredtobealocater,referencinganexistingpartition.
WindowsInstallerreferencesNone
ParentsComponent,Fragment,Module,Product
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
ComPlusApplication(min:0,max:unbounded)ComPlusPartitionRole(min:0,max:unbounded)ComPlusPartitionUser(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
Changeable YesNoType
Deleteable YesNoType
Description String
Page 557
Name String Nameofthepartition.Thisattributecanbeomittediftheelementisalocater,andavalueisprovidedforthePartitionIdattribute.
PartitionId String Idforthepartition.Thisattributecanbeomitted,inwhichcaseanidwillbegeneratedoninstall.Iftheelementisalocater,thisattributecanbeomittedifavalueisprovidedfortheNameattribute.
SeeAlsoComplusSchema
Page 558
ComPlusPartitionRoleElement(ComplusExtension)
DescriptionDefinesaCOM+partitionrole.Partitionrolescannotbecreated;thiselementcanonlybeusedasalocatertoreferenceanexistingrole.
WindowsInstallerreferencesNone
ParentsComPlusPartition,Component,Fragment,Module,Product
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
ComPlusGroupInPartitionRole(min:0,max:unbounded)ComPlusUserInPartitionRole(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
Name String Nameofthepartitionrole. Yes
Partition String TheidofaComPlusPartitionelementrepresentingthepartitiontherolebelongsto.
SeeAlsoComplusSchema
Page 559
ComPlusPartitionUserElement(ComplusExtension)
DescriptionRepresentsadefaultpartitiondefinitionforauser.Whentheparentcomponentofthiselementisinstalled,thedefaultpartitionoftheuserwillbesettothereferencedpartition.
WindowsInstallerreferencesNone
ParentsComPlusPartition,Component
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
Partition String TheidofaComPlusPartitionelementrepresentingthepartitionthatwillbethedefaultpartitionfortheuser.
User String ForeignkeyintotheUsertable. Yes
SeeAlsoComplusSchema
Page 560
ComPlusRoleForComponentElement(ComplusExtension)
DescriptionRepresentsaroleassignmenttoaCOM+component.
WindowsInstallerreferencesNone
ParentsComPlusComponent,Component
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
ApplicationRole String IdoftheComPlusApplicationRoleelementrepresentingtherolethatshallbegrantedaccesstothecomponent.
Yes
Component String IftheelementisnotachildofaComPlusComponentelement,thisattributeshouldbeprovidedwiththeidofaComPlusComponentelementrepresentingthecomponenttheroleistobeaddedto.
Page 561
SeeAlsoComplusSchema
Page 562
ComPlusRoleForInterfaceElement(ComplusExtension)
DescriptionRepresentsaroleassignmenttoaninterface.
WindowsInstallerreferencesNone
ParentsComPlusInterface,Component
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
ApplicationRole String IdoftheComPlusApplicationRoleelementrepresentingtherolethatshallbegrantedaccesstotheinterface.
Yes
Interface String IftheelementisnotachildofaComPlusInterfaceelement,thisattributeshouldbeprovidedwiththeidofaComPlusInterfaceelementrepresentingtheinterfacetheroleistobeaddedto.
Page 563
SeeAlsoComplusSchema
Page 564
ComPlusRoleForMethodElement(ComplusExtension)
DescriptionRepresentsaroleassignmenttoaCOM+method.
WindowsInstallerreferencesNone
ParentsComPlusMethod,Component
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
ApplicationRole String IdoftheComPlusApplicationRoleelementrepresentingtherolethatshallbegrantedaccesstothemethod.
Yes
Method String IftheelementisnotachildofaComPlusMethodelement,thisattributeshouldbeprovidedwiththeidofaComPlusMethodelementrepresentingthemethodtheroleistobeaddedto.
Page 565
SeeAlsoComplusSchema
Page 566
ComPlusSubscriptionElement(ComplusExtension)
DescriptionDefinesaneventsubscriptionforaCOM+component.
WindowsInstallerreferencesNone
ParentsComPlusComponent,Component
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierfortheelement.
Yes
Component String IftheelementisnotachildofaComPlusComponentelement,thisattributeshouldbeprovidedwiththeidofaComPlusComponentelementrepresentingthecomponentthesubscriptionistobecreatedfor.
Page 567
Description String
Enabled YesNoType
EventClassPartitionID String
EventCLSID String CLSIDoftheeventclassforthesubscription.Ifavalueforthisattributeisnotprovided,avalueforthePublisherIDattributemustbeprovided.
FilterCriteria String
InterfaceID String
MachineName String
MethodName String
Name String Nameofthesubscription.
Yes
PerUser YesNoType
PublisherID String Publisheridforthesubscription.Ifavalueforthisattributeisnotprovided,avaluefortheEventCLSIDattributemustbeprovided.
Queued YesNoType
SubscriberMoniker String
SubscriptionId String Idofthesubscription.Ifa
Page 568
valueisnotprovidedforthisattribute,anidwillbegeneratedduringinstallation.
UserName String
SeeAlsoComplusSchema
Page 569
ComPlusUserInApplicationRoleElement(ComplusExtension)
DescriptionThiselementrepresentsausermembershipinanapplicationrole.Whentheparentcomponentofthiselementisinstalled,theuserwillbeaddedtotheassociatedapplicationrole.ThiselementmustbeadescendentofaComponentelement;itcannotbeachildofaComPlusApplicationRolelocaterelement.ToreferencealocaterelementusetheApplicationRoleattribute.
WindowsInstallerreferencesNone
ParentsComPlusApplicationRole,Component
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
ApplicationRole String IftheelementisnotachildofaComPlusApplicationRoleelement,thisattributeshouldbeprovidedwiththeidofaComPlusApplicationRoleelementrepresentingtheapplicationroletheuseristobeaddedto.
Page 570
User String ForeignkeyintotheUsertable.
Yes
SeeAlsoComplusSchema
Page 571
ComPlusUserInPartitionRoleElement(ComplusExtension)
DescriptionThiselementrepresentsausermembershipinapartitionrole.Whentheparentcomponentofthiselementisinstalled,theuserwillbeaddedtotheassociatedpartitionrole.
WindowsInstallerreferencesNone
ParentsComPlusPartitionRole,Component
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
PartitionRole String TheidofaComPlusPartitionRoleelementrepresentingthepartitiontheusershouldbeaddedto.
User String ForeignkeyintotheUsertable. Yes
SeeAlsoComplusSchema
Page 572
AutogenGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.
SeeAlsoComplusSchema
Page 573
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoComplusSchema
Page 574
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoComplusSchema
Page 575
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoComplusSchema
Page 576
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoComplusSchema
Page 577
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoComplusSchema
Page 578
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoComplusSchema
Page 579
Guid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoComplusSchema
Page 580
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoComplusSchema
Page 581
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoComplusSchema
Page 582
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoComplusSchema
Page 583
LongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoComplusSchema
Page 584
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoComplusSchema
Page 585
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoComplusSchema
Page 586
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoComplusSchema
Page 587
ShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoComplusSchema
Page 588
uuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}'.
SeeAlsoComplusSchema
Page 589
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoComplusSchema
Page 590
WildCardLongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoComplusSchema
Page 591
WildCardShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoComplusSchema
Page 592
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoComplusSchema
Page 593
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoComplusSchema
Page 594
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoComplusSchema
Page 595
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoComplusSchema
Page 596
ProviderKeyAttribute(DependencyExtension)
DescriptionOptionalattributetoexplicitlyauthortheproviderkeyfortheentirebundle.
WindowsInstallerreferencesNone
ParentsBundle
Remarks
Thisproviderkeyisdesignedtopersistthroughoutcompatibleupgradessothatdependentbundlesdonothavetobereinstalledandwillnotpreventyourproductfrombeingupgraded.Ifthisattributeisnotauthored,thevalueistheautomatically-generatedbundleIDandwillnotautomaticallysupportupgrades.
Onlyasingleproviderkeyissupportedforbundles.Toauthorthatyourbundleprovidesadditionalfeaturesviapackages,authordifferentproviderkeysforyourpackages.
SeeAlsoDependencySchema,Provides
Page 597
ProvidesElement(DependencyExtension)
DescriptionDescribestheinformationforthisproductorfeaturethatservesasadependencyofotherproductsorfeatures.
WindowsInstallerreferencesNone
ParentsComponent,ExePackage,MsiPackage,MspPackage,MsuPackage
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Requires(min:0,max:unbounded)RequiresRef(min:0,max:unbounded)
Attributes
Name Type Description Required
DisplayName String Optionaldisplaynameofthepackage.ForMSIpackages,theProductNamewillbeusedbydefault.
Id String Dependencyprovideridentity.Ifthisattributeisnotspecified,anidentifierwillbegeneratedautomatically.
Key String Optionaluniqueregistry
Page 598
keynamethatidentifiesaproductversionrangeonwhichotherproductscandepend.Thisattributeisrequiredinpackageauthoring,butoptionalforcomponents.
Version VersionType Theversionofthepackage.ForMSIpackages,theProductVersionwillbeusedbydefaultandthisattributeshouldnotbespecified.
Remarks
Thiselementisrequiredforanyproduct,feature,orbundlethatwillusetheDependencyfeaturetoproperlyreferencecountotherproductsorfeatures.Itshouldbeauthoredintoacomponentthatisalwaysinstalledandremovedwiththeproductorfeaturesthatcontainit.Thisguaranteesthatproductdependenciesarenotremovedbeforethoseproductsthatdependonthem.
The@Keyattributeshouldidentifyaversionrangeforyourproductthatyouguaranteewillbebackwardcompatible.Thiskeyisdesignedtopersistthroughoutcompatibleupgradessothatdependentproductsdonothavetobereinstalledandwillnotpreventyourproductfrombeingupgraded.Ifthisattributeisnotauthored,thevalueistheProductCodeandwillnotautomaticallysupportupgrades.
BydefaultthisusestheProduct/@Idattributevalue,whichmaybeautomaticallygenerated.
HowTosandExamplesHowTo:Authorproductdependencies
SeeAlsoDependencySchema
Page 599
RequiresElement(DependencyExtension)
DescriptionDescribesadependencyonaproviderforthecurrentcomponentorpackage.
WindowsInstallerreferencesNone
ParentsBundle,Fragment,Module,Product,Provides
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Dependencyrequirementidentity.Ifthisattributeisnotspecified,anidentifierwillbegeneratedautomatically.IfthiselementisnotauthoredunderaProvideselement,thisattributeisrequired.
IncludeMaximum YesNoType Setto"yes"tomaketherangeofdependencyproviderversionsrequired
Page 600
includethevaluespecifiedinMaximum.
IncludeMinimum YesNoType Setto"yes"tomaketherangeofdependencyproviderversionsrequiredincludethevaluespecifiedinMinimum.
Maximum VersionType Themaximumversionofthedependencyproviderrequiredtobeinstalled.Thedefaultisunbound.
Minimum VersionType Theminimumversionofthedependencyproviderrequiredtobeinstalled.Thedefaultisunbound.
ProviderKey String Theuniqueregistrykeynameforthedependencyprovidertorequireduringinstallationofthisproduct.
Yes
Remarks
ThiselementdeclaresadependencyonanyproductthatusestheProvideselement.Ifthatproductisuninstalledbeforeaproductthatrequiresit,theuninstallwillerrorwarntheuserthatotherproductsareinstalledwhichdependonthatproduct.ThisbehaviorcanbemodifiedbychangingtheattributevaluesontheRequireselement.
IfyoudonotnestthiselementunderaProvideselement,youmustspecifythe@IdattributesothatitcanbereferencedbyaRequiresRefelementnestedunderaProvideselement.
HowTosandExamples
Page 601
HowTo:Authorproductdependencies
SeeAlsoDependencySchema,RequiresRef
Page 602
RequiresRefElement(DependencyExtension)
DescriptionReferencesexistingauthoringforadependencyonaproviderforthecurrentcomponentorpackage.
WindowsInstallerreferencesNone
ParentsProvides
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifieroftheRequireselementtoreference.
Yes
Remarks
ThiselementreferencesadependencyonanyproductthatusestheProvideselement.Ifthatproductisuninstalledbeforeaproductthatrequiresit,theuninstallwillerrorwarntheuserthatotherproductsareinstalledwhichdependonthatproduct.ThisbehaviorcanbemodifiedbychangingtheattributevaluesontheRequireselement.
HowTosandExamplesHowTo:Authorproductdependencies
SeeAlsoDependencySchema,Requires
Page 603
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.Thiscanalsobeapreprocessor,binder,orWiXvariable.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}|[!$]\((var|bind|wix)\.[_A-Za-z][\w\.]*\)'.
SeeAlsoDependencySchema
Page 604
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoDependencySchema
Page 605
DriverElement(DifxappExtension)
DescriptionInstallsadriver.Tousethiselement,youneedtoreferencetheWixDifxAppExtensionextensionandaddthe.wixlibappropriateforthetargetplatform(difxapp_x86.wixlibordifxapp_x64.wixlib)toyourproject.
WindowsInstallerreferencesNone
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description
AddRemovePrograms YesNoType SpecifiesthattheDIFxAppCustomActionsshouldaddanentryintheAdd/RemoveProgramsControlThedefaultis'yes'.
DeleteFiles YesNoType Ifsetto"yes",configuresDIFxApptodeletebinaryfilesthatwerecopiedtothesystemfromthedriveradriverpackagewasinstalled.Ifthisattributeissetto"no"ornotpresent,DIFxAppdoesnotfromasystem.NotethatconfiguringDIFxApptodeletethesefilesiscontrolledbytheFlagsentryvalueofthecomponentthatrepresentsthedriverpackageintheMsiDriverPackagescustomtable."yes"setsthecorrespondingbitintheFlagsentryvalue.SettingDeleteFilesto"no"clearsthecorrespondingbitintheFlagsentryvalue.Ifthisattributeisnotpresent,
Page 606
DIFxAppusesadefaultvalueof"no".
ForceInstall YesNoType SpecifiesthattheDIFxAppCustomActionsshouldforcetheinstallationofanewPlugandPlaydriverevenifthecurrentlyinstalleddriveronthedeviceisabettermatchthanthenewdriver.excellentwaytoensuretheDIFxAppCustomActionsrecognizetheComponentcontainsThedefaultisnullwhichmeanstheComponentdoesnotinstalladriverviaDIFxAppCustomActions.Seehttp://www.microsoft.com/whdc/driver/install/difxtools.mspxformoreinformation.
Legacy YesNoType Ifsetto"yes",configuresDIFxApptoinstallunsigneddriverpackagesanddriverpackageswithmissingFormoreinformation,see"InstallingUnsignedDriverPackagesinLegacyMode"earlierinthispaper.attributeissetto"no"ornotpresent,DIFxAppwillinstallonlysigneddriverpackages.NoteDIFxApptoinstallunsigneddriversiscontrolledbytheFlagsentryvalueofthecomponentdriverpackageintheMsiDriverPackagescustomtable.SettingLegacyto"yes"setsthecorrespondingbitintheFlagsentryvalue.SettingLegacyto"no"clearsthebitintheFlagsentryvaluethatconfiguresDIFxApptoinstallunsigneddriverpackages.Ifthisattributeisnotpresent,DIFxAppusesadefaultvalueof"no".
PlugAndPlayPrompt YesNoType SpecifiesthattheDIFxAppCustomActionsshouldprompttheusertoconnectthePlugandPlayconnected.Thedefaultis'yes'.
Sequence Integer Specifiesanoptionalinstallationsequencenumber.DIFxAppCustomActionsinstallthedriverpackagesininstallationpackageintheorderofincreasingsequencenumbers.Thesamesequencenumbercanbeusedmorethanonedriver;however,theorderinwhichpackageswiththesamesequencenumberareactuallyinstalledcannotbedetermined.
SeeAlso
Page 608
AutogenGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.
SeeAlsoDifxappSchema
Page 609
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoDifxappSchema
Page 610
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoDifxappSchema
Page 611
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoDifxappSchema
Page 612
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoDifxappSchema
Page 613
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoDifxappSchema
Page 614
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoDifxappSchema
Page 615
Guid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoDifxappSchema
Page 616
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoDifxappSchema
Page 617
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoDifxappSchema
Page 618
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoDifxappSchema
Page 619
LongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoDifxappSchema
Page 620
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoDifxappSchema
Page 621
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoDifxappSchema
Page 622
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoDifxappSchema
Page 623
ShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoDifxappSchema
Page 624
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoDifxappSchema
Page 625
WildCardLongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoDifxappSchema
Page 626
WildCardShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoDifxappSchema
Page 627
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoDifxappSchema
Page 628
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoDifxappSchema
Page 629
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoDifxappSchema
Page 630
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoDifxappSchema
Page 631
FirewallExceptionElement(FirewallExtension)
DescriptionRegistersanexceptionforaprogramoraspecificportandprotocolintheWindowsFirewallonWindowsXPSP2,WindowsServer2003SP1,andlater.FormoreinformationabouttheWindowsFirewall,seeAboutWindowsFirewallAPI.
WindowsInstallerreferencesNone
ParentsComponent,File
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
RemoteAddress(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String UniqueIDofthisfirewallexception.
Yes
Description String DescriptionforthisfirewallruledisplayedinWindowsFirewallmanagerinWindowsVistaandlater.
File String Identifierofafiletobegrantedaccesstoallincomingportsandprotocols.IfyouuseFile,
Page 632
youcannotalsouseProgram.
IfyouuseFileandalsoPortorProtocolinthesameFirewallExceptionelement,theexceptionwillfailtoinstallonWindowsXPandWindowsServer2003.IgnoreFailure="yes"canbeusedtoignoretheresultingfailure,buttheexceptionwillnotbeadded.
IgnoreFailure YesNoType If"yes,"failurestoregisterthisfirewallexceptionwillbesilentlyignored.If"no"(thedefault),failureswillcauserollback.
Name String Nameofthisfirewallexception,visibletotheuserinthefirewallcontrolpanel.
Yes
Port String Porttoallowthroughthefirewallforthisexception.
IfyouusePortandalsoFileorPrograminthesameFirewallExceptionelement,theexceptionwillfailtoinstallonWindowsXPandWindowsServer2003.IgnoreFailure="yes"canbeusedtoignoretheresultingfailure,buttheexceptionwillnotbeadded.
Page 633
Profile Enumeration Profiletypeforthisfirewallexception.Defaultis"all".Thisattribute'svaluemustbeoneofthefollowing:domain
private
public
all
Program String Pathtoatargetprogramtobegrantedaccesstoallincomingportsandprotocols.Notethatthisisaformattedfield,soyoucanuse[#fileId]syntaxtorefertoafilebeinginstalled.IfyouuseProgram,youcannotalsouseFile.
IfyouuseProgramandalsoPortorProtocolinthesameFirewallExceptionelement,theexceptionwillfailtoinstallonWindowsXPandWindowsServer2003.IgnoreFailure="yes"canbeusedtoignoretheresultingfailure,buttheexceptionwillnotbeadded.
Protocol Enumeration IPprotocolusedforthisfirewallexception.IfPortisdefined,"tcp"isassumediftheprotocolisnot
Page 634
specified.
IfyouuseProtocolandalsoFileorPrograminthesameFirewallExceptionelement,theexceptionwillfailtoinstallonWindowsXPandWindowsServer2003.IgnoreFailure="yes"canbeusedtoignoretheresultingfailure,buttheexceptionwillnotbeadded.Thisattribute'svaluemustbeoneofthefollowing:tcp
udp
Scope Enumeration Thescopeofthisfirewallexception,whichindicateswhetherincomingconnectionscancomefromanycomputerincludingthoseontheInternetoronlythoseonthelocalnetworksubnet.Tomorepreciselyspecifyallowedremoteaddress,specifyacustomscopeusingRemoteAddresschildelements.Thisattribute'svaluemustbeoneofthefollowing:any
localSubnet
Page 635
SeeAlsoFirewallSchema
Page 636
RemoteAddressElement(FirewallExtension)
DescriptionAremoteaddresstowhichtheportorprogramcanlisten.AddressformatsvarybasedontheversionofWindowsandWindowsFirewalltheprogramisbeinginstalledon.ForWindowsXPSP2andWindowsServer2003SP1,seeRemoteAddressesProperty.ForWindowsVistaandWindowsServer2008,seeRemoteAddressesProperty.
WindowsInstallerreferencesNone
ParentsFirewallException
InnerText(xs:string)Aremoteaddress.
ChildrenNone
AttributesNone
SeeAlsoFirewallSchema
Page 637
AutogenGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.
SeeAlsoFirewallSchema
Page 638
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoFirewallSchema
Page 639
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoFirewallSchema
Page 640
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoFirewallSchema
Page 641
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoFirewallSchema
Page 642
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoFirewallSchema
Page 643
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoFirewallSchema
Page 644
Guid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoFirewallSchema
Page 645
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoFirewallSchema
Page 646
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoFirewallSchema
Page 647
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoFirewallSchema
Page 648
LongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoFirewallSchema
Page 649
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoFirewallSchema
Page 650
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoFirewallSchema
Page 651
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoFirewallSchema
Page 652
ShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoFirewallSchema
Page 653
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoFirewallSchema
Page 654
WildCardLongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoFirewallSchema
Page 655
WildCardShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoFirewallSchema
Page 656
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoFirewallSchema
Page 657
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoFirewallSchema
Page 658
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoFirewallSchema
Page 659
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoFirewallSchema
Page 660
GameElement(GamingExtension)
DescriptionRegistersagameinGameExploreronWindowsVistaandlater.TheexecutablemusthaveanembeddedGameDefinitionFile.FormoreinformationaboutGameExplorerandGDFs,seeTheWindowsVistaGameExplorer.Thisregistrationisaccomplishedviacustomaction.
OnWindowsXP,thiselementinsteadrecordsthesameinformationintheregistrysothatlaterupgradestoWindowsVistaregisterthegameinGameExplorer.
WindowsInstallerreferencesNone
ParentsFile
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
PlayTask(min:0,max:unbounded)SupportTask(min:0,max:unbounded)
Attributes
Name Type Description Required
Id Guid Thegame'sinstanceID. Yes
ExecutableFile String Identifierofthefilethatisthegame'sexecutable,ifitisn'ttheparentfile.
GdfResourceFile String Identifierofthefilethatcontainsthegame'sGDF
Page 661
resource,ifitdoesn'texistintheparentfile.
SeeAlsoGamingSchema
Page 662
IsRichSavedGameAttribute(GamingExtension)
DescriptionRegistersthisextensionfortherichsavedgamespropertyhandleronWindowsVistaandlater.
WindowsInstallerreferencesNone
ParentsExtension
SeeAlsoGamingSchema
Page 663
PlayTaskElement(GamingExtension)
DescriptionCreatesashortcuttotheparentFileandregistersitasa"playtask"inGameExplorer.Formoreinformation,seeGameExplorerTasks.PlayTaskshouldnotbeusedwhenauthoringthetasksintheGDFusingExtendedProperties\GameTasksavailableinWindows7.
WindowsInstallerreferencesNone
ParentsGame
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Arguments String Command-lineargumentstobepassedtothegameexecutableforthistask.
Name String User-visibletasknameGameExplorershowsonitscontextmenu.Notethatthefirsttaskisnamed"Play"regardlessofthenameyouprovide.
Yes
SeeAlsoGamingSchema
Page 664
AutogenGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.
SeeAlsoGamingSchema
Page 665
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoGamingSchema
Page 666
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoGamingSchema
Page 667
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoGamingSchema
Page 668
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoGamingSchema
Page 669
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoGamingSchema
Page 670
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoGamingSchema
Page 671
Guid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-HERE|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)|!\(wix\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoGamingSchema
Page 672
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoGamingSchema
Page 673
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoGamingSchema
Page 674
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoGamingSchema
Page 675
LongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoGamingSchema
Page 676
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoGamingSchema
Page 677
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoGamingSchema
Page 678
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoGamingSchema
Page 679
ShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoGamingSchema
Page 680
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoGamingSchema
Page 681
WildCardLongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoGamingSchema
Page 682
WildCardShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoGamingSchema
Page 683
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoGamingSchema
Page 684
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoGamingSchema
Page 685
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoGamingSchema
Page 686
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoGamingSchema
Page 687
SupportTaskElement(GamingExtension)
DescriptionCreatesanInternetshortcutandregistersitasa"supporttask"inGameExplorer.Formoreinformation,seeGameExplorerTasks.SupportTaskshouldnotbeusedwhenauthoringthetasksintheGDFusingExtendedProperties\GameTasksavailableinWindows7.
WindowsInstallerreferencesNone
ParentsGame
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Address String URIforthistask.
Name String User-visibletasknameGameExplorershowsonitscontextmenu.Notethatthefirsttaskisnamed"Play"regardlessofthenameyouprovide.
Yes
SeeAlsoGamingSchema
Page 688
AutogenGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.
SeeAlsoHttpSchema
Page 689
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoHttpSchema
Page 690
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoHttpSchema
Page 691
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoHttpSchema
Page 692
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoHttpSchema
Page 693
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoHttpSchema
Page 694
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoHttpSchema
Page 695
Guid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoHttpSchema
Page 696
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoHttpSchema
Page 697
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoHttpSchema
Page 698
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoHttpSchema
Page 699
LongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoHttpSchema
Page 700
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoHttpSchema
Page 701
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoHttpSchema
Page 702
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoHttpSchema
Page 703
ShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoHttpSchema
Page 704
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoHttpSchema
Page 705
WildCardLongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoHttpSchema
Page 706
WildCardShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoHttpSchema
Page 707
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoHttpSchema
Page 708
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoHttpSchema
Page 709
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoHttpSchema
Page 710
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoHttpSchema
Page 711
UrlAceElement(HttpExtension)
DescriptionThesecurityprincipalandwhichrightstoassigntothemfortheURLreservation.
WindowsInstallerreferencesNone
ParentsUrlReservation
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String UniqueIDofthisURLACE.Ifthisattributeisnotspecified,anidentifierwillbegeneratedautomatically.
Rights Enumeration RightsforthisACE.Defaultis"all".Thisattribute'svaluemustbeoneofthefollowing:register
delegate
all
SecurityPrincipal String ThesecurityprincipalforthisACE.WhentheUrlReservationisunderaServiceInstallelement,thisdefaultsto"NT
Page 712
SERVICE\ServiceInstallName".ThismaybeeitheraSIDoranaccountnameinaformatthatLookupAccountNamesupports.WhenusingaSID,anasteriskmustbeprepended.Forexample,"*S-1-5-18".
SeeAlsoHttpSchema
Page 713
UrlReservationElement(HttpExtension)
DescriptionMakesareservationrecordfortheHTTPServerAPIconfigurationstoreonWindowsXPSP2,WindowsServer2003,andlater.FormoreinformationabouttheHTTPServerAPI,seeHTTPServerAPI.
WindowsInstallerreferencesNone
ParentsComponent,ServiceInstall
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
UrlAce(min:0,max:unbounded)
Attributes
Name Type Description Required
HandleExisting Enumeration SpecifiesthebehaviorwhentryingtoinstallaURLreservationanditalreadyexists.Thisattribute'svaluemustbeoneofthefollowing:replace
ReplacestheexistingURLreservation(thedefault).
Page 714
ignoreKeepstheexistingURLreservation.
failTheinstallationfails.
Id String UniqueIDofthisURLreservation.Ifthisattributeisnotspecified,anidentifierwillbegeneratedautomatically.
Sddl String SecuritydescriptortoapplytotheURLreservation.Can'tbespecifiedwhenusingchildrenUrlAceelements.
Url String TheUrlPrefixstringthatdefinestheportionoftheURLnamespacetowhichthisreservationpertains.
Yes
SeeAlsoHttpSchema
Page 715
CertificateElement(IisExtension)
DescriptionUsedtoinstallanduninstallcertificates.
WindowsInstallerreferencesNone
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Uniqueidentifierforthiscertificateintheinstallationpackage.
Yes
BinaryKey String ReferencetoaBinaryelementthatwillstorethecertificateasastreaminsidethepackage.ThisattributecannotbespecifiedwiththeCertificatePathattribute.
CertificatePath String IftheRequestattributeis"no"thenthisattributeisthepathtothecertificatefileoutsideofthepackage.IftheRequestattributeis"yes"thenthis
Page 716
atributeisthecertificateauthoritytorequestthecertificatefrom.ThisattributemaybesetviaaformattedProperty(e.g.[MyProperty]).
Name String Nameofthecertificatethatwillbeinstalledoruninstalledinthespecifiedstore.ThisattributemaybesetviaaformattedProperty(e.g.[MyProperty]).
Yes
Overwrite YesNoType
PFXPassword String IftheBinarystreamorpathtothefileoutsideofthepackageisapasswordprotectedPFXfile,thepasswordforthatPFXmustbespecifiedhere.ThisattributemaybesetviaaformattedProperty(e.g.[MyProperty]).
Request YesNoType ThisattributecontrolswhethertheCertificatePathattributeisapathtoacertificatefile(Request='no')orthecertificateauthoritytorequestthecertificatefrom(Request='yes').
StoreLocation Enumeration Thisattribute'svaluemustbeoneofthefollowing:currentUser
Yes
Page 717
localMachine
StoreName Enumeration Thisattribute'svaluemustbeoneofthefollowing:ca
Containsthecertificatesofcertificateauthoritiesthattheusertruststoissuecertificatestoothers.Certificatesinthesestoresarenormallysuppliedwiththeoperatingsystemorbytheuser'snetworkadministrator.
myUsethe"personal"valueinstead.
personalContainspersonalcertificates.Thesecertificateswillusuallyhaveanassociatedprivatekey.Thisstoreisoftenreferredtoasthe"MY"certificatestore.
request
rootContainsthe
Yes
Page 718
certificatesofcertificateauthoritiesthattheusertruststoissuecertificatestoothers.Certificatesinthesestoresarenormallysuppliedwiththeoperatingsystemorbytheuser'snetworkadministrator.Certificatesinthisstorearetypicallyself-signed.
otherPeopleContainsthecertificatesofthosethattheusernormallysendsenvelopedmessagestoorreceivessignedmessagesfrom.SeeMSDNdocumentationformoreinformation.
trustedPeopleContainsthecertificatesofthosedirectlytrustedpeopleandresources.SeeMSDNdocumentationformoreinformation.
trustedPublisher
Page 719
Containsthecertificatesofthosepublisherswhoaretrusted.SeeMSDNdocumentationformoreinformation.
SeeAlsoIisSchema,CertificateRef
Page 720
CertificateRefElement(IisExtension)
DescriptionAssociatesacertificatewiththeparentWebSite.TheCertificateelementshouldbeinthesameComponentastheparentWebSite.
WindowsInstallerreferencesNone
ParentsWebSite
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifierofthereferencedCertificate.
Yes
SeeAlsoIisSchema,Certificate
Page 721
HttpHeaderElement(IisExtension)
DescriptionCustomHTTPHeaderdefinitionforIISresourcessuchasWebSiteandWebVirtualDir.
WindowsInstallerreferencesNone
ParentsWebSite,WebVirtualDir
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String PrimarykeyforcustomHTTPHeaderentry.ThiswilldefaulttotheNameattribute.
Name String NameofthecustomHTTPHeader. Yes
Value String ValueforthecustomHTTPHeader.Thisattributecancontainaformattedstringthatisprocessedatinstalltimetoinsertthevaluesofpropertiesusing[PropertyName]syntax.Alsosupportedareenvironmentvariables,fileinstallationpaths,andcomponentinstallationdirectories;seeFormattedfordetails.
Page 722
SeeAlsoIisSchema
Page 723
MimeMapElement(IisExtension)
DescriptionMimeMapdefinitionforIISresources.
WindowsInstallerreferencesNone
ParentsWebSite,WebVirtualDir
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String IdfortheMimeMap. Yes
Extension String ExtensioncoveredbytheMimeMap.Mustbeginwithadot.
Yes
Type String Mime-typecoveredbytheMimeMap.
Yes
SeeAlsoIisSchema
Page 724
RecycleTimeElement(IisExtension)
DescriptionIIS6ApplicationPoolRecycleTimeson24hourclock.
WindowsInstallerreferencesNone
ParentsWebAppPool
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Value String Pattern:'\d{1,2}:\d{2}'. Yes
SeeAlsoIisSchema
Page 725
AutogenGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.
SeeAlsoIisSchema
Page 726
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoIisSchema
Page 727
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoIisSchema
Page 728
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoIisSchema
Page 729
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoIisSchema
Page 730
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoIisSchema
Page 731
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoIisSchema
Page 732
Guid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoIisSchema
Page 733
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoIisSchema
Page 734
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoIisSchema
Page 735
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoIisSchema
Page 736
LongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoIisSchema
Page 737
PercentType(SimpleType)
DescriptionValuesofthistypeareanyintegersbetween0and100,inclusive.
xs:nonNegativeIntegerTypexs:maxInclusivevalue='100'
SeeAlsoIisSchema
Page 738
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoIisSchema
Page 739
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoIisSchema
Page 740
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoIisSchema
Page 741
ShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoIisSchema
Page 742
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoIisSchema
Page 743
WildCardLongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoIisSchema
Page 744
WildCardShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoIisSchema
Page 745
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoIisSchema
Page 746
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoIisSchema
Page 747
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoIisSchema
Page 748
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoIisSchema
Page 749
WebAddressElement(IisExtension)
DescriptionWebAddressforWebSite
WindowsInstallerreferencesNone
ParentsWebSite
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
Header String
IP String TheIPaddresstolocateanexistingWebSiteorcreateanewWebSite.WhentheWebAddressispartofaWebSiteelementusedtolocateanexistingwebsitethefollowingrulesareused:
Whenthisattributeisnotspecifiedonlythe"AllUnassigned"IPaddresswillbelocated.WhenthisattributeisexplicitlyspecifiedonlythespecifiedIPaddresswillbelocated.
Page 750
Whenthisattributehasthevalue"*"thenanyIPaddressincludingthe"AllUnassigned"IPaddresswillbelocated
WhentheWebAddressispartofaWebSiteelementusedtocreateanewwebsitethefollowingrulesareused:
Whenthisattributeisnotspecifiedorthevalueis"*"the"AllUnassigned"IPaddresswillbeused.WhenthisattributeisexplicitlyspecifiedtheIPaddresswillusethatvalue.
TheIPattributecancontainaformattedstringthatisprocessedatinstalltimetoinsertthevaluesofpropertiesusing[PropertyName]syntax.
Port String Yes
Secure YesNoType Determinesifthisaddressrepresentsasecurebinding.Thedefaultis'no'.
SeeAlsoIisSchema
Page 751
WebApplicationElement(IisExtension)
DescriptionDefinespropertiesforawebapplication.Thesepropertiescanbeusedformorethanoneapplicationdefinedinawebsiteorvroot,bydefiningthiselementinacommonlocationandreferringtoitbysettingtheWebApplicationattributeoftheWebSiteandWebVirtualDirelements.
WindowsInstallerreferencesNone
ParentsFragment,Module,Product,WebDir,WebSite,WebVirtualDir
InnerTextNone
ChildrenSequence(min:1,max:1)1. WebApplicationExtension(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Yes
AllowSessions YesNoDefaultType SetstheEnableSessionStateoption.Whenenabled,youcansetthesessiontimeoutusingtheSessionTimeoutattribute.
Page 752
Buffer YesNoDefaultType Setstheoptionthatenablesresponsebufferingintheapplication,whichallowsASPscripttosetresponseheadersanywhereinthescript.
ClientDebugging YesNoDefaultType EnableASPclient-sidescriptdebugging.
DefaultScript Enumeration Setsthedefaultscriptlanguageforthesite.Thisattribute'svaluemustbeoneofthefollowing:VBScript
JScript
Isolation Enumeration Setstheapplicationisolationlevelforthisapplicationforpre-IIS6applications.Thisattribute'svaluemustbeoneofthefollowing:low
Meanstheapplication
Page 753
executeswithintheIISprocess.
mediumExecutespooledinaseparateprocess.
highMeansexecutionaloneinaseparateprocess.
Name String Setsthenameofthisapplication.
Yes
ParentPaths YesNoDefaultType Setstheparentpathsoption,whichallowsaclienttouserelativepathstoreachparentdirectoriesfromthisapplication.
ScriptTimeout Integer SetsthetimeoutvalueinsecondsforexecutingASPscripts.
ServerDebugging YesNoDefaultType EnableASPserver-sidescriptdebugging.
SessionTimeout Integer Setsthetimeoutvaluefor
Page 754
sessionsinminutes.
WebAppPool String ReferencestheIdattributeofaWebAppPoolelementtouseastheapplicationpoolforthisapplicationinIIS6applications.
SeeAlsoIisSchema
Page 755
WebApplicationExtensionElement(IisExtension)
DescriptionExtensionforWebApplication
WindowsInstallerreferencesNone
ParentsWebApplication
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
CheckPath YesNoType
Executable String usuallyaPropertythatresolvestoshortfilenamepath
Yes
Extension String Extensionbeingregistered.Donotprefixwitha'.'(e.g.youshoulduse"html",not".html").Toregisterforallextensions,useExtension="*".Toregisterawildcardapplicationmap(whichhandlesallrequests,eventhosefordirectoriesorfileswithnoextension)omitthe
Page 756
Extensionattributecompletely.
Script YesNoType
Verbs String
SeeAlsoIisSchema
Page 757
WebAppPoolElement(IisExtension)
DescriptionIIS6ApplicationPool
WindowsInstallerreferencesNone
ParentsComponent,Fragment,Module,Product
InnerTextNone
ChildrenSequence(min:1,max:1)1. RecycleTime(min:0,max:unbounded)
Attributes
Name Type Description
Id String IdoftheAppPool.
CpuAction Enumeration ActiontakenwhenCPUexceedsmaximumCPUuse(asdefinedwithMaxCpuUsageandRefreshCpu).Thisattribute'svaluemustbeoneofthefollowing:none
shutdown
Identity Enumeration IdentityyouwanttheAppPooltorununder(applicationPoolIdentityisonlyavailableonIIS7).Usethe'other'valueinconjunctionwiththeUserattributetospecifynon-standarduser.valuemustbeoneofthefollowing:networkService
localService
localSystem
other
Page 758
applicationPoolIdentity
IdleTimeout Integer Shutdownworkerprocessafterbeingidlefor(timeinminutes).
ManagedPipelineMode String Specifiestherequest-processingmodethatisusedtoprocessrequestsformanagedcontent.availableonIIS7,ignoredonIIS6.http://www.iis.net/ConfigReference/system.applicationHost/applicationPools/applicationPoolDefaultsforvalidvalues.ThisattributemaybesetviaaformattedProperty(e.g.[MyProperty]).
ManagedRuntimeVersion String Specifiesthe.NETFrameworkversiontobeusedbytheapplicationpool.ignoredonIIS6.Seehttp://www.iis.net/ConfigReference/system.applicationHost/applicationPools/applicationPoolDefaultsforvalidvalues.ThisattributemaybesetviaaformattedProperty(e.g.[MyProperty]).
MaxCpuUsage PercentType MaximumCPUusage(percent).
MaxWorkerProcesses Integer Maximumnumberofworkerprocesses.
Name String NameoftheAppPooltobeshowninIIs.
PrivateMemory Integer Specifiestheamountofprivatememory(inKB)thataworkerprocesscanusebeforetheworkerprocessrecycles.Themaximumvaluesupportedforthisattributeis4,294,967KB.
QueueLimit Integer Limitthekernelrequestqueue(numberofrequests).
RecycleMinutes Integer Howoften,inminutes,youwanttheAppPooltoberecycled.
RecycleRequests Integer Howoften,inrequests,youwanttheAppPooltoberecycled.
RefreshCpu Integer RefreshCPUusagenumbers(inminutes).
User String UseraccounttoruntheAppPoolas.
VirtualMemory Integer Specifiestheamountofvirtualmemory(inKB)thataworkerprocesscanusebeforetheworkerprocessrecycles.Themaximumvaluesupportedforthisattributeis4,294,967KB.
SeeAlsoIisSchema
Page 759
WebDirElement(IisExtension)
DescriptionDefinesasubdirectorywithinanIISwebsite.WhenthiselementisachildofWebSite,thewebdirectoryisdefinedwithinthatwebsite.OtherwisethewebdirectorymustreferenceaWebSiteelementviatheWebSiteattribute.
WindowsInstallerreferencesNone
ParentsComponent,WebSite
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
WebApplication(min:0,max:1)WebDirProperties(min:0,max:1)
Attributes
Name Type Description Required
Id String Yes
DirProperties String ReferencestheIdattributeforaWebDirPropertieselementthatspecifiesthesecurityandaccesspropertiesforthiswebdirectory.ThisattributemaynotbespecifiedifaWebDirPropertieselementisdirectlynestedinthiselement.
Path String Specifiesthenameofthiswebdirectory.
Yes
Page 760
WebSite String ReferencestheIdattributeforaWebSiteelementinwhichthisdirectorybelongs.RequiredwhenthiselementisnotachildofaWebSiteelement.
SeeAlsoIisSchema
Page 761
WebDirPropertiesElement(IisExtension)
DescriptionWebDirPropertiesusedbyoneormoreWebSites.ListspropertiescommontoIISwebsitesandvroots.CorrespondingpropertiescanbeviewedthroughtheIISManagersnap-in.OnepropertyentrycanbereusedbymultiplesitesorvrootsusingtheIdfieldasareference,usingWebVirtualDir.DirProperties,WebSite.DirProperties,orWebDir.DirProperties.
WindowsInstallerreferencesNone
ParentsFragment,Module,Product,WebDir,WebSite,WebVirtualDir
InnerTextNone
ChildrenNone
Attributes
Name Type Description
Id String
AccessSSL YesNoType AvalueoftrueindicatesthatfileaccessrequiresSSLfilepermissionprocessing,withorwithoutaclientcertificate.ThiscorrespondstoAccessSSLflagforAccessSSLFlagsIIS
Page 762
metabaseproperty.
AccessSSL128 YesNoType AvalueoftrueindicatesthatfileaccessrequiresSSLfilepermissionprocessingwithaminimumkeysizeof128bits,withorwithoutaclientcertificate.ThiscorrespondstoAccessSSL128flagforAccessSSLFlagsIISmetabaseproperty.
AccessSSLMapCert YesNoType ThiscorrespondstoAccessSSLMapCertflagforAccessSSLFlagsIISmetabaseproperty.
AccessSSLNegotiateCert YesNoType ThiscorrespondstoAccessSSLNegotiateCertflagforAccessSSLFlagsIISmetabaseproperty.
AccessSSLRequireCert YesNoType ThiscorrespondstoAccessSSLRequireCertflagforAccessSSLFlagsIISmetabaseproperty.
AnonymousAccess YesNoType SetstheEnableAnonymousAccesscheckbox,whichmapsanonymoususerstoaWindowsuseraccount.Whensettingthisto'yes'youshouldalsoprovidetheuseraccountusingtheAnonymousUserattribute,anddeterminewhatsettingtouseforthe
Page 763
IIsControlledPasswordattribute.Defaultsto'no.'
AnonymousUser String ReferencetotheIdattributeontheUserelementtobeusedastheanonymoususerforthedirectory.SeetheUserelementformoreinformation.
AspDetailedError YesNoType SetstheoptionforwhethertosenddetailedASPerrorsbacktotheclientonscripterror.Defaultis'no.'
AuthenticationProviders String Commadelimitedlist,inorderofprecedence,ofWindowsauthenticationprovidersthatIISwillattempttouse:NTLM,Kerberos,Negotiate,andothers.
BasicAuthentication YesNoType SetstheBasicAuthenticationoption,whichallowsclientstoprovidecredentialsinplaintextoverthewire.Defaultsto'no.'
CacheControlCustom String CustomHTTP1.1cachecontroldirectives.
CacheControlMaxAge NonNegativeInteger Integervaluespecifyingthecachecontrolmaximumagevalue.
ClearCustomError YesNoType SpecifieswhetherIIswillreturncustomerrorsforthisdirectory.
Page 764
DefaultDocuments String Thelistofdefaultdocumentstosetforthiswebdirectory,incomma-delimitedformat.
DigestAuthentication YesNoType SetstheDigestAuthenticationoption,whichallowsusingdigestauthenticationwithdomainuseraccounts.Defaultsto'no.'
Execute YesNoType
HttpExpires String ValuetosettheHttpExpiresattributetoforaWebDirinthemetabase.
IIsControlledPassword YesNoType SetswhetherIISshouldcontrolthepasswordusedfortheWindowsaccountspecifiedintheAnonymousUserattribute.Defaultsto'no.'
Index YesNoType SetstheIndexResourceoption,whichspecifieswhetherthiswebdirectoryshouldbeindexed.Defaultsto'no.'
LogVisits YesNoType Setswhethervisitstothissiteshouldbelogged.Defaultsto'no.'
PassportAuthentication YesNoType SetsthePassportAuthenticationoption,whichallowsclientstoprovidecredentialsviaa.NetPassportaccount.
Page 765
Defaultsto'no.'
Read YesNoType
Script YesNoType
WindowsAuthentication YesNoType SetstheWindowsAuthenticationoption,whichenablesintegratedWindowsauthenticationtobeusedonthesite.Defaultsto'no.'
Write YesNoType
SeeAlsoIisSchema
Page 766
WebErrorElement(IisExtension)
DescriptionCustomWebErrorsusedbyWebSitesandVirtualDirectories.
WindowsInstallerreferencesNone
ParentsWebSite,WebVirtualDir
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
ErrorCode Integer HTTP1.1errorcode. Yes
File String Filetobesenttotheclientforthiserrorcodeandsubcode.Thiscanbeformatted.Forexample:[#FileId].
SubCode Integer Errorsubcode.Setto0togetthewildcard"*".
Yes
URL String URLtobesenttotheclientforthiserrorcodeandsubcode.Thiscanbeformatted.
RemarksYoucanonlyuseerrorcodeandsubcodecombinationswhicharesupportedbyIIS.AttemptingtosetacustomerrorforanerrorcodeandsubcodecombinationthatisnotsupportedbyIIS(inthedefaultlistoferrorcodes)willresultinaninstallationfailure.
Page 767
SeeAlsoIisSchema
Page 768
WebFilterElement(IisExtension)
DescriptionIIsFilterforaComponent
WindowsInstallerreferencesNone
ParentsComponent,WebSite
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheuniqueIdforthewebfilter. Yes
Description String Descriptionofthefilter.
Flags Integer SetstheMD_FILTER_FLAGSmetabasekeyforthefilter.Thismustbeaninteger.SeeMSDN'FilterFlags'documentationformoredetails.
LoadOrder String Thelegalvaluesare"first","last",oranumber.Ifanumberisspecified,itmustbegreaterthan0.
Name String ThenameofthefiltertobeusedinIIS.
Yes
Path String Thepathofthefilterexecutable Yes
Page 769
file.Thisshouldusuallybeavaluelike'[!FileId]',where'FileId'isthefileidentifierofthefilterexecutablefile.
WebSite String Specifiestheparentwebsiteforthisfilter(ifthereisone).Ifthisisaglobalfilter,thenthisattributeshouldnotbespecified.
SeeAlsoIisSchema
Page 770
WebLogElement(IisExtension)
DescriptionWebLogdefinition.
WindowsInstallerreferencesNone
ParentsFragment,Module,Product
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String IdentifierfortheWebLog. Yes
Type Enumeration Thisattribute'svaluemustbeoneofthefollowing:IIS
MicrosoftIISLogFileFormat
NCSANCSACommonLogFileFormat
noneDisableslogging.
ODBCODBCLogging
W3CW3CExtendedLogFile
Yes
Page 771
Format
SeeAlsoIisSchema
Page 772
WebPropertyElement(IisExtension)
DescriptionIISProperties
WindowsInstallerreferencesNone
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id Enumeration Thisattribute'svaluemustbeoneofthefollowing:ETagChangeNumber
IIs5IsolationMode
MaxGlobalBandwidth
LogInUTF8
Yes
Value String ThevaluetobeusedfortheWebPropertyspecifiedintheIdattribute.SeetheremarkssectionforinformationonacceptablevaluesforeachId.
RemarksHereisanexplanationoftheacceptablevaluesforeachpropertyandtheirmeaning:
Page 773
FortheIdsIIs5IsolationModeandLogInUTF8,novalueshouldbespecifiedsincethepresenceofthispropertyindicatesthatthesettingshouldbeset.FortheMaxGlobalBandwidthId,thevalueshouldbespecifiedinkilobytes.Thevalueshouldbeabase10number.ETagChangeNumbersetsthemachine-specificportionofETagasanumber.Thisvalue,whensynchronizedacrossserversinawebfarm,allowsthewebfarmtoreturnanidenticalETagforagivenresourceregardlessoftheserverthathandledtherequest.Thevalueshouldbeabase10number.
SeeAlsoIisSchema
Page 774
WebServiceExtensionElement(IisExtension)
DescriptionTheWebServiceExtensionpropertyisusedbytheWebservertodeterminewhetheraWebserviceextensionispermittedtorun.
WindowsInstallerreferencesNone
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
Allow YesNoType Indicatesiftheextensionisallowedordenied.
Yes
Description String Descriptionoftheextension.
File String UsuallyaPropertythatresolvestoshortfilenamepath
Yes
Group String Stringusedtoidentifygroupsofextensions.
UIDeletable YesNoType IndicatesiftheUIisallowedtodeletetheextensionfromthelistofnot.Default:Not
Page 775
deletable.
SeeAlsoIisSchema
Page 776
WebSiteElement(IisExtension)
DescriptionIIsWebSite
WindowsInstallerreferencesNone
ParentsComponent,Fragment,Module,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
CertificateRef(min:0,max:unbounded)HttpHeader(min:0,max:unbounded)MimeMap(min:0,max:unbounded)WebAddress(min:1,max:unbounded)WebApplication(min:0,max:1)WebDir(min:0,max:unbounded)WebDirProperties(min:0,max:1)WebError(min:0,max:unbounded)WebFilter(min:0,max:unbounded)WebVirtualDir(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String IdentifierfortheWebSite.UsedwithintheMSIpackageonly.
Yes
AutoStart YesNoType Specifieswhether
Page 777
toautomaticallystartthewebsite.
ConfigureIfExists YesNoType Specifieswhethertoconfigurethewebsiteifitalreadyexists.Note:Thiswillnotaffectuninstallbehavior.Ifthewebsiteexistsonuninstall,itwillberemoved.
ConnectionTimeout NonNegativeInteger Setsthetimeoutvalueforconnectionsinseconds.
Description String ThisisthenameofthewebsitethatwillshowupintheIISmanagementconsole.
Yes
Directory String Rootdirectoryofthewebsite.ResolvedtoadirectoryintheDirectorytableatinstalltimebytheservercustomactions.
DirProperties String ReferencestheIdattributeforaWebDirPropertieselementthatspecifiesthesecurityand
Page 778
accesspropertiesforthiswebsiterootdirectory.ThisattributemaynotbespecifiedifaWebDirPropertieselementisdirectlynestedinthiselement.
Sequence Integer Sequencethatthewebsiteistobecreatedin.
SiteId String OptionalattributetodirectlyspecifythesiteidoftheWebSite.Usethistoensureallwebsitesinawebgardengetthesamesiteid.Ifanumberisprovided,thesiteidmustbeuniqueonalltargetmachines.If"*"isused,theDescriptionattributewillbehashedtocreateauniquevalueforthesiteid.Thisvaluemustbeapositivenumberora"*"oraformattedvaluethatresolvesto"-1"
Page 779
(forthesamebehavioras"*")orapositivenumberorblank.IfthisattributeisabsentthenthewebsitewillbelocatedusingtheWebAddresselementassociatedwiththewebsite.
StartOnInstall YesNoType Specifieswhethertostartthewebsiteoninstall.
WebApplication String ReferencetoaWebApplicationthatistobeinstalledaspartofthiswebsite.
WebLog String ReferencetoWebLogdefinition.
RemarksNestingWebSiteunderaComponentelementwillresultinaWebSitebeinginstalledtothemachineasthepackageisinstalled.
NestingWebSiteunderProduct,Fragment,orModuleresultsinawebsite"locator"recordbeingcreatedintheIIsWebSitetable.ThismeansthatthewebsiteitselfisneitherinstallednoruninstalledbytheMSIpackage.ItdoesmakethedatabaseavailableforreferencingfromaWebApplication,WebVirtualDirorWebDirrecord.ThisallowsanMSItoinstallWebApplications,WebVirtualDirsorWebDirstoalreadyexistingwebsitesonthemachine.Theinstallwillfailifthewebsitedoesnotexistinthesecases.
Page 780
SeeAlsoIisSchema
Page 781
WebVirtualDirElement(IisExtension)
DescriptionDefinesanIISvirtualdirectory.WhenthiselementisachildofWebSiteelement,thevirtualdirectoryisdefinedwithinthatwebsite.OtherwisethisvirtualdirectorymustreferenceaWebSiteelementviatheWebSiteattribute
WindowsInstallerreferencesNone
ParentsComponent,WebSite,WebVirtualDir
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
HttpHeader(min:0,max:unbounded)MimeMap(min:0,max:unbounded)WebApplication(min:0,max:1)WebDirProperties(min:0,max:1)WebError(min:0,max:unbounded)WebVirtualDir(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Yes
Alias String Setstheapplicationname,whichistheURLrelativepathusedtoaccessthisvirtualdirectory
Yes
Page 782
Directory String ReferencestheIdattributeforaDirectoryelementthatpointstothecontentforthisvirtualdirectory.
Yes
DirProperties String ReferencestheIdattributeforaWebDirPropertieselementthatspecifiesthesecurityandaccesspropertiesforthisvirtualdirectory.ThisattributemaynotbespecifiedifaWebDirPropertieselementisdirectlynestedinthiselement.
WebApplication String ReferencestheIdattributeforaWebApplicationelementthatspecifieswebapplicationsettingsforthisvirtualdirectory.IfaWebApplicationchildisnotspecified,thevirtualdirectorydoesnothostwebapplications.
WebSite String ReferencestheIdattributeforaWebSiteinwhichthisvirtualdirectorybelongs.RequiredwhenthiselementisnotachildofWebSiteelement.
SeeAlsoIisSchema
Page 783
ConditionElement(LuxExtension)
DescriptionConditionsforaunittest.
WindowsInstallerreferencesNone
ParentsUnitTest
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoLuxSchema
Page 784
ExpressionElement(LuxExtension)
DescriptionAnexpressionthatmustevaluatetotruetosucceed.CannotbespecifiedifPropertyisspecified.
WindowsInstallerreferencesNone
ParentsUnitTest
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoLuxSchema
Page 785
MutationElement(LuxExtension)
DescriptionTestmutationsletyouauthorunittestswithdifferentexpectedresults.ThemutationidispassedasthevalueoftheWIXLUX_RUNNING_MUTATIONproperty.Yourcustomaction,typicallyinan'#ifdefDEBUG'block,canretrievetheWIXLUX_RUNNING_MUTATIONpropertyandhard-codedifferentbehaviorbasedonthemutation.Toauthortestmutations,usetheMutationelementwithUnitTestelementsaschildren.
WindowsInstallerreferencesNone
ParentsFragment
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
UnitTest(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String ValueoftheWIXLUX_RUNNING_MUTATIONpropertysetbythemutation.
SeeAlsoLuxSchema
Page 786
AutogenGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.
SeeAlsoLuxSchema
Page 787
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoLuxSchema
Page 788
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoLuxSchema
Page 789
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoLuxSchema
Page 790
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoLuxSchema
Page 791
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoLuxSchema
Page 792
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoLuxSchema
Page 793
Guid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoLuxSchema
Page 794
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoLuxSchema
Page 795
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoLuxSchema
Page 796
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoLuxSchema
Page 797
LongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoLuxSchema
Page 798
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoLuxSchema
Page 799
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoLuxSchema
Page 800
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoLuxSchema
Page 801
ShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoLuxSchema
Page 802
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoLuxSchema
Page 803
WildCardLongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoLuxSchema
Page 804
WildCardShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoLuxSchema
Page 805
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoLuxSchema
Page 806
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoLuxSchema
Page 807
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoLuxSchema
Page 808
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoLuxSchema
Page 809
UnitTestElement(LuxExtension)
DescriptionDescribesaunittesttobeexecutedagainstaparticularcustomaction,resultinginaparticularpropertyvalue.Single-valueproperties,multi-valueproperties,andname/value-pairpropertiescanallbetesteddeclaratively.
WindowsInstallerreferencesNone
ParentsFragment,Mutation,UnitTest
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Condition(min:0,max:unbounded)Expression(min:0,max:unbounded)UnitTest(min:0,max:unbounded)
Attributes
Name Type Description Required
CustomAction String Identifierofthecustomactiontobetested.
Id String Identifieroftheunittest.Ifyouomitthisattribute,astableidentifierisgeneratedforyou.
Index String Aformattedstringthatevaluatestoeitheranintegerindexintoamulti-valuepropertyora
Page 810
stringnameofaname/value-pairmulti-valueproperty.
NameValueSeparator String Onecharacterthatisusedtoseparatevaluesinaname/value-pairmulti-valueproperty.
Operator Enumeration Theoperatortoapplytothepropertyandvalue.Defaultis"equal."Thisattribute'svaluemustbeoneofthefollowing:equal
(Default)ComparesPropertytoValueandsucceedsiftheyareequal.
notEqualComparesPropertytoValueandsucceedsiftheyareNOTequal.
caseInsensitiveEqualComparesPropertytoValueandsucceedsiftheyareequal(ignoringcase).
caseInsensitiveNotEqualComparesPropertytoValueandsucceedsiftheyareNOTequal(ignoringcase).
Property String Nameoftheproperty
Page 811
setbythecustomaction.
Value String Thevaluetocomparetotheproperty.
ValueSeparator String Onecharacterthatisusedtoseparatevaluesinamulti-valueproperty.
SeeAlsoLuxSchema
Page 812
UnitTestRefElement(LuxExtension)
DescriptionIdentifiesaunittesttobelinkedintoaproject.
WindowsInstallerreferencesNone
ParentsFragment,Product
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifieroftheunittesttobeincluded.
SeeAlsoLuxSchema
Page 813
MessageQueueElement(MsmqExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsComponent
InnerTextNone
ChildrenSequence(min:1,max:1)1. MessageQueuePermission(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Yes
Authenticate YesNoType Default:No.
BasePriority Integer
Journal YesNoType Default:No.
JournalQuota Integer
Label String Yes
MulticastAddress String
PathName String Yes
PrivLevel Enumeration Thisattribute'svaluemustbeoneofthe
Page 814
following:none
optional
body
Quota Integer
ServiceTypeGuid String
Transactional YesNoType Default:No.
SeeAlsoMsmqSchema
Page 815
MessageQueuePermissionElement(MsmqExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsComponent,MessageQueue
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
ChangeQueuePermissions YesNoType
DeleteJournalMessage YesNoType
DeleteMessage YesNoType
DeleteQueue YesNoType
GetQueuePermissions YesNoType
GetQueueProperties YesNoType
Group String
MessageQueue String
PeekMessage YesNoType
Page 816
QueueGenericAll YesNoType
QueueGenericExecute YesNoType
QueueGenericRead YesNoType
QueueGenericWrite YesNoType
ReceiveJournalMessage YesNoType
ReceiveMessage YesNoType
SetQueueProperties YesNoType
TakeQueueOwnership YesNoType
User String
WriteMessage YesNoType
SeeAlsoMsmqSchema
Page 817
AutogenGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.
SeeAlsoMsmqSchema
Page 818
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoMsmqSchema
Page 819
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoMsmqSchema
Page 820
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoMsmqSchema
Page 821
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoMsmqSchema
Page 822
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoMsmqSchema
Page 823
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoMsmqSchema
Page 824
Guid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoMsmqSchema
Page 825
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoMsmqSchema
Page 826
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoMsmqSchema
Page 827
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoMsmqSchema
Page 828
LongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoMsmqSchema
Page 829
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoMsmqSchema
Page 830
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoMsmqSchema
Page 831
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoMsmqSchema
Page 832
ShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoMsmqSchema
Page 833
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoMsmqSchema
Page 834
WildCardLongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoMsmqSchema
Page 835
WildCardShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoMsmqSchema
Page 836
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoMsmqSchema
Page 837
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoMsmqSchema
Page 838
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoMsmqSchema
Page 839
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoMsmqSchema
Page 840
NativeImageElement(NetfxExtension)
DescriptionImprovestheperformanceofmanagedapplicationsbycreatingnativeimages.Requiresthe.NETFramework2.0ornewertobeinstalledonthetargetmachinesinceitrunsNGen.
WindowsInstallerreferencesNone
ParentsFile
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifierforthisNativeImage.
Yes
AppBaseDirectory String Thedirectorytouseforlocatingdependentassemblies.ForDLLassembliesandassembliesinstalledtotheGlobalAssemblyCache(GAC),thisattributeshouldbesettothedirectoryoftheapplicationwhichloadsthisassembly.ForEXE
Page 841
assemblies,thisattributedoesnotneedtobesetbecauseNGenwillusethedirectoryoftheassemblyfilebydefault.
Thevaluecanbeintheformofadirectoryidentifier,oraformattedstringthatresolvestoeitheradirectoryidentifierorafullpathtoadirectory.
AssemblyApplication String Theapplicationwhichwillloadthisassembly.ForDLLassemblieswhichareloadedviareflection,thisattributeshouldbesettoindicatetheapplicationwhichwillloadthisassembly.Theconfigurationoftheapplication(usuallyspecifiedviaanexe.configfile)willbeusedtodeterminehowtoresolvedependenciesforthisassembly.
Thevaluecanbeintheformofafileidentifier,oraformattedstringthatresolvestoeitherafileidentifierorafullpathtoafile.
Whenasharedcomponentisloadedatruntime,usingtheLoadmethod,the
Page 842
application'sconfigurationfiledeterminesthedependenciesthatareloadedforthesharedcomponent—forexample,theversionofadependencythatisloaded.Thisattributegivesguidanceonwhichdependencieswouldbeloadedatruntimeinordertofigureoutwhichdependencyassemblieswillalsoneedtohavenativeimagesgenerated(assumingtheDependencyattributeisnotsetto"no").
ThisattributecannotbesetiftheAssemblyApplicationattributeissetontheparentFileelement(pleasenotethattheseattributesbothrefertothesameapplicationassemblybutdoverydifferentthings:specifiyingFile/@AssemblyApplicationwillforceanassemblytoinstalltoaprivatelocationnexttotheindicatedapplication,whereasthisAssemblyApplicationattributewillbeusedtohelpresolvedependentassemblieswhilegeneratingnativeimagesforthisassembly).
Page 843
Debug YesNoType Setto"yes"togeneratenativeimagesthatcanbeusedunderadebugger.Thedefaultvalueis"no".
Dependencies YesNoType Setto"no"togeneratetheminimumnumberofnativeimages.Thedefaultvalueis"yes".
Platform Enumeration Setstheplatform(s)forwhichnativeimageswillbegenerated.Thisattribute'svaluemustbeoneofthefollowing:32bit
Attempttogeneratenativeimagesonlyforthe32-bitversionofthe.NETFrameworkonthetargetmachine.Ifthe32-bitversionofthe.NETFramework2.0ornewerisnotpresentonthetargetmachine,nativeimagecustomactionswillnotbescheduled.Thisisthedefaultvalue.
64bitAttempttogeneratenativeimagesonlyforthe64-bitversionofthe.NETFrameworkonthetargetmachine.Ifa64-bitversionofthe.NETFramework2.0ornewerisnotpresentonthetarget
Page 844
machine,nativeimagecustomactionswillnotbescheduled.
allAttempttogeneratenativeimagesforthe32-bitand64-bitversionsofthe.NETFrameworkonthetargetmachine.Ifaversionofthe.NETFramework2.0ornewerisnotpresentonthetargetmachineforaprocessorarchitecture,nativeimagecustomactionswillnotbescheduledforthatprocessorarchitecture.
Priority Enumeration Setsthepriorityofgeneratingthenativeimagesforthisassembly.Thisattribute'svaluemustbeoneofthefollowing:0
Thisisthehighestpriority,itmeansthatimagegenerationoccurssyncronouslyduringthesetupprocess.Thisoptionwillslowdownsetupperformance.
1Thiswillqueueimagegenerationtothe
Page 845
NGenservicetooccurimmediately.Thisoptionwillslowdownsetupperformance.
2ThiswillqueueimagegenerationtotheNGenservicetooccurafterallpriority1assemblieshavecompleted.Thisoptionwillslowdownsetupperformance.
3Thisisthelowestpriority,itwillqueueimagegenerationtooccurwhenthemachineisidle.Thisoptionshouldnotslowdownsetupperformance.Thisisthedefaultvalue.
Profile YesNoType Setto"yes"togeneratenativeimagesthatcanbeusedunderaprofiler.Thedefaultvalueis"no".
Remarks
Nativeimagesarefilescontainingcompiledprocessor-specificmachinecode,whichareinstalledintothenativeimagecacheonthelocalcomputer.Theruntimecanusenativeimagesfromthecacheinsteadusingthejust-in-time(JIT)compilertocompiletheoriginalassembly.
Thenativeimagecustomactionsareconfiguredtoignorefailuressothatfailingtogenerateorremoveanativeimagewillnotcausesetup
Page 846
tofailandrollback.
Noteforpatches:ifyoubuiltyourtarget,orbaseline,MSIwithpreviousversions3.0or3.5ofthisextensionandwanttoupgradetoformattablevaluesfor@AssemblyApplicationor@AppBaseDirectoryyoumustalsoincludeaBinaryRefto"NetFxCA"topullinnecessarychanges.Ifyoudouseformattablevaluesanddonotincludethebinarychangesngen.exewillnotoptimizeyournativeimagesforthespecifiedapplication.
Thisshouldbearareoccurrence,however.Becauseyoucannotremovecomponentsinapatch-andpyrodoesvalidateyoudonot-itisnotpracticaltoswitchfromusingidentifierstoformattablevaluesinapatch.OnepracticalpossibilityisifyouwantedtouseadifferentapplicationtooptimizeyournativeimagesandthatapplicationisnotalreadyinstalledwiththeMSItobeupdated.
SeeAlsoNetfxSchema
Page 847
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoNetfxSchema
Page 848
FormatsFileElement(PsExtension)
DescriptionIdentifiestheparentFileasaformatsXMLfileforthereferencedPowerShellsnap-in.
WindowsInstallerreferencesNone
ParentsFile,SnapIn
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
FileId String ReferencetotheformatsFileID.ThisisrequiredwhennestedundertheSnapInelement.
SnapIn String ReferencetothePowerShellsnap-inIDforwhichthisformatsfileisassociated.ThisisrequiredwhennestedundertheFileelement.
RemarksAformatsXMLfilethatdefinesoutputformatsforobjectsonthepipeline.
SeeAlsoPsSchema
Page 849
RequiredVersionAttribute(PsExtension)
DescriptionTheversionofthisextensionrequiredtocompilethedefiningsource.
WindowsInstallerreferencesNone
ParentsWix
SeeAlsoPsSchema
Page 850
AutogenGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.
SeeAlsoPsSchema
Page 851
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoPsSchema
Page 852
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoPsSchema
Page 853
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoPsSchema
Page 854
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoPsSchema
Page 855
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoPsSchema
Page 856
EmbeddedResource(SimpleType)
Description
ValuesshouldbeintheformatResourceName,StringName,whereResourceNameisthenameoftheembeddedresourceinyourassemblysansthe".resources"extension,andStringNameisthenameofthestringresourceintheembeddedresource.
Example:UtilityMshSnapInResources,Description
SeeAlsoPsSchema
Page 857
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoPsSchema
Page 858
Guid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoPsSchema
Page 859
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoPsSchema
Page 860
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoPsSchema
Page 861
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoPsSchema
Page 862
LongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoPsSchema
Page 863
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoPsSchema
Page 864
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoPsSchema
Page 865
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoPsSchema
Page 866
ShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoPsSchema
Page 867
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x","x.x","x.x.x",or"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'\d{1,5}(\.\d{1,5}){0,3}'.
SeeAlsoPsSchema
Page 868
WildCardLongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoPsSchema
Page 869
WildCardShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoPsSchema
Page 870
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoPsSchema
Page 871
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoPsSchema
Page 872
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoPsSchema
Page 873
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoPsSchema
Page 874
SnapInElement(PsExtension)
DescriptionIdentifiestheparentFileasaPowerShellsnap-intoberegisteredonthesystem.
WindowsInstallerreferencesNone
ParentsFile
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
FormatsFile(min:0,max:unbounded)TypesFile(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String TheidentifierforthisPowerShellsnap-in.
Yes
AssemblyName String Thisattributehasbeendeprecated.
CustomSnapInType String Thefulltypenameofaclassthatisusedto
Page 875
registeralistofcmdletsandproviders.
Description String Abriefdescriptionofthesnap-in.
DescriptionIndirect EmbeddedResource Anembeddedresourcethatcontainsabriefdescriptionofthesnap-in.Thisresourcemustbeembeddedinthecurrentsnap-inassembly.
RequiredPowerShellVersion VersionType TherequiredversionofPowerShellthatmustbeinstalledandisassociatedwiththesnap-inregistration.Thedefaultvalueis
Page 876
"1.0".
Vendor String Thenameofthesnap-invendor.
VendorIndirect EmbeddedResource Anembeddedresourcethatcontainsthenameofthesnap-invendor.Thisresourcemustbeembeddedinthecurrentsnap-inassembly.
Version VersionType Theversionofthesnapin.Ifnotspecified,thisistakenfromtheassemblyname.
RemarksPowerShellsnap-insallowdeveloperstoextendthefunctionalityofofthePowerShellengine.AddthiselementtoidentifytheparentFileasaPowerShellsnap-inthatwillgetregisteredonthesystem.
SeeAlsoPsSchema
Page 877
TypesFileElement(PsExtension)
DescriptionIdentifiestheparentFileasatypesXMLfileforthereferencedPowerShellsnap-in.
WindowsInstallerreferencesNone
ParentsFile,SnapIn
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
FileId String ReferencetothetypesFileID.ThisisrequiredwhennestedundertheSnapInelement.
SnapIn String ReferencetothePowerShellsnap-inIDforwhichthistypesfileisassociated.ThisisrequiredwhennestedundertheFileelement.
RemarksAtypesXMLfileusedbytheextensibletypesystem.
SeeAlsoPsSchema
Page 878
AutogenGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.
SeeAlsoSqlSchema
Page 879
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoSqlSchema
Page 880
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoSqlSchema
Page 881
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoSqlSchema
Page 882
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoSqlSchema
Page 883
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoSqlSchema
Page 884
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoSqlSchema
Page 885
Guid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoSqlSchema
Page 886
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoSqlSchema
Page 887
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoSqlSchema
Page 888
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoSqlSchema
Page 889
LongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoSqlSchema
Page 890
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoSqlSchema
Page 891
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoSqlSchema
Page 892
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoSqlSchema
Page 893
ShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoSqlSchema
Page 894
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoSqlSchema
Page 895
WildCardLongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoSqlSchema
Page 896
WildCardShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoSqlSchema
Page 897
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoSqlSchema
Page 898
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoSqlSchema
Page 899
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoSqlSchema
Page 900
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoSqlSchema
Page 901
SqlDatabaseElement(SqlExtension)
DescriptionSQLDatabase
WindowsInstallerreferencesNone
ParentsComponent,Fragment,Module,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
SqlScript(min:0,max:unbounded)SqlString(min:0,max:unbounded)Sequence(min:1,max:1)1. SqlFileSpec(min:0,max:1)2. SqlLogFileSpec(min:0,max:1)
Attributes
Name Type Description Required
Id String Yes
ConfirmOverwrite YesNoType
ContinueOnError YesNoType
CreateOnInstall YesNoType
CreateOnReinstall YesNoType Specifieswhethertocreatethedatabasewhentheassociated
Page 902
componentisreinstalled.SettingCreateOnInstalltoyesdoesnotimplyCreateOnReinstallissettoyes.CreateOnReinstallmustbesetinadditiontoCreateOnInstallforittobecreatedduringbothinstallandreinstall.
CreateOnUninstall YesNoType
Database String Thenameofthedatabase.ThevaluecanbealiteralvalueorderivedfromaPropertyelementusingtheFormattedsyntax.
Yes
DropOnInstall YesNoType
DropOnReinstall YesNoType Specifieswhethertodropthedatabasewhentheassociatedcomponentisreinstalled.SettingDropOnInstalltoyesdoesnotimplyDropOnReinstallissettoyes.DropOnReinstallmustbesetinadditiontoDropOnInstallforittobedroppedduringbothinstallandreinstall.
DropOnUninstall YesNoType
Page 903
Instance String
Server String Yes
User String
RemarksNestingSqlDatabaseunderaComponentelementwillresultinaSqlDatabasebeinginstalledtothemachineasthepackageisinstalled.
NestingSqlDatabaseunderProduct,Fragment,orModuleresultsinadatabase"locator"recordbeingcreatedintheSqlDatabasetable.ThismeansthatthedatabaseitselfisneitherinstallednoruninstalledbytheMSIpackage.ItdoesmakethedatabaseavailableforreferencingfromaSqlStringorSqlScriptrecord.ThisallowsMSItoinstallSqlScriptsorSqlStringstoalreadyexistingdatabasesonthemachine.Theinstallwillfailifthedatabasedoesnotexistinthesecases.
TheUserattributereferencescredentialsspecifiedinaUserelement.IfauserisnotspecifiedthenWindowsAuthenticationwillbeusedbydefaultusingthecredentialsoftheuserperformingtheinstalltoexecutesqlstrings,etc.
SeeAlsoSqlSchema,User
Page 904
SqlFileSpecElement(SqlExtension)
DescriptionFilespecificationforaSqldatabase.
WindowsInstallerreferencesNone
ParentsSqlDatabase
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String IDofthefilespecification. Yes
Filename String Specifiestheoperating-systemfilenameforthedatabasefile.
Yes
GrowthSize String Specifiesthegrowthincrementofthedatabasefile.TheGB,MBandKBand%suffixescanbeusedtospecifygigabytes,megabytes,kilobytesorapercentageofthecurrentfilesizetogrow.Thedefaultismegabytesifnosuffixisspecified.Thedefaultvalueis10%ifGrowthSizeisnotspecified,andtheminimumvalueis64KB.TheGrowthSizesettingforafilecannotexceedthe
Page 905
MaxSizesetting.
MaxSize String Specifiesthemaximumsizetowhichthedatabasefilecangrow.TheGB,MBandKBsuffixescanbeusedtotospecifygigabytes,megabytesorkilobytes.Thedefaultismegabytesifnosuffixisspecified.IfMaxSizeisnotspecified,thefilewillgrowuntilthediskisfull.
Name String Specifiesthelogicalnameforthedatabasefile.
Size String Specifiesthesizeofthedatabasefile.TheGB,MBandKBsuffixescanbeusedtospecifygigabytes,megabytesorkilobytes.Thedefaultismegabytesifnosuffixisspecified.WhenaSizeisnotsuppliedforadatabasefile,SQLServerusesthesizeoftheprimaryfileinthemodeldatabase.
SeeAlsoSqlSchema
Page 906
SqlLogFileSpecElement(SqlExtension)
DescriptionFilespecificationforaSqldatabase.
WindowsInstallerreferencesNone
ParentsSqlDatabase
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Filename String Specifiestheoperating-systemfilenameforthelogfile.
GrowthSize String Specifiesthegrowthincrementofthelogfile.TheGB,MBandKBand%suffixescanbeusedtospecifygigabytes,megabytes,kilobytesorapercentageofthecurrentfilesizetogrow.Thedefaultismegabytesifnosuffixisspecified.Thedefaultvalueis10%ifGrowthSizeisnotspecified,andtheminimumvalueis64KB.TheGrowthSizesettingforafilecannotexceedtheMaxSizesetting.
Page 907
Id String IDofthelogfilespecification.
MaxSize String Specifiesthemaximumsizetowhichthelogfilecangrow.TheGB,MBandKBsuffixescanbeusedtotospecifygigabytes,megabytesorkilobytes.Thedefaultismegabytesifnosuffixisspecified.IfMaxSizeisnotspecified,thefilewillgrowuntilthediskisfull.
Name String Specifiesthelogicalnameforthelogfile.
Size String Specifiesthesizeofthelogfile.TheGB,MBandKBsuffixescanbeusedtospecifygigabytes,megabytesorkilobytes.Thedefaultismegabytesifnosuffixisspecified.WhenaSizeisnotsuppliedforalogfile,SQLServermakesthefile1MB.
SeeAlsoSqlSchema
Page 908
SqlScriptElement(SqlExtension)
DescriptionSQLScript
WindowsInstallerreferencesNone
ParentsComponent,SqlDatabase
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
BinaryKey String ReferencetoBinarystreamthatcontainstheSQLscripttoexecute.
Yes
ContinueOnError YesNoType Continueexecutingscriptsevenifthisonefails.
ExecuteOnInstall YesNoType Specifiestoexecutethescriptwhentheassociatedcomponentisinstalled.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,
Page 909
RollbackOnReinstallandRollbackOnUninstallattributes.
ExecuteOnReinstall YesNoType Specifieswhethertoexecutethescriptwhentheassociatedcomponentisreinstalled.SettingExecuteOnInstalltoyesdoesnotimplyExecuteOnReinstallissettoyes.ExecuteOnReinstallmustbesetinadditiontoExecuteOnInstallforittobeexecutedduringbothinstallandreinstall.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,RollbackOnReinstallandRollbackOnUninstallattributes.
ExecuteOnUninstall YesNoType Specifiestoexecutethescriptwhentheassociatedcomponentisuninstalled.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,RollbackOnReinstallandRollbackOnUninstall
Page 910
attributes.
RollbackOnInstall YesNoType Specifieswhethertoexecutethescriptonrollbackifanattemptismadetoinstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.
RollbackOnReinstall YesNoType Specifieswhethertoexecutethescriptonrollbackifanattemptismadetoreinstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.
RollbackOnUninstall YesNoType Specifieswhethertoexecutethescriptonrollbackifanattemptismadetouninstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstall
Page 911
andExecuteOnUninstallattributes.
Sequence Integer SpecifestheordertoruntheSQLScripts.Itisrecommendedthatrollbackscriptsbescheduledbeforetheircomplementaryexecutionscript.ThisorderisalsorelativeacrosstheSqlStringelement.
SqlDb String requiredwhennotchildofSqlDatabase
User String
SeeAlsoSqlSchema
Page 912
SqlStringElement(SqlExtension)
DescriptionSQLString
WindowsInstallerreferencesNone
ParentsComponent,SqlDatabase
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
ContinueOnError YesNoType Continueexecutingstringsevenifthisonefails.
ExecuteOnInstall YesNoType Specifiestoexecutethestringwhentheassociatedcomponentisinstalled.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,RollbackOnReinstallandRollbackOnUninstallattributes.
Page 913
ExecuteOnReinstall YesNoType Specifieswhethertoexecutethestringwhentheassociatedcomponentisreinstalled.SettingExecuteOnInstalltoyesdoesnotimplyExecuteOnReinstallissettoyes.ExecuteOnReinstallmustbesetinadditiontoExecuteOnInstallforittobeexecutedduringbothinstallandreinstall.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,RollbackOnReinstallandRollbackOnUninstallattributes.
ExecuteOnUninstall YesNoType Specifiestoexecutethestringwhentheassociatedcomponentisuninstalled.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,RollbackOnReinstallandRollbackOnUninstallattributes.
RollbackOnInstall YesNoType Specifieswhethertoexecutethestringonrollbackifanattempt
Page 914
ismadetoinstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.
RollbackOnReinstall YesNoType Specifieswhethertoexecutethestringonrollbackifanattemptismadetoreinstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.
RollbackOnUninstall YesNoType Specifieswhethertoexecutethestringonrollbackifanattemptismadetouninstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.
Sequence Integer Specifestheorderto
Page 915
runtheSQLStrings.Itisrecommendedthatrollbackstringsbescheduledbeforetheircomplementaryexecutionstring.ThisorderisalsorelativeacrosstheSqlScriptelement.
SQL String Yes
SqlDb String
User String
SeeAlsoSqlSchema
Page 916
AutogenGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.
SeeAlsoTagSchema
Page 917
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoTagSchema
Page 918
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoTagSchema
Page 919
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoTagSchema
Page 920
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoTagSchema
Page 921
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoTagSchema
Page 922
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoTagSchema
Page 923
Guid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoTagSchema
Page 924
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoTagSchema
Page 925
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoTagSchema
Page 926
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoTagSchema
Page 927
LongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoTagSchema
Page 928
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoTagSchema
Page 929
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoTagSchema
Page 930
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoTagSchema
Page 931
ShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoTagSchema
Page 932
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoTagSchema
Page 933
WildCardLongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoTagSchema
Page 934
WildCardShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoTagSchema
Page 935
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoTagSchema
Page 936
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoTagSchema
Page 937
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoTagSchema
Page 938
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoTagSchema
Page 939
TagElement(TagExtension)
DescriptionThisextensionimplementstheISO/IEC19770-2:2015specification.ASWIDtagfilewillbegeneratedaninsertedintotheProductorBundle.
WindowsInstallerreferencesNone
ParentsBundle,Product
InnerTextNone
ChildrenNone
Attributes
Name Type Description
Feature String OptionalattributetoexplicitlysettheFeaturewhendefiningthesoftwareidtaginaProduct.Bydefaultthesoftwareidtagwillalwaysbeinstalledbyatop-levelhiddenfeature.Itisrecommendedtonotsetthisattribute.
InstallDirectory String AreferencetoanexistingDirectory/@Idwherethesoftwareisinstalled.TheSWIDtagfilewillbeinstalledina"swidtag"folderunderthatdirectoryasperthespecification.ThisattributeisrequiredonaTagelementfoundunderaProductelement.
InstallPath String Thepathwherethesoftwareisinstalled.TheSWIDtagfilewillbeinstalledina"swidtag"
Page 940
folder.ThisisaformattedattributesoitispossibletouseVariablesastheInstallPathbysettingthevalueto,forexample,"[ProgramFilesFolder]CompanyName\ProductName".ThisattributeisrequiredonaTagelementfoundunderaBundleelement.
Licensed String Thisattributehasbeendeprecated.
Name String Nametouseinthefilenameforthesoftwareidtag.BydefaultthefilenameusestheBundle/@NameorProduct/@Name.Ifthebundlenameorproductnamecontainsinvalidfilenamecharacterssuchas":"or"?",usethisattributetoprovideavalidfilename.
Regid String Theregidforthesoftwaremanufacturer.AregidisaURIsimplifiedforthecommoncase.Namely,iftheschemeis"http://",itcanberemoved.Additionally,thedomainshouldbeminimizedasmuchaspossible(forexample,remove"www."prefixifunnecessary).
Forexample,theWiXtoolsetregidis"wixtoolset.org".
Type String Thisattributehasbeendeprecated.
Win64 YesNoType Thisattributefacilitatestheinstallationofpackagesthatinstallboth32-bitand64-bitfiles.Setthisattributeto'no'toindicatethesoftwareidtagisinstalledtoa32-bitlocation(suchas"ProgramFilesFolder")or'yes'whenthetagisinstalledtoa64-bitlocation(suchas"ProgramFiles64Folder").Thedefaultdefaultvalueisbasedontheplatformsetbythe-archswitchtocandle.exeortheInstallerPlatformpropertyina.wixprojMSBuildproject:Forx86andARM,thedefaultvalueis'no'.Forx64andIA64,the
Page 941
defaultvalueis'yes'.
ThisattributeisonlyallowedonaTagelementfoundunderaProductelement.
SeeAlsoTagSchema
Page 942
TagRefElement(TagExtension)
DescriptionAllowsanISO/IEC19770-2:2015SWIDtagfiletobereferencedinaPatch.
WindowsInstallerreferencesNone
ParentsPatchFamily
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Regid String Theregidforthesoftwaremanufacturer.AregidisaURIsimplifiedforthecommoncase.Namely,iftheschemeis"http://",itcanberemoved.Additionally,thedomainshouldbeminimizedasmuchaspossible(forexample,remove"www."prefixifunnecessary).
Forexample,theWiXtoolsetregidis"wixtoolset.org".
Yes
SeeAlsoTagSchema
Page 943
BillboardElement(ThmutilExtension)
DescriptionDefinesacontrolthatrotatesthroughasetofimagesonaspecifiedinterval.
WindowsInstallerreferencesNone
ParentsPage,Theme
InnerTextNone
ChildrenSequence(min:1,max:1)1. Image(min:1,max:1)
Attributes
Name Type Description Required
Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindowminusthevalue.
Yes
HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.
HideWhenDisabled YesNoType Specifieswhetherthecontrolshould
Page 944
behiddenwhendisabled.
Interval PositiveInteger .
Loop YesNoType Specifieswhetherthebillboardshouldloopthroughtheimagesinfinitely.
Name String Optionalnameforthecontrol.
TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.
Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.
Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.
Yes
X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.
Yes
Page 945
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
Yes
SeeAlsoThmutilSchema
Page 946
ButtonElement(ThmutilExtension)
DescriptionDefinesabutton.
WindowsInstallerreferencesNone
ParentsPage,Theme
InnerText(xs:string)Texttodisplayinthebutton.
ChildrenNone
Attributes
Name Type Description Required
FontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontforthecontrol.
Yes
Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindowminusthevalue.
Yes
HexStyle HexBinary Hexadecimalwindowstyle
Page 947
forthecontrol.
HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.
ImageFile String Relativepathtoanimagefiletodefineangraphicbutton.Theimagemustbe3xtheheighttorepresentthebuttonin3states:unselected,hover,selected.MutuallyexclusivewithImageResourceandSourceXandSourceYattributes.
ImageResource String Identifierthatreferencesanimageresourceinthemoduleforthecontrol.Theimagemustbe3xtheheighttorepresentthebuttonin3states:unselected,hover,selected.
Page 948
MutuallyexclusivewithImageFileandSourceXandSourceYattributes.
Name String Optionalnameforthecontrol.
TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.
Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.
Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.
Yes
X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidth
Yes
Page 949
ofthecontrol.
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
Yes
SeeAlsoThmutilSchema
Page 950
CheckboxElement(ThmutilExtension)
DescriptionDefinesacheckbox.
WindowsInstallerreferencesNone
ParentsPage,Theme
InnerText(xs:string)Texttodisplaybesidethecheckbox.
ChildrenNone
Attributes
Name Type Description Required
FontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontforthecontrol.
Yes
Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindow
Yes
Page 951
minusthevalue.
HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.
HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.
Name String Optionalnameforthecontrol.
TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.
Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.
Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthe
Yes
Page 952
value.
X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.
Yes
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
Yes
SeeAlsoThmutilSchema
Page 953
ColumnElement(ThmutilExtension)
DescriptionAcolumnofalist.
WindowsInstallerreferencesNone
ParentsListView
InnerText(xs:string)Textforthecolumnheader.
ChildrenNone
Attributes
Name Type Description Required
Expands YesNoType Whetherornotthiscolumncangrowtofillavailablewidthofthelistview.Morethanonecolumncanbemarkedwithyes-allexpandablecolumnswillshareavailableextraspace.ThisisespeciallyusefuliftheWindow/@AutoResizeisyes.
Width Int Widthofthecolumn.
SeeAlsoThmutilSchema
Page 954
ComboboxElement(ThmutilExtension)
DescriptionDefinesacombobox.
WindowsInstallerreferencesNone
ParentsPage,Theme
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
FontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontforthecontrol.
Yes
Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindow
Yes
Page 955
minusthevalue.
HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.
HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.
Name String Optionalnameforthecontrol.
TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.
Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.
Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthe
Yes
Page 956
value.
X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.
Yes
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
Yes
SeeAlsoThmutilSchema
Page 957
EditboxElement(ThmutilExtension)
DescriptionDefinesaneditbox.
WindowsInstallerreferencesNone
ParentsPage,Theme
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
FileSystemAutoComplete YesNoType Specifieswhethertheeditboxshouldauto-completewithfilesystempaths.
FontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontforthecontrol.
Yes
Height Int Heightofthe Yes
Page 958
control.Non-positivevaluesextendthecontroltothebottomofthewindowminusthevalue.
HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.
HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.
Name String Optionalnameforthecontrol.
TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.
Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.
Width Int Widthofthe Yes
Page 959
control.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.
X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.
Yes
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
Yes
Page 960
SeeAlsoThmutilSchema
Page 961
FontElement(ThmutilExtension)
DescriptionDefinesafontincludingthesizeandcolor.
WindowsInstallerreferencesNone
ParentsTheme
InnerText(xs:string)Nameofthefontface.
ChildrenNone
Attributes
Name Type Description Required
Background HexBinary HexadecimalvaluerepresentingBGRbackgroundcolorofthefont."ffffff"iswhite,"ff0000"ispureblue,"00ff00"ispuregreen,"0000ff"ispureredand"000000"isblack.Ifthisvalueisabsentthebackgroundwillbetransparent.
Foreground HexBinary HexadecimalvaluerepresentingBGRforegroundcolorofthefont."ffffff"iswhite,"ff0000"is
Page 962
pureblue,"00ff00"ispuregreen,"0000ff"ispureredand"000000"isblack.Ifthisvalueisabsenttheforegroundwillbetransparent.
Height Int Fontsize.Usenegativenumberstospecifythefontinpixels.
Id NonNegativeInteger Numericidentifierforthefont.DuetolimitationsinthmutilthefirstFontmuststartwith"0"andeachsubsequentFontmustincrementtheIdby1.FailuretoensuretheFontidentifiersfollowthisstrictorderingwillcreateunexpectedbehaviororcrashes.
Underline YesNoType Specifieswhetherthefontisunderlined.
Weight NonNegativeInteger Fontweight.
SeeAlsoThmutilSchema
Page 963
HyperlinkElement(ThmutilExtension)
DescriptionDefinesahyperlink.
WindowsInstallerreferencesNone
ParentsPage,Theme
InnerText(xs:string)Texttodisplayasthelink.
ChildrenNone
Attributes
Name Type Description Required
FontId NonNegativeInteger NumericidentifiertotheFontelementthatservesastheunselectedfont.
Yes
Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindow
Yes
Page 964
minusthevalue.
HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.
HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.
HoverFontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontwhenthecontrolishoveredover.
Yes
Name String Optionalnameforthecontrol.
SelectedFontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontwhenthecontrolisselected.
Yes
TabStop YesNoType Specifieswhetherthecontrolispartofthetab
Page 965
sequenceofcontrols.
Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.
Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.
Yes
X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.
Yes
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negative
Yes
Page 966
valuesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
SeeAlsoThmutilSchema
Page 967
HypertextElement(ThmutilExtension)
DescriptionDefinesatextblockwithsupportforHTML<a>tags.
WindowsInstallerreferencesNone
ParentsPage,Theme
InnerText(xs:string)Texttodisplayasthelink.UseHTML<ahref="URL">tocreatealink.
ChildrenNone
Attributes
Name Type Description Required
FontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontforthecontrol.
Yes
Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthe
Yes
Page 968
windowminusthevalue.
HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.
HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.
Name String Optionalnameforthecontrol.
TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.
Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.
Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindow
Yes
Page 969
minusthevalue.
X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.
Yes
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
Yes
SeeAlsoThmutilSchema
Page 970
ImageElement(ThmutilExtension)
DescriptionDefinesanimage.
WindowsInstallerreferencesNone
ParentsBillboard,ImageList,Page,Theme
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindowminusthevalue.
Yes
HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.
HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.
ImageFile String Relativepathtoanimagefile.MutuallyexclusivewithImageResourceandSourceXandSourceY
Page 971
attributes.
ImageResource String Identifierthatreferencesanimageresourceinthemodule.MutuallyexclusivewithImageFileandSourceXandSourceYattributes.
Name String Optionalnameforthecontrol.
TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.
Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.
Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.
Yes
X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.
Yes
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negative
Yes
Page 972
valuesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
SeeAlsoThmutilSchema
Page 973
ImageListElement(ThmutilExtension)
DescriptionListofimageswhichcanbesharedbetweenmultiplecontrols.
WindowsInstallerreferencesNone
ParentsTheme
InnerTextNone
ChildrenChoiceofelements(min:1,max:unbounded)
Image(min:1,max:unbounded)
Attributes
Name Type Description Required
Name String NameoftheImageList,tobereferencedbyothercontrols.
SeeAlsoThmutilSchema
Page 974
ListViewElement(ThmutilExtension)
DescriptionDefinesalistview.
WindowsInstallerreferencesNone
ParentsPage,Theme
InnerTextNone
ChildrenChoiceofelements(min:1,max:unbounded)
Column(min:1,max:unbounded)
Attributes
Name Type Description
FontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthedefaultfontfortheListView.
Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindowminusthevalue.
HexExtendedStyle HexBinary Hexadecimalextendedwindowstyle.
HexStyle HexBinary Hexadecimalwindow
Page 975
styleforthecontrol.
HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.
ImageList String ThenameoftheImageListtoassigntothislistviewwithtypeLVSIL_NORMAL.
ImageListGroupHeader String ThenameoftheImageListtoassigntothislistviewwithtypeLVSIL_GROUPHEADER.
ImageListSmall String ThenameoftheImageListtoassigntothislistviewwithtypeLVSIL_SMALL.
ImageListState String ThenameoftheImageListtoassigntothislistviewwithtypeLVSIL_STATE.
Name String Optionalnameforthecontrol.
TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.
Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.
Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.
X Int Xcoordinateforthe
Page 976
controlfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
SeeAlsoThmutilSchema
Page 977
PageElement(ThmutilExtension)
DescriptionNamedsetofcontrolsthatcanbeshownandhiddencollectively.
WindowsInstallerreferencesNone
ParentsTheme
InnerTextNone
ChildrenChoiceofelements(min:1,max:unbounded)
Billboard(min:1,max:unbounded)Button(min:1,max:unbounded)Checkbox(min:1,max:unbounded)Combobox(min:1,max:unbounded)Editbox(min:1,max:unbounded)Hyperlink(min:1,max:unbounded)Hypertext(min:1,max:unbounded)Image(min:1,max:unbounded)ListView(min:1,max:unbounded)Progressbar(min:1,max:unbounded)Richedit(min:1,max:unbounded)Static(min:1,max:unbounded)Tab(min:1,max:unbounded)Text(min:1,max:unbounded)TreeView(min:1,max:unbounded)
Attributes
Name Type Description Required
Page 978
Name String Optionalnameforthepage.
SeeAlsoThmutilSchema
Page 979
ProgressbarElement(ThmutilExtension)
DescriptionDefinesaprogressbar.
WindowsInstallerreferencesNone
ParentsPage,Theme
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindowminusthevalue.
Yes
HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.
HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.
ImageFile String Relativepathtoanimagefileforthecontrol.Theimage
Page 980
mustbe4pixelswide:leftpixelistheleftsideofprogressbar,leftmiddlepixelisprogressused,rightmiddlepixelisprogressunused,rightpixelisrightsideofprogressbar.MutuallyexclusivewithImageResourceandSourceXandSourceYattributes.
ImageResource String Identifierthatreferencesanimageresourceinthemoduleforthecontrol.Theimagemustbe4pixelswide:leftpixelistheleftsideofprogressbar,leftmiddlepixelisprogressused,rightmiddlepixelisprogressunused,rightpixelisrightsideofprogressbar.MutuallyexclusivewithImageFileandSourceXandSourceYattributes.
Name String Optionalnameforthecontrol.
TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.
Page 981
Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.
Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.
Yes
X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.
Yes
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
Yes
SeeAlsoThmutilSchema
Page 982
RicheditElement(ThmutilExtension)
DescriptionDefinesaricheditcontrol.
WindowsInstallerreferencesNone
ParentsPage,Theme
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
FontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontforthecontrol.
Yes
Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindow
Yes
Page 983
minusthevalue.
HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.
HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.
Name String Optionalnameforthecontrol.
TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.
Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.
Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthe
Yes
Page 984
value.
X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.
Yes
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
Yes
SeeAlsoThmutilSchema
Page 985
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoThmutilSchema
Page 986
StaticElement(ThmutilExtension)
DescriptionDefinesastraightline.
WindowsInstallerreferencesNone
ParentsPage,Theme
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindowminusthevalue.
Yes
HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.
HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.
Name String Optionalnameforthecontrol.
TabStop YesNoType Specifieswhetherthecontrolispartofthe
Page 987
tabsequenceofcontrols.
Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.
Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.
Yes
X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.
Yes
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
Yes
SeeAlsoThmutilSchema
Page 988
TabElement(ThmutilExtension)
DescriptionDefinesatab.
WindowsInstallerreferencesNone
ParentsPage,Theme
InnerText(xs:string)Captionofthetab.
ChildrenNone
AttributesNone
SeeAlsoThmutilSchema
Page 989
TextElement(ThmutilExtension)
DescriptionDefinestext.
WindowsInstallerreferencesNone
ParentsPage,Theme
InnerText(xs:string)Texttodisplay.
ChildrenNone
Attributes
Name Type Description Required
Center YesNoType Specifieswhetherthetextshouldbecenteredhorizontallyinthewidthofthecontrol.Defaultis"no".
DisablePrefix YesNoType Bydefaultampersands(&)inthetextwillunderlinethenextcharacterandtreatitasanaccelerator
Page 990
key.Setthisattributeto"yes"todisablethatbehavior.Defaultis"no".
FontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontforthecontrol.
Yes
Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindowminusthevalue.
Yes
HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.
HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.
Name String Optionalnameforthe
Page 991
control.
TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.
Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.
Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.
Yes
X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.
Yes
Page 992
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
Yes
SeeAlsoThmutilSchema
Page 993
ThemeElement(ThmutilExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsNone
InnerTextNone
ChildrenChoiceofelements(min:1,max:unbounded)
Font(min:1,max:unbounded)ImageList(min:1,max:unbounded)Page(min:1,max:unbounded)Window(min:1,max:unbounded)Choiceofelements(min:1,max:unbounded)
Billboard(min:1,max:unbounded)Button(min:1,max:unbounded)Checkbox(min:1,max:unbounded)Combobox(min:1,max:unbounded)Editbox(min:1,max:unbounded)Hyperlink(min:1,max:unbounded)Hypertext(min:1,max:unbounded)Image(min:1,max:unbounded)ListView(min:1,max:unbounded)Progressbar(min:1,max:unbounded)Richedit(min:1,max:unbounded)Static(min:1,max:unbounded)Tab(min:1,max:unbounded)
Page 994
Text(min:1,max:unbounded)TreeView(min:1,max:unbounded)
Attributes
Name Type Description Required
ImageFile String Relativepathtoanimagefilethatcanserveasasinglesourceforimagesintherestofthetheme.ThisimageisreferencedbycontrolsusingtheSourceXandSourceYattributes.
SeeAlsoThmutilSchema
Page 995
TreeViewElement(ThmutilExtension)
DescriptionDefinesatreeview.
WindowsInstallerreferencesNone
ParentsPage,Theme
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
AlwaysShowSelect Specifieswhethertherowalwaysappearsselectedevenwhenthetreeviewhaslostfocus.
asButtons Specifieswhetherthetreeviewwillshowbuttons.
EnableDragDrop Specifieswhetherdraganddropisenabledforthetreeview.
FullRowSelect Specifieswhetheranentirerowisselected
Page 996
forthetreeview.
HasLines Specifieswhetherlinesappearforalltreeviewitems.
Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindowminusthevalue.
Yes
HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.
HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.
LinesAtRoot Specifieswhethertherootnodeshavelinesbesidethem.
Name String Optionalnameforthecontrol.
TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.
Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.
Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.
Yes
Page 997
X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.
Yes
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
Yes
SeeAlsoThmutilSchema
Page 998
WindowElement(ThmutilExtension)
DescriptionDefinestheoveralllookofthemainwindow.
WindowsInstallerreferencesNone
ParentsTheme
InnerText(xs:string)Captionforthewindow.
ChildrenNone
Attributes
Name Type Description Required
AutoResize YesNoType SpecifieswhethertheThmUtildefaultwindowprocshouldprocessWM_SIZEandWM_SIZINGevents.
FontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthedefaultfontforthewindow.
Height PositiveInteger Heightofthewindow.
HexStyle HexBinary Hexadecimal
Page 999
windowstyle.Ifthisisnotspecifiedthedefaultvalueis:WS_OVERLAPPED|WS_VISIBLE|WS_MINIMIZEBOX|WS_SYSMENU.IfSourceXandSourceYaregreaterthan0,thenWS_OVERLAPPEDisreplacedwithWS_POPUP.
IconFile String Relativepathtoaniconfileforthewindow.MutuallyexclusivewithIconResourceandSourceXandSourceYattributes.
IconResource String Identifierthatreferencesiconresourceinthemoduleforthewindow.MutuallyexclusivewithIconFileandSourceXandSourceYattributes.
MinimumHeight PositiveInteger Minimumheightofthewindow.OnlyfunctionsifAutoResizeisenabled.
MinimumWidth PositiveInteger Minimumwidthofthewindow.Only
Page 1000
functionsifAutoResizeisenabled.
SourceX NonNegativeInteger XoffsetofthewindowbackgroundintheTheme/@ImageFile.MutuallyexclusivewithIconFileandIconResource.
SourceY NonNegativeInteger YoffsetofthewindowbackgroundintheTheme/@ImageFile.MutuallyexclusivewithIconFileandIconResource.
Width PositiveInteger Widthofthewindow.
SeeAlsoThmutilSchema
Page 1001
CloseApplicationElement(UtilExtension)
DescriptionClosesapplicationsorschedulesarebootifapplicationcannotbeclosed.
WindowsInstallerreferencesNone
ParentsFragment,Module,Product
InnerText(xs:string)Conditionthatdeterminesiftheapplicationshouldbeclosed.Mustbeblankorevaluatetotruefortheapplicationtobescheduledforclosing.
ChildrenNone
Attributes
Name Type Description
CloseMessage YesNoType Optionallysendsaclosemessagetotheapplication.Defaultisno.
Description String Descriptiontoshowifapplicationisrunningandneedstobeclosed.
ElevatedCloseMessage YesNoType Optionallysendsaclosemessagetotheapplicationfromdefferedactionwithoutimpersonation.Defaultisno.
Page 1002
ElevatedEndSessionMessage YesNoType SendsWM_QUERYENDSESSIONthenWM_ENDSESSIONmessagestotheapplicationfromadefferedactionwithoutimpersonation.Defaultis"no".
EndSessionMessage YesNoType SendsWM_QUERYENDSESSIONthenWM_ENDSESSIONmessagestotheapplication.Defaultis"no".
Id String Identifierforthecloseapplication(primarykey).IftheIdisnotspecified,onewillbegenerated.
PromptToContinue YesNoType Whenthisattributeissetto"yes",theuserwillbepromptedwhentheapplicationisstillrunning.TheDescriptionattributemustcontainthemessagetodisplayintheprompt.Thepromptoccursbeforeexecutinganyoftheotheroptionsandgivestheoptionsto"Abort","Retry",or"Ignore".Abortwillcanceltheinstall.Retrywillattemptthecheckagainandiftheapplicationisstillrunning,promptagain."Ignore"willcontinueandexecuteanyotheroptionssetontheCloseApplicationelement.Thedefaultis"no".
Page 1003
Property String Propertytobesetifapplicationisstillrunning.UsefulforlaunchconditionsortoconditionalizecustomUItoaskusertoshutdownapps.
RebootPrompt YesNoType Optionallypromptsforrebootifapplicationisstillrunning.Thedefaultis"yes".TheTerminateProcessattributemustbe"no"ornotspecifiedifthisattributeis"yes".
Sequence Integer Optionallyorderstheapplicationstobeclosed.
Target String Nameoftheexectuabletobeclosed.Thisshouldonlybethefilename.
TerminateProcess Integer Attemptstoterminatesprocessandreturnthespecifiedexitcodeifapplicationisstillrunningaftersendinganyrequestedcloseand/orendsessionmessages.Ifthisattributeisspecified,theRebootPromptattributemustbe"no".Thedefaultis"no".
Timeout Integer Optionaltimeinsecondstowaitfortheapplicationtoexitafterthecloseand/orendsessionmessages.Iftheapplicationisstillrunningafterthetimeout
Page 1004
thentheRebootPromptorTerminateProcessattributeswillbeconsidered.Thedefaultvalueis"5"seconds.
SeeAlsoUtilSchema
Page 1005
ComponentSearchElement(UtilExtension)
DescriptionDescribesacomponentsearch.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
After String Idofthesearchthatthisoneshouldcomeafter.
Condition String Conditionforevaluatingthesearch.Ifthisevaluatestofalse,thesearchisnotexecutedatall.
Guid String Componenttosearchfor. Yes
Id String Idofthesearchfororderinganddependency.
ProductCode String OptionalProductCodetodetermineifthecomponentisinstalled.
Page 1006
Result Enumeration Ratherthansavingthematchingkeypathintothevariable,aComponentSearchcansaveanattributeofthecomponentinstead.Thisattribute'svaluemustbeoneofthefollowing:directory
Savestheparentdirectoryforthecomponent'sfilekeypath;othertypesofkeypatharereturnedunmodified.
stateSavesthestateofthecomponent:absent(2),locallyinstalled(3),willrunfromsource(4),orinstalledindefaultlocation(eitherlocalorfromsource)(5)
keyPathSavesthekeypathofthecomponentifinstalled.Thisisthedefault.
Variable String Nameofthevariableinwhichtoplacetheresultofthesearch.
Yes
SeeAlsoUtilSchema
Page 1007
ComponentSearchRefElement(UtilExtension)
DescriptionReferencesaComponentSearch.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
SeeAlsoUtilSchema
Page 1008
DirectorySearchElement(UtilExtension)
DescriptionDescribesadirectorysearch.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
After String Idofthesearchthatthisoneshouldcomeafter.
Condition String Conditionforevaluatingthesearch.Ifthisevaluatestofalse,thesearchisnotexecutedatall.
Id String Idofthesearchfororderinganddependency.
Path String Directorypathtosearchfor.
Result NMTOKEN Ratherthansavingthematchingdirectorypathintothevariable,aDirectorySearchcansaveanattributeofthematchingdirectoryinstead.Pattern:
Page 1009
'exists'.
Variable String Nameofthevariableinwhichtoplacetheresultofthesearch.
Yes
SeeAlsoUtilSchema
Page 1010
DirectorySearchRefElement(UtilExtension)
DescriptionReferencesaDirectorySearch.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
SeeAlsoUtilSchema
Page 1011
EventManifestElement(UtilExtension)
DescriptionUsedtoinstallEventManifests.
WindowsInstallerreferencesNone
ParentsFile
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
MessageFile String Themessagefile(includingpath)ofalltheprovidersintheeventmanifest.Oftenthemessagefilepathcannotbedetermineduntilsetuptime.PutyourMessageFilehereandthemessageFileNameattributeofthealltheprovidersinthemanifestwillbeupdatedwiththepathbeforeitisregistered.
ParameterFile String Theparameterfile(includingpath)ofalltheprovidersintheeventmanifest.Oftentheparameterfilepathcannotbedetermineduntilsetuptime.Put
Page 1012
yourParameterFilehereandtheparameterFileNameattributeofthealltheprovidersinthemanifestwillbeupdatedwiththepathbeforeitisregistered.
ResourceFile String Theresourcefile(includingpath)ofalltheprovidersintheeventmanifest.Oftentheresourcefilepathcannotbedetermineduntilsetuptime.PutyourResourceFilehereandtheresourceFileNameattributeofthealltheprovidersinthemanifestwillbeupdatedwiththepathbeforeitisregistered.
SeeAlsoUtilSchema
Page 1013
EventSourceElement(UtilExtension)
DescriptionCreatesaneventsource.
WindowsInstallerreferencesNone
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description
CategoryCount Integer ThenumberofcategoriesinCategoryMessageFile.CategoryMessageFilemustbespecifiedtoo.
CategoryMessageFile String Nameofthecategorymessagefile.CategoryCountmustbespecifiedtoo.Notethatthisisaformattedfield,soyoucanuse[#fileId]syntaxtorefertoafilebeinginstalled.ItisalsowrittenasaREG_EXPAND_SZstring,soyoucanuse%environment_variable%syntaxtorefertoafilealreadypresentontheuser'smachine.
Page 1014
EventMessageFile String Nameoftheeventmessagefile.Notethatthisisaformattedfield,soyoucanuse[#fileId]syntaxtotoafilebeinginstalled.ItisalsowrittenasaREG_EXPAND_SZstring,soyoucanuse%environment_variable%syntaxtorefertoafilealreadypresentontheuser'smachine.
KeyPath YesNoType MarkstheEventSourceregistryasthekeypathofthecomponentitbelongsto.
Log String Nameoftheeventsource'slog.
Name String Nameoftheeventsource.
ParameterMessageFile String Nameoftheparametermessagefile.Notethatthisisaformattedfield,soyoucanuse[#fileId]syntaxtorefertoafilebeinginstalled.ItisalsowrittenasaREG_EXPAND_SZstring,soyoucanuse%environment_variable%syntaxtorefertoafilealreadypresentontheuser'smachine.
SupportsErrors YesNoType EquivalenttoEVENTLOG_ERROR_TYPE.
SupportsFailureAudits YesNoType EquivalenttoEVENTLOG_AUDIT_FAILURE.
SupportsInformationals YesNoType EquivalenttoEVENTLOG_INFORMATION_TYPE.
SupportsSuccessAudits YesNoType EquivalenttoEVENTLOG_AUDIT_SUCCESS.
SupportsWarnings YesNoType EquivalenttoEVENTLOG_WARNING_TYPE.
Page 1015
SeeAlsoUtilSchema
Page 1016
FileSearchElement(UtilExtension)
DescriptionDescribesafilesearch.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
After String Idofthesearchthatthisoneshouldcomeafter.
Condition String Conditionforevaluatingthesearch.Ifthisevaluatestofalse,thesearchisnotexecutedatall.
Id String Idofthesearchfororderinganddependency.
Path String Filepathtosearchfor.
Result Enumeration Ratherthansavingthematchingfilepathintothevariable,aFileSearchcansaveanattributeofthematchingfileinstead.Thisattribute'svaluemustbeone
Page 1017
ofthefollowing:exists
Savestrueifamatchingfileisfound;falseotherwise.
versionSavestheversioninformationforfilesthathaveit(.exe,.dll);zero-version(0.0.0.0)otherwise.
Variable String Nameofthevariableinwhichtoplacetheresultofthesearch.
Yes
SeeAlsoUtilSchema
Page 1018
FileSearchRefElement(UtilExtension)
DescriptionReferencesaFileSearch.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
SeeAlsoUtilSchema
Page 1019
FileShareElement(UtilExtension)
DescriptionCreatesafileshareoutofthecomponent'sdirectory.
WindowsInstallerreferencesNone
ParentsComponent
InnerTextNone
ChildrenSequence(min:1,max:1)1. FileSharePermission(min:1,max:unbounded):ACLpermission
Attributes
Name Type Description Required
Id String Identifierforthefileshare(primarykey).
Yes
Description String Descriptionofthefileshare.
Name String Nameofthefileshare. Yes
SeeAlsoUtilSchema
Page 1020
FileSharePermissionElement(UtilExtension)
DescriptionSetsACLsonaFileShare.ThiselementhasnoIdattribute.Thetableandkeyaretakenfromtheparentelement.
WindowsInstallerreferencesNone
ParentsFileShare
InnerTextNone
ChildrenNone
Attributes
Name Type Description
ChangePermission YesNoType
CreateChild YesNoType Foradirectory,therighttocreateasubdirectory.Onlyvalidundera'CreateFolder'parent.
CreateFile YesNoType Foradirectory,therighttocreateafileinthedirectory.Onlyvalidundera'CreateFolder'parent.
Delete YesNoType
DeleteChild YesNoType Foradirectory,therighttodeleteadirectoryandallthefilesitcontains,includingread-onlyfiles.Onlyvalidundera'CreateFolder'
Page 1021
parent.
GenericAll YesNoType
GenericExecute YesNoType
GenericRead YesNoType specifyingthiswillfailtograntreadaccess
GenericWrite YesNoType
Read YesNoType
ReadAttributes YesNoType
ReadExtendedAttributes YesNoType
ReadPermission YesNoType
Synchronize YesNoType
TakeOwnership YesNoType
Traverse YesNoType Foradirectory,therighttotraversethedirectory.Bydefault,usersareassignedtheBYPASS_TRAVERSE_CHECKINGprivilege,whichignorestheFILE_TRAVERSEaccessright.Onlyvalidundera'CreateFolder'parent.
User String
WriteAttributes YesNoType
WriteExtendedAttributes YesNoType
SeeAlsoUtilSchema
Page 1022
GroupElement(UtilExtension)
DescriptionFindsusergroupsonthelocalmachineorspecifiedActiveDirectorydomain.ThelocalmachinewillbesearchedforthegroupfirstthenfallbacktolookinginActiveDirectory.Thiselementisnotcapableofcreatingnewgroupsbutcanbeusedtoaddneworexistinguserstoanexistinggroup.
WindowsInstallerreferencesNone
ParentsFragment,Module,Product
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Uniqueidentifierinyourinstallationpackageforthisgroup.
Yes
Domain String AnoptionalFormattedstringthatspecifiesthedomainforthegroup.
Name String AFormattedstringthatcontainsthenameofthegrouptobefound.
Yes
SeeAlsoUtilSchema
Page 1023
GroupRefElement(UtilExtension)
DescriptionUsedtojoinausertoagroup
WindowsInstallerreferencesNone
ParentsUser
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
SeeAlsoUtilSchema
Page 1024
InternetShortcutElement(UtilExtension)
DescriptionCreatesashortcuttoaURL.
WindowsInstallerreferencesNone
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String UniqueidentifierinyourinstallationpackageforthisInternetshortcut.
Yes
Directory String IdentifierreferencetoDirectoryelementwhereshortcutistobecreated.Thisattribute'svaluedefaultstotheparentComponentdirectory.
IconFile String Iconfilethatshouldbedisplayed.Notethatthisisaformattedfield,soyoucanuse[#fileId]syntaxtorefertoafilebeinginstalled(usingthefile:protocol).
Page 1025
IconIndex Integer Indexoftheiconbeingreferenced
Name String Thenameoftheshortcutfile,whichisvisibletotheuser.(The.lnkextensionisaddedautomaticallyandbydefault,isnotshowntotheuser.)
Yes
Target String URLthatshouldbeopenedwhentheuserselectstheshortcut.WindowsopenstheURLintheappropriatehandlerfortheprotocolspecifiedintheURL.Notethatthisisaformattedfield,soyoucanuse[#fileId]syntaxtorefertoafilebeinginstalled(usingthefile:protocol).
Yes
Type Enumeration Whichtypeofshortcutshouldbecreated.Thisattribute'svaluemustbeoneofthefollowing:url
Creates.urlfilesusingIUniformResourceLocatorW.
linkCreates.lnkfilesusingIShellLinkW(default).
HowTosandExamplesHowTo:Createashortcuttoawebpage
SeeAlsoUtilSchema
Page 1026
PerfCounterElement(UtilExtension)
DescriptionThiselementhasbeendeprecated;pleaseusethePerformanceCounterelementinstead.
WindowsInstallerreferencesNone
ParentsFile
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Name String
SeeAlsoUtilSchema
Page 1027
PerfCounterManifestElement(UtilExtension)
DescriptionUsedtoinstallPerfmonCounterManifests.NotethatthisfunctionalitycannotbeusedwithmajorupgradesthatarescheduledaftertheInstallExecute,InstallExecuteAgain,orInstallFinalizeactions.Formoreinformationonmajorupgradescheduling,seeRemoveExistingProductsAction.
WindowsInstallerreferencesNone
ParentsFile
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
ResourceFileDirectory String Thedirectorythatholdstheresourcefileoftheprovidersintheperfmoncountermanifest.Oftentheresourcefilepathcannotbedetermineduntilsetuptime.Putthedirectoryhereandduringperfmonmanifestregistrtionthe
Page 1028
pathwillbeupdatedintheregistry.Ifnotspecified,Perfmonwilllookfortheresourcefileinthesamedirectoryoftheperfmoncountermanifestfile.
SeeAlsoUtilSchema
Page 1029
PerformanceCategoryElement(UtilExtension)
DescriptionUsedtocreateperformancecategoriesandconfigureperformancecounters.
WindowsInstallerreferencesNone
ParentsComponent
InnerTextNone
ChildrenSequence(min:1,max:1)1. PerformanceCounter(min:0,max:unbounded)
Attributes
Name Type Description
Close String FunctionentrypointintotheLibraryDLLcalledwhenclosingtheperformancecounter.defaultis"ClosePerformanceData"whichshouldbeusedforallmanagedcodeperformancecounters.
Collect String FunctionentrypointintotheLibraryDLLcalledwhencollectingdatafromtheperformancecounter.
Page 1030
Thedefaultis"CollectPerformanceData"whichshouldbeusedforallmanagedcodeperformancecounters.
DefaultLanguage PerformanceCounterLanguageType Defaultlanguagefortheperformancecategoryandcontainedcounters'namesandhelptext.
Help String Optionalhelptextfortheperformancecountercategory.
Id String Uniqueidentifierinyourinstallationpackageforthisperformancecountercategory.
Library String DLLthatcontainstheperformancecounter.defaultis"netfxperf.dll"whichshouldbeusedforallmanagedcodeperformancecounters.
MultiInstance YesNoType Flagthatspecifieswhethertheperformancecountercategoryismultiorsingleinstanced.Defaultissingleinstance.
Name String Namefortheperformancecountercategory.IfthisattributeisnotprovidedtheIdattributeisusedasthenameoftheperformancecountercategory.
Open String Functionentrypointinto
Page 1031
theLibraryDLLcalledwhenopeningtheperformancecounter.defaultis"OpenPerformanceData"whichshouldbeusedforallmanagedcodeperformancecounters.
SeeAlsoUtilSchema
Page 1032
PerformanceCounterElement(UtilExtension)
DescriptionCreatesaperformancecounterinaperformancecategory.
WindowsInstallerreferencesNone
ParentsPerformanceCategory
InnerTextNone
ChildrenNone
Attributes
Name Type Description
Help String Optionalhelptextfortheperformancecounter.
Language PerformanceCounterLanguageType Languageforthepeformancecounternameandhelp.ThedefaultistousetheparentPerformanceCategoryelement'sDefaultLanguageattribute.
Name String Namefortheperformancecounter.
Page 1033
Type PerformanceCounterTypesType Typeoftheperformancecounter.
SeeAlsoUtilSchema
Page 1034
PermissionExElement(UtilExtension)
DescriptionSetsACLsonFile,Registry,CreateFolder,orServiceInstall.WhenunderaRegistryelement,thiscannotbeusediftheActionattribute'svalueisremoveorremoveKeyOnInstall.ThiselementhasnoIdattribute.Thetableandkeyaretakenfromtheparentelement.
WindowsInstallerreferencesNone
ParentsCreateFolder,File,Registry,RegistryKey,RegistryValue
InnerTextNone
ChildrenNone
Attributes
Name Type Description
Append YesNoType
ChangePermission YesNoType
CreateChild YesNoType Foradirectory,therighttocreateasubdirectory.Onlyvalidundera'CreateFolder'parent.
CreateFile YesNoType Foradirectory,therighttocreateafileinthedirectory.Onlyvalidundera'CreateFolder'parent.
CreateLink YesNoType
CreateSubkeys YesNoType
Page 1035
Delete YesNoType
DeleteChild YesNoType Foradirectory,therighttodeleteadirectoryandallthefilesitcontains,includingread-onlyfiles.Onlyvalidundera'CreateFolder'parent.
Domain String
EnumerateSubkeys YesNoType
Execute YesNoType
GenericAll YesNoType
GenericExecute YesNoType
GenericRead YesNoType specifyingthiswillfailtograntreadaccess
GenericWrite YesNoType
Notify YesNoType
Read YesNoType
ReadAttributes YesNoType
ReadExtendedAttributes YesNoType
ReadPermission YesNoType
ServiceChangeConfig YesNoType RequiredtocalltheChangeServiceConfigorChangeServiceConfig2functiontochangetheserviceconfiguration.Onlyvalidundera'ServiceInstall'parent.
ServiceEnumerateDependents YesNoType RequiredtocalltheEnumDependentServicesfunctiontoenumeratealltheservicesdependentontheservice.validundera'ServiceInstall'
Page 1036
parent.
ServiceInterrogate YesNoType RequiredtocalltheControlServicefunctiontoasktheservicetoreportitsstatusimmediately.Onlyvalidundera'ServiceInstall'parent.
ServicePauseContinue YesNoType RequiredtocalltheControlServicefunctiontopauseorcontinuetheservice.Onlyvalidundera'ServiceInstall'parent.
ServiceQueryConfig YesNoType RequiredtocalltheQueryServiceConfigandQueryServiceConfig2functionstoquerytheserviceconfiguration.Onlyvalidundera'ServiceInstall'parent.
ServiceQueryStatus YesNoType RequiredtocalltheQueryServiceStatusfunctiontoasktheservicecontrolmanageraboutthestatusoftheservice.undera'ServiceInstall'parent.
ServiceStart YesNoType RequiredtocalltheStartServicefunctiontostarttheservice.validundera'ServiceInstall'parent.
ServiceStop YesNoType RequiredtocalltheControlServicefunctiontostoptheservice.validundera'ServiceInstall'parent.
ServiceUserDefinedControl YesNoType RequiredtocalltheControlServicefunctiontospecifyauser-definedcontrolcode.Onlyvalidundera'ServiceInstall'parent.
Synchronize YesNoType
TakeOwnership YesNoType
Page 1037
Traverse YesNoType Foradirectory,therighttotraversethedirectory.Bydefault,usersareassignedtheBYPASS_TRAVERSE_CHECKINGprivilege,whichignorestheFILE_TRAVERSEaccessright.Onlyvalidundera'CreateFolder'parent.
User String
Write YesNoType
WriteAttributes YesNoType
WriteExtendedAttributes YesNoType
SeeAlsoUtilSchema
Page 1038
ProductSearchElement(UtilExtension)
DescriptionDescribesaproductsearch.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
After String Idofthesearchthatthisoneshouldcomeafter.
Condition String Conditionforevaluatingthesearch.Ifthisevaluatestofalse,thesearchisnotexecutedatall.
Guid String TheGuidattributehasbeendeprecated;usetheProductCodeorUpgradeCodeattributeinstead.Ifthisattributeisused,itisassumedtobeaProductCode.
Page 1039
Id String Idofthesearchfororderinganddependency.
ProductCode String TheProductCodetouseforthesearch.ThisattributemustbeomittedifUpgradeCodeisspecified.
Result Enumeration Ratherthansavingtheproductversionintothevariable,aProductSearchcansaveanotherattributeofthematchingproductinstead.Thisattribute'svaluemustbeoneofthefollowing:version
Savestheversionofamatchingproductiffound;0.0.0.0otherwise.Thisisthedefault.
languageSavesthelanguageofamatchingproductiffound;emptyotherwise.
stateSavesthestateoftheproduct:advertised(1),absent(2),orlocallyinstalled(5).
assignmentSavestheassignmenttypeoftheproduct:per-user(0),orper-machine
Page 1040
(1).
UpgradeCode String TheUpgradeCodetouseforthesearch.ThisattributemustbeomittedifProductCodeisspecified.Notethatifmultipleproductsarefound,thehighestversionedproductwillbeusedfortheresult.
Variable String Nameofthevariableinwhichtoplacetheresultofthesearch.
Yes
SeeAlsoUtilSchema
Page 1041
ProductSearchRefElement(UtilExtension)
DescriptionReferencesaProductSearch.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
SeeAlsoUtilSchema
Page 1042
RegistrySearchElement(UtilExtension)
DescriptionDescribesaregistrysearch.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenNone
Attributes
Name Type Description
After String Idofthesearchthatthisoneshouldcomeafter.
Condition String Conditionforevaluatingthesearch.Ifthisevaluatestofalse,thesearchisnotexecutedatall.
ExpandEnvironmentVariables YesNoType WhethertoexpandanyenvironmentvariablesinREG_SZ,REG_EXPAND_SZ,orREG_MULTI_SZvalues.
Format Enumeration Whatformattoreturnthevaluein.Thisattribute'svaluemustbeoneofthefollowing:raw
Page 1043
Returnstheunformattedvaluedirectlyfromtheregistry.Forexample,aREG_DWORDvalueof'1'isreturnedas'1',not'#1'.
compatibleReturnsthevalueformattedasWindowsInstallerwould.Forexample,aREG_DWORDvalueof'1'isreturnedas'#1',not'1'.
Id String Idofthesearchfororderinganddependency.
Key String Keytosearchfor.
Result Enumeration Ratherthansavingthematchingregistryvalueintothevariable,aRegistrySearchcansaveanattributeofthematchingentryinstead.attribute'svaluemustbeoneofthefollowing:exists
Savestrueifamatchingregistryentryisfound;falseotherwise.
valueSavesthevalueoftheregistrykeyinthevariable.Thisisthedefault.
Root Enumeration Registryroothivetosearchunder.Thisattribute'svaluemustbeoneofthefollowing:
Page 1044
HKLMHKEY_LOCAL_MACHINE
HKCUHKEY_CURRENT_USER
HKCRHKEY_CLASSES_ROOT
HKUHKEY_USERS
Value String OptionalvaluetosearchforunderthegivenKey.
Variable String Nameofthevariableinwhichtoplacetheresultofthesearch.
Win64 YesNoType Instructsthesearchtolookinthe64-bitregistrywhenthevalueis'yes'.Whenthevalueis'no',thesearchlooksinthe32-bitregistry.Thedefaultvalueis'no'.
SeeAlsoUtilSchema
Page 1045
RegistrySearchRefElement(UtilExtension)
DescriptionReferencesaRegistrySearch.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
SeeAlsoUtilSchema
Page 1046
RemoveFolderExElement(UtilExtension)
DescriptionRemoveafolderandallcontainedfilesandfoldersiftheparentcomponentisselectedforinstallationorremoval.ThefoldermustbespecifiedinthePropertyattributeasthenameofapropertythatwillhaveavaluethatresolvestothefullpathofthefolderbeforetheCostInitializeaction.NotethatDirectoryidscannotbeused.Formoredetails,seetheRemarks.
WindowsInstallerreferencesRemoveFileTable
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Primarykeyusedtoidentifythisparticularentry.Ifthisisnotspecified,astableidentifierwillbegeneratedatcompiletimebasedontheotherattributes.
On Enumeration Thisvaluedetermineswhenthefoldermayberemoved.Thisattribute'svaluemustbeoneofthefollowing:install
Page 1047
Removesthefolderonlywhentheparentcomponentisbeinginstalled(msiInstallStateLocalormsiInstallStateSource).
uninstallDefault:Removesthefolderonlywhentheparentcomponentisbeingremoved(msiInstallStateAbsent).
bothRemovesthefolderwhentheparentcomponentisbeinginstalledorremoved.
Property String Theidofapropertythatresolvestothefullpathofthesourcedirectory.Thepropertydoesnothavetoexistintheinstallerdatabaseatcreationtime;itcouldbecreatedatinstallationtimebyacustomaction,onthecommandline,etc.ThepropertyvaluecancontainenvironmentvariablessurroundedbypercentsignssuchasfromaREG_EXPAND_SZregistryvalue;environmentvariableswillbeexpandedbeforebeingevaluatedforafullpath.
Remarks
ThecustomactionthatimplementsRemoveFolderExdoessobywritingtemporaryrowstotheRemoveFiletableforeachsubfolderof
Page 1048
therootfolderyouspecify.BecauseitmightdramaticallyaffectWindowsInstaller'sFileCosting,thetemporaryrowsmustbewrittenbeforetheCostInitializestandardaction.Unfortunately,MSIdoesn'tcreatepropertiesfortheDirectoryhierarchyinyourpackageuntillater,intheCostFinalizeaction.
Aneasyworkaroundforatypicalusecaseofremovingafolderduringuninstallistowritethedirectorypathtotheregistryandtoloaditduringuninstall.SeeTheWiXtoolset's"RememberProperty"patternforanexample.
Ifyouusecustomactionstosetproperties,ensurethattheyarescheduledbeforetheWixRemoveFoldersExcustomaction.
SeeAlsoUtilSchema
Page 1049
RestartResourceElement(UtilExtension)
DescriptionRegistersaresourcewiththeRestartManager.
WindowsInstallerreferencesNone
ParentsComponent,Fragment,Module,Product
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Theuniqueidentifierforthisresource.Auniqueidentifierwillbegeneratedautomaticallyifnotspecified.
Path String ThefullpathtotheprocessmoduletoregisterwiththeRestartManager.Thiscanbeaformattedvaluethatresolvestoafullpath.
ProcessName String ThenameofaprocesstoregisterwiththeRestartManager.Thiscanbeaformattedvaluethatresolvestoaprocessname.
Page 1050
ServiceName String ThenameofaWindowsservicetoregisterwiththeRestartManager.Thiscanbeaformattedvaluethatresolvestoaservicename.
SeeAlsoUtilSchema
Page 1051
ServiceConfigElement(UtilExtension)
DescriptionServiceconfigurationinformationforfailureactions.
WindowsInstallerreferencesNone
ParentsComponent,ServiceInstall
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
FirstFailureActionType Enumeration Actiontotakeonthefirstfailureoftheservice.Thisattribute'svaluemustbeoneofthefollowing:none
reboot
restart
runCommand
Yes
ProgramCommandLine String Ifanyofthethree
Page 1052
*ActionTypeattributesis"runCommand",thisspecifiesthecommandtorunwhendoingso.Thisvalueisformatted.
RebootMessage String Ifanyofthethree*ActionTypeattributesis"reboot",thisspecifiesthemessagetobroadcasttoserverusersbeforedoingso.
ResetPeriodInDays Integer Numberofdaysafterwhichtoresetthefailurecounttozeroiftherearenofailures.
RestartServiceDelayInSeconds Integer Ifanyofthethree*ActionTypeattributesis"restart",thisspecifiesthenumberofsecondstowaitbeforedoingso.
Page 1053
SecondFailureActionType Enumeration Actiontotakeonthesecondfailureoftheservice.Thisattribute'svaluemustbeoneofthefollowing:none
reboot
restart
runCommand
Yes
ServiceName String RequiredifnotunderaServiceInstallelement.
ThirdFailureActionType Enumeration Actiontotakeonthethirdfailureoftheservice.Thisattribute'svaluemustbeoneofthefollowing:none
reboot
restart
runCommand
Yes
RemarksNestingaServiceConfigelementunderaServiceInstallelementwillresultintheservicebeinginstalledtobeconfigured.
NestingaServiceConfigelementunderacomponentelementwillresultinanalreadyinstalledservicetobeconfigured.IftheservicedoesnotexistpriortotheinstalloftheMSIpackage,the
Page 1054
installwillfail.
SeeAlsoUtilSchema
Page 1055
AutogenGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.
SeeAlsoUtilSchema
Page 1056
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoUtilSchema
Page 1057
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoUtilSchema
Page 1058
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoUtilSchema
Page 1059
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoUtilSchema
Page 1060
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoUtilSchema
Page 1061
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoUtilSchema
Page 1062
Guid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoUtilSchema
Page 1063
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoUtilSchema
Page 1064
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoUtilSchema
Page 1065
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoUtilSchema
Page 1066
LongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoUtilSchema
Page 1067
PerformanceCounterLanguageType(SimpleType)
DescriptionEnumerationofvalidlanguagesforperformancecounters.
EnumerationTypePossiblevalues:{afrikaans,albanian,arabic,armenian,assamese,azeri,basque,belarusian,bengali,bulgarian,catalan,chinese,croatian,czech,danish,divehi,dutch,english,estonian,faeroese,farsi,finnish,french,galician,georgian,german,greek,gujarati,hebrew,hindi,hungarian,icelandic,indonesian,italian,japanese,kannada,kashmiri,kazak,konkani,korean,kyrgyz,latvian,lithuanian,macedonian,malay,malayalam,manipuri,marathi,mongolian,nepali,norwegian,oriya,polish,portuguese,punjabi,romanian,russian,sanskrit,serbian,sindhi,slovak,slovenian,spanish,swahili,swedish,syriac,tamil,tatar,telugu,thai,turkish,ukrainian,urdu,uzbek,vietnamese}
SeeAlsoUtilSchema
Page 1068
PerformanceCounterTypesType(SimpleType)
DescriptionEnumerationofvalidtypesforperformancecounters.
EnumerationTypePossiblevalues:{averageBase,averageCount64,averageTimer32,counterDelta32,counterTimerInverse,sampleFraction,timer100Ns,counterTimer,rawFraction,timer100NsInverse,counterMultiTimer,counterMultiTimer100Ns,counterMultiTimerInverse,counterMultiTimer100NsInverse,elapsedTime,sampleBase,rawBase,counterMultiBase,rateOfCountsPerSecond64,rateOfCountsPerSecond32,countPerTimeInterval64,countPerTimeInterval32,sampleCounter,counterDelta64,numberOfItems64,numberOfItems32,numberOfItemsHEX64,numberOfItemsHEX32}
SeeAlsoUtilSchema
Page 1069
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoUtilSchema
Page 1070
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoUtilSchema
Page 1071
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoUtilSchema
Page 1072
ShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoUtilSchema
Page 1073
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoUtilSchema
Page 1074
WildCardLongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoUtilSchema
Page 1075
WildCardShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoUtilSchema
Page 1076
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoUtilSchema
Page 1077
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoUtilSchema
Page 1078
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoUtilSchema
Page 1079
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoUtilSchema
Page 1080
UserElement(UtilExtension)
DescriptionUserforallkindsofthings.WhenitisnotnestedunderacomponentitisincludedintheMSIsoitcanbereferencedbyotherelementssuchastheUserattributeintheAppPoolelement.WhenitisnestedunderaComponentelement,theUserwillbecreatedoninstallandcanalsobeusedforreference.
WindowsInstallerreferencesNone
ParentsComponent,Fragment,Module,Product
InnerTextNone
ChildrenSequence(min:1,max:1)1. GroupRef(min:0,max:unbounded)
Attributes
Name Type Description
Id String
CanNotChangePassword YesNoType Theusercannotchangetheaccount'spassword.EquivalenttoUF_PASSWD_CANT_CHANGE.
CreateUser YesNoType Indicateswhetherornottocreatetheuser.Usercreationcanbeskippedifallthatisdesiredistojoinausertogroups.
Page 1081
Disabled YesNoType Theaccountisdisabled.EquivalenttoUF_ACCOUNTDISABLE.
Domain String AFormattedstringthatcontainsthelocalmachineorActiveDirectorydomainfortheuser.
FailIfExists YesNoType Indicatesiftheinstallshouldfailiftheuseralreadyexists.
LogonAsBatchJob YesNoType Indicateswhetherornottheusercanlogonasabatchjob.Usercreationcanbeskippedifallthatisdesiredistosetthisaccessrightontheuser.
LogonAsService YesNoType Indicateswhetherornottheusercanlogonasaserivce.Usercreationcanbeskippedifallthatisdesiredistosetthisaccessrightontheuser.
Name String AFormattedstringthatcontainsthenameoftheuseraccount.
Password String UsuallyaPropertythatispassedinonthecommand-linetokeepitmoresecure.
PasswordExpired YesNoType Indicateswhethertheusermustchangetheirpasswordontheirfirstlogin.
PasswordNeverExpires YesNoType Theaccount'spasswordneverexpires.EquivalenttoUF_DONT_EXPIRE_PASSWD.
RemoveOnUninstall YesNoType Indicateswhethertheuseraccountshouldberemovedorleftbehindonuninstall.
UpdateIfExists YesNoType Indicatesiftheuseraccount
Page 1082
propertiesshouldbeupdatediftheuseralreadyexists.
Vital YesNoType Indicateswhetherfailuretocreatetheuseroraddtheusertoagroupfailstheinstallation.Thedefaultvalueis"yes".
SeeAlsoUtilSchema,Group,GroupRef
Page 1083
XmlConfigElement(UtilExtension)
DescriptionAddsorremoves.xmlfileentries.IfyouusetheXmlConfigelementyoumustreferenceWixUtilExtension.dllasitcontainstheXmlConfigcustomactions.
WindowsInstallerreferencesNone
ParentsComponent,XmlConfig
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenSequence(min:1,max:1)1. XmlConfig(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifierforxmlfilemodification.
Yes
Action Enumeration Thisattribute'svaluemustbeoneofthefollowing:create
delete
ElementId String TheIdofanotherXmlConfigtoaddattributesto.Inthiscase,the
Page 1084
'ElementPath','Action','Node',and'On'attributesmustbeomitted.
ElementPath String TheXPathoftheparentelementbeingmodified.Notethatthisisaformattedfieldandtherefore,squarebracketsintheXPathmustbeescaped.Inaddition,XPathsallowbackslashestobeusedtoescapecharacters,soifyouintendtoincludeliteralbackslashes,youmustescapethemaswellbydoublingtheminthisattribute.ThestringisformattedbyMSIfirst,andtheresultisconsumedastheXPath.
File String Pathofthe.xmlfiletoconfigure.
Yes
Name String NameofXMLnodetoset/addtothespecifiedelement.Notsettingthis
Page 1085
attributecausestheelement'stextvaluetobeset.Otherwisethisspecifiedtheattributenamethatisset.
Node Enumeration Thisattribute'svaluemustbeoneofthefollowing:element
value
document
On Enumeration Thisattribute'svaluemustbeoneofthefollowing:install
uninstall
PreserveModifiedDate YesNoType Specifieswheterornotthemodificationshouldpreservethemodifieddate.Preservingthemodifieddatewillallowthefiletobepatchedifnoothermodificationshavebeenmade.
Sequence Integer Specifiesthe
Page 1086
orderinwhichthemodificationistobeattemptedontheXMLfile.Itisimportanttoensurethatnewelementsarecreatedbeforeyouattempttoaddanattributetothem.
Value String Thevaluetobewritten.SeetheFormattedtopicforinformationhowtoescapesquarebracketsinthevalue.
VerifyPath String TheXPathtotheelementbeingmodified.Thisisrequiredfor'delete'actions.For'create'actions,VerifyPathisusedtodecideiftheelementalreadyexists.Notethatthisisaformattedfieldandtherefore,squarebracketsintheXPathmustbeescaped.Inaddition,XPathsallowbackslashestobe
Page 1087
usedtoescapecharacters,soifyouintendtoincludeliteralbackslashes,youmustescapethemaswellbydoublingtheminthisattribute.ThestringisformattedbyMSIfirst,andtheresultisconsumedastheXPath.
SeeAlsoUtilSchema
Page 1088
XmlFileElement(UtilExtension)
DescriptionAddsorremoves.xmlfileentries.IfyouusetheXmlFileelementyoumustreferenceWixUtilExtension.dllasitcontainstheXmlFilecustomactions.
WindowsInstallerreferencesNone
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierforxmlfilemodification.
Yes
Action Enumeration ThetypeofmodificationtobemadetotheXMLfilewhenthecomponentisinstalled.Thisattribute'svaluemustbeoneofthefollowing:createElement
Createsanewelementundertheelement
Yes
Page 1089
specifiedinElementPath.TheNameattributeisrequiredinthiscaseandspecifiesthenameofthenewelement.TheValueattributeisnotnecessarywhencreateElementisspecifiedastheaction.IftheValueattributeisset,itwillcausethenewelement'stextvaluetobeset.
deleteValueDeletesavaluefromtheelementspecifiedintheElementPath.IfNameisspecified,theattributewiththatnameisdeleted.IfNameisnotspecified,thetextvalueof
Page 1090
theelementspecifiedintheElementPathisdeleted.TheValueattributeisignoredifdeleteValueistheactionspecified.
setValueSetsavalueintheelementspecifiedintheElementPath.IfNameisspecified,andattributewiththatnameissettothevaluespecifiedinValue.IfNameisnotspecified,thetextvalueoftheelementisset.ValueisarequiredattributeifsetValueistheactionspecified.
bulkSetValueSetsallthevaluesinthe
Page 1091
elementsthatmatchtheElementPath.IfNameisspecified,attributeswiththatnamearesettothesamevaluespecifiedinValue.IfNameisnotspecified,thetextvaluesoftheelementsareset.ValueisarequiredattributeifsetBulkValueistheactionspecified.
ElementPath String TheXPathoftheelementtobemodified.Notethatthisisaformattedfieldandtherefore,squarebracketsintheXPathmustbeescaped.Inaddition,XPathsallowbackslashestobeusedtoescapecharacters,soifyouintendtoincludeliteralbackslashes,youmustescapethemaswellbydoubling
Yes
Page 1092
theminthisattribute.ThestringisformattedbyMSIfirst,andtheresultisconsumedastheXPath.
File String Pathofthe.xmlfiletoconfigure.
Yes
Name String NameofXMLnodetoset/addtothespecifiedelement.Notsettingthisattributecausestheelement'stextvaluetobeset.Otherwisethisspecifiedtheattributenamethatisset.
Permanent YesNoType Specifieswhetherornotthemodificationshouldberemovedonuninstall.ThishasnoeffectonuninstalliftheactionwasdeleteValue.
PreserveModifiedDate YesNoType Specifieswheterornotthemodificationshouldpreservethemodifieddate.
Page 1093
Preservingthemodifieddatewillallowthefiletobepatchedifnoothermodificationshavebeenmade.
SelectionLanguage Enumeration SpecifywhethertheDOMobjectshoulduseXPathlanguageortheoldXSLPatternlanguage(default)asthequerylanguage.Thisattribute'svaluemustbeoneofthefollowing:XPath
XSLPattern
Sequence Integer SpecifiestheorderinwhichthemodificationistobeattemptedontheXMLfile.Itisimportanttoensurethatnewelementsarecreatedbeforeyouattempttoaddanattributetothem.
Value String Thevaluetobewritten.SeetheFormattedtopicforinformationhowtoescapesquarebracketsinthe
Page 1094
value.
SeeAlsoUtilSchema
Page 1095
HelpCollectionElement(VsExtension)
DescriptionHelpNamespaceforahelpcollection.TheparentfileisthekeyfortheHxC(Collection)file.
WindowsInstallerreferencesNone
ParentsFile
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
HelpFileRef(min:0,max:unbounded)HelpFilterRef(min:0,max:unbounded)PlugCollectionInto(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String PrimaryKeyforHelpNamespace.
Yes
Description String FriendlynameforNamespace.
Name String InternalMicrosoftHelpIDforthisNamespace.
Yes
SuppressCustomActions YesNoType SuppresslinkingHelpregistration
Page 1096
customactions.Helpredistributablemergemoduleswillberequired.Usethiswhenbuildingamergemodule.
SeeAlsoVsSchema
Page 1097
HelpCollectionRefElement(VsExtension)
DescriptionCreateareferencetoaHelpCollectionelementinanotherFragment.
WindowsInstallerreferencesNone
ParentsFragment,Module,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
HelpFileRef(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String PrimaryKeyforHelpNamespaceTable.
Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoVsSchema
Page 1098
HelpFileElement(VsExtension)
DescriptionFileforHelpNamespace.TheparentfileisthekeyforHxS(Title)file.
WindowsInstallerreferencesNone
ParentsFile
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String PrimaryKeyforHelpFileTable.
Yes
AttributeIndex String KeyforHxR(Attributes)file.
Index String KeyforHxI(Index)file.
Language Integer LanguageIDforcontentfile.
Yes
Name String InternalMicrosoftHelpIDforthisHelpFile.
Yes
SampleLocation String Keyforafilethat
Page 1099
isinthe"root"ofthesamplesdirectoryforthisHelpFile.
Search String KeyforHxQ(Query)file.
SuppressCustomActions YesNoType SuppresslinkingHelpregistrationcustomactions.Helpredistributablemergemoduleswillberequired.Usethiswhenbuildingamergemodule.
SeeAlsoVsSchema
Page 1100
HelpFileRefElement(VsExtension)
DescriptionCreateareferencetoaHelpFileelementinanotherFragment.
WindowsInstallerreferencesNone
ParentsHelpCollection,HelpCollectionRef
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String PrimaryKeyforHelpFileTable. Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoVsSchema
Page 1101
HelpFilterElement(VsExtension)
DescriptionFilterforHelpNamespace.
WindowsInstallerreferencesNone
ParentsFragment,Module,Product
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String PrimaryKeyforHelpFilter.
Yes
FilterDefinition String QueryStringforHelpFilter.
Name String FriendlynameforFilter.
Yes
SuppressCustomActions YesNoType SuppresslinkingHelpregistrationcustomactions.Helpredistributablemergemoduleswillberequired.Usethiswhenbuildingamergemodule.
Page 1102
SeeAlsoVsSchema
Page 1103
HelpFilterRefElement(VsExtension)
DescriptionCreateareferencetoaHelpFileelementinanotherFragment.
WindowsInstallerreferencesNone
ParentsHelpCollection
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String PrimaryKeyforHelpFilter. Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoVsSchema
Page 1104
PlugCollectionIntoElement(VsExtension)
DescriptionPluginforHelpNamespace.
WindowsInstallerreferencesNone
ParentsHelpCollection
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Attributes String KeyforHxA(Attributes)fileofchildnamespace.
SuppressExternalNamespaces YesNoType SuppresslinkingVisualStudioHelpnamespaces.Helpredistributablemergemoduleswillberequired.Usethiswhenbuildingamergemodule.
Page 1105
TableOfContents String KeyforHxTfileofchildnamespace.
TargetCollection String ForiegnKeyintoHelpNamespacetablefortheparentnamespaceintowhichthechildwillbeinserted.Thefollowingspecialkeyscanbeusedtoplugintoexternalnamespacesdefinedoutsideoftheinstaller.MS_VSIPCC_v80:VisualStudio2005MS.VSIPCC.v90:VisualStudio2008
Yes
TargetFeature String Keyforthefeatureparentofthishelpcollection.Requiredonlywhenpluggingintoexternalnamespaces.
TargetTableOfContents String KeyforHxTfileofparentnamespacethatnowincludesthenewchildnamespace.
Page 1106
SeeAlsoVsSchema
Page 1107
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){0,3}\d{1,5}'.
SeeAlsoVsSchema
Page 1108
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoVsSchema
Page 1109
VsixPackageElement(VsExtension)
DescriptionThiselementprovidesthemetdatarequiredtoinstall/uninstallafileasaVSIXPackage.TheVSIXpackagefilewillbeinstalledaspartoftheMSIthenpassedtotheVSIXinstallertoinstalltheVSIXpackage.Toavoidtheduplication,simplyusetheMSItoinstalltheVSIXpackageitself.
WindowsInstallerreferencesNone
ParentsComponent,File
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
File String Referencetofileidentifer.ThisattributeisrequiredwhentheelementisnotachildofaFileelementandisinvalidwhentheelementisachildoftheFileelement.
PackageId String IdentityoftheVSIXpackage
Yes
Page 1110
peritsinternalmanifest.IfthisvalueisnotcorrecttheVSIXpackagewillnotcorrectlyuninstall.
Permanent YesNoType IndicateswhethertheVSIXpackageisuninstalledwhentheparentComponentisuninstalled.Thedefaultis'no'.
Target String SpecifiestheSKUofVisualStudioinwhichtoregistertheextension.IfnotargetisspecifiedtheextensionisregisteredwithallinstalledSKUs.IftheTargetattributeisspecifiedtheTargetVersionattributemustalsobespecified.ThefollowingisalistofknownVisualStudiotargets:integratedShell,professional,premium,
Page 1111
ultimate,vbExpress,vcExpress,vcsExpress,vwdExpress
TargetVersion VersionType SpecifiestheversionofVisualStudioinwhichtoregistertheextension.ThisattributeisrequirediftheTargetattributeisspecified.
Vital YesNoType IndicateswhetherfailuretoinstalltheVSIXpackagecausestheinstallationtorollback.Thedefaultis'yes'.
VsixInstallerPathProperty String OptionalreferencetoaPropertyelementthatcontainsthepathtotheVsixInstaller.exe.Bydefault,thelatestVsixInstaller.exeonthemachinewillbeusedtoinstalltheVSIXpackage.Itishighly
Page 1112
recommendedthatthisattributeis*not*used.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoVsSchema
Page 1113
AdminExecuteSequenceElement
DescriptionNone
WindowsInstallerreferencesAdminExecuteSequenceTable
ParentsFragment,Module,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
CostFinalize(min:0,max:unbounded):EndstheinternalinstallationcostingprocessbegunbytheCostInitializeaction.CostInitialize(min:0,max:unbounded):Initiatestheinternalinstallationcostingprocess.Custom(min:0,max:unbounded):Usetosequenceacustomaction.FileCost(min:0,max:unbounded):Initiatesdynamiccostingofstandardinstallationactions.InstallAdminPackage(min:0,max:unbounded):Copiestheproductdatabasetotheadministrativeinstallationpoint.InstallFiles(min:0,max:unbounded):CopiesfilesspecifiedintheFiletablefromthesourcedirectorytothedestinationdirectory.InstallFinalize(min:0,max:unbounded):Markstheendofasequenceofactionsthatchangethesystem.InstallInitialize(min:0,max:unbounded):Marksthebeginningofasequenceofactionsthatchangethesystem.InstallValidate(min:0,max:unbounded):Verifiesthatallcostedvolumeshaveenoughspacefortheinstallation.
Page 1114
LaunchConditions(min:0,max:unbounded):QueriestheLaunchConditiontableandevaluateseachconditionalstatementrecordedthere.PatchFiles(min:0,max:unbounded):QueriesthePatchtabletodeterminewhichpatchesaretobeapplied.ResolveSource(min:0,max:unbounded):DeterminesthelocationofthesourceandsetstheSourceDirpropertyifthesourcehasnotbeenresolvedyet.
AttributesNone
SeeAlsoWixSchema
Page 1115
AdminUISequenceElement
DescriptionNone
WindowsInstallerreferencesAdminUISequenceTable
ParentsFragment,Module,Product,UI
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
CostFinalize(min:0,max:unbounded):EndstheinternalinstallationcostingprocessbegunbytheCostInitializeaction.CostInitialize(min:0,max:unbounded):Initiatestheinternalinstallationcostingprocess.Custom(min:0,max:unbounded):Usetosequenceacustomaction.ExecuteAction(min:0,max:unbounded):Initiatestheexecutionsequence.FileCost(min:0,max:unbounded):Initiatesdynamiccostingofstandardinstallationactions.InstallAdminPackage(min:0,max:unbounded):Copiestheproductdatabasetotheadministrativeinstallationpoint.InstallFiles(min:0,max:unbounded):CopiesfilesspecifiedintheFiletablefromthesourcedirectorytothedestinationdirectory.InstallFinalize(min:0,max:unbounded):Markstheendofasequenceofactionsthatchangethesystem.InstallInitialize(min:0,max:unbounded):Marksthebeginningofasequenceofactionsthatchangethesystem.
Page 1116
InstallValidate(min:0,max:unbounded):Verifiesthatallcostedvolumeshaveenoughspacefortheinstallation.LaunchConditions(min:0,max:unbounded):QueriestheLaunchConditiontableandevaluateseachconditionalstatementrecordedthere.Show(min:0,max:unbounded)
AttributesNone
SeeAlsoWixSchema
Page 1117
AdvertiseExecuteSequenceElement
DescriptionNone
WindowsInstallerreferencesAdvtExecuteSequenceTable
ParentsFragment,Module,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
CostFinalize(min:0,max:unbounded):EndstheinternalinstallationcostingprocessbegunbytheCostInitializeaction.CostInitialize(min:0,max:unbounded):Initiatestheinternalinstallationcostingprocess.CreateShortcuts(min:0,max:unbounded):Managesthecreationofshortcuts.Custom(min:0,max:unbounded):Usetosequenceacustomaction.TheonlycustomactionsthatareallowedintheAdvtExecuteSequencearetype19(0x013)type35(0x023)andtype51(0x033).InstallFinalize(min:0,max:unbounded):Markstheendofasequenceofactionsthatchangethesystem.InstallInitialize(min:0,max:unbounded):Marksthebeginningofasequenceofactionsthatchangethesystem.InstallValidate(min:0,max:unbounded):Verifiesthatallcostedvolumeshaveenoughspacefortheinstallation.MsiPublishAssemblies(min:0,max:unbounded):ManagestheadvertisementofCLRandWin32assemblies.PublishComponents(min:0,max:unbounded):Managesthe
Page 1118
advertisementofthecomponentsfromthePublishComponenttable.PublishFeatures(min:0,max:unbounded):Writeseachfeature'sstateintothesystemregistry.PublishProduct(min:0,max:unbounded):Managestheadvertisementoftheproductinformationwiththesystem.RegisterClassInfo(min:0,max:unbounded):ManagestheregistrationofCOMclassinformationwiththesystem.RegisterExtensionInfo(min:0,max:unbounded):Managestheregistrationofextensionrelatedinformationwiththesystem.RegisterMIMEInfo(min:0,max:unbounded):RegistersMIME-relatedregistryinformationwiththesystem.RegisterProgIdInfo(min:0,max:unbounded):ManagestheregistrationofOLEProgIdinformationwiththesystem.
AttributesNone
SeeAlsoWixSchema
Page 1119
AllElement
DescriptionUsedonlyforPatchFamiliestoincludeallchangesbetweenthebaselineandupgradedpackagesinapatch.
WindowsInstallerreferencesNone
ParentsPatchFamily
Remarks
Warning:thisisintendedfortestingpurposesonly.Shippingapatchwithallchangesnegatesthebenefitsofusingpatchfamiliesforincludingonlyspecificchanges.
BecausechangingtheProductCodeisnotsupportedinapatch,theProductCodepropertyisautomaticallyremovedfromthetransform.
SeeAlsoWixSchema
Page 1120
AllocateRegistrySpaceElement
DescriptionEnsurestheneededamountofspaceexistsintheregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesAllocateRegistrySpaceAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1121
AppDataElement
DescriptionOptionalwayfordefiningAppData,generallyusedforcomplexCDATA.
WindowsInstallerreferencesNone
ParentsCategory
SeeAlsoWixSchema
Page 1122
AppIdElement
DescriptionApplicationIDcontainingDCOMinformationfortheassociatedapplicationGUID.IfthiselementisnestedunderaFragment,Module,orProductelement,itmustbeadvertised.
WindowsInstallerreferencesAppIdTable,RegistryTable
ParentsComponent,File,Fragment,Module,Product,TypeLib
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Class(min:0,max:unbounded)
Attributes
Name Type Description Required
Id Guid SetthisvaluetotheAppIDGUIDthatcorrespondstothenamedexecutable.
Yes
ActivateAtStorage YesNoType Setthisvalueto'yes'toconfiguretheclienttoactivateonthesamesystemaspersistentstorage.
Advertise YesNoType Setthisvalueto'yes'inordertocreateanormal
Page 1123
AppIdtablerow.Setthisvalueto'no'inordertogenerateRegistryrowsthatperformsimilarregistration(withouttheoftenproblematicWindowsInstalleradvertisingbehavior).
Description String SetthisvaluetothedescriptionoftheAppId.ItcanonlybespecifiedwhentheAppIdisnotbeingadvertised.
DllSurrogate String SetthisvaluetospecifythattheclassisaDLLthatistobeactivatedinasurrogateEXEprocess,andthesurrogateprocesstobeusedisthepathofasurrogateEXEfilespecifiedbythevalue.
LocalService String SetthisvaluetothenameofaservicetoallowtheobjecttobeinstalledasaWin32service.
RemoteServerName String Setthisvaluetothenameoftheremoteservertoconfigure
Page 1124
theclienttorequesttheobjectberunataparticularmachinewheneveranactivationfunctioniscalledforwhichaCOSERVERINFOstructureisnotspecified.
RunAsInteractiveUser YesNoType Setthisvalueto'yes'toconfigureaclasstorunundertheidentityoftheusercurrentlyloggedonandconnectedtotheinteractivedesktopwhenactivatedbyaremoteclientwithoutbeingwrittenasaWin32service.
ServiceParameters String SetthisvaluetotheparameterstobepassedtoaLocalServiceoninvocation.
RemarksWhenbeingusedinunadvertisedmode,theattributesintheAppIdelementcorrespondtoregistrykeysasfollows(valuesthatcanbespecifiedinauthoringareinbold):Id
InGeneral[HKCR\AppID\{Id}]
SpecificExample
Page 1125
[HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]
ActivateAtStorageInGeneral
[HKCR\AppID\{Id}]ActivateAtStorage="ActivateAtStorage"
SpecificExample[HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]ActivateAtStorage="Y"
DescriptionInGeneral
[HKCR\AppID\{Id}]@="Description"
SpecificExample[HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]@="MyAppIdDescription"
DllSurrogateInGeneral
[HKCR\AppID\{Id}]DllSurrogate="DllSurrogate"
SpecificExample[HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]DllSurrogate="C:\surrogate.exe"
LocalServiceInGeneral
[HKCR\AppID\{Id}]LocalService="LocalService"
SpecificExample[HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]LocalService="MyServiceName"
Page 1126
RemoteServerNameInGeneral
[HKCR\AppID\{Id}]RemoteServerName="RemoteServerName"
SpecificExample[HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]RemoteServerName="MyRemoteServer"
RunAsInteractiveUserInGeneral
[HKCR\AppID\{Id}]RunAs="RunAsInteractiveUser"
SpecificExample[HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]RunAs="InteractiveUser"
ServiceParametersInGeneral
[HKCR\AppID\{Id}]ServiceParameters="ServiceParameters"
SpecificExample[HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]ServiceParameters="-param"
SeeAlsoWixSchema
Page 1127
ApprovedExeForElevationElement
DescriptionProvidesinformationaboutan.exesothattheBAcanrequesttheenginetorunitelevatedfromanysecurelocation.
WindowsInstallerreferencesNone
ParentsBundle
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifieroftheApprovedExeForElevationelement.
Yes
Key String Thekeypath.Forsecuritypurposes,therootkeywillbeHKLMandVariablesarenotsupported.
Yes
Value String Thevaluename.Forsecuritypurposes,Variablesarenotsupported.
Win64 YesNoType Instructsthesearchtolookinthe64-bitregistrywhenthevalueis'yes'.Whenthevalueis'no',thesearchlooksinthe32-bitregistry.Thedefaultvalueis'no'.
Page 1128
SeeAlsoWixSchema
Page 1129
AppSearchElement
DescriptionUsesfilesignaturestosearchforexistingversionsofproducts.TheAppSearchactionmayusethisinformationtodeterminewhereupgradesaretobeinstalled.TheAppSearchactioncanalsobeusedtosetapropertytotheexistingvalueofanregistryor.inifileentry.AppSearchshouldbeauthoredintotheInstallUISequencetableandInstallExecuteSequencetable.TheinstallerpreventsTheAppSearchactionfromrunningintheInstallExecuteSequencesequenceiftheactionhasalreadyruninInstallUISequencesequence.TheAppSearchactionsearchesforfilesignaturesusingtheCompLocatortablefirst,theRegLocatortablenext,thentheIniLocatortable,andfinallytheDrLocatortable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesAppSearchTable,AppSearchAction
ParentsInstallExecuteSequence,InstallUISequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthatthisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Page 1130
Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,ComponentSearch,FileSearch,IniFileSearch,RegistrySearch
Page 1131
AssemblyNameElement
DescriptionTheMsiAssemblyNametablespecifiestheschemafortheelementsofastrongassemblycachenamefora.NETFrameworkorWin32assembly.ConsiderusingtheAssemblyattributeonFileelementtohavethetoolsetpopulatetheseentriesautomatically.
WindowsInstallerreferencesMsiAssemblyNameTable
ParentsFile
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String NameoftheattributeassociatedwiththevaluespecifiedintheValuecolumn.
Yes
Value String ValueassociatedwiththenamespecifiedintheNamecolumn.
SeeAlsoWixSchema
Page 1132
BillboardElement
DescriptionBillboardtodisplayduringinstallofaFeature
WindowsInstallerreferencesBillboardTable,BBControlTable
ParentsBillboardAction
InnerTextNone
ChildrenSequence(min:1,max:1)1. Control(min:0,max:unbounded):Onlycontrolsofstatictype
suchas:Text,Bitmap,Icon,orcustomcontrolcanbeplacedonabillboard.
Attributes
Name Type Description Required
Id String UniqueidentifierfortheBillboard. Yes
Feature String FeaturewhosestatedeterminesiftheBillboardisshown.
SeeAlsoWixSchema
Page 1133
BillboardActionElement
DescriptionBillboardactionduringwhichchildBillboardsaredisplayed
WindowsInstallerreferencesBillboardTable,BBControlTable
ParentsUI
InnerTextNone
ChildrenSequence(min:1,max:1)1. Billboard(min:1,max:unbounded):OrderofBillboardelements
determinesorderofdisplay
Attributes
Name Type Description Required
Id String ActionnamethatdetermineswhentheBillboardshouldbeshown.
Yes
SeeAlsoWixSchema
Page 1134
BinaryElement
DescriptionBinarydatausedforCustomActionelementsandUIcontrols.
WindowsInstallerreferencesBinaryTable
ParentsControl,Fragment,Module,Product,UI
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
Attributes
Name Type Description Required
Id String TheIdcannotbelongerthan55characters.InordertopreventerrorsincaseswheretheIdismodularized,itshouldnotbelongerthan18characters.
Yes
SourceFile String Pathtothebinaryfile.
src String Thisattributehas
Page 1135
beendeprecated;pleaseusetheSourceFileattributeinstead.
SuppressModularization YesNoType UsetosuppressmodularizationofthisBinaryidentifierinmergemodules.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema
Page 1136
BinaryRefElement
DescriptionUsedonlyforPatchFamiliestoincludeonlyabinarytableentryinapatch.
WindowsInstallerreferencesNone
ParentsPatchFamily
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifieroftheBinaryelementtoreference.
Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema
Page 1137
BindImageElement
DescriptionBindseachexecutableorDLLthatmustbeboundtotheDLLsimportedbyit.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesBindImageTable,BindImageAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1138
BootstrapperApplicationElement
DescriptionContainsalltherelevantinformationaboutthesetupUI.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
PayloadPayloadGroupRef
Attributes
Name Type Description
Id String TheidentifieroftheBootstrapperApplicationelement.OnlyrequiredifyouwanttoreferencethiselementusingaBootstrapperApplicationRefelement.
Name String TherelativedestinationpathandfilenameforthebootstrapperapplicationDLL.Thedefaultisthesourcefilename.UsethisattributetorenamethebootstrapperapplicationDLLorextractitintoasubfolder.Theuseof'..'
Page 1139
directoriesisnotallowed.
SourceFile String TheDLLwiththebootstrapperapplicationentryfunction.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
UseUILanguages YesNoType Whensetto"yes",causesWixStdBA/PrereqBAtousetheuser'scontrolpanellanguagesettings.Otherwise,thepreviousAPI(whichuseslocaleinsteadoflanguage)isusedtomaintaincompatiblitywithpreviousversionsofWiX.OnVistaandnewerplatforms,thisvaluesetto"yes"willsearchallspecifieduserlanguages,includingfallbacklanguages,inorder.(http://schemas.microsoft.com/wix/BalExtension)
SeeAlsoWixSchema
Page 1140
BootstrapperApplicationRefElement
DescriptionUsedtoreferenceaBootstrapperApplicationelementandoptionallyaddadditionalpayloadstothebootstrapperapplication.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
WixManagedBootstrapperApplicationHostWixStandardBootstrapperApplication
Attributes
Name Type Description
Id String TheidentifieroftheBootstrapperApplicationelementtoreference.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
UseUILanguages YesNoType Whensetto"yes",causesWixStdBA/PrereqBAtousetheuser'scontrolpanellanguage
Page 1141
settings.Otherwise,thepreviousAPI(whichuseslocaleinsteadoflanguage)isusedtomaintaincompatiblitywithpreviousversionsofWiX.OnVistaandnewerplatforms,thisvaluesetto"yes"willsearchallspecifieduserlanguages,includingfallbacklanguages,inorder.(http://schemas.microsoft.com/wix/BalExtension)
SeeAlsoWixSchema
Page 1142
BundleElement
DescriptionTherootelementforcreatingbundledpackages.
WindowsInstallerreferencesNone
ParentsWix
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
ApprovedExeForElevation(min:0,max:unbounded)BootstrapperApplication(min:0,max:1)BootstrapperApplicationRef(min:0,max:1)Catalog(min:0,max:unbounded)Chain(min:1,max:1)Container(min:0,max:unbounded)ContainerRef(min:0,max:unbounded)Log(min:0,max:1)OptionalUpdateRegistration(min:0,max:1)PayloadGroup(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)RelatedBundle(min:0,max:unbounded)Update(min:0,max:unbounded)Variable(min:0,max:unbounded)WixVariable(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
Page 1143
ApprovedExeForElevationBootstrapperApplicationBootstrapperApplicationRefCatalogChainComponentSearchComponentSearchRefConditionContainerContainerRefDirectorySearchDirectorySearchRefFileSearchFileSearchRefLogProductSearchProductSearchRefRegistrySearchRegistrySearchRefRelatedBundleRequiresTagUpdateUXVariable
Attributes
Name Type Description
AboutUrl String AURLformoreinformationaboutthebundletodisplayinProgramsandFeatures(alsoPrograms).
Compressed YesNoDefaultType WhetherPackagesandPayloadsnotassignedtoacontainershouldbeaddedtothedefaultattached
Page 1144
containeroriftheyshouldbeexternal.Thedefaultisyes.
Condition String Theconditionofthebundle.Iftheconditionisnotmet,thebundlewillrefusetorun.Conditionsarecheckedbeforethebootstrapperapplicationisloadedthuscanonlyreferencebuilt-invariablessuchasvariableswhichindicatetheversionoftheOS.
Copyright String Thelegalcopyrightfoundintheversionresourcesoffinalbundleexecutable.Ifthisattributeisnotprovidedthecopyrightwillbesetto"Copyright(c)[Bundle/@Manufacturer].Allrightsreserved.".
DisableModify YesNoButtonType DetermineswhetherthebundlecanbemodifiedviatheProgramsandFeatures(alsoknownasPrograms).Ifthevalueis"button"thenProgramsandFeatureswillshowasinglethevalueis"yes"thenProgramsandFeatureswillonlyshowthe"Uninstall"button".Ifthevalueis"no",thedefault,thena"Change"buttonisshown.DisableRemoveattributeforinformationhowtonotdisplaythebundleinPrograms
DisableRemove YesNoType DetermineswhetherthebundlecanberemovedviatheProgramsandFeatures(alsoPrograms).Ifthevalueis"yes"thenthe"Uninstall"buttonwillnotbedisplayed.Thedefaultis"no"whichensuresthereisan"Uninstall"buttonto"DisableModify"attributeisalso"yes"or"button"thenthebundlewillnotbedisplayedinProgamsandFeaturesandanothermechanism(suchasbundleaddon)mustbeusedtoensurethebundlecanberemoved.
DisableRepair YesNoType Thisattributehasbeendeprecated.
HelpTelephone String AtelephonenumberforhelptodisplayinProgramsandFeatures(alsoknownas
HelpUrl String AURLtothehelpforthebundletodisplayinProgramsandFeatures(alsoknownas
Page 1145
IconSourceFile String PathtoaniconthatwillreplacethedefaulticoninthefinalBundleexecutable.ProgramsandFeatures(alsoknownasAdd/RemovePrograms).
Manufacturer String ThepublisherofthebundletodisplayinProgramsandFeatures(alsoknownas
Name String ThenameofthebundletodisplayinProgramsandFeatures(alsoknownasAdd/RemovenamecanbeaccessedandoverwrittenbyaBootstrapperApplicationbundlevariable.
ParentName String ThenameoftheparentbundletodisplayinInstalledUpdates(alsoknownasAdd/Removenameisusedtonestorgroupbundlesthatwillappearasupdates.Iftheparentnamedoesnotactuallyexist,avirtualparentiscreatedautomatically.
SplashScreenSourceFile String Pathtoabitmapthatwillbeshownasthebootstrapperapplicationisbeingloaded.Ifthisattributeisnotspecified,nosplashscreenwillbedisplayed.
Tag String SetthisstringtouniquelyidentifythisbundletoitsownBA,andtorelatedbundles.ThevalueofthisstringonlymatterstotheBA,anditsvaluehasnodirecteffectonenginefunctionality.
UpdateUrl String AURLforupdatesofthebundletodisplayinProgramsandFeatures(alsoknownasAdd/RemovePrograms).
UpgradeCode Guid Uniqueidentifierforafamilyofbundles.IftwobundleshavethesameUpgradeCodetheversionwillbeinstalled.
Version String Theversionofthebundle.NewerversionsupgradeearlierversionsofthebundlesUpgradeCodes.IfthebundleisregisteredinProgramsandFeaturesthenthisattributewillbedisplayedintheProgramsandFeaturesuserinterface.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schema
Page 1146
extensionscanregisteradditionalattributesatthispointintheschema.
ProviderKey String Optionalattributetoexplicitlyauthortheproviderkeyfortheentirebundle.(http://schemas.microsoft.com/wix/DependencyExtension)
SeeAlsoWixSchema
Page 1147
CatalogElement
DescriptionSpecifyoneormorecatalogfilesthatwillbeusedtoverifythecontentsofthebundle.
WindowsInstallerreferencesNone
ParentsBundle
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Theidentifierofthecatalogelement.
SourceFile String Thecatalogfile
SeeAlsoWixSchema
Page 1148
CategoryElement
DescriptionQualifiedpublishedcomponentforparentComponent
WindowsInstallerreferencesPublishComponentTable
ParentsComponent
InnerTextNone
ChildrenSequence(min:0,max:unbounded)1. AppData(min:0,max:unbounded)
Attributes
Name Type Description Required
Id Guid AstringGUIDthatrepresentsthecategoryofcomponentsbeinggroupedtogether.
Yes
AppData String Anoptionallocalizabletextdescribingthecategory.Thestringiscommonlyparsedbytheapplicationandcanbedisplayedtotheuser.Itshoulddescribethecategory.
Feature String Featurethatcontrolstheadvertisementofthecategory.DefaultstotheprimaryFeaturefortheparentComponent.
Qualifier String Atextstringthatqualifiesthevalue Yes
Page 1149
intheIdattribute.AqualifierisusedtodistinguishmultipleformsofthesameComponent,suchasaComponentthatisimplementedinmultiplelanguages.
SeeAlsoWixSchema
Page 1150
CCPSearchElement
DescriptionUsesfilesignaturestovalidatethatqualifyingproductsareinstalledonasystembeforeanupgradeinstallationisperformed.TheCCPSearchactionshouldbeauthoredintotheInstallUISequencetableandInstallExecuteSequencetable.TheinstallerpreventstheCCPSearchactionfromrunningintheInstallExecuteSequencesequenceiftheactionhasalreadyruninInstallUISequencesequence.TheCCPSearchactionmustcomebeforetheRMCCPSearchaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesCCPSearchAction
ParentsInstallExecuteSequence,InstallUISequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthatthisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.
Page 1151
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,RMCCPSearch,ComplianceCheck
Page 1152
ChainElement
DescriptionContainsthechainofpackagestoinstall.
WindowsInstallerreferencesNone
ParentsBundle
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
ExePackage(min:0,max:unbounded)MsiPackage(min:0,max:unbounded)MspPackage(min:0,max:unbounded)MsuPackage(min:0,max:unbounded)PackageGroupRef(min:0,max:unbounded)RollbackBoundary(min:0,max:unbounded)
Attributes
Name Type Description Required
DisableRollback YesNoType Specifieswhetherthebundlewillattempttorollbackpackagesexecutedinthechain.If"yes"isspecifiedthenwhenavitalpackagefailstoinstallonlythat
Page 1153
packagewillrollbackandthechainwillstopwiththeerror.Thedefaultis"no"whichindicatesallpackagesexecutedduringthechainwillberolledbacktotheirpreviousstatewhenavitalpackagefails.
DisableSystemRestore YesNoType Specifieswhetherthebundlewillattempttocreateasystemrestorepointwhenexecutingthechain.If"yes"isspecifiedthenasystemrestorepointwillnotbecreated.Thedefaultis"no"whichindicatesasystemrestorepointwillbecreatedwhenthebundleisinstalled,uninstalled,repaired,modified,etc.Ifthesystemrestorepointcannotbecreated,thebundlewilllogtheissueandcontinue.
Page 1154
ParallelCache YesNoType Specifieswhetherthebundlewillstartinstallingpackageswhileotherpackagesarestillbeingcached.If"yes",packageswillstartexecutingwhenarollbackboundaryisencountered.Thedefaultis"no"whichdictatesallpackagesmustbecachedbeforeanypackageswillstarttobeinstalled.
SeeAlsoWixSchema
Page 1155
ClassElement
DescriptionCOMClassregistrationforparentComponent.
WindowsInstallerreferencesClassTable,ProgIdTable,RegistryTable,AppIdTable
ParentsAppId,Component,File,TypeLib
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
FileTypeMask(min:0,max:unbounded)Interface(min:0,max:unbounded):TheseInterfaceswillberegisteredwiththeparentClassandTypeLib(ifpresent).ProgId(min:0,max:unbounded):AProgIdassociatedwithClassmustbeachildelementoftheClasselement
Attributes
Name Type Description Required
Id Guid TheClassidentifier(CLSID)ofaCOMserver.
Yes
Advertise YesNoType Setthisvalueto"yes"inordertocreateanormalClasstablerow.Setthisvalueto"no"inordertogenerateRegistryrowsthatperformsimilarregistration
Page 1156
(withouttheoftenproblematicWindowsInstalleradvertisingbehavior).
AppId Guid ThisattributeisonlyallowedwhenaClassisadvertised.UsingthisattributewillreferenceanApplicationIDcontainingDCOMinformationfortheassociatedapplicationGUID.ThevaluemustcorrespondtoanAppId/@IdofanAppIdelementnestedunderaFragment,Module,orProductelement.ToassociateanAppIdwithanon-advertisedclass,nesttheclasswithinaparentAppIdelement.
Argument String ThiscolumnisoptionalonlywhentheContextcolumnissetto"LocalServer"or"LocalServer32"servercontext.ThetextisregisteredastheargumentagainsttheOLEserverandisusedbyOLEforinvokingtheserver.Notethattheresolutionofpropertiesinthe
Page 1157
Argumentfieldislimited.Apropertyformattedas[Property]inthisfieldcanonlyberesolvedifthepropertyalreadyhastheintendedvaluewhenthecomponentowningtheclassisinstalled.Forexample,fortheargument"[#MyDoc.doc]"toresolvetothecorrectvalue,thesameprocessmustbeinstallingthefileMyDoc.docandthecomponentthatownstheclass.
Context List Theservercontext(s)forthisCOMserver.ThisattributeisoptionalforVB6librariesthataremarked"PublicNotCreateable".ClasselementsmarkedAdvertisedmustspecifyatleastoneservercontext.ItismostcommonfortheretobeasinglevaluefortheContextattribute.Thisattribute'svalueshouldbeaspace-delimitedlistcontaingoneormoreofthe
Page 1158
following:LocalServer
A16-bitlocalserverapplication.
LocalServer32A32-bitlocalserverapplication.
InprocServerA16-bitin-processserverDLL.
InprocServer32A32-bitin-processserverDLL.
Control YesNoType Setthisattribute'svalueto'yes'toidentifyanobjectasanActiveXControl.Thedefaultvalueis'no'.
Description String LocalizeddescriptionassociatedwiththeClassIDandProgramID.
ForeignServer String MayonlybespecifiedifthevalueoftheAdvertiseattributeis"no"andServerhasnotbeenspecified.Inaddition,itmayonlybeusedwhentheClasselementisdirectlyundertheComponentelement.
Page 1159
Thevaluecanbethatofanregistrytype(REG_SZ).Thisattributeshouldbeusedtospecifyforeignservers,suchasmscoree.dllifneeded.
Handler String Thedefaultinprochandler.MaybeoptionallyprovidedonlyforContext=LocalServerorLocalServer32.Valueof"1"createsa16-bitInprocHandler(appearingastheInprocHandlervalue).Valueof"2"createsa32-bitInprocHandler(appearingastheInprocHandler32value).Valueof"3"creates16-bitaswellas32-bitInprocHandlers.Anon-numericvalueistreatedasasystemfilethatservesasthe32-bitInprocHandler(appearingastheInprocHandler32value).
Icon String ThefileprovidingtheiconassociatedwiththisCLSID.ReferencetoanIconelement(shouldmatchtheIdattributeofanIcon
Page 1160
element).ThisiscurrentlynotsupportedifthevalueoftheAdvertiseattributeis"no".
IconIndex Integer Iconindexintotheiconfile.
Insertable YesNoType SpecifiestheCLSIDmaybeinsertable.
Programmable YesNoType SpecifiestheCLSIDmaybeprogrammable.
RelativePath YesNoType Whenthevalueis"yes",thebarefilenamecanbeusedforCOMservers.Theinstallerregistersthefilenameonlyinsteadofthecompletepath.Thisenablestheserverinthecurrentdirectorytotakeprecedenceandallowsmultiplecopiesofthesamecomponent.
SafeForInitializing YesNoType MayonlybespecifiedifthevalueoftheAdvertiseattributeis"no".
SafeForScripting YesNoType MayonlybespecifiedifthevalueoftheAdvertiseattributeis"no".
Server String Mayonlybespecified
Page 1161
ifthevalueoftheAdvertiseattributeis"no"andtheForeignServerattributeisnotspecified.FileIdoftheCOMserverfile.IfthiselementisnestedunderaFileelement,thisvaluedefaultstothevalueoftheparentFile/@Id.
ShortPath YesNoType SpecifieswhetherornottousetheshortpathfortheCOMserver.ThiscanonlyapplywhenAdvertiseissetto'no'.Thedefaultis'no'meaningthatitwillusethelongfilenamefortheCOMserver.
ThreadingModel Enumeration ThreadingmodelfortheCLSID.Thisattribute'svaluemustbeoneofthefollowing:apartment
free
both
neutral
single
rental
Version String VersionfortheCLSID.
Page 1162
RemarksWhenbeingusedinunadvertisedmode,theattributesintheClasselementcorrespondtoregistrykeysasfollows(valuesthatcanbespecifiedinauthoringareinbold):Id/Context/Server
InGeneral[HKCR\CLSID\{Id}\Context1]@="[!Server]"[HKCR\CLSID\{Id}\Context2]@="[!Server]"
SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer]@="[!comserv.dll]"[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]@="[!comserv.dll]"
Id/Context/ForeignServerInGeneral
[HKCR\CLSID\{Id}\Context1]@="ForeignServer"[HKCR\CLSID\{Id}\Context2]@="ForeignServer"
SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer]@="mscoree.dll"[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]@="mscoree.dll"
AppIdInGeneral
[HKCR\CLSID\{Id}]AppId="{AppId}"
SpecificExample
Page 1163
[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}]AppId="{00000000-89AB-0000-0123-000000000000}"
ArgumentInGeneral
[HKCR\CLSID\{Id}\Context]@="[!Server]Argument"
SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]@="[!comserv.dll]/arg1/arg2/arg3"
ControlInGeneral
Value"yes"specified:[HKCR\CLSID\{Id}\Control]
SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Control]
DescriptionInGeneral
[HKCR\CLSID\{Id}]@="Description"
SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}]@="DescriptionofExampleCOMComponent"
HandlerInGeneral
Value"1"specified:[HKCR\CLSID\{Id}\InprocHandler]@="ole.dll"Value"2"specified:[HKCR\CLSID\{Id}\InprocHandler32]@="ole32.dll"Value"3"specified:
Page 1164
[HKCR\CLSID\{Id}\InprocHandler]@="ole.dll"[HKCR\CLSID\{Id}\InprocHandler32]@="ole32.dll"Othervaluespecified:[HKCR\CLSID\{Id}\InprocHandler32]@="Handler"
SpecificExample(forothervalue)[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\InprocHandler32]@="handler.dll"
Icon/IconIndexThisisnotcurrentlyhandledproperly.
InsertableInGeneral
Value"no"specified:[HKCR\CLSID\{Id}\NotInsertable]Value"yes"specified:[HKCR\CLSID\{Id}\Insertable]
SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Insertable]
ProgrammableInGeneral
Value"yes"specified:[HKCR\CLSID\{Id}\Programmable]
SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Programmable]
RelativePathUnsupported.PleasecontributethisbacktoWiXifyouknow.
SafeForInitializingInGeneral
Value"yes"specified:
Page 1165
[HKCR\CLSID\{Id}\ImplementedCategories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}]
SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\ImplementedCategories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}]
SafeForScriptingInGeneral
Value"yes"specified:[HKCR\CLSID\{Id}\ImplementedCategories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}]
SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\ImplementedCategories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}]
ThreadingModelInGeneral
[HKCR\CLSID\{Id}\Context]ThreadingModel="ThreadingModel"
SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]ThreadingModel="Apartment"
TypeLibId(fromparentTypeLib/@Id)InGeneral
[HKCR\CLSID\{Id}\TypeLib]@="{TypeLibId}"
SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\TypeLib]@="{11111111-89AB-1111-0123-111111111111}"
VersionInGeneral
[HKCR\CLSID\{Id}\Version]
Page 1166
@="Version"
SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Version]@="1.0.0.0"
SeeAlsoWixSchema,AppId
Page 1167
ColumnElement
DescriptionColumndefinitionforaCustomTable
WindowsInstallerreferencesNone
ParentsCustomTable
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierforthecolumn. Yes
Category Enumeration Categoryofthiscolumn.Thisattributemustbespecifiedwithavalueof'Binary'iftheTypeattribute'svalueis'binary'.Thisattribute'svaluemustbeoneofthefollowing:Text
UpperCase
LowerCase
Integer
DoubleInteger
TimeDate
Page 1168
Identifier
Property
Filename
WildCardFilename
Path
Paths
AnyPath
DefaultDir
RegPath
Formatted
FormattedSddl
Template
Condition
Guid
Version
Language
Binary
CustomSource
Cabinet
Shortcut
Description String Descriptionofthiscolumn.
KeyColumn Integer ColumninthetableinKeyTableattribute.
KeyTable String Tableinwhichthiscolumnisanexternalkey.Canbesemicolondelimited.
Page 1169
Localizable YesNoType Whetherthiscolumncanbelocalized.
MaxValue Integer Maximumvalueforanumericvalue,dateorversioninthiscolumn.
MinValue Integer Minimumvalueforanumericvalue,dateorversioninthiscolumn.
Modularize Enumeration Howthiscolumnshouldbemodularized,ifatall.Thisattribute'svaluemustbeoneofthefollowing:None
Columnshouldnotbemodularized.Thisisthedefaultvalue.
ColumnColumnshouldbemodularized.
ConditionColumnisaconditionandshouldbemodularized.
IconWhenthecolumnisanprimaryorforeignkeytotheIcontableitshouldbemodularizedspecial.
PropertyAnyPropertiesinthecolumnshouldbemodularized.
SemicolonDelimited
Page 1170
Semi-colonlistofkeys,allofwhichneedtobemodularized.
Nullable YesNoType Whetherthiscolumncanbeleftnull.
PrimaryKey YesNoType Whetherthiscolumnisaprimarykey.
Set String Semicolondelimitedlistofpermissiblevalues.
Type Enumeration Thetypeofthiscolumn.Thisattribute'svaluemustbeoneofthefollowing:binary
Columncontainsapathtoafilethatwillbeinsertedintothecolumnasabinaryobject.Ifthisvalueisset,theCategoryattributemustalsobesetwithavalueof'Binary'topassICEvalidation.
intColumncontainsanintegerordatetimevalue(theMinValueandMaxValueattributesshouldalsobeset).
stringColumncontainsanon-localizablestringvalue.
Yes
Width Integer Widthofthiscolumn.
Page 1171
SeeAlsoWixSchema
Page 1172
ComboBoxElement
DescriptionSetofitemsforaparticularComboBoxcontroltiedtoaninstallProperty
WindowsInstallerreferencesComboBoxTable,ControlTable,DialogTable
ParentsControl,UI
InnerTextNone
ChildrenSequence(min:1,max:1)1. ListItem(min:0,max:unbounded):entryforComboBoxtable
Attributes
Name Type Description Required
Property String Propertytiedtothisgroup Yes
SeeAlsoWixSchema
Page 1173
CommandLineElement
DescriptionDescribesadditional,conditionalcommand-lineargumentsforanExePackage.
WindowsInstallerreferencesNone
ParentsExePackage
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Condition String Theconditionthatcontrolswhetherthecommand-lineargumentsspecifiedintheInstallArgument,UninstallArgument,orRepairArgumentattributesareappendedtothecommandlinepassedtotheExePackage.WhichattributeisuseddependsontheactionbeingappliedtotheExePackage.Forexample,whentheExePackageisbeinginstalled,theInstallArgumentattribute
Page 1174
valueisappendedtothecommandlinewhentheExePackageisexecuted.
InstallArgument String Additionalcommand-lineargumentstoapplyduringpackageinstallationifConditionistrue.
RepairArgument String Additionalcommand-lineargumentstoapplyduringpackagerepairifConditionistrue.
UninstallArgument String Additionalcommand-lineargumentstoapplyduringpackageuninstallationifConditionistrue.
SeeAlsoWixSchema
Page 1175
ComplianceCheckElement
DescriptionAddsarowtotheCCPSearchtable.
WindowsInstallerreferencesCCPSearchTable,SignatureTable
ParentsFragment,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Sequence(min:1,max:1)1. ComplianceDrive(min:0,max:1):Startssearchesfromthe
CCP_DRIVE.2. ComponentSearch(min:0,max:unbounded)3. RegistrySearch(min:0,max:unbounded)4. IniFileSearch(min:0,max:unbounded)5. DirectorySearch(min:0,max:unbounded)
AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
AttributesNone
SeeAlsoWixSchema,Property
Page 1176
ComplianceDriveElement
DescriptionSetstheparentofanestedDirectorySearchelementtoCCP_DRIVE.
WindowsInstallerreferencesNone
ParentsComplianceCheck,Property
InnerTextNone
ChildrenChoiceofelements(min:1,max:1)
DirectorySearch(min:1,max:1)DirectorySearchRef(min:1,max:1)
AttributesNone
SeeAlsoWixSchema
Page 1177
ComponentElement
DescriptionComponentforparentDirectory
WindowsInstallerreferencesComponentTable,ConditionTable,DirectoryTable
ParentsComponentGroup,Directory,DirectoryRef,Feature,FeatureGroup,FeatureRef,Fragment,Module,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
AppId(min:0,max:unbounded)Category(min:0,max:unbounded)Class(min:0,max:unbounded)Condition(min:0,max:unbounded)CopyFile(min:0,max:unbounded)CreateFolder(min:0,max:unbounded)Environment(min:0,max:unbounded)Extension(min:0,max:unbounded)File(min:0,max:unbounded)IniFile(min:0,max:unbounded)Interface(min:0,max:unbounded)IsolateComponent(min:0,max:unbounded)ODBCDataSource(min:0,max:unbounded)ODBCDriver(min:0,max:unbounded)ODBCTranslator(min:0,max:unbounded)ProgId(min:0,max:unbounded)Registry(min:0,max:unbounded)
Page 1178
RegistryKey(min:0,max:unbounded)RegistryValue(min:0,max:unbounded)RemoveFile(min:0,max:unbounded)RemoveFolder(min:0,max:unbounded)RemoveRegistryKey(min:0,max:unbounded)RemoveRegistryValue(min:0,max:unbounded)ReserveCost(min:0,max:unbounded)ServiceConfig(min:0,max:unbounded)ServiceConfigFailureActions(min:0,max:unbounded)ServiceControl(min:0,max:unbounded)ServiceInstall(min:0,max:unbounded)Shortcut(min:0,max:unbounded)SymbolPath(min:0,max:unbounded)TypeLib(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
CertificateComPlusApplicationComPlusApplicationRoleComPlusAssemblyComPlusGroupInApplicationRoleComPlusGroupInPartitionRoleComPlusPartitionComPlusPartitionRoleComPlusPartitionUserComPlusRoleForComponentComPlusRoleForInterfaceComPlusRoleForMethodComPlusSubscriptionComPlusUserInApplicationRoleComPlusUserInPartitionRoleDriver
Page 1179
EventSourceFileShareFirewallExceptionInternetShortcutMessageQueueMessageQueuePermissionPerformanceCategoryProvidesRemoveFolderExRestartResourceServiceConfigSqlDatabaseSqlScriptSqlStringUrlReservationUserVsixPackageWebAppPoolWebDirWebFilterWebPropertyWebServiceExtensionWebSiteWebVirtualDirXmlConfigXmlFile
Attributes
Name Type Description
ComPlusFlags Integer SetthisattributetocreateaComPlusentry.Thevalueshouldbetheexportflagsusedduringthegenerationofthe.msi
Page 1180
file.FormoreinformationseetheCOM+documentationinthePlatformSDK.
Directory String SetstheDirectoryoftheComponent.IfthiselementisnestedunderaDirectoryelement,thisvaluedefaultstothevalueoftheparentDirectory/@Id.
DisableRegistryReflection YesNoType Setthisattributeto'yes'inordertodisableregistryreflectiononallexistingandnewregistrykeysaffectedbythiscomponent.Whensetto'yes',theWindowsInstallercallstheRegDisableReflectionKeyoneachkeybeingaccessedbythecomponent.ThisbitisavailablewithWindowsInstallerversion4.0andisignoredon32-bitsystems.
DiskId DiskIdType ThisattributeprovidesadefaultDiskIdattributeforallchildFileelements.SpecifyingtheDiskIdonaComponentelementwilloverrideanyDiskIdattributessetbyparentDirectoryorDirectoryRefelements.SeetheFileelement'sDiskIdattribute
Page 1181
formoreinformationaboutthepurposeoftheDiskId.
Feature String Identifiesafeaturetowhichthiscomponentbelongs,asashorthandforachildComponentRefelementoftheFeatureelement.ThevalueofthisattributeshouldcorrespondtotheIdattributeofaFeatureelementauthoredelsewhere.Notethatasinglecomponentcanbelongtomultiplefeaturesbutthisattributeallowsyoutospecifyonlyasinglefeature.
Guid ComponentGuid Thisvalueshouldbeaguidthatuniquelyidentifiesthiscomponent'scontents,language,platform,andversion.Ifomitted,thedefaultvalueis'*'whichindicatesthatthelinkershouldgenerateastableguid.Generatableguidsaresupportedonlyforcomponentswithasinglefileasthecomponent'skeypathornofilesandaregistryvalueasthekeypath.It'salsopossibletosetthevaluetoanemptystringtospecifyanunmanaged
Page 1182
component.UnmanagedcomponentsareasecurityvulnerabilitybecausethecomponentcannotberemovedorrepairedbyWindowsInstaller(itisessentiallyanunpatchable,permanentcomponent).Therefore,aguidshouldalwaysbespecifiedforanycomponentwhichcontainsresourcesthatmayneedtobepatchedinthefuture.
Id String Componentidentifier;thisistheprimarykeyforidentifyingcomponents.Ifomitted,thecompilerdefaultstheidentifiertotheidentifieroftheresourcethatistheexplicitkeypathofthecomponent(forexample,achildFileelementwithKeyPathattributewithvalue'yes'.
KeyPath YesNoType Ifthisattribute'svalueissetto'yes',thentheDirectoryofthisComponentisusedastheKeyPath.TosetaRegistryvalueorFileastheKeyPathofacomponent,settheKeyPathattributeto'yes'ononeofthosechildelements.IfKeyPathis
Page 1183
notsetto'yes'fortheComponentorforachildRegistryvalueorFile,WiXwilllookatthechildelementsundertheComponentinsequentialorderandtrytoautomaticallyselectoneofthemasakeypath.AllowingWiXtoautomaticallyselectakeypathcanbedangerousbecauseaddingorremovingchildelementsundertheComponentcaninadvertantlycausethekeypathtochange,whichcanleadtoinstallationproblems.
Location Enumeration Optionalvaluethatspecifiesthelocationthatthecomponentcanberunfrom.Thisattribute'svaluemustbeoneofthefollowing:local
Preventsthecomponentfromrunningfromthesourceorthenetwork(thisisthedefaultbehaviorifthisattributeisnotset).
sourceEnforcesthatthecomponentcanonly
Page 1184
berunfromthesource(itcannotberunfromtheuser'scomputer).
eitherAllowsthecomponenttorunfromsourceorlocally.
MultiInstance YesNoType Ifthisattributeissetto'yes',anewComponent/@Guidwillbegeneratedforeachinstancetransform.Ensurethatalloftheresourcescontainedinamulti-instanceComponentwillbeinstalledtodifferentpathsbasedontheinstanceProperty;otherwise,theComponentRuleswillbeviolated.
NeverOverwrite YesNoType Ifthisattributeissetto'yes',theinstallerdoesnotinstallorreinstallthecomponentifakeypathfileorakeypathregistryentryforthecomponentalreadyexists.Theapplicationdoesregisteritselfasaclientofthecomponent.Usethisflagonlyforcomponentsthatarebeingregisteredby
Page 1185
theRegistrytable.DonotusethisflagforcomponentsregisteredbytheAppId,Class,Extension,ProgId,MIME,andVerbtables.
Permanent YesNoType Ifthisattributeissetto'yes',theinstallerdoesnotremovethecomponentduringanuninstall.TheinstallerregistersanextrasystemclientforthecomponentintheWindowsInstallerregistrysettings(whichbasicallyjustmeansthatatleastoneproductisalwaysreferencingthiscomponent).Notethatthisoptiondiffersfromthebehaviorofnotsettingaguidbecausealthoughthecomponentispermanent,itisstillpatchable(becauseWindowsInstallerstilltracksit),it'sjustnotuninstallable.
Shared YesNoType Ifthisattribute'svalueissetto'yes',enablesadvancedpatchingsemanticsforComponentsthataresharedacrossmultipleProducts.Specifically,theWindowsInstallerwillcachethesharedfilestoimprovepatchuninstall.
Page 1186
ThisfunctionalityisavailableinWindowsInstaller4.5andlater.
SharedDllRefCount YesNoType Ifthisattribute'svalueissetto'yes',theinstallerincrementsthereferencecountinthesharedDLLregistryofthecomponent'skeyfile.Ifthisbitisnotset,theinstallerincrementsthereferencecountonlyifthereferencecountalreadyexists.
Transitive YesNoType Ifthisattributeissetto'yes',theinstallerreevaluatesthevalueofthestatementintheConditionuponareinstall.IfthevaluewaspreviouslyFalseandhaschangedtoTrue,theinstallerinstallsthecomponent.IfthevaluewaspreviouslyTrueandhaschangedtoFalse,theinstallerremovesthecomponentevenifthecomponenthasotherproductsasclients.
UninstallWhenSuperseded YesNoType Ifthisattributeissetto'yes',theinstallerwilluninstalltheComponent'sfilesandregistrykeyswhenitissupersededbyapatch.Thisfunctionalityis
Page 1187
availableinWindowsInstaller4.5andlater.
Win64 YesNoType Setthisattributeto'yes'tomarkthisasa64-bitcomponent.Thisattributefacilitatestheinstallationofpackagesthatincludeboth32-bitand64-bitcomponents.Ifthisisa64-bitcomponentreplacinga32-bitcomponent,setthisattributeto'yes'andassignanewGUIDintheGuidattribute.Thedefaultvalueisbasedontheplatformsetbythe-archswitchtocandle.exeortheInstallerPlatformpropertyina.wixprojMSBuildproject:Forx86andARM,thedefaultvalueis'no'.Forx64andIA64,thedefaultvalueis'yes'.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
HowTosandExamplesHowTo:Addafiletoyourinstaller
SeeAlsoWixSchema,ComponentRef,Media
Page 1188
ComponentGroupElement
DescriptionGroupstogethermultiplecomponentstobeusedinotherlocations.
WindowsInstallerreferencesNone
ParentsFragment,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Component(min:0,max:unbounded)ComponentGroupRef(min:0,max:unbounded)ComponentRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
Attributes
Name Type Description Required
Id String IdentifierfortheComponentGroup. Yes
Directory String SetsthedefaultdirectoryidentifierforchildComponentelements.
Source String UsedtosetthedefaultfilesystemsourceforchildComponentelements.Formoreinformation,seeSpecifyingsourcefiles.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensions
Page 1189
canregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,ComponentGroupRef
Page 1190
ComponentGroupRefElement
DescriptionCreateareferencetoaComponentGroupinanotherFragment.
WindowsInstallerreferencesNone
ParentsComponentGroup,Feature,FeatureGroup,FeatureRef,Module
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifieroftheComponentGrouptoreference.
Yes
Primary YesNoType Setthisattributeto'yes'inordertomaketheparentfeatureofthiscomponenttheprimaryfeatureforthiscomponent.Componentsmaybelongtomultiplefeatures.Bydesignatingafeatureastheprimaryfeatureofacomponent,youensurethatwheneveracomponentisselectedforinstall-on-demand(IOD),theprimaryfeaturewillbetheonetoinstallit.Thisattributeshouldonlybesetifacomponentactuallynestsundermultiplefeatures.Ifacomponentnestsunderonlyone
Page 1191
feature,thatfeatureistheprimaryfeatureforthecomponent.Youcannotsetmorethanonefeatureastheprimaryfeatureofagivencomponent.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,ComponentGroup
Page 1192
ComponentRefElement
DescriptionCreateareferencetoaFeatureelementinanotherFragment.
WindowsInstallerreferencesNone
ParentsComponentGroup,Feature,FeatureGroup,FeatureRef,Module,PatchFamily
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifieroftheComponentelementtoreference.
Yes
Primary YesNoType Setthisattributeto'yes'inordertomaketheparentfeatureofthiscomponenttheprimaryfeatureforthiscomponent.Componentsmaybelongtomultiplefeatures.Bydesignatingafeatureastheprimaryfeatureofacomponent,youensurethatwheneveracomponentisselectedforinstall-on-demand(IOD),theprimaryfeaturewillbetheonetoinstallit.Thisattributeshouldonlybesetifacomponentactuallynestsundermultiplefeatures.Ifa
Page 1193
componentnestsunderonlyonefeature,thatfeatureistheprimaryfeatureforthecomponent.Youcannotsetmorethanonefeatureastheprimaryfeatureofagivencomponent.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
HowTosandExamplesHowTo:Addafiletoyourinstaller
SeeAlsoWixSchema,Component
Page 1194
ComponentSearchElement
DescriptionSearchesforfileordirectoryandassignstovalueofparentProperty.
WindowsInstallerreferencesCompLocatorTable,SignatureTable
ParentsComplianceCheck,Property
InnerTextNone
ChildrenChoiceofelements(min:0,max:1)
DirectorySearch(min:0,max:1)DirectorySearchRef(min:0,max:1)FileSearch(min:0,max:1)FileSearchRef(min:0,max:1)
Attributes
Name Type Description Required
Id String Yes
Guid Guid ThecomponentIDofthecomponentwhosekeypathistobeusedforthesearch.
Type Enumeration MustbefileiflastchildisFileSearchelementandmustbedirectoryiflastchildisDirectorySearchelement.Thisattribute'svaluemustbeoneofthefollowing:directory
Page 1195
Thekeypathofthecomponentisadirectory.
fileThekeypathofthecomponentisafile.Thisisthedefaultvalue.
SeeAlsoWixSchema,IniFileSearch,RegistrySearch
Page 1196
ConditionElement
DescriptionConditionsforcomponents,controls,features,andproducts.Theconditionisspecifiedintheinnertextoftheelement.
WindowsInstallerreferencesComponentTable,ControlConditionTable,ConditionTable,LaunchConditionTable
ParentsComponent,Control,Feature,Fragment,PermissionEx,Product
InnerText(xs:string)UnderaComponentelement,theconditionbecomestheconditionofthecomponent.UnderaControlelement,theconditionbecomesaControlConditionentry.UnderaFeatureelement,theconditionbecomesaConditionentry.UnderaFragmentorProductelement,theconditionbecomesaLaunchConditionentry.
ChildrenNone
Attributes
Name Type Description Required
Action Enumeration UsedonlyunderControlelementsandisrequired.Allowsspecificactionstobeappliedtoacontrolbasedontheresultofthiscondition.Thisattribute'svaluemustbeoneofthefollowing:default
SettheControlasthedefault.OnlyusedunderControlelements.
Page 1197
enableEnabletheControl.OnlyusedunderControlelements.
disableDisabletheControl.OnlyusedunderControlelements.
hideHidetheControl.OnlyusedunderControlelements.
showDisplaytheControl.OnlyusedunderControlelements.
Level Integer UsedonlyunderFeatureelementsandisrequired.AllowsmodifyingthelevelofaFeaturebasedontheresultofthiscondition.
Message String UsedonlyunderFragmentorProductelementsandisrequired.Setthevaluetothetexttodisplaywhentheconditionfailsandtheinstallationmustbeterminated.
HowTosandExamplesHowTo:BlockinstallationbasedonOSversionHowTo:Checktheversionnumberofafileduringinstallation
SeeAlsoWixSchema
Page 1198
ConfigurationElement
DescriptionDefinestheconfigurableattributesofmergemodule.
WindowsInstallerreferencesNone
ParentsModule
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
ContextData String Specifiesasemanticcontextfortherequesteddata.
DefaultValue String Specifiesadefaultvaluefortheiteminthisrecordifthemergetooldeclinestoprovideavalue.
Description String Descriptionforauthoring.
DisplayName String Displaynameforauthoring.
Format Enumeration Specifiestheformatofthedatabeingchanged.Thisattribute'svaluemustbeoneofthefollowing:Text
Yes
Page 1199
Key
Integer
Bitfield
HelpKeyword String Keywordintochmfileforauthoring.
HelpLocation String Locationofchmfileforauthoring.
KeyNoOrphan YesNoType DoesnotmergeruleaccordingtorulesinMSISDK.
Name String Definesthenameoftheconfigurableitem.
Yes
NonNullable YesNoType Ifyes,nullisnotavalidentry.
Type String Specifiesthetypeofthedatabeingchanged.
SeeAlsoWixSchema
Page 1200
ConfigurationDataElement
DescriptionDatatouseasinputtoaconfigurablemergemodule.
WindowsInstallerreferencesNone
ParentsMerge
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Name String NameoftheitemintheModuleConfigurationtable.
Yes
Value String Valuetobepassedtoconfigurablemergemodule.
Yes
SeeAlsoWixSchema
Page 1201
ContainerElement
DescriptionRepresentationofafilethatcontainsoneormorefiles.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
PackageGroupRef(min:0,max:unbounded)
Attributes
Name Type Description Required
DownloadUrl String TheURLtousetodownloadthecontainer.Thisattributeisonlyvalidwhenthecontainerisdetached.Thefollowingsubstitutionsaresupported:
{0}isalwaysnull.{1}isreplacedbythecontainerId.{2}isreplaced
Page 1202
bythecontainerfilename.
Id String Theuniqueidentifierforthecontainer.IfthisattributeisnotspecifiedtheNameattributewillbeused.
Name String Thefilenameforthiscontainer.Arelativepathmaybeprovidedtoplacethecontainerinasub-folderofthebundle.
Type BurnContainerType Indicateswhetherthecontaineris"attached"tothebundleexecutableorplacedexternaltothebundleextecutableas"detached".Ifthisattributeisnotspecified,thedefaultistocreateadetachedcontainer.
SeeAlsoWixSchema
Page 1203
ContainerRefElement
DescriptionCreateareferencetoanexistingContainerelement.
WindowsInstallerreferencesNone
ParentsBundle
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifierofContainerelementtoreference.
Yes
SeeAlsoWixSchema,Container
Page 1204
ControlElement
DescriptionContainsthecontrolsthatappearoneachdialog.
WindowsInstallerreferencesControlTable,ComboBoxTable,DialogTable,ListBoxTable,ListViewTable,RadioButtonTable
ParentsBillboard,Dialog
InnerTextNone
ChildrenSequence(min:1,max:1)1. Text(min:0,max:1):alternativetoTextattributewhenCDATAis
neededtoescapeXMLdelimiters2. ComboBox(min:0,max:1):ComboBoxtablewithListItem
children3. ListBox(min:0,max:1):ListBoxtablewithListItemchildren4. ListView(min:0,max:1):ListViewtablewithListItemchildren5. RadioButtonGroup(min:0,max:1):RadioButtontablewith
RadioButtonchildren6. Property(min:0,max:1):PropertytableentryfortheProperty
tablecolumnassociatedwiththiscontrol7. Binary(min:0,max:1):Iconreferencediniconcolumnofrow8. Choiceofelements(min:0,max:unbounded)
Condition(min:0,max:unbounded):Conditiontospecifyactionsforthiscontrolbasedontheoutcomeofthecondition.Publish(min:0,max:unbounded)Subscribe(min:0,max:unbounded)
Attributes
Page 1205
Name Type Description Required
Id String CombinedwiththeDialogIdtomakeuptheprimarykeyoftheControltable.
Yes
Bitmap YesNoType ThisattributeisonlyvalidforRadioButtonandPushButtonControls.
Cancel YesNoType Setthisattributeto"yes"tocausethisControltobeinvokedbytheescapekey.
CDROM YesNoType ThisattributeisonlyvalidforVolumeandDirectoryControls.
CheckBoxPropertyRef String ThisattributeisonlyvalidforCheckBoxcontrols.ThevalueisthenameofaPropertythatwasalreadyusedasthePropertyforanotherCheckBoxcontrol.ThePropertyattributecannotbespecified.Theattributeexiststosupportmultiplecheckboxesondifferentdialogsbeingtiedtothesameproperty.
CheckBoxValue String Thisattributeisonly
Page 1206
validforCheckBoxControls.Whenset,thelinkedPropertywillbesettothisvaluewhenthecheckboxischecked.
ComboList YesNoType ThisattributeisonlyvalidforComboBoxControls.
Default YesNoType Setthisattributeto"yes"tocausethisControltobeinvokedbythereturnkey.
Disabled YesNoType Setthisattributeto"yes"tocausetheControltobedisabled.
ElevationShield YesNoType ThisattributeisonlyvalidforPushButtoncontrols.Setthisattributeto"yes"toaddtheUserAccountControl(UAC)elevationicon(shieldicon)tothePushButtoncontrol.Ifthisattribute'svalueis"yes"andtheinstallationisnotyetrunningwithelevatedprivileges,thepushbuttoncontroliscreatedusingtheUser
Page 1207
AccountControl(UAC)elevationicon(shieldicon).Ifthisattribute'svalueis"yes"andtheinstallationisalreadyrunningwithelevatedprivileges,thepushbuttoncontroliscreatedusingtheothericonattributes.Otherwise,thepushbuttoncontroliscreatedusingtheothericonattributes.
Fixed YesNoType ThisattributeisonlyvalidforVolumeandDirectoryControls.
FixedSize YesNoType ThisattributeisonlyvalidforRadioButton,PushButton,andIconControls.
Floppy YesNoType ThisattributeisonlyvalidforVolumeandDirectoryControls.
FormatSize YesNoType ThisattributeisonlyvalidforTextControls.
HasBorder YesNoType ThisattributeisonlyvalidforRadioButtonControls.
Height LocalizableInteger Heightoftherectangular
Yes
Page 1208
boundaryofthecontrol.Thismustbeanon-negativenumber.
Help String Thisattributeisreservedforfutureuse.ThereisnoneedtousethisuntilWindowsInstallerusesitforsomething.
Hidden YesNoType Setthisattributeto"yes"tocausetheControltobehidden.
Icon YesNoType ThisattributeisonlyvalidforRadioButtonandPushButtonControls.
IconSize Enumeration ThisattributeisonlyvalidforRadioButton,PushButton,andIconControls.Thisattribute'svaluemustbeoneofthefollowing:16
32
48
Image YesNoType ThisattributeisonlyvalidforRadioButton,PushButton,andIconControls.
Page 1209
Indirect YesNoType Specifieswhetherthevaluedisplayedorchangedbythiscontrolisreferencedindirectly.Ifthisbitisset,thecontroldisplaysorchangesthevalueofthepropertythathastheidentifierlistedinthePropertycolumnoftheControltable.
Integer YesNoType Setthisattributeto"yes"tocausethelinkedPropertyvaluefortheControltobetreatedasaninteger.Otherwise,thePropertywillbetreatedasastring.
LeftScroll YesNoType Setthisattributeto"yes"tocausethescrollbartodisplayontheleftsideoftheControl.
Multiline YesNoType ThisattributeisonlyvalidforEditControls.
NoPrefix YesNoType ThisattributeisonlyvalidforTextControls.
NoWrap YesNoType ThisattributeisonlyvalidforTextControls.
Password YesNoType Thisattributeisonly
Page 1210
validforEditControls.
ProgressBlocks YesNoType ThisattributeisonlyvalidforProgressBarControls.
Property String Thenameofadefinedpropertytobelinkedtothiscontrol.Thiscolumnisrequiredforactivecontrols.
PushLike YesNoType ThisattributeisonlyvalidforRadioButtonandCheckboxControls.
RAMDisk YesNoType ThisattributeisonlyvalidforVolumeandDirectoryControls.
Remote YesNoType ThisattributeisonlyvalidforVolumeandDirectoryControls.
Removable YesNoType ThisattributeisonlyvalidforVolumeandDirectoryControls.
RightAligned YesNoType Setthisattributeto"yes"tocausetheControltoberightaligned.
RightToLeft YesNoType Setthisattributeto"yes"tocausetheControltodisplayfromrighttoleft.
ShowRollbackCost YesNoType Thisattributeisonlyvalidfor
Page 1211
VolumeCostListControls.
Sorted YesNoType ThisattributeisonlyvalidforListBox,ListView,andComboBoxControls.Setthevalueofthisattributeto"yes"tohaveentriesappearintheorderspecifiedundertheControl.Iftheattributevalueis"no"orabsenttheentriesinthecontrolwillappearinalphabeticalorder.
Sunken YesNoType Setthisattributeto"yes"tocausetheControltobesunken.
TabSkip YesNoType Setthisattributeto"yes"tocausethisControltobeskippedinthetabsequence.
Text String Alocalizablestringusedtosettheinitialtextcontainedinacontrol.Thisattributecancontainaformattedstringthatisprocessedatinstalltimetoinsertthevaluesofpropertiesusing[PropertyName]
Page 1212
syntax.Alsosupportedareenvironmentvariables,fileinstallationpaths,andcomponentinstallationdirectories;seeFormattedfordetails.
ToolTip String ThestringusedfortheTooltip.
Transparent YesNoType ThisattributeisonlyvalidforTextControls.
Type String Thetypeofthecontrol.Couldbeoneofthefollowing:Billboard,Bitmap,CheckBox,ComboBox,DirectoryCombo,DirectoryList,Edit,GroupBox,Hyperlink,Icon,Line,ListBox,ListView,MaskedEdit,PathEdit,ProgressBar,PushButton,RadioButtonGroup,ScrollableText,SelectionTree,Text,VolumeCostList,VolumeSelectCombo
Yes
UserLanguage YesNoType Thisattributeisonly
Page 1213
validforTextControls.
Width LocalizableInteger Widthoftherectangularboundaryofthecontrol.Thismustbeanon-negativenumber.
Yes
X LocalizableInteger Horizontalcoordinateoftheupper-leftcorneroftherectangularboundaryofthecontrol.Thismustbeanon-negativenumber.
Yes
Y LocalizableInteger Verticalcoordinateoftheupper-leftcorneroftherectangularboundaryofthecontrol.Thismustbeanon-negativenumber.
Yes
SeeAlsoWixSchema
Page 1214
CopyFileElement
DescriptionCopyormoveanexistingfileonthetargetmachine,orcopyafilethatisbeinginstalled,toanotherdestination.WhenthiselementisnestedunderaFileelement,theparentfilewillbeinstalled,thencopiedtothespecifieddestinationiftheparentcomponentofthefileisselectedforinstallationorremoval.WhenthiselementisnestedunderaComponentelementandnoFileIdattributeisspecified,thefiletocopyormovemustalreadybeonthetargetmachine.WhenthiselementisnestedunderaComponentelementandtheFileIdattributeisspecified,thespecifiedfileisinstalled,thencopiedtothespecifieddestinationiftheparentcomponentisselectedforinstallationorremoval(usethisoptiontocontrolthecopyofafileinadifferentcomponentbytheparentcomponent'sinstallationstate).Ifthespecifieddestinationdirectoryisthesameasthedirectorycontainingtheoriginalfileandthenamefortheproposedsourcefileisthesameastheoriginal,thennoactiontakesplace.
WindowsInstallerreferencesDuplicateFileTable,MoveFileTable
ParentsComponent,File
InnerTextNone
ChildrenNone
Attributes
Name Type Description
Id String Primarykeyusedtoidentifythisparticularentry.
Page 1215
Delete YesNoType ThisattributecannotbespecifiediftheelementisnestedunderaFileelementortheFileIdattributeisspecified.Inothercases,iftheattributeisnotspecified,thedefaultvalueis"no"andthefileiscopied,notmoved.Setthevalueto"yes"tomovethefile(thusdeletingthesourcefile)insteadofcopyingit.
DestinationDirectory String Setthisvaluetothedestinationdirectorywhereanexistingfileonthetargetmachineshouldbemovedorcopiedto.ThisDirectorymustexistintheinstallerdatabaseatcreationtime.attributecannotbespecifiedinconjunctionwithDestinationProperty.
DestinationLongName LongFileNameType Thisattributehasbeendeprecated;pleaseusetheDestinationNameattributeinstead.
DestinationName LongFileNameType InpriorversionsoftheWiXtoolset,thisattributespecifiedthe
Page 1216
shortfilename.setthisvaluetothelocalizablenametobegiventotheoriginalfileafteritismovedorcopied.Ifthisattributeisnotspecified,thenthedestinationfileisgiventhesamenameasthesourcefile.shortfilenameisspecified,theDestinationShortNameattributemaynotbespecified.Ifalongfilenameisspecified,theDestinationLongNameattributemaynotbespecified.Also,ifthisvalueisalongfilename,theDestinationShortNameattributemaybeomittedtoallowWiXtoattempttogenerateauniqueshortfilename.However,ifthisnamecollideswithanotherfileoryouwishtomanuallyspecifytheshortfilename,thentheDestinationShortNameattributemaybespecified.
DestinationProperty String Setthisvaluetoapropertythatwillhaveavaluethatresolves
Page 1217
tothefullpathofthedestinationdirectory.Thepropertydoesnothavetoexistintheinstallerdatabaseatcreationtime;itcouldbecreatedatinstallationtimebyacustomaction,onthecommandline,etc.ThisattributecannotbespecifiedinconjunctionwithDestinationDirectory.
DestinationShortName ShortFileNameType Theshortfilenameofthefilein8.3format.Thisattributeshouldonlybesetifthereisaconflictbetweengeneratedshortfilenamesoryouwishtomanuallyspecifytheshortfilename.
FileId String ThisattributecannotbespecifiediftheelementisnestedunderaFileelement.Setthisattribute'svaluetotheidentifierofafilefromadifferentcomponenttocopyitbasedontheinstallstateoftheparentcomponent.
SourceDirectory String Thisattributecannotbespecifiediftheelementisnested
Page 1218
underaFileelementortheFileIdattributeisspecified.Setvaluetothesourcedirectoryfromwhichtocopyormoveanexistingfileonthetargetmachine.Directorymusttheinstallerdatabaseatcreationtime.attributecannotbespecifiedinconjunctionwithSourceProperty.
SourceName WildCardLongFileNameType ThisattributecannotbespecifiediftheelementisnestedunderaFileelementortheFileIdattributeisspecified.Setvaluetothelocalizablenameofthefile(s)tobecopiedormoved.Allofthefilesthatmatchthewildcardwillberemovedfromthespecifieddirectory.Thevalueisafilenamethatmayalsocontainthewildcardcharacters"?"foranysinglecharacteror"*"forzeroormoreoccurrencesofanycharacter.Ifthisattributeisnot
Page 1219
specified(andthiselementisnotnestedunderaFileelementorspecifyaFileIdattribute)thentheSourcePropertyattributeshouldbesettothenameofapropertythatwillresolvetothefullpathofthesourcefilename.Ifthevalueofthisattributecontainsa"*"wildcardandtheDestinationNameattributeisspecified,allmovedorcopiedfilesretainthefilenamesfromtheirsources.
SourceProperty String ThisattributecannotbespecifiediftheelementisnestedunderaFileelementortheFileIdattributeisspecified.Setvaluetoapropertythatwillhaveavaluethatresolvestothefullpathofthesourcedirectory(orfullpathincludingfilenameifSourceNameisnotspecified).Thepropertydoesnothavetoexistintheinstallerdatabaseat
Page 1220
creationtime;itcouldbecreatedatinstallationtimebyacustomaction,onthecommandline,etc.ThisattributebespecifiedinconjunctionwithSourceDirectory.
SeeAlsoWixSchema,RemoveFile
Page 1221
CostFinalizeElement
DescriptionEndstheinternalinstallationcostingprocessbegunbytheCostInitializeaction.AnystandardorcustomactionsthataffectcostingshouldbesequencedbeforetheCostInitializeaction.CalltheFileCostactionimmediatelyfollowingtheCostInitializeactionandthencalltheCostFinalizeactiontomakeallfinalcostcalculationsavailabletotheinstallerthroughtheComponenttable.TheCostFinalizeactionmustbeexecutedbeforestartinganyuserinterfacesequencewhichallowstheusertoviewormodifyFeaturetableselectionsordirectories.TheCostFinalizeactionqueriestheConditiontabletodeterminewhichfeaturesarescheduledtobeinstalled.CostingisdoneforeachcomponentintheComponenttable.TheCostFinalizeactionalsoverifiesthatallthetargetdirectoriesarewritablebeforeallowingtheinstallationtocontinue.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesCostFinalizeAction
ParentsAdminExecuteSequence,AdminUISequence,AdvertiseExecuteSequence,InstallExecuteSequence,InstallUISequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethe
Page 1222
positionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,CostInitialize,FileCost
Page 1223
CostInitializeElement
DescriptionInitiatestheinternalinstallationcostingprocess.AnystandardorcustomactionsthataffectcostingshouldbesequencedbeforetheCostInitializeaction.CalltheFileCostactionimmediatelyfollowingtheCostInitializeaction.ThencalltheCostFinalizeactionfollowingtheCostInitializeactiontomakeallfinalcostcalculationsavailabletotheinstallerthroughtheComponenttable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesCostInitializeAction
ParentsAdminExecuteSequence,AdminUISequence,AdvertiseExecuteSequence,InstallExecuteSequence,InstallUISequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,FileCost,CostFinalize
Page 1224
CreateFolderElement
DescriptionCreatefolderaspartofparentComponent.
WindowsInstallerreferencesCreateFolderTable
ParentsComponent
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Permission(min:0,max:unbounded):ACLpermissionPermissionEx(min:0,max:unbounded):CanalsoconfiguretheACLsforthisfolder.Shortcut(min:0,max:unbounded):Non-advertisedshortcuttothisfolder,ShortcutTargetispresettothefolderAnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
PermissionEx
Attributes
Name Type Description Required
Directory String IdentifierofDirectorytocreate.DefaultstoDirectoryofparentComponent.
SeeAlsoWixSchema,RemoveFolder
Page 1225
CreateFoldersElement
DescriptionCreatesemptyfoldersforcomponentsthataresettobeinstalled.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesCreateFoldersAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1226
CreateShortcutsElement
DescriptionManagesthecreationofshortcuts.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesCreateShortcutsAction
ParentsAdvertiseExecuteSequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1227
CustomElement
DescriptionUsetosequenceacustomaction.
WindowsInstallerreferencesNone
ParentsAdminExecuteSequence,AdminUISequence,AdvertiseExecuteSequence,InstallExecuteSequence,InstallUISequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
Action String TheactiontowhichtheCustomelementapplies.
Yes
After String Thenameofthestandardorcustomactionafterwhichthisactionshouldbeperformed.MutuallyexclusivewithBefore,OnExit,andSequenceattributes
Before String Thenameofthestandardorcustomactionbeforewhichthisactionshouldbeperformed.MutuallyexclusivewithOnExit,After,andSequenceattributes
Page 1228
OnExit ExitType MutuallyexclusivewithBefore,After,andSequenceattributes
Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Thesequencenumberforthisaction.MutuallyexclusivewithBefore,After,andOnExitattributes
SeeAlsoWixSchema,CustomAction
Page 1229
CustomActionElement
DescriptionSpecifiesacustomactiontobeaddedtotheMSICustomActiontable.Variouscombinationsoftheattributesforthiselementcorrespondtodifferentcustomactiontypes.FormoreinformationaboutcustomactionsseetheCustomActionTypestopiconMSDN.
WindowsInstallerreferencesCustomActionTable
ParentsFragment,Module,Product
InnerText(xs:string)ThetextnodeisonlyvalidiftheScriptattributeisspecified.Inthatcase,thetextnodecontainsthescripttoembed.
ChildrenNone
Attributes
Name Type Description
Id String Theidentifierofthecustomaction.
BinaryKey String ThisattributeisareferencetoaBinaryelementwithmatchingIdattribute.Thatbinarystreamcontainsthecustomactionforuseduringinstall.Thecustomactionwillnotbeinstalledintoatargetdirectory.ThisattributeiswiththeDllEntryattributetospecifythecustomactionDLLtouseforatype1customaction,withtheExeCommandattributetospecifyatype17customactionthatrunsanembeddedexecutable,orwiththeVBScriptCallorJScriptCallattributestospecifyatype5or6customaction.
Page 1230
Directory String ThisattributespecifiesareferencetoaDirectoryelementwithmatchingIdattributecontainingadirectorypath.ThisattributeistypicallyusedwiththeExeCommandattributetospecifythesourceexecutableforatype34orwiththeValueattributetospecifyaformattedstringtoplaceinthespecifiedDirectoryentryinatype35customaction.
DllEntry String Thisattributespecifiesthenameofafunctioninacustomactiontoexecute.ThisattributeisusedwiththeBinaryKeyattributetocreateatype1customaction,orwiththeFileKeyattributetocreateatype17customaction.
Error String ThisattributespecifiesanindexintheMSIErrortabletouseasanerrormessageforacustomactionthatdisplaystheerrormessageandabortsaproduct'sinstallation.
ExeCommand String Thisattributespecifiesthecommandlineparameterstosupplytoanexternallyexecutable.ThisattributeistypicallyusedwiththeBinaryKeyattributeforatype2customaction,theFileKeyattributeforatype18customaction,thePropertyattributeforatype50customaction,ortheDirectoryattributeforatype34customactionthatspecifytheexecutabletorun.
Execute Enumeration Thisattributeindicatestheschedulingofthecustomaction.Thisattribute'svaluemustbeoneofthefollowing:commit
Indicatesthatthecustomactionwillrunaftersuccessfulcompletionoftheinstallationscript(attheendoftheinstallation).
deferred
Page 1231
Indicatesthatthecustomactionrunsin-script(possiblywithelevatedprivileges).
firstSequenceIndicatesthatthecustomactionwillonlyruninthefirstsequencethatrunsit.
immediateIndicatesthatthecustomactionwillrunduringnormalprocessingtimewithuserprivileges.Thisisthedefault.
oncePerProcessIndicatesthatthecustomactionwillonlyruninthefirstsequencethatrunsitinthesameprocess.
rollbackIndicatesthatacustomactionwillrunintherollbacksequencewhenafailureduringinstallation,usuallytoundochangesmadebyadeferredcustomaction.
secondSequenceIndicatesthatacustomactionshouldberunasecondtimeifitwaspreviouslyruninanearliersequence.
FileKey String ThisattributespecifiesareferencetoaFileelementwithmatchingIdattributethatexecutethecustomactioncodeinthefileafterthefileisinstalled.ThisattributeistypicallyusedwiththeExeCommandattributetospecifyatype18customactionthatrunsaninstalledexecutable,withtheDllEntryattributetospecifyaninstalledcustomactionDLLtouseforatype17customaction,orwiththeVBScriptCallorJScriptCallattributestospecifyatype21or22customaction.
HideTarget YesNoType Ensurestheinstallerdoesnotlogthe
Page 1232
CustomActionDataforthedeferredcustomaction.
Impersonate YesNoType ThisattributespecifieswhethertheWindowsInstaller,whichexecutesasLocalSystem,shouldimpersonatetheusercontextoftheinstallinguserwhenexecutingthiscustomaction.Typicallythevalueshouldbe'yes',exceptwhenthecustomactionneedselevatedprivilegestoapplychangestothemachine.
JScriptCall String ThisattributespecifiesthenameoftheJScriptfunctiontoexecuteinascript.ThescriptmustbeprovidedinaBinaryelementidentifiedbytheBinaryKeyattributedescribedabove.Inotherwords,thisattributemustbespecifiedinconjunctionwiththeBinaryKeyattribute.
PatchUninstall YesNoType ThisattributespecifiesthattheWindowsInstaller,executethecustomactiononlywhenpatchisbeinguninstalled.ThesecustomactionsshouldalsobeconditionedusingtheMSIPATCHREMOVEpropertytoensureproperdownlevel(lessthanWindowsInstaller4.5)behavior.
Property String ThisattributespecifiesareferencetoaPropertyelementwithmatchingIdattributethatspecifiesthePropertytobeusedorupdatedonexecutionofthiscustomaction.ThisattributeisusedwiththeValueattributetocreateatype51customactionthatparsesthetextinValueandplacesitintothespecifiedProperty.attributeisalsousedwiththeExeCommandattributetocreateatype50customactionthatusesthevalueofthegivenpropertytospecifythepathtotheexecutable.Type51customactionsareoftenusefultopassvaluestoadeferredcustomaction.Seehttp://msdn.microsoft.com/library/aa370543.aspx
Page 1233
formoreinformation.
Return Enumeration Setthisattributetosetthereturnbehaviorofthecustomaction.Thisattribute'svaluemustbeoneofthefollowing:asyncNoWait
Indicatesthatthecustomactionwillrunasyncronouslyandexecutionmaycontinueaftertheinstallerterminates.
asyncWaitIndicatesthatthecustomactionwillrunasynchronouslybuttheinstallerwillwaitforthereturncodeatsequenceend.
checkIndicatesthatthecustomactionwillrunsynchronouslyandthereturncodewillbecheckedforsuccess.Thisisthedefault.
ignoreIndicatesthatthecustomactionwillrunsynchronouslyandthereturncodewillnotbechecked.
Script Enumeration Createsatype37or38customaction.oftheelementshouldcontainthescripttobeembeddedinthepackage.Thisattribute'svaluemustbeoneofthefollowing:jscript
vbscript
SuppressModularization YesNoType Usetosuppressmodularizationofthiscustomactionnameinmergemodules.benecessaryfortable-drivencustomactionsbecausethetablenamewhichtheyinteractwithcannotbemodularized,sotherecanonlyoneinstanceofthetable.
TerminalServerAware YesNoType Thisattributespecifiescontrolswhetherthe
Page 1234
customactionwillimpersonatetheuserduringper-machineinstallsonTerminalServermachines.Deferredexecutioncustomactionsthatdonotspecifythisattribute,orexplicitlysetit'no',willrunwithnouserimpersonationonTerminalServermachinesduringper-machineinstallations.onlyapplicablewheninstallingontheServer2003family.
Value String Thisattributespecifiesastringvaluetouseinthecustomaction.ThisattributewiththePropertyattributetosetthepropertyaspartofatype51customactionorwiththeDirectoryattributetosetadirectorypathinthattableinatype35customaction.ThevaluecanbealiteralvalueorderivedfromaelementusingtheFormatted
VBScriptCall String ThisattributespecifiesthenameoftheVBScriptSubroutinetoexecuteinascript.ThescriptmustbeprovidedinaBinaryelementidentifiedbytheBinaryKeyattributedescribedabove.Inotherwords,thisattributemustbespecifiedinconjunctionwiththeBinaryKeyattribute.
Win64 YesNoType Specifiesthatascriptcustomactiontargetsa64-bitplatform.ValidonlywhenusedwithScript,VBScriptCall,andJScriptCallattributes.Thedefaultvalueisbasedontheplatformsetbythe-archswitchtocandle.exeInstallerPlatformpropertyina.wixprojMSBuildproject:Forx86andARM,thedefaultvalueis'no'.Forx64andIA64,thedefaultvalueis'yes'.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,Custom,CustomActionRef
Page 1235
CustomActionRefElement
DescriptionThiswillcausetheentirecontentsoftheFragmentcontainingthereferencedCustomActiontobeincludedintheinstallerdatabase.
WindowsInstallerreferencesNone
ParentsFragment,Module,PatchFamily,Product
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifieroftheCustomActiontoreference.
Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,CustomAction
Page 1236
CustomPropertyElement
DescriptionAcustompropertyforthePatchMetadatatable.
WindowsInstallerreferencesNone
ParentsPatchMetadata
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Company String Thenameofthecompany. Yes
Property String Thenameofthemetadataproperty.
Yes
Value String Valueofthemetadataproperty. Yes
SeeAlsoWixSchema
Page 1237
CustomTableElement
DescriptionDefinesacustomtableforusefromacustomaction.
WindowsInstallerreferencesNone
ParentsFragment,Module,Product
InnerTextNone
ChildrenSequence(min:1,max:1)1. Column(min:0,max:unbounded):Columndefinitionforthe
customtable.2. Row(min:0,max:unbounded):Rowdefinitionforthecustom
table.
Attributes
Name Type Description Required
Id String Identifierforthecustomtable.
Yes
BootstrapperApplicationData YesNoType Indicatesthetabledataistransformedintothebootstrapperapplicationdatamanifest.
Page 1238
SeeAlsoWixSchema
Page 1239
DataElement
DescriptionUsedforaCustomTable.SpecifiesthedatafortheparentRowandspecifiedColumn.
WindowsInstallerreferencesNone
ParentsRow
InnerText(xs:string)Adatavalue
ChildrenNone
Attributes
Name Type Description Required
Column String Specifiesinwhichcolumntoinsertthisdata.
Yes
SeeAlsoWixSchema
Page 1240
DeleteServicesElement
DescriptionStopsaserviceandremovesitsregistrationfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesDeleteServicesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1241
DependencyElement
DescriptionDeclaresadependencyonanothermergemodule.
WindowsInstallerreferencesNone
ParentsModule
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
RequiredId String Identifierofthemergemodulerequiredbythemergemodule.
Yes
RequiredLanguage Integer NumericlanguageIDofthemergemoduleinRequiredID.
Yes
RequiredVersion String VersionofthemergemoduleinRequiredID.
SeeAlsoWixSchema
Page 1242
DialogElement
DescriptionDefinesadialogboxintheDialogTable.
WindowsInstallerreferencesControlTable,ComboBoxTable,DialogTable,ListBoxTable,ListViewTable,RadioButtonTable
ParentsUI
InnerTextNone
ChildrenSequence(min:1,max:1)1. Control(min:0,max:unbounded):Controlelementsbelonging
tothisdialog.
Attributes
Name Type Description Required
Id String Uniqueidentifierforthedialog.
Yes
CustomPalette YesNoType Usedtospecifyifpicturesinthedialogboxarerenderedwithacustompalette.
ErrorDialog YesNoType Specifiesthisdialogasanerrordialog.
Height Integer Theheightofthedialogboxindialogunits.
Yes
Hidden YesNoType Usedtohidethedialog.
Page 1243
KeepModeless YesNoType KeepmodelessdialogsalivewhenthisdialogiscreatedthroughDoAction.
LeftScroll YesNoType Usedtoalignthescrollbarontheleft.
Modeless YesNoType Usedtosetthedialogasmodeless.
NoMinimize YesNoType Usedtospecifyifthedialogcanbeminimized.
RightAligned YesNoType Aligntextontheright.
RightToLeft YesNoType Usedtospecifyifthetextinthedialogshouldbedisplayedinrighttoleftreadingorder.
SystemModal YesNoType Usedtosetthedialogassystemmodal.
Title String Thetitleofthedialogbox.
TrackDiskSpace YesNoType Havethedialogperiodicallycalltheinstallertocheckifavailablediskspacehaschanged.
Width Integer Thewidthofthedialogboxindialogunits.
Yes
X Integer Horizontalplacementofthedialogboxasapercentageofscreenwidth.Thedefaultvalueis50.
Y Integer Verticalplacementofthe
Page 1244
dialogboxasapercentageofscreenheight.Thedefaultvalueis50.
SeeAlsoWixSchema
Page 1245
DialogRefElement
DescriptionReferencetoaDialog.Thiswillcausetheentirereferencedsection'scontentstobeincludedintheinstallerdatabase.
WindowsInstallerreferencesNone
ParentsUI
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifieroftheDialogtoreference.
Yes
SeeAlsoWixSchema,Dialog
Page 1246
DigitalCertificateElement
DescriptionAddsadigitalcertificate.
WindowsInstallerreferencesMsiDigitalCertificateTable
ParentsDigitalSignature,PackageCertificates,PatchCertificates
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierforacertificatefile. Yes
SourceFile String Thepathtothecertificatefile. Yes
SeeAlsoWixSchema
Page 1247
DigitalCertificateRefElement
DescriptionReferencetoaDigitalCertificateelement.ThiswillforcetheentirereferencedFragment'scontentstobeincludedintheinstallerdatabase.Thisisonlyusedforreferenceswhenpatching.
WindowsInstallerreferencesNone
ParentsPatchFamily
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema
Page 1248
DigitalSignatureElement
DescriptionAddsadigitalsignature.
WindowsInstallerreferencesMsiDigitalSignatureTable
ParentsMedia
InnerTextNone
ChildrenChoiceofelements(min:1,max:1)
DigitalCertificate(min:1,max:1)
Attributes
Name Type Description Required
SourceFile String Thepathtosignature'soptionalhashfile.
SeeAlsoWixSchema
Page 1249
DirectoryElement
DescriptionDirectorylayoutfortheproduct.Alsospecifiesthemappingsbetweensourceandtargetdirectories.
WindowsInstallerreferencesDirectoryTable
ParentsDirectory,DirectoryRef,Fragment,Module,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Component(min:0,max:unbounded)Directory(min:0,max:unbounded)Merge(min:0,max:unbounded)SymbolPath(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
Attributes
Name Type Description
Id String Thisvalueistheuniqueidentifierofthedirectoryentry.
ComponentGuidGenerationSeed Guid TheComponentGuidGenerationSeedisaguidthatmustbeusedwhenaComponentwiththegenerateguiddirective("*")rootedinastandardWindows
Page 1250
Installerdirectory(forexample,ProgramFilesFolderorCommonFilesFolder).recommendedthatthisattributebeavoidedandthatdevelopersinstalltheirComponentsunderstandarddirectorieswithuniquenamesinstead(forexample,"ProgramFilesFolder\CompanyNameProductNameVersion").ItisnotethatonceadirectoryisassignedaComponentGuidGenerationSeedthevaluemustnotchangeuntilmustbechangedwhen)thepathtothatdirectory,includingitselfandallparentdirectories,changes.
DiskId DiskIdType Setsthedefaultdiskidentifierforthefilescontainedinthisdirectory.Thisattribute'svaluemaybeoverriddenbyachildComponent,Directory,orFileelement.SeetheFileorMergeelements'DiskIdattributeformoreinformation.
FileSource String Usedtosetthefilesystemsourceforthisdirectory'schildelements.Formoreinformation,seesourcefiles.
LongName LongFileNameType Thisattributehasbeendeprecated;pleaseusetheNameattributeinstead.
Page 1251
LongSource LongFileNameType Thisattributehasbeendeprecated;pleaseusetheSourceNameattributeinstead.
Name LongFileNameType Thenameofthedirectory.
Donotspecifythisattribute(ortheLongNameattribute)ifthisdirectoryrepresentsdirectoryastheparent(seetheWindowsInstallerSDK'sDirectorytableinformationaboutthe"."operator).
InpriorversionsoftheWiXtoolset,thisattributespecifiedtheshortdirectoryname.attribute'svaluemaynowbeeitherashortorlongdirectoryname.Ifashortdirectorynameisspecified,theShortNameattributemaynotbespecified.nameisspecified,theLongNameattributemaynotbespecified.isalongdirectoryname,theShortNameattributemaybeomittedtoallowWiXtoattempttogenerateauniqueshortdirectoryname.However,ifthisnamecollideswithanotherdirectoryoryouwishtomanuallyspecifyshortdirectoryname,thentheShortNameattributemaybespecified.
ShortName ShortFileNameType Theshortnameofthe
Page 1252
directoryin8.3format.attributeshouldonlybesetifthereisaconflictbetweengeneratedshortdirectorynamesortheuserwantstomanuallyspecifytheshortdirectoryname.
ShortSourceName ShortFileNameType Theshortnameofthedirectoryonthesourcemediain8.3format.shouldonlybesetifthereisaconflictbetweengeneratedshortdirectorynamesuserwantstomanuallyspecifytheshortsourcedirectoryname.
SourceName LongFileNameType Thenameofthedirectoryonthesourcemedia.attributeisnotspecified,WindowsInstallerwilldefaulttotheNameattribute.
InpriorversionsoftheWiXtoolset,thisattributespecifiedtheshortsourcedirectoryname.Thisattribute'svaluemaynowbeeitherashortorlongdirectoryname.directorynameisspecified,theShortSourceNameattributemaynotbespecified.Ifalongdirectorynameisspecified,theLongSourceattributemaynotbespecified.Also,ifthisvalueisalongdirectoryname,theShortSourceNameattributemaybeomittedto
Page 1253
toattempttogenerateauniqueshortdirectoryname.However,ifthisnamecollideswithanotherdirectoryoryouwishtomanuallyspecifyshortdirectoryname,thentheShortSourceNameattributemaybespecified.
src String Thisattributehasbeendeprecated;pleaseusetheFileSourceattributeinstead.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
HowTosandExamplesHowTo:Addafiletoyourinstaller
SeeAlsoWixSchema,DirectoryRef
Page 1254
DirectoryRefElement
DescriptionCreateareferencetoaDirectoryelementinanotherFragment.
WindowsInstallerreferencesNone
ParentsFragment,Module,PatchFamily,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Component(min:0,max:unbounded)Directory(min:0,max:unbounded)Merge(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
Attributes
Name Type Description Required
Id String TheidentifieroftheDirectoryelementtoreference.
Yes
DiskId DiskIdType Setsthedefaultdiskidentifierforthefilescontainedinthisdirectory.Thisattribute'svaluemaybeoverriddenbyachildComponent,Directory,MergeorFileelement.SeetheFileorMergeelements'DiskIdattributeformoreinformation.
Page 1255
FileSource String UsedtosetthefilesystemsourceforthisDirectoryRef'schildelements.Formoreinformation,seeSpecifyingsourcefiles.
src String Thisattributehasbeendeprecated;pleaseusetheFileSourceattributeinstead.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
HowTosandExamplesHowTo:Addafiletoyourinstaller
SeeAlsoWixSchema,Directory
Page 1256
DirectorySearchElement
DescriptionSearchesfordirectoryandassignstovalueofparentProperty.
WindowsInstallerreferencesDrLocatorTable,SignatureTable
ParentsComplianceCheck,ComplianceDrive,ComponentSearch,DirectorySearch,DirectorySearchRef,IniFileSearch,Property,RegistrySearch
InnerTextNone
ChildrenChoiceofelements(min:0,max:1)
DirectorySearch(min:0,max:1)DirectorySearchRef(min:0,max:1)FileSearch(min:0,max:1)FileSearchRef(min:0,max:1)
Attributes
Name Type Description Required
Id String Uniqueidentifierforthedirectorysearch.
Yes
AssignToProperty YesNoType SetthevalueoftheouterPropertytotheresultofthissearch.Seeremarksformoreinformation.
Depth Integer Depthbelowthepaththattheinstaller
Page 1257
searchesforthefileordirectoryspecifiedbythesearch.Seeremarksformoreinformation.
Path String Pathontheuser'ssystem.Eitherabsolute,orrelativetocontainingdirectories.
Remarks
UsetheAssignToPropertyattributetosearchforafilebutsettheouterpropertytothedirectorycontainingthefile.Whenthisattributeissetto'yes',youmayonlynestaFileSearchelementwithauniqueIdordefinenochildelement.
WhentheparentDirectorySearch/@Depthattributeisgreaterthan0,theFileSearch/@IdattributemustbeabsentorthesameastheparentDirectorySearch/@Idattributevalue,unlesstheparentDirectorySearch/@AssignToPropertyattributevalueis'yes'.
HowTosandExamplesHowTo:ChecktheversionnumberofafileduringinstallationHowTo:ReferenceanotherDirectorySearchelementHowTo:Gettheparentdirectoryofafilesearch
SeeAlsoWixSchema,ComponentSearch,IniFileSearch,RegistrySearch
Page 1258
DirectorySearchRefElement
DescriptionReferencesanexistingDirectorySearchelement.
WindowsInstallerreferencesNone
ParentsComplianceDrive,ComponentSearch,DirectorySearch,DirectorySearchRef,IniFileSearch,Property,RegistrySearch
InnerTextNone
ChildrenChoiceofelements(min:0,max:1)
DirectorySearch(min:0,max:1)DirectorySearchRef(min:0,max:1)FileSearch(min:0,max:1)FileSearchRef(min:0,max:1)
Attributes
Name Type Description Required
Id String Idofthesearchbeingreferredto. Yes
Parent String ThisattributeisthesignatureoftheparentdirectoryofthefileordirectoryintheSignature_column.Ifthisfieldisnull,andthePathcolumndoesnotexpandtoafullpath,thenallthefixeddrivesoftheuser'ssystemaresearchedbyusingthePath.Thisfieldisakeyintooneofthefollowingtables:theRegLocator,theIniLocator,the
Page 1259
CompLocator,ortheDrLocatortables.
Path String Pathontheuser'ssystem.Eitherabsolute,orrelativetocontainingdirectories.
Remarks
AreferencetoanotherDirectorySearchelementmustreferencethesameId,thesameParentId,andthesamePath.IfanyoftheseattributevaluesaredifferentyoumustinsteaduseaDirectorySearchelement.
HowTosandExamplesHowTo:ReferenceanotherDirectorySearchelement
SeeAlsoWixSchema,ComponentSearch,IniFileSearch,RegistrySearch
Page 1260
DisableRollbackElement
DescriptionDisablesrollbackfortheremainderoftheinstallation.Specialactionsdon'thaveabuilt-insequencenumberandthusmustappearrelativetoanotheraction.ThesuggestedwaytodothisisbyusingtheBeforeorAfterattribute.InstallExecuteandInstallExecuteAgaincanoptionallyappearanywherebetweenInstallInitializeandInstallFinalize.
WindowsInstallerreferencesDisableRollbackAction
ParentsInstallExecuteSequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthatthisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Page 1261
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1262
DuplicateFilesElement
DescriptionDuplicatesfilesinstalledbytheInstallFilesaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesDuplicateFilesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1263
EmbeddedChainerElement
DescriptionNone
WindowsInstallerreferencesMsiEmbeddedChainerTable
ParentsFragment,Module,Product
InnerText(xs:string)Elementvalueisthecondition.CDATAmaybeusedtowhenaconditioncontainsmanyXMLcharactersthatmustbeescaped.ItisimportanttonotethateachEmbeddedChainerelementmusthaveamutuallyexclusiveconditiontoensurethatonlyoneembeddedchainerwillexecuteatatime.Iftheconditionsarenotmutuallyexclusivethechainerthatexecutesisundeterministic.
ChildrenNone
Attributes
Name Type Description Required
Id String Uniqueidentifierforembeddedchainer.
Yes
BinarySource String ReferencetotheBinaryelementthatcontainsthechainerexecutable.MutuallyexclusivewiththeFileSourceandPropertySourceattributes.
CommandLine String Valuetoappendtothetransactionhandleandpassedtothechainer
Page 1264
executable.
FileSource String ReferencetotheFileelementthatisthechainerexecutable.MutuallyexclusivewiththeBinarySourceandPropertySourceattributes.
PropertySource String ReferencetoaPropertythatresolvestothefullpathtothechainerexecutable.MutuallyexclusivewiththeBinarySourceandFileSourceattributes.
SeeAlsoWixSchema,Binary,File,Property,EmbeddedChainerRef
Page 1265
EmbeddedChainerRefElement
DescriptionReferencetoanEmbeddedChainerelement.ThiswillforcetheentirereferencedFragment'scontentstobeincludedintheinstallerdatabase.
WindowsInstallerreferencesNone
ParentsFragment,Module,Product
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,EmbeddedChainer
Page 1266
EmbeddedUIElement
DescriptionElementvalueisthecondition.UseCDATAifmessagecontainsdelimitercharacters.
WindowsInstallerreferencesMsiEmbeddedUITable
ParentsUI
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenSequence(min:1,max:1)1. EmbeddedUIResource(min:0,max:unbounded):Specifies
extrafilestobeextractedforusebytheembeddedUI,suchaslanguageresources.
Attributes
Name Type Description
Id String UniqueidentifierforembeddedUI.IfthisattributeisnotspecifiedtheNameattributeorthefilenameSourceFileattributewillbeused.
IgnoreActionData YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_ACTIONDATAmessages.
IgnoreActionStart YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_ACTIONSTARTmessages.
IgnoreCommonData YesNoType EmbeddedUIwillnotrecieveany
Page 1267
INSTALLLOGMODE_COMMONDATAmessages.
IgnoreError YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_ERRORmessages.
IgnoreFatalExit YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_FATALEXITmessages.
IgnoreFilesInUse YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_FILESINUSEmessages.
IgnoreInfo YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_INFOmessages.
IgnoreInitialize YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_INITIALIZEmessages.
IgnoreInstallEnd YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_INSTALLENDmessages.
IgnoreInstallStart YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_INSTALLSTARTmessages.
IgnoreOutOfDiskSpace YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_OUTOFDISKSPACEmessages.
IgnoreProgress YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_PROGRESSmessages.
IgnoreResolveSource YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_RESOLVESOURCEmessages.
IgnoreRMFilesInUse YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_RMFILESINUSE
Page 1268
messages.
IgnoreShowDialog YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_SHOWDIALOGmessages.
IgnoreTerminate YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_TERMINATEmessages.
IgnoreUser YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_USERmessages.
IgnoreWarning YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_WARNINGmessages.
Name LongFileNameType ThenamefortheembeddedUIDLLwhenitisextractedfromtheProductandexecuted.(WindowsInstallersupportthetypicalshortfilenameandlongfilenamecombinationforembeddedUIfilesasitdoesforotherkindsoffiles.)IfthisattributeisnotspecifiedthefilenameportionoftheSourceFileused.
SourceFile String PathtothebinaryfilethatistheembeddedUI.ThismustbeaDLLthatexportsthefollowingthreeentrypoints:InitializeEmbeddedUI,EmbeddedUIHandlerandShutdownEmbeddedUI.
SupportBasicUI YesNoType SetyestoallowtheWindowsInstallertodisplaytheembeddedUIduringbasicUIlevelinstallation.
SeeAlsoWixSchema
Page 1269
EmbeddedUIResourceElement
DescriptionDefinesaresourceforusebytheembeddedUI.
WindowsInstallerreferencesMsiEmbeddedUITable
ParentsEmbeddedUI
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String IdentifierfortheembeddedUIresource.
Yes
Name LongFileNameType ThenamefortheresourcewhenitisextractedfromtheProductforusebytheembeddedUIDLL.(WindowsInstallerdoesnotsupportthetypicalshortfilenameandlongfilenamecombinationforembeddedUIfilesasitdoesforotherkindsoffiles.)IfthisattributeisnotspecifiedtheId
Yes
Page 1270
attributewillbeused.
SourceFile String PathtothebinaryfilethatistheembeddedUIresource.
Yes
SeeAlsoWixSchema,EmbeddedUI
Page 1271
EnsureTableElement
DescriptionUsethiselementtoensurethatatableappearsintheinstallerdatabase,evenifitsempty.
WindowsInstallerreferencesNone
ParentsFragment,Module,Product
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Thenameofthetable. Yes
RemarksThiselementisparticularlyusefulfortwoproblemsthatmayoccurwhilemergingmergemodules:1. Thefirstlikelyproblemisthatinordertoproperlymergeyou
needtohavecertaintablespresentpriortomerging.Usingthiselementisonewaytoensurethosetablesarepresentpriortothemerging.
2. Theothercommonproblemisthatamergemodulehasincorrectvalidationinformationaboutsometables.Byensuringthesetablespriortomerging,youcanavoidthisproblembecausethecorrectvalidationinformationwillgointotheinstallerdatabasebeforethemergemodulehasachancetosetitincorrectly.
SeeAlso
Page 1273
EnvironmentElement
DescriptionEnvironmentvariablesaddedorremovedfortheparentcomponent.
WindowsInstallerreferencesEnvironmentTable
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Uniqueidentifierforenvironmententry.
Yes
Action Enumeration Specfieswhethertheenvironmentalvariableshouldbecreated,setorremovedwhentheparentcomponentisinstalled.Thisattribute'svaluemustbeoneofthefollowing:create
Createstheenvironmentvariableifitdoesnotexist,thensetitduringinstallation.Thishasnoeffectonthevalueoftheenvironmentvariableifitalreadyexists.
Page 1274
setCreatestheenvironmentvariableifitdoesnotexist,andthensetitduringinstallation.Iftheenvironmentvariableexists,setitduringtheinstallation.
removeRemovestheenvironmentvariableduringaninstallation.TheinstalleronlyremovesanenvironmentvariableduringaninstallationifthenameandvalueofthevariablematchtheentriesintheNameandValueattributes.Ifyouwanttoremoveanenvironmentvariable,regardlessofitsvalue,donotsettheValueattribute.
Name String Nameoftheenvironmentvariable.
Yes
Part Enumeration Thisattribute'svaluemustbeoneofthefollowing:all
Thisvalueistheentireenvironmentalvariable.Thisisthedefault.
firstThisvalueisprefixed.
last
Page 1275
Thisvalueisappended.
Permanent YesNoType Specifiesthattheenvironmentvariableshouldnotberemovedonuninstall.
Separator String Optionalattributetochangetheseparatorusedbetweenvalues.Bydefaultasemicolonisused.
System YesNoType Specifiesthattheenvironmentvariableshouldbeaddedtothesystemenvironmentspace.Thedefaultis'no'whichindicatestheenvironmentvariableisaddedtotheuserenvironmentspace.
Value String Thevaluetosetintotheenvironmentvariable.Ifthisattributeisnotset,theenvironmentvariableisremovedduringinstallationifitexistsonthemachine.
SeeAlsoWixSchema
Page 1276
ErrorElement
DescriptionNone
WindowsInstallerreferencesErrorTable
ParentsUI
InnerText(xs:string)ElementvalueisMessage,useCDATAifmessagecontainsdelimitercharacters
ChildrenNone
Attributes
Name Type Description Required
Id Integer Numberoftheerrorforwhichamessageisbeingprovided.SeeMSISDKforerrordefinitions.
SeeAlsoWixSchema
Page 1277
ExclusionElement
DescriptionDeclaresamergemodulewithwhichthismergemoduleisincompatible.
WindowsInstallerreferencesNone
ParentsModule
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
ExcludedId String Identifierofthemergemodulethatisincompatible.
Yes
ExcludedMaxVersion String Maximumversionexcludedfromarange.Ifnotset,allversionsafterminareexcluded.Ifneithermaxnormin,noexclusionbasedonversion.
ExcludedMinVersion String Minimumversionexcludedfromarange.Ifnotset,allversionsbeforemaxareexcluded.Ifneithermax
Page 1278
normin,noexclusionbasedonversion.
ExcludeExceptLanguage Integer NumericlanguageIDofthemergemoduleinExcludedID.Allexceptthislanguagewillbeexcluded.OnlyoneofExcludeExceptLanguageandExcludeLanguagemaybespecified.
ExcludeLanguage Integer NumericlanguageIDofthemergemoduleinExcludedID.Thespecifiedlanguagewillbeexcluded.OnlyoneofExcludeExceptLanguageandExcludeLanguagemaybespecified.
SeeAlsoWixSchema
Page 1279
ExecuteActionElement
DescriptionInitiatestheexecutionsequence.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesExecuteActionAction
ParentsAdminUISequence,InstallUISequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1280
ExePackageElement
DescriptionDescribesasingleexepackagetoinstall.
WindowsInstallerreferencesNone
ParentsChain,PackageGroup
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
CommandLine(min:0,max:unbounded)ExitCode(min:0,max:unbounded)Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)RemotePayload(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.Theextension'sCompilerExtension.ParseElement()methodwillbecalledwiththepackageidentifierasthefirstvalueincontextValues.
ExitCodePayloadProvidesRemotePayload
Attributes
Name Type Description
After String Theidentifierofanotherpackagethatthisone
Page 1281
shouldbeinstalledafter.BydefaulttheAfterattributeissettotheprevioussiblingpackageintheChainorPackageGroupelement.Ifthisattributeisspecifiedensurethatacycleisnotcreatedexplicitlyorimplicitly.
Cache YesNoAlwaysType Whethertocachethepackage.Thedefaultis"yes".
CacheId String Theidentifiertousewhencachingthepackage.
Compressed YesNoDefaultType Whetherthepackagepayloadshouldbeembeddedinacontainerorleftasanexternalpayload.
Description String Specifiesthedescriptiontoplaceinthebootstrapperapplicationdatamanifestforthepackage.Bydefault,ExePackagesFileNamefieldfromtheversioninformation,MsiPackagesusetheARPCOMMENTSproperty,andMspPackagesusepatchmetadataproperty.Otherpackagetypesmustusethisattributetodefineadescriptioninthebootstrapperapplicationdatamanifest.
DetectCondition String Aconditionthatdeterminesifthepackageispresentonthetargetsystem.Thisconditioncanusebuilt-invariablesandvariablesreturnedbysearches.ThisconditionisnecessarybecauseWindowsdoesn'tprovideapresenceofanExePackage.Burnusesthisconditiontodeterminehowtotreatthisduringabundleaction;forexample,ifthisconditionisfalseoromittedandthebundleisbeinginstalled,Burnwillinstallthispackage.
DisplayName String Specifiesthedisplaynametoplaceinthebootstrapperapplicationdatamanifestforthepackage.Bydefault,ExePackagesProductNamefieldfromtheversioninformation,MsiPackagesusetheProductNameproperty,
Page 1282
andMspPackagesusemetadataproperty.Otherpackagetypesmustusethisattributetodefineadisplaynameinthebootstrapperapplicationdatamanifest.
DownloadUrl String TheURLtousetodownloadthepackage.Thefollowingsubstitutionsaresupported:
{0}isreplacedbythepackageId.{1}isreplacedbythepayloadId.{2}isreplacedbythepayloadfilename.
Id String Identifierforthispackage,fororderingandcross-referencing.ThedefaultistheNameattributemodifiedtobesuitableasanidentifier(i.e.invalidcharactersarereplacedwithunderscores).
InstallCommand String Thecommand-lineargumentsprovidedtotheExePackageduringinstall.Ifthisattributeisabsenttheexecutablewillbelaunchedwithnocommand-linearguments.
InstallCondition String Aconditiontoevaluatebeforeinstallingthepackage.Thepackagewillonlybeinstallediftheconditionevaluatestotrue.Iftheconditionevaluatestofalseandthebundleisbeinginstalled,repaired,ormodified,thepackagewillbeuninstalled.
InstallSize String Thesizethispackagewilltakeondiskinbytesafteritisinstalled.Bydefault,thebinderwillcalculatetheinstallsizebyscanningthepackage(FiletableforMSIs,PayloadsforEXEs)andusethetotalfortheinstallsizeofthepackage.
LogPathVariable String NameofaVariablethatwillholdthepathtothelogfile.Anemptyvaluewillcausethevariabletonotbeset.Thedefaultis"WixBundleLog_[PackageId]"exceptforMSU
Page 1283
packageswhichdefaulttonologging.
Name String Thedestinationpathandfilenameforthischainpayload.Usethisattributetorenametheentrypointorextractitintoasubfolder.ThedefaultvalueisthefilenamefromtheSourceFileattribute,ifprovided.Ataminimum,theNameorSourceFileattributemustbespecified.Theuseof'..'directoriesisnotallowed.
PerMachine YesNoDefaultType Indicatesthepackagemustbeexecutedelevated.Thedefaultis"no".
Permanent YesNoType Specifieswhetherthepackagecanbeuninstalled.Thedefaultis"no".
Protocol BurnExeProtocolType Indicatesthecommunicationprotocolthepackagesupportsforextendedprogressanderrorreporting.Thedefaultis"none".
RepairCommand String Thecommand-lineargumentstospecifytoindicatearepair.Iftheexecutablepackagecanberepairedbutcommand-lineargumentstodosothensettheattribute'svaluetoblank.Topackagedoesnotsupportrepair,omitthisattribute.
RollbackLogPathVariable String NameofaVariablethatwillholdthepathtothelogfileusedduringrollback.Anemptyvaluewillcausethevariabletonotbeset.Thedefaultis"WixBundleRollbackLog_[PackageId]"exceptforMSUpackageswhich
SourceFile String Locationofthepackagetoaddtothebundle.ThedefaultvalueistheNameattribute,ifprovided.Ataminimum,theSourceFileorNameattributemustbespecified.
SuppressSignatureVerification YesNoType Bydefault,aBundlewillusethehashofapackagetoverifyitscontents.Ifthisattributeis
Page 1284
explicitlysetto"no"withanAuthenticodesignaturetheBundlewillverifythecontentsofthepackageusingthesignatureinstead.Therefore,thedefaultforthisattributecouldbeconsideredtobe"yes".Itisunusualfor"yes"toattribute.Inthiscase,thedefaultwaschangedinWiXv3.9afterexperiencingrealworldissueswithWindowsverifyingAuthenticodesignatures.SincetheAuthenticodesignaturesarenomoresecurethanhashingthedefaultwaschanged.
UninstallCommand String Thecommand-lineargumentsprovidedtotheExePackageduringuninstall.Ifthisattributeisabsenttheexecutablewillbelaunchedwithnocommand-linearguments.TopreventanExePackagefrombeinguninstalledsetthePermanentattributeto"yes".
Vital YesNoType Specifieswhetherthepackagemustsucceedforthechaintocontinue.Thedefault"yes"indicatesthatifthepackagefailsthenthechainwillfailandrollbackorstop.Ifthenthechainwillcontinueevenifthepackagereportsfailure.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.extensionscanregisteradditionalattributesatthispointintheschema.CompilerExtension.ParseAttribute()methodwillbecalledwiththepackageidentifierin
PrereqSupportPackage YesNoType Whensetto"yes",thePrereqBAwillplanthepackagetobeinstalledifitsInstallConditionis"true"orempty.(http://schemas.microsoft.com/wix/BalExtension)
SeeAlsoWixSchema
Page 1285
ExitCodeElement
DescriptionDescribesmapofexitcodereturnedfromexecutablepackagetoabootstrapperbehavior.
WindowsInstallerreferencesNone
ParentsExePackage
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Behavior Enumeration Chooseoneofthesupportedbehaviorserrorcodes:success,error,scheduleReboot,forceReboot.Thisattribute'svaluemustbeoneofthefollowing:success
error
scheduleReboot
forceReboot
Yes
Value Integer Exitcodereturnedfromexecutablepackage.Ifnovalueisprovideditmeansallvaluesnotexplicitlysetdefault
Page 1286
tothisbehavior.
SeeAlsoWixSchema
Page 1287
ExtensionElement
DescriptionExtensionforaComponent
WindowsInstallerreferencesMIMETable,VerbTable,RegistryTable
ParentsComponent,ProgId
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
MIME(min:0,max:unbounded)Verb(min:0,max:unbounded)
Attributes
Name Type Description
Id String Thisissimplythefileextension,like"doc"or"xml".Donotincludetheprecedingperiod.
Advertise YesNoType Whetherthisextensionistobeadvertised.Thedefaultis"no".
ContentType String TheMIMEtypethatistobewritten.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
IsRichSavedGame RegistersthisextensionfortherichsavedgamespropertyhandleronWindowsVistaandlater.(http://schemas.microsoft.com/wix/GamingExtension)
SeeAlsoWixSchema
Page 1288
ExternalFileElement
DescriptionContainsinformationaboutspecificfilesthatarenotpartofaregulartargetimage.
WindowsInstallerreferencesNone
ParentsFamily
InnerTextNone
ChildrenSequence(min:1,max:1)1. ProtectRange(min:1,max:unbounded)2. SymbolPath(min:1,max:unbounded)3. Choiceofelements(min:0,max:unbounded)
IgnoreRange(min:0,max:unbounded)
Attributes
Name Type Description Required
File String ForeignkeyintotheFiletable. Yes
Order Int Specifiestheorderoftheexternalfilestousewhencreatingthepatch.
Yes
Source String Fullpathoftheexternalfile.
src String Thisattributehasbeendeprecated;pleaseusetheSourceattributeinstead.
SeeAlsoWixSchema
Page 1289
FailureElement
DescriptionFailureactionforaServiceConfigFailureActionselement.
WindowsInstallerreferencesNone
ParentsServiceConfigFailureActions
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Action String Specifiestheactiontotakewhentheservicefails.Validvaluesare"none","restartComputer","restartService","runCommand"oraFormattedpropertythatresolvesto"0"(for"none"),"1"(for"restartService"),"2"(for"restartComputer")or"3"(for"runCommand").
Yes
Delay String SpecifiesthetimeinmillisecondstowaitbeforeperformingthevaluefromtheActionattribute.
Yes
SeeAlsoWixSchema
Page 1290
FamilyElement
DescriptionGroupofoneormoreupgradedimagesofaproduct.
WindowsInstallerreferencesNone
ParentsPatchCreation
InnerTextNone
ChildrenSequence(min:1,max:1)1. UpgradeImage(min:1,max:unbounded)2. Choiceofelements(min:0,max:unbounded)
ExternalFile(min:0,max:unbounded)ProtectFile(min:0,max:unbounded)
Attributes
Name Type Description Required
DiskId DiskIdType EnteredintotheDiskIdfieldofthenewMediatablerecord.
DiskPrompt String Valuetodisplayinthe"[1]"oftheDiskPromptProperty.UsingthisattributewillrequireyoutodefineaDiskPromptProperty.
MediaSrcProp String EnteredintotheSourcefieldofthenewMedia
Page 1291
tableentryoftheupgradedimage.
Name String Identifierforthefamily. Yes
SequenceStart Int Sequencenumberforthestartingfile.
VolumeLabel String EnteredintotheVolumeLabelfieldofthenewMediatablerecord.
SeeAlsoWixSchema
Page 1292
FeatureElement
DescriptionAfeaturefortheFeaturetable.Featuresarethesmallestinstallableunit.Seemsi.chmformoredetailedinformationonthemyriadinstallationoptionsforafeature.
WindowsInstallerreferencesFeatureTable
ParentsFeature,FeatureGroup,FeatureRef,Fragment,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Component(min:0,max:unbounded)ComponentGroupRef(min:0,max:unbounded)ComponentRef(min:0,max:unbounded)Condition(min:0,max:unbounded)Feature(min:0,max:unbounded)FeatureGroupRef(min:0,max:unbounded)FeatureRef(min:0,max:unbounded)MergeRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
Attributes
Name Type Description
Id String Uniqueidentifierofthefeature.
Absent Enumeration Thisattributedeterminesifauserwillhavethe
Page 1293
optiontosetafeaturetoabsentintheuserinterface.Thisattribute'svaluemustbeoneofthefollowing:allow
AllowstheuserinterfacetodisplayanoptiontochangethefeaturestatetoAbsent.
disallowPreventstheuserinterfacefromdisplayinganoptiontochangethefeaturestatesettingthemsidbFeatureAttributesUIDisallowAbsentattribute.Thiswillforcethefeatureinstallationstate,whetherornotthefeatureisvisibleintheUI.
AllowAdvertise Enumeration Thisattributedeterminesthepossibleadvertisestatesforthisfeature.Thisattribute'svaluemustbeoneofthefollowing:no
PreventsthisfeaturefrombeingadvertisedbysettingthemsidbFeatureAttributesDisallowAdvertiseattribute.
systemPreventsadvertisingforthisfeatureiftheoperatingsystemshelldoesnotsupportWindowsInstallerdescriptorsbysettingthemsidbFeatureAttributesNoUnsupportedAdvertiseattribute.
yesAllowsthefeaturetobeadvertised.
ConfigurableDirectory String SpecifytheIdofaDirectorythatcanbeconfiguredbytheuseratinstallationtime.beapublicpropertyandthereforecompletelyuppercase.
Description String Longerstringoftextdescribingthefeature.
Page 1294
localizablestringisdisplayedbythetheSelectionDialog.
Display String Determinestheinitialdisplayofthisfeatureinthefeaturetree.Thisattribute'svalueshouldbeoneofthefollowing:collapse
Initiallyshowsthefeaturecollapsed.defaultvalue.
expandInitiallyshowsthefeatureexpanded.
hiddenPreventsthefeaturefromdisplayingintheuserinterface.
<anexplicitintegervalue>Foradvancedusersonly,itispossibletodirectlysettheintegervalueofthedisplayvaluethatwillappearintheFeaturerow.
InstallDefault Enumeration Thisattributedeterminesthedefaultinstall/runlocationofafeature.ThisattributecannotbespecifiedifthevalueoftheFollowParentattributeis'yes'sincethatwouldasktheinstallertoforcethisfeaturetofollowtheparentinstallationstateandsimultaneouslyfavoraparticularinstallationstatejustforthisfeature.Thisattribute'svaluemustbeoneofthefollowing:followParent
Forcesthefeaturetofollowthesameinstallationstateasitsparentfeature.
localFavorsinstallingthisfeaturelocallybysettingthemsidbFeatureAttributesFavorLocalattribute.
sourceFavorsrunningthisfeaturefromsourcebysettingthemsidbFeatureAttributesFavorSource
Page 1295
attribute.
Level Integer Setstheinstalllevelofthisfeature.disablethefeature.Processingthecanmodifythelevelvalue(thisissetviatheConditionchildelement).Thedefaultvalueis"1".
Title String Shortstringoftextidentifyingthefeature.islistedasanitembytheSelectionTreecontroloftheSelectionDialog.
TypicalDefault Enumeration Thisattributedeterminesthedefaultadvertisestateofthefeature.Thisattribute'svaluemustbeoneofthefollowing:advertise
SetsthefeaturetobeadvertisedbysettingthemsidbFeatureAttributesFavorAdvertiseattribute.ThisvaluecannotbesetifthevalueoftheAllowAdvertiseattributeis'no'sincethatwouldasktheinstallertodisallowtheadvertisedstateforthisfeaturewhileatthesametimefavoringit.
installSetsthefeaturetothedefaultnon-advertisedinstallationoption.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
HowTosandExamplesHowTo:Addafiletoyourinstaller
SeeAlsoWixSchema,FeatureRef
Page 1296
FeatureGroupElement
DescriptionGroupstogethermultiplecomponents,features,andmergestobeusedinotherlocations.
WindowsInstallerreferencesNone
ParentsFeatureRef,Fragment
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Component(min:0,max:unbounded)ComponentGroupRef(min:0,max:unbounded)ComponentRef(min:0,max:unbounded)Feature(min:0,max:unbounded)FeatureGroupRef(min:0,max:unbounded)FeatureRef(min:0,max:unbounded)MergeRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
Attributes
Name Type Description Required
Id String IdentifierfortheFeatureGroup. Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
Page 1297
SeeAlsoWixSchema,FeatureGroupRef
Page 1298
FeatureGroupRefElement
DescriptionCreateareferencetoaFeatureGroupinanotherFragment.
WindowsInstallerreferencesNone
ParentsFeature,FeatureGroup,FeatureRef,Product
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifieroftheFeatureGrouptoreference.
Yes
IgnoreParent YesNoType Normallyfeaturegroupreferencesthatendupnestedunderaparentelementcreateaconnectiontothatparent.ThisbehaviorisundesirablewhentryingtosimplyreferencetoaFeatureGroupinadifferentFragment.Specify'yes'tohavethisfeaturegroupreferencenotcreateaconnectiontoitsparent.Thedefaultis'no'.
Primary YesNoType Setthisattributeto'yes'in
Page 1299
ordertomaketheparentfeatureofthisgrouptheprimaryfeatureforanycomponentsandmergescontainedinthegroup.Featuresmaybelongtomultiplefeatures.Bydesignatingafeatureastheprimaryfeatureofacomponentormerge,youensurethatwheneveracomponentisselectedforinstall-on-demand(IOD),theprimaryfeaturewillbetheonetoinstallit.Thisattributeshouldonlybesetifacomponentactuallynestsundermultiplefeatures.Ifacomponentnestsunderonlyonefeature,thatfeatureistheprimaryfeatureforthecomponent.Youcannotsetmorethanonefeatureastheprimaryfeatureofagivencomponent.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,FeatureGroup
Page 1300
FeatureRefElement
DescriptionCreateareferencetoaFeatureelementinanotherFragment.
WindowsInstallerreferencesNone
ParentsFeature,FeatureGroup,FeatureRef,Fragment,PatchFamily,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Component(min:0,max:unbounded)ComponentGroupRef(min:0,max:unbounded)ComponentRef(min:0,max:unbounded)Feature(min:0,max:unbounded)FeatureGroup(min:0,max:unbounded)FeatureGroupRef(min:0,max:unbounded)FeatureRef(min:0,max:unbounded)MergeRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
Attributes
Name Type Description Required
Id String TheidentifieroftheFeatureelementtoreference.
Yes
IgnoreParent YesNoType Normallyfeaturereferences
Page 1301
thatarenestedunderaparentelementcreateaconnectiontothatparent.ThisbehaviorisundesirablewhentryingtosimplyreferenceaFeatureinadifferentFragment.Specify'yes'tohavethisfeaturereferencenotcreateaconnectiontoitsparent.Thedefaultis'no'.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,Feature
Page 1302
FileElement
DescriptionFilespecificationforFiletable,mustbechildnodeofComponent.
WindowsInstallerreferencesFileTable
ParentsComponent
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
AppId(min:0,max:unbounded)AssemblyName(min:0,max:unbounded)Class(min:0,max:unbounded)CopyFile(min:0,max:unbounded):Usedtocreateaduplicateofthisfileelsewhere.ODBCDriver(min:0,max:unbounded)ODBCTranslator(min:0,max:unbounded)Permission(min:0,max:unbounded):UsedtoconfiguretheACLsforthisfile.PermissionEx(min:0,max:unbounded):CanalsoconfiguretheACLsforthisfile.Shortcut(min:0,max:unbounded):Targetoftheshortcutwillbesettothisfile.SymbolPath(min:0,max:unbounded)TypeLib(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
EventManifest
Page 1303
FirewallExceptionFormatsFileGameHelpCollectionHelpFileNativeImagePerfCounterPerfCounterManifestPermissionExSnapInTypesFileVsixPackage
Attributes
Name Type Description
Assembly Enumeration SpecifiesifthisFileisaWin32Assemblyor.NETAssemblythatneedstobeinstalledintotheGlobalAssemblyCache(GAC).Ifthevalueis'.net'or'win32',thisfilemustalsobethekeypathoftheComponent.Thisattribute'svaluemustbeoneofthefollowing:.net
Thefileisa.NETFrameworkassembly.
noThefileisnota.NETFrameworkorWin32assembly.
Page 1304
Thisisthedefaultvalue.
win32ThefileisaWin32assembly.
AssemblyApplication String Specifiesthefileidentifieroftheapplicationfile.Thisassemblywillbeisolatedtothesamedirectoryastheapplicationfile.Ifthisattributeisabsent,theassemblywillbeinstalledtotheGlobalAssemblyCache(GAC).ThisattributemayonlybespecifiediftheAssemblyattributeissetto'.net'or'win32'.
AssemblyManifest String Specifiesthefileidentifierofthemanifestfilethatdescribesthisassembly.Themanifestfileshouldbeinthesamecomponentastheassemblyitdescribes.ThisattributemayonlybespecifiediftheAssemblyattributeissetto'.net'or'win32'.
BindPath String Alistofpaths,separatedbysemicolons,thatrepresentthepathstobesearchedtofindtheimportedDLLs.Thelist
Page 1305
isusuallyalistofproperties,witheachpropertyenclosedinsidesquarebrackets.Thevaluemaybesettoanemptystring.IncludingthisattributewillcauseanentrytobegeneratedforthefileintheBindImagetable.
Checksum YesNoType Thisattributeshouldbesetto"yes"foreveryexecutablefileintheinstallationthathasavalidchecksumstoredinthePortableExecutable(PE)fileheader.Onlythosefilesthathavethisattributesetwillbeverifiedforvalidchecksumduringareinstall.
CompanionFile String Setthisattributetomakethisfileacompanionchildofanotherfile.Theinstallationstateofacompanionfiledependsnotonitsownfileversioninginformation,butontheversioningofitscompanionparent.filethatisthekeypathforitscomponentcannotbeacompanionfile(thatmeansthisattributecannotbesetifKeyPath="yes"forthis
Page 1306
file).TheVersionattributecannotbesetalongwiththisattributesincecompanionfilesarenotinstalledbasedontheirownversion.
Compressed YesNoDefaultType Setsthefile'ssourcetypecompression.Asettingof"yes"or"no"willoverridethesettingintheWordCountSummaryProperty.
DefaultLanguage String Thisisthedefaultlanguageofthisfile.linkerwillreplacethisvaluefromthevalueinthefileifthesuppressfilesoptionisnotused.
DefaultSize Integer Thisisthedefaultsizeofthisfile.Thelinkerwillreplacethisvaluefromthevalueinthefileifthesuppressfilesoptionisnotused.
DefaultVersion String Thisisthedefaultversionofthisfile.Thelinkerwillreplacethisvaluefromthevalueinthefileifthesuppressfilesoptionisnotused.
DiskId DiskIdType ThevalueofthisattributeshouldcorrespondtotheIdattributeofaMediaelementauthoredelsewhere.Bycreating
Page 1307
thisconnectionbetweenafileanditsmedia,yousetthepackagingoptionstothevaluesspecifiedintheMediaelement(valuessuchascompressionlevel,cabembedding,etc...).SpecifyingtheDiskIdattributeontheFileelementoverridesthedefaultDiskIdattributefromtheparentComponentelement.IfnoDiskIdattributeisspecified,thedefaultis"1".ThisDiskIdattributeisignoredwhencreatingamergemodulebecausemergemodulesdonothavemedia.
FontTitle String CausesanentrytobegeneratedforthefileintheFonttablewiththespecifiedFontTitle.Thisattributeisintendedtobeusedtoregisterthefileasanon-TrueTypefont.
Hidden YesNoType Settoyesinordertohavethefile'shiddenattributesetwhenitisinstalledonthetargetmachine.
Id String TheuniqueidentifierforthisFileelement.IfyouomitId,itdefaultstothe
Page 1308
filenameportionoftheSourceattribute,ifspecified.MaybereferencedasaPropertybyspecifying[#value].
KeyPath YesNoType Settoyesinordertoforcethisfiletobethekeypathfortheparentcomponent.
LongName LongFileNameType Thisattributehasbeendeprecated;pleaseusetheNameattributeinstead.
Name LongFileNameType InpriorversionsoftheWiXtoolset,thisattributespecifiedtheshortfilename.Thisattribute'svaluemaynowbeeitherashortorlongfilename.Ifashortfilenameisspecified,theShortNameattributemaynotbespecified.alongfilenameisspecified,theLongNameattributemaynotbespecified.Also,ifthisvalueisalongfilename,theShortNameattributemaybeomittedtoallowWiXtoattempttogenerateauniqueshortfilename.However,ifthisnamecollideswithanotherfileoryouwishtomanually
Page 1309
specifytheshortfilename,thentheShortNameattributemaybespecified.Finally,ifthisattributeisomittedthenitsdefaultvalueisthefilenameportionoftheSourceattribute,ifoneisspecified,orthevalueoftheIdattribute,iftheSourceattributeisomittedordoesn'tcontainafilename.
PatchAllowIgnoreOnError YesNoType Settoindicatethatthepatchisnon-vital.
PatchGroup Integer Thisattributemustbesetforpatch-addedfiles.Eachpatchshouldbeassignedadifferentpatchgroupnumber.Patchgroupsnumbersmustbegreater0andshouldbeassignedconsecutively.Forexample,thefirstpatchshouldusePatchGroup='1',thesecondpatchwillhavePatchGroup='2',etc...
PatchIgnore YesNoType Preventstheupdatingofthefilethatisinfactchangedintheupgradedimagerelativetothetargetimages.
PatchWholeFile YesNoType Setiftheentirefile
Page 1310
shouldbeinstalledratherthancreatingabinarypatch.
ProcessorArchitecture Enumeration Specifiesthearchitectureforthisassembly.Thisattributeshouldonlybeusedon.NETFramework2.0orhigherassemblies.Thisattribute'svaluemustbeoneofthefollowing:msil
Thefileisa.NETFrameworkassemblythatisprocessor-neutral.
x86Thefileisa.NETFrameworkassemblyforthex86processor.
x64Thefileisa.NETFrameworkassemblyforthex64processor.
ia64Thefileisa.NETFrameworkassemblyfortheia64processor.
ReadOnly YesNoType Settoyesinordertohavethefile'sread-onlyattributesetwhenitisinstalledonthetarget
Page 1311
machine.
SelfRegCost Integer Thecostofregisteringthefileinbytes.Thismustbeanon-negativenumber.IncludingthisattributewillcauseanentrytobegeneratedforthefileintheSelfRegtable.
ShortName ShortFileNameType Theshortfilenameofthefilein8.3format.Thisattributeshouldonlybesetifthereisaconflictbetweengeneratedshortfilenamesortheuserwantstomanuallyspecifytheshortfilename.
Source String SpecifiesthepathtotheFileinthebuildprocess.OverridesdefaultsourcepathsetbyparentdirectoriesandNameattribute.Thisattributemustbesetifnosourceinformationcanbegatheredfromparentdirectories.Formoreinformation,seeSpecifyingsourcefiles
src String Thisattributehasbeendeprecated;pleaseusetheSourceattributeinstead.
System YesNoType Settoyesinordertohavethefile'ssystem
Page 1312
attributesetwhenitisinstalledonthetargetmachine.
TrueType YesNoType CausesanentrytobegeneratedforthefileintheFonttablewithnoFontTitlespecified.ThisattributeisintendedtobeusedtoregisterthefileasaTrueTypefont.
Vital YesNoType Ifafileisvital,theninstallationcannotproceedunlessthefileissuccessfullyinstalled.Theuserwillhavenooptiontoignoreanerrorinstallingthisfile.Ifanerroroccurs,theycanmerelyretrytoinstallthefileoraborttheinstallation.Thedefaultis"yes,"unlessthe-sfdvitalswitch(candle.exe)orSuppressFileDefaultVitalproperty(.wixproj)isused.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
HowTosandExamplesHowTo:Addafiletoyourinstaller
SeeAlsoWixSchema
Page 1313
FileCostElement
DescriptionInitiatesdynamiccostingofstandardinstallationactions.AnystandardorcustomactionsthataffectcostingshouldsequencedbeforetheCostInitializeaction.CalltheFileCostactionimmediatelyfollowingtheCostInitializeaction.ThencalltheCostFinalizeactionfollowingtheFileCostactiontomakeallfinalcostcalculationsavailabletotheinstallerthroughtheComponenttable.TheCostInitializeactionmustbeexecutedbeforetheFileCostaction.Theinstallerthendeterminesthedisk-spacecostofeveryfileintheFiletable,onaper-componentbasis,takingbothvolumeclusteringandthepresenceofexistingfilesthatmayneedtobeoverwrittenintoaccount.Allactionsthatconsumeorreleasediskspacearealsoconsidered.Ifanexistingfileisfound,afileversioncheckisperformedtodeterminewhetherthenewfileactuallyneedstobeinstalledornot.Iftheexistingfileisofanequalorgreaterversionnumber,theexistingfileisnotoverwrittenandnodisk-spacecostisincurred.Inallcases,theinstallerusestheresultsofversionnumbercheckingtosettheinstallationstateofeachfile.TheFileCostactioninitializescostcalculationwiththeinstaller.ActualdynamiccostingdoesnotoccuruntiltheCostFinalizeactionisexecuted.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesFileCostAction
ParentsAdminExecuteSequence,AdminUISequence,InstallExecuteSequence,InstallUISequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Page 1314
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,CostInitialize,CostFinalize
Page 1315
FileSearchElement
DescriptionSearchesforfileandassignstofullpathvalueofparentProperty
WindowsInstallerreferencesDrLocatorTable,SignatureTable
ParentsComponentSearch,DirectorySearch,DirectorySearchRef,IniFileSearch,RegistrySearch
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String UniqueidentifierforthefilesearchandexternalkeyintotheSignaturetable.Ifthisattributevalueisnotsetthentheparentelement's@Idattributeisused.
Languages String Thelanguagessupportedbythefile.
LongName LongFileNameType Thisattributehasbeendeprecated;pleaseusetheNameattributeinstead.
Page 1316
MaxDate DateTime Themaximummodificationdateandtimeofthefile.FormattedasYYYY-MM-DDTHH:mm:ss,whereYYYYistheyear,MMismonth,DDisday,'T'isliteral,HHishour,mmisminuteandssissecond.
MaxSize Int Themaximumsizeofthefile.
MaxVersion String Themaximumversionofthefile.
MinDate DateTime Theminimummodificationdateandtimeofthefile.FormattedasYYYY-MM-DDTHH:mm:ss,whereYYYYistheyear,MMismonth,DDisday,'T'isliteral,HHishour,mmisminuteandssissecond.
MinSize Int Theminimumsizeofthefile.
MinVersion String Theminimumversionofthefile.
Name LongFileNameType InpriorversionsoftheWiXtoolset,thisattributespecifiedtheshortfilename.Thisattribute'svaluemay
Page 1317
nowbeeitherashortorlongfilename.Ifashortfilenameisspecified,theShortNameattributemaynotbespecified.Ifalongfilenameisspecified,theLongNameattributemaynotbespecified.Ifyouwishtomanuallyspecifytheshortfilename,thentheShortNameattributemaybespecified.
ShortName ShortFileNameType Theshortfilenameofthefilein8.3format.ThereisaWindowsInstallerbugwhichpreventstheFileSearchfunctionalityfromworkingifbothashortandlongfilenamearespecified.SincetheNameattributeallowseitherashortorlongnametobespecified,itistheonlyattributerelatedtofilenameswhichshouldbespecified.
RemarksWhentheparentDirectorySearch/@Depthattributeisgreaterthan0,theFileSearch/@Idattributemustbeabsentorthesameasthe
Page 1318
parentDirectorySearch/@Idattributevalue,unlesstheparentDirectorySearch/@AssignToPropertyattributevalueis'yes'.
HowTosandExamplesHowTo:Checktheversionnumberofafileduringinstallation
SeeAlsoWixSchema,ComponentSearch,DirectorySearch,DirectorySearchRef,FileSearchRef,IniFileSearch,RegistrySearch
Page 1319
FileSearchRefElement
DescriptionReferencesanexistingFileSearchelement.
WindowsInstallerreferencesNone
ParentsComponentSearch,DirectorySearch,DirectorySearchRef,IniFileSearch,RegistrySearch
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String SpecifytheIdtotheFileSearchtoreference.
Yes
Remarks
AreferencetoanotherFileSearchelementmustreferencethesameIdandthesameParentId.IfanyoftheseattributevaluesaredifferentyoumustinsteaduseaFileSearchelement.
SeeAlsoWixSchema,FileSearch
Page 1320
FileTypeMaskElement
DescriptionFileTypedataforclassIdregistration.
WindowsInstallerreferencesNone
ParentsClass
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Mask HexType HexvaluethatisAND'dagainstthebytesinthefileatOffset.
Yes
Offset Integer Offsetintofile.Ifpositive,offsetisfromthebeginning;ifnegative,offsetisfromtheend.
Yes
Value HexType IftheresultoftheAND'ingofMaskwiththebytesinthefileisValue,thefileisamatchforthisFileType.
Yes
SeeAlsoWixSchema
Page 1321
FindRelatedProductsElement
DescriptionRunsthrougheachrecordoftheUpgradetableinsequenceandcomparestheupgradecode,productversion,andlanguageineachrowtoproductsinstalledonthesystem.WhenFindRelatedProductsdetectsacorrespondencebetweentheupgradeinformationandaninstalledproduct,itappendstheproductcodetothepropertyspecifiedintheActionPropertycolumnoftheUpgradeTable.TheFindRelatedProductsactiononlyrunsthefirsttimetheproductisinstalled.TheFindRelatedProductsactiondoesnotrunduringmaintenancemodeoruninstallation.FindRelatedProductsshouldbeauthoredintotheInstallUISequencetableandInstallExecuteSequencetables.TheinstallerpreventsFindRelatedProductsfromrunninginInstallExecuteSequenceiftheactionhasalreadyruninInstallUISequence.TheFindRelatedProductsactionmustcomebeforetheMigrateFeatureStatesactionandtheRemoveExistingProductsaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesFindRelatedProductsAction
ParentsInstallExecuteSequence,InstallUISequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthat
Page 1322
thisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,Upgrade
Page 1323
ForceRebootElement
DescriptionPromptstheuserforarestartofthesystemduringtheinstallation.Specialactionsdon'thaveabuilt-insequencenumberandthusmustappearrelativetoanotheraction.ThesuggestedwaytodothisisbyusingtheBeforeorAfterattribute.InstallExecuteandInstallExecuteAgaincanoptionallyappearanywherebetweenInstallInitializeandInstallFinalize.
WindowsInstallerreferencesForceRebootAction
ParentsInstallExecuteSequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthatthisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Page 1324
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1325
FragmentElement
DescriptionTheFragmentelementisthebuildingblockofcreatinganinstallerdatabaseinWiX.Oncedefined,theFragmentbecomesanimmutable,atomicunitwhichcaneitherbecompletelyincludedorexcludedfromaproduct.ThecontentsofaFragmentelementcanbelinkedintoaproductbyutilizingoneofthemany*Refelements.WhenlinkinginaFragment,itwillbenecessarytolinkinallofitsindividualunits.Forinstance,ifagivenFragmentcontainstwoComponentelements,youmustlinkbothunderfeaturesusingComponentRefforeachlinkedComponent.Otherwise,youwillgetalinkerwarningandhaveafloatingComponentthatdoesnotappearunderanyFeature.
WindowsInstallerreferencesNone
ParentsWix
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
AppId(min:0,max:unbounded)Binary(min:0,max:unbounded)BootstrapperApplication(min:0,max:unbounded)BootstrapperApplicationRef(min:0,max:unbounded)ComplianceCheck(min:0,max:unbounded)Component(min:0,max:unbounded)ComponentGroup(min:0,max:unbounded)Condition(min:0,max:unbounded)Container(min:0,max:unbounded)
Page 1326
CustomAction(min:0,max:unbounded)CustomActionRef(min:0,max:unbounded)CustomTable(min:0,max:unbounded)Directory(min:0,max:unbounded)DirectoryRef(min:0,max:unbounded)EmbeddedChainer(min:0,max:unbounded)EmbeddedChainerRef(min:0,max:unbounded)EnsureTable(min:0,max:unbounded)Feature(min:0,max:unbounded)FeatureGroup(min:0,max:unbounded)FeatureRef(min:0,max:unbounded)Icon(min:0,max:unbounded)IgnoreModularization(min:0,max:unbounded)Media(min:0,max:unbounded)MediaTemplate(min:0,max:unbounded)PackageCertificates(min:0,max:unbounded)PackageGroup(min:0,max:unbounded)PatchCertificates(min:0,max:unbounded)PatchFamily(min:0,max:unbounded)PatchFamilyGroup(min:0,max:unbounded)PayloadGroup(min:0,max:unbounded)Property(min:0,max:unbounded)PropertyRef(min:0,max:unbounded)RelatedBundle(min:0,max:unbounded)SetDirectory(min:0,max:unbounded)SetProperty(min:0,max:unbounded)SFPCatalog(min:0,max:unbounded)UI(min:0,max:unbounded)UIRef(min:0,max:unbounded)Upgrade(min:0,max:unbounded)Variable(min:0,max:unbounded)WixVariable(min:0,max:unbounded)Sequence(min:1,max:1)
Page 1327
1. InstallExecuteSequence(min:0,max:1)2. InstallUISequence(min:0,max:1)3. AdminExecuteSequence(min:0,max:1)4. AdminUISequence(min:0,max:1)5. AdvertiseExecuteSequence(min:0,max:1)
AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
BootstrapperApplicationBootstrapperApplicationRefCloseApplicationComPlusApplicationComPlusApplicationRoleComPlusPartitionComPlusPartitionRoleComponentSearchComponentSearchRefConditionDirectorySearchDirectorySearchRefFileSearchFileSearchRefGroupHelpCollectionRefHelpFilterMutationPackageGroupPayloadGroupProductSearchProductSearchRefRegistrySearchRegistrySearchRefRelatedBundle
Page 1328
RequiresRestartResourceSqlDatabaseUnitTestUnitTestRefUpdateUserUXVariableWebApplicationWebAppPoolWebDirPropertiesWebLogWebSite
Attributes
Name Type Description Required
Id String OptionalidentifierforaFragment.Shouldonlybesetbyadvanceduserstotagsections.
SeeAlsoWixSchema
Page 1329
IconElement
DescriptionIconusedforShortcut,ProgId,orClasselements(butnotUIcontrols)
WindowsInstallerreferencesIconTable
ParentsFragment,Module,Product,Shortcut
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheIdcannotbelongerthan55characters.InordertopreventerrorsincaseswheretheIdismodularized,itshouldnotbelongerthan18characters.
Yes
SourceFile String Pathtotheiconfile.
src String Thisattributehasbeendeprecated;pleaseusetheSourceFileattributeinstead.
HowTosandExamplesHowTo:Setyourinstaller'siconinAdd/RemoveProgramsHowTo:CreateashortcutontheStartMenu
SeeAlso
Page 1331
IconRefElement
DescriptionUsedonlyforPatchFamiliestoincludeonlyaicontableentryinapatch.
WindowsInstallerreferencesNone
ParentsPatchFamily
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifieroftheIconelementtoreference.
Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema
Page 1332
IgnoreModularizationElement
DescriptionThiselementhasbeendeprecated.UsetheBinary/@SuppressModularization,CustomAction/@SuppressModularization,orProperty/@SuppressModularizationattributesinstead.
WindowsInstallerreferencesNone
ParentsFragment,Module
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Name String Thenameoftheitemtoignoremodularizationfor.
Yes
Type Enumeration Thetypeoftheitemtoignoremodularizationfor.Thisattribute'svaluemustbeoneofthefollowing:Action
Property
Directory
SeeAlsoWixSchema
Page 1333
IgnoreRangeElement
DescriptionSpecifiespartofafilethatistobeignoredduringpatching.
WindowsInstallerreferencesNone
ParentsExternalFile,TargetFile
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Length Int Lengthoftherange. Yes
Offset Int Offsetofthestartoftherange. Yes
SeeAlsoWixSchema
Page 1334
IgnoreTableElement
DescriptionSpecifiesatablefromthemergemodulethatisnotmergedintoan.msifile.Ifthetablealreadyexistsinan.msifile,itisnotmodifiedbythemerge.Thespecifiedtablecanthereforecontaindatathatisunneededafterthemerge.Tominimizethesizeofthe.msmfile,itisrecommendedthatdevelopersremoveunusedtablesfrommodulesintendedforredistributionratherthancreatingIgnoreTableelementsforthosetables.
WindowsInstallerreferencesNone
ParentsModule
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Thenameofthetableinthemergemodulethatisnottobemergedintothe.msifile.
Yes
SeeAlsoWixSchema
Page 1335
IncludeElement
DescriptionThisisthetop-levelcontainerelementforeverywxifile.
WindowsInstallerreferencesNone
ParentsNone
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
AnyElement(namespace='##any'processContents='Lax')
AttributesNone
SeeAlsoWixSchema
Page 1336
IniFileElement
DescriptionAddsorremoves.inifileentries.
WindowsInstallerreferencesIniFileTable,RemoveIniFileTable
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierforinifile. Yes
Action Enumeration Thetypeofmodificationtobemade.Thisattribute'svaluemustbeoneofthefollowing:addLine
Createsorupdatesan.inientry.
addTagCreatesanewentryorappendsanewcomma-separatedvaluetoanexisting
Yes
Page 1337
entry.
createLineCreatesan.inientryonlyiftheentrydoesnoalreadyexist.
removeLineRemovesan.inientry.
removeTagRemovesatagfroman.inientry.
Directory String Nameofaproperty,thevalueofwhichisthefullpathofthefoldercontainingthe.inifile.CanbenameofadirectoryintheDirectorytable,apropertysetbytheAppSearchtable,oranyotherpropertyrepresentingafullpath.
Key String Thelocalizable.inifilekeywithinthesection.
Yes
LongName LongFileNameType Thisattributehasbeendeprecated;pleaseusetheNameattributeinstead.
Name LongFileNameType InpriorversionsoftheWiXtoolset,thisattributespecifiedthe
Yes
Page 1338
shortname.Thisattribute'svaluemaynowbeeitherashortorlongname.Ifashortnameisspecified,theShortNameattributemaynotbespecified.Ifalongnameisspecified,theLongNameattributemaynotbespecified.Also,ifthisvalueisalongname,theShortNameattributemaybeomittedtoallowWiXtoattempttogenerateauniqueshortname.However,ifthisnamecollideswithanotherfileoryouwishtomanuallyspecifytheshortname,thentheShortNameattributemaybespecified.
Section String Thelocalizable.inifilesection.
Yes
ShortName ShortFileNameType Theshortnameofthein8.3format.Thisattributeshouldonlybesetifthereisaconflictbetweengeneratedshortnamesortheuserwantstomanuallyspecifytheshortname.
Page 1339
Value String Thelocalizablevaluetobewrittenordeleted.ThisattributemustbesetiftheActionattribute'svalueis"addLine","addTag",or"createLine".
SeeAlsoWixSchema
Page 1340
IniFileSearchElement
DescriptionSearchesforfile,directoryorregistrykeyandassignstovalueofparentProperty
WindowsInstallerreferencesIniLocatorTable,SignatureTable
ParentsComplianceCheck,Property
InnerTextNone
ChildrenChoiceofelements(min:0,max:1)
DirectorySearch(min:0,max:1)DirectorySearchRef(min:0,max:1)FileSearch(min:0,max:1)FileSearchRef(min:0,max:1)
Attributes
Name Type Description Required
Id String ExternalkeyintotheSignaturetable.
Yes
Field Integer Thefieldinthe.iniline.IffieldisNullor0,theentirelineisread.
Key String Thekeyvaluewithinthesection.
Yes
LongName LongFileNameType Thisattributehasbeendeprecated;
Page 1341
pleaseusetheNameattributeinstead.
Name LongFileNameType InpriorversionsoftheWiXtoolset,thisattributespecifiedtheshortname.Thisattribute'svaluemaynowbeeitherashortorlongname.Ifashortnameisspecified,theShortNameattributemaynotbespecified.Ifalongnameisspecified,theLongNameattributemaynotbespecified.Also,ifthisvalueisalongname,theShortNameattributemaybeomittedtoallowWiXtoattempttogenerateauniqueshortname.However,ifyouwishtomanuallyspecifytheshortname,thentheShortNameattributemaybespecified.
Yes
Section String Thelocalizable.inifilesection.
Yes
ShortName ShortFileNameType Theshortnameofthefilein8.3format.Thisattributeshouldonlybesetiftheuserwantstomanually
Page 1342
specifytheshortname.
Type Enumeration MustbefileiflastchildisFileSearchelementandmustbedirectoryiflastchildisDirectorySearchelement.Thisattribute'svaluemustbeoneofthefollowing:directory
Adirectorylocation.
fileAfilelocation.Thisisthedefaultvalue.
rawAraw.inivalue.
SeeAlsoWixSchema,ComponentSearch,RegistrySearch
Page 1343
InstallAdminPackageElement
DescriptionCopiestheproductdatabasetotheadministrativeinstallationpoint.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesInstallAdminPackageAction
ParentsAdminExecuteSequence,AdminUISequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1344
InstallExecuteElement
DescriptionRunsascriptcontainingalloperationsspooledsinceeitherthestartoftheinstallationorthelastInstallExecuteaction,orInstallExecuteAgainaction.Specialactionsdon'thaveabuilt-insequencenumberandthusmustappearrelativetoanotheraction.ThesuggestedwaytodothisisbyusingtheBeforeorAfterattribute.InstallExecuteandInstallExecuteAgaincanoptionallyappearanywherebetweenInstallInitializeandInstallFinalize.
WindowsInstallerreferencesInstallExecuteAction
ParentsInstallExecuteSequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthatthisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Avalueusedtoindicatethepositionofthisactionina
Page 1345
sequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1346
InstallExecuteAgainElement
DescriptionRunsascriptcontainingalloperationsspooledsinceeitherthestartoftheinstallationorthelastInstallExecuteaction,orInstallExecuteAgainaction.ShouldonlybeusedafterInstallExecute.Specialactionsdon'thaveabuilt-insequencenumberandthusmustappearrelativetoanotheraction.ThesuggestedwaytodothisisbyusingtheBeforeorAfterattribute.InstallExecuteandInstallExecuteAgaincanoptionallyappearanywherebetweenInstallInitializeandInstallFinalize.
WindowsInstallerreferencesInstallExecuteAgainAction
ParentsInstallExecuteSequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthatthisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Avalueusedtoindicatethe
Page 1347
positionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1348
InstallExecuteSequenceElement
DescriptionNone
WindowsInstallerreferencesInstallExecuteSequenceTable
ParentsFragment,Module,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
AllocateRegistrySpace(min:0,max:unbounded):Ensurestheneededamountofspaceexistsintheregistry.AppSearch(min:0,max:unbounded):Usesfilesignaturestosearchforexistingversionsofproducts.BindImage(min:0,max:unbounded):BindseachexecutableorDLLthatmustbeboundtotheDLLsimportedbyit.CCPSearch(min:0,max:unbounded):Usesfilesignaturestovalidatethatqualifyingproductsareinstalledonasystembeforeanupgradeinstallationisperformed.CostFinalize(min:0,max:unbounded):EndstheinternalinstallationcostingprocessbegunbytheCostInitializeaction.CostInitialize(min:0,max:unbounded):Initiatestheinternalinstallationcostingprocess.CreateFolders(min:0,max:unbounded):Createsemptyfoldersforcomponentsthataresettobeinstalled.CreateShortcuts(min:0,max:unbounded):Managesthecreationofshortcuts.Custom(min:0,max:unbounded):Usetosequenceacustomaction.
Page 1349
DeleteServices(min:0,max:unbounded):Stopsaserviceandremovesitsregistrationfromthesystem.DisableRollback(min:0,max:unbounded):Disablesrollbackfortheremainderoftheinstallation.DuplicateFiles(min:0,max:unbounded):DuplicatesfilesinstalledbytheInstallFilesaction.FileCost(min:0,max:unbounded):Initiatesdynamiccostingofstandardinstallationactions.FindRelatedProducts(min:0,max:unbounded):RunsthrougheachrecordoftheUpgradetableinsequenceandcomparestheupgradecode,productversion,andlanguageineachrowtoproductsinstalledonthesystem.ForceReboot(min:0,max:unbounded):Promptstheuserforarestartofthesystemduringtheinstallation.Notfixedsequence.InstallExecute(min:0,max:unbounded):RunsascriptcontainingalloperationsspooledsinceeitherthestartoftheinstallationorthelastInstallExecuteaction,orInstallExecuteAgainaction.InstallExecuteAgain(min:0,max:unbounded):RunsascriptcontainingalloperationsspooledsinceeitherthestartoftheinstallationorthelastInstallExecuteaction,orInstallExecuteAgainaction.InstallFiles(min:0,max:unbounded):CopiesfilesspecifiedintheFiletablefromthesourcedirectorytothedestinationdirectory.InstallFinalize(min:0,max:unbounded):Markstheendofasequenceofactionsthatchangethesystem.InstallInitialize(min:0,max:unbounded):Marksthebeginningofasequenceofactionsthatchangethesystem.InstallODBC(min:0,max:unbounded):Installsthedrivers,translators,anddatasourcesintheODBCDrivertable,ODBCTranslatortable,andODBCDataSourcetable.InstallServices(min:0,max:unbounded):Registersaserviceforthesystem.InstallValidate(min:0,max:unbounded):Verifiesthatallcostedvolumeshaveenoughspacefortheinstallation.
Page 1350
IsolateComponents(min:0,max:unbounded):Installsacopyofacomponent(commonlyasharedDLL)intoaprivatelocationforusebyaspecificapplication(typicallyan.exe).LaunchConditions(min:0,max:unbounded):QueriestheLaunchConditiontableandevaluateseachconditionalstatementrecordedthere.MigrateFeatureStates(min:0,max:unbounded):Usedforupgradingorinstallingoveranexistingapplication.MoveFiles(min:0,max:unbounded):Locatesexistingfilesonthesystemandmovesorcopiesthosefilestoanewlocation.MsiPublishAssemblies(min:0,max:unbounded):ManagestheadvertisementofCLRandWin32assemblies.MsiUnpublishAssemblies(min:0,max:unbounded):ManagestheunadvertisementofCLRandWin32assembliesthatarebeingremoved.PatchFiles(min:0,max:unbounded):QueriesthePatchtabletodeterminewhichpatchesaretobeapplied.ProcessComponents(min:0,max:unbounded):Registersandunregisterscomponents,theirkeypaths,andthecomponentclients.PublishComponents(min:0,max:unbounded):ManagestheadvertisementofthecomponentsfromthePublishComponenttable.PublishFeatures(min:0,max:unbounded):Writeseachfeature'sstateintothesystemregistry.PublishProduct(min:0,max:unbounded):Managestheadvertisementoftheproductinformationwiththesystem.RegisterClassInfo(min:0,max:unbounded):ManagestheregistrationofCOMclassinformationwiththesystem.RegisterComPlus(min:0,max:unbounded):RegistersCOM+applications.RegisterExtensionInfo(min:0,max:unbounded):Managestheregistrationofextensionrelatedinformationwiththesystem.RegisterFonts(min:0,max:unbounded):Registersinstalledfontswiththesystem.RegisterMIMEInfo(min:0,max:unbounded):RegistersMIME-
Page 1351
relatedregistryinformationwiththesystem.RegisterProduct(min:0,max:unbounded):Registerstheproductinformationwiththeinstaller.RegisterProgIdInfo(min:0,max:unbounded):ManagestheregistrationofOLEProgIdinformationwiththesystem.RegisterTypeLibraries(min:0,max:unbounded):Registerstypelibrarieswiththesystem.RegisterUser(min:0,max:unbounded):Registerstheuserinformationwiththeinstallertoidentifytheuserofaproduct.RemoveDuplicateFiles(min:0,max:unbounded):DeletesfilesinstalledbytheDuplicateFilesaction.RemoveEnvironmentStrings(min:0,max:unbounded):Modifiesthevaluesofenvironmentvariables.RemoveExistingProducts(min:0,max:unbounded):GoesthroughtheproductcodeslistedintheActionPropertycolumnoftheUpgradetableandremovestheproductsinsequence.RemoveFiles(min:0,max:unbounded):RemovesfilespreviouslyinstalledbytheInstallFilesaction.RemoveFolders(min:0,max:unbounded):Removesanyfolderslinkedtocomponentssettoberemovedorrunfromsource.RemoveIniValues(min:0,max:unbounded):Removes.inifileinformationspecifiedforremovalintheRemoveIniFiletableifthecomponentissettobeinstalledlocallyorrunfromsource.RemoveODBC(min:0,max:unbounded):Removesthedatasources,translators,anddriverslistedforremovalduringtheinstallation.RemoveRegistryValues(min:0,max:unbounded):Removesaregistryvaluethathasbeenauthoredintotheregistrytableiftheassociatedcomponentwasinstalledlocallyorasrunfromsource,andisnowsettobeuninstalled.RemoveShortcuts(min:0,max:unbounded):Managestheremovalofanadvertisedshortcutwhosefeatureisselectedforuninstallationoranonadvertisedshortcutwhosecomponentisselectedforuninstallation.ResolveSource(min:0,max:unbounded):Determinesthe
Page 1352
locationofthesourceandsetstheSourceDirpropertyifthesourcehasnotbeenresolvedyet.Notfixedsequence.RMCCPSearch(min:0,max:unbounded):Usesfilesignaturestovalidatethatqualifyingproductsareinstalledonasystembeforeanupgradeinstallationisperformed.ScheduleReboot(min:0,max:unbounded):Promptstheusertorestartthesystemattheendofinstallation.Notfixedsequence.SelfRegModules(min:0,max:unbounded):ProcessesallmoduleslistedintheSelfRegtableandregistersallinstalledmoduleswiththesystem.SelfUnregModules(min:0,max:unbounded):UnregistersallmoduleslistedintheSelfRegtablethatarescheduledtobeuninstalled.SetODBCFolders(min:0,max:unbounded):ChecksforexistingODBCdriversandsetsthetargetdirectoryforeachnewdrivertothelocationofanexistingdriver.StartServices(min:0,max:unbounded):Startssystemservices.StopServices(min:0,max:unbounded):Stopssystemservices.UnpublishComponents(min:0,max:unbounded):ManagestheunadvertisementofcomponentslistedinthePublishComponenttable.UnpublishFeatures(min:0,max:unbounded):Removesselection-stateandfeature-componentmappinginformationfromtheregistry.UnregisterClassInfo(min:0,max:unbounded):ManagestheremovalofCOMclassinformationfromthesystemregistry.UnregisterComPlus(min:0,max:unbounded):RemovesCOM+applicationsfromtheregistry.UnregisterExtensionInfo(min:0,max:unbounded):Managestheremovalofextension-relatedinformationfromthesystemregistry.UnregisterFonts(min:0,max:unbounded):Removesregistrationinformationaboutinstalledfontsfromthesystem.UnregisterMIMEInfo(min:0,max:unbounded):UnregistersMIME-relatedregistryinformationfromthesystem.UnregisterProgIdInfo(min:0,max:unbounded):Managesthe
Page 1353
unregistrationofOLEProgIdinformationwiththesystem.UnregisterTypeLibraries(min:0,max:unbounded):Unregisterstypelibrariesfromthesystem.ValidateProductID(min:0,max:unbounded):SetstheProductIDpropertytothefullproductidentifier.WriteEnvironmentStrings(min:0,max:unbounded):Modifiesthevaluesofenvironmentvariables.WriteIniValues(min:0,max:unbounded):Writesthe.inifileinformationthattheapplicationneedswrittentoits.inifiles.WriteRegistryValues(min:0,max:unbounded):Setsupanapplication'sregistryinformation.
AttributesNone
SeeAlsoWixSchema
Page 1354
InstallFilesElement
DescriptionCopiesfilesspecifiedintheFiletablefromthesourcedirectorytothedestinationdirectory.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesInstallFilesAction
ParentsAdminExecuteSequence,AdminUISequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1355
InstallFinalizeElement
DescriptionMarkstheendofasequenceofactionsthatchangethesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesInstallFinalizeAction
ParentsAdminExecuteSequence,AdminUISequence,AdvertiseExecuteSequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,InstallInitialize
Page 1356
InstallInitializeElement
DescriptionMarksthebeginningofasequenceofactionsthatchangethesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesInstallInitializeAction
ParentsAdminExecuteSequence,AdminUISequence,AdvertiseExecuteSequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,InstallFinalize
Page 1357
InstallODBCElement
DescriptionInstallsthedrivers,translators,anddatasourcesintheODBCDrivertable,ODBCTranslatortable,andODBCDataSourcetable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesInstallODBCAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1358
InstallServicesElement
DescriptionRegistersaserviceforthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesInstallServicesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1359
InstallUISequenceElement
DescriptionNone
WindowsInstallerreferencesInstallUISequenceTable
ParentsFragment,Module,Product,UI
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
AppSearch(min:0,max:unbounded):Usesfilesignaturestosearchforexistingversionsofproducts.CCPSearch(min:0,max:unbounded):Usesfilesignaturestovalidatethatqualifyingproductsareinstalledonasystembeforeanupgradeinstallationisperformed.CostFinalize(min:0,max:unbounded):EndstheinternalinstallationcostingprocessbegunbytheCostInitializeaction.CostInitialize(min:0,max:unbounded):Initiatestheinternalinstallationcostingprocess.Custom(min:0,max:unbounded):Usetosequenceacustomaction.ExecuteAction(min:0,max:unbounded):Initiatestheexecutionsequence.FileCost(min:0,max:unbounded):Initiatesdynamiccostingofstandardinstallationactions.FindRelatedProducts(min:0,max:unbounded):RunsthrougheachrecordoftheUpgradetableinsequenceandcomparestheupgradecode,productversion,andlanguageineachrowtoproductsinstalledonthesystem.
Page 1360
IsolateComponents(min:0,max:unbounded):Installsacopyofacomponent(commonlyasharedDLL)intoaprivatelocationforusebyaspecificapplication(typicallyan.exe).LaunchConditions(min:0,max:unbounded):QueriestheLaunchConditiontableandevaluateseachconditionalstatementrecordedthere.MigrateFeatureStates(min:0,max:unbounded):Usedforupgradingorinstallingoveranexistingapplication.ResolveSource(min:0,max:unbounded):DeterminesthelocationofthesourceandsetstheSourceDirpropertyifthesourcehasnotbeenresolvedyet.RMCCPSearch(min:0,max:unbounded):Usesfilesignaturestovalidatethatqualifyingproductsareinstalledonasystembeforeanupgradeinstallationisperformed.ScheduleReboot(min:0,max:unbounded):Promptstheusertorestartthesystemattheendofinstallation.Notfixedsequence.Show(min:0,max:unbounded):DisplaysaDialog.ValidateProductID(min:0,max:unbounded):SetstheProductIDpropertytothefullproductidentifier.
AttributesNone
SeeAlsoWixSchema
Page 1361
InstallValidateElement
DescriptionVerifiesthatallcostedvolumeshaveenoughspacefortheinstallation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesInstallValidateAction
ParentsAdminExecuteSequence,AdminUISequence,AdvertiseExecuteSequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1362
InstanceElement
DescriptionDefinesaninstancetransformforyourproduct.
WindowsInstallerreferencesNone
ParentsInstanceTransforms
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Theidentityoftheinstancetransform.Thisvaluewilldefinethenamebywhichtheinstanceshouldbereferredtoonthecommandline.Inaddition,thevalueofthethisattributewilldeterminewhatthevalueofthepropertyspecifiedinPropertyattributeonInstanceTransformswillchangetoforeachinstance.
Yes
ProductCode AutogenGuid TheProductCodeforthisinstance.
Yes
Page 1363
ProductName String TheProductNameforthisinstance.
UpgradeCode Guid TheUpgradeCodeforthisinstance.
SeeAlsoWixSchema
Page 1364
InstanceTransformsElement
DescriptionUsethiselementtocontaindefinitionsforinstancetransforms.
WindowsInstallerreferencesNone
ParentsProduct
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Instance(min:0,max:unbounded)
Attributes
Name Type Description Required
Property String TheIdofthePropertywho'svalueshouldchangeforeachinstance.
Yes
SeeAlsoWixSchema
Page 1365
InterfaceElement
DescriptionCOMInterfaceregistrationforparentTypeLib.
WindowsInstallerreferencesRegistryTable
ParentsClass,Component,TypeLib
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id Guid GUIDidentifierforCOMInterface.
Yes
BaseInterface Guid Identifiestheinterfacefromwhichthecurrentinterfaceisderived.
Name String NameforCOMInterface.
Yes
NumMethods Integer NumberofmethodsimplementedonCOMInterface.
ProxyStubClassId Guid GUIDCLSIDforproxystubtoCOMInterface.
Page 1366
ProxyStubClassId32 Guid GUIDCLSIDfor32-bitproxystubtoCOMInterface.
Versioned YesNoType DetermineswhetheraTypelibversionentryshouldbecreatedwiththeotherCOMInterfaceregistrykeys.Defaultis'yes'.
SeeAlsoWixSchema
Page 1367
IsolateComponentElement
DescriptionSharedComponenttobeprivatelyreplicatedinfolderofparentComponent
WindowsInstallerreferencesIsolateComponentTable
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Shared String SharedComponentforthisapplicationComponent.
Yes
SeeAlsoWixSchema
Page 1368
IsolateComponentsElement
DescriptionInstallsacopyofacomponent(commonlyasharedDLL)intoaprivatelocationforusebyaspecificapplication(typicallyan.exe).Thisisolatestheapplicationfromothercopiesofthecomponentthatmaybeinstalledtoasharedlocationonthecomputer.TheactionreferstoeachrecordoftheIsolatedComponenttableandassociatesthefilesofthecomponentlistedintheComponent_SharedfieldwiththecomponentlistedintheComponent_Applicationfield.TheinstallerinstallsthefilesofComponent_SharedintothesamedirectoryasComponent_Application.Theinstallergeneratesafileinthisdirectory,zerobytesinlength,havingtheshortfilenamenameofthekeyfileforComponent_Application(typicallythisisthesamefilenameasthe.exe)appendedwith.local.TheIsolatedComponentactiondoesnotaffecttheinstallationofComponent_Application.UninstallingComponent_ApplicationalsoremovestheComponent_Sharedfilesandthe.localfilefromthedirectory.TheIsolateComponentsactioncanbeusedonlyintheInstallUISequencetableandtheInstallExecuteSequencetable.ThisactionmustcomeaftertheCostInitializeactionandbeforetheCostFinalizeaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesIsolateComponentsAction
ParentsInstallExecuteSequence,InstallUISequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Page 1369
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,IsolateComponent
Page 1370
LaunchConditionsElement
DescriptionQueriestheLaunchConditiontableandevaluateseachconditionalstatementrecordedthere.Ifanyoftheseconditionalstatementsfail,anerrormessageisdisplayedtotheuserandtheinstallationisterminated.TheLaunchConditionsactionisoptional.Thisactionisnormallythefirstinthesequence,buttheAppSearchActionmaybesequencedbeforetheLaunchConditionsaction.Iftherearelaunchconditionsthatdonotapplytoallinstallationmodes,theappropriateinstallationmodepropertyshouldbeusedinaconditionalexpressionintheappropriatesequencetable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesLaunchConditionsAction
ParentsAdminExecuteSequence,AdminUISequence,InstallExecuteSequence,InstallUISequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthatthisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Overridable YesNoType If"yes",thesequencingof
Page 1371
thisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,Condition
Page 1372
ListBoxElement
DescriptionSetofitemsforaparticularListBoxcontroltiedtoaninstallProperty
WindowsInstallerreferencesControlTable,DialogTable,ListViewTable
ParentsControl,UI
InnerTextNone
ChildrenSequence(min:1,max:1)1. ListItem(min:0,max:unbounded):entryforListBoxtable
Attributes
Name Type Description Required
Property String Propertytiedtothisgroup Yes
SeeAlsoWixSchema
Page 1373
ListItemElement
DescriptionThevalue(andoptionaltext)associatedwithaniteminaComboBox,ListBox,orListView.
WindowsInstallerreferencesComboBoxTable,ListBoxTable,ListViewTable
ParentsComboBox,ListBox,ListView
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Icon String TheidentifieroftheBinary(notIcon)elementcontainingtheicontoassociatewiththisitem.ThisvalueisonlyvalidwhennestedunderaListViewelement.
Text String Thelocalizable,visibletexttobeassignedtotheitem.Ifnotspecified,thiswilldefaulttothevalueoftheValueattribute.
Value String ThevalueassignedtotheassociatedComboBox,ListBox,orListViewpropertyifthisitemisselected.
Yes
SeeAlso
Page 1375
ListViewElement
DescriptionSetofitemsforaparticularListViewcontroltiedtoaninstallProperty
WindowsInstallerreferencesListViewTable,ControlTable,DialogTable
ParentsControl,UI
InnerTextNone
ChildrenSequence(min:1,max:1)1. ListItem(min:0,max:unbounded):entryforListViewtable
Attributes
Name Type Description Required
Property String Propertytiedtothisgroup Yes
SeeAlsoWixSchema
Page 1376
LogElement
DescriptionOverridesthedefaultlogsettingsforabundle.
WindowsInstallerreferencesNone
ParentsBundle
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Disable YesNoType DisablesthedefaultloggingintheBundle.Theendusercanstillgeneratealogfilebyspecifyingthe"-l"command-lineargumentwheninstallingtheBundle.
Extension String Theextensiontouseforthelog.Thedefaultis".log".
PathVariable String NameofaVariablethatwillholdthepathtothelogfile.Anemptyvaluewillcausethevariabletonotbeset.Thedefaultis"WixBundleLog".
Prefix String Filenameandoptionallyarelativepathtouseasthe
Page 1377
prefixforthelogfile.ThedefaultistousetheBundle/@Nameor,ifBundle/@Nameisnotspecified,thevalue"Setup".
SeeAlsoWixSchema
Page 1378
MajorUpgradeElement
DescriptionSimplifiesauthoringformajorupgrades,includingsupportforpreventingdowngrades.
TheparentProductelementmusthavevalidUpgradeCodeandVersionattributes.
WhentheFindRelatedProductsactiondetectsarelatedproductinstalledonthesystem,itappendstheproductcodetothepropertynamedWIX_UPGRADE_DETECTED.AftertheFindRelatedProductsactionisrun,thevalueoftheWIX_UPGRADE_DETECTEDpropertyisalistofproductcodes,separatedbysemicolons(;),detectedonthesystem.
WindowsInstallerreferencesNone
ParentsProduct
InnerTextNone
ChildrenNone
Attributes
Name Type Description
AllowDowngrades YesNoType Whensettono(thedefault),productswithlowerversionnumbersareblockedfrominstallingwhenaproductwithahigherversionisinstalled;theDowngradeErrorMessagebespecified.
Page 1379
Whensettoyes,anyversioncanbeinstalledoveranyotherversion.
AllowSameVersionUpgrades YesNoType Whensettono(thedefault),installingaproductwiththesameversionandupgradecode(butdifferentproductcode)isallowedandtreatedbyMSIastwoproducts.Whensettoyes,WiXsetsthemsidbUpgradeAttributesVersionMaxInclusiveattribute,whichtellsMSItotreatwiththesameversionasamajorupgrade.
Thisisusefulwhentwoproductversionsdifferonlyinthefourthversionfield.MSIspecificallyignoresthatfieldwhencomparingproductversions,sotwoproductsthatdifferonlyinthefourthversionfieldarethesameproductandneedthisattributesettoyestobedetected.
NotethatbecauseMSIignoresthefourthproductversionfield,settingthisattributetoyesalsoallowsdowngradeswhenthefirstthreeproductversionfieldsareidentical.example,productversion1.0.0.1will"upgrade"1.0.0.2998becausethey'reseenasthesameversion(1.0.0).Thatcouldreintroduceseriousbugssothesafestchoiceistochangethefirstthreeversionfieldsandomitthisattributetogetthedefaultofno.
Thisattributecannotbe"yes"whenAllowDowngradesisalso"yes"--AllowDowngradesalreadyallowstwoproductswiththesameversionnumbertoupgradeeachother.
Disallow YesNoType Whensettoyes,productswithhigerversion
Page 1380
numbersareblockedfromproductwithalowerversionisinstalled;theUpgradeErrorMessagebespecified.
Whensettono(thedefault),anyversioncanbeinstalledoveranylowerversion.
DisallowUpgradeErrorMessage String Themessagedisplayedifuserstrytoinstallaproductwithahigerversionnumberaproductwithalowerversionisinstalled.UsedonlywhenDisallow
DowngradeErrorMessage String Themessagedisplayedifuserstrytoinstallaproductwithalowerversionnumberaproductwithahigherversionisinstalled.UsedonlywhenAllowDowngradesdefault).
IgnoreRemoveFailure YesNoType Whensettoyes,failuresremovingtheinstalledproductduringtheupgradewillbeignored.
Whensettono(thedefault),failuresremovingtheinstalledproductduringtheupgradewillbeconsideredafailureand,dependingonthescheduling,rollbacktheupgrade.
MigrateFeatures YesNoType Whensettoyes(thedefault),theMigrateFeatureStatesstandardactionwillsetthefeaturestatesoftheupgradeproducttothoseoftheinstalledproduct.
Whensettono,theinstalledfeatureshavenoeffectontheupgradeinstallation.
RemoveFeatures String Aformattedstringthatcontainsthelistoffeaturestoremovefromtheinstalledproduct.Thedefaultistoremoveallfeatures.Notethatifyouuseformatted
Page 1381
propertyvaluesthatevaluatetoanemptystring,nofeatureswillberemoved;onlyomittingthisattributedefaultstoremovingallfeatures.
Schedule Enumeration DeterminestheschedulingoftheRemoveExistingProductsstandardaction,whichiswhentheinstalledproductisremoved.Thedefaultis"afterInstallValidate"whichremovestheinstalledproductentirelybeforeinstallingtheupgradeproduct.It'sslowestbutgivesthemostflexibilityinchangingcomponentsandfeaturesintheupgradeproduct.
Formoreinformation,seeRemoveExistingProductsvaluemustbeoneofthefollowing:afterInstallValidate
(Default)SchedulesRemoveExistingProductsaftertheInstallValidatestandardschedulingremovestheinstalledproductentirelybeforeinstallingupgradeproduct.It'sslowestbutgivesthemostflexibilityinchangingcomponentsandfeaturesintheupgradeproduct.Notethatiftheinstallationoftheupgradeproductfails,themachinewillhaveneitherversioninstalled.
afterInstallInitializeSchedulesRemoveExistingProductsaftertheInstallInitializestandardaction.ThisissimilartotheafterInstallValidatescheduling,butiftheinstallationupgradeproductfails,WindowsInstalleralsorollsbacktheremovalofinstalledproduct--inotherwords,
Page 1382
reinstallsit.
afterInstallExecuteSchedulesRemoveExistingProductsbetweentheInstallExecuteandInstallFinalizestandardactions.schedulinginstallstheupgradeproduct"ontopof"theinstalledproductthenletsRemoveExistingProductsuninstallanycomponentsthatdon'talsoexistintheupgradeproduct.schedulingrequiresstrictadherencetothecomponentrulesbecauseitreliesoncomponentreferencecountstobeaccurateduringinstallationoftheupgradeproductandinstalledproduct.Formoreinformation,seeBobArnson'sblogpost"PayingforUpgrades"fordetails.Ifinstallationoftheupgradeproductfails,WindowsInstalleralsorollsbacktheremovaloftheinstalledproduct--inotherwords,reinstallsit.
afterInstallExecuteAgainSchedulesRemoveExistingProductsbetweentheInstallExecuteAgainandInstallFinalizestandardactions.identicaltotheafterInstallExecuteschedulingbutaftertheInstallExecuteAgainstandardinsteadofInstallExecute.
afterInstallFinalizeSchedulesRemoveExistingProductsaftertheInstallFinalizestandardaction.ThisissimilartotheandafterInstallExecuteAgainschedulingsbuttakesplaceoutsidetheinstallationtransactionsoifinstallation
Page 1383
oftheupgradeproductfails,WindowsInstallerdoesnotrollbacktheremovaloftheinstalledproduct,sothemachinewillhavebothversions
SeeAlsoWixSchema
Page 1384
MediaElement
DescriptionMediaelementdescribesadiskthatmakesupthesourcemediafortheinstallation.
WindowsInstallerreferencesMediaTable
ParentsFragment,Patch,Product
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
DigitalSignature(min:0,max:unbounded)PatchBaseline(min:0,max:unbounded)SymbolPath(min:0,max:unbounded)
Attributes
Name Type Description
Id DiskIdType DiskidentifierforMediatable.Thisnumbermustbeequaltoorgreaterthan1.
Cabinet String Thenameofthecabinetifsomeorallofthefilesstoredonthemediaareinacabinetfile.Ifnocabinetsareused,thisattributemustnot
Page 1385
beset.
CompressionLevel CompressionLevelType IndicatesthecompressionlevelfortheMedia'scabinet.ThisattributecanonlybeusedinconjunctionwiththeCabinetattribute.Thedefaultis'mszip'.
DiskPrompt String Thediskname,whichisusuallythevisibletextprintedonthedisk.Thislocalizabletextisusedtoprompttheuserwhenthisdiskneedstobeinserted.Thisvaluewillbeusedinthe"[1]"oftheDiskPromptProperty.UsingthisattributewillrequireyoutodefineaDiskPromptProperty.
EmbedCab YesNoType Instructsthebindertoembedthecabinetintheproductif'yes'.ThisattributecanonlybespecifiedinconjunctionwiththeCabinetattribute.
Layout String ThisattributespecifiestherootdirectoryfortheuncompressedfilesthatareapartofthisMediaelement.Bydefault,thesrcwill
Page 1386
betheoutputdirectoryforthefinalimage.Thedefaultvalueensuresthebindergeneratesaninstallableimage.Ifarelativepathisspecifiedinthesrcattribute,thevaluewillbeappendedtotheimage'soutputdirectory.Ifanabsolutepathisprovided,thatpathwillbeusedwithoutmodification.Thelattertwooptionsareprovidedtoeasethelayoutofanimageontomultiplemedias(CDs/DVDs).
Source String Optionalpropertythatidentifiesthesourceoftheembeddedcabinet.Ifacabinetisspecifiedforapatch,thispropertyshouldbedefinedanduniquetoeachpatchsothattheembeddedcabinetcontainingpatchedandnewfilescanbelocatedinthepatchpackage.Ifthecabinetisnotembedded-thisisnottypical-thecabinetcanbefoundinthe
Page 1387
directoryreferencedinthiscolumn.Ifempty,theexternalcabinetmustbelocatedintheSourceDirdirectory.
src String Thisattributehasbeendeprecated;pleaseusetheLayoutattributeinstead.
VolumeLabel String Thelabelattributedtothevolume.ThisisthevolumelabelreturnedbytheGetVolumeInformationfunction.IftheSourceDirpropertyreferstoaremovable(floppyorCD-ROM)volume,thenthisvolumelabelisusedtoverifythattheproperdiskisinthedrivebeforeattemptingtoinstallfiles.Theentryinthiscolumnmustmatchthevolumelabelofthephysicalmedia.
SeeAlsoWixSchema
Page 1388
MediaTemplateElement
DescriptionMediaTeplateelementdescribesinformationtoautomaticallyassignfilestocabinets.Amaximumumnumberofcabinetscreatedis999.
WindowsInstallerreferencesNone
ParentsFragment,Product
InnerTextNone
ChildrenNone
Attributes
Name Type Description
CabinetTemplate String Templatednameofthecabinetifsomeorallofthefilesstoredonthemediaareinnamemustbeginwitheitheraletteroranunderscore,containmaximumoffivecharactersand{0}inthecabinetnamepartandmustendthreecharacterextension.defaultiscab{0}.cab.
CompressionLevel Enumeration IndicatesthecompressionlevelfortheMedia'scabinet.canonlybeusedinconjunctionwiththeCabinetattribute.defaultis'mszip'.valuemustbeoneofthefollowing:high
Page 1389
low
medium
mszip
none
DiskPrompt String Thediskname,whichisusuallythevisibletextprintedonthedisk.Thislocalizabletextisusedtheuserwhenthisdiskneedstobeinserted.Thisvaluewillbeusedinthe"[1]"oftheProperty.UsingthisattributewillrequireyoutodefineaDiskPromptProperty.
EmbedCab YesNoType Instructsthebindertoembedthecabinetsintheproductif'yes'.
MaximumCabinetSizeForLargeFileSplitting Int Maximumsizeofcabinetfilesinmegabytesforlargefiles.ThisattributeisusedforpackagingthatarelargerthanMaximumUncompressedMediaSizeintosmallercabinets.Ifcabinetsizeexceedthisvalue,thensettingthisattributewillcausethefiletobesplitintomultiplemaximumsize.ForsimplycontrollingcabinetsizewithoutfilesplittinguseMaximumUncompressedMediaSizeattribute.SettingthisattributewilldisablesmartcabbingfeaturethisFragment/Product.SettingWIX_MCSLFSenvironmentvariablecanbeusedtooverridethisvalue.Minimumallowedvalueofthisattributeis20MB.Maximum
Page 1390
allowedvalueandtheDefaultvalueofthisattributeis2048MB(2GB).
MaximumUncompressedMediaSize Int Sizeofuncompressedfilesineachcabinet,inmegabytes.WIX_MUMSenvironmentvariablecanbeusedtooverridethisvalue.Defaultvalueis200MB.
VolumeLabel String Thelabelattributedtothevolume.ThisisthevolumelabelreturnedbytheGetVolumeInformationfunction.IftheSourceDirpropertyreferstoaremovable(floppyorCD-ROM)volume,thenthisvolumelabelistheproperdiskisinthedrivebeforeattemptingTheentryinthiscolumnmustmatchthevolumelabelphysicalmedia.
SeeAlsoWixSchema
Page 1391
MergeElement
DescriptionMergedirectivetobringinamergemodulethatwillberedirectedtotheparentdirectory.
WindowsInstallerreferencesNone
ParentsDirectory,DirectoryRef
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
ConfigurationData(min:0,max:unbounded):Datatouseasinputtoaconfigurablemergemodule.
Attributes
Name Type Description Required
Id String TheuniqueidentifierfortheMergeelementinthesourcecode.ReferencedbytheMergeRef/@Id.
Yes
DiskId DiskIdType ThevalueofthisattributeshouldcorrespondtotheIdattributeofaMediaelementauthoredelsewhere.By
Page 1392
creatingthisconnectionbetweenthemergemoduleandMediaelement,yousetthepackagingoptionstothevaluesspecifiedintheMediaelement(valuessuchascompressionlevel,cabembedding,etc...).
FileCompression YesNoType Specifiesifthefilesinthemergemoduleshouldbecompressed.
Language LocalizableInteger SpecifiesthedecimalLCIDorlocalizationtokenforthelanguagetomergetheModuleinas.
Yes
SourceFile String Pathtothesourcelocationofthemergemodule.
src String Thisattributehasbeendeprecated;pleaseusetheSourceFileattributeinstead.
Page 1393
HowTosandExamplesHowTo:InstalltheVisualC++Redistributablewithyourinstaller
SeeAlsoWixSchema,MergeRef
Page 1394
MergeRefElement
DescriptionMergereferencetoconnectaMergeModuletoparentFeature
WindowsInstallerreferencesNone
ParentsFeature,FeatureGroup,FeatureRef
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheuniqueidentifierfortheMergeelementtobereferenced.
Yes
Primary YesNoType SpecifieswhetherthefeaturecontainingthisMergeRefistheprimaryfeatureforadvertisingthemergemodule'scomponents.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
HowTosandExamplesHowTo:InstalltheVisualC++Redistributablewithyourinstaller
SeeAlsoWixSchema,Merge
Page 1395
MigrateFeatureStatesElement
DescriptionUsedforupgradingorinstallingoveranexistingapplication.Readsfeaturestatesfromexistingapplicationandsetsthesefeaturestatesforthependinginstallation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesMigrateFeatureStatesAction
ParentsInstallExecuteSequence,InstallUISequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1396
MIMEElement
DescriptionMIMEcontent-typeforanExtension
WindowsInstallerreferencesMIMETable
ParentsExtension
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Advertise YesNoType WhetherthisMIMEistobeadvertised.Thedefaultistomatchwhatevertheparentextensionelementuses.Iftheparentelementisnotadvertised,thenthiselementcannotbeadvertisedeither.
Class Guid ClassIDfortheCOMserverthatistobeassociatedwiththeMIMEcontent.
ContentType String ThisistheidentifierfortheMIMEcontent.Itiscommonlywrittenintheformoftype/format.
Yes
Default YesNoType If'yes',becomethecontenttypefortheparent
Page 1397
Extension.Thedefaultvalueis'no'.
SeeAlsoWixSchema
Page 1398
ModuleElement
DescriptionTheModuleelementisanalogoustothemainfunctioninaCprogram.Whenlinking,onlyoneModulesectioncanbegiventothelinkertoproduceasuccessfulresult.Usingthiselementcreatesanmsmfile.
WindowsInstallerreferencesNone
ParentsWix
InnerTextNone
ChildrenSequence(min:1,max:1)1. Package(min:1,max:1)2. Choiceofelements(min:0,max:unbounded)
AppId(min:0,max:unbounded)Binary(min:0,max:unbounded)Component(min:0,max:unbounded)ComponentGroupRef(min:0,max:unbounded)ComponentRef(min:0,max:unbounded)Configuration(min:0,max:unbounded)CustomAction(min:0,max:unbounded)CustomActionRef(min:0,max:unbounded)CustomTable(min:0,max:unbounded)Dependency(min:0,max:unbounded)Directory(min:0,max:unbounded)DirectoryRef(min:0,max:unbounded)EmbeddedChainer(min:0,max:unbounded)
Page 1399
EmbeddedChainerRef(min:0,max:unbounded)EnsureTable(min:0,max:unbounded)Exclusion(min:0,max:unbounded)Icon(min:0,max:unbounded)IgnoreModularization(min:0,max:unbounded)IgnoreTable(min:0,max:unbounded)Property(min:0,max:unbounded)PropertyRef(min:0,max:unbounded)SetDirectory(min:0,max:unbounded)SetProperty(min:0,max:unbounded)SFPCatalog(min:0,max:unbounded)Substitution(min:0,max:unbounded)UI(min:0,max:unbounded)UIRef(min:0,max:unbounded)WixVariable(min:0,max:unbounded)Sequence(min:1,max:1)1. InstallExecuteSequence(min:0,max:1)2. InstallUISequence(min:0,max:1)3. AdminExecuteSequence(min:0,max:1)4. AdminUISequence(min:0,max:1)5. AdvertiseExecuteSequence(min:0,max:1)
AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
CloseApplicationComPlusApplicationComPlusApplicationRoleComPlusPartitionComPlusPartitionRoleGroupHelpCollectionRefHelpFilter
Page 1400
RequiresRestartResourceSqlDatabaseUserWebApplicationWebAppPoolWebDirPropertiesWebLogWebSite
Attributes
Name Type Description Required
Id String Thenameofthemergemodule(notthefilename).
Yes
Codepage String ThecodepageintegervalueorwebnamefortheresultingMSM.Seeremarksformoreinformation.
Guid Guid Thisattributeisdeprecated.UsethePackage/@Idattributeinstead.
Language LocalizableInteger ThedecimallanguageID(LCID)ofthemergemodule.
Yes
Version String Themajorandminorversionsofthemergemodule.
Yes
Remarks
YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformore
Page 1401
information.
SeeAlsoWixSchema
Page 1402
MoveFilesElement
DescriptionLocatesexistingfilesonthesystemandmovesorcopiesthosefilestoanewlocation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesMoveFileTable,MoveFilesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1403
MsiPackageElement
DescriptionDescribesasinglemsipackagetoinstall.
WindowsInstallerreferencesNone
ParentsChain,PackageGroup
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
MsiProperty(min:0,max:unbounded)Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)SlipstreamMsp(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.Theextension'sCompilerExtension.ParseElement()methodwillbecalledwiththepackageidentifierasthefirstvalueincontextValues.
MsiPropertyPayloadProvidesSlipstreamMsp
Attributes
Name Type Description
After String Theidentifierofanotherpackagethatthisoneshouldbeinstalledafter.BydefaulttheAfter
Page 1404
attributeissettotheprevioussiblingpackageintheChainorPackageGroupelement.Ifthisattributeisspecifiedensurethatacycleisnotcreatedexplicitlyorimplicitly.
Cache YesNoAlwaysType Whethertocachethepackage.Thedefaultis"yes".
CacheId String Theidentifiertousewhencachingthepackage.
Compressed YesNoDefaultType Whetherthepackagepayloadshouldbeembeddedinacontainerorleftasanexternalpayload.
Description String Specifiesthedescriptiontoplaceinthebootstrapperapplicationdatamanifestforthepackage.Bydefault,ExePackagesFileNamefieldfromtheversioninformation,MsiPackagesusetheARPCOMMENTSproperty,andMspPackagesusepatchmetadataproperty.Otherpackagetypesmustusethisattributetodefineadescriptioninthebootstrapperapplicationdatamanifest.
DisplayInternalUI YesNoType SpecifieswhetherthebundlewillshowtheUIauthoredintothemsipackage.Thedefaultis"no"whichmeansallinformationisroutedtothebootstrapperapplicationtoprovideaunifiedinstallationUIauthoredintothemsipackagewillbedisplayedontopofUI.
DisplayName String Specifiesthedisplaynametoplaceinthebootstrapperapplicationdatamanifestforthepackage.Bydefault,ExePackagesProductNamefieldfromtheversioninformation,MsiPackagesusetheProductNameproperty,andMspPackagesusemetadataproperty.Otherpackagetypesmustusethisattributetodefineadisplaynameinthe
Page 1405
bootstrapperapplicationdatamanifest.
DownloadUrl String TheURLtousetodownloadthepackage.Thefollowingsubstitutionsaresupported:
{0}isreplacedbythepackageId.{1}isreplacedbythepayloadId.{2}isreplacedbythepayloadfilename.
EnableFeatureSelection YesNoType SpecifieswhetherthebundlewillallowindividualcontrolovertheinstallationstateofFeaturesinsidethemsipackage.Managingfeatureselectionrequiresspecialcaretoensuretheinstall,modify,updateandthepackageisalwayscorrect.Thedefaultis"no".
ForcePerMachine YesNoType Overridetheautomaticper-machinedetectionofMSIpackagesandforcethepackagetobeper-machine.toolstodetecttheexpectedvalue.
Id String Identifierforthispackage,fororderingandcross-referencing.ThedefaultistheNameattribute(i.e.invalidcharactersarereplacedwithunderscores).
InstallCondition String Aconditiontoevaluatebeforeinstallingthepackage.Thepackagewillonlybeinstallediftheconditionevaluatestotrue.Iftheconditionevaluatestofalseandthebundleisbeinginstalled,repaired,ormodified,thepackagewillbeuninstalled.
InstallSize String Thesizethispackagewilltakeondiskinbytesafteritisinstalled.Bydefault,thebinderwillcalculatetheinstallsizebyscanningthepackage(FiletableforMSIs,PayloadsforEXEs)andusethetotalfortheinstallsizeofthepackage.
Page 1406
LogPathVariable String NameofaVariablethatwillholdthepathtothelogfile.Anemptyvaluewillcausethevariabletonotbeset.Thedefaultis"WixBundleLog_[PackageId]"exceptforMSUpackageswhichdefaulttonologging.
Name String Thedestinationpathandfilenameforthischainpayload.Usethisattributetorenametheentrypointorextractitintoasubfolder.ThedefaultvalueisthefilenamefromtheSourceFileattribute,ifprovided.Ataminimum,theNameorSourceFileattributemustbespecified.allowed.
Permanent YesNoType Specifieswhetherthepackagecanbeuninstalled.Thedefaultis"no".
RollbackLogPathVariable String NameofaVariablethatwillholdthepathtothelogfileusedduringrollback.Anemptyvaluewillcausethevariabletonotbeset.Thedefaultis"WixBundleRollbackLog_[PackageId]"exceptforMSUpackageswhich
SourceFile String Locationofthepackagetoaddtothebundle.ThedefaultvalueistheNameattribute,ifprovided.Nameattributemustbespecified.
SuppressLooseFilePayloadGeneration YesNoType Thisattributehasbeendeprecated.Whenthevalueis"yes",theBinderwillnotreadtheMSIpackagewouldotherwisebeautomaticallyincludedintheBundleasPayloads.notbeabletoinstalltheMSIpackagecorrectly.Thedefaultis"no".
SuppressSignatureVerification YesNoType Bydefault,aBundlewillusethehashofapackagetoverifyitscontents.Ifthisattributeisexplicitlysetto"no"withanAuthenticodesignaturetheBundlewill
Page 1407
verifythecontentsofthepackageusingthesignatureinstead.Therefore,thedefaultforthisattributecouldbeconsideredtobe"yes".Itisunusualfor"yes"toattribute.Inthiscase,thedefaultwaschangedinWiXv3.9afterexperiencingrealworldissueswithWindowsverifyingAuthenticodesignatures.SincetheAuthenticodesignaturesarenomoresecurethanhashingthedefaultwaschanged.
Visible YesNoType SpecifieswhethertheMSIwillbedisplayedinProgramsandFeatures(alsoknownasAdd/RemovePrograms).If"yes"isMSIpackageinformationwillbedisplayedinProgramsandFeatures.Thedefault"no"indicatestheMSI
Vital YesNoType Specifieswhetherthepackagemustsucceedforthechaintocontinue.Thedefault"yes"indicatesthatifthepackagefailsthenthechainwillfailandrollbackorstop.Ifthenthechainwillcontinueevenifthepackagereportsfailure.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.extensionscanregisteradditionalattributesatthispointintheschema.CompilerExtension.ParseAttribute()methodwillbecalledwiththepackageidentifierin
PrereqSupportPackage YesNoType Whensetto"yes",thePrereqBAwillplanthepackagetobeinstalledifitsInstallConditionis"true"orempty.(http://schemas.microsoft.com/wix/BalExtension)
SeeAlsoWixSchema
Page 1408
MsiPropertyElement
DescriptionAllowsanMSIpropertytobesetbasedonthevalueofaburnengineexpression.
WindowsInstallerreferencesNone
ParentsMsiPackage,MspPackage
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Name String ThenameoftheMSIpropertytoset.BurncontrolsthefollowMSIpropertiessotheycannotbesetwithMsiProperty:ACTION,ALLUSERS,REBOOT,REINSTALL,REINSTALLMODE
Yes
Value String Thevaluetosetthepropertyto.Thisstringisevaluatedbytheburnengineandcanbeassimpleasaburnenginevariablereferenceorascomplexasafullexpression.
Yes
SeeAlsoWixSchema
Page 1409
MsiPublishAssembliesElement
DescriptionManagestheadvertisementofCLRandWin32assemblies.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesMsiPublishAssembliesAction
ParentsAdvertiseExecuteSequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1410
MsiUnpublishAssembliesElement
DescriptionManagestheunadvertisementofCLRandWin32assembliesthatarebeingremoved.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesMsiUnpublishAssembliesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1411
MspPackageElement
DescriptionDescribesasinglemsppackagetoinstall.
WindowsInstallerreferencesNone
ParentsChain,PackageGroup
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
MsiProperty(min:0,max:unbounded)Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.Theextension'sCompilerExtension.ParseElement()methodwillbecalledwiththepackageidentifierasthefirstvalueincontextValues.
PayloadProvides
Attributes
Name Type Description
After String Theidentifierofanotherpackagethatthisoneshouldbeinstalledafter.BydefaulttheAfterattributeissettotheprevioussiblingpackageintheChainorPackageGroupelement.Ifthisattributeisspecifiedensurethatacycleisnot
Page 1412
createdexplicitlyorimplicitly.
Cache YesNoAlwaysType Whethertocachethepackage.Thedefaultis"yes".
CacheId String Theidentifiertousewhencachingthepackage.
Compressed YesNoDefaultType Whetherthepackagepayloadshouldbeembeddedinacontainerorleftasanexternalpayload.
Description String Specifiesthedescriptiontoplaceinthebootstrapperapplicationdatamanifestforthepackage.Bydefault,ExePackagesFileNamefieldfromtheversioninformation,MsiPackagesusetheARPCOMMENTSproperty,andMspPackagesusepatchmetadataproperty.Otherpackagetypesmustusethisattributetodefineadescriptioninthebootstrapperapplicationdatamanifest.
DisplayInternalUI YesNoType SpecifieswhetherthebundlewillshowtheUIauthoredintothemsppackage.Thedefaultis"no"whichmeansallinformationisroutedtothebootstrapperapplicationtoprovideaunifiedinstallationexperience.If"yes"isspecifiedtheUIauthoredintothemsppackagewillbedisplayedontopofUI.
DisplayName String Specifiesthedisplaynametoplaceinthebootstrapperapplicationdatamanifestforthepackage.Bydefault,ExePackagesProductNamefieldfromtheversioninformation,MsiPackagesusetheProductNameproperty,andMspPackagesusemetadataproperty.Otherpackagetypesmustusethisattributetodefineadisplaynameinthebootstrapperapplicationdatamanifest.
DownloadUrl String TheURLtousetodownloadthepackage.The
Page 1413
followingsubstitutionsaresupported:
{0}isreplacedbythepackageId.{1}isreplacedbythepayloadId.{2}isreplacedbythepayloadfilename.
Id String Identifierforthispackage,fororderingandcross-referencing.ThedefaultistheNameattributemodifiedtobesuitableasanidentifier(i.e.invalidcharactersarereplacedwithunderscores).
InstallCondition String Aconditiontoevaluatebeforeinstallingthepackage.Thepackagewillonlybeinstallediftheconditionevaluatestotrue.Iftheconditionevaluatestofalseandthebundleisbeinginstalled,repaired,ormodified,thepackagewillbeuninstalled.
InstallSize String Thesizethispackagewilltakeondiskinbytesafteritisinstalled.Bydefault,thebinderwillcalculatetheinstallsizebyscanningthepackage(FiletableforMSIs,PayloadsforEXEs)andusethetotalfortheinstallsizeofthepackage.
LogPathVariable String NameofaVariablethatwillholdthepathtothelogfile.Anemptyvaluewillcausethevariabletonotbeset.Thedefaultis"WixBundleLog_[PackageId]"exceptforMSUpackageswhichdefaulttonologging.
Name String Thedestinationpathandfilenameforthischainpayload.Usethisattributetorenametheentrypointorextractitintoasubfolder.ThedefaultvalueisthefilenamefromtheSourceFileattribute,ifprovided.Ataminimum,theNameorSourceFileattributemustbespecified.Theuseof'..'directoriesisnotallowed.
Page 1414
PerMachine YesNoDefaultType Indicatesthepackagemustbeexecutedelevated.Thedefaultis"no".
Permanent YesNoType Specifieswhetherthepackagecanbeuninstalled.Thedefaultis"no".
RollbackLogPathVariable String NameofaVariablethatwillholdthepathtothelogfileusedduringrollback.Anemptyvaluewillcausethevariabletonotbeset.Thedefaultis"WixBundleRollbackLog_[PackageId]"exceptforMSUpackageswhich
Slipstream YesNoType Specifieswhethertoautomaticallyslipstreamthepatchforanytargetmsipackagesinthechain.Thedefaultis"no".is"no",youcanstillauthortheSlipstreamMspelementunderMsiPackageelementsasdesired.
SourceFile String Locationofthepackagetoaddtothebundle.ThedefaultvalueistheNameattribute,ifprovided.Ataminimum,theSourceFileorNameattributemustbespecified.
SuppressSignatureVerification YesNoType Bydefault,aBundlewillusethehashofapackagetoverifyitscontents.Ifthisattributeisexplicitlysetto"no"withanAuthenticodesignaturetheBundlewillverifythecontentsofthepackageusingthesignatureinstead.Therefore,thedefaultforthisattributecouldbeconsideredtobe"yes".Itisunusualfor"yes"toattribute.Inthiscase,thedefaultwaschangedinWiXv3.9afterexperiencingrealworldissueswithWindowsverifyingAuthenticodesignatures.SincetheAuthenticodesignaturesarenomoresecurethanhashingthedefaultwaschanged.
Vital YesNoType Specifieswhetherthepackagemustsucceedforthechaintocontinue.Thedefault"yes"
Page 1415
indicatesthatifthepackagefailsthenthechainwillfailandrollbackorstop.Ifthenthechainwillcontinueevenifthepackagereportsfailure.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.CompilerExtension.ParseAttribute()methodwillbecalledwiththepackageidentifierin
PrereqSupportPackage YesNoType Whensetto"yes",thePrereqBAwillplanthepackagetobeinstalledifitsInstallConditionis"true"orempty.(http://schemas.microsoft.com/wix/BalExtension)
SeeAlsoWixSchema,SlipstreamMsp
Page 1416
MsuPackageElement
DescriptionDescribesasinglemsupackagetoinstall.
WindowsInstallerreferencesNone
ParentsChain,PackageGroup
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)RemotePayload(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.Theextension'sCompilerExtension.ParseElement()methodwillbecalledwiththepackageidentifierasthefirstvalueincontextValues.
PayloadProvidesRemotePayload
Attributes
Name Type Description
After String Theidentifierofanotherpackagethatthisoneshouldbeinstalledafter.BydefaulttheAfterattributeissettotheprevioussiblingpackageintheChainorPackageGroupelement.Ifthis
Page 1417
attributeisspecifiedensurethatacycleisnotcreatedexplicitlyorimplicitly.
Cache YesNoAlwaysType Whethertocachethepackage.Thedefaultis"yes".
CacheId String Theidentifiertousewhencachingthepackage.
Compressed YesNoDefaultType Whetherthepackagepayloadshouldbeembeddedinacontainerorleftasanexternalpayload.
Description String Specifiesthedescriptiontoplaceinthebootstrapperapplicationdatamanifestforthepackage.Bydefault,ExePackagesFileNamefieldfromtheversioninformation,MsiPackagesusetheARPCOMMENTSproperty,andMspPackagesusepatchmetadataproperty.Otherpackagetypesmustusethisattributetodefineadescriptioninthebootstrapperapplicationdatamanifest.
DetectCondition String Aconditionthatdeterminesifthepackageispresentonthetargetsystem.Thisconditioncanusebuilt-invariablesandvariablesreturnedbysearches.ThisconditionisnecessarybecauseWindowsdoesn'tprovideapresenceofanMsuPackage.Burnusesthisconditiontodeterminehowtotreatthisduringabundleaction;forexample,ifthisconditionisfalseoromittedandthebundleisbeinginstalled,Burnwillinstallthispackage.
DisplayName String Specifiesthedisplaynametoplaceinthebootstrapperapplicationdatamanifestforthepackage.Bydefault,ExePackagesProductNamefieldfromtheversioninformation,MsiPackagesusetheProductNameproperty,andMspPackagesusemetadataproperty.Otherpackagetypesmustusethisattributetodefineadisplaynameinthe
Page 1418
bootstrapperapplicationdatamanifest.
DownloadUrl String TheURLtousetodownloadthepackage.Thefollowingsubstitutionsaresupported:
{0}isreplacedbythepackageId.{1}isreplacedbythepayloadId.{2}isreplacedbythepayloadfilename.
Id String Identifierforthispackage,fororderingandcross-referencing.ThedefaultistheNameattributemodifiedtobesuitableasanidentifier(i.e.invalidcharactersarereplacedwithunderscores).
InstallCondition String Aconditiontoevaluatebeforeinstallingthepackage.Thepackagewillonlybeinstallediftheconditionevaluatestotrue.Iftheconditionevaluatestofalseandthebundleisbeinginstalled,repaired,ormodified,thepackagewillbeuninstalled.
InstallSize String Thesizethispackagewilltakeondiskinbytesafteritisinstalled.Bydefault,thebinderwillcalculatetheinstallsizebyscanningthepackage(FiletableforMSIs,PayloadsforEXEs)andusethetotalfortheinstallsizeofthepackage.
KB String TheknowledgebaseidentifierfortheMSU.TheKBattributemustbespecifiedtoenabletheMSUpackagetouninstallationisonlysupportedonWindows7andlater.WhentheKBattributePermanentattributewillthecontrolwhetherthepackageisuninstalled.
LogPathVariable String NameofaVariablethatwillholdthepathtothelogfile.Anemptyvaluewillcausethevariabletonotbeset.Thedefaultis"WixBundleLog_[PackageId]"exceptforMSU
Page 1419
packageswhichdefaulttonologging.
Name String Thedestinationpathandfilenameforthischainpayload.Usethisattributetorenametheentrypointorextractitintoasubfolder.ThedefaultvalueisthefilenamefromtheSourceFileattribute,ifprovided.Ataminimum,theNameorSourceFileattributemustbespecified.Theuseof'..'directoriesisnotallowed.
Permanent YesNoType Specifieswhetherthepackagecanbeuninstalled.Thedefaultis"no".
RollbackLogPathVariable String NameofaVariablethatwillholdthepathtothelogfileusedduringrollback.Anemptyvaluewillcausethevariabletonotbeset.Thedefaultis"WixBundleRollbackLog_[PackageId]"exceptforMSUpackageswhich
SourceFile String Locationofthepackagetoaddtothebundle.ThedefaultvalueistheNameattribute,ifprovided.Ataminimum,theSourceFileorNameattributemustbespecified.
SuppressSignatureVerification YesNoType Bydefault,aBundlewillusethehashofapackagetoverifyitscontents.Ifthisattributeisexplicitlysetto"no"withanAuthenticodesignaturetheBundlewillverifythecontentsofthepackageusingthesignatureinstead.Therefore,thedefaultforthisattributecouldbeconsideredtobe"yes".Itisunusualfor"yes"toattribute.Inthiscase,thedefaultwaschangedinWiXv3.9afterexperiencingrealworldissueswithWindowsverifyingAuthenticodesignatures.SincetheAuthenticodesignaturesarenomoresecurethanhashingthedefaultwaschanged.
Vital YesNoType Specifieswhetherthepackagemustsucceedfor
Page 1420
thechaintocontinue.Thedefault"yes"indicatesthatifthepackagefailsthenthechainwillfailandrollbackorstop.Ifthenthechainwillcontinueevenifthepackagereportsfailure.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.CompilerExtension.ParseAttribute()methodwillbecalledwiththepackageidentifierin
PrereqSupportPackage YesNoType Whensetto"yes",thePrereqBAwillplanthepackagetobeinstalledifitsInstallConditionis"true"orempty.(http://schemas.microsoft.com/wix/BalExtension)
SeeAlsoWixSchema
Page 1421
MultiStringValueElement
DescriptionUseseveraloftheseelementstospecifyeachregistryvalueinamultiStringregistryvalue.ThiselementcannotbeusediftheValueattributeisspecifiedunlesstheTypeattributeissetto'multiString'.ThevaluesshouldgointhetextareaoftheMultiStringValueelement.
WindowsInstallerreferencesRegistryTable
ParentsRegistryValue
SeeAlsoWixSchema
Page 1422
ODBCDataSourceElement
DescriptionODBCDataSourceforaComponent
WindowsInstallerreferencesODBCDataSourceTable
ParentsComponent,ODBCDriver
InnerTextNone
ChildrenSequence(min:1,max:1)1. Property(min:0,max:unbounded):Translatesinto
ODBCSourceAttributes
Attributes
Name Type Description Required
Id String Identifierofthedatasource. Yes
DriverName String RequiredifnotfoundaschildofODBCDriverelement
KeyPath YesNoType Set'yes'toforcethisfiletobekeypathforparentComponent
Name String Nameforthedatasource. Yes
Registration Enumeration Scopeforwhichthedatasourceshouldberegistered.Thisattribute'svaluemustbeoneofthefollowing:
Yes
Page 1423
machineDatasourceisregisteredpermachine.
userDatasourceisregisteredperuser.
SeeAlsoWixSchema
Page 1424
ODBCDriverElement
DescriptionODBCDriverforaComponent
WindowsInstallerreferencesODBCDriverTable
ParentsComponent,File
InnerTextNone
ChildrenSequence(min:1,max:1)1. Property(min:0,max:unbounded):Translatesinto
ODBCSourceAttributes2. ODBCDataSource(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifierforthedriver. Yes
File String RequiredifnotfoundaschildofFileelement
Name String Nameforthedriver. Yes
SetupFile String RequiredifnotfoundaschildofFileelementordifferentfromFileattributeabove
SeeAlsoWixSchema
Page 1425
ODBCTranslatorElement
DescriptionODBCTranslatorforaComponent
WindowsInstallerreferencesODBCTranslatorTable
ParentsComponent,File
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierforthetranslator. Yes
File String RequiredifnotfoundaschildofFileelement
Name String Nameforthetranslator. Yes
SetupFile String RequiredifnotfoundaschildofFileelementordifferentfromFileattributeabove
SeeAlsoWixSchema
Page 1426
OptimizeCustomActionsElement
DescriptionIndicateswhethercustomactionscanbeskippedwhenapplyingthepatch.
WindowsInstallerreferencesMsiPatchMetadataTable
ParentsPatch,PatchMetadata
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
SkipAssignment YesNoType Skipproperty(type51)anddirectory(type35)assignmentcustomactions.
SkipDeferred YesNoType Skipcustomactionsthatrunwithinthescript.
SkipImmediate YesNoType Skipimmediatecustomactionsthatarenotpropertyordirectoryassignmentcustomactions.
SeeAlsoWixSchema
Page 1427
OptionalUpdateRegistrationElement
DescriptionWritesadditionalinformationtotheWindowsregistrythatcanbeusedtodetectthebundle.Thisregistrationisintendedprimarilyforupdatetoanexistingproduct.
WindowsInstallerreferencesNone
ParentsBundle
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Classification String Thereleasetypeoftheupdatebundle,suchasUpdate,SecurityUpdate,ServicePack,etc.ThedefaultvalueisUpdate.
Department String Thenameofthedepartmentordivisionpublishingtheupdatebundle.ThePublishingGroupregistryvalueisnotwrittenifthisattributeisnotspecified.
Manufacturer String Thenameofthemanufacturer.ThedefaultistheBundle/@Manufacturerattribute,butmayalsobea
Page 1428
shortform,ex:WiXinsteadofWindowsInstallerXML.Anerrorisgeneratedatbuildtimeifneitherattributeisspecified.
Name String Thenameofthebundle.ThedefaultistheBundle/@Nameattribute,butmayalsobeashortform,ex:KB12345insteadofUpdatetoProduct(KB12345).Anerrorisgeneratedatbuildtimeifneitherattributeisspecified.
ProductFamily String Thenameofthefamilyofproductsbeingupdated.ThedefaultistheBundle/@ParentNameattribute.Thecorrespondingregistrykeyisnotcreatedifneitherattributeisspecified.
Remarks
Theattributesareusedtowritethefollowingregistryvaluestothekey:SOFTWARE\[Manufacturer]\Updates\[ProductFamily]\[Name]
ThisVersionInstalled:YPackageName:>bundlename<PackageVersion:>bundleversion<Publisher:[Manufacturer]PublishingGroup:[Department]ReleaseType:[Classification]InstalledBy:[LogonUser]InstalledDate:[Date]InstallerName:>installername<InstallerVersion:>installerversion<
SeeAlsoWixSchema
Page 1429
PackageElement
DescriptionPropertiesaboutthepackagetobeplacedintheSummaryInformationStream.ThesearevisiblefromCOMthroughtheIStreaminterface,andthesepropertiescanbeseenonthepackageinExplorer.
WindowsInstallerreferencesNone
ParentsModule,Product
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
AdminImage YesNoType Setto'yes'ifthesourceisanadminimage.
Comments String Optionalcommentsforbrowsing.
Compressed YesNoType Setto'yes'tohavecompressedfilesinthesource.Thisattributecannotbesetformergemodules.
Description String Theproductfullnameor
Page 1430
description.
Id AutogenGuid ThepackagecodeGUIDforaproductormergemodule.Whencompilingaproduct,thisattributeshouldnotbesetinordertoallowthepackagecodetobegeneratedforeachbuild.Whencompilingamergemodule,thisattributemustbesettothemodularizationguid.
InstallerVersion Integer TheminimumversionoftheWindowsInstallerrequiredtoinstallthispackage.TakethemajorversionoftherequiredWindowsInstallerandmultiplybya100thenaddtheminorversionoftheWindowsInstaller.Forexample,"200"wouldrepresentWindowsInstaller2.0and"405"wouldrepresentWindowsInstaller4.5.For64-bitWindowsInstallerpackages,thispropertyisset
Page 1431
to200bydefaultasWindowsInstaller2.0wasthefirstversiontosupport64-bitpackages.
InstallPrivileges Enumeration UsethisattributetospecifythepriviligesrequiredtoinstallthepackageonWindowsVistaandabove.Thisattribute'svaluemustbeoneofthefollowing:limited
Setthisvaluetodeclarethatthepackagedoesnotrequireelevatedprivilegestoinstall.
elevatedSetthisvaluetodeclarethatthepackagerequireselevatedprivilegestoinstall.Thisisthedefaultvalue.
InstallScope Enumeration Usethisattributetospecifytheinstallationscopeof
Page 1432
thispackage:per-machineorper-user.Thisattribute'svaluemustbeoneofthefollowing:perMachine
Setthisvaluetodeclarethatthepackageisaper-machineinstallationandrequireselevatedprivilegestoinstall.SetstheALLUSERSpropertyto1.
perUserSetthisvaluetodeclarethatthepackageisaper-userinstallationanddoesnotrequireelevatedprivilegestoinstall.Setsthepackage'sInstallPrivilegesattributeto"limited."
Keywords String Optionalkeywordsforbrowsing.
Languages String ThelistoflanguageIDs(LCIDs)
Page 1433
supportedinthepackage.
Manufacturer String Thevendorreleasingthepackage.
Platform Enumeration Theplatformsupportedbythepackage.Useofthisattributeisdiscouraged;instead,specifythe-archswitchatthecandle.execommandlineortheInstallerPlatformpropertyina.wixprojMSBuildproject.Thisattribute'svaluemustbeoneofthefollowing:x86
Setthisvaluetodeclarethatthepackageisanx86package.
ia64Setthisvaluetodeclarethatthepackageisania64package.ThisvaluerequiresthattheInstallerVersionpropertybeset
Page 1434
to200orgreater.
x64Setthisvaluetodeclarethatthepackageisanx64package.ThisvaluerequiresthattheInstallerVersionpropertybesetto200orgreater.
armSetthisvaluetodeclarethatthepackageisanarmpackage.ThisvaluerequiresthattheInstallerVersionpropertybesetto500orgreater.
intelThisvaluehasbeendeprecated.Use"x86"instead.
intel64Thisvaluehasbeendeprecated.Use"ia64"
Page 1435
instead.
Platforms String Thelistofplatformssupportedbythepackage.Thisattributehasbeendeprecated.Specifythe-archswitchatthecandle.execommandlineortheInstallerPlatformpropertyina.wixprojMSBuildproject.
ReadOnly YesNoDefaultType Thevalueofthisattributeconveyswhetherthepackageshouldbeopenedasread-only.Adatabaseeditingtoolshouldnotmodifyaread-onlyenforceddatabaseandshouldissueawarningatattemptstomodifyaread-onlyrecommendeddatabase.
ShortNames YesNoType Setto'yes'tohaveshortfilenamesinthesource.
SummaryCodepage String Thecodepageintegervalueorwebnameforsummaryinfostringsonly.See
Page 1436
remarksformoreinformation.
Remarks
YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.
SeeAlsoWixSchema
Page 1437
PackageCertificatesElement
DescriptionDigitalsignaturesthatidentifyinstallationpackagesinamulti-producttransaction.
WindowsInstallerreferencesMsiPackageCertificateTable
ParentsFragment,Product
InnerTextNone
ChildrenChoiceofelements(min:1,max:unbounded)
DigitalCertificate(min:1,max:unbounded)
AttributesNone
SeeAlsoWixSchema
Page 1438
PackageGroupElement
DescriptionDescribesapackagegrouptoabootstrapper.
WindowsInstallerreferencesNone
ParentsFragment
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
ExePackage(min:0,max:unbounded)MsiPackage(min:0,max:unbounded)MspPackage(min:0,max:unbounded)MsuPackage(min:0,max:unbounded)PackageGroupRef(min:0,max:unbounded)RollbackBoundary(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifierforpackagegroup. Yes
SeeAlsoWixSchema
Page 1439
PackageGroupRefElement
DescriptionCreateareferencetoPackageGroupelementthatexistsinsideaBundleorFragmentelement.
WindowsInstallerreferencesNone
ParentsChain,Container,PackageGroup
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifierofthePackageGroupelementtoreference.
Yes
After String Theidentifierofapackagethatthisgroupshouldbeinstalledafter.
SeeAlsoWixSchema,PackageGroup
Page 1440
PatchElement
DescriptionThePatchelementisanalogoustothemainfunctioninaCprogram.Whenlinking,onlyonePatchsectioncanbegiventothelinkertoproduceasuccessfulresult.UsingthiselementcreatesanMSPfile.
WindowsInstallerreferencesNone
ParentsWix
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
Media(min:1,max:unbounded)OptimizeCustomActions(min:0,max:1):Indicateswhethercustomactionscanbeskippedwhenapplyingthepatch.PatchFamily(min:1,max:unbounded)PatchFamilyGroup(min:1,max:unbounded)PatchFamilyGroupRef(min:0,max:unbounded)PatchFamilyRef(min:0,max:unbounded)PatchInformation(min:0,max:1):Optionalelementthatallowsoverridingsummaryinformationproperties.PatchProperty(min:0,max:unbounded)TargetProductCodes(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
Attributes
Page 1441
Name Type Description
AllowRemoval YesNoType Whetherthisisanuninstallablepatch.
ApiPatchingSymbolNoFailuresFlag YesNoType Flagusedwhencreatingabinaryfilepatch.Defaultis"no".Don'tfailpatchduetoimagehlpfailures.
ApiPatchingSymbolNoImagehlpFlag YesNoType Flagusedwhencreatingabinaryfilepatch.Defaultis"no".Don'tuseimagehlp.dll.
ApiPatchingSymbolUndecoratedTooFlag YesNoType Flagusedwhencreatingabinaryfilepatch.Defaultis"no".Aftermatchingdecoratedsymbols,trytomatchremainingbyundecoratednames.
Classification String Categoryofupdates.Recommendedvaluesare
Page 1442
CriticalUpdate,Hotfix,SecurityRollup,SecurityUpdate,ServicePack,Update,UpdateRollup.
ClientPatchId String Aneasilyreferencedidentityuniquetoapatchthatcanbeusedinproductauthoring.Seeremarksformoreinformation.
Codepage String ThecodepageintegervalueorwebnamefortheresultingMSP.Seeremarksformoreinformation.
Comments String Optionalcommentsforbrowsing.
Description String Descriptionofthepatch.
DisplayName String Atitleforthepatchthatissuitableforpublicdisplay.
Page 1443
InAdd/RemoveProgramsfromXPSP2on.
Id AutogenGuid Patchcodeforthispatch.
Manufacturer String Vendorreleasingthepackage
MinorUpdateTargetRTM YesNoType IndicatesthatthepatchtargetstheRTMversionoftheproductorthemostrecentmajorupgradepatch.AuthorthisoptionalpropertyinminorupdatepatchesthatcontainsequencinginformationtoindicatethatthepatchremovesallpatchesuptotheRTMversionoftheproduct,oruptothemostrecentmajorupgradepatch.Thispropertyisavailable
Page 1444
beginningwithWindowsInstaller3.1.
MoreInfoURL String AURLthatprovidesinformationspecifictothispatch.InAdd/RemoveProgramsfromXPSP2on.
OptimizedInstallMode YesNoType Ifthisattributeissetto'yes'inallthepatchestobeappliedinatransaction,theapplicationofthepatchisoptimizedifpossible.AvailablebeginningwithWindowsInstaller3.1.
OptimizePatchSizeForLargeFiles YesNoType Whenthisattributeisset,patchesforfilesgreaterthanapproximately4MBinsizemaybemadesmaller.
TargetProductName String Nameoftheapplicationortargetproduct
Page 1445
suite.
Remarks
YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.
TheClientPatchIdattributeallowsyoutospecifyaneasilyreferencedidentitythatyoucanuseinproductauthoring.ThisidentityprefixespropertiesaddedbyWiXtoapatchtransform,suchasClientPatchId.PatchCodeandClientPatchId.AllowRemoval.IfthepatchcodeGUIDisauto-generatedyoucouldnotreferenceanypropertiesusingthisauto-generatedprefix.
Forexample,ifyouwereplanningtoshipapatchreferredtoas"QFE1"andneededtowriteyourownregistryvaluesforAdd/RemoveProgramsinproductauthoringsuchastheUninstallStringforthispatch,youcouldauthoraRegistryValuewiththenameUninstallStringandthevalue[SystemFolder]msiexec.exe/package[ProductCode]/uninstall[QFE1.PatchCode].InyourpatchauthoringyouwouldthensetClientPatchIdto"QFE1"andWiXwilladdtheQFE1.PatchCodepropertytothepatchtransformwhenthepatchiscreated.IftheIdattributespecifiedthepatchcodetobegeneratedautomatically,youcouldnotreferencetheprefix.PatchCodepropertyasshownabove.
ThesummaryinformationisautomaticallypopulatedfromattributevaluesofthePatchelementincludingthecodepage.Ifyouwanttooverridesomeofthesesummaryinformationpropertiesoruseadifferentcodepageforthesummaryinformationitself,authorthePatchInformationelement.
SeeAlsoWixSchema
Page 1446
PatchBaselineElement
DescriptionIdentifiesasetofproductversions.
WindowsInstallerreferencesNone
ParentsMedia
InnerTextNone
ChildrenChoiceofelements(min:0,max:1)
Validate(min:0,max:1)
Attributes
Name Type Description Required
Id String Identifierforasetofproductversions.
Yes
SeeAlsoWixSchema
Page 1447
PatchCertificatesElement
DescriptionIdentifiesthepossiblesignercertificatesusedtodigitallysignpatches.
WindowsInstallerreferencesMsiPatchCertificateTable
ParentsFragment,Product
InnerTextNone
ChildrenChoiceofelements(min:1,max:unbounded)
DigitalCertificate(min:1,max:unbounded)
AttributesNone
SeeAlsoWixSchema
Page 1448
PatchCreationElement
DescriptionThePatchCreationelementisanalogoustothemainfunctioninaCprogram.Whenlinking,onlyonePatchCreationsectioncanbegiventothelinkertoproduceasuccessfulresult.Usingthiselementcreatesapcpfile.
WindowsInstallerreferencesNone
ParentsWix
InnerTextNone
ChildrenSequence(min:1,max:1)1. PatchInformation(min:1,max:1)2. PatchMetadata(min:0,max:1)3. Family(min:1,max:unbounded)4. Choiceofelements(min:0,max:unbounded)
PatchProperty(min:0,max:unbounded)PatchSequence(min:0,max:unbounded)ReplacePatch(min:0,max:unbounded)TargetProductCode(min:0,max:unbounded)
Attributes
Name Type Description
Id Guid PatchCreationidentifier;thisistheprimarykeyforidentifyingpatches.
AllowMajorVersionMismatches YesNoType Usethistosetwhetherthemajorversionsbetweentheupgradeand
Page 1449
targetimagesmatch.SeeAllowProductVersionMajorMismatchesformoreinformation.
AllowProductCodeMismatches YesNoType Usethistosetwhethertheproductcodebetweentheupgradeandtargetimagesmatch.SeeAllowProductCodeMismatchesmoreinformation.
CleanWorkingFolder YesNoType UsethistosetwhetherPatchwizshouldcleanthetempfolderwhenfinished.SeeDontRemoveTempFolderWhenFinishedformoreinformation.
Codepage String ThecodepageintegervalueorwebnamefortheresultingPCP.Seeremarksformoreinformation.
OutputPath String Thefullpath,includingfilename,ofthepatchpackagefilethatistobegenerated.SeePatchOutputPathmoreinformation.
SourceList String Usedtolocatethe.mspfileforthepatchifthecachedcopyisunavailable.SeePatchSourceListformoreinformation.
SymbolFlags Int An8-digithexintegerrepresentingthecombinationofpatchsymbolusageflagstousewhencreatingabinaryfilepatch.SeeApiPatchingSymbolFlagsformoreinformation.
WholeFilesOnly YesNoType Usethistosetwhetherchangingfilesshouldbeincludedintheirentirety.SeeIncludeWholeFilesOnlyformoreinformation.
Remarks
Page 1450
YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.
SeeAlsoWixSchema
Page 1451
PatchFamilyElement
DescriptionCollectionofitemsthatshouldbekeptfromthedifferencesbetweentwoproducts.
WindowsInstallerreferencesNone
ParentsFragment,Patch,PatchFamilyGroup
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
All(min:0,max:unbounded)BinaryRef(min:0,max:unbounded)ComponentRef(min:0,max:unbounded)CustomActionRef(min:0,max:unbounded)DigitalCertificateRef(min:0,max:unbounded)DirectoryRef(min:0,max:unbounded)FeatureRef(min:0,max:unbounded)IconRef(min:0,max:unbounded)PropertyRef(min:0,max:unbounded)UIRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
TagRef
Attributes
Page 1452
Name Type Description Required
Id String Identifierwhichindicatesasequencefamilytowhichthispatchbelongs.
Yes
ProductCode Guid SpecifiestheProductCodeoftheproductthatthisfamilyappliesto.
Supersede YesNoType Setthisvalueto'yes'toindicatethatthispatchwillsupersedeallpreviouspatchesinthispatchfamily.Thedefaultvalueis'no'.
Version String UsedtopopulatethesequencecolumnoftheMsiPatchSequencetableinthefinalMSPfile.Specifiedinx.x.x.xformat.SeedocumentationforSequencecolumnofMsiPatchSequencetableinMSISDK.
Yes
SeeAlsoWixSchema
Page 1453
PatchFamilyGroupElement
DescriptionGroupstogethermultiplepatchfamiliestobeusedinotherlocations.
WindowsInstallerreferencesNone
ParentsFragment,Patch
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
PatchFamily(min:0,max:unbounded)PatchFamilyGroupRef(min:0,max:unbounded)PatchFamilyRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
Attributes
Name Type Description Required
Id String IdentifierforthePatchFamilyGroup. Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,PatchFamilyGroupRef
Page 1454
PatchFamilyGroupRefElement
DescriptionCreateareferencetoaPatchFamilyGroupinanotherFragment.
WindowsInstallerreferencesNone
ParentsPatch,PatchFamilyGroup
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifierofthePatchFamilyGrouptoreference.
Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,PatchFamilyGroupRef
Page 1455
PatchFamilyRefElement
DescriptionThiswillcausetheentirecontentsoftheFragmentcontainingthereferencedPatchFamilytobeusedintheprocessofcreatingapatch.
WindowsInstallerreferencesNone
ParentsPatch,PatchFamilyGroup
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifierofthePatchFamilytoreference.
Yes
ProductCode Guid SpecifiestheProductCodeoftheproductthatthisfamilyappliesto.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,PatchFamily
Page 1456
PatchFilesElement
DescriptionQueriesthePatchtabletodeterminewhichpatchesaretobeapplied.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesPatchFilesAction
ParentsAdminExecuteSequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1457
PatchInformationElement
DescriptionPropertiesaboutthepatchtobeplacedintheSummaryInformationStream.ThesearevisiblefromCOMthroughtheIStreaminterface,andthesepropertiescanbeseenonthepackageinExplorer.
WindowsInstallerreferencesNone
ParentsPatch,PatchCreation
InnerTextNone
ChildrenNone
Attributes
Name Type Description
AdminImage YesNoType Thisattributehasbeendeprecated.
Comments String Generalpurposeofthepatchpackage.Forexample,"Thispatchcontainsthelogicanddatarequiredtoinstall<product>
Compressed YesNoType Thisattributehasbeendeprecated.
Description String Ashortdescriptionofthepatchthatincludesthenameoftheproduct.
Keywords String Asemicolon-delimitedlistofnetworkorURLlocationsfor
Page 1458
alternatesourcesofthepatch.Thedefaultis"Installer,Patching,PCP,Database".
Languages String Thisattributehasbeendeprecated.
Manufacturer String Thenameofthemanufacturerofthepatchpackage.
Platforms String Thisattributehasbeendeprecated.
ReadOnly YesNoDefaultType Thevalueofthisattributeconveyswhetherthepackageshouldbeopenedasread-only.Adatabaseeditingtoolshouldnotmodifyaread-onlyenforceddatabaseandshouldissueawarningatattemptstomodifyaread-onlyrecommendeddatabase.
ShortNames YesNoType Thisattributehasbeendeprecated.
SummaryCodepage String Thecodepageintegervalueorwebnameforsummaryinfostringsonly.Thedefaultis1252.Seeremarksformoreinformation.
Remarks
YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.
SeeAlsoWixSchema
Page 1459
PatchMetadataElement
DescriptionPropertiesaboutthepatchtobeplacedinthePatchMetadatatable.
WindowsInstallerreferencesMsiPatchMetadataTable
ParentsPatchCreation
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
CustomProperty(min:0,max:unbounded):Acustompropertythatextendsthestandardset.OptimizeCustomActions(min:0,max:1):Indicateswhethercustomactionscanbeskippedwhenapplyingthepatch.
Attributes
Name Type Description Required
AllowRemoval YesNoType Whetherthisisanuninstallablepatch.
Yes
Classification String Categoryofupdates.RecommendedvaluesareCriticalUpdate,Hotfix,SecurityRollup,SecurityUpdate,Service
Yes
Page 1460
Pack,Update,UpdateRollup.
CreationTimeUTC String Creationtimeofthe.mspfileintheformmm-dd-yyHH:MM(month-day-yearhour:minute).
Description String Descriptionofthepatch.
Yes
DisplayName String Atitleforthepatchthatissuitableforpublicdisplay.InAdd/RemoveProgramsfromXPSP2on.
Yes
ManufacturerName String Nameofthemanufacturer.
Yes
MinorUpdateTargetRTM String IndicatesthatthepatchtargetstheRTMversionoftheproductorthemostrecentmajorupgradepatch.AuthorthisoptionalpropertyinminorupdatepatchesthatcontainsequencinginformationtoindicatethatthepatchremovesallpatchesuptotheRTMversionof
Page 1461
theproduct,oruptothemostrecentmajorupgradepatch.ThispropertyisavailablebeginningwithWindowsInstaller3.1.
MoreInfoURL String AURLthatprovidesinformationspecifictothispatch.InAdd/RemoveProgramsfromXPSP2on.
Yes
OptimizedInstallMode YesNoType Ifthisattributeissetto'yes'inallthepatchestobeappliedinatransaction,theapplicationofthepatchisoptimizedifpossible.AvailablebeginningwithWindowsInstaller3.1.
TargetProductName String Nameoftheapplicationortargetproductsuite.
Yes
SeeAlso
Page 1463
PatchPropertyElement
DescriptionApropertyforthispatchdatabase.
WindowsInstallerreferencesMsiPatchMetadataTable
ParentsPatch,PatchCreation
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Company String Nameofthecompanyforacustommetadataproperty.
Name String Nameofthepatchproperty. Yes
Value String Valueofthepatchproperty. Yes
Remarks
WhenauthoredunderthePatchelement,thePatchPropertydefinesentriesintheMsiPatchMetadatatable.
SeeAlsoWixSchema
Page 1464
PatchSequenceElement
DescriptionSequenceinformationforthispatchdatabase.Sequenceinformationisgeneratedautomaticallyinmostcases,andrarelyneedstobesetexplicitly.
WindowsInstallerreferencesMsiPatchSequenceTable
ParentsPatchCreation
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
PatchFamily String Identifierwhichindicatesasequencefamilytowhichthispatchbelongs.
Yes
ProductCode Guid SpecifiestheProductCodeoftheproductthatthisfamilyappliesto.ThisattributecannotthespecifiediftheTargetImageattributeisspecified.
Sequence String UsedtopopulatethesequencecolumnoftheMsiPatchSequencetableinthefinalMSPfile.Specifiedinx.x.x.xformat.See
Page 1465
documentationforSequencecolumnofMsiPatchSequencetableinMSISDK.
Supersede YesNoType Setthisvalueto'yes'toindicatethatthispatchwillsupersedeallpreviouspatchesinthispatchfamily.Thedefaultvalueis'no'.
Target String Thisattributehasbeendeprecated;pleaseusetheTargetImageattributeinstead.
TargetImage String SpecifiestheTargetImagethatthisfamilyappliesto.ThisattributecannotthespecifiediftheProductCodeattributeisspecified.
SeeAlsoWixSchema
Page 1466
PayloadElement
DescriptionDescribesapayloadtoabootstrapper.
WindowsInstallerreferencesNone
ParentsBootstrapperApplication,BootstrapperApplicationRef,ExePackage,MsiPackage,MspPackage,MsuPackage,PayloadGroup,UX
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Compressed YesNoDefaultType Whetherthepayloadshouldbeembeddedinacontainerorleftasanexternalpayload.
DownloadUrl String TheURLtousetodownloadthepackage.Thefollowingsubstitutions
Page 1467
aresupported:
{0}isreplacedbythepackageId.{1}isreplacedbythepayloadId.{2}isreplacedbythepayloadfilename.
Id String TheidentifierofPayloadelement.
Name String Thedestinationpathandfilenameforthispayload.Thedefaultisthesourcefilename.Theuseof'..'directoriesisnotallowed.
SourceFile String Locationofthesourcefile.
Yes
Page 1468
SuppressSignatureVerification YesNoType Bydefault,aBundlewilluseapackage'sAuthenticodesignaturetoverifythecontents.IfthepackagedoesnothaveanAuthenticodesignaturethentheBundlewilluseahashofthepackageinstead.Setthisattributeto"yes"tosuppressthedefaultbehaviorandforcetheBundletoalwaysusethehashofthepackageevenwhenthepackageissigned.
SeeAlsoWixSchema
Page 1469
PayloadGroupElement
DescriptionDescribesapayloadgrouptoabootstrapper.PayloadGroupsreferencedfromwithinaBundlearetiedtotheBundle.PayloadGroupsreferencedfromaFragmentaretiedtothecontextofwhateverreferencesthemsuchasanExePackageorMsiPackage.ItispossibletoshareaPayloadGroupbetweenmultiplePackagesand/oraBundlebycreatingmultiplereferencestoit.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifierforpayloadgroup. Yes
SeeAlsoWixSchema
Page 1470
PayloadGroupRefElement
DescriptionCreateareferencetoPayloadGroupelementthatexistsinsideaBundleorFragmentelement.
WindowsInstallerreferencesNone
ParentsBootstrapperApplication,BootstrapperApplicationRef,Bundle,ExePackage,MsiPackage,MspPackage,MsuPackage,PayloadGroup,UX
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifierofthePayloadGroupelementtoreference.
Yes
SeeAlsoWixSchema,PayloadGroup
Page 1471
PermissionElement
DescriptionSetsACLsonFile,Registry,orCreateFolder.WhenunderaRegistryelement,thiscannotbeusediftheActionattribute'svalueisremoveorremoveKeyOnInstall.ThiselementhasnoIdattribute.Thetableandkeyaretakenfromtheparentelement.
WindowsInstallerreferencesLockPermissionsTable
ParentsCreateFolder,File,Registry,RegistryKey,RegistryValue
InnerTextNone
ChildrenNone
Attributes
Name Type Description
Append YesNoType
ChangePermission YesNoType
CreateChild YesNoType Foradirectory,therighttocreateasubdirectory.Onlyvalidundera'CreateFolder'parent.
CreateFile YesNoType Foradirectory,therighttocreateafileinthedirectory.Onlyvalidundera'CreateFolder'parent.
CreateLink YesNoType
CreateSubkeys YesNoType
Delete YesNoType
Page 1472
DeleteChild YesNoType Foradirectory,therighttodeleteadirectoryandallthefilesitcontains,includingread-onlyfiles.Onlyvalidundera'CreateFolder'parent.
Domain String
EnumerateSubkeys YesNoType
Execute YesNoType
FileAllRights YesNoType BitmaskforFILE_ALL_ACCESSfromWinNT.h(0x001F01FF).
GenericAll YesNoType
GenericExecute YesNoType
GenericRead YesNoType specifyingthiswillfailtograntreadaccess
GenericWrite YesNoType
Notify YesNoType
Read YesNoType
ReadAttributes YesNoType
ReadExtendedAttributes YesNoType
ReadPermission YesNoType
SpecificRightsAll YesNoType BitmaskforSPECIFIC_RIGHTS_ALLfromWinNT.h(0x0000FFFF).
Synchronize YesNoType
TakeOwnership YesNoType
Traverse YesNoType Foradirectory,therighttotraversethedirectory.Bydefault,usersareassignedtheBYPASS_TRAVERSE_CHECKING
Page 1473
privilege,whichignorestheFILE_TRAVERSEaccessright.Onlyvalidundera'CreateFolder'parent.
User String
Write YesNoType
WriteAttributes YesNoType
WriteExtendedAttributes YesNoType
SeeAlsoWixSchema
Page 1474
PermissionExElement
DescriptionSetsACLsonFile,Registry,orCreateFolder.WhenunderaRegistryelement,thiscannotbeusediftheActionattribute'svalueisremoveorremoveKeyOnInstall.ThiselementisonlyavailablewheninstallingwithMSI5.0.Fordownlevelsupport,seethePermissionExelementfromtheWixUtilExtension.
WindowsInstallerreferencesMsiLockPermissionsExTable
ParentsCreateFolder,File,Registry,RegistryKey,RegistryValue,ServiceInstall
InnerTextNone
ChildrenSequence(min:1,max:1)1. Condition(min:0,max:1):Optionalconditionthatcontrols
whetherthepermissionsareapplied.
Attributes
Name Type Description Required
Id String Primarykeyusedtoidentifythisparticularentry.Ifthisisnotspecifiedtheparentelement'sIdattributewillbeusedinstead.
Sddl String Securitydescriptortoapplytoparentobject.
Yes
SeeAlsoWixSchema
Page 1475
ProcessComponentsElement
DescriptionRegistersandunregisterscomponents,theirkeypaths,andthecomponentclients.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesProcessComponentsAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1476
ProductElement
DescriptionTheProductelementisanalogoustothemainfunctioninaCprogram.Whenlinking,onlyoneProductsectioncanbegiventothelinkertoproduceasuccessfulresult.Usingthiselementcreatesanmsifile.
WindowsInstallerreferencesNone
ParentsWix
InnerTextNone
ChildrenSequence(min:1,max:1)1. Package(min:1,max:1)2. Choiceofelements(min:0,max:unbounded)
AppId(min:0,max:unbounded)Binary(min:0,max:unbounded)ComplianceCheck(min:0,max:unbounded)Component(min:0,max:unbounded)ComponentGroup(min:0,max:unbounded)Condition(min:0,max:unbounded)CustomAction(min:0,max:unbounded)CustomActionRef(min:0,max:unbounded)CustomTable(min:0,max:unbounded)Directory(min:0,max:unbounded)DirectoryRef(min:0,max:unbounded)EmbeddedChainer(min:0,max:unbounded)EmbeddedChainerRef(min:0,max:unbounded)
Page 1477
EnsureTable(min:0,max:unbounded)Feature(min:0,max:unbounded)FeatureGroupRef(min:0,max:unbounded)FeatureRef(min:0,max:unbounded)Icon(min:0,max:unbounded)InstanceTransforms(min:0,max:unbounded)MajorUpgrade(min:0,max:unbounded)Media(min:0,max:unbounded)MediaTemplate(min:0,max:unbounded)PackageCertificates(min:0,max:unbounded)PatchCertificates(min:0,max:unbounded)Property(min:0,max:unbounded)PropertyRef(min:0,max:unbounded)SetDirectory(min:0,max:unbounded)SetProperty(min:0,max:unbounded)SFPCatalog(min:0,max:unbounded)SymbolPath(min:0,max:unbounded)UI(min:0,max:unbounded)UIRef(min:0,max:unbounded)Upgrade(min:0,max:unbounded)WixVariable(min:0,max:unbounded)Sequence(min:1,max:1)1. InstallExecuteSequence(min:0,max:1)2. InstallUISequence(min:0,max:1)3. AdminExecuteSequence(min:0,max:1)4. AdminUISequence(min:0,max:1)5. AdvertiseExecuteSequence(min:0,max:1)
AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
CloseApplicationComPlusApplication
Page 1478
ComPlusApplicationRoleComPlusPartitionComPlusPartitionRoleGroupHelpCollectionRefHelpFilterMajorUpgradeRequiresRestartResourceSqlDatabaseTagUnitTestRefUserWebApplicationWebAppPoolWebDirPropertiesWebLogWebSite
Attributes
Name Type Description Required
Id AutogenGuid TheproductcodeGUIDfortheproduct.
Yes
Codepage String ThecodepageintegervalueorwebnamefortheresultingMSI.Seeremarksformoreinformation.
Language LocalizableInteger ThedecimallanguageID(LCID)fortheproduct.
Yes
Page 1479
Manufacturer String Themanufactureroftheproduct.
Yes
Name String Thedescriptivenameoftheproduct.
Yes
UpgradeCode Guid TheupgradecodeGUIDfortheproduct.
Version String Theproduct'sversionstring.
Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
Remarks
YoucanspecifyanyvalidWindowscodepagebyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.
SeeAlsoWixSchema
Page 1480
ProductSearchElement
DescriptionNone
WindowsInstallerreferencesUpgradeTable
ParentsProperty
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
ExcludeLanguages YesNoType Setto"yes"todetectalllanguages,excludingthelanguageslistedintheLanguageattribute.
IncludeMaximum YesNoType Setto"yes"tomaketherangeofversionsdetectedincludethevaluespecifiedinMaximum.
IncludeMinimum YesNoType Setto"no"tomaketherangeofversionsdetectedexcludethevaluespecifiedinMinimum.Thisattributeis"yes"by
Page 1481
default.
Language String SpecifiesthesetoflanguagesdetectedbyFindRelatedProducts.Enteralistofnumericlanguageidentifiers(LANGID)separatedbycommas(,).Leavethisvaluenulltospecifyalllanguages.SetExcludeLanguagesto"yes"inorderdetectalllanguages,excludingthelanguageslistedinthisvalue.
Maximum String SpecifiestheupperboundaryoftherangeofproductversionsdetectedbyFindRelatedProducts.
Minimum String SpecifiesthelowerboundontherangeofproductversionstobedetectedbyFindRelatedProducts.
UpgradeCode Guid ThisvaluespecifiestheupgradecodefortheproductsthataretobedetectedbytheFindRelatedProductsaction.
Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensions
Page 1482
canregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema
Page 1483
ProgIdElement
DescriptionProgIdregistrationforparentComponent.IfProgIdhasanassociatedClass,itmustbeachildofthatelement.
WindowsInstallerreferencesProgIdTable,ClassTable,RegistryTable,IconTable
ParentsClass,Component,ProgId
InnerTextNone
ChildrenSequence(min:1,max:1)1. ProgId(min:0,max:unbounded):Theversion-independent
ProgIdmustbethefirstchildelementofactualProgId.NestingotherProgIdelementswithintheVersion-independentProgIdwillcreateCOM+aliases,seehttp://support.microsoft.com/kb/305745formoreinformation.
2. Extension(min:0,max:unbounded):ExtensionsthatrefertothisProgId
Attributes
Name Type Description Required
Id String Yes
Advertise YesNoType
Description String
Icon String ForanadvertisedProgId,theIdofanIconelement.Foranon-advertisedProgId,thisistheIdofafilecontainingan
Page 1484
iconresource.
IconIndex Integer
NoOpen String SpecifiesthattheassociatedProgIdshouldnotbeopenedbyusers.Thevalueispresentedasawarningtousers.Anemptystringisalsovalidforthisattribute.
SeeAlsoWixSchema
Page 1485
ProgressTextElement
DescriptionNone
WindowsInstallerreferencesActionTextTable
ParentsUI
InnerText(xs:string)Elementvalueisprogressmessagetextforaction
ChildrenNone
Attributes
Name Type Description Required
Action String Yes
Template String usedtoformatActionDatamessagesfromactionprocessing
SeeAlsoWixSchema
Page 1486
PropertyElement
DescriptionPropertyvalueforaProductorModule.
WindowsInstallerreferencesPropertyTable
ParentsControl,Fragment,Module,ODBCDataSource,ODBCDriver,Product,UI,Upgrade
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenChoiceofelements(min:0,max:unbounded)
Sequence(min:1,max:1)1. ComplianceDrive(min:0,max:1):Startssearchesfromthe
CCP_DRIVE.2. ComponentSearch(min:0,max:unbounded)3. RegistrySearch(min:0,max:unbounded)4. RegistrySearchRef(min:0,max:unbounded)5. IniFileSearch(min:0,max:unbounded)6. DirectorySearch(min:0,max:unbounded)7. DirectorySearchRef(min:0,max:unbounded)8. ProductSearch(min:0,max:unbounded)
AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
Attributes
Name Type Description Required
Id String UniqueidentifierforProperty.
Yes
Page 1487
Admin YesNoType DenotesthatthePropertyissavedduringadmininistrativeinstallation.SeetheAdminPropertiesPropertyformoreinformation.
ComplianceCheck YesNoType AddsarowtotheCCPSearchtable.ThisattributeisonlyvalidwhenthisPropertycontainsasearchelement.
Hidden YesNoType DenotesthatthePropertyisnotloggedduringinstallation.SeetheMsiHiddenPropertiesPropertyformoreinformation.
Secure YesNoType DenotesthatthePropertycanbepassedtotheserversidewhendoingamanagedinstallationwithelevatedprivileges.SeetheSecureCustomPropertiesPropertyformoreinformation.
SuppressModularization YesNoType Usetosuppressmodularizationofthispropertyidentifierinmergemodules.Usingthisfunctionalityisstronglydiscouraged;itshouldonlybenecessaryasa
Page 1488
workaroundoflastresortinrarescenarios.
Value String Setsadefaultvaluefortheproperty.ThevaluewillbeoverwrittenifthePropertyisusedforasearch.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
HowTosandExamplesHowTo:Checktheversionnumberofafileduringinstallation
SeeAlsoWixSchema,PropertyRef
Page 1489
PropertyRefElement
DescriptionReferencetoaPropertyvalue.
WindowsInstallerreferencesNone
ParentsFragment,Module,PatchFamily,Product,UI
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String IdentifierofPropertytoreference. Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
HowTosandExamplesHowTo:Checkfor.NETFrameworkversions
SeeAlsoWixSchema,Property
Page 1490
ProtectFileElement
DescriptionSpecifiesafiletobeprotected.
WindowsInstallerreferencesNone
ParentsFamily
InnerTextNone
ChildrenChoiceofelements(min:1,max:unbounded)
ProtectRange(min:1,max:unbounded)
Attributes
Name Type Description Required
File String ForeignkeyintotheFiletable. Yes
SeeAlsoWixSchema
Page 1491
ProtectRangeElement
DescriptionSpecifiespartofafilethatcannotbeoverwrittenduringpatching.
WindowsInstallerreferencesNone
ParentsExternalFile,ProtectFile,TargetFile
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Length Int Lengthoftherange. Yes
Offset Int Offsetofthestartoftherange. Yes
SeeAlsoWixSchema
Page 1492
PublishElement
DescriptionNone
WindowsInstallerreferencesControlEventTable
ParentsControl,UI
InnerText(xs:string)TheelementvalueistheoptionalConditionexpression.
ChildrenNone
Attributes
Name Type Description Required
Control String TheparentControlforthisPublishelement,shouldonlybespecifiedwhenthiselementisachildoftheUIelement.
Dialog String TheparentDialogforthisPublishelement,shouldonlybespecifiedwhenthiselementisachildoftheUIelement.ThisattributewillcreateareferencetothespecifiedDialog,soanadditionalDialogRefisnotnecessary.
Event String Setthisattribute'svaluetooneofthestandardcontroleventstotriggerthatevent.EitherthisattributeorthePropertyattributemustbeset,butnotbothatthe
Page 1493
sametime.
Order String ThisattributeshouldonlyneedtobesetifthiselementisnestedunderaUIelementinordertocontroltheorderinwhichthispublisheventwillbestarted.IfthiselementisnestedunderaControlelement,thedefaultvaluewillbeonegreaterthananypreviousPublishelement'sorder(thefirstelement'sdefaultvalueis1).IfthiselementisnestedunderaUIelement,thedefaultvalueisalways1(itdoesnotgetadefaultvaluebasedonanypreviousPublishelements).
Property String Setthisattribute'svaluetoapropertynametosetthatproperty.EitherthisattributeortheEventattributemustbeset,butnotbothatthesametime.
Value String IfthePropertyattributeisspecified,setthevalueofthisattributetothenewvaluefortheproperty.Tosetapropertytonull,donotsetthisattribute(theControlEventArgumentcolumnwillbesetto'{}').Otherwise,thisattribute'svalueshouldbetheargumentfortheeventspecifiedintheEventattribute.Iftheeventdoesn'ttakeanattribute,acommonvaluetouseis"0".
SeeAlsoWixSchema
Page 1494
PublishComponentsElement
DescriptionManagestheadvertisementofthecomponentsfromthePublishComponenttable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesPublishComponentsAction
ParentsAdvertiseExecuteSequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1495
PublishFeaturesElement
DescriptionWriteseachfeature'sstateintothesystemregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesPublishFeaturesAction
ParentsAdvertiseExecuteSequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1496
PublishProductElement
DescriptionManagestheadvertisementoftheproductinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesPublishProductAction
ParentsAdvertiseExecuteSequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1497
RadioButtonElement
DescriptionTextorIconplusValuethatisassignedtothePropertyoftheparentControl(RadioButtonGroup).
WindowsInstallerreferencesRadioButtonTable,ControlTable,DialogTable
ParentsRadioButtonGroup
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Bitmap String Thisattributedefinesthebitmapdisplayedwiththeradiobutton.ThevalueoftheattributecreatesareferencetoaBinaryelementthatrepresentsthebitmap.ThisattributeismutuallyexclusivewiththeIconandTextattributes.
Height LocalizableInteger Yes
Help String
Icon String Thisattributedefinestheicondisplayedwiththeradiobutton.Thevalueof
Page 1498
theattributecreatesareferencetoaBinaryelementthatrepresentstheicon.ThisattributeismutuallyexclusivewiththeBitmapandTextattributes.
Text String Textdisplayedwiththeradiobutton.ThisattributeismutuallyexclusivewiththeBitmapandIconattributes.
ToolTip String
Value String ValueassignedtotheassociatedcontrolPropertywhenthisradiobuttonisselected.
Yes
Width LocalizableInteger Yes
X LocalizableInteger Yes
Y LocalizableInteger Yes
SeeAlsoWixSchema,RadioButtonGroup
Page 1499
RadioButtonGroupElement
DescriptionSetofradiobuttonstiedtothespecifiedProperty
WindowsInstallerreferencesRadioButtonTable,ControlTable,DialogTable
ParentsControl,UI
InnerTextNone
ChildrenSequence(min:1,max:1)1. RadioButton(min:1,max:unbounded)
Attributes
Name Type Description Required
Property String Propertytiedtothisgroup. Yes
SeeAlsoWixSchema
Page 1500
RegisterClassInfoElement
DescriptionManagestheregistrationofCOMclassinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRegisterClassInfoAction
ParentsAdvertiseExecuteSequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1501
RegisterComPlusElement
DescriptionRegistersCOM+applications.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRegisterComPlusAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1502
RegisterExtensionInfoElement
DescriptionManagestheregistrationofextensionrelatedinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRegisterExtensionInfoAction
ParentsAdvertiseExecuteSequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1503
RegisterFontsElement
DescriptionRegistersinstalledfontswiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRegisterFontsAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1504
RegisterMIMEInfoElement
DescriptionRegistersMIME-relatedregistryinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRegisterMIMEInfoAction
ParentsAdvertiseExecuteSequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1505
RegisterProductElement
DescriptionRegisterstheproductinformationwiththeinstaller.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRegisterProductAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1506
RegisterProgIdInfoElement
DescriptionManagestheregistrationofOLEProgIdinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRegisterProgIdInfoAction
ParentsAdvertiseExecuteSequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1507
RegisterTypeLibrariesElement
DescriptionRegisterstypelibrarieswiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRegisterTypeLibrariesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1508
RegisterUserElement
DescriptionRegisterstheuserinformationwiththeinstallertoidentifytheuserofaproduct.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRegisterUserAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1509
RegistryElement
DescriptionThiselementhasbeendeprecated;pleaseusetheRegistryValueelementinstead.
WindowsInstallerreferencesRegistryTable
ParentsComponent,Registry
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Permission(min:0,max:unbounded)PermissionEx(min:0,max:unbounded):CanalsoconfiguretheACLsforthisregistrykey.Registry(min:0,max:unbounded)RegistryValue(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
PermissionEx
Attributes
Name Type Description
Action Enumeration Thisistheactionthatwillbetakenforthisregistrykey.Thisattribute'svaluemustbeoneofthefollowing:append
Appendsthespecifiedvalue(s)toamultiStringregistrykey.
Page 1510
createKeyCreatesthekey,ifabsent,whentheparentcomponentisinstalled.
createKeyAndRemoveKeyOnUninstallCreatesthekey,ifabsent,whentheparentcomponentisinstalledthenremovethekeywithallitsvaluesandsubkeyswhentheparentcomponentisuninstalled.
prependPrependsthespecifiedvalue(s)toamultiStringregistrykey.
removeRemovesaregistrynamewhentheparentcomponentisinstalled.
removeKeyOnInstallRemovesakeywithallitsvaluesandsubkeyswhentheparentcomponentisinstalled.
removeKeyOnUninstallRemovesakeywithallitsvaluesandsubkeyswhentheparentcomponentisuninstalled.
writeWritesaregistryvalue.
Id String Primarykeyusedtoidentifythisparticularentry.Ifthisattributeisnotspecified,anidentifierwillbegeneratedbyhashingtheparentComponentidentifier,Root,Key,andName.
Key String Thelocalizablekeyfortheregistry
Page 1511
value.
KeyPath YesNoType Setthisattributeto'yes'tomakethisregistrykeytheKeyPathoftheparentcomponent.Onlyoneresource(registry,file,etc)canbetheKeyPathofacomponent.
Name String Thelocalizableregistryvaluename.Ifthisattributeisnotprovidedthedefaultvaluefortheregistrykeywillbesetinstead.TheWindowsInstallerallowsseveralspecialvaluestobesetforthisattribute.YoushouldnotusetheminWiX.InsteaduseappropriatevaluesintheActionattributetogetthedesiredbehavior.
Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.
Type Enumeration Setthisattributetothetypeofthedesiredregistrykey.ThisattributemustbespecifiedwhenevertheValueattributeorachildRegistryValueelementisspecified.ThisattributeshouldonlybesetwhenthevalueoftheActionattributedoesnotincludetheword'remove'.Thisattribute'svaluemustbeoneofthefollowing:string
Thevalueisinterpretedandstoredasastring(REG_SZ).
integerThevalueisinterpretedandstoredasaninteger(REG_DWORD).
binaryThevalueisinterpretedand
Page 1512
storedasahexadecimalvalue(REG_BINARY).
expandableThevalueisinterpretedandstoredasanexpandablestring(REG_EXPAND_SZ).
multiStringThevalueisinterpretedandstoredasamultiplestrings(REG_MULTI_SZ).Pleasenotethatthisvaluewillonlyresultinamulti-stringvalueifthereismorethanoneregistryvalueortheActionattribute'svalueis'append'or'prepend'.Otherwiseastringvaluewillbecreated.
Value String Setthisattributetothelocalizableregistryvalue.Thisvalueisformatted.TheWindowsInstallerallowsseveralspecialvaluestobesetforthisattribute.YoushouldnotusetheminWiX.InsteaduseappropriatevaluesintheTypeattributetogetthedesiredbehavior.ThisattributecannotbespecifiediftheActionattribute'svaluecontainstheword'remove'.
SeeAlsoWixSchema
Page 1513
RegistryKeyElement
DescriptionUsedfororganizationofchildRegistryValueelementsortocreatearegistrykey(andoptionallyremoveitduringuninstallation).
WindowsInstallerreferencesRegistryTable
ParentsComponent,RegistryKey
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Permission(min:0,max:unbounded):ACLpermissionPermissionEx(min:0,max:unbounded):CanalsoconfiguretheACLsforthisregistrykey.RegistryKey(min:0,max:unbounded)RegistryValue(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
PermissionEx
Attributes
Name Type Description
Action Enumeration TheActionattributehasbeendeprecated.Inmostcases,youcansimplyomit@Action.IfyouneedtoforceWindowsInstallertocreateanemptykeyorrecursivelydeletethe
Page 1514
key,usetheForceCreateOnInstallorForceDeleteOnUninstallattributesinstead.Thisattribute'svaluemustbeoneofthefollowing:create
Createsthekey,ifabsent,whentheparentcomponentisinstalled.
createAndRemoveOnUninstallCreatesthekey,ifabsent,whentheparentcomponentisinstalledthenremovethekeywithallitsvaluesandsubkeyswhentheparentcomponentisuninstalled.Notethatthisvalueisusefulonlyifyourprogramcreatesadditionalvaluesorsubkeysunderthiskeyandyouwantanuninstalltoremovethem.MSIalreadyremovesallvaluesandsubkeysthatitcreates,sothisoptionjustaddsadditionaloverheadtouninstall.
noneDoesnothing;thiselementisusedmerelyinWiXauthoringfororganizationanddoesnothingtothefinaloutput.Thisisthedefaultvalue.
Page 1515
ForceCreateOnInstall YesNoType Setthisattributeto'yes'tocreateanemptykey,ifabsent,whentheparentcomponentisinstalled.valueisneededonlytocreateanemptykeywithnosubkeysorvalues.WindowsInstallercreateskeysasneededtostoresubkeysandvalues.Thedefaultis"no".
ForceDeleteOnUninstall YesNoType Setthisattributeto'yes'toremovethekeywithallitsvaluesandsubkeyswhentheparentcomponentisuninstalled.Notethatthisvalueisusefulonlyifyourprogramcreatesadditionalvaluesorsubkeysunderthiskeyandyouwantanuninstalltoremovethem.MSIalreadyremovesallvaluesandsubkeysthatitcreates,sothisoptionjustaddsadditionaloverheadtouninstall.Thedefaultis"no".
Id String Primarykeyusedtoidentifythisparticularentry.Ifthisattributeisnotspecified,anidentifierwillbegeneratedbyhashingtheparentComponentidentifier,Root,Key,andName.
Key String Thelocalizablekeyfortheregistryvalue.IftheparentelementisaRegistryKey,thisvaluemaybeomittedtouse
Page 1516
thepathoftheparent,orifitsspecifieditwillbeappendedtothepathoftheparent.
Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.
HowTosandExamplesHowTo:ReadaregistryentryduringinstallationHowTo:Writearegistryentryduringinstallation
SeeAlsoWixSchema
Page 1517
RegistrySearchElement
DescriptionSearchesforfile,directoryorregistrykeyandassignstovalueofparentProperty
WindowsInstallerreferencesRegLocatorTable,SignatureTable
ParentsComplianceCheck,Property
InnerTextNone
ChildrenChoiceofelements(min:0,max:1)
DirectorySearch(min:0,max:1)DirectorySearchRef(min:0,max:1)FileSearch(min:0,max:1)FileSearchRef(min:0,max:1)
Attributes
Name Type Description Required
Id String Signaturetobeusedforthefile,directoryorregistrykeybeingsearchedfor.
Yes
Key String Keyfortheregistryvalue. Yes
Name String Registryvaluename.Ifthisvalueisnull,thenthevaluefromthekey'sunnamedordefaultvalue,ifany,isretrieved.
Root Enumeration Rootkeyfortheregistryvalue.Thisattribute'svaluemustbe
Yes
Page 1518
oneofthefollowing:HKCR
HKEY_CLASSES_ROOT
HKCUHKEY_CURRENT_USER
HKLMHKEY_LOCAL_MACHINE
HKUHKEY_USERS
Type Enumeration Thevaluemustbe'file'ifthechildisaFileSearchelement,andmustbe'directory'ifchildisaDirectorySearchelement.Thisattribute'svaluemustbeoneofthefollowing:directory
Theregistryvaluecontainsthepathtoadirectory.
fileTheregistryvaluecontainsthepathtoafile.ToreturnthefullfilepathyoumustaddaFileSearchelementasachildofthiselement;otherwise,theparentdirectoryofthefilepathisreturned.
rawSetstherawvaluefromtheregistryvalue.Pleasenotethatthisvaluewillcontainaprefixasfollows:
DWORDStartswith'#'optionally
Yes
Page 1519
followedby'+'or'-'.
REG_BINARYStartswith'#x'andtheinstallerconvertsandsaveseachhexadecimaldigit(nibble)asanASCIIcharacterprefixedby'#x'.
REG_EXPAND_SZStartswith'#%'.
REG_MULTI_SZStartswith'[~]'andendswith'[~]'.
REG_SZNoprefix,butifthefirstcharacteroftheregistryvalueis'#',theinstallerescapesthecharacterbyprefixingitwithanother'#'.
Win64 YesNoType Instructsthesearchtolookinthe64-bitregistrywhenthevalueis'yes'.Whenthevalueis'no',thesearchlooksinthe32-bitregistry.Thedefaultvalueisbasedontheplatformsetbythe-archswitchtocandle.exeortheInstallerPlatformpropertyina.wixprojMSBuildproject:Forx86andARM,thedefaultvalueis'no'.Forx64andIA64,thedefaultvalueis'yes'.
Remarks
Page 1520
WhentheTypeattributevalueis'directory'theregistryvaluemustspecifythepathtoadirectoryexcludingthefilename.WhentheTypeattributevalueis'file'theregistryvaluemustspecifythepathtoafileincludingthefilename;however,ifthereisnochildFileSearchelementtheparentdirectoryofthefileisreturned.TheFileSearchelementrequiresthatyouauthorthenameofthefileyouaresearchingfor.IfyoudonotknowthefilenameyoumustsettheTypeattributeto'raw'toreturnthefullfilepathincludingthefilename.
HowTosandExamplesHowTo:Readaregistryentryduringinstallation
SeeAlsoWixSchema,ComponentSearch,IniFileSearch
Page 1521
RegistrySearchRefElement
DescriptionReferencesanexistingRegistrySearchelement.
WindowsInstallerreferencesNone
ParentsProperty
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String SpecifytheIdoftheRegistrySearchtoreference.
Yes
SeeAlsoWixSchema,RegistrySearch
Page 1522
RegistryValueElement
DescriptionUsedtocreatearegistryvalue.Formulti-stringvalues,thiscanbeusedtoprependorappendvalues.
Forlegacyauthoring:UseseveraloftheseelementstospecifyeachregistryvalueinamultiStringregistryvalue.ThiselementcannotbeusediftheValueattributeisspecifiedunlesstheTypeattributeissetto'multiString'.ThevaluesshouldgointhetextareaoftheRegistryValueelement.
WindowsInstallerreferencesRegistryTable
ParentsComponent,Registry,RegistryKey
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenChoiceofelements(min:0,max:unbounded)
MultiStringValue(min:0,max:unbounded)Permission(min:0,max:unbounded)PermissionEx(min:0,max:unbounded):CanalsoconfiguretheACLsforthisregistryvalue.AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
PermissionEx
Attributes
Name Type Description Required
Action Enumeration Thisistheactionthatwill
Page 1523
betakenforthisregistryvalue.Thisattribute'svaluemustbeoneofthefollowing:append
Appendsthespecifiedvalue(s)toamultiStringregistryvalue.
prependPrependsthespecifiedvalue(s)toamultiStringregistryvalue.
writeWritesaregistryvalue.Thisisthedefaultvalue.
Id String Primarykeyusedtoidentifythisparticularentry.Ifthisattributeisnotspecified,anidentifierwillbegeneratedbyhashingtheparentComponentidentifier,Root,Key,andName.
Key String Thelocalizablekeyfortheregistryvalue.IftheparentelementisaRegistryKey,thisvaluemaybeomittedtousethepathoftheparent,orifitsspecifieditwillbeappendedtothepathoftheparent.
KeyPath YesNoType Setthisattributeto'yes'to
Page 1524
makethisregistrykeytheKeyPathoftheparentcomponent.Onlyoneresource(registry,file,etc)canbetheKeyPathofacomponent.
Name String Thelocalizableregistryvaluename.Ifthisattributeisnotprovidedthedefaultvaluefortheregistrykeywillbesetinstead.TheWindowsInstallerallowsseveralspecialvaluestobesetforthisattribute.YoushouldnotusetheminWiX.InsteaduseappropriatevaluesintheActionattributetogetthedesiredbehavior.
Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.
Type Enumeration Setthisattributetothetypeofthedesiredregistrykey.ThisattributemustbespecifiedwhenevertheValueattributeorachildRegistryValueelementisspecified.ThisattributeshouldonlybesetwhenthevalueoftheActionattributedoesnotincludetheword'remove'.Thisattribute'svaluemustbeoneofthefollowing:string
Thevalueis
Page 1525
interpretedandstoredasastring(REG_SZ).
integerThevalueisinterpretedandstoredasaninteger(REG_DWORD).
binaryThevalueisinterpretedandstoredasahexadecimalvalue(REG_BINARY).
expandableThevalueisinterpretedandstoredasanexpandablestring(REG_EXPAND_SZ).
multiStringThevalueisinterpretedandstoredasamultiplestrings(REG_MULTI_SZ).Pleasenotethatthisvaluewillonlyresultinamulti-stringvalueifthereismorethanoneregistryvalueortheActionattribute'svalueis'append'or'prepend'.Otherwiseastringvaluewillbecreated.
Value String Setthisattributetothe
Page 1526
localizableregistryvalue.Thisvalueisformatted.TheWindowsInstallerallowsseveralspecialvaluestobesetforthisattribute.YoushouldnotusetheminWiX.InsteaduseappropriatevaluesintheTypeattributetogetthedesiredbehavior.
HowTosandExamplesHowTo:Writearegistryentryduringinstallation
SeeAlsoWixSchema
Page 1527
RelatedBundleElement
DescriptionCreateaRelatedBundleelement.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id Guid TheidentifieroftheRelatedBundlegroup.
Yes
Action Enumeration Theactiontotakeonbundlesrelatedtothisone.Detectisthedefault.Thisattribute'svaluemustbeoneofthefollowing:Detect
Upgrade
Addon
Patch
SeeAlsoWixSchema
Page 1528
RemotePayloadElement
DescriptionDescribesinformationaboutaremotefilepayloadthatisnotavailableatthetimeofbuildingthebundle.TheparentmustspecifyDownloadUrlandmustnotspecifySourceFilewhenusingthiselement.
WindowsInstallerreferencesNone
ParentsExePackage,MsuPackage
InnerTextNone
ChildrenNone
Attributes
Name Type Description
CertificatePublicKey HexType PublickeyoftheauthenticodecertificateusedtosigntheRemotePayload.Includethisattributeiftheremotefileissigned.
CertificateThumbprint HexType ThumbprintoftheauthenticodecertificateusedtosigntheRemotePayload.Includethisattributeiftheremotefileissigned.
Description String Descriptionofthefilefromversionresources.
Hash HexType SHA-1hashofthe
Page 1529
RemotePayload.IncludethisattributeiftheremotefileisunsignedorSuppressSignatureVerificationissettoYes.
ProductName String Productnameofthefilefromversionresouces.
Size Integer Sizeoftheremotefileinbytes.
Version VersionType Versionoftheremotefile
SeeAlsoWixSchema
Page 1530
RemoveDuplicateFilesElement
DescriptionDeletesfilesinstalledbytheDuplicateFilesaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRemoveDuplicateFilesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1531
RemoveEnvironmentStringsElement
DescriptionModifiesthevaluesofenvironmentvariables.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRemoveEnvironmentStringsAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1532
RemoveExistingProductsElement
DescriptionGoesthroughtheproductcodeslistedintheActionPropertycolumnoftheUpgradetableandremovestheproductsinsequence.Specialactionsdon'thaveabuilt-insequencenumberandthusmustappearrelativetoanotheraction.ThesuggestedwaytodothisisbyusingtheBeforeorAfterattribute.InstallExecuteandInstallExecuteAgaincanoptionallyappearanywherebetweenInstallInitializeandInstallFinalize.
WindowsInstallerreferencesRemoveExistingProductsAction
ParentsInstallExecuteSequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthatthisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Avalueusedtoindicatethepositionofthisactionina
Page 1533
sequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1534
RemoveFileElement
DescriptionRemoveafile(s)iftheparentcomponentisselectedforinstallationorremoval.MultiplefilescanberemovedbyspecifyingawildcardforthevalueoftheNameattribute.Bydefault,thesourcedirectoryofthefileisthedirectoryoftheparentcomponent.ThiscanbeoverriddenbyspecifyingtheDirectoryattributewithavaluecorrespondingtotheIdofthesourcedirectory,orbyspecifyingthePropertyattributewithavaluecorrespondingtoapropertythatwillhaveavaluethatresolvestothefullpathtothesourcedirectory.
WindowsInstallerreferencesRemoveFileTable
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description
Id String Primarykeyusedtoidentifythisparticularentry.
Directory String OverridesthedirectoryoftheparentcomponentwithaspecificDirectory.ThisDirectorymustexistintheinstallerdatabaseatcreationtime.This
Page 1535
attributecannotbespecifiedinconjunctionwiththePropertyattribute.
LongName WildCardLongFileNameType Thisattributehasbeendeprecated;pleaseusetheNameattributeinstead.
Name WildCardLongFileNameType Thisvalueshouldbesettothelocalizablenameofthefile(s)toberemoved.Allofthefilesthatmatchthewildcardwillberemovedfromthespecifieddirectory.Thevalueisafilenamethatmayalsocontainthewildcardcharacters"?"foranysinglecharacteror"*"forzeroormoreoccurrencesofanycharacter.InpriorversionsoftheWiXtoolset,thisattributespecifiedtheshortfilename.Thisattribute'svaluemaynowbeeitherashortorlongfilename.Ifashortfilenameisspecified,theShortNameattributemaynotbespecified.Ifalongfilenameisspecified,theLongNameattributemaynotbespecified.Also,ifthisvalueisalongfilename,the
Page 1536
ShortNameattributemaybeomittedtoallowWiXtoattempttogenerateauniqueshortfilename.However,ifyouwishtomanuallyspecifytheshortfilename,thentheShortNameattributemaybespecified.
On InstallUninstallType Thisvaluedeterminesthetimeatwhichthefile(s)mayberemoved.For'install',thefilewillberemovedonlywhentheparentcomponentisbeinginstalled(msiInstallStateLocalormsiInstallStateSource);for'uninstall',thefilewillberemovedonlywhentheparentcomponentisbeingremoved(msiInstallStateAbsent);for'both',thefilewillberemovedinbothcases.
Property String Overridesthedirectoryoftheparentcomponentwiththevalueofthespecifiedproperty.Thepropertyshouldhaveavaluethatresolvestothefullpathofthesourcedirectory.Thepropertydoesnothavetoexist
Page 1537
intheinstallerdatabaseatcreationtime;itcouldbecreatedatinstallationtimebyacustomaction,onthecommandline,etc.ThisattributecannotbespecifiedinconjunctionwiththeDirectoryattribute.
ShortName WildCardShortFileNameType Theshortfilenameofthefilein8.3format.Thisattributeshouldonlybesetifyouwanttomanuallyspecifytheshortfilename.
SeeAlsoWixSchema,CopyFile
Page 1538
RemoveFilesElement
DescriptionRemovesfilespreviouslyinstalledbytheInstallFilesaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRemoveFilesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1539
RemoveFolderElement
DescriptionRemoveanemptyfolderiftheparentcomponentisselectedforinstallationorremoval.Bydefault,thefolderisthedirectoryoftheparentcomponent.ThiscanbeoverriddenbyspecifyingtheDirectoryattributewithavaluecorrespondingtotheIdofthedirectory,orbyspecifyingthePropertyattributewithavaluecorrespondingtoapropertythatwillhaveavaluethatresolvestothefullpathofthefolder.
WindowsInstallerreferencesRemoveFileTable
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Primarykeyusedtoidentifythisparticularentry.
Yes
Directory String OverridesthedirectoryoftheparentcomponentwithaspecificDirectory.ThisDirectorymustexistintheinstallerdatabaseatcreationtime.Thisattributecannotbespecifiedinconjunction
Page 1540
withthePropertyattribute.
On InstallUninstallType Thisvaluedeterminesthetimeatwhichthefoldermayberemoved,basedontheinstall/uninstalloftheparentcomponent.For'install',thefolderwillberemovedonlywhentheparentcomponentisbeinginstalled(msiInstallStateLocalormsiInstallStateSource);for'uninstall',thefolderwillberemovedonlywhentheparentcomponentisbeingremoved(msiInstallStateAbsent);for'both',thefolderwillberemovedinbothcases.
Yes
Property String Overridesthedirectoryoftheparentcomponentwiththevalueofthespecifiedproperty.Thepropertyshouldhaveavaluethatresolvestothefullpathofthesourcedirectory.Thepropertydoesnothavetoexistintheinstallerdatabaseatcreationtime;itcouldbecreatedatinstallationtimebyacustomaction,onthecommandline,etc.This
Page 1541
attributecannotbespecifiedinconjunctionwiththeDirectoryattribute.
SeeAlsoWixSchema,CreateFolder
Page 1542
RemoveFoldersElement
DescriptionRemovesanyfolderslinkedtocomponentssettoberemovedorrunfromsource.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRemoveFoldersAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1543
RemoveIniValuesElement
DescriptionRemoves.inifileinformationspecifiedforremovalintheRemoveIniFiletableifthecomponentissettobeinstalledlocallyorrunfromsource.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRemoveIniValuesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1544
RemoveODBCElement
DescriptionRemovesthedatasources,translators,anddriverslistedforremovalduringtheinstallation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRemoveODBCAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1545
RemoveRegistryKeyElement
DescriptionUsedforremovingregistrykeysandallchildkeyseitherduringinstalloruninstall.
WindowsInstallerreferencesRegistryTable,RemoveRegistryTable
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Action Enumeration Thisistheactionthatwillbetakenforthisregistryvalue.Thisattribute'svaluemustbeoneofthefollowing:removeOnInstall
Removesakeywithallitsvaluesandsubkeyswhentheparentcomponentisinstalled.
removeOnUninstallRemovesakeywithallitsvaluesandsubkeyswhentheparentcomponentisuninstalled.
Page 1546
Id String Primarykeyusedtoidentifythisparticularentry.Ifthisattributeisnotspecified,anidentifierwillbegeneratedbyhashingtheparentComponentidentifier,Root,Key,andName.
Key String Thelocalizablekeyfortheregistryvalue.
Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.
SeeAlsoWixSchema
Page 1547
RemoveRegistryValueElement
DescriptionUsedtoremovearegistryvalueduringinstallation.Thereisnostandardwaytoremoveasingleregistryvalueduringuninstall(butyoucanremoveanentirekeywithRemoveRegistryKey).
WindowsInstallerreferencesRemoveRegistryTable
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Primarykeyusedtoidentifythisparticularentry.Ifthisattributeisnotspecified,anidentifierwillbegeneratedbyhashingtheparentComponentidentifier,Root,Key,andName.
Key String Thelocalizablekeyfortheregistryvalue.IftheparentelementisaRegistryKey,thisvaluemaybeomittedtousethepathoftheparent,orifitsspecifieditwillbeappendedtothepathoftheparent.
Page 1548
Name String Thelocalizableregistryvaluename.Ifthisattributeisnotprovidedthedefaultvaluefortheregistrykeywillbesetinstead.TheWindowsInstallerallowsseveralspecialvaluestobesetforthisattribute.YoushouldnotusetheminWiX.InsteaduseappropriatevaluesintheActionattributetogetthedesiredbehavior.
Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.
SeeAlsoWixSchema
Page 1549
RemoveRegistryValuesElement
DescriptionRemovesaregistryvaluethathasbeenauthoredintotheregistrytableiftheassociatedcomponentwasinstalledlocallyorasrunfromsource,andisnowsettobeuninstalled.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRemoveRegistryValuesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1550
RemoveShortcutsElement
DescriptionManagestheremovalofanadvertisedshortcutwhosefeatureisselectedforuninstallationoranonadvertisedshortcutwhosecomponentisselectedforuninstallation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRemoveShortcutsAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1551
ReplacePatchElement
DescriptionApatchthatisdeprecatedbythispatch.
WindowsInstallerreferencesNone
ParentsPatchCreation
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id Guid PatchGUIDtobeunregisteredifitexistsonthemachinetargetedbythispatch.
Yes
SeeAlsoWixSchema
Page 1552
RequiredPrivilegeElement
DescriptionPrivilegerequiredbyserviceconfiguredbyServiceConfigparent.ValidvaluesareaprivilegeconstantoraFormattedpropertythatresolvestoaprivilegeconstant.
WindowsInstallerreferencesMsiServiceConfigTable
ParentsServiceConfig
SeeAlsoWixSchema
Page 1553
ReserveCostElement
DescriptionDiskcosttoreserveinafolderforrunninglocallyand/orfromsource.
WindowsInstallerreferencesReserveCostTable
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String AprimarykeythatuniquelyidentifiesthisReserveCostentry.
Yes
Directory String AddstheamountofdiskspacespecifiedinRunFromSourceorRunLocaltothevolumecostofthedevicecontainingthedirectory.Ifthisattributeisnotset,itwilldefaulttothedirectoryofparentcomponent.
RunFromSource Integer Thenumberofbytesofdiskspacetoreserveifthecomponentisinstalledtorunfromsource.
Yes
Page 1554
RunLocal Integer Thenumberofbytesofdiskspacetoreserveifthecomponentisinstalledtorunlocally.
Yes
SeeAlsoWixSchema
Page 1555
ResolveSourceElement
DescriptionDeterminesthelocationofthesourceandsetstheSourceDirpropertyifthesourcehasnotbeenresolvedyet.Specialactionsdon'thaveabuilt-insequencenumberandthusmustappearrelativetoanotheraction.ThesuggestedwaytodothisisbyusingtheBeforeorAfterattribute.InstallExecuteandInstallExecuteAgaincanoptionallyappearanywherebetweenInstallInitializeandInstallFinalize.
WindowsInstallerreferencesResolveSourceAction
ParentsAdminExecuteSequence,InstallExecuteSequence,InstallUISequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthatthisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Avalueusedtoindicatethe
Page 1556
positionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1557
RMCCPSearchElement
DescriptionUsesfilesignaturestovalidatethatqualifyingproductsareinstalledonasystembeforeanupgradeinstallationisperformed.TheRMCCPSearchactionshouldbeauthoredintotheInstallUISequencetableandInstallExecuteSequencetable.TheinstallerpreventsRMCCPSearchfromrunningintheInstallExecuteSequencesequenceiftheactionhasalreadyruninInstallUISequencesequence.TheRMCCPSearchactionrequirestheCCP_DRIVEpropertytobesettotherootpathontheremovablevolumethathastheinstallationforanyofthequalifyingproducts.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRMCCPSearchAction
ParentsInstallExecuteSequence,InstallUISequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthatthisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Overridable YesNoType If"yes",thesequencingof
Page 1558
thisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,CCPSearch,ComplianceCheck
Page 1559
RollbackBoundaryElement
DescriptionDescribesarollbackboundaryinthechain.
WindowsInstallerreferencesNone
ParentsChain,PackageGroup
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.Theextension'sCompilerExtension.ParseElement()methodwillbecalledwiththerollbackboundaryidentifierasthe'RollbackBoundaryId'keyincontextValues.
Attributes
Name Type Description Required
Id String Identifierforthisrollbackboundary,fororderingandcross-referencing.Ifthisattributeisnotprovidedastableidentifierwillbegenerated.
Vital YesNoType Specifieswhethertherollbackboundaryabortsthechain.Thedefault"yes"indicatesthatiftherollbackboundaryisencounteredthenthechainwillfailandrollbackorstop.If"no"is
Page 1560
specifiedthenthechainshouldcontinuesuccessfulyatthenextrollbackboundary.
SeeAlsoWixSchema
Page 1561
RowElement
DescriptionRowdataforaCustomTable
WindowsInstallerreferencesNone
ParentsCustomTable
InnerTextNone
ChildrenSequence(min:1,max:1)1. Data(min:1,max:unbounded)
AttributesNone
SeeAlsoWixSchema
Page 1562
ScheduleRebootElement
DescriptionPromptstheusertorestartthesystemattheendofinstallation.Specialactionsdon'thaveabuilt-insequencenumberandthusmustappearrelativetoanotheraction.ThesuggestedwaytodothisisbyusingtheBeforeorAfterattribute.InstallExecuteandInstallExecuteAgaincanoptionallyappearanywherebetweenInstallInitializeandInstallFinalize.
WindowsInstallerreferencesScheduleRebootAction
ParentsInstallExecuteSequence,InstallUISequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthatthisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Page 1563
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1564
SelfRegModulesElement
DescriptionProcessesallmoduleslistedintheSelfRegtableandregistersallinstalledmoduleswiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesSelfRegModulesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1565
SelfUnregModulesElement
DescriptionUnregistersallmoduleslistedintheSelfRegtablethatarescheduledtobeuninstalled.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesSelfUnregModulesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1566
ServiceArgumentElement
DescriptionArgumentusedinServiceControlparent
WindowsInstallerreferencesServiceControlTable
ParentsServiceControl
SeeAlsoWixSchema
Page 1567
ServiceConfigElement
DescriptionConfiguresaservicebeinginstalledoronethatalreadyexists.Thiselement'sfunctionalityisavailablestartingwithMSI5.0.
WindowsInstallerreferencesMsiServiceConfigTable
ParentsComponent,ServiceInstall
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
RequiredPrivilege(min:0,max:unbounded):Listofprivilegestoapplytoservice.
Attributes
Name Type Description Required
DelayedAutoStart String Thisattributespecifieswhetheranauto-startserviceshoulddelayitsstartuntilafterallotherauto-startservices.Thisattributeonlyaffectsauto-startservices.Allowedvaluesare"yes","no"oraFormattedpropertythatresolvesto"1"(for"yes")or"0"(for"no").Ifthisattributeisnotpresentthesettingisnotconfigured.
FailureActionsWhen String Thisattributespecifieswhenfailureactionsshouldbeapplied.Allowedvaluesare
Page 1568
"failedToStop","failedToStopOrReturnedError"oraFormattedpropertythatresolvesto"1"(for"failedToStopOrReturnedError")or"0"(for"failedToStop").Ifthisattributeisnotpresentthesettingisnotconfigured.
Id String Uniqueidentifierforthisserviceconfiguration.ThisvaluewilldefaulttotheServiceNameattributeifnotspecified.
OnInstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisinstalled.ThisattributemaybecombinedwithOnReinstallandOnUninstall.
OnReinstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisreinstalled.ThisattributemaybecombinedwithOnInstallandOnUninstall.
OnUninstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisuninstalled.ThisattributemaybecombinedwithOnInstallandOnReinstall.
PreShutdownDelay String ThisattributespecifiestimeinmillisecondsthattheServiceControlManager(SCM)waitsafternotifyingtheserviceofasystemshutdown.Ifthisattributeisnotpresentthedefaultvalue,3minutes,isused.
Page 1569
ServiceName String Specifiesthenameoftheservicetoconfigure.ThisvaluewilldefaulttotheServiceInstall/@NameattributewhennestedunderaServiceInstallelement.
ServiceSid String SpecifiestheserviceSIDtoapplytotheservice.Validvaluesare"none","restricted","unrestricted"oraFormattedpropertythatresolvesto"0"(for"none"),"3"(for"restricted")or"1"(for"unrestricted").Ifthisattributeisnotpresentthesettingisnotconfigured.
SeeAlsoWixSchema
Page 1570
ServiceConfigFailureActionsElement
DescriptionConfiguresthefailureactionsforaservicebeinginstalledoronethatalreadyexists.Thiselement'sfunctionalityisavailablestartingwithMSI5.0.
WindowsInstallerreferencesMsiServiceConfigFailureActionsTable
ParentsComponent,ServiceInstall
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Failure(min:0,max:unbounded):Orderedlistoffailureactionstoapplytoservice.
Attributes
Name Type Description Required
Command String Thisattributespecifiescommandtoexecutewhena"runCommand"failureactionhit.Ifanemptystringisprovideditclearstheexistingcommand.Ifthisattributeisnotpresentthesettingisnotchanged.
Id String Uniqueidentifierforthisserviceconfiguration.
Page 1571
ThisvaluewilldefaulttotheServiceNameattributeifnotspecified.
OnInstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisinstalled.ThisattributemaybecombinedwithOnReinstallandOnUninstall.
OnReinstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisreinstalled.ThisattributemaybecombinedwithOnInstallandOnUninstall.
OnUninstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisuninstalled.ThisattributemaybecombinedwithOnInstallandOnReinstall.
RebootMessage String Specifiesthemessagetoshowforarebootfailureaction.Ifanemptystringisprovideditclearsanyexistingrebootmessage.Ifthisattributeisnotpresentthesettingisnotchanged.
Page 1572
ResetPeriod String Specifiesthetimeinsecondstoresetthefailurecount.Ifthisattributeisnotpresentthefailurecountwillnotbereset.
ServiceName String Specifiesthenameoftheservicetoconfigure.ThisvaluewilldefaulttotheServiceInstall/@NameattributewhennestedunderaServiceInstallelement.
SeeAlsoWixSchema
Page 1573
ServiceControlElement
DescriptionStarts,stops,andremovesservicesforparentComponent.ThiselementisusedtocontrolthestateofaserviceinstalledbytheMSIorMSMfilebyusingthestart,stopandremoveattributes.Forexample,Start='install'Stop='both'Remove='uninstall'wouldmean:starttheserviceoninstall,removetheservicewhentheproductisuninstalled,andstoptheservicebothoninstallanduninstall.
WindowsInstallerreferencesServiceControlTable
ParentsComponent
InnerTextNone
ChildrenSequence(min:1,max:1)1. ServiceArgument(min:0,max:unbounded):Orderedlistof
argumentsusedwhenmodifyingservices.
Attributes
Name Type Description Required
Id String Yes
Name String Nameoftheservice. Yes
Remove InstallUninstallType SpecifieswhethertheserviceshouldberemovedbytheDeleteServicesactiononinstall,uninstallorboth.For'install',theservicewillberemovedonly
Page 1574
whentheparentcomponentisbeinginstalled(msiInstallStateLocalormsiInstallStateSource);for'uninstall',theservicewillberemovedonlywhentheparentcomponentisbeingremoved(msiInstallStateAbsent);for'both',theservicewillberemovedinbothcases.
Start InstallUninstallType SpecifieswhethertheserviceshouldbestartedbytheStartServicesactiononinstall,uninstallorboth.For'install',theservicewillbestartedonlywhentheparentcomponentisbeinginstalled(msiInstallStateLocalormsiInstallStateSource);for'uninstall',theservicewillbestartedonlywhentheparentcomponentisbeingremoved(msiInstallStateAbsent);for'both',theservicewillbestartedinbothcases.
Stop InstallUninstallType SpecifieswhethertheserviceshouldbestoppedbytheStopServicesactiononinstall,uninstallorboth.For'install',theservice
Page 1575
willbestoppedonlywhentheparentcomponentisbeinginstalled(msiInstallStateLocalormsiInstallStateSource);for'uninstall',theservicewillbestoppedonlywhentheparentcomponentisbeingremoved(msiInstallStateAbsent);for'both',theservicewillbestoppedinbothcases.
Wait YesNoType Specifieswhetherornottowaitfortheservicetocompletebeforecontinuing.Thedefaultis'yes'.
SeeAlsoWixSchema
Page 1576
ServiceDependencyElement
DescriptionServiceorgroupofservicesthatmuststartbeforetheparentservice.
WindowsInstallerreferencesServiceInstallTable
ParentsServiceInstall
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Thevalueofthisattributeshouldbeoneofthefollowing:1. Thename(notthedisplay
name)ofapreviouslyinstalledservice.
2. Thenameofaservicegroup(inwhichcasetheGroupattributemustbesetto'yes').
Yes
Group YesNoType Setto'yes'toindicatethatthevalueintheIdattributeisthenameofagroupofservices.
SeeAlsoWixSchema
Page 1577
ServiceInstallElement
DescriptionAddsservicesforparentComponent.UsetheServiceControlelementtoremoveservices.
WindowsInstallerreferencesServiceInstallTable
ParentsComponent
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
PermissionEx(min:0,max:unbounded):ConfigurestheACLsforthisservice.ServiceConfig(min:0,max:unbounded)ServiceConfigFailureActions(min:0,max:unbounded)ServiceDependency(min:0,max:unbounded):Orderedlistofdependencieswheninstallingservices.AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
ServiceConfigUrlReservation
Attributes
Name Type Description Required
Account String Fullyqualifiednamesmustbeusedevenforlocalaccounts,e.g.:".\LOCAL_ACCOUNT".
Page 1578
ValidonlywhenServiceTypeisownProcess.
Arguments String Containsanycommandlineargumentsorpropertiesrequiredtoruntheservice.
Description String Setsthedescriptionoftheservice.
DisplayName String Thiscolumnisthelocalizablestringthatuserinterfaceprogramsusetoidentifytheservice.
EraseDescription YesNoType Determineswhethertheexistingservicedescriptionwillbeignored.If'yes',theservicedescriptionwillbenull,eveniftheDescriptionattributeisset.
ErrorControl Enumeration Determineswhatactionshouldbetakenonanerror.Thisattribute'svaluemustbeoneofthefollowing:ignore
Logstheerrorandcontinueswiththestartupoperation.
normalLogstheerror,displaysa
Yes
Page 1579
messageboxandcontinuesthestartupoperation.
criticalLogstheerrorifitispossibleandthesystemisrestartedwiththelastconfigurationknowntobegood.Ifthelast-known-goodconfigurationisbeingstarted,thestartupoperationfails.
Id String Uniqueidentifierforthisserviceconfiguration.ThisvaluewilldefaulttotheNameattributeifnotspecified.
Interactive YesNoType Whetherornottheserviceinteractswiththedesktop.
LoadOrderGroup String Theloadorderinggroupthatthisserviceshouldbeapartof.
Name String Thiscolumnisthestringthatgivestheservicenametoinstall.
Yes
Password String Thepasswordfortheaccount.Validonlywhentheaccounthasapassword.
Page 1580
Start Enumeration Determineswhentheserviceshouldbestarted.TheWindowsInstallerdoesnotsupportbootorsystem.Thisattribute'svaluemustbeoneofthefollowing:auto
Theservicewillstartduringstartupofthesystem.
demandTheservicewillstartwhentheservicecontrolmanagercallstheStartServicefunction.
disabledTheservicecannolongerbestarted.
bootTheserviceisadevicedriverthatwillbestartedbytheoperatingsystembootloader.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.
systemTheserviceisadevicedriverthatwillbestartedby
Yes
Page 1581
theIoInitSystemfunction.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.
Type Enumeration TheWindowsInstallerdoesnotcurrentlysupportkernelDriverorsystemDriver.Thisattribute'svaluemustbeoneofthefollowing:ownProcess
AWin32servicethatrunsitsownprocess.
shareProcessAWin32servicethatsharesaprocess.
kernelDriverAkerneldriverservice.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.
systemDriverAfilesystemdriverservice.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.
Yes
Vital YesNoType Theoverallinstallshouldfailifthis
Page 1582
servicefailstoinstall.
RemarksTheserviceexecutableinstalledwillpointtotheKeyPathfortheComponent.Therefore,youmustensurethatthecorrectexecutableiseitherthefirstchildFileelementunderthisComponentorexplicitlymarktheappropriateFileelementasKeyPath='yes'.
SeeAlsoWixSchema
Page 1583
SetDirectoryElement
DescriptionSetsaDirectorytoaparticularvalue.ThisisaccomplishedbycreatingaType51customactionthatisappropriatelyscheduledintheInstallUISequenceandInstallExecuteSequence.
WindowsInstallerreferencesCustomActionTable
ParentsFragment,Module,Product
InnerText(xs:string)TheconditionthatdetermineswhethertheDirectoryisset.Iftheconditionevaluatestofalse,theSetDirectoryisskipped.
ChildrenNone
Attributes
Name Type Description Required
Action String Bydefaulttheactionis"Set"+Idattribute'svalue.ThisoptionalattributecanoverridetheactionnameinthecasewheremultipleSetDirectoryelementstargetthesameId(probablywithmutuallyexclusiveconditions).
Id String ThisattributespecifiesareferencetoaDirectoryelementwithmatchingIdattribute.ThepathoftheDirectorywillbesettothe
Page 1584
Valueattribute.
Sequence SequenceType ControlswhichsequencestheDirectoryassignmentissequencedin.For'execute',theassignmentisscheduledintheInstallExecuteSequence.For'ui',theassignmentisscheduledintheInstallUISequence.For'first',theassignmentisscheduledintheInstallUISequenceortheInstallExecuteSequenceiftheInstallUISequenceisskippedatinstalltime.For'both',theassignmentisscheduledinboththeInstallUISequenceandtheInstallExecuteSequence.Thedefaultis'both'.
Value String ThisattributespecifiesastringvaluetoassigntotheDirectory.ThevaluecanbealiteralvalueorderivedfromaPropertyelementusingtheFormattedsyntax.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,Custom,CustomActionRef,InstallUISequence,InstallExecuteSequence
Page 1585
SetODBCFoldersElement
DescriptionChecksforexistingODBCdriversandsetsthetargetdirectoryforeachnewdrivertothelocationofanexistingdriver.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesSetODBCFoldersAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1586
SetPropertyElement
DescriptionSetsaPropertytoaparticularvalue.ThisisaccomplishedbycreatingaType51customactionthatisappropriatelyscheduledintheInstallUISequenceandInstallExecuteSequence.
WindowsInstallerreferencesCustomActionTable
ParentsFragment,Module,Product
InnerText(xs:string)TheconditionthatdetermineswhetherthePropertyisset.Iftheconditionevaluatestofalse,theSetisskipped.
ChildrenNone
Attributes
Name Type Description Required
Action String Bydefaulttheactionis"Set"+Idattribute'svalue.ThisoptionalattributecanoverridetheactionnameinthecasewheremultipleSetPropertyelementstargetthesameId(probablywithmutuallyexclusiveconditions).
After String Thenameofthestandardorcustomactionafterwhichthisactionshouldbeperformed.MutuallyexclusivewiththeBefore
Page 1587
attribute.ABeforeorAfterattributeisrequiredwhensettingaProperty.
Before String Thenameofthestandardorcustomactionbeforewhichthisactionshouldbeperformed.MutuallyexclusivewiththeAfterattribute.ABeforeorAfterattributeisrequiredwhensettingaProperty.
Id String ThisattributespecifiesthePropertytosettotheValue.
Sequence SequenceType ControlswhichsequencesthePropertyassignmentissequencedin.For'execute',theassignmentisscheduledintheInstallExecuteSequence.For'ui',theassignmentisscheduledintheInstallUISequence.For'first',theassignmentisscheduledintheInstallUISequenceortheInstallExecuteSequenceiftheInstallUISequenceisskippedatinstalltime.For'both',theassignmentisscheduledinboththeInstallUISequenceandtheInstallExecuteSequence.Thedefaultis'both'.
Value String ThisattributespecifiesastringvaluetoassigntotheProperty.Thevaluecanbe
Page 1588
aliteralvalueorderivedfromaPropertyelementusingtheFormattedsyntax.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,Custom,CustomActionRef,InstallUISequence,InstallExecuteSequence
Page 1589
SFPCatalogElement
DescriptionAddsasystemfileprotectionupdatecatalogfile
WindowsInstallerreferencesSFPCatalogTable
ParentsFragment,Module,Product,SFPCatalog
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
SFPCatalog(min:0,max:unbounded)SFPFile(min:0,max:unbounded):PrimaryKeytoFileTable.
Attributes
Name Type Description Required
Dependency String Usedtodefinedependencyoutsideofthepackage.
Name String Filenameforcatalogfilewheninstalled.
SourceFile String Pathtocatalogfileinbinary.
SeeAlsoWixSchema
Page 1590
SFPFileElement
DescriptionProvidesamany-to-manymappingfromtheSFPCatalogtabletotheFiletable
WindowsInstallerreferencesFileSFPCatalogTable
ParentsSFPCatalog
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String PrimaryKeytoFileTable. Yes
SeeAlsoWixSchema
Page 1591
ShortcutElement
DescriptionShortcut,defaulttargetisparentFile,CreateFolder,orComponent'sDirectory
WindowsInstallerreferencesShortcutTable
ParentsComponent,CreateFolder,File
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Icon(min:0,max:unbounded)ShortcutProperty(min:0,max:unbounded)
Attributes
Name Type Description
Id String Uniqueidentifierfortheshortcut.Thisvaluewillserveastheprimarykeyfortherow.
Advertise YesNoType Specifiesiftheshortcutshouldbeadvertisedornot.Notethatadvertisedshortcutsalwayspointataparticularapplication,identifiedbyaProductCode,andshouldnotbesharedbetweenapplications.Advertisedshortcutsonlyworkforthemostrecentlyinstalledapplication,andareremoved
Page 1592
whenthatapplicationisremoved.Thedefaultvalueis'no'.
Arguments String Thecommand-lineargumentsfortheshortcut.NotethattheresolutionofpropertiesArgumentsfieldislimited.Apropertyformattedas[Property]inthisfieldcanonlyberesolvedifthepropertyalreadyhastheintendedvaluewhenthecomponentowningtheshortcutisinstalled.Forexample,fortheargument"[#MyDoc.doc]"toresolvetothecorrectvalue,thesameprocessmustbeinstallingthefileMyDoc.docandcomponentthatownstheshortcut.
Description String Thelocalizabledescriptionfortheshortcut.
DescriptionResourceDll String TheFormattedstringprovidingthefullpathtothelanguageneutralfilecontainingtheMUIManifest.Generallyauthoredusing[#filekey]form.Whenthisattributeisspecified,theDescriptionResourceIdattributemustalsobeprovided.
ThisattributeisonlyusedonWindowsVistaandabove.thisattributeisnotspecifiedandtheinstallisrunningonVistaandabove,thevalueintheNameattributeisused.thisattributeisprovidedand
Page 1593
installisrunningonVistaandabove,thevalueintheNameattributeisignored.
DescriptionResourceId Integer Thedescriptionnameindexfortheshortcut.Thismustbeanon-negativenumber.thisattributeisspecified,DescriptionResourceDllattributemustalsobepopulated.
ThisattributeisonlyusedonWindowsVistaandabove.thisattributeisnotspecifiedandtheinstallisrunningonVistaandabove,thevalueintheNameattributeisused.thisattributeispopulatedandtheinstallisrunningonVistaandabove,thevalueintheNameattributeisignored.
Directory String IdentifierreferencetoDirectoryelementwhereshortcutistobecreated.WhennestedunderaComponentelement,thisattribute'svaluewilldefaulttotheparentdirectory.Otherwise,thisattributeisrequired.
DisplayResourceDll String TheFormattedstringprovidingthefullpathtothelanguageneutralfilecontainingtheMUIManifest.Generallyauthoredusing[#filekey]form.Whenthisattributeisspecified,theDisplayResourceIdattributemustalsobeprovided.
Page 1594
ThisattributeisonlyusedonWindowsVistaandabove.thisattributeisnotpopulatedandtheinstallisrunningonVistaandabove,thevalueintheNameattributeisused.thisattributeispopulatedandtheinstallisrunningonVistaandabove,thevalueintheNameattributeisignored.
DisplayResourceId Integer Thedisplaynameindexfortheshortcut.Thismustbeanon-negativenumber.Whenthisattributeisspecified,theDisplayResourceDllattributemustalsobeprovided.
ThisattributeisonlyusedonWindowsVistaandabove.thisattributeisnotspecifiedandtheinstallisrunningonVistaandabove,thevalueintheNameattributeisused.thisattributeisspecifiedandtheinstallisrunningonVistaandabove,thevalueintheNameattributeisignored.
Hotkey Integer Thehotkeyfortheshortcut.Thelow-orderbytecontainsthevirtual-keycodeforthekey,andthehigh-orderbytecontainsmodifierflags.Thismustbeanon-negativenumber.Authorsofinstallationpackagesaregenerallyrecommendnottosetthisoption,becausethiscanaddduplicatehotkeystoausersdesktop.Inaddition,the
Page 1595
practiceofassigninghotkeystoshortcutscanbeproblematicforusersusinghotkeysforaccessibility.
Icon String IdentifierreferencetoIconelement.TheIconidentifiershouldhavethesameextensionasthefilethatitpointsat.Forexample,ashortcuttoanexecutable(e.g."my.exe")shouldreferenceanIconwithidentifierlike"MyIcon.exe"
IconIndex Integer IdentifierreferencetoIconelement.
LongName LongFileNameType Thisattributehasbeendeprecated;pleaseusetheNameattributeinstead.
Name LongFileNameType InpriorversionsoftheWiXtoolset,thisattributespecifiedtheshortname.Thisattribute'svaluemaynowbeeitherashortorlongname.Ifashortnameisspecified,theShortNameattributemaynotbespecified.alongnameisspecified,theLongNameattributemaynotbespecified.Also,ifthisvalueisalongname,theShortNameattributemaybeomittedtoallowWiXtoattempttogenerateauniqueshortname.However,ifthisnamecollideswithanothershortcutoryouwishtomanuallyspecifyshortname,thenthe
Page 1596
ShortNameattributemaybespecified.
ShortName ShortFileNameType Theshortnameoftheshortcutin8.3format.Thisattributeshouldonlybesetifthereisaconflictbetweengeneratedshortnamesortheuserwantstomanuallyspecifytheshortname.
Show Enumeration Thisattribute'svaluemustbeoneofthefollowing:normal
TheshortcuttargetwillbedisplayedusingtheSW_SHOWNORMALattribute.
minimizedTheshortcuttargetwillbedisplayedusingtheSW_SHOWMINNOACTIVEattribute.
maximizedTheshortcuttargetwillbedisplayedusingtheSW_SHOWMAXIMIZEDattribute.
Target String ThisattributecanonlybesetifthisShortcutelementisnestedunderaComponentelement.WhennestedunderaComponentelement,thisattribute'svaluewilldefaulttotheparentdirectory.Thisattribute'svalueisthetargetforanon-advertisedshortcut.
Page 1597
attributeisnotvalidforadvertisedshortcuts.Ifyouspecifythisvalue,itsvalueshouldbeapropertyidentifierenclosedbysquarebrackets([]),thatisexpandedintothefileorafolderpointedtobytheshortcut.
WorkingDirectory String Directoryidentifier(orPropertyidentifierthatresolvestoadirectory)thatresolvespathoftheworkingdirectoryfortheshortcut.
HowTosandExamplesHowTo:CreateashortcutontheStartMenu
SeeAlsoWixSchema
Page 1598
ShortcutPropertyElement
DescriptionPropertyvaluesforashortcut.Thiselement'sfunctionalityisavailablestartingwithMSI5.0.
WindowsInstallerreferencesMsiShortcutPropertyTable
ParentsShortcut
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Id String UniqueidentifierforMsiShortcutPropertytable.Ifomitted,astableidentifierwillbegeneratedfromtheparentshortcutidentifierandKeyvalue.
Key String Aformattedstringidentifyingthepropertytobeset.
Yes
Value String Aformattedstringsupplyingthevalueoftheproperty.
SeeAlsoWixSchema,Shortcut
Page 1599
ShowElement
DescriptionNone
WindowsInstallerreferencesNone
ParentsAdminUISequence,InstallUISequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
After String
Before String
Dialog String Yes
OnExit ExitType mutuallyexclusivewithBefore,After,andSequenceattributes
Overridable YesNoType If"yes",thesequencingofthisdialogmaybeoverriddenbysequencingelsewhere.
Sequence Integer
SeeAlsoWixSchema
Page 1600
AutogenGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.
SeeAlsoWixSchema
Page 1601
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoWixSchema
Page 1602
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoWixSchema
Page 1603
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoWixSchema
Page 1604
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoWixSchema
Page 1605
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoWixSchema
Page 1606
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoWixSchema
Page 1607
Guid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoWixSchema
Page 1608
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoWixSchema
Page 1609
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoWixSchema
Page 1610
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoWixSchema
Page 1611
LongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoWixSchema
Page 1612
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoWixSchema
Page 1613
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoWixSchema
Page 1614
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoWixSchema
Page 1615
ShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoWixSchema
Page 1616
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoWixSchema
Page 1617
WildCardLongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoWixSchema
Page 1618
WildCardShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoWixSchema
Page 1619
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoWixSchema
Page 1620
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoWixSchema
Page 1621
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoWixSchema
Page 1622
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoWixSchema
Page 1623
SlipstreamMspElement
DescriptionSpecifiesapatchincludedinthesamebundlethatisinstalledwhentheparentMSIpackageisinstalled.
WindowsInstallerreferencesNone
ParentsMsiPackage
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifierforaMspPackageinthebundle.
Yes
Remarks
YoucanalsospecifythatanyMspPackageelementsinthechainareautomaticallyslipstreamedbysettingtheSlipstreamattributeofanMspPackageto"yes".Thiswillreducetheamountofauthoringyouneedtowriteandwilldeterminewhichmsipackagescanslipstreampatcheswhenbuildingabundle.
SeeAlsoWixSchema,MspPackage
Page 1624
StartServicesElement
DescriptionStartssystemservices.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesStartServicesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1625
StopServicesElement
DescriptionStopssystemservices.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesStopServicesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1626
SubscribeElement
DescriptionSetsattributesforeventsintheEventMappingtable
WindowsInstallerreferencesEventMappingTable
ParentsControl
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Attribute String ifnotpresentcanonlyhandleenable,disable,hide,unhideevents
Event String mustbeoneofthestandardcontrolevents'
SeeAlsoWixSchema
Page 1627
SubstitutionElement
DescriptionSpecifiestheconfigurablefieldsofamoduledatabaseandprovidesatemplatefortheconfigurationofeachfield.
WindowsInstallerreferencesNone
ParentsModule
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Column String SpecifiesthetargetcolumnintherownamedintheRowcolumn.
Yes
Row String SpecifiestheprimarykeysofthetargetrowinthetablenamedintheTablecolumn.Ifmultiplekeys,separatedbysemicolons.
Yes
Table String Specifiesthenameofthetablebeingmodifiedinthemoduledatabase.
Yes
Value String ProvidesaformattingtemplateforthedatabeingsubstitutedintothetargetfieldspecifiedbyTable,Row,andColumn.
SeeAlso
Page 1629
SymbolPathElement
DescriptionApathtosymbols.
WindowsInstallerreferencesNone
ParentsComponent,Directory,ExternalFile,File,Media,Product,TargetFile,TargetImage,UpgradeFile,UpgradeImage
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Path String Thepath. Yes
SeeAlsoWixSchema
Page 1630
TargetFileElement
DescriptionInformationaboutspecificfilesinatargetimage.
WindowsInstallerreferencesNone
ParentsTargetImage
InnerTextNone
ChildrenSequence(min:1,max:1)1. SymbolPath(min:0,max:1)2. Choiceofelements(min:0,max:unbounded)
IgnoreRange(min:0,max:unbounded)ProtectRange(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String ForeignkeyintotheFiletable. Yes
SeeAlsoWixSchema
Page 1631
TargetImageElement
DescriptionContainsinformationaboutthetargetimagesoftheproduct.
WindowsInstallerreferencesNone
ParentsUpgradeImage
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
SymbolPath(min:0,max:unbounded)TargetFile(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifierforthetargetimage.
Yes
IgnoreMissingFiles YesNoType Filesmissingfromthetargetimageareignoredbytheinstaller.
Order Int Relativeorderofthetargetimage.
Yes
SourceFile String Fullpathtothelocationofthemsifileforthetargetimage.
src String Thisattributehasbeendeprecated;please
Page 1632
usetheSourceFileattributeinstead.
Validation String Productcheckingtoavoidapplyingirrelevanttransforms.
SeeAlsoWixSchema
Page 1633
TargetProductCodeElement
DescriptionAproductcodeforaproductthatcanacceptthepatch.
WindowsInstallerreferencesNone
ParentsPatchCreation,TargetProductCodes
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Theproductcodeforaproductthatcanacceptthepatch.Thiscanbe'*'.Seeremarksformoreinformation.
Yes
Remarks
WhenusingthePatchCreationelement,iftheIdattributevalueis'*'orthiselementisnotauthored,theproductcodesofallproductsreferencedbytheTargetImageselementareused.
WhenusingthePatchelement,theIdattributevaluemustnotbe'*'.UsetheTargetProductCodes/@Replaceattributeinstead.
SeeAlsoWixSchema
Page 1634
TargetProductCodesElement
DescriptionTheproductcodesforproductsthatcanacceptthepatch.
WindowsInstallerreferencesNone
ParentsPatch
InnerTextNone
ChildrenChoiceofelements(min:1,max:unbounded)
TargetProductCode(min:1,max:unbounded)
Attributes
Name Type Description Required
Replace YesNoType Whethertoreplacetheproductcodesthatcanacceptthepatchfromthetargetpackageswiththechildelements.
SeeAlsoWixSchema
Page 1635
TextElement
DescriptionAnalternativetousingtheTextattributewhenthevaluecontainsspecialXMLcharacterslike<,>,or&.
WindowsInstallerreferencesNone
ParentsControl
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
SourceFile String Instructsthetexttobeimportedfromafileinsteadoftheelementvalueduringthebindingprocess.
src String Thisattributehasbeendeprecated;pleaseusetheSourceFileattributeinstead.
SeeAlsoWixSchema
Page 1636
TextStyleElement
DescriptionNone
WindowsInstallerreferencesTextStyleTable
ParentsUI
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
Blue Integer 0to255
Bold YesNoType
FaceName String Yes
Green Integer 0to255
Italic YesNoType
Red Integer 0to255
Size String Yes
Strike YesNoType
Underline YesNoType
SeeAlso
Page 1638
TypeLibElement
DescriptionRegisteratypelibrary(TypeLib).Pleasenotethatinordertoproperlyusethisnon-advertised,youwillneedusethiselementwithAdvertise='no'andalsoauthortheappropriatechildInterfaceelementsbyextractingthemfromthetypelibraryitself.
WindowsInstallerreferencesTypeLibTable,RegistryTable
ParentsComponent,File
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
AppId(min:0,max:unbounded)Class(min:0,max:unbounded)Interface(min:0,max:unbounded)
Attributes
Name Type Description Required
Id Guid TheGUIDthatidentifesthetypelibrary.
Yes
Advertise YesNoType Valueof'yes'willcreatearowintheTypeLibtable.Valueof'no'willcreaterowsintheRegistrytable.Thedefaultvalueis'no'.
Control YesNoType Valueof'yes'meansthetypelibrarydescribescontrols,andshouldnotbe
Page 1639
displayedintypebrowsersintendedfornonvisualobjects.ThisattributecanonlybesetifAdvertise='no'.
Cost Int Thecostassociatedwiththeregistrationofthetypelibraryinbytes.ThisattributecannotbesetifAdvertise='no'.
Description String Thelocalizabledescriptionofthetypelibrary.
HasDiskImage YesNoType Valueof'yes'meansthetypelibraryexistsinapersistedformondisk.ThisattributecanonlybesetifAdvertise='no'.
HelpDirectory String TheidentifieroftheDirectoryelementforthehelpdirectory.
Hidden YesNoType Valueof'yes'meansthetypelibraryshouldnotbedisplayedtousers,althoughitsuseisnotrestricted.Shouldbeusedbycontrols.Hostsshouldcreateanewtypelibrarythatwrapsthecontrolwithextendedproperties.ThisattributecanonlybesetifAdvertise='no'.
Language Integer Thelanguageofthetypelibrary.Thismustbeanon-negativeinteger.
Yes
Page 1640
MajorVersion Integer Themajorversionofthetypelibrary.Thevalueshouldbeanintegerfrom0-255.
MinorVersion Integer Theminorversionofthetypelibrary.Thevalueshouldbeanintegerfrom0-255.
ResourceId Integer Theresourceidofatypelib.Thevalueisappendedtotheendofthetypelibpathintheregistry.
Restricted YesNoType Valueof'yes'meansthetypelibraryisrestricted,andshouldnotbedisplayedtousers.ThisattributecanonlybesetifAdvertise='no'.
SeeAlsoWixSchema
Page 1641
UIElement
DescriptionEnclosingelementtocompartmentalizeUIspecifications.
WindowsInstallerreferencesNone
ParentsFragment,Module,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
BillboardAction(min:0,max:unbounded):BillboardtableitemwithchildControlsBinary(min:0,max:unbounded)ComboBox(min:0,max:unbounded):ComboBoxtablewithListItemchildrenDialog(min:0,max:unbounded):Dialogspecification,calledfromSequenceDialogRef(min:0,max:unbounded):ReferencetoaDialogspecification.EmbeddedUI(min:0,max:unbounded):EmbeddedUIdefinitionwithEmbeddedResourcechildren.Error(min:0,max:unbounded):ErrortextassociatedwithinstallerrorListBox(min:0,max:unbounded):ListBoxtablewithListItemchildrenListView(min:0,max:unbounded):ListViewtablewithListItemchildrenProgressText(min:0,max:unbounded):ActionTextentryassociatedwithanaction
Page 1642
Property(min:0,max:unbounded)PropertyRef(min:0,max:unbounded)Publish(min:0,max:unbounded)RadioButtonGroup(min:0,max:unbounded):RadioButtontablewithRadioButtonchildrenTextStyle(min:0,max:unbounded):TextStyleentryforuseincontroltextUIRef(min:0,max:unbounded)UIText(min:0,max:unbounded):valuesforUITextproperty,notinstallerPropertySequence(min:1,max:1)1. AdminUISequence(min:0,max:1)2. InstallUISequence(min:0,max:1)
Attributes
Name Type Description Required
Id String
SeeAlsoWixSchema,UIRef
Page 1643
UIRefElement
DescriptionReferencetoaUIelement.ThiswillforcetheentirereferencedFragment'scontentstobeincludedintheinstallerdatabase.
WindowsInstallerreferencesNone
ParentsFragment,Module,PatchFamily,Product,UI
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,UI
Page 1644
UITextElement
DescriptionTextassociatedwithcertaincontrols
WindowsInstallerreferencesUITextTable
ParentsUI
InnerText(xs:string)Elementvalueistext,mayuseCDATAifneededtoescapeXMLdelimiters
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
SeeAlsoWixSchema
Page 1645
UnpublishComponentsElement
DescriptionManagestheunadvertisementofcomponentslistedinthePublishComponenttable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesUnpublishComponentsAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1646
UnpublishFeaturesElement
DescriptionRemovesselection-stateandfeature-componentmappinginformationfromtheregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesUnpublishFeaturesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1647
UnregisterClassInfoElement
DescriptionManagestheremovalofCOMclassinformationfromthesystemregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesUnregisterClassInfoAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1648
UnregisterComPlusElement
DescriptionRemovesCOM+applicationsfromtheregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesUnregisterComPlusAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1649
UnregisterExtensionInfoElement
DescriptionManagestheremovalofextension-relatedinformationfromthesystemregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesUnregisterExtensionInfoAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1650
UnregisterFontsElement
DescriptionRemovesregistrationinformationaboutinstalledfontsfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesUnregisterFontsAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1651
UnregisterMIMEInfoElement
DescriptionUnregistersMIME-relatedregistryinformationfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesUnregisterMIMEInfoAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1652
UnregisterProgIdInfoElement
DescriptionManagestheunregistrationofOLEProgIdinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesUnregisterProgIdInfoAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1653
UnregisterTypeLibrariesElement
DescriptionUnregisterstypelibrariesfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesUnregisterTypeLibrariesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1654
UpdateElement
DescriptionDefinestheupdateforaBundle.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenNone
Attributes
Name Type Description
Location String TheabsolutepathorURLtocheckforanupdatebundle.CurrentlytheengineprovidesthisvalueintheIBootstrapperApplication::OnDetectUpdateBegin()andotherwiseignoresthevalue.Inthefuturetheenginewillbeabletoacquireanupdatebundlefromthelocationanddetermineifitisnewerthanthecurrentexecutingbundle.
SeeAlsoWixSchema
Page 1655
UpgradeElement
DescriptionUpgradeinfoforaparticularUpgradeCode
WindowsInstallerreferencesUpgradeTable
ParentsFragment,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Property(min:0,max:unbounded):NestingaPropertyelementunderanUpgradeelementhasbeendeprecated.PleasenestPropertyelementsinanyoftheothersupportedlocations.UpgradeVersion(min:0,max:unbounded)
Attributes
Name Type Description Required
Id Guid ThisvaluespecifiestheupgradecodefortheproductsthataretobedetectedbytheFindRelatedProductsaction.
Yes
SeeAlsoWixSchema
Page 1656
UpgradeFileElement
DescriptionSpecifiesfilestoeitherignoreortospecifyoptionaldataaboutafile.
WindowsInstallerreferencesNone
ParentsUpgradeImage
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
SymbolPath(min:0,max:unbounded)
Attributes
Name Type Description Required
AllowIgnoreOnError YesNoType Specifieswhetherpatchingthisfileisvital.
File String ForeignkeyintotheFiletable.
Yes
Ignore YesNoType Ifyes,thefileisignoredduringpatching,andthenexttwoattributesareignored.
Yes
WholeFile YesNoType Whetherthewholefileshouldbeinstalled,ratherthancreatingabinary
Page 1657
patch.
SeeAlsoWixSchema
Page 1658
UpgradeImageElement
DescriptionContainsinformationabouttheupgradedimagesoftheproduct.
WindowsInstallerreferencesNone
ParentsFamily
InnerTextNone
ChildrenSequence(min:1,max:1)1. TargetImage(min:1,max:unbounded)2. Choiceofelements(min:0,max:unbounded)
SymbolPath(min:0,max:unbounded)UpgradeFile(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifiertoconnecttargetimageswithupgradedimage.
Yes
SourceFile String Fullpathtolocationofmsifileforupgradedimage.
SourcePatch String Modifiedcopyoftheupgradedinstallationdatabasethatcontainsadditionalauthoringspecifictopatching.
src String Thisattributehasbeendeprecated;pleaseusetheSourceFileattributeinstead.
Page 1659
srcPatch String Thisattributehasbeendeprecated;pleaseusetheSourcePatchattributeinstead.
SeeAlsoWixSchema
Page 1660
UpgradeVersionElement
DescriptionNone
WindowsInstallerreferencesUpgradeTable
ParentsUpgrade
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
ExcludeLanguages YesNoType Setto"yes"todetectalllanguages,excludingthelanguageslistedintheLanguageattribute.
IgnoreRemoveFailure YesNoType Setto"yes"tocontinueinstallationuponfailuretoremoveaproductorapplication.
IncludeMaximum YesNoType Setto"yes"tomaketherangeofversionsdetectedincludethevaluespecifiedinMaximum.
IncludeMinimum YesNoType Setto"no"tomaketherangeofversionsdetectedexcludethe
Page 1661
valuespecifiedinMinimum.Thisattributeis"yes"bydefault.
Language String SpecifiesthesetoflanguagesdetectedbyFindRelatedProducts.Enteralistofnumericlanguageidentifiers(LANGID)separatedbycommas(,).Leavethisvaluenulltospecifyalllanguages.SetExcludeLanguagesto"yes"inorderdetectalllanguages,excludingthelanguageslistedinthisvalue.
Maximum String SpecifiestheupperboundaryoftherangeofproductversionsdetectedbyFindRelatedProducts.
MigrateFeatures YesNoType Setto"yes"tomigratefeaturestatesfromupgradedproductsbyenablingthelogicintheMigrateFeatureStatesaction.
Minimum String SpecifiesthelowerboundontherangeofproductversionstobedetectedbyFindRelatedProducts.
OnlyDetect YesNoType Setto"yes"todetectproductsandapplicationsbutdonot
Page 1662
uninstall.
Property String WhentheFindRelatedProductsactiondetectsarelatedproductinstalledonthesystem,itappendstheproductcodetothepropertyspecifiedinthisfield.WindowsInstallerdocumentationfortheUpgradetablestatesthatthepropertyspecifiedinthisfieldmustbeapublicpropertyandmustbeaddedtotheSecureCustomPropertiesproperty.WiXautomaticallyappendsthepropertyspecifiedinthisfieldtotheSecureCustomPropertiespropertywhencreatinganMSI.EachUpgradeVersionmusthaveauniquePropertyvalue.AftertheFindRelatedProductsactionisrun,thevalueofthispropertyisalistofproductcodes,separatedbysemicolons(;),detectedonthesystem.
Yes
RemoveFeatures String TheinstallersetstheREMOVEpropertytofeaturesspecifiedinthiscolumn.Thefeaturestoberemovedcanbe
Page 1663
determinedatruntime.TheFormattedstringenteredinthisfieldmustevaluatetoacomma-delimitedlistoffeaturenames.Forexample:[Feature1],[Feature2],[Feature3].Nofeaturesareremovedifthefieldcontainsformattedtextthatevaluatestoanemptystring.TheinstallersetsREMOVE=ALLonlyiftheRemovefieldisempty.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema
Page 1664
UXElement
DescriptionThiselementhasbeendeprecated;pleaseusetheBootstrapperApplicationelementinstead.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)
Attributes
Name Type Description Required
Name String SeetheBootstrapperApplicationinstead.
SourceFile String SeetheBootstrapperApplicationinstead.
SplashScreenSourceFile String SeetheBootstrapperApplicationinstead.
SeeAlsoWixSchema
Page 1665
ValidateElement
DescriptionSetsinformationinthepatchtransformthatdeterminesifthetransformappliestoaninstalledproductandwhaterrorsshouldbeignoredwhenapplyingthepatchtransform.
WindowsInstallerreferencesNone
ParentsPatchBaseline
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
IgnoreAddExistingRow YesNoType Ignoreerrorswhenaddingexistingrows.Thedefaultis'yes'.
IgnoreAddExistingTable YesNoType Ignoreerrorswhenaddingexistingtables.Thedefaultis'yes'.
IgnoreChangingCodePage YesNoType Ignoreerrorswhenchangingthedatabasecodepage.Thedefaultis'no'.
IgnoreDeleteMissingRow YesNoType Ignoreerrorswhen
Page 1666
deletingmissingrows.Thedefaultis'yes'.
IgnoreDeleteMissingTable YesNoType Ignoreerrorswhendeletingmissingtables.Thedefaultis'yes'.
IgnoreUpdateMissingRow YesNoType Ignoreerrorswhenupdatingmissingrows.Thedefaultis'yes'.
ProductId YesNoType RequiresthattheinstalledProductCodematchthetargetProductCodeusedtocreatethetransform.Thedefaultis'yes'.
ProductLanguage YesNoType RequiresthattheinstalledProductLanguagematchthetargetProductLanguageusedtocreatethetransform.Thedefaultis'no'.
ProductVersion Enumeration DetermineshowmanyfieldsoftheinstalledProductVersiontocompare.Seeremarksformoreinformation.Thedefaultis'Update'.Thisattribute's
Page 1667
valuemustbeoneofthefollowing:Major
Checksthemajorversion.
MinorChecksthemajorandminorversions.
UpdateChecksthemajor,minor,andupdateversions.
ProductVersionOperator Enumeration DetermineshowtheinstalledProductVersioniscomparedtothetargetProductVersionusedtocreatethetransform.Seeremarksformoreinformation.Thedefaultis'Equal'.Thisattribute'svaluemustbeoneofthefollowing:Lesser
InstalledProductVersion<targetProductVersion.
LesserOrEqualInstalledProductVersion
Page 1668
<=targetProductVersion.
EqualInstalledProductVersion=targetProductVersion.
GreaterOrEqualInstalledProductVersion>=targetProductVersion.
GreaterInstalledProductVersion>targetProductVersion.
UpgradeCode YesNoType RequiresthattheinstalledUpgradeCodematchthetargetUpgradeCodeusedtocreatethetransform.Thedefaultis'yes'.
Remarks
Atransformcontainsthedifferencesbetweenthetargetproductandtheupgradedproduct.Whenatransformorapatch(whichcontainstransforms)isapplied,thefollowingpropertiesoftheinstalledproductarevalidatedagainstthepropertiesofthetargetproductstoredinatransform.
ProductCodeProductLanguageProductVersion
Page 1669
UpgradeCode
WindowsInstallersimplyvalidatesthattheProductCode,ProductLanguage,andUpgradeCodeofaninstalledproductareequivalenttothosepropetiesofthetargetproductusedtocreatethetransform;however,theProductVersioncanbevalidatedwithagreaterrangeofcomparisons.
YoucancompareuptothefirstthreefieldsoftheProductVersion.Changestothefourthfieldarenotvalidatedandareusefulforsmallupdates.YoucanalsochoosehowtocomparethetargetProductVersionusedtocreatethetransformwiththeinstalledProductVersion.Forexample,whilethedefaultvalueof'Equals'isrecommended,ifyouwantedaminorupgradepatchtoapplytothetargetProductVersionandallolderproductswiththesameProductCode,youwoulduse'LesserOrEqual'.
SeeAlsoWixSchema
Page 1670
ValidateProductIDElement
DescriptionSetstheProductIDpropertytothefullproductidentifier.ThisactionmustbesequencedbeforetheuserinterfacewizardintheInstallUISequencetableandbeforetheRegisterUseractionintheInstallExecuteSequencetable.Iftheproductidentifierhasalreadybeenvalidatedsuccessfully,theValidateProductIDactiondoesnothing.TheValidateProductIDactionalwaysreturnsasuccess,whetherornottheproductidentifierisvalid,sothattheproductidentifiercanbeenteredonthecommandlinethefirsttimetheproductisrun.TheproductidentifiercanbevalidatedwithouthavingtheuserreenterthisinformationbysettingthePIDKEYpropertyonthecommandlineorbyusingatransform.ThedisplayofthedialogboxrequestingtheusertoentertheproductidentifiercanthenbemadeconditionaluponthepresenceoftheProductIDproperty,whichissetwhenthePIDKEYpropertyisvalidated.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesValidateProductIDAction
ParentsInstallExecuteSequence,InstallUISequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Page 1671
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1672
VariableElement
DescriptionDescribesaburnenginevariabletodefine.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenNone
Attributes
Name Type Description
Hidden YesNoType Whetherthevalueofthevariableshouldbehidden.
Name String Thenameforthevariable.
Persisted YesNoType Whetherthevariableshouldbepersisted.
Type Enumeration Typeofthevariable,inferredfromthevalueifnotspecified.Thisattribute'svaluemustbeoneofthefollowing:string
numeric
version
Value String Startingvalueforthevariable.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointin
Page 1673
theschema.
Overridable YesNoType Whensetto"yes",letstheuseroverridethevariable'sdefaultvaluebyspecifyinganothervalueonthecommandline,intheformVariable=Value.Otherwise,WixStdBAwon'toverwritethedefaultvalueandwilllog"Ignoringattempttosetnon-overridablevariable:'BAR'."(http://schemas.microsoft.com/wix/BalExtension)
SeeAlsoWixSchema
Page 1674
VerbElement
DescriptionVerbdefinitionforanExtension.Whenadvertised,thiselementcreatesarowintheVerbtable.Whennotadvertised,thiselementcreatestheappropriaterowsinRegistrytable.
WindowsInstallerreferencesVerbTable,RegistryTable
ParentsExtension
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Theverbforthecommand. Yes
Argument String Valueforthecommandarguments.NotethattheresolutionofpropertiesintheArgumentfieldislimited.Apropertyformattedas[Property]inthisfieldcanonlyberesolvedifthepropertyalreadyhastheintendedvaluewhenthecomponentowningtheverbisinstalled.Forexample,fortheargument"[#MyDoc.doc]"toresolvetothecorrectvalue,thesameprocessmustbeinstallingthe
Page 1675
fileMyDoc.docandthecomponentthatownstheverb.
Command String Thelocalizedtextdisplayedonthecontextmenu.
Sequence Integer Thesequenceofthecommands.OnlyverbsforwhichtheSequenceisspecifiedareusedtoprepareanorderedlistforthedefaultvalueoftheshellkey.TheVerbwiththelowestvalueinthiscolumnbecomesthedefaultverb.UsedonlyforAdvertisedverbs.
Target String Thisattributehasbeendeprecated;pleaseusetheTargetFileattributeinstead.
TargetFile String EitherthisattributeortheTargetPropertyattributemustbespecifiedforanon-advertisedverb.Thevalueshouldbetheidentifierofthetargetfiletobeexecutedfortheverb.
TargetProperty String EitherthisattributeortheTargetFileattributemustbespecifiedforanon-advertisedverb.Thevalueshouldbetheidentifierofthepropertywhichwillresolvetothepathtothetargetfiletobeexecutedfortheverb.
SeeAlsoWixSchema
Page 1676
WixElement
DescriptionThisisthetop-levelcontainerelementforeverywxsfile.Amongthepossiblechildren,theBundle,Product,Module,Patch,andPatchCreationelementsareanalogoustothemainfunctioninaCprogram.Therecanonlybeoneofthesepresentwhenlinkingoccurs.Productcompilesintoanmsifile,Modulecompilesintoanmsmfile,PatchCreationcompilesintoapcpfile.TheFragmentelementisanatomicunitwhichultimatelylinksintoeitheraProduct,Module,orPatchCreation.TheFragmentcaneitherbecompletelyincludedorexcludedduringlinking.
WindowsInstallerreferencesNone
ParentsNone
InnerTextNone
ChildrenChoiceofelements(min:0,max:1)
PatchCreation(min:0,max:1)Sequence(min:1,max:1)1. Choiceofelements(min:0,max:1)
Bundle(min:0,max:1)Module(min:0,max:1)Patch(min:0,max:1)Product(min:0,max:1)
2. Fragment(min:0,max:unbounded)
Attributes
Name Type Description
Page 1677
RequiredVersion VersionType RequiredversionoftheWiXtoolsettocompilethisinputfile.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
RequiredVersion String Theversionofthisextensionrequiredtocompilethedefiningsource.(http://schemas.microsoft.com/wix/PSExtension)
SeeAlsoWixSchema
Page 1678
WixVariableElement
DescriptionThiselementexposesadvancedWiXfunctionality.UsethiselementtodeclareWiXvariablesfromdirectlywithinyourauthoring.WiXvariablesarenotresolveduntilthefinalmsi/msm/pcpfileisactuallygenerated.WiXvariablesdonotpersistintothemsi/msm/pcpfile,sotheycannotbeusedwhenanMSIfileisbeinginstalled;it'saWiX-onlyconcept.
WindowsInstallerreferencesNone
ParentsBundle,Fragment,Module,Product
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Thenameofthevariable. Yes
Overridable YesNoType Setthisvalueto'yes'inordertomakethevariable'svalueoverridableeitherbyanotherWixVariableentryorviathecommand-lineoption-d<name>=<value>forlight.exe.Ifthesamevariableisdeclaredoverridableinmultipleplacesitwillcauseanerror(sinceWiXwon'tknowwhichvalueiscorrect).
Page 1679
Thedefaultvalueis'no'.
Value String Thevalueofthevariable.Thevaluecannotbeanemptystringbecausethatwouldmakeitpossibletoaccidentallysetacolumntonull.
Yes
SeeAlsoWixSchema
Page 1680
WriteEnvironmentStringsElement
DescriptionModifiesthevaluesofenvironmentvariables.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesWriteEnvironmentStringsAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1681
WriteIniValuesElement
DescriptionWritesthe.inifileinformationthattheapplicationneedswrittentoits.inifiles.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesWriteIniValuesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1682
WriteRegistryValuesElement
DescriptionSetsupanapplication'sregistryinformation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesWriteRegistryValuesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Page 1683
LocalizationYesNoType(SimpleType)
DescriptionNone
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoWixlocSchema
Page 1684
StringElement(WixlocExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsWixLocalization
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Id String Identityoftheresource.
Yes
Localizable LocalizationYesNoType Indicateswhetherthestringislocalizabletextoranon-localizablestringthatmustbeuniqueperlocale.NoWiXtoolsareaffectedbythevalueofthisattribute;itusedasdocumentationforlocalizerstoignorethingslikeGUIDsor
Page 1685
identifiersthatlookliketext.
Overridable LocalizationYesNoType Determinesifthelocalizedstringmaybeoverridden.
HowTosandExamplesHowTo:BuildalocalizedversionofyourinstallerHowTo:Makeyourinstallerlocalizable
SeeAlsoWixlocSchema
Page 1686
UIElement(WixlocExtension)
DescriptionAllowsalocalizationtooverridetheposition,size,andtextofdialogsandcontrols.OverridethetextbyspecifyingthereplacementtextintheinnertextoftheUIelement.
WindowsInstallerreferencesNone
ParentsWixLocalization
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Control String CombinedwiththeDialogattribute,identifiesthecontroltolocalize.
Dialog String Identifiesthedialogtolocalizeorthedialogthatacontroltolocalizeisin.
Height Integer Foradialog,overridestheauthoredheight
Page 1687
indialogunits.Foracontrol,overridestheauthoredheightoftherectangularboundaryofthecontrol.Thismustbeanon-negativenumber.
LeftScroll LocalizationYesNoType Setthisattributeto"yes"tocausethescrollbartodisplayontheleftsideoftheControl.Notvalidforadialog.
RightAligned LocalizationYesNoType Setthisattributeto"yes"tocausetheControltoberightaligned.Notvalidforadialog.
RightToLeft LocalizationYesNoType Setthisattributeto"yes"tocausetheControltodisplayfromrighttoleft.Notvalidforadialog.
Width Integer Foradialog,overridestheauthoredwidthindialogunits.Foracontrol,overridestheauthoredwidth
Page 1688
oftherectangularboundaryofthecontrol.Thismustbeanon-negativenumber.
X Integer Foradialog,overridestheauthoredhorizontalcentering.Foracontrol,overridestheauthoredhorizontalcoordinateoftheupper-leftcorneroftherectangularboundary.Thismustbeanon-negativenumber.
Y Integer Foradialog,overridestheauthoredverticalcentering.Foracontrol,overridestheauthoredverticalcoordinateoftheupper-leftcorneroftherectangularboundaryofthecontrol.Thismustbeanon-
Page 1689
negativenumber.
SeeAlsoWixlocSchema
Page 1690
WixLocalizationElement(WixlocExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsNone
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
String(min:0,max:unbounded)UI(min:0,max:unbounded)
Attributes
Name Type Description Required
Codepage String Thecodepageintegervalueorwebnamefortheresultingdatabase.Youcanalsospecify-1whichwillnotresetthedatabasecodepage.Seeremarksformoreinformation.
Culture String Cultureofthelocalizationstrings.
Language Integer ThedecimallanguageID(LCID)fortheculture.
Remarks
Page 1691
YoucanspecifyanyvalidWindowscodepagebyintegerlike1252,orbywebnamelikeWindows-1252oriso-8859-1.SeeCodePagesformoreinformation.
HowTosandExamplesHowTo:BuildalocalizedversionofyourinstallerHowTo:Makeyourinstallerlocalizable
SeeAlsoWixlocSchema
Page 1692
DevelopingforVotiveIfyouwanttocontributecodetotheVotiveprojectordebugVotive,youmustdownloadandinstalltheVisualStudio2010SDK,availableattheVisualStudioExtensibilityDeveloperCenter.TheVisualStudio2010SDKisnon-invasiveandwillcreateanexperimentalhiveintheregistrythatwillleaveyourretailversionofVisualStudio2010unaffected.
TostartdebuggingVotive,setyourbreakpointsthenpressF5intheWix.slnforVisualStudio.ThecustombuildactionsintheVotiveprojectwillsetupandregisterVotiveintheexperimentalhive,sorunningWix39.exeisnotrequired,norsuggested.
Page 1693
AddingtotheWiXDocumentationWiXdocumentationiscompiledintothefileWiX.chmasapartoftheWiXbuildprocess.Thesourcefilesforhelparelocatedinthewix\src\chmdirectory.Thedocumentationiswritteninmarkdown.
Page 1694
WhattheWiXhelpcompilerdoesTheWiXhelpcompilerdoesthefollowing:
Parses.xsdschemafilesreferencedinchm.helpprojandgenerateshelptopicsfortheattributesandelementsthatareannotatedinthe.xsdfiles.
CompilesallofthemarkdownfilescontainedinthedocumentsdirectoryintoHTMLstrippingthefinalfileextension(.md).
Eachmarkdowndocumentconsistsofametadataheaderfollowedbythecontentofthetopicpage.
SortstheHTMLfilesaccordingtotheaftermetadataandincludesalltheHTMLandcontentfilesprocessedinthelistofdocumentationtobuildintotheCHM.
Page 1695
HowtoaddanewtopictoWiX.chmAddinganewtopictoWiX.chmrequiresthefollowingsteps:
1. AddanewmarkdowndocumentwiththecontentsofthenewtopictotheWiXsourcetreeundersrc\chm\documents.
2. Addanyrelevantimagestothesrc\chm\files\sub-directoryintheWiXsourcetree.Whenformingpathstointernalcontent,thecontentsofthedocumentsandfilesdirectoriesaremergedintothe~/directory.
3. Addthemetadataatthetopofyourtopicdocument.Setthetitlemetadatatothenameofthetopic.Setthelayoutmetadatatothedocumentationlayouttype,andoptionallysettheaftermetadatatothebasename(withoutthe.html[.md]extension)ofthetopicthispagewillfollow.
Anexampleofthemetadataheader(includesthetriple-dashdelimitinglines):
---title:AddingtotheWiXDocumentationlayout:documentationafter:votive_development---
HelptopicsmaycontainlinkstoexternalWebpages,andmayalsocontainrelativelinkstootherhelptopicsorattributesorelementsdefinedinoneofthe.xsdschemafiles.
Tobuildthenewcontenttypemsbuildfromthecommandlineinthesrc\chmdirectory.Itisnotnecessarytobuildtheentiretoolsettobuildthedocumentation,butyoumustfirstbuildthetools\srcdirectory(onceusingthesamebuildcommand)beforebuildingthechm.
Page 1696
IntroductiontoDevelopingWiXExtensions
CommonRequirementsInordertounderstandhoweachoftheclassesofextensionswork,oneshouldstartbylookingattheWiXsourcecode.Allextensionshavethefollowingthingsincommon:
Implementedusingthe.NETFramework2.0.TherestoftheWiXtoolsetcurrentlyonlydependsonthe.NETFramework2.0,soinordertoensurebackwardscompatibility,itisabestpracticetodevelopnewextensionssothattheyonlydependonthe.NETFramework2.0aswell.Buildasubclassoftheappropriateextensionobject,whichgivesitaneasilydistinguishablename.Buildaschemaoftheappropriatesyntaxtoprovidevalidationcheckingwherepossible.Buildinternaltabledefinitionsandregisterthemwiththecompiler.Buildoverridesforextensiblemethodsandvirtualmemberswhichwillgetinvokedattheapproriatelocationduringthesinglepasscompile.CompiledintoaDLL.PlacednexttoWiXEXEsalongwithallotherWiXextensionDLLs.RegisteredwithWiXbypassingthepathoftheexensionDLLasacommandlineargumenttothecompilerand/orlinker.
Page 1697
ConsiderationsBeforeinvestinginanextension,oneshouldevaluatewhetheranexternaltoolandthe?include?syntax(fromthepreprocessor)willprovidetheneededflexibilityforyourtechnicalneeds.
Multipleextensionsandextensiontypesaresupported,butthereisnoguaranteeoftheorderinwhichaparticularclassofextensionswillbeprocessed.Asaresult,theremustnotbeanysequencingdependenciesbetweenextensionswithinthesameextensionclass.
ExtensiondevelopersmightalsoimplementaRequiredVersionattributeontheWixelement.Thisallowssetupdevelopersusingyourextensiontorequireaspecificversionoftheextensionincaseanewfeatureisintroducedorabreakingchangeismade.YoucanaddanattributetotheWixelementinanextensionasshowninthefollowingexample.
<xs:schemaxmlns:xs="http://www.w3.org/2001/XMLSchema"xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"><xs:attributename="RequiredVersion"type="xs:string"><xs:annotation><xs:documentation>Theversionofthisextensionrequiredtocompilethedefiningsource.</xs:documentation><xs:appinfo><xse:parentnamespace="http://schemas.microsoft.com/wix/2006/wi"ref="Wix"/></xs:appinfo></xs:annotation></xs:attribute></xs:schema>
Page 1698
ExtensionsWiXsupportsthefollowingclassesofextensions:
BinderExtensionsallowclientstomodifythebehavioroftheBinder.BinderFileManagerExtensionsallowclientstosimplymodifythefilesourceresolutionandfiledifferencingfeaturesoftheBinder.CompilerExtensionsallowclientstocustomcompileauthoredXMLintointernaltablerepresentationbeforeitiswrittentobinaryform.DecompilerExtensionsallowclientstodecompilecustomtablesintoXML.HarvesterExtensionsallowclientstomodifythebehavioroftheHarvester.InspectorExtensionsallowclientstoinspectsource,intermediate,andoutputdocumentsatvarioustimesduringthebuildtovalidatebusinessrulesasearlyaspossible.MutatorExtensionsallowclientstomodifythebehavioroftheMutator.PreprocessorExtensionsallowclientstomodifyauthoringfilesbeforetheyareprocessedbythecompiler.UnbinderExtensionsallowclientstomodifythebehavioroftheUnbinder.ValidatorExtensionsallowclientstoprocessICEvalidationmessages.Bydefault,ICEvalidationmessagesareoutputtotheconsole.WixBinderExtensionsallowclientstocompletelychangetheBinderto,forexample,createdifferentoutputformatsfromWiXauthoring.
ForinformationonhowtouseWiXextensionsonthecommandlineorinsidetheVisualStudioIDE,pleasevisittheUsingWiXextensionstopic.
ForinformationonhowtouselocalizedWiXextensions,pleasevisittheLocalizedextensionstopic.
Page 1699
CreatingaSkeletonWiXExtensionWiXextensionsareusedtoextendandcustomizewhatWiXbuildsandhowitbuildsit.
ThefirststepincreatingaWiXextensionistocreateaclassthatextendstheWixExtensionclass.Thisclasswillbethecontainerforalltheextensionsyouplanonimplementing.Thiscanbedonebyusingthefollowingsteps:
1. InVisualStudio,createanewC#library(.dll)projectnamedSampleWixExtension.
2. Addareferencetowix.dlltoyourproject.
3. AddausingstatementthatreferstotheMicrosoft.Tools.WindowsInstallerXmlnamespace.
usingMicrosoft.Tools.WindowsInstallerXml;
4. MakeyourSampleWixExtensionclassinheritfromWixExtension.
publicclassSampleWixExtension:WixExtension{}
5. AddtheAssemblyDefaultWixExtensionAttributetoyourAssemblyInfo.cs.
[assembly:AssemblyDefaultWixExtension(typeof(SampleWixExtension.SampleWixExtension))]
6. Buildtheproject.
AlthoughthisWiXextensionwillnotdoanythingyet,youcannowpassthenewlybuiltSampleWixExtension.dllonthecommandlinetotheCandleandLightbyusingthe-extflaglikethefollowing:
candle.exeProduct.wxs-extSampleWixExtension.dlllight.exeProduct.wxs-extSampleWixExtension.dll
Thiscoversthebasicsofcreatingtheskeletonofanextension.Youcan
Page 1700
nowusethisskeletoncodetobuildyourowncustomaction.Afteryouaredone,youcanauthorthecustomactionintheWiXsourcecodebyfollowingtheAddingaCustomActiontopic.YoucanalsobuildyourownextensionstotheWiXtoolsetusingthisskeletoncode.Foranexampleofbuildinganextension,seeCreatingaPreprocessorExtension.
Page 1701
CreatingaPreprocessorExtensionThepreprocessorinWiXallowsextensibiltyatafewlevels.ThissamplewilldemonstratehowtoaddaPreprocessorExtensiontoyourWixExtensionthatwillhandlevariablesandfunctionsyoudefineinyourownnamespace.
ThissampleassumesyouhavealreadyreviewedtheCreatingaSkeletonExtensiontopic.
1. AddanewclasstoyourprojectcalledSamplePreprocessorExtension.
2. Ifyouaddedanewfileforthisclass,addausingstatementthatreferstotheMicrosoft.Tools.WindowsInstallerXmlnamespace.
usingMicrosoft.Tools.WindowsInstallerXml;
3. MakeyourSamplePreprocessorExtensionclassimplementPreprocessorExtension.
publicclassSamplePreprocessorExtension:PreprocessorExtension
4. AddyourSamplePreprocessorExtensiontoyourpreviouslycreatedSampleWixExtensionclassandoverridethePreprocessorExtensionpropertyfromthebaseclass.ThiswillcauseyourextensiontoknowwhattodowhenWiXasksyourextensionforitspreprocessorextension.
privateSamplePreprocessorExtensionpreprocessorExtension;
publicoverridePreprocessorExtensionPreprocessorExtension{get{if(this.preprocessorExtension==null){this.preprocessorExtension=newSamplePreprocessorExtension();
Page 1702
}returnthis.preprocessorExtension;
}}
5. InyourSamplePreprocessorExtensionclass,specifytheprefixesornamespacesthatyourextensionwillhandle.Forexample,ifyouwanttobeabletodefineavariablenamed$(sample.ReplaceMe),thenyouneedtospecifythatyourextensionwillhandlethe"sample"prefix.
privatestaticstring[]prefixes={"sample"};publicoverridestring[]Prefixes{get{returnprefixes;}}
6. Nowthatyouhavespecifiedtheprefixesthatyourextensionwillhandle,youneedtohandlevariablesandfunctionsthatarepassedtoyoufromWiX.YoudothisbyoverridingtheGetVariableandEvaluateFunctionmethodsfromthePreprocessorExtensionbaseclass.
publicoverridestringGetVariableValue(stringprefix,stringname){stringresult=null;//Basedonthenamespaceandname,definetheresultingstring.switch(prefix){case"sample":switch(name){case"ReplaceMe"://Thiscouldbelookedupfromanywhereyoucanaccessfromyourcode.result="replaced";break;}break;}returnresult;
Page 1703
}
publicoverridestringEvaluateFunction(stringprefix,stringfunction,string[]args){stringresult=null;switch(prefix){case"sample":switch(function){case"ToUpper":if(0<args.Length){result=args[0].ToUpper();}else{result=String.Empty;}break;}break;}returnresult;}
7. Buildtheproject.
YoucannowpassyourextensiononthecommandlinetoCandleandexpectvariablesandfunctionsinyournamespacetobepassedtoyourextensionandbeevaluated.Todemonstratethis,tryaddingthefollowingpropertiestoyourWiXsourcefile:
<PropertyId="VARIABLETEST"Value="$(sample.ReplaceMe)"/><PropertyId="FUNCTIONTEST"Value="$(sample.ToUpper(uppercase))"/>
Theresulting.msifilewillhaveentriesinthePropertytablewiththevalues"replaced"and"UPPERCASE"inthePropertytable.
Page 1704
AddingaCustomActionThisexampleshowshowtoauthorabinarycustomactioncalled"FooAction".Acommonexampleisadllcustomactionthatlaunchesnotepad.exeorsomeotherapplicationaspartoftheirinstall.Beforeyoustart,youwillneedasampledllthathasanentrypointcalled"FooEntryPoint".ThissampleassumesyouhavealreadyreviewedtheCreatingaSkeletonExtensiontopic.
Page 1705
Step1:CreateaFragmentYoucoulddirectlyreferencethecustomactioninthesamesourcefileastheproductdefinition.However,thatwillnotenablethesamecustomactiontobeusedelsewhere.Soratherthanputtingthecustomactiondefinitioninthesamesourcefile,let'sexercisealittlemodularityandcreateanewsourcefiletodefinethecustomactioncalled"ca.wxs".
<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'><Fragment><CustomActionId='FooAction'BinaryKey='FooBinary'DllEntry='FooEntryPoint'Execute='immediate'Return='check'/>
<BinaryId='FooBinary'SourceFile='foo.dll'/></Fragment></Wix>
Okay,that'sit.We'redonewitheditingthe"ca.wxs"sourcefile.Thatlittlebitofcodeshouldcompilebutitwillnotlink.Rememberlinkingrequiresthatyouhaveanentrysection.A<Fragment/>aloneisnotanentrysection.Gotothenextsteptolinkthesourcefile.
Page 1706
Step2:AddthecustomactionWewouldneedtolinkthissourcefilealongwithasourcefilethatcontained<Product/>or<Module/>tosuccessfullycomplete.
<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'><ProductId='PUT-GUID-HERE'Name='TestPackage'Language='1033'Version='1.0.0.0'Manufacturer='.NETFoundation'><PackageDescription='MyfirstWindowsInstallerpackage'Comments='ThisismyfirstattemptatcreatingaWindowsInstallerdatabase'Manufacturer='.NETFoundation'InstallerVersion='200'Compressed='yes'/>
<MediaId='1'Cabinet='product.cab'EmbedCab='yes'/>
<DirectoryId='TARGETDIR'Name='SourceDir'><DirectoryId='ProgramFilesFolder'Name='PFiles'><DirectoryId='MyDir'Name='TestProgram'><ComponentId='MyComponent'Guid='PUT-GUID-HERE'><FileId='readme'Name='readme.txt'DiskId='1'Source='readme.txt'/></Component>
<MergeId='MyModule'Language='1033'SourceFile='module.msm'DiskId='1'/></Directory></Directory></Directory>
<FeatureId='MyFeature'Title='My1stFeature'Level='1'><ComponentRefId='MyComponent'/><MergeRefId='MyModule'/></Feature>
<InstallExecuteSequence><CustomAction='FooAction'After='InstallFiles'/></InstallExecuteSequence></Product>
Page 1707
</Wix>
ThosethreelinesareallyouneedtoaddtoyourWindowsInstallerpackagesourcefiletocallthe"FooAction"CustomAction.Nowthatwehavetwofilestolinktogetherourcalltolight.exegetsalittlemorecomplicated.Herearethecompile,link,andinstallationsteps.
C:\test>candleproduct.wxsca.wxs
C:\test>lightproduct.wixobjca.wixobj–outproduct.msi
C:\test>msiexec/iproduct.msi
Nowaspartofyourinstallation,whatever"FooAction"issupposedtoperform,youshouldseehappenaftertheInstallFilesaction.
Page 1708
LocalizingExtensionsYoucancreateyourownlocalizedextensionslikeWixUIExtensionusinglit.exe.Localizedextensionscanevencontainmultiplelanguages.Productsusingtheseextensionscanpassthe-culturesswitchtolight.exealongwiththe-extswitchtoreferencetheextension.
WiXextensionscontainlibrariescomprisedoffragments.Thesefragmentsmaycontainproperties,searchproperties,dialogs,andmore.Justlikewhenlocalizingproducts,replaceanylocalizablefieldswithvariablesintheformat!(loc.variableName).Productwouldbeauthoredtoreferenceelementsinthislibrary,andwhencompiledwouldthemselvescontainthelocalizationvariables.Thefollowingshowsanexampleonhowtolocalizeanextension
Page 1709
Step1:AuthoraWiXFragmentCreatea.wxsfilenamedexample.wxsandaddthefollowingcontent:
<?xmlversion="1.0"encoding="utf-8"?><Fragment><ErrorId="50000">!(loc.errormsg)</Error></Fragment>
YouhavejustauthoredaFragmentthatwillbecompiledintoaWiXlibrary.Itcontainsanerrormessagethatreferencesalocalizedstring.
Page 1710
Step2:AuthortheLocalizationFileTheWiXlocalizationfiles,or.wxlfiles,areacollectionofstrings.Forlibraries,extensiondeveloperscanchoosewhetherornotthosestringscanbeoverwrittenby.wxlfilesspecifiedduringlinkageoftheproduct.Createa.wxlfilenameden-us.wxlandaddthefollowingcontent:
<?xmlversion="1.0"encoding="utf-8"?><WixLocalizationCulture="en-us"xmlns="http://schemas.microsoft.com/wix/2006/localization"><StringId="errormsg"Overridable="yes">GeneralFailure</String></WixLocalization>
TheseStringelementsareattributedas@Overridable="yes"toallowforproductdeveloperstooverridethesestringswiththeirownvaluesiftheysochoose.Forexample,aproductdevelopermaywishtouse"Previous"insteadof"Back",sotheycandefinethesameString/@Idintheirown.wxlwhilestilllinkingtotheextensionwherethatstringisused.Thisoffersproductdevelopersthebenefitsofthelibrarywhileallowingforcustomizations.Extensiondeveloperscanalsochoosetodisallowoverridingcertainstringsifitmakessensetodoso.
Page 1711
Step3:BuildthelibraryWhenboththefragmentauthoringandlocalizationfilearecomplete,theycanbecompiledandlinkedtogetherusingcandle.exeandlit.exe.
Firstcompilethe.wxssource.
candle.exeexample.wxs-outexample1.wixobj
Nowlinktogetherthe.wixobjfileandthe.wxlfileintheextensionlibrary.
lit.exeexample.wixobj-locen-us.wxl-outexample.wixlib
Youcanaddmorethanone.wxlfileforeachcultureyouwantavailable.Tobeuseful,the.wixlibshouldbeembeddedintoamanagedassemblyandreturnedbyWixExtension.GetLibrary().
Page 1712
UsingtheLibrariesProductdevelopersreferenceelementswithinyour.wixlib,asshownintheWixUIExtensionexample.Whencompilingandlinking,theextensionisspecifiedonthecommandlineusingthe-extswitch.Ifanyadditionallocalizationvariablesareusedintheproductauthoringorwouldoverridelocalizationvariablesinthelibrary,those.wxlfilesarepassedtothe-locswitchasshownintheexamplebelow.
candle.exeexample.wxs-extWixUIExtension-outexample.wixobjlight.exeexample.wixobj-extWixUIExtension-cultures:en-us-locen-us.wxl-outexample.msi
Page 1713
RunningWiXTestsThereisasuiteofteststhatareincludedwithWiX.Theycanbeusedtoverifythatchangestothetoolsetdonotregressexistingfunctionality.
Page 1714
BuildingtheTestsThetestswillbuildaspartofthenormalWiXbuild.TheyhaveadependencyonMicrosoft.VisualStudio.QualityTools.UnitTestFramework9.0.0.0assemblythatshipswiththefollowingeditionsofVisualStudio:
VisualStudio2008ProfessionalEditionVisualStudioTeamSystem2008DatabaseEditionVisualStudioTeamSystem2008DevelopmentEditionVisualStudioTeamSystem2008TeamSuiteVisualStudioTeamSystem2008TestEdition
Thebuildsystemsearchestheregistrytodetectifoneoftheabovementionededitionsisinstalledonthemachine.IfthedetectionkeycannotbefoundthenthetestswillnotbuildfromNantbuttheycanstillbebuiltbyMSBuildiftherequiredUnitTestFrameworkassemblyexists.%nbsp;Thetestsarebuiltintoanassemblycalledwixtests.dlltothesamelocationastheotherWiXbinaries.
BuildingthetestsusingNant
NantmustberunfromtheWiXrootdirectory.Tobuildonlythetests,specifythe'wixtests'target.
c:\delivery\dev\wix>nant.exewixtests
BuildingthetestsinVisualStudio
Openc:\delivery\dev\wix\test\wixtests.slnfromaWiXcommandwindow.ThesolutionshouldbuildfromwithinVisualStudio.
devenv.exec:\delivery\dev\wix\test\wixtests.sln
Page 1715
RunningthetestsThetestscanberunfromwithinVisualStudioorfromthecommandline.Beforethetestsarerun,theenvironmentvariable'WIX_ROOT'mustbesettotheWiXrootdirectory.ItshouldbesetifyouareinaWiXcommandwindow,butifitisnot:
setWIX_ROOT=c:\delivery\dev\wix
TheWIX_ROOTenvironmentvariablerequirementisusedinmanyteststolocatetestdata.
RunningthetestsfromthecommandlinewithMSTest.bat
Thereisabatchfile,test.bat,whichcanbeusedtorunthetests.
c:\delivery\dev\wix\test\test.bat[all|smoke|testname]
RunningthetestsfromthecommandlinewithMSTest.exe
RunMSTestwiththetestbinaries.
mstest.exec:\delivery\Dev\wix\build\debug\x86\wixtests.dll
RunningthetestsfromVisualStudio
Openwixtests.slnfromaWiXcommandwindow.
devenv.exec:\delivery\dev\wix\test\wixtests.sln
RunthetestsfromVisualStudioTestManager.
Page 1716
WritingWiXTestsThisdocumentdescribeshowtowritetestsforWiX.
Page 1717
LocationoftheTestsTherootdirectoryforthetestsis%WIX_ROOT%\test.Therearethreemainsubdirectories:
data:containstestdata,egwxsfilessrc:containssourcecodeforthetestsWixTestTools:containssourcecodefortheWixTestToolslibrary
Thedataandsrcdirectoriesarefurtherorganizedbyfeaturearea:
Examples:ExampletestsExtensions:TestsforWiXextensionsIntegration:Testsforintegrationoftwoormoretools.Eg.BuildinganMSIfromsourcewithCandleandLight.QTests:TestsmigratedfromtheprevioustestinfrastructureSharedData:TestdatathatissharedacrossmultipletestsTools:Testsforaparticulartool'scommandlineoptionsWixproj:Testsforbuilding.wixproj'swithMSBuild
Page 1719
WixTestsSolutionThetestsolutionfile,WixTests.sln,islocatedin%WIX_ROOT%\test\WixTests.sln.TheWixTestssolutioncurrentlycontainstwoprojects:
WixTests:ContainsallofthetestsWixTestsTools:Alibraryofwrapperclassesandverificationmethodsusedbythetests
ThesolutionshouldbeopenedfromtheWiXcommandwindowtoensurethatthe%WIX_ROOT%environmentvariableisset.
Page 1720
ExampleTests
Example:BuildandVerifyanMSI
ThefollowingexampleshowshowtotestbuildinganMSIfromWiXsource.
[TestMethod][Description("AnexampletestthatverifiesanMSIisbuiltcorrectly")][Priority(3)]publicvoidExampleTest1(){//UsetheBuildPackagemethodtobuildanMSIfromsourcestringactualMSI=Builder.BuildPackage(@"%WIX_ROOT%\test\data\SharedData\Authoring\BasicProduct.wxs");
//TheexpectedMSItocompareagainststringexpectedMSI=@"%WIX_ROOT%\test\data\SharedData\Baselines\MSIs\BasicProduct.msi";
//UsetheVerifyResultsmethodtocomparetheactualandexpectedMSIsVerifier.VerifyResults(expectedMSI,actualMSI);}
Example:CheckforaWarningandQueryanMSI
ThefollowingexampleshowshowtobuildanMSIusingtheCandleandLightwrapperclasses.ItalsodemonstrateshowtocheckforawarningfromLightandquerytheresulingMSI.
[TestMethod][Description("AnexampletestthatchecksforaLightwarningandqueriestheresultingMSI")][Priority(3)]publicvoidExampleTest2(){//CompileawxsfileCandlecandle=newCandle();candle.SourceFiles.Add(@"%WIX_ROOT%\test\data\Examples\ExampleTest2\product.wxs");
Page 1721
candle.Run();
//CreateaLightobjectthatusessomepropertiesoftheCandleobjectLightlight=newLight(candle);
//DefinetheLightwarningthatweexpecttoseeWixMessageLGHT1079=newWixMessage(1079,WixMessage.MessageTypeEnum.Warning);light.ExpectedWixMessages.Add(LGHT1079);
//Linklight.Run();
//QuerytheresultingMSIforverificationstringquery="SELECT`Value`FROM`Property`WHERE`Property`='Manufacturer'";Verifier.VerifyQuery(light.OutputFile,query,".NETFoundation");}
Example:ICEValidationwithSmoke
ThefollowingexampleshowshowtoverifythatSmokecatchesaparticularICEviolationandhowtousetheResultobjecttoperformfurtherverification.
[TestMethod][Description("AnexampletestthatverifiesanICEviolationiscaughtbysmoke")][Priority(3)]publicvoidExampleTest3(){stringtestDirectory=Environment.ExpandEnvironmentVariables(@"%WIX_ROOT%\test\data\Examples\ExampleTest3");
//BuildtheMSIthatwillberunagainstSmoke.Passthe-svalargumenttodelayvalidationuntilSmokeisrunstringmsi=Builder.BuildPackage(testDirectory,"product.wxs","product.msi",null,"-sval");
//CreateanewSmokeobjectSmokesmoke=newSmoke();smoke.DatabaseFiles.Add(msi);smoke.CubFiles.Add(@"%WIX_ROOT%\test\data\Examples\ExampleTest3\test.cub");
//DefinetheexpectedICEerror
Page 1722
WixMessageLGHT1076=newWixMessage(1076,"ICE1000:Component'ExtraICE.0.ProductComponent'installsintodirectory'TARGETDIR',whichwillgetinstalledintothevolumewiththemostfreespaceunlessexplicitlyset.",WixMessage.MessageTypeEnum.Warning);smoke.ExpectedWixMessages.Add(LGHT1076);
//RunSmokeandkeepareferencetotheResultobjectthatisreturnedbytheRun()methodResultresult=smoke.Run();
//UsetheResultobjecttoverifytheexitcode//Note:checkingforanexitcodeof0isdoneimplicitlyintheRun()methodbut//thisisjustfordemonstrationpurposes.Assert.AreEqual(0,result.ExitCode,"Actualexitcodedidnotmatchexpectedexitcode");}
Page 1723
ToolsandConceptsTheWiXtoolsetistightlycoupledwiththeWindowsInstallertechnology.InordertofullyutilizethefeaturesinWiX,youmustbefamiliarwiththeWindowsInstallerconcepts.ThissectionassumesyouhaveaworkingknowledgeoftheWindowsInstallerdatabaseformat.ForinformationonWindowsInstaller,seeUsefulWindowsInstallerInformation.
Page 1724
WiXFileTypesThereisasetoftoolsthatWiXofferstofulfilltheneedsofbuildingWindowsInstaller-basedpackages.Eachtooloutputsatypeoffilethatcanbeconsumedasinputsofanothertool.Afterprocessingthroughtheappropriatetools,thefinalinstallerisproduced.
TogetfamiliarwiththeWiXfiletypes,seeFileTypes.
Page 1725
WiXToolsOnceyouarefamiliarwiththefiletypes,seehowthefiletypesareproducedbywhatWiXtoolsbyvisitingListofTools.ForagraphicalviewoftheWiXtoolsandhowtheyinteractwitheachother,seeWiXToolsetDiagram.
Page 1726
WiXSchemaThecoreWiXschemaisaclosemirrorwiththeMSItables.ForhelpfulhintsonhowtheWiXschemamapstoMSItables,seeMSITablestoWiXSchema.
Page 1727
BuildingInstallationPackageBundlesInthissection,wewillcoverthebasicsofcreatingasimplesetupthatproducesabundleusingtheWiXtoolset.
Abundleisacollectionofinstallationpackagesthatarechainedtogetherinasingleuserexperience.Bundlesareoftenusedtoinstallprerequisites,suchasthe.NETFrameworkorVisualC++runtime,beforeanapplication's.MSIfile.Bundlesalsoallowverylargeapplicationsorsuitesofapplicationstobebrokenintosmaller,logicalinstallationpackageswhilestillpresentingasingleproducttotheend-user.
Tocreateaseamlesssetupexperienceacrossmultipleinstallationpackages,theWiXtoolsetprovidesanengine(oftenreferredtoasabootstrapperorchainer)namedBurn.TheBurnengineisanexecutablethathostsaDLLcalledthe"bootstrapperapplication".ThebootstrapperapplicationDLLisresponsiblefordisplayingUItotheend-useranddirectstheBurnenginewhentocarryoutdownload,install,repairanduninstallactions.MostdeveloperswillnotneedtointeractdirectlywiththeBurnenginebecausetheWiXtoolsetprovidesastandardbootstrapperapplicationandthelanguagenecessarytocreatebundles.
CreatingbundleswiththeWiXtoolsetisdirectlyanalogoustocreatingWindowsInstallerpackages(.MSIfiles)usingthelanguageandstandardUIextensionprovidedbytheWiXtoolset.
ThissectionwillgiveyouanoverviewoftheWiXbundlelanguageandhowtouseittocreateabundle.
CreatetheSkeletonBundleAuthoringAuthortheBootstrapperApplicationforaBundleAuthoraBundlePackageManifestBurnBuilt-InVariablesDefineSearchesUsingVariablesChainPackagesintoaBundleWorkingwithWiXStandardBootstrapperApplication
Page 1728
BuildingaBootstrapperApplication
Page 1729
WorkinginVisualStudioTheVisualStudioWiXtoolsetallowsyoutoeasilycreateWiXprojects,editWiXfilesusingIntelliSense,andcompile/linkyourprojectwithintheVisualStudioIDE.TheWiXVisualStudioplug-insupportsVS2005,VS2008,andVS2010.
ForWiXprojecttypes,seeWiXProjectTypes.
ForWiXitemtemplates,seeWiXItemtemplates.
FortheWiXpropertypages,seeWiXProjectpropertypages.
ForhintsonhowtoreadthedefaultWiXprojecttemplate,seeWiXProjectTemplate.
YoucancreateandbuildWindowsInstallerpackagesusingWiXwithintheVisualStudioIDE.Inthissection,wewillcoverthebasicsofcreatingasimplesetupusingVisualStudioandWiX.
CreatingasimplesetupUsingprojectreferencesandvariables
Alternatively,youmayalsouseWiXonthecommandlinebycallingthetoolsdirectlyorusingMSBuild.
Page 1730
WorkingwithMSBuildWiXincludesacompletebuildprocess(.targetsfile)forusewithMSBuild-basedbuildsystems.Formoreinformationseethefollowingtopics.
Creatinga.wixprojfileIntegratingWiXProjectsIntoDailyBuildsBuildingWiXProjectsInTeamFoundationBuildWiXMSBuildTaskReferenceWiXMSBuildTargetReference
Page 1731
HowToGuidesThissectionincludesHowTodocumentationforperformingcommonWiXtasks.
Page 1732
Files,ShortcutsandRegistryAddafiletoyourinstallerChecktheversionnumberofafileduringinstallationWritearegistryentryduringinstallationReadaregistryentryduringinstallationCreateashortcutontheStartMenuCreateashortcuttoawebpageCreateanuninstallshortcutNGenmanagedassembliesduringinstallationReferenceanotherDirectorySearchelementGettheparentdirectoryofafilesearch
Page 1733
RedistributablesandInstallChecksCheckfor.NETFrameworkversionsInstallthe.NETFrameworkusingabootstrapperInstallDirectX9.0withyourinstallerInstalltheVisualC++RedistributablewithyourinstallerBlockinstallationbasedonOSversion
Page 1734
UserInterfaceandLocalizationBuildalocalizedversionofyourinstallerMakeyourinstallerlocalizableRuntheinstalledapplicationaftersetupSetyourinstaller'siconinAdd/RemovePrograms
Page 1735
ProductUpdatesImplementamajorupgradeinyourinstaller
Page 1736
OthersGetalogofyourinstallationfordebuggingLookinsideyourMSIwithOrcaGenerateaGUIDUseWiXExtensionsOptimizebuildingcabinetfilesSpecifysourcefilelocations
Page 1737
StandardCustomActionsTheWiXtoolsetcontainsseveralcustomactionstohandleconfiguringresourcessuchasInternetInformationServiceswebsitesandvirtualdirectories,SQLServerdatabasesandscripts,useraccounts,fileshares,andmore.ThesecustomactionsareprovidedinWiXextensions.
Togetstartedusingstandardcustomactions,seetheUsingStandardCustomActionstopic.
Forinformationaboutspecifictypesofstandardcustomactions,seethefollowingtopics:
FileSharecustomaction(locatedinWixUtilExtension)-createandconfigurefileshares.Internetshortcutcustomaction(locatedinWixUtilExtension)-createshortcutsthatpointtoWebsites.OSInfocustomactions(locatedinWixUtilExtension)-setpropertiesforOSinformationandstandarddirectoriesthatarenotprovidedbydefaultbyWindowsInstaller.PerformanceCountercustomaction(locatedinWixUtilExtension)-installanduninstallperformancecounters.QuietExecutioncustomaction(locatedinWixUtilExtension)-launchconsoleexecutableswithoutdisplayingawindow.SecureObjectscustomaction(locatedinWixUtilExtension)-secure(usingACLs)objectsthattheLockPermissionstablecannot.ServiceConfigurationcustomaction(locatedinWixUtilExtension)-configureattributesofaWindowsservicethattheServiceInstalltablecannot.ShellExecutecustomaction(locatedinWixUtilExtension)-launchdocumentorURLtargetsviatheWindowsshell.Usercustomactions(locatedinWixUtilExtension)-createandconfigurenewusers.WixDirectXExtension-customactionthatcanbeusedtochecktheDirectXcapabilitiesofthevideocardonthesystem.WixExitEarlyWithSuccess(locatedinWixUtilExtension)-customactionthatcanbeusedtoexitsetupwithoutinstallingtheproduct.
Page 1738
Thiscanbeusefulinsomemajorupgradescenarios.WixFailWhenDeferred(locatedinWixUtilExtension)-customactionthatcanbeusedtosimulateinstallationfailurestotestrollbackscenarios.WixFirewallExtension-FirewallcustomactionthatcanbeusedtoaddexceptionstotheWindowsFirewall.WixGamingExtension-GamingcustomactionthatcanbeusedtoaddiconsandtaskstoWindowsGameExplorer.WixIIsExtension-InternetInformationServices(IIS)customactionsthatcanbeusedtocreateandconfigurewebsites,virtualdirectories,webapplications,etc.WixNetFxExtension-customactiontogeneratenativecodefor.NETassemblies;propertiestodetect.NETFrameworkinstallstateandservicepacklevels.WixSqlExtension-SQLServercustomactionsthatcanbeusedtocreatedatabasesandexecuteSQLscriptsandstatements.WixVSExtension-customactiontoregisterhelpcollectionsandVisualStudiopackages;propertiestodetectinstallstateandservicepacklevelsforvariousVisualStudioeditions.XmlFilecustomaction(locatedinWixUtilExtension)-configureandmodifyXMLfilesaspartofyourinstallationpackage.
Page 1739
CreatingpatchesPatchesareupdatestoaproductorproducts.WiXsupportstwodifferentwaysofcreatingthem:
UsingPatchCreationPropertieswhichrequiresthatyouhavetheWindowsInstaller3.0ornewerSDKinstalledforfullsupportofincludedexamples.UsingPurelyWiXwhichusesfunctionalityprovidedinWiXanddoesnotrequireadditionaltools.
Therearealsorestrictionsonhowpatchesarebuiltinordertoavoidproblemswheninstallingthem.
Page 1740
HowPatchesWorkPatchescontainacollectionoftransforms-mostoftenapairoftransformsforeachtargetproduct.Whenapatchisapplied,eachinstalledtargetproductisreinstalledindividuallywiththecorrespondingpatchtransformsapplied.Thesetransformscontainthedifferencesbetweenthattargetproductandtheupgradeproductthatmightcontainnewfileversionsandsizes,newregistrykeys,etc.
FormoreinformationaboutpatchingwithWindowsInstaller,readPatchingandUpgrades.
Page 1741
WiXSchemaReferencesThissectioncontainsschemareferenceinformationforWiXandextensions.
WixschemaWixlocschemaDifxappschemaforWixDifxAppExtensionFirewallschemaforWixFirewallExtensionGamingschemaforWixGamingExtensionIisschemaforWixIIsExtensionLuxschemaforWixLuxExtensionNetfxschemaforWixNetFxExtensionPsschemaforWixPSExtensionSqlschemaforWixSqlExtensionTagschemaforWixTagExtensionUtilschemaforWixUtilExtensionVsschemaforWixVSExtension
Page 1742
DevelopingforWiXThissectioncoversthefollowingtopicsfordeveloperswhowanttocontributetotheWiXcodebase:
ExtensionDevelopmentDevelopingforVotiveAddingtotheWiXDocumentationTestingWiX
Seealsothefollowingtopicsononwixtoolset.org:
WiXToolsetGovernanceWiXToolsetDevelopment
Page 1743
WixUIDialogLibraryReferenceThissectionexplainsWixUIdialogsanddialogsetsthatareincludedwiththeWiXtoolset.
WixUI_AdvancedDialogSetWixUI_FeatureTreeDialogSetWixUI_InstallDirDialogSetWixUI_MinimalDialogSetWixUI_MondoDialogSetWixUIDialogs
Page 1744
WorkingwithWiXStandardBootstrapperApplicationAsdescribedintheintroductiontobuildinginstallationpackagebundles,everybundlerequiresabootstrapperapplicationDLLtodrivetheBurnengine.Custombootstrapperapplicationscanbecreatedbutrequirethedevelopertowritenativeormanagedcode.Therefore,theWiXtoolsetprovidesastandardbootstrapperapplicationthatdeveloperscanuseandcustomizeinparticularways.
ThereareseveralvariantsoftheWiXStandardBootstrapperApplication.
1. WixStandardBootstrapperApplication.RtfLicense-thefirstvariantdisplaysthelicenseinthewelcomedialogsimilartotheWixUIAdvanced.
2. WixStandardBootstrapperApplication.HyperlinkLicense-thesecondvariantprovidesanoptionalhyperlinktothelicenseagreementonthewelcomedialog,providingamoremodernandstreamlinedlook.
3. WixStandardBootstrapperApplication.HyperlinkSidebarLicense-thethirdvariantisbasedonHyperlinkLicensebutprovidesalargerdialogandlargerimageontheinitialpage.
4. WixStandardBootstrapperApplication.RtfLargeLicense-thisvariantissimilartoRtfLicensebutisalargerdialogandsupportstheoptionofdisplayingtheversionnumber.
5. WixStandardBootstrapperApplication.HyperlinkLargeLicense-thisvariantissimilartoHyperlinkLicensebutisalargerdialogandsupportstheoptionofdisplayingtheversionnumber.
TousetheWiXStandardBootstrapperApplication,a<BootstrapperApplicationRef>elementmustreferenceoneoftheaboveidentifiers.Thefollowingexampleusesthebootstrapperapplicationthatdisplaysthelicense:
<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><Bundle><BootstrapperApplicationRefId="WixStandardBootstrapperApplication.RtfLicense"/>
Page 1745
<Chain></Chain></Bundle></Wix>
HyperlinkLargeTheme,HyperlinkSidebarTheme,andRtfLargeThemecanoptionallydisplaythebundleversiononthewelcomepage:
<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"><Bundle><BootstrapperApplicationRefId="WixStandardBootstrapperApplication.RtfLicense"><bal:WixStandardBootstrapperApplicationLicenseFile="path\to\license.rtf"ShowVersion="yes"/></BootstrapperApplicationRef><Chain></Chain></Bundle></Wix>
Whenbuildingthebundle,theWixBalExtensionmustbeprovided.Iftheabovecodewasinafilecalled"example.wxs",thefollowingstepswouldcreatean"example.exe"bundle:
candle.exeexample.wxs-extWixBalExtensionlight.exeexample.wixobj-extWixBalExtension
ThefollowingtopicsprovideinformationabouthowtocustomizetheWiXStandardBootstrapperApplication:
SpecifyingtheWiXStandardBootstrapperApplicationLicenseChangingtheWiXStandardBootstrapperApplicationBrandingCustomizetheWiXStandardBootstrapperApplicationLayoutUsingWiXStandardBootstrapperApplicationVariables
Page 1746
GamingSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetGamingExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/GamingExtension
ChildElementsGamePlayTaskSupportTask
Page 1747
NetfxSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolset.NETFrameworkExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/NetFxExtension
ChildElementsNativeImage
Page 1748
VsSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetVisualStudioExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/VSExtension
ChildElementsHelpCollectionHelpCollectionRefHelpFileHelpFileRefHelpFilterHelpFilterRefPlugCollectionIntoVsixPackage
Page 1749
BalSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetBurnUserExperienceExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/BalExtension
ChildElementsConditionWixManagedBootstrapperApplicationHostWixStandardBootstrapperApplication
Page 1750
ComplusSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetCOM+Extension.
TargetNamespacehttp://schemas.microsoft.com/wix/ComPlusExtension
ChildElementsComPlusApplicationComPlusApplicationRoleComPlusAssemblyComPlusAssemblyDependencyComPlusComponentComPlusGroupInApplicationRoleComPlusGroupInPartitionRoleComPlusInterfaceComPlusMethodComPlusPartitionComPlusPartitionRoleComPlusPartitionUserComPlusRoleForComponentComPlusRoleForInterfaceComPlusRoleForMethodComPlusSubscriptionComPlusUserInApplicationRoleComPlusUserInPartitionRole
Page 1751
DependencySchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetDependencyExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/DependencyExtension
ChildElementsProvidesRequiresRequiresRef
Page 1752
DifxappSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetDriverInstallFrameworksforApplicationsExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/DifxAppExtension
ChildElementsDriver
Page 1753
FirewallSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetFirewallExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/FirewallExtension
ChildElementsFirewallExceptionRemoteAddress
Page 1754
HttpSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetHttpExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/HttpExtension
ChildElementsUrlAceUrlReservation
Page 1755
IisSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetInternetInformationServicesExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/IIsExtension
ChildElementsCertificateCertificateRefHttpHeaderMimeMapRecycleTimeWebAddressWebApplicationWebApplicationExtensionWebAppPoolWebDirWebDirPropertiesWebErrorWebFilterWebLogWebPropertyWebServiceExtensionWebSiteWebVirtualDir
Page 1756
LuxSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetLuxExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/2009/Lux
ChildElementsConditionExpressionMutationUnitTestUnitTestRef
Page 1757
MsmqSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetMSMQExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/MsmqExtension
ChildElementsMessageQueueMessageQueuePermission
Page 1758
PsSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetPowerShellExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/PSExtension
ChildElementsFormatsFileSnapInTypesFile
Page 1759
SqlSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetSQLServerExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/SqlExtension
ChildElementsSqlDatabaseSqlFileSpecSqlLogFileSpecSqlScriptSqlString
Page 1760
TagSchema
ThesourcecodeschemafortheWiXToolsetSoftwareIdTagExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/TagExtension
ChildElementsTagTagRef
Page 1761
ThmutilSchema
SchemafordescribingThemefilesprocessedbythmutil.
RootElementTheme
TargetNamespacehttp://wixtoolset.org/schemas/thmutil/2010
DocumentShouldLookLike<?xmlversion="1.0"?><Themexmlns="http://wixtoolset.org/schemas/thmutil/2010">...</Theme>
Page 1762
UtilSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetUtilityExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/UtilExtension
ChildElementsCloseApplicationComponentSearchComponentSearchRefDirectorySearchDirectorySearchRefEventManifestEventSourceFileSearchFileSearchRefFileShareFileSharePermissionGroupGroupRefInternetShortcutPerfCounterPerfCounterManifestPerformanceCategoryPerformanceCounterPermissionExProductSearchProductSearchRefRegistrySearchRegistrySearchRef
Page 1763
RemoveFolderExRestartResourceServiceConfigUserXmlConfigXmlFile
Page 1764
WixSchema
SchemafordescribingWindowsInstallerdatabasefiles(.msi/.msm/.pcp).
RootElementsIncludeWix
TargetNamespacehttp://schemas.microsoft.com/wix/2006/wi
DocumentShouldLookLike<?xmlversion="1.0"?><Includexmlns="http://schemas.microsoft.com/wix/2006/wi">...</Include><?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi">...</Wix>
Page 1765
WixlocSchema
SchemafordescribingWindowsInstallerXmlLocalizationfiles(.wxl).
RootElementWixLocalization
TargetNamespacehttp://schemas.microsoft.com/wix/2006/localization
DocumentShouldLookLike<?xmlversion="1.0"?><WixLocalizationxmlns="http://schemas.microsoft.com/wix/2006/localization">...</WixLocalization>
Page 1766
BuildingaCustomBootstrapperApplicationBurnisabootstrapper,downloader,chainer,andanengine.Asabootstrapper,Burnisresponsibleforgettingtheinstallationprocessstartedwiththefewestdependenciespossible.Asadownloader,Burnisresponsibleforrobustlycachingfilesfromsourcemedia(suchasCD),astandalonedownload,ortheInternet.Asachainer,Burnisresponsibleforinstallingmultipleinstallationpackagesinaconsistenttransaction.Asanengine,Burnprovidesallofthisfunctionalityviainterfacestothehostedbootstrapperapplication.
Thebootstrapperapplication(BA)isaDLLloadedbytheBurnengine.TheengineprovidestheBAaninterfacetocontroltheenginecalledIBootstrapperEngine.TheengineexpectstheBAtoprovideaninterfacecalledIBootstrapperApplicationsotheenginecanprovideprogress.
TheengineretrievestheIBootstrapperApplicationinterfacebycallingtheBootstrapperApplicationCreatefunctionthatmustbeexportedbytheBADLL.Thisfunctionlookslikethis:
extern"C"HRESULTWINAPIBootstrapperApplicationCreate(__inIBootstrapperEngine*pEngine,__inconstBOOTSTRAPPER_COMMAND*pCommand,__outIBootstrapperApplication**ppApplication)
TheBOOTSTRAPPER_COMMANDstructureisprovidedbytheengineandcontainsinformationreadfromthecommandline.Onsuccess,theBAreturnsitsIBootstrapperApplicationinterface.TheBADLLisprovidedtheIBootstrapperEngineinterfacewhentheenginecallsIBootstrapperApplication::OnStartup.
TheBADLLcanoptionallyprovideanexportedfunctionnamedBootstrapperApplicationDestroythattheenginewillcalljustbeforeunloadingtheBADLL.MostcleanupoperationsshouldtakeplaceinIBootstrapperApplication::OnShutdownbutsometimesthereare
Page 1767
resourcescreatedduringBootstrapperApplicationCreatethatneedtobecleanedupinBootstrapperApplicationDestroy.Theentrypointlookslikethis:
extern"C"voidWINAPIBootstrapperApplicationDestroy()
NotethatbootstrapperapplicationsmustberecompiledwhenupgradingminorversionsoftheWiXToolset.Minorversionsmaintainsource-codecompatibilitybutdonotguaranteebinarycompatibility.
Page 1768
WiXMSBuildTaskReferenceThissectionexplainsMSBuildtasksthatareincludedwiththeWiXtoolset.
CandleTaskHeatDirectoryTaskHeatFileTaskHeatProjectTaskLightTaskLitTaskInsigniaTask
Page 1769
WiXMSBuildTargetReferenceThissectionexplainsMSBuildtargetsthatareincludedwiththeWiXtoolset.
HarvestDirectoryTargetHarvestFileTargetHarvestProjectsTarget
Page 1770
DevelopingWiXExtensionsThissectioncoversthefollowingtopicsfordeveloperswhowanttocreatetheirownWiXextensions:
IntroductiontoDevelopingWiXExtensionsCreatingaSkeletonExtensionCreatingaPreprocessorExtension
Page 1771
TestingWiXThissectioncontainsdocumentsonhowtocreateandexecutetestsfortheWindowsInstallerXMLToolset.
RunningTestsWritingTests