Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML...

Post on 22-Jul-2020

2 views 0 download

transcript

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.

HowdoesWiXwork?TheWiXsourcecodeiswritteninXMLformatwitha.wxsfileextension.TheWiXtoolsfollowthetraditionalcompileandlinkmodelusedtocreateexecutablesfromsourcecode.Atbuildtime,theWiXsourcefilesarevalidatedagainstthecoreWiXschema,thenprocessedbyapreprocessor,compiler,andlinkertocreatethefinalresult.ThereareasetofWiXtoolsthatcanbeusedtoproducedifferentoutputtypes.ForacompletelistoffiletypesandtoolsinWiX,seetheFileTypesandtheListofToolssections.

Seethefollowingtopicsformoredetailedinformation:

FundamentalToolsandConceptsCreatingInstallationPackageBundlesWorkinginVisualStudioWorkingwithMSBuildHowToGuidesStandardCustomActionsCreatinganInstallationPatchWiXSchemaReferenceDevelopingforWiX

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.

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

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-

infringement.

GettingStartedThereareseveraloptionsavailabletogetstartedlearninghowtouseWiX.

HowToGuidesThishelpfileincludesasetofHowToGuidesthatexplainhowtoaccomplishcommonWindowsInstallertasksusingWiX.

CommunityIfyouprefertolearnbyinteractingwiththecommunity,thereisaWiXusersmailinglist.

IntegratedDevelopmentEnvironmentIfyouprefertolearnbyusinganintegrateddevelopmentenvironment,thereisanoverviewofWiXeditorsathttp://robmensching.com/blog/posts/2007/11/20/wix-editors.

ReverseEngineeringIfyouprefertolearnbyworkingbackwardfromaWindowsInstallerpackageyouhavealreadycreated,youcanruntheWiXdecompiler(Dark)toconvertyourpackageintoWiXauthoringandthenrecompileitusingtheWiXcompiler(Candle)andWiXlinker(Light).

ReadingSourceCodeIfyouprefertolearnbyreadingcode,WiXisanopensourceproject,andyoucanlookatthesourcecodebyreviewingtheHowtobeaWiXDevelopertopic.

FixaBug,WriteaFeatureIfyouprefertolearnbywritingcode,youcanreviewtheWiXissuetracker.

ForWiXdevelopmentassistance,thereisaWiXdevelopermailinglist.

GettingHelpPleaseseehttp://wixtoolset.org/formoreinformationabouttheWiXtoolset.Thissiteincludesthefollowinginformation:

1. LinkstodownloadweeklyreleasesoftheWiXtoolset.2. TheWiXbugdatabasewhereyoucanreportnewbugsorcheckthe

statusofexistingbugs.3. Mailingliststoaskquestions,makesuggestionsordiscusstheWiX

toolsetwithotherusersandtheWiXdevelopers.4. LinkstoblogsmaintainedbytheWiXdevelopers.

FileTypesTherearemanyfiletypesinWiXthataregeneratedfromdifferenttoolsinthetoolset.Atthehighestlevel,allinputfilesandintermediatefilesforWiXareXMLfiles.ThefinaloutputisintheformofstandardWindowsInstallerdatabasefiles.

Forexample,tobuildanMSIorMSP,thecompilerprocessesthesourcefiles(.wxsand.wxi)andproducesobjectfiles(.wixobj).Theseobjectsfilesarethenconsumedbythelinker,whichproducesWindowsInstallerdatabasefiles(.msior.msm).ThisisanalogoustotheC++modelofcompilingsourcecodetoobjectfiles,thenlinkingtoproduceexecutables.

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-

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.

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

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

processthesymbolsandreferencesbutalsouseandupdatetherawdatafromthe.wixobjfile.Itisinterestingtonotethattheobjectfileschema,objects.xsd,usescamelcasingwherethesourcefileschema,wix.xsd,usesPascalcasing.Thiswasaconsciouschoicetoindicatethattheobjectfilesarenotintendedtobeeditedbytheuser.Infact,allschemasthatdefinedatatobeprocessedonlybytheWiXtoolsusecamelcasing.

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

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.

ResponsefilesAllWiXcommand-linetoolssupportresponsefiles,whicharetextfilesthatcontaincommand-lineswitchesandarguments.AnythingyoucanputonaWiXtoolcommandlinecaninsteadgointoaresponsefile.Responsefilesareusefulwhenyouhavecommandlinesthataretoolongforyourcommandshell.Forexample,youmightwanttogeneratearesponsefilethatcontainscommand-lineswitchesandthefilesthatyouwanttocompilewithcandle.exe:

-nologo-wx1.wxs2.wxs3.wxs

andissueacommandlike:

candle@listOfFiles.txt

Specifyaresponsefilewiththe@character,followedimmediatelybythepathnameoftheresponsefile,withnowhitespacein-between.Responsefilescanappearatthebeginning,inthemiddle,orattheendofcommandlinearguments.

WiXToolsetDiagramBelowisadiagramshowingtherelationshipofalloftheWiXtoolsandtheoutputthattheygenerate.

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?>

IncludeFiles<?include?>Asshownintheexampleabove,filescanbeincludedbyusingtheincludetag.Thefilenamereferencedinthetagwillbeprocessedasifitwerepartofthisfile.

Therootelementoftheincludefilemustbe<Include>.Therearenootherrequirementsbeyondtheexpectedwixschema.Forexample,

<Include><FeatureId='MyFeature'Title='My1stFeature'Level='1'><ComponentRefId='MyComponent'/></Feature></Include>

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.

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.

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

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-->

<?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?>

ErrorsandWarningsYoucanusethepreprocessortoshowmeaningfulerrorandwarningmessagesusing,<?errorerror-message?>and<?warningwarning-message?>.Whenoneofthesepreprocessorinstructionsisencounteredthepreprocessorwilleitherdisplayanerrorandstopthecompileordisplayawarningandcontinue.

Anexample:

<?ifndefRequiredVariable?><?errorRequiredVariablemustbedefined?><?endif?>

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?>

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.

EscapingThepreprocessortreatsthe$characterinaspecialwayifitisfollowedbya$or(.Ifyouwanttousealiteral$$,use$$$$instead.Everytwo$characterswillbereplacedwithone.Forexample,$$$$$willbereplacedwith$$$.

FunctionsThepreprocessorsupportsthefollowingfunctions:

$(fun.AutoVersion(x.y))Getsanautogeneratedversionnumberusingthesameschemeas.NETAssemblyVersionattribute.Theparametersx.yspecifythemajorandminorverionnumber,thebuildissettothenumberofdayssince1/1/2000andrevisiontothenumberofsecondssincemidnightdividedby2.BothvaluesarecalculatedusingUTC.

ExtensionsWiXhassupportforpreprocessorextensionsviathePreprocessorExtensionclass.ThePreprocessorExtensioncanprovidecallbackswithcontextatforeachinitialization,variableevaluation,functiondefinitions,andthelastcallbeforeinvokingthecompiler(forfullcustompreprocessing).

CompilerTheWindowsInstallerXMLcompilerisexposedbycandle.exe.Candleisresponsibleforpreprocessingtheinput.wxsfilesintovalidwell-formedXMLdocumentsagainsttheWiXschema,wix.xsd.Then,eachpost-processedsourcefileiscompiledintoa.wixobjfile.

Thecompilationprocessisrelativelystraightforward.TheWiXschemalendsitselftoasimplerecursivedescentparser.Thecompilerprocesseseachelementinturncreatingnewsymbols,calculatingthenecessaryreferencesandgeneratingtherawdataforthe.wixobjfile.

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

WindowsInstallerdatabase.

Finally,lightworksthroughthemechanicsofgeneratingIDTfilesandimportingthemintotheWindowsInstallerdatabase.Afterthedatabaseisfullycreated,thefinalpostprocessingisdonetomergeinanyMergeModulesandcreateacabinetifnecessary.TheresultisafullyfunctionalWindowsInstallerdatabase.

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.

-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.

-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.

-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.

-sval SuppressMSI/MSMvalidation.

-sw<N> SuppresswarningswithspecificmessageIDs.

-swall Suppressallwarnings(deprecated).

-usf<output.xml>

Specifyanunreferencedsymbolsfile.

-v Generateverboseoutput.

-wx<N> Treatwarningsaserrors.

-wxall Treatallwarningsaserrors(deprecated).

-xo GenerateXMLoutputinsteadofanMSI.

-? DisplayLighthelpinformation.

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)

(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

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)

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.

LibraryTool(lit)LitistheWiXlibrarycreationtool.Itcanbeusedtocombinemultiple.wixobjfilesintolibrariesthatcanbeconsumedbylight.

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

example,-sw1011-sw1012.

-swall Suppressallwarnings(deprecated).

-v Generateverboseoutput

-wx<N> Treatwarningsaserrors.Forexample,-wx1011-wx1012.

-wxall Treatallwarningsaserrors(deprecated).

-? DisplayLithelpinformation

HarvestTool(Heat)GeneratesWiXauthoringfromvariousinputformats.

Everytimeheatisrunitregeneratestheoutputfileandanychangesarelost.

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.

-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.

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:

-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.

-wx[N] TreatallwarningsoraspecificmessageIDasanerror.e.g.-wx1011-wx1012.

-wxall Treatallwarningsaserrors(deprecated).

-?|-help Displayheathelpinformation.

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

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.

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&quot;%(SignCabs.FullPath)&quot;"/></Target>

Finally,overridethe"SignMsi"target.Here'sasimilarexample,alsousingsigntool.exe.

<TargetName="SignMsi"><ExecCommand="signtool.exesign/a&quot;%(SignMsi.FullPath)&quot;"/></Target>

Thiswillcausethebuildprocess,afterlinkingtheMSI,tosignanyexternalcabs,inscribeyourMSIwiththedigitalsignaturesofthosecabs,andthensigntheMSI,allattheappropriatetimesduringthebuildprocess.

Insigniacanalsobeusedtodetachandre-attachtheburnenginefroma

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&quot;@(SignBundleEngine)&quot;"/></Target><TargetName="SignBundle"><ExecCommand="Signtool.exesign/a&quot;@(SignBundle)&quot;"/></Target>

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

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.

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

strongly-typedWiXCOMelement.

UpgradeVersionRemoveFeaturesEmpty DisplayedwhenanUpgradeVersionelementhasanemptyRemoveFeaturesattribute.

FeatureFollowParentDeprecated DisplayedwhenaFeatureelementcontainsthedeprecatedFollowParentattribute.

RadioButtonMissingValue DisplayedwhenaRadioButtonelementismissingtheValueattribute.

TypeLibDescriptionEmpty DisplayedwhenaTypeLibelementcontainsaDescriptionelementwithanemptystringvalue.

ClassRelativePathMustBeAdvertised DisplayedwhenaRelativePathattributeoccursonanunadvertisedClasselement.

ClassDescriptionEmpty DisplayedwhenaClasselementhasanemptyDescriptionattribute.

ServiceInstallLocalGroupEmpty DisplayedwhenaServiceInstallelementhasanemptyLocalGroupattribute.

ServiceInstallPasswordEmpty DisplayedwhenaServiceInstallelementhasanemptyPasswordattribute.

ShortcutWorkingDirectoryEmpty DisplayedwhenaShortcutelementhasanemptyWorkingDirectoryattribute.

IniFileValueEmpty DisplayedwhenaIniFileelementhasanemptyValueattribute.

FileSearchNamesCombined DisplayedwhenaFileSearchelementhasaNameattributethatcontainsboththeshortandlongversionsofthefilename.

WebApplicationExtensionIdDeprecated DisplayedwhenaWebApplicationExtensionelementhasadeprecatedIdattribute.

WebApplicationExtensionIdEmpty DisplayedwhenaWebApplicationExtensionelementhasanemptyIdattribute.

PropertyValueEmpty DisplayedwhenaPropertyelementhasanemptyValueattribute.

ControlCheckBoxValueEmpty DisplayedwhenaControlelementhasanemptyCheckBoxValueattribute.

RadioGroupDeprecated DisplayedwhenadeprecatedRadioGroupelementisfound.

ProgressTextTemplateEmpty DisplayedwhenaProgresselementhasanemptyTextTemplateattribute.

RegistrySearchTypeRegistryDeprecated DisplayedwhenaRegistrySearchelementhasaTypeattributesetto'registry'.

WebFilterLoadOrderIncorrect DisplayedwhenaWebFilter/@LoadOrderattributehasavaluethatisnotmorestonglytyped.

SrcIsDeprecated Displayedwhenanelementcontainsadeprecatedsrcattribute.

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

ProgId/@Iconattributevaluecontainsaformattedstring.

IgnoreModularizationDeprecated DisplayedwhenadeprecatedIgnoreModularizationelementisfound.

PackageCompressedIllegal DisplayedwhenaPackage/@CompressedattributeisfoundunderaModuleelement.

PackagePlatformsDeprecated DisplayedwhenaPackage/@Platformsattributeisfound.

ModuleGuidDeprecated DisplayedwhenadeprecatedModule/@Guidattributeisfound.

GuidWildcardDeprecated Displayedwhenadeprecatedguidwildcardvalueisfound.

FragmentRefIllegal DisplayedwhenaFragmentRefElementisfound.

FileRedundantNames DisplayedwhenaFile/@NamematchesaFile/@ShortName.

Unit-testingcustomactionswithLuxCustomactionsareafrequentcauseofinstallationfailuressoit'simportanttotestthemthoroughly.Customactionsthemselvesusuallyaren'ttested.Thetraditionaltestingapproachistorunfunctionaltestsonanentireinstallerandtocoverasmanyscenariosandplatformcombinationsaspossible.

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.

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.

AuthoringunittestsLuxsupportsthefollowingunittests:

PropertyvaluesExpressionsMulti-valuepropertiesName/value-pairproperties

Notethatyoushouldalwaysauthorunittestsinfragmentsseparatefromyourcustomactionauthoringoranyotherproductauthoring.Ifyoumixunittestswithotherauthoring,WiXincludestheunit-testdatainyour"real"installers.

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).

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.

ExpressiontestsExpressiontestsletyoutestanyvalidMSIexpression.Iftheexpressionistrue,thetestpasses.Iftheexpressionisfalseorinvalid,thetestfails.

<Fragment><lux:UnitTestCustomAction="TestCustomActionSimple"><lux:Expression>NOTMsiSystemRebootPendingANDSIMPLE</lux:Expression></lux:UnitTest></Fragment>

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.

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>

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.

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

RunningunittestsAfterbuildingthetestpackage,youcanrunitwithloggingenabledtocapturetestresults:

msiexec/ltest1.log/ibin\Debug\LuxSample1_test.msi

SearchthelogforWixRunImmediateUnitTeststoseetestresultsandotherloggingfromtheLuxcustomaction.

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)->

(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

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.

MSITablestoWiXSchemaIntheWiXschema,itsnotalwaysentirelyobvioushowthetablesfromtheWindowsInstallerschemamaptotheWiXschema.Belowaresomehelpfulhintsonhowtofigureouttherelationshipsbetweenthetwoschemas.

DuplicateFileTableThisisauthoredusingaCopyFilenodenestedunderaFilenode.YouonlyneedtosettheId,DestinationFolder,andDestinationNameattributes.

LaunchConditionTableThisisauthoredusingaConditionnodeauthoredunderFragmentorProduct.YouonlyneedtosettheMessageattribute.

LockPermissionsTableThisisauthoredusingPermission.

MoveFileTableThisisauthoredusingaCopyFilenodenestedunderaComponentnode.YouwillneedtosetallattributesexceptDelete.SetDeleteto'yes'inordertousethemsidbMoveFileOptionsMoveoption.

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>

RemoveIniFileThisisauthoredusingIniFile.JustsettheActionattributeto'removeLine'or'removeTag'asappropriate.

RemoveRegistryTableThisisauthoredusingRegistry.SimplysettheActionattributeto'remove'or'removeKey'(asappropriate)inordertogetanentryintheRemoveRegistrytable.

CodePagesCodepagesmapcharactercodestoactualcharacters,orgraphemes.Codepagesarealsousedtoconvertfromoneencodingtoanother.

CodePagesinWindowsInstallerWindowsInstallerstoresstringsinapackageaccordingtoaparticularcodepage.Aseparatecodepageisusedforthesummaryinformationstreamandtherestofthepackagedatabase,whichincludestheActionText,Error,Property,andothertables.

FormoreinformationaboutcodepagesinWindowsInstaller,readCodePageHandling.

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.

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

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.

ItemTemplatesWiXVisualStudiopackageprovidesthefollowingitemtemplatesforWiXprojects:

WiXFile-a.wxsfilepre-populatedwiththesameinformationasthedefaultWXSfileinaWiXLibraryProjectWiXIncludeFile-ablank.wxifileWiXLocalizationFile-ablank.wxlfileTextFile-ablank.txtfile

FormoreinformationaboutWiXfiletypes,pleasevisittheFileListsection.

Toaddanewitem:

1. Right-clickontheprojectnodeintheSolutionExplorer.2. ChooseAdd|NewItem...andselecttheappropriateitemtemplate.3. TypeintheitemnameintheNamefieldandpressAdd.

ProjectPropertyPagesToaccesstheWiXprojectpropertypages,right-clickonaWiXprojectintheVisualStudioSolutionExplorerandchooseProperties.WiXprojectscontainthefollowingpropertypages:

InstallerBuildBuildEventsPathsToolSettings

InstallerPropertyPageTheInstallertabcontainsthefollowingconfigurableoptions:

Outputname-atextboxthatcontainsthenameofthefilethatwillbecreatedbythebuildprocess.Outputtype-adrop-downlistthatallowsyoutoselecttheoutputtype:AnMSIpackage,mergemodule,WiXlibrary,orbootstrapper.

BuildPropertyPageTheBuildtabcontainsthefollowingconfigurableoptions:

TheGeneralsectionallowsyoutodefineconfiguration-specificconstantsandspecifytheculturetobuild.FormoreinformationseeSpecifyingculturestobuild.TheMessagessectionallowsyoutospecifywarninglevels,toggletreatingwarningsaserrorsandverboseoutput.TheOutputsectionallowsyoutospecifytheoutputpath,toggledeletetemproaryfiles,suppressoutputofthewixpdbfile,andtogglewhetherornottobindfilesintothelibraryfile(ifitisaWiXLibraryproject).

BuildEventsPropertyPageTheBuildEventstabcontainsthefollowingconfigurableoptions:

Pre-buildeventcommandline-atextboxthatcontainsthepre-buildeventstoexecutebeforebuildingthecurrentproject.Post-buildeventcommandline-atextboxthatcontainsthepost-buildeventstoexecuteafterbuildingthecurrentproject.Runthepost-buildevent-adrop-downcomboboxthatallowsyoutospecifytheconditionsinwhichpost-buildeventsshouldbeexecuted.

TheBuildEventstabcontainsbuttonsnamedEditPre-build...andEditPost-build...thatdisplayeditdialogsforthepreandpost-buildeventcommandlines.TheeditdialogscontainalistofallvalidWiXprojectreferencevariablesandtheirvaluesbasedonthecurrentprojectsettings.

PathsPropertyPageThePathstabcontainsthefollowingconfigurableoptions:

TheReferencePathssectionallowsyoutodefinepathsyouwanttousewhenlocatingreferences(WiXextensionsandWiXlibraries).TheIncludePathssectionallowsyoutodefinepathsyouwanttousewhenlocatingWiXIncludefiles.

ToolSettingsPropertyPageTheToolSettingstabcontainsthefollowingconfigurableoptions:

TheICEvalidationsectionallowsyoutotoggleICEvalidationsuppressionorspecifywhichICEvalidationtosuppress.TheAdditionalparameterssectionallowsyoutospecifycommandlineargumentstopassdirectlytotheWiXtoolsatbuildtime.

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.-->

<!--</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.

CreatingaSimpleSetupInthistutorial,wewillcreateaC#WindowsFormApplicationandthenuseWiXtocreateaninstallerfortheapplication.

Step1:CreatetheC#WindowsFormApplication1. ClickFile,thenselectNew,thenselectProject.2. ChoosetheVisualC#nodeintheProjectTypestree,thenselect

WindowsFormsApplication.3. Nameyourapplication"MyApplication"andpressOK.

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,

canbefoundintheAddingProjectReferencestopic.

UsingProjectReferencesandVariablesTheWiXprojectsupportsaddingprojectreferencestootherprojectssuchasVBandC#.Thisensuresthatbuildorderdependenciesaredefinedcorrectlywithinthesolution.Inaddition,itgeneratesasetofWiXpreprocessorvariablesthatcanbereferencedinWiXsourcefilesandpreprocessordefinitionswhicharepassedtothecompileratbuildtime.

ToaddaprojectreferencetoaWiXproject:

1. Right-clickontheReferencesnodeoftheprojectintheSolutionExplorerandchooseAddReference....

2. IntheAddReferencedialog,clickontheProjectstab.3. Selectthedesiredproject(s)andclicktheAddbutton,andthen

pressOKtodismissthedialog.

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

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).

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)

shouldbeaddedusingthe<Content>elementwithinanItemGroup.

IntegratingWiXProjectsIntoDailyBuildsOneofthemostcommonreasonsforusingMSBuildwithWiXprojectfilesistointegratethebuildofaninstallerintoanexistingdailybuildprocess.ThisisoftencoupledwithaneedtobuildWiXprojectswithouthavingtopre-installanyWiXtoolsonthedailybuildmachine.WiXprojectsandtheWiXtoolstobuildthemcanbeaddedtomostdailybuildprocessesthatsupportMSBuildusingafewsimplesteps.

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.

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.

BuildingWiXProjectsInTeamFoundationBuildOnceyouhavecreatedaWiXprojectfile,youneedtoperformsomeadditionalstepsinordertosuccessfullybuildtheWiXprojectinTeamFoundationBuild.Withouttheseadditionalsteps,theWiXprojectwillbeignoredbydefaultbyTeamFoundationBuildeventhoughitisanMSBuild-compatibleproject.

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.

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

WindowsInstallerpackage.

HarvestDirectoryTargetTheHarvestDirectorytargetpassesHarvestDirectoryitemstotheHeatDirectorytasktogenerateauthoringfromafile.Authoringisgeneratedfortypelibrariesandself-registrationfromDllRegisterServerforanyfilesfoundindirectories.Thistargetisprocessedbeforecompilation.GeneratedauthoringisautomaticallyaddedtotheCompileitemgrouptobecompiledbytheCandletask.

<ItemGroup><HarvestDirectoryInclude="..\TestProject\Data"><DirectoryRefId>DataDir</DirectoryRefId></HarvestDirectory></ItemGroup>

ThefollowingtablesdescribethecommonWiXMSBuildpropertiesanditemsthatareapplicabletotheHarvestDirectorytarget.

ItemsThefollowingitemsanditemmetadataareusedbytheHarvestDirectorytarget.

ItemorMetadata Description@(HarvestDirectory) Requireditemgroup.

Thelistofdirectoriestoharvest.

%(HarvestDirectory.ComponentGroupName)

Optionalstringmetadata.Ifyouareharvestingmultipledirectoriesinyourproject,youshouldspecifythismetadatatocreateuniquefilenamesforthegeneratedauthoring.

ThenameoftheComponentGrouptocreateforallthegeneratedauthoring.

%(HarvestDirectory.DirectoryRefId) Optionalstringmetadata.

TheIDofthedirectorytoreferenceinsteadofTARGETDIR.

%(HarvestDirectory.KeepEmptyDirectories)

Optionalbooleanmetadata.

WhethertocreateDirectoryentriesforemptydirectories.Thedefaultisfalse.

%(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.

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

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

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

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.

HarvestFileTargetTheHarvestFiletargetpassesHarvestFileitemstotheHeatFiletasktogenerateauthoringfromafile.Authoringisgeneratedfortypelibrariesandself-registrationfromDllRegisterServer.Thistargetisprocessedbeforecompilation.GeneratedauthoringisautomaticallyaddedtotheCompileitemgrouptobecompiledbytheCandletask

<ItemGroup><HarvestFileInclude="comserver.dll"><ComponentGroupName>COM</ComponentGroupName><DirectoryRefId>ServerDir</DirectoryRefId></HarvestFile></ItemGroup>

ThefollowingtablesdescribethecommonWiXMSBuildpropertiesanditemsthatareapplicabletotheHarvestFiletarget.

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.

%(HarvestFile.SuppressRegistry) Optionalbooleanmetadata.

Suppressgenerationofanyregistryelements.Thedefaultisfalse.

%(HarvestFile.Transforms) Optionalstringmetadata.

XSLtransformstoapplytothegeneratedWiXauthoring.Separatemultipletransformswithsemicolons.

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

$(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.

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.

$(HarvestFileTreatSpecificWarningsAsErrors) Optionalstringparameter.

Specifiesthatcertainwarningsshouldbetreatedaserrors.Thedefaultis$(HarvestTreatSpecificWarningsAsErrors)ifspecified.

$(HarvestFileTreatWarningsAsErrors) Optionalbooleanparameter.

Specifiesthatallwarningsshouldbetreatedaserrors.Thedefaultis$(HarvestTreatWarningsAsErrors)ifspecified;otherwise,false

$(HarvestFileVerboseOutput) Optionalbooleanparameter.

Specifiesthatthetoolshouldprovideverboseoutput.Thedefaultis$(HarvestVerboseOutput)ifspecified;otherwise,false.

HarvestProjectsTargetTheHarvestProjectstargetpassesHarvestProjectitemstotheHeatProjecttasktogenerateauthoringfromaprojectfile.

Harvestingprojectsisdisabledbydefaultbecauseitmaynotalwaysworkcorrectly,butyoucanenableitbyaddingthefollowingtothetopofyourWiXprojectfile:

<PropertyGroup><EnableProjectHarvesting>True</EnableProjectHarvesting></PropertyGroup>

Ifenabled,thistargetisprocessedbeforecompilation.GeneratedauthoringisautomaticallyaddedtotheCompileitemgrouptobecompiledbytheCandletask.

<ItemGroup><HeatProjectInclude="..\TestProject\TestProject.csproj"><ProjectOutputGroups>Binaries;Sources</ProjectOutputGroups></HeatProject></ItemGroup>

ThefollowingtablesdescribethecommonWiXMSBuildpropertiesanditemsthatareapplicabletotheHarvestProjectstarget.

ItemsThefollowingitemsanditemmetadataareusedbytheHarvestProjectstarget.

ItemorMetadata Description@(HarvestProject) Requireditemgroup.

Thelistofprojectstoharvest.TheHeatProjectitemgroupisprovidedonlyforbackwardcompatibility.

%(HarvestProject.ProjectOutputGroups)

Optionalstringmetadata.

Theprojectoutputgroupstoharvest.Separatemultipleoutputgroupswithsemicolons.Examplesinclude"Binaries"and"Source".

%(HarvestProject.Transforms) Optionalstringmetadata.

XSLtransformstoapplytothegeneratedWiXauthoring.Separatemultipletransformswithsemicolons.

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.

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)

ifspecified.$(HarvestProjectsTreatWarningsAsErrors) Optionalbooleanparameter.

Specifiesthatallwarningsshouldbetreatedaserrors.Thedefaultis$(HarvestTreatWarningsAsErrors)ifspecified;otherwise,

$(HarvestProjectsVerboseOutput) Optionalbooleanparameter.

Specifiesthatthetoolshouldprovideverboseoutput.Thedefaultis$(HarvestVerboseOutput)ifspecified.

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.

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

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.

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.

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.

Specifiesthatthecompilershouldshowsourcetraceinformationforerrors,warningsandverbosemessages.Thisisequivalenttothe-traceswitchincandle.exe.

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.

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.

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.

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.

SuppressgenerationofaDirectoryelementfortheparentdirectoryofthefile.Thedefaultisfalse.

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

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.

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.

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.

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.

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

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.

Thelistofprojectstoharvest.ProjectOutputGroups Optionalstringparameter.

Theprojectoutputgroupstoharvest.Separatemultipleoutputgroupswithsemicolons.Examplesinclude"Binaries"and"Source".

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

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.

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.

Specifiesthatthetoolshouldbindfilesintoa.wixoutfile.ThisisonlyvalidwhentheOutputAsXmlparameterisalsoprovided.Thisisequivalenttothe-bfswitch.

Pedantic Optionalbooleanparameter.

Specifiesthatthetoolshoulddisplaypedanticmessages.Thisisequivalenttothe-pedanticswitch.

SuppressAllWarnings Optionalbooleanparameter.

Specifiesthatallwarningsshouldbesuppressed.Thisisequivalenttothe-swswitch.

SuppressIntermediateFileVersionMatching Optionalbooleanparameter.

Specifiesthatthetoolshouldsuppressintermediatefileversionmismatchchecking.Thisisequivalenttothe-svswitch.

SuppressSchemaValidation Optionalbooleanparameter.

Specifiesthatschemavalidationofdocuments

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.

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

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

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

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

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.

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

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

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.

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.

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

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.

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

shouldbindfilesintoa.wixoutfile.ThisisonlyvalidwhentheOutputAsXmlparameterisalsoprovided.Thisisequivalenttothe-bfswitch.

Pedantic Optionalbooleanparameter.

Specifiesthatthetoolshoulddisplaypedanticmessages.Thisisequivalenttothe-pedanticswitch.

SuppressAllWarnings Optionalbooleanparameter.

Specifiesthatallwarningsshouldbesuppressed.Thisisequivalenttothe-swswitch.

SuppressIntermediateFileVersionMatching Optionalbooleanparameter.

Specifiesthatthetoolshouldsuppressintermediatefileversionmismatchchecking.Thisisequivalenttothe-svswitch.

SuppressSchemaValidation Optionalbooleanparameter.

Specifiesthatschemavalidationofdocumentsshouldbesuppressed.

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.

Parameter DescriptionLibAdditionalOptions Optionalstring

parameter.

Specifiesadditionalcommandlineparameterstoappendwhencallinglit.exe.

LibBindFiles Optionalbooleanparameter.

Specifiesthatthelibrarycreationtoolshouldbindfilesintoa.wixoutfile.ThisisonlyvalidwhentheOutputAsXmlparameterisalsoprovided.Thisisequivalenttothe-bfswitchinlit.exe.

LibPedantic Optionalbooleanparameter.

Specifiesthatthelibrarycreationtoolshoulddisplaypedanticmessages.Thisisequivalenttothe-pedanticswitchinlit.exe.

LibSuppressAllWarnings Optionalbooleanparameter.

Specifiesthatalllibrarycreationtoolwarningsshouldbesuppressed.Thisis

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

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

equalsign("=")tothesuppliedpath.

UsingBuilt-inWixUIDialogSetsTheWixUIdialoglibrarycontainsthefollowingbuilt-indialogsetsthatprovideafamiliarwizard-stylesetupuserinterface.

1. WixUI_Advanced2. WixUI_FeatureTree3. WixUI_InstallDir4. WixUI_Minimal5. WixUI_Mondo

Thebuilt-inWixUIdialogsetsarealsocustomizable,fromthebitmapsshownintheUItoaddingandremovingcustomdialogs.SeeCustomizingtheWixUIDialogSetsforadditionalinformation.

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

CustomizingBuilt-inWixUIDialogSetsThebuilt-inWixUIdialogsetscanbecustomizedinthefollowingways:

Specifyingaproduct-specificlicenseagreementfile.Specifyingproduct-specificsetupUIbitmaps.AddinganoptionalcheckboxandoptionaltexttotheExitDlg.Customizingthetextdisplayedinbuilt-indialogs.ChangingtheUIsequenceofabuilt-indialogset.Insertingacustomdialogintoabuilt-indialogset.

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.

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

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.

Customizingthetextinbuilt-indialogsAlltextdisplayedinbuilt-inWixUIdialogsetscanbeoverriddenwithcustomstringsifdesired.Inordertodoso,youmustaddastringtoyourproduct'sWiXlocalization(.wxl)filethathasthesameIdvalueasthestringthatyouwanttooverride.YoucanfindtheWixUIstringIdvaluesbylookinginthefilenamedWixUI_en-us.wxlintheWiXsourcecode.

Forexample,tooverridethedescriptivetextontheWelcomeDlg,youwouldaddthefollowingtoa.wxlfileinyourproject:

<StringId="WelcomeDlgDescription">Thisisacustomwelcomemessage.ClickNexttocontinueorCanceltoexit.</String>

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="

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:

<PublishDialog="LicenseAgreementDlg"Control="Back"Event="NewDialog"Value="

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

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

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

UsingtranslatederrorandprogresstextBydefault,WixUIwillnotincludeanytranslatedErrororProgressTextelements.YoucanincludethembyreferencingtheWixUI_ErrorProgressTextUIelement:

<UIRefId="WixUI_ErrorProgressText"/>

WixUI_AdvancedDialogSetTheWixUI_Advanceddialogsetprovidestheoptionofaone-clickinstalllikeWixUI_Minimal,butitalsoallowsdirectoryandfeatureselectionlikeotherdialogsetsiftheuserchoosestoconfigureadvancedoptions.

ThisdialogsetisdefinedinthefileWixUI_Advanced.wxsintheWixUIExtensionintheWiXsourcecode.

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:

<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.

WixUI_AdvancedDialogsWixUI_Advancedincludesthefollowingdialogs:

AdvancedWelcomeEulaDlgBrowseDlgDiskCostDlgFeaturesDlgInstallDirDlgInstallScopeDlgInvalidDirDlg

Inaddition,WixUI_AdvancedincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:

CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg

SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.

WixUI_FeatureTreeDialogSetWixUI_FeatureTreeisasimplerversionofWixUI_Mondothatomitsthesetuptypedialog.Instead,thewizardproceedsdirectlyfromthelicenseagreementdialogtothefeaturecustomizationdialog.WixUI_FeatureTreeismoreappropriatethanWixUI_Mondowhenyourproductinstallsallfeaturesbydefault.

ThisdialogsetisdefinedinthefileWixUI_FeatureTree.wxsintheWixUIExtensionintheWiXsourcecode.

WixUI_FeatureTreeDialogsWixUI_FeatureTreeincludesthefollowingdialogs:

BrowseDlgCustomizeDlgDiskCostDlgLicenseAgreementDlgWelcomeDlg

Inaddition,WixUI_FeatureTreeincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:

CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg

SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.

WixUI_InstallDirDialogSetWixUI_InstallDirdoesnotallowtheusertochoosewhatfeaturestoinstall,butitaddsadialogtolettheuserchooseadirectorywheretheproductwillbeinstalled.

ThisdialogsetisdefinedinthefileWixUI_InstallDir.wxsintheWixUIExtensionintheWiXsourcecode.

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"/>

WixUI_InstallDirDialogsWixUI_InstallDirincludesthefollowingdialogs:

BrowseDlgDiskCostDlgInstallDirDlgInvalidDirDlgLicenseAgreementDlgWelcomeDlg

Inaddition,WixUI_InstallDirincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:

CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg

SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.

WixUI_MinimalDialogSetWixUI_Minimalisthesimplestofthebuilt-inWixUIdialogsets.Itssoledialogcombinesthewelcomeandlicenseagreementdialogsandomitsthefeaturecustomizationdialog.WixUI_Minimalisappropriatewhenyourproducthasnooptionalfeaturesanddoesnotsupportchangingtheinstallationdirectory.

ThisdialogsetisdefinedinthefileWixUI_Minimal.wxsintheWixUIExtensionintheWiXsourcecode.

WixUI_MinimalDialogsWixUI_Minimalincludesthefollowingdialog:

WelcomeEulaDlg

Inaddition,WixUI_MinimalincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:

CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg

SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.

WixUI_MondoDialogSetWixUI_Mondoincludesasetdialogsthatallowgranularinstallationcustomizationoptions.WixUI_Mondoisappropriatewhensomeproductfeaturesarenotinstalledbydefaultandthereisameaningfuldifferencebetweentypicalandcompleteinstalls.

Note:WixUI_MondousesSetInstallLevelcontroleventstosettheinstalllevelwhentheuserchoosesTypicalorComplete.ForTypical,theinstalllevelissetto3;forComplete,1000.Fordetailsaboutfeaturelevelsandinstalllevels,seeINSTALLLEVELProperty.

ThisdialogsetisdefinedinthefileWixUI_Mondo.wxsintheWixUIExtensionintheWiXsourcecode.

WixUI_MondoDialogsWixUI_Mondoincludesthefollowingdialogs:

BrowseDlgCustomizeDlgDiskCostDlgLicenseAgreementDlgSetupTypeDlgWelcomeDlg

Inaddition,WixUI_MondoincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:

CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg

SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.

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

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

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.

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.

NowthatyouhavetheskeletonauthoringofaBundle,youcanmoveontoaddinginformationforthe<BootstrapperApplicationRef>element.SeeAuthortheBootstrapperApplicationforaBundle.

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

<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.

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

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.

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.

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

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.

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).

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

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.

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>

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">

<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.

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

LicenseUrl="License.htm"LogoFile="path\to\customlogo.png"LogoSideFile="path\to\customsidelogo.png"/></BootstrapperApplicationRef>

<Chain>...</Chain></Bundle></Wix>

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"/>

<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\.

UsingWiXStandardBootstrapperApplicationVariablesTheWiXStandardBootstrapperApplicationoffersasetofvariables:

WixBundleFileVersion-getsthefileversionofthebundle.exe.WixStdBALanguageId-getsthelanguageineffectfortheWixStdBAuserinterface.

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)(

__in_optHWNDhwndParent)=0;

TheBAshouldprovideawindowhandletoensurethattheelevationprompt,ifoneisrequired,isactiveanddisplayedaboveotherwindows.ThebulkoftheBAtimewillbespenthandlingcallbacksfromtheApplyaction.

WhentheBAisdone,itshouldnotifytheenginebycallingIBootstrapperEngine::Shutdown:

//IBootstrapperEngine::ShutdownSTDMETHOD(Shutdown)(__inDWORDdwExitCode,__inBOOLfRestart)=0;

TheenginewillthencalltheBAonelasttimeviaIBootstrapperApplication::OnShutdown:

//IBootstrapperApplication::OnShutdownSTDMETHOD_(void,OnShutdown)()=0;

HowTo:AddaFileToYourInstallerInstallingfilesisthemostfundamentalaspectofanyinstaller,andisusuallywhatleadspeopletobuildaninstallerinthefirstplace.LearninghowtoplaceafileondiskusingWindowsInstallerbestpracticesnotonlyensuresmaintainabilitygoingforward,butalsoenablesyoutobuildpatcheslaterifnecessary.

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.

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.

EachComponentelementisgivenanIdandaGuid.TheIdisusedtorefertothecomponentlaterintheWiXproject.TheGuidisusedlaterforpatchesandmustbeuniqueforeachcomponent.ForinformationongeneratingGUIDsseeHowTo:GenerateaGUID.

BeneatheachcomponentisaFileelementthatdoestheactualworkofpackagingyoursourcefilesintotheinstaller.TheIdisusedtorefertothefileelsewhereintheWiXproject.TheSourceattributespecifiesthelocationofthefileonyourmachine,soWiXcanfinditandbuilditintotheinstaller.

TheKeyPathattributeissettoyestotelltheWindowsInstallerthatthisparticularfileshouldbeusedtodeterminewhetherthecomponentisinstalled.IfyoudonotsettheKeyPathattribute,WiXwilllookatthechildelementsunderthecomponentinsequentialorderandtrytoautomaticallyselectoneofthemasakeypath.AllowingWiXtoautomaticallyselectakeypathcanbedangerousbecauseaddingorremovingchildelementsunderthecomponentcaninadvertantlycausethekeypathtochange,whichcanleadtoinstallationproblems.Ingeneral,youshouldalwayssettheKeyPathattributetoyestoensurethatthekeypathwillnotinadvertantlychangeifyouupdateyoursetupauthoringinthefuture.

TheChecksumattributeshouldbesettoyesforexecutablefilesthathaveachecksumvalueinthefileheader(thisisgenerallytrueforallexecutables),andisusedbytheWindowsInstallertoverifythevalidityofthefileonre-install.

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.

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>

HowTo:ChecktheVersionNumberofaFileDuringInstallationInstallersoftenneedtolookuptheversionnumberofafileondiskduringtheinstallationprocess.Thecheckisoftenusedinadvanceofaconditionalstatementlaterininstall,suchastoblocktheuserfrominstallingifafileismissing,ortodisplaycustominstallationUIdependingonwhetherthefileversionishighenough.Thishowtodemonstratesverifyingtheversionofafileondisk,thenusingtheresultingpropertytoblocktheapplication'sinstallationifthefileversionislowerthanexpected.

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.

Step2:UsethepropertyinaconditionOnceyouhavedeterminedwhetherthefileexistswiththerequestedversionyoucanusethepropertyinacondition.Thefollowingisasimpleexamplethatpreventsinstallationoftheapplicationiftheuser32.dllfileversionistoolow.

<ConditionMessage="Theinstalledversionofuser32.dllisnothighenoughtosupportthisinstaller."><![CDATA[InstalledORUSER32VERSION]]></Condition>

InstalledisaWindowsInstallerpropertythatensuresthecheckisonlydonewhentheuserisinstallingtheapplication,ratherthanonarepairorremove.TheUSER32VERSIONpartwillpassifthepropertyissettoanything,andwillfailifitisnotset.ThefilecheckinStep1willsetthepropertytothefullpathoftheuser32.dllfileifitisfoundwithanappropriatefileversion,andwillnotsetitotherwise.

HowTo:CreateaShortcutontheStartMenuWheninstallingapplicationsitisacommonrequirementtoplaceashortcutontheuser'sStartMenutoprovidealaunchingpointfortheprogram.Thishowtowalksthroughhowtocreateashortcutonthestartmenu.ItassumesyouhaveaWiXsourcefilebasedontheconceptsdescribedinHowTo:Addafiletoyourinstaller.

Step1:DefinethedirectorystructureStartMenushortcutsareinstalledinadifferentdirectorythanregularapplicationfiles,somodificationstotheinstaller'sdirectorystructurearerequired.ThefollowingWiXfragmentshouldbeplacedinsidea<Directory>elementwiththeTARGETDIRIDandaddsdirectorystructureinformationfortheStartMenu:

<DirectoryId="ProgramMenuFolder"><DirectoryId="ApplicationProgramsFolder"Name="MyApplicationName"/></Directory>

TheProgramMenuFolderIdisastandardWindowsInstallerpropertythatpointstotheStartMenufolderonthetargetmachine.ThesecondDirectoryelementcreatesasubfolderontheStartMenucalledMyApplicationName,andgivesitanidforuselaterintheWiXproject.

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

inyourinstallerusingthe<Icon>element,thenreferenceitusingtheIconattributeontheShortcutelement.

Inadditiontocreatingtheshortcutthecomponentcontainstwootherimportantpieces.ThefirstisaRemoveFolderelement,whichensurestheApplicationProgramsFolderiscorrectlyremovedfromtheStartMenuwhentheuseruninstallstheapplication.Thesecondcreatesaregistryentryoninstallthatindicatestheapplicationisinstalled.ThisisrequiredasaShortcutcannotserveastheKeyPathforacomponentwheninstallingnon-advertisedshortcutsforthecurrentusers.FormoreinformationoncreatingregistryentriesseeHowTo:Writearegistryentryduringinstallation.

Step3:TellWindowsInstallertoinstalltheshortcutAfterdefiningthedirectorystructureandlistingtheshortcutstopackageintotheinstaller,thelaststepistotellWindowsInstallertoactuallyinstalltheshortcut.The<Feature>elementisusedtodothis.Thefollowingsnippetaddsareferencetotheshortcutcomponent,andshouldbeinsertedinsideaparentFeatureelement.

<ComponentRefId="ApplicationShortcut"/>

The<ComponentRef>elementisusedtoreferencethecomponentcreatedinStep2viatheIdattribute.

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-->

<ComponentRefId="ApplicationShortcut"/></Feature></Product></Wix>

HowTo:CreateaShortcuttoaWebpageWiXprovidessupportforcreatingshortcutstoInternetsitesaspartoftheinstallprocess.ThishowtodemonstratesreferencingthenecessaryutilitylibraryandaddinganInternetshortcuttoyourinstaller.ItassumesyouhavealreadyfollowedthestepsintheHowTo:CreateashortcutontheStartMenu.

Step1:AddtheWiXUtilityextensionslibrarytoyourprojectTheWiXsupportforInternetshortcutsisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommand-lineyouneedtoaddthefollowingtoyourcandleandlightcommandlines:

-extWiXUtilExtension

IfyouareusingWiXinVisualStudioyoucanaddtheextensionsusingtheAddReferencedialog:

1. OpenyourWiXprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd

Reference...3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog

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">

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.

HowTo:CreateanUninstallShortcutWheninstallinganapplicationitisacommonrequirementtoplaceashortcutontheuser'sStartMenutoprovideamethodofuninstallingtheapplication.ThishowtodemonstratesthestepsrequiredtocreateanuninstallshortcutonthestartmenuthatpassesallICEvalidationchecks.

ThishowtoassumesyouarestartingwiththesampledescribedtheHowTo:CreateaShortcutontheStartMenutopic.

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.

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>

<FeatureId="MainApplication"Title="MainApplication"Level="1"><ComponentRefId="myapplication.exe"/><ComponentRefId="documentation.html"/><ComponentRefId="ApplicationShortcut"/></Feature></Product></Wix>

HowTo:NGenManagedAssembliesDuringInstallationNGenduringinstallationcanimproveyourmanagedapplication'sstartuptimebycreatingnativeimagesofthemanagedassembliesonthetargetmachine.ThishowtodescribesusingtheWiXsupporttoNGenmanagedassembliesatinstalltime.

Step1:AddtheWiX.NETextensionslibrarytoyourprojectTheWiXsupportforNGenisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommand-lineyouneedtoaddthefollowingtoyourcandleandlightcommandlines:

-extWixNetFxExtension

IfyouareusingWiXinVisualStudioyoucanaddtheextensionsusingtheAddReferencedialog:

1. OpenyourWiXprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd

Reference...3. SelecttheWixNetFxExtension.dllassemblyfromthelistandclick

Add4. ClosetheAddReferencedialog

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">

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.

HowTo:ReferenceanotherDirectorySearchelementTheremaybetimeswhenyouneedtolocatedifferentfilesorsubdirectoriesunderthesamedirectory,andassigneachtoaseparateproperty.SinceyoucannotdefinethesameDirectorySearchelementmorethanonce,youmustuseaDirectorySearchRefelement.ToreferenceanotherDirectorySearchelement,youmustspecifythesameId,ParentId,andPathattributevaluesoryouwillgetunresolvedsymbolerrorswhenlinkingwithlight.exe.

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".

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.

HowTo:GettheparentdirectoryofafilesearchYoucansetapropertytotheparentdirectoryofafile.

Step1:DefinethesearchrootInthefollowingexample,thepathto[WindowsFolder]Microsoft.NETisdefinedastherootofthesearch.Ifyoudonotdefineasearchroot,WindowsInstallerwillsearchallfixeddrivesuptothedepthspecified.

<PropertyId="NGEN2DIR"><DirectorySearchId="Windows"Path="[WindowsFolder]"><DirectorySearchId="MS.NET"Path="Microsoft.NET"></DirectorySearch></DirectorySearch></Property>

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.

HowTo:ReadaRegistryEntryDuringInstallationInstallersoftenneedtolookupthevalueofaregistryentryduringtheinstallationprocess.Theresultingregistryvalueisoftenusedinaconditionalstatementlaterininstall,suchastoinstallaspecificcomponentifaregistryentryisnotfound.Thishowtodemonstratesreadinganintegervaluefromtheregistryandverifyingthatitexistsinalaunchcondition.

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.

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.

HowTo:WriteaRegistryEntryDuringInstallationWritingregistryentriesduringinstallationissimilartowritingfilesduringinstallation.Youdescribetheregistryhierarchyyouwanttowriteinto,specifytheregistryvaluestocreate,thenaddthecomponenttoyourfeaturelist.

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.

TheidattributeisomittedontheRegistryKeyandRegistryValueelementsbecausethereisnoneedtorefertotheseitemselsewhereintheWiXprojectfile.WiXwillauto-generateidsfortheelementsbasedontheregistrykey,value,andparentcomponentname.

Step2:TellWindowsInstallertoinstalltheentriesAfterdefiningthedirectorystructureandlistingtheregistryentriestopackageintotheinstaller,thelaststepistotellWindowsInstallertoactuallyinstalltheregistryentry.The<Feature>elementisusedtodothis.Thefollowingsnippetaddsareferencetotheregistryentriescomponent,andshouldbeinsertedinsideaparentFeatureelement.

<ComponentRefId="RegistryEntries"/>

The<ComponentRef>elementisusedtoreferencethecomponentcreatedinStep1viatheIdattribute.

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.

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.">

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>

<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>

HowTo:Checkfor.NETFrameworkVersionsWheninstallingapplicationswrittenusingmanagedcode,itisoftenusefultoverifythattheuser'smachinehasthenecessaryversionofthe.NETFrameworkpriortoinstallation.TheWiXsupportfordetecting.NETFrameworkversionsisincludedinaWiXextension,WixNetFxExtension.ThishowtodescribesusingtheWixNetFxExtensiontoverify.NETFrameworkversionsatinstalltime.Forinformationonhowtoinstallthe.NETFrameworkduringyourinstallationseeHowTo:Installthe.NETFrameworkUsingBurn.

Step1:AddWixNetFxExtensiontoyourprojectYoumustaddtheWixNetFxExtensiontoyourprojectpriortouse.IfyouareusingWiXonthecommandline,youneedtoaddthefollowingtoyourcandleandlightcommandlines:

-extWixNetFxExtension

IfyouareusingWiXinVisualStudio,youcanaddtheextensionusingtheAddReferencedialog:

1. OpenyourWiXprojectinVisualStudio.2. RightclickonyourprojectinSolutionExplorerandselectAdd

Reference....3. SelecttheWixNetFxExtension.dllassemblyfromthelistandclick

Add.4. ClosetheAddReferencedialog.

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">

Step3:ReferencetherequiredpropertiesinyourprojectWixNetFxExtensiondefinespropertiesforallcurrentversionsofthe.NETFramework,includingservicepacklevels.Tomakethesepropertiesavailabletoyourinstaller,youneedtoreferencethemusingthe<PropertyRef>element.Foreachpropertyyouwanttouse,addthecorrespondingPropertyReftoyourproject.Forexample,ifyouareinterestedindetecting.NETFramework2.0addthefollowing:

<PropertyRefId="NETFRAMEWORK20"/>

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.

HowTo:InstallDirectX9.0WithYourInstallerApplicationsthatrequirecomponentsfromDirectX9.0canbenefitfromincludingtheDirectX9.0Redistributableinsidetheirinstaller.Thissimplifiestheinstallationprocessforendusersandensurestherequiredcomponentsforyourapplicationarealwaysavailableonthetargetuser'smachine.

DirectX9.0canbere-distributedinseveraldifferentways,eachofwhichisoutlinedinMSDN'sInstallingDirectXwithDirectSetuparticle.Thishowtodescribesusingthedxsetup.exeapplicationtoinstallDirectX9.0onaVistamachineassumingtheapplicationbeinginstalledonlydependsonaspecificDirectXcomponent.

PriortoredistributingtheDirectXbinariesyoushouldreadandunderstandthelicenseagreementfortheredistributablefiles.ThelicenseagreementcanbefoundintheDocumentation\LicenseAgreements\DirectXRedist.txtfileinyourDirectXSDKinstallation.

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

preventtheuserfromseeingthefeatureinanyUIthatmaybepartofyourinstaller.

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.

Step3:IncludeprogresstextforthecustomactionIfyouareusingstandardWiXUIdialogsyoucanincludecustomprogresstextfordisplaywhiletheDirectXinstallationtakesplace.The<UI>and<ProgressText>elementsareused,asillustratedinthefollowingexample.

<UI><ProgressTextAction="InstallDirectX">InstallingDirectX9.0c</ProgressText></UI>

TheProgressTextelementusestheActionattributetoreferencethecustomactionbyitsuniqueid.ThevalueoftheProgressTextelementissettothedisplaytextfortheinstallprogress.

HowTo:Installthe.NETFrameworkUsingBurnApplicationswrittenusingthe.NETFrameworkoftenneedtobundlethe.NETframeworkandinstallitwiththeirapplication.Wix3.6andlatermakesthiseasywithBurn.

Step1:CreateabundleforyourapplicationFollowtheinstructionsinBuildingInstallationPackageBundles.

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>

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.

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"/>

</startup><wix.bootstrapper><hostassemblyName="MyBootstrapperApplicationAssembly"><supportedFrameworkversion="v3.5"/><supportedFrameworkversion="v4\Client"/><!--Exampleonly.Replacethehost/@assemblyNameattributewithanassemblythatimplementsBootstrapperApplication.--><hostassemblyName="$(var.MyMBA.TargetPath)"/></host></wix.bootstrapper></configuration>

HowTo:InstalltheVisualC++RedistributablewithyourinstallerIfyourapplicationdependsontheVisualC++runtimesyoucanincludethemaspartofyourinstallertosimplifytheinstallationexperienceforyourendusers.ThishowtodescribesincludingtheVisualC++runtimemergemodulesintoyourinstallerandexplainstheexpectedICEwarningsyouwillsee.

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.

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.

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.

HowTo:BuildaLocalizedVersionofYourInstallerOnceyouhavedescribedallthestringsinyourinstallerusinglanguagefiles,asdescribedinHowTo:Makeyourinstallerlocalizable,youcanthenbuildversionsofyourinstallerforeachsupportedlanguage.ThishowtoexplainsbuildingthelocalizedinstallersbothfromthecommandlineandusingVisualStudio.

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.

Option2:BuildinglocalizedinstallersusingVisualStudioVisualStudiowillautomaticallybuildlocalizedversionsofyourinstaller.IfyourWiXprojectincludesmultiple.wxlfiles,onelocalizedinstallerwillbebuiltforeachculture,unlessCulturestobuildisspecified.

Formoreinformation,seeSpecifyingculturestobuild

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:

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.

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

thefullylocalizedinstallers.

HowTo:MakeyourinstallerlocalizableWiXsupportsbuildinglocalizedinstallersthroughtheuseoflanguagefilesthatincludelocalizedstrings.Itisagoodpracticetoputallyourstringsinalanguagefileasyoucreateyoursetup,evenifyoudonotcurrentlyplanonshippinglocalizedversionsofyourinstaller.ThishowtodescribeshowtocreatealanguagefileanduseitsstringsinyourWiXproject.

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.

Step2:AddthelocalizedstringsLocalizedstringsaredefinedusingthe<String>element.EachelementconsistsofauniqueidforlaterreferenceinyourWiXprojectandthestringvalue.Forexample:

<StringId="ApplicationName">MyApplicationName</String><StringId="ManufacturerName">MyManufacturerName</String>

TheStringelementgoesinsidetheWixLocalizationelement,andyoushouldaddoneStringelementforeachpieceoftextyouneedtolocalize.

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.

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.

HowTo:RuntheInstalledApplicationAfterSetupOftenwhencompletingtheinstallationofanapplicationitisdesirabletooffertheusertheoptionofimmediatelylaunchingtheinstalledprogramwhensetupiscomplete.ThishowtodescribescustomizingthedefaultWiXUIexperiencetoincludeacheckboxandaWiXcustomactiontolaunchtheapplicationifthecheckboxischecked.

ThishowtoassumesyouhavealreadycreatedabasicWiXprojectusingthestepsoutlinedinHowTo:Addafiletoyourinstaller.

Step1:AddtheextensionlibrariestoyourprojectThiswalkthroughrequiresWiXextensionsforUIcomponentsandcustomactions.Theseextensionlibrariesmustmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommand-lineyouneedtoaddthefollowingtoyourcandleandlightcommandlines:

-extWixUIExtension-extWixUtilExtension

IfyouareusingVisualStudioyoucanaddtheextensionsusingtheAddReferencedialog:

1. RightclickonyourprojectinSolutionExplorerandselectAddReference...

2. SelecttheWixUIExtension.dllassemblyfromthelistandclickAdd3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog

Step2:AddUItoyourinstallerTheWiXMinimalUIsequenceincludesabasicsetofdialogsthatincludesafinisheddialogwithoptionalcheckbox.Toincludethesequenceinyourprojectaddthefollowingsnippetanywhereinsidethe<Product>element.

<UI><UIRefId="WixUI_Minimal"/></UI>

Todisplaythecheckboxonthelastscreenoftheinstallerincludethefollowingsnippetanywhereinsidethe<Product>element:

<PropertyId="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT"Value="LaunchMyApplicationName

TheWIXUI_EXITDIALOGOPTIONALCHECKBOXTEXTpropertyisprovidedbythestandardUIsequencethat,whenset,displaysthecheckboxandusesthespecifiedvalueasthecheckboxlabel.

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.

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).

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"

BinaryKey="WixCA"DllEntry="WixShellExec"Impersonate="yes"/></Product></Wix>

HowTo:ImplementaMajorUpgradeInYourInstallerWhencreatingan.msi-basedinstaller,youarestronglyencouragedtoincludelogicthatsupportsWindowsInstallermajorupgrades.Majorupgradesarethemostcommonformofupdatesfor.msi's,andincludingsupportinyourinitial.msireleasegivesyouflexibilityinthefuture.Withoutincludingsupportformajorupgradesyouriskgreatlycomplicatingyourdistributionstoryifyoueverneedtoreleaseupdateslateron.

Youcanusethefollowingstepstoenablemajorupgradesinyour.msi,buildmultipleversionsofyour.msiandtestmajorupgradescenarios.

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

attribute.Forexample,IfyouchoosetoscheduleitafterInstallInitialize,itwilllooklikethefollowing:

<MajorUpgradeSchedule="afterInstallInitialize"DowngradeErrorMessage="Alaterversionof[ProductName]isalreadyinstalled.Setupwillnowexit."

WindowsInstallerlooksforotherinstalled.msifileswiththesameUpgradeCodevalueduringtheFindRelatedProductsaction.IfyoudonotspecificallyscheduletheFindRelatedProductsactioninyoursetupauthoring,WiXwillautomaticallyscheduleitforyouwhenitcreatesyour.msi.

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.

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.

Howto:AuthorproductdependenciesTODO

HowTo:UseWiXExtensionsTheWiXextensionscanbeusedbothonthecommandlineandwithintheVisualStudioIDE.WhenyouuseWiXextensionsintheVisualStudioIDE,youcanalsoenableIntelliSenseforeachWiXextension.

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.

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.

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.

HowTo:GetaLogofYourInstallationforDebuggingWhenauthoringinstallersitisoftennecessarytogetalogoftheinstallationfordebuggingpurposes.Thisisparticularlyhelpfulwhentryingtodebugfilesearchesandlaunchconditions.Toobtainalogofaninstallationusethecommandlinemsiexectool:

msiexec/iMyApplication.msi/l*vMyLogFile.txt

ThiswillinstallyourapplicationandwriteaverboselogtoMyLogFile.txtinthecurrentdirectory.

IfyouneedtogetalogofyourinstallerwhenitislaunchedfromtheAdd/RemoveProgramsdialogyoucanenableWindowsInstallerloggingviatheregistry.

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.

HowTo:OptimizebuildspeedWiXprovidestwowaysofspeedingupthecreationofcabinetsforcompressingfiles:

Multithreadedcabinetcreation.Cabinetreuse.

MultithreadedcabinetcreationLightusesmultiplethreadstobuildmultiplecabinetsinasinglepackage.Unfortunately,becausetheCABAPIitselfisn'tmultithreaded,asinglecabinetisbuiltwithonethread.Lightusesmultiplethreadswhentherearemultiplecabinets,soeachcabinetisbuiltononethread.

Bydefault,Lightusesthenumberofprocessors/coresinthesystemasthenumberofthreadstousewhencreatingcabinets.YoucanoverridethedefaultusingLight's-ctswitchortheCabinetCreationThreadCountpropertyina.wixprojproject.

Youcanusemultiplecabinetsbothexternallyandembeddedinthe.msipackage(usingtheMedia/@EmbedCabattribute).

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.

HowTo:SpecifysourcefilesWiXprovidesthreewaysofidentifyingasetuppackage'spayload-thefilesthatareincludedinthesetupandinstalledontheuser'smachine.

Byfilenameanddirectorytree.Byexplicitsourcefile.Vianamedbinderpaths.

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

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

Ifthebuildtreeservingasyourpayloadsourceisalmostidenticaltothetreeofyourinstalledimageandyouhaveamoderate-to-deepdirectorytree,usingimplicitpathswillavoidrepetitioninyourauthoring.

Sourcedirectories

TheDirectory/@SourceNameattributecontrolsboththenameofthedirectorywhereLight.exelooksforfilesandthe"sourcedirectory"inthe.msipackage.Unlessyoualsowanttocontrolthesourcedirectory,justuseFileSource.

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.

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

offilesinseverallocationsandyouneedtosearchthoselocationsdifferentlyfordifferentcategoriesofpayloadsourcefiles,usingFile/@Sourcewiththe"!(bindpath.bucketname)"prefixmakesiteasytopickexplicitgroupsofsearchpaths.YoucanusemultipleunnamedbinderinputpathstoshortentheFile/@Sourcepathsand/ortheunnamedbinderpaths.

Forexample,apartialbuildsystemmayseparatebinaryandnon-binaryfilestodifferentpathsstoredonanetworksharewhilethelocaloverridebuildmaynothavethemseparated.ByprefixingtheFile/@Sourcevalueswiththeappropriatebindpathvariableuniquefilenamescanbereferredtowithjusttheirfilenameswhilefileswiththesamenameacrossplatformsuserelativepaths.

UsingStandardCustomActionsCustomactionsaddtheabilitytoinstallandconfiguremanynewtypesofresources.EachoftheseresourcetypeshasoneormoreelementsthatallowyoutoinstallthemwithyourMSIpackage.Theonlythingsyouneedtodoareunderstandtheappropriateelementsfortheresourcesyouwanttoinstallandsettherequiredattributesontheseelements.TheelementsneedtobeprefixedwiththeappropriatenamespacefortheWiXextensiontheyaredefinedin.YoumustpassthefullpathtotheextensionDLLaspartofthecommandlinestothecompilerandlinkersotheyautomaticallyaddtheallofthepropererrormessages,customactionrecords,andbinaryrecordsintoyourfinalMSI.

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:

1. Youmadeuseofa<User>elementundera<Component>element.ThisindicatesthatauseristobeinstalledaspartoftheMSIpackage,andtheWiXcompilerautomaticallyaddedtheappropriateMSItabledatausedbythecustomaction.

2. YoulinkedwiththeappropriateextensionDLL(WixUtilExtension.dll).Thiscausedthelinkertoautomaticallypullalloftherelevantcustomactions,errormessages,andbinarytablerowsintotheMSI.

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

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

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.

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.

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.

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

SHGetFolderPathCSIDL_PROFILEflag.

WIX_DIR_RECENT Per-usermostrecentlyuseddocumentsshortcutdirectory.EquivalenttotheSHGetFolderPathCSIDL_RECENTflag.

WIX_DIR_RESOURCES All-usersresourcedatadirectory.EquivalenttotheSHGetFolderPathCSIDL_RESOURCESflag.

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).

WixQueryOsDriverInfoproperties

WIX_WDDM_DRIVER_PRESENT Setto1ifthevideocarddriveronthetargetmachineisaWDDMdriver.ThispropertyisonlysetonmachinesrunningWindowsVistaorhigher.

WIX_DWM_COMPOSITION_ENABLED Setto1ifthetargetmachinehascompositionenabled.ThispropertyisonlysetonmachinesrunningWindowsVistaorhigher.

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.

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

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

QuietExecutionCustomActionTheQtExeccustomactionallowsyoutorunanarbitrarycommandlineinanMSI-basedsetupinsilentmode.QtExeciscommonlyusedtosuppressconsolewindowsthatwouldotherwiseappearappearwheninvokingtheexecutabledirectly.ThecustomactionislocatedintheWixCAlibrary,whichisapartoftheWixUtilExtension.

NaminginWiXv3.xandWiXv4.0PriortoWiXv3.10,onlyCAQuietExecandCAQuietExec64areavailable,whichusedthepropertiesQtExecCmdTimeout(usedforboth32-bitand64-bitcustomactions),QtExecCmdLine,andQtExec64CmdLine.

StartinginWiXv3.10,thosesameidentifiersareavailablebutthenew,preferredcustomactionnamesareWixQuietExecandWixQuietExec64withpropertiesnamedWixQuietExecCmdTimeout,WixQuietExec64CmdTimeout,WixQuietExecCmdLine,andWixQuietExec64CmdLine.

InWiXv4.0,onlytheWixQuietExecnameswillbesupported.

TheWixSilentExecactionsintroducedinWiXv3.10alreadysupportthenewnamingscheme.

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.

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.

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="&quot;[#MyExecutable.exe]&quot;"Before="QtExecDeferredExampleWithProperty"/><CustomActionId="QtExecDeferredExampleWithProperty"BinaryKey="WixCA"DllEntry="WixQuietExec"Execute="deferred"Return="check"Impersonate="no"/>...<InstallExecuteSequence>

<CustomAction="QtExecDeferredExampleWithProperty"After="TheActionYouWantItAfter"/></InstallExecuteSequence>

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="&quot;[#MyExecutable.exe]&quot;"Before="QtExecDeferredExampleWithProperty"/><CustomActionId="QtExecDeferredExampleWithProperty"BinaryKey="WixCA"DllEntry="WixQuietExec64"Execute="deferred"Return="check"Impersonate="no"/>...<InstallExecuteSequence><CustomAction="QtExecExample"After="TheImmediateActionYouWantItAfter"/><CustomAction="QtExecDeferredExampleWithProperty"After="TheDeferredActionYouWantItAfter"/></InstallExecuteSequence>

BuildinganMSIthatusesQtExecInordertouseQtExec,youmustincludeareferencetotheWixUtilExtensionwhenbuildingyourMSI.Todothis,addthecommandlineargument-extWixUtilExtension.dllwhencallingLight.exe.

ShellExecuteCustomActionTheWixShellExeccustomactioninwixca(partofWixUtilExtension)letsyouopendocumentorURLtargetsviatheWindowsshell.AcommonuseistolaunchreadmefilesorURLsusingtheirregistereddefaultapplicationsbasedontheirextension.NotethatWixShellExecutecanonlybeusedasanimmediatecustomactionasitlaunchesanapplicationwithoutwaitingforittoclose.WixShellExecreadsitstargetfromtheWixShellExecTargetproperty,formatsit,andthencallsShellExecutewiththeformattedvalue.Itusesthedefaultverb,whichisusually"open."Formoreinformation,seeShellExecuteFunction.

Forastep-by-stepexampleofhowtousetheShellExecutecustomactiontolaunchaprogramattheendofinstallseetheHowTo:RuntheInstalledApplicationAfterSetuptopic.

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:

<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.

WixExitEarlyWithSuccessCustomActionTheWixExitEarlyWithSuccesscustomactionisanimmediatecustomactionthatdoesnothingexceptreturnthevalueERROR_NO_MORE_ITEMS.ThisreturnvaluecausesWindowsInstallertoskipallremainingactionsinthe.msiandreturnaprocessexitcodethatindicatesasuccessfulinstallation.

Thiscustomactionisusefulincaseswhereyouwantsetuptoexitwithoutactuallyinstallinganything,butwantittoreturnsuccesstothecallingprocess.Acommonscenariowherethistypeofbehaviorisusefulisinanout-of-orderinstallationscenarioforan.msithatimplementsmajorupgrades.Whenauserhasversion2ofan.msiinstalledandthenattemptstoinstallversion1,thiscustomactioncanbeusedinconjunctionwiththeUpgradetabletodetectthatversion2isalreadyinstalledtocausesetuptoexitwithoutinstallinganythingandreturnsuccess.Ifanyapplicationsredistributeversion1ofthe.msi,theirinstallationprocesseswillcontinuetoworkeveniftheuserhasversion2ofthe.msiinstalledontheirsystem.

Thereare3stepsyouneedtotaketousetheWixExitEarlyWithSuccesscustomactioninyourMSI:

Step1:AddtheWiXutilitiesextensionslibrarytoyourprojectTheWiXsupportforWixExitEarlyWithSuccessisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommandlineyouneedtoaddthefollowingtoyourlightcommandline:

light.exemyproject.wixobj-extWixUtilExtension

IfyouareusingVotiveyoucanaddtheextensionusingtheAddReferencedialog:

1. OpenyourVotiveprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd

Reference...3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog

Step2:AddareferencetotheWixExitEarlyWithSuccesscustomactionToaddareferencetotheWixExitEarlyWithSuccesscustomaction,includethefollowinginyourWiXsetupauthoring:

<CustomActionRefId="WixExitEarlyWithSuccess"/>

ThiswillcauseWiXtoaddtheWixExitEarlyWithSuccesscustomactiontoyourMSI,scheduleitimmediatelyaftertheFindRelatedProductsactionandconditionittoonlyrunifthepropertynamedNEWERVERSIONDETECTEDisset.

Step3:AddlogictodefinetheNEWERVERSIONDETECTEDpropertyattheappropriatetimesInordertocausetheWixExitEarlyWithSuccesstorunatthedesiredtimes,youmustaddlogictoyourinstallertocreatetheNEWERVERSIONDETECTEDproperty.Toimplementthemajorupgradeexampledescribedabove,youcanaddanUpgradeelementlikethefollowing:

<UpgradeId="!(loc.Property_UpgradeCode)"><UpgradeVersionMinimum="$(var.ProductVersion)"OnlyDetect="yes"Property="NEWERVERSIONDETECTED"/></Upgrade>

WixFailWhenDeferredCustomActionWhenauthoringdeferredcustomactions(whicharecustomactionsthatchangethesystemstate)inanMSI,itisnecessarytoalsoprovideanequivalentsetofrollbackcustomactionstoundothesystemstatechangeincasetheMSIfailsandrollsback.TherollbackbehaviortypicallyneedstobehavedifferentlydependingoniftheMSIiscurrentlybeinginstalled,repairedoruninstalled.Thismeansthatthefollowingscenariosneedtobeaccountedforwhencodingandtestingasetofdeferredcustomactionstomakesurethattheyareworkingasexpectedduringbothsuccessandfailurecases:

1. Successfulinstall2. Failedinstall3. Successfulrepair4. Failedrepair5. Successfuluninstall6. Faileduninstall

ThefailurecasesareoftendifficulttosimulatebyunittestingthecustomactioncodedirectlybecausedeferredcustomactioncodetypicallydependsonstateinformationprovidedtoitbyWindowsInstallerduringanactiveinstallationsession.Asaresult,thistypeoftestingusuallyrequiresfaultinjectioninordertocausetherollbackcustomactionstobeexecutedatthepropertimesduringrealinstallationscenarios.

WiXincludesasimpledeferredcustomactionnamedWixFailWhenDeferredtohelpmakeiteasiertotestrollbackcustomactionsinanMSI.WixFailWhenDeferredwillalwaysfailwhenitisexecutedduringtheinstallation,repairoruninstallationofanMSI.AddingtheWixFailWhenDeferredcustomactiontoyourMSIallowsyoutoeasilyinjectafailureintoyourMSIinordertotestyourrollbackcustomactions.

Thereare3stepsyouneedtotaketousetheWixFailWhenDeferredcustomactiontotesttherollbackcustomactionsinyourMSI:

Step1:AddtheWiXutilitiesextensionslibrarytoyourprojectTheWiXsupportforWixFailWhenDeferredisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommandlineyouneedtoaddthefollowingtoyourlightcommandline:

light.exemyproject.wixobj-extWixUtilExtension

IfyouareusingVotiveyoucanaddtheextensionusingtheAddReferencedialog:

1. OpenyourVotiveprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd

Reference...3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog

Step2:AddareferencetotheWixFailWhenDeferredcustomactionToaddareferencetotheWixFailWhenDeferredcustomaction,includethefollowinginyourWiXsetupauthoring:

<CustomActionRefId="WixFailWhenDeferred"/>

ThiswillcauseWiXtoaddtheWixFailWhenDeferredcustomactiontoyourMSI,scheduleitimmediatelybeforetheInstallFinalizeactionandconditionittoonlyrunifthepropertyWIXFAILWHENDEFERRED=1.

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

WixGamingExtensionTheWixGamingExtensionletsyouregisteryourapplicationasagameinWindowsVistaandlater,inthreemaincategories:

GameExplorerintegrationwithgamedefinitionfileGameExplorertasksRichsaved-gamepreview

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.)

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.

Richsaved-gamepreviewWindowsVistaincludesashellhandlerthatletsgamesexposemetadataintheirsaved-gamefiles.Fordetails,seeRichSavedGames.Ifyourgamesupportsrichsavedgames,youcanregisteritfortherichsaved-gamepreviewusingtheWixGamingExtensionIsRichSavedGameattributeontheExtensionelement:

<ProgIdId="MyGameProgId"><ExtensionId="MyGameSave"gaming:IsRichSavedGame="yes"/></ProgId>

Implementationnote:TheGamingcompilerextensiontranslatestheIsRichSavedGameattributetorowsintheMSIRegistrytable.

WixNetfxExtensionTheWixNetfxExtensionincludesasetofcustomactionstocompilenativeimagesusingNgen.exe.Foranexample,seeHowTo:NGenmanagedassembliesduringinstallation.

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.

NetFx461Web .NetFramework4.6.1websetup.

NetFx461Redist .NetFramework4.6.1standalonesetup.

NetFx462Web .NetFramework4.6.2websetup.

NetFx462Redist .NetFramework4.6.2standalonesetup.

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

.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

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).

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

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).

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

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

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).

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).

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).

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).

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).

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

(%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

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.

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

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

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.

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

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.

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.

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

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

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.

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

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.

WINDOWSSDK61DIR ThelocationoftheWindowsSDK6.1installationroot.

WINDOWSSDK70ADIR ThelocationoftheWindowsSDK7.0ainstallationroot.ThispropertyisavailablestartingwithWiXv3.5.

UsingWixNetfxExtensionPropertiesTousetheWixNetfxExtensionpropertiesinanMSI,usethefollowingsteps:

AddPropertyRefelementsforitemslistedabovethatyouwanttouseinyourMSI.Addthe-ext<pathtoWixNetfxExtension.dll>commandlineparameterwhencallinglight.exetoincludetheWixNetfxExtensionintheMSIlinkingprocess.

Forexample:

<PropertyRefId="NETFRAMEWORK20"/>

WixBroadcastSettingChangeandWixBroadcastEnvironmentChangeCustomActionsTheWixBroadcastSettingChangeandWixBroadcastEnvironmentChangecustomactionsareimmediatecustomactionsthatsendaWM_SETTINGCHANGEmessagetoalltop-levelwindowsindicatingthatsettingshavechanged.WixBroadcastSettingChangeindicatesthatunspecifiedsettingshavechanged.WixBroadcastEnvironmentChangeindicatesthatenvironmentvariableshavechanged.

OtherprogramscanlistenforWM_SETTINGCHANGEandupdateanyinternalstatewiththenewsetting.

WindowsInstalleritselfsendstheWM_SETTINGCHANGEmessageforsettingsitchangeswhileprocessinganMSIpackagebutcannotdosoforchangesapackagemakesviacustomaction.Also,WindowsInstallerdoesnotsendWM_SETTINGCHANGEforenvironmentvariablechangeswhenarebootispending.

TherearetwostepsyouneedtotaketousetheWixBroadcastSettingChangeorWixBroadcastEnvironmentChangecustomactionsinyourMSIpackage:

Step1:AddtheWiXutilitiesextensionslibrarytoyourprojectWixBroadcastSettingChangeandWixBroadcastEnvironmentChangeareincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommandlineyouneedtoaddthefollowingtoyourlightcommandline:

light.exemyproject.wixobj-extWixUtilExtension

IfyouareusingVotiveyoucanaddtheextensionusingtheAddReferencedialog:

1. OpenyourVotiveprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd

Reference...3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog

Step2:AddareferencetotheWixBroadcastSettingChangeorWixBroadcastEnvironmentChangecustomactionsToaddareferencetotheWixBroadcastSettingChangeorWixBroadcastEnvironmentChangecustomactions,includeoneofthefollowingelementsinyourWiXsetupauthoring:

<CustomActionRefId="WixBroadcastSettingChange"/><CustomActionRefId="WixBroadcastEnvironmentChange"/>

ThiswillcauseWiXtoaddthecustomactiontoyourMSIandscheduleitimmediatelyaftertheInstallFinalizestandardaction.

WixVSExtensionTheWixVSExtensionincludesasetofcustomactionstomanagehelpcollections.ItalsoincludesasetofpropertiesandcustomactionsthatcanbeusedtodetectthepresenceofvariousversionsofVisualStudioandregisteradd-ins,projecttemplatesanditemtemplatesforuseinVisualStudio.

PropertiesVisualStudio.NET2003VisualStudio2005VisualStudio2008VisualStudio2010VisualStudio2012VisualStudio2013VisualStudio2015VisualStudio2017

CustomActions

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

VisualStudio2005projecttemplatesdirectory.

VS2005_SCHEMAS_DIR FullpathtotheVisualStudio2005XMLschemasdirectory.

VS2005PROJECTAGGREGATOR2 IndicateswhetherornottheVisualStudio2005projectaggregatorformanagedcodeadd-insisinstalledonthesystem.

VS2005_ROOT_FOLDER FullpathtotheVisualStudio2005rootinstallationdirectory.

VB2005EXPRESS_IDE Fullpathtovbexpress.exeifVisualBasic2005ExpressEditionisinstalledonthesystem.

VS2005_IDE_VB_PROJECTSYSTEM_INSTALLED Indicates

whetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualBasicprojectsystemisinstalledforit.

VC2005EXPRESS_IDE Fullpathtovcexpress.exeifVisualC++2005ExpressEditionisinstalledonthesystem.

VS2005_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualC++projectsystemisinstalledforit.

VCSHARP2005EXPRESS_IDE Fullpathtovcsexpress.exeifVisualC#2005ExpressEditionisinstalledonthesystem.

VS2005_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualC#projectsystemisinstalledforit.

VJSHARP2005EXPRESS_IDE Fullpathtovjsexpress.exeifVisualJ#2005ExpressEditionisinstalledonthesystem.

VS2005_IDE_VJSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualJ#projectsystemisinstalledforit.

VWD2005EXPRESS_IDE Fullpathtovwdexpress.exeifVisualWebDeveloper2005ExpressEditionisinstalledonthesystem.

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

ProjecttemplateforVisualStudio2005isinstalledonthesystem.Thisprojecttemplateisavailableasastandaloneadd-inandasapartofvisualStudio2005SP1.

VS2005_SP_LEVEL IndicatestheservicepacklevelforVisualStudio2005StandardEditionandhigher.

VSTF2005_SP_LEVEL IndicatestheservicepacklevelforVisualStudio2005TeamFoundation.

VB2005EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualBasic2005ExpressEdition.

VC2005EXPRESS_SP_LEVEL Indicatestheservicepack

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

whetherornottheJ#redistributablepackage2.0isinstalledonthesystem.

JSHARP_REDIST_20SE_INSTALLED IndicateswhetherornottheJ#redistributablepackage2.0secondeditionisinstalledonthesystem.

HereisacompletelistofpropertiesfortheVisualStudio2008productfamily:

Propertyname Meaning

VS90DEVENV Fullpathtodevenv.exeforVisualStudio2008ifitisinstalledonthesystem.

VS90_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2008itemtemplatesdirectory.

VS90_PROJECTTEMPLATES_DIR FullpathtotheVisualStudio2008project

templatesdirectory.

VS90_SCHEMAS_DIR FullpathtotheVisualStudio2008XMLschemasdirectory.

VS90_ROOT_FOLDER FullpathtotheVisualStudio2008rootinstallationdirectory.

VB90EXPRESS_IDE Fullpathtovbexpress.exeifVisualBasic2008ExpressEditionisinstalledonthesystem.

VS90_IDE_VB_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2008StandardEditionorhigherisinstalledandtheVisualBasicprojectsystemisinstalledforit.

VC90EXPRESS_IDE Fullpathtovcexpress.exeifVisualC++

2008ExpressEditionisinstalledonthesystem.

VS90_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2008StandardEditionorhigherisinstalledandtheVisualC++projectsystemisinstalledforit.

VCSHARP90EXPRESS_IDE Fullpathtovcsexpress.exeifVisualC#2008ExpressEditionisinstalledonthesystem.

VS90_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2008StandardEditionorhigherisinstalledandtheVisualC#projectsystemisinstalledforit.

VWD90EXPRESS_IDE Fullpathtovwdexpress.exe

ifVisualWebDeveloper2008ExpressEditionisinstalledonthesystem.

VS90_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2008StandardEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.

VS90_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudioTeamTestprojectsystemisinstalledonthesystem.

VS90_BOOTSTRAPPER_PACKAGE_FOLDER ThelocationoftheVisualStudio2008bootstrapperpackagefolder.

VS90_SP1 Indicateswhetherornotservicepack1forVisual

Studio2008StandardEditionandhigherisinstalled.

VB90EXPRESS_SP1 Indicateswhetherornotservicepack1forVisualBasic2008ExpressEditionisinstalled.

VC90EXPRESS_SP1 Indicateswhetherornotservicepack1forVisualC++2008ExpressEditionisinstalled.

VCSHARP90EXPRESS_SP1 Indicateswhetherornotservicepack1forVisualC#2008ExpressEditionisinstalled.

VWD90EXPRESS_SP1 Indicateswhetherornotservicepack1forVisualWebDeveloper2008ExpressEditionisinstalled.

DEXPLORE_2008_INSTALLED IndicateswhetherornottheDocumentExplorer2008runtimecomponentspackageisinstalledonthesystem.

HereisacompletelistofpropertiesfortheVisualStudio2010productfamily:

Propertyname Meaning

VS2010DEVENV Fullpathtodevenv.exeforVisualStudio2010ifitisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2010itemtemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_PROJECTTEMPLATES_DIR Fullpathtothe

VisualStudio2010projecttemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_SCHEMAS_DIR FullpathtotheVisualStudio2010XMLschemasdirectory.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_ROOT_FOLDER FullpathtotheVisualStudio2010rootinstallationdirectory.ThispropertyisavailablestartingwithWiXv3.5.

VB2010EXPRESS_IDE Fullpathtovbexpress.exeifVisualBasic2010ExpressEditionisinstalledonthesystem.Thispropertyisavailable

startingwithWiXv3.5.

VS2010_IDE_VB_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2010StandardEditionorhigherisinstalledandtheVisualBasicprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.5.

VC2010EXPRESS_IDE Fullpathtovcexpress.exeifVisualC++2010ExpressEditionisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2010StandardEditionorhigherisinstalledandtheVisualC++

projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.5.

VCSHARP2010EXPRESS_IDE Fullpathtovcsexpress.exeifVisualC#2010ExpressEditionisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2010StandardEditionorhigherisinstalledandtheVisualC#projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.5.

VWD2010EXPRESS_IDE Fullpathtovwdexpress.exeifVisualWebDeveloper2010

ExpressEditionisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2010StandardEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.5.

VPD2010EXPRESS_IDE Fullpathtovpdexpress.exeifVisualStudio2010ExpressforWindowsPhoneisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_VSTS_TESTSYSTEM_INSTALLED Indicates

whetherornottheVisualStudio2010TeamTestprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_DB_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010Databaseprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_VSD_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010Deploymentprojectsystem(setupproject)isinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_WIX_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010WindowsInstallerXMLprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_MODELING_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010Modelingprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_FSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010F#projectsystemisinstalledonthesystem.Thispropertyisavailablestartingwith

WiXv3.5.

VS2010_BOOTSTRAPPER_PACKAGE_FOLDER ThelocationoftheVisualStudio2010bootstrapperpackagefolder.ThispropertyisavailablestartingwithWiXv3.5.

HereisacompletelistofpropertiesfortheVisualStudio2012productfamily:

Propertyname Meaning

VS2012DEVENV Fullpathtodevenv.exeforVisualStudio2012ifitisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.

VS2012_EXTENSIONS_DIR FullpathtotheVisualStudio2012extensionsdirectory.ThispropertyisavailablestartingwithWiXv3.6.

VS2012_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2012itemtemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.6.

VS2012_PROJECTTEMPLATES_DIR FullpathtotheVisualStudio2012projecttemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.6.

VS2012_SCHEMAS_DIR FullpathtotheVisualStudio2012XMLschemasdirectory.ThispropertyisavailablestartingwithWiXv3.6.

VS2012_ROOT_FOLDER FullpathtotheVisualStudio2012rootinstallationdirectory.Thispropertyisavailable

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

higherisinstalledandtheVisualC#projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.6.

VWD2012EXPRESS_IDE Fullpathtovwdexpress.exeifVisualStudioExpress2012forWebisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.

VPD2012EXPRESS_IDE Fullpathtovpdexpress.exeifVisualStudio2012ExpressforWindowsPhoneisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.

VS2012_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2012

ProfessionalEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.6.

VS2012_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2012TeamTestprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.

VS2012_IDE_DB_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2012Databaseprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.

VS2012_IDE_WIX_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheWindowsInstallerXMLprojectsystemisinstalledonthesystemforVisualStudio2012.ThispropertyisavailablestartingwithWiXv3.6.

VS2012_IDE_MODELING_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2012Modelingprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.

VS2012_IDE_FSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2012F#projectsystemisinstalledonthesystem.Thispropertyisavailablestartingwith

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

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

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

ifVisualStudioExpress2013forWebisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.8.

VS2013WINEXPRESS_IDE Fullpathtovswinexpress.exeifVisualStudioExpress2013forWindowsisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.8.

VS2013WDEXPRESS_IDE Fullpathtowdexpress.exeifVisualStudioExpress2013forWindowsDesktopisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.8.

VPD2013EXPRESS_IDE Fullpathtovpdexpress.exeifVisualStudio2013ExpressforWindowsPhoneisinstalledonthesystem.This

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

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

VS2015DEVENV Fullpathtodevenv.exeforVisualStudio2015ifitisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.10.

VS2015_EXTENSIONS_DIR FullpathtotheVisualStudio2015extensionsdirectory.ThispropertyisavailablestartingwithWiXv3.10.

VS2015_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2015itemtemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.10.

VS2015_PROJECTTEMPLATES_DIR Fullpathto

theVisualStudio2015projecttemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.10.

VS2015_SCHEMAS_DIR FullpathtotheVisualStudio2015XMLschemasdirectory.ThispropertyisavailablestartingwithWiXv3.10.

VS2015_ROOT_FOLDER FullpathtotheVisualStudio2015rootinstallationdirectory.ThispropertyisavailablestartingwithWiXv3.10.

VS2015_IDE_VB_PROJECTSYSTEM_INSTALLED IndicateswhetherVisual

Studio2015ProfessionalEditionorhigherisinstalledandtheVisualBasicprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.10.

VS2015_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2015ProfessionalEditionorhigherisinstalledandtheVisualC++projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.10.

VS2015_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2015

ProfessionalEditionorhigherisinstalledandtheVisualC#projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.10.

VS2015_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2015ProfessionalEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.10.

VS2015_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisual

Studio2015TeamTestprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.10.

VS2015_IDE_MODELING_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2015Modelingprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.10.

VS2015_IDE_FSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2015F#projectsystemisinstalledonthesystem.This

propertyisavailablestartingwithWiXv3.10.

VS2015_BOOTSTRAPPER_PACKAGE_FOLDER ThelocationoftheVisualStudio2015bootstrapperpackagefolder.ThispropertyisavailablestartingwithWiXv3.10.

HereisacompletelistofpropertiesfortheVisualStudio2017productfamily:

Propertyname Meaning

VS2017DEVENV Fullpathtodevenv.exeforVisualStudio2017ifitisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.11.

VS2017_EXTENSIONS_DIR FullpathtotheVisualStudio2017

extensionsdirectory.ThispropertyisavailablestartingwithWiXv3.11.

VS2017_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2017itemtemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.11.

VS2017_PROJECTTEMPLATES_DIR FullpathtotheVisualStudio2017projecttemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.11.

VS2017_SCHEMAS_DIR FullpathtotheVisualStudio2017XMLschemasdirectory.

ThispropertyisavailablestartingwithWiXv3.11.

VS2017_ROOT_FOLDER FullpathtotheVisualStudio2017rootinstallationdirectory.ThispropertyisavailablestartingwithWiXv3.11.

VS2017_IDE_DIR FullpathtotheVisualStudio2017directorycontainingdevenv.exe.ThispropertyisavailablestartingwithWiXv3.11.

VS2017_IDE_VB_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2017ProfessionalEditionorhigherisinstalledand

theVisualBasicprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.11.

VS2017_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2017ProfessionalEditionorhigherisinstalledandtheVisualC++projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.11.

VS2017_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2017ProfessionalEditionorhigherisinstalledandtheVisual

C#projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.11.

VS2017_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2017ProfessionalEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.11.

VS2017_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2017TeamTestprojectsystemisinstalledon

thesystem.ThispropertyisavailablestartingwithWiXv3.11.

VS2017_IDE_MODELING_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2017Modelingprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.11.

VS2017_IDE_FSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2017F#projectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.11.

VS2017_BOOTSTRAPPER_PACKAGE_FOLDER ThelocationoftheVisualStudio2017bootstrapperpackagefolder.ThispropertyisavailablestartingwithWiXv3.11.

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

/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

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

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

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

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

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

/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.

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.

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.

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.

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

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

VS2013DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.10.

VS2015InstallVSTemplates Runsdevenv.exe/InstallVSTemplatesifVisualStudio2015ProfessionalEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2013DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.10.

VS2017Setup Runsdevenv.exe/setupifVisualStudio2017CommunityEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2017DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.11.

VS2017InstallVSTemplates Runsdevenv.exe/InstallVSTemplatesifVisualStudio2017CommunityEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2017DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.11.

UsingWixVSExtensionPropertiesorCustomActionsTousetheWixVSExtensionpropertiesorcustomactionsinanMSI,usethefollowingsteps:

AddPropertyReforCustomActionRefelementsforitemslistedabovethatyouwanttouseinyourMSI.Addthe-ext<pathtoWixVSExtension.dll>commandlineparameterwhencallinglight.exetoincludetheWixVSExtensionintheMSIlinkingprocess.

Forexample:

<PropertyRefId="VS2005_ROOT_FOLDER"/><CustomActionRefId="VS2005Setup"/>

Whenyoureferenceanyoftheabovepropertiesorcustomactions,theWixVSExtensionautomaticallyschedulesthecustomactionsandpullsinpropertiesusedinthecustomactionconditionsandexecutionlogic.

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.

Step1:AddtheWiXutilitiesextensionslibrarytoyourprojectTheWiXsupportforWixWaitForEventisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommandlineyouneedtoaddthefollowingtoyourlightcommandline:

light.exemyproject.wixobj-extWixUtilExtension

IfyouareusingVotiveyoucanaddtheextensionusingtheAddReferencedialog:

1. OpenyourVotiveprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd

Reference...3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog

Step2:AddareferencetotheWixWaitForEventcustomactionToaddareferencetotheWixWaitForEventimmediatecustomaction,includethefollowinginyourWiXsetupauthoring:

<CustomActionRefId="WixWaitForEvent"/>

ThiswillcauseWiXtoaddtheWaitWaitForEventcustomactiontoyourMSIasanimmediatecustomactionscheduledimmediatelybeforeInstallFinalize.Thiswillblocktheinstallationafterscriptgeneration.Youcanscheduleitanywhereelseinyoursequence.

ToaddareferencetotheWixWaitForEventDeferreddeferredcustomaction,includethefollowinginyourWiXsetupauthoring:

<CustomActionRefId="WixWaitForEventDeferred"/>

ThisdeferredcustomactionisscheduledimmediatelyafterInstallInitializesoitwillblockafterstartingscriptexecution.Youcanschedulethiscustomactionanywhereelseinyoursequenceaswell.

Youcanschedulebothcustomactionsinthesamepackage,butyouwillneedtosignaleitherofthenamedautomaticreseteventsdocumentedabovebothtimes.

Step3:BuildyourMSIandtestvariousscenariosOnceyou'vebuiltyourMSIpackageyoucaninstallitusingmsiexec.exe,Burn,orbyanyothermeansyouwish.WhenWindowsInstallerexecutesyourcustomaction,WindowsInstallerwillwaitforyoutosignaleithertheeventdocumentedabove.Dependingonthenamedeventyousignal,thecustomactionwillfailorsucceedcausingtheMSIorMSPpackagetofailorsucceed.

UsingPatchCreationPropertiesApatchcontainsthedifferencesbetweenoneormorepairsofWindowsInstallerpackages.ThetoolPatchWiz.dllintheWindowsSDKcomparespairsofpackagesandproducesapatchusingafilecalledaPatchCreationProperties(PCP)file.

ItisrecommendedthatyoudownloadthelatestWindowsSDKtogetthenewesttoolsforbuildingpatches.

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

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">

<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"

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.

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

BuildthePatchThePatch.wxsfileiscompiledintoaPCPfilethatisthenprocessedbyMsiMsp.exetoproductthepatchpackage.

candle.exepatch.wxslight.exepatch.wixobj-outpatch\patch.pcpmsimsp.exe-spatch\patch.pcp-ppatch\patch.msp-lpatch.log

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

newer,goto"Programs"then"Uninstallaprogram"intheControlPanel.Select"WiXPatchExampleProduct"andclicktheUninstallbutton.

RestrictionsPleasereviewrestrictionsonhowpatchesmustbebuilttoavoidproblemduringpatchinstallation.

RestrictionsforPatchesTherearedifferentrestrictionsforpatchesbasedonwhattypeofpatchistobeinstalled.Therearethreetypesofpatches:

SmallupdatesdonotchangetheProductVersionpropertyofatargetproductandtypicallyrepresentasmallsubsetoffilestobeupdated.MinorupgradesdochangetheProductVersionpropertyofatargetproductandtypicallyrepresentalargersubsetoffilestobeupdated.MinorupgradesmightalsobeinstalledasupgradeMSIs.MajorupgradeschangeboththeProductVersionandProductCodeandcontainallfilesinaproduct.Shippingmajorupgradesasapatchis,however,notrecommendedandWiXdoesnotsupportbuildingmajorupgradepatchesbecauseoftheproblemstheycreate.

Forinformationaboutrestrictionsforeachtypeofpatch,readChangingtheProductCode.

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

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

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.

UsingPurelyWiXApatchcanbecreatedpurelyinWiXusingthetoolsnamedTorch.exeandPyro.exe.Usingthesetoolseliminatestheneedtoperformadministrativeinstallsoreventobindtheupgradeproductwhich,forlargeproducts,canbeexhausting.

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

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">

<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>

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

fromwhichtransformswerecreatedafterfiltering.

candle.exepatch.wxslight.exepatch.wixobj-outpatch\patch.wixmsppyro.exepatch\patch.wixmsp-outpatch\patch.msp-tRTMpatch\diff.wixmst

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

newer,goto"Programs"then"Uninstallaprogram"intheControlPanel.Select"WiXPatchExampleProduct"andclicktheUninstallbutton.

RestrictionsInadditiontorestrictionsaboutwhatcanbeinapatchinorderforittoinstallanduninstallcorrectly,thefollowingrestrictionsensurethatyourpatchworkscorrectly.

Patchfamiliescanonlygrow

Patchfamiliesareusedtofilterresourcesthatshouldendupinapatch.Oncethepatchiscreated,thesepatchfamiliesdictatewhichpatchesaresuperseded.Ifaresourceisremovedfromapatchfamilyinanewerpatchandthatresourceiscontainedinanolderpatchwiththesamepatchfamily,thenwhentheolderpatchissuperseded,thatresourcewillberegressedbacktoitspreviousstatebeforetheolderpatchwasinstalled.

Notethatinorderforonepatchtosupersedeanyotherpatches,allpatchfamiliesmustbesuperseded.Asinglepatchfamilyisreferencedintheexampleaboveforsimplicity.

Certainelementscannotbeaddedtouninstallablepatches

Therearecertainelementsreferencedinrestrictionsthatcannotbeaddedormodifiedifthepatchistobeuninstallable.IfaPatch/@AllowRemovalissetto"yes"andanyoftheseelementsareaddedormodified,Pyro.exewillreturnanerror.TheseelementscompileintotablesthatWindowsInstallerrestrictsinpatches,soWiXinformsyouandpreventsyoufromcreatingapatchthatisnotuninstallablewhenyouwantittobeuninstallable.

ConditionElement(BalExtension)

DescriptionConditionsforabundle.Theconditionisspecifiedintheinnertextoftheelement.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerText(xs:string)Theconditionthatmustevaluatetotruefortheinstallationtocontinue.

ChildrenNone

Attributes

Name Type Description Required

Message String Setthevaluetothetexttodisplaywhentheconditionfailsandtheinstallationmustbeterminated.

Yes

SeeAlsoBalSchema

OverridableAttribute(BalExtension)

DescriptionWhensetto"yes",letstheuseroverridethevariable'sdefaultvaluebyspecifyinganothervalueonthecommandline,intheformVariable=Value.Otherwise,WixStdBAwon'toverwritethedefaultvalueandwilllog"Ignoringattempttosetnon-overridablevariable:'BAR'."

WindowsInstallerreferencesNone

ParentsVariable

SeeAlsoBalSchema

PrereqSupportPackageAttribute(BalExtension)

DescriptionWhensetto"yes",thePrereqBAwillplanthepackagetobeinstalledifitsInstallConditionis"true"orempty.

WindowsInstallerreferencesNone

ParentsExePackage,MsiPackage,MspPackage,MsuPackage

SeeAlsoBalSchema

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

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoBalSchema

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoBalSchema

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

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

EnumerationTypePossiblevalues:{high,low,medium,mszip,none}

SeeAlsoBalSchema

DiskIdType(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.

PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.

SeeAlsoBalSchema

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoBalSchema

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

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.

SeeAlsoBalSchema

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoBalSchema

LocalizableInteger(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.

PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.

SeeAlsoBalSchema

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

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.

SeeAlsoBalSchema

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}

SeeAlsoBalSchema

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoBalSchema

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

VersionType(SimpleType)

DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.

PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.

SeeAlsoBalSchema

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

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

YesNoAlwaysType(SimpleType)

DescriptionValuesofthistypewilleitherbe"always","yes",or"no".

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoBalSchema

YesNoButtonType(SimpleType)

DescriptionValuesofthistypewilleitherbe"button","yes"or"no".

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoBalSchema

YesNoDefaultType(SimpleType)

DescriptionValuesofthistypewilleitherbe"default","yes",or"no".

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoBalSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoBalSchema

UseUILanguagesAttribute(BalExtension)

DescriptionWhensetto"yes",causesWixStdBA/PrereqBAtousetheuser'scontrolpanellanguagesettings.Otherwise,thepreviousAPI(whichuseslocaleinsteadoflanguage)isusedtomaintaincompatiblitywithpreviousversionsofWiX.OnVistaandnewerplatforms,thisvaluesetto"yes"willsearchallspecifieduserlanguages,includingfallbacklanguages,inorder.

WindowsInstallerreferencesNone

ParentsBootstrapperApplication,BootstrapperApplicationRef

SeeAlsoBalSchema

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

whether.NETneedstobeinstalledbeforethemanagedbootstrapperapplicationcanbelaunched.

ThemeFile String SourcefileofthethemeXML.

SeeAlsoBalSchema

WixStandardBootstrapperApplicationElement(BalExtension)

DescriptionConfiguresWixStandardBootstrapperApplicationforaBundle.

WindowsInstallerreferencesNone

ParentsBootstrapperApplicationRef

InnerTextNone

ChildrenNone

Attributes

Name Type Description

LaunchArguments String Ifset,WixStdBAwillsupplytheseargumentswhenlaunchingtheapplicationspecifiedbytheLaunchTargetattribute.ThestringvaluecanbeformattedusingBurnvariablesenclosedinbrackets,torefertoinstallationdirectoriesandsoforth.

LaunchHidden YesNoType Ifsetto"yes",WixStdBAwilllaunchtheapplicationspecifiedbytheLaunchTargetattribute

withtheSW_HIDEflag.ThisattributeisignoredwhentheLaunchTargetElevatedIdattributeisspecified.

LaunchTarget String Ifset,thesuccesspagewillshowaLaunchbuttontheusercanusetolaunchtheapplicationbeinginstalled.ThestringvaluecanbeformattedusingBurnvariablesenclosedinbrackets,torefertoinstallationdirectoriesandsoforth.

LaunchTargetElevatedId String IdofthetargetApprovedExeForElevationelement.IfsetwithLaunchTarget,WixStdBAwilllaunchtheapplicationthroughtheEngine'sLaunchApprovedExemethodinsteadofthroughShellExecute.

LaunchWorkingFolder String WixStdBAwillusethisworkingfolderwhenlaunchingthespecifiedapplication.ThestringvaluecanbeformattedusingBurnvariablesenclosedinbrackets,torefertoinstallationdirectoriesandsoforth.ThisattributeisignoredwhentheLaunchTargetElevatedIdattributeisspecified.

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

explicitlysetto"no")istotreatdowngradeattemptsasfailures.

SuppressOptionsUI YesNoType Ifsetto"yes",theOptionsbuttonwillnotbeshownandtheuserwillnotbeabletochooseaninstallationdirectory.

SuppressRepair YesNoType Ifsetto"yes",theRepairbuttonwillnotbeshowninthemaintenance-modeUI.

ThemeFile String SourcefileofthethemeXML.

SeeAlsoBalSchema

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:

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

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.

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

SoapActivated YesNoType

SoapBaseUrl String

SoapMailTo String

SoapVRoot String

SRPEnabled YesNoType

SRPTrustLevel Enumeration Thisattribute'svaluemustbeoneofthefollowing:disallowed

fullyTrusted

ThreeGigSupportEnabled YesNoType

SeeAlsoComplusSchema

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.

Description String

Name String Nameoftheapplicationrole. Yes

SeeAlsoComplusSchema

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

shouldbeprovidedwiththeidofaComPlusApplicationelementrepresentingtheapplicationtheassemblyistoberegisteredin.Thisattributecanbeomittedfora.NETassemblyeveniftheapplicationisnotachildofaComPlusApplicationelement.

AssemblyName String ThenameoftheassemblyusedtoidentifytheassemblyintheGAC.ThisattributecanbeprovidedonlyifDllPathFromGACissetto“yes”.

DllPath String ThepathtolocatetheassemblyDLLduringregistration.ThisattributeshouldbeprovidedifDllPathFromGACisnotsetto“yes”.

DllPathFromGAC YesNoType IndicatesthattheDLLpathshouldbeextractedfromtheGACinsteadforbeingprovidedintheDllPathattribute.Ifthisattributeissetto“yes”,thenameofthe

assemblycanbeprovidedusingtheAssemblyNameattribute.Or,ifthisAssemblyNameattributeismissing,thenamewillbeextractedfromtheMsiAssemblyNametableusingtheidoftheparentComponentelement.

EventClass YesNoType IndicatesthattheassemblyistobeinstalledasaneventclassDLL.Thisattributeisonlyvalidfornativeassemblies.TheassemblywillbeinstalledwiththeCOM+catalog’sInstallEventClass()function.

PSDllPath String Anoptionalpathtoanexternalproxy/stubDLLfortheassembly.

RegisterInCommit YesNoType Indicatesthattheassemblyshouldbeinstalledinthecommitcustomactioninsteadofthenormaldeferredcustomaction.Thisisnecessarywheninstalling.NETassembliestotheGACinthesameinstallation,asthe

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

ComPlusAssemblyDependencyElement(ComplusExtension)

DescriptionDefinesadependencybetweentwoassemblies.Thiselementaffectstheorderinwhichassemblesareregistered.Anyassembliesreferencedbythiselementareguarantiedtoberegisteredbefore,andunregisteredafter,theassemblyreferencedbytheparentComPlusAssemblyelement.

WindowsInstallerreferencesNone

ParentsComPlusAssembly

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

RequiredAssembly String ReferencetotheidoftheassemblyrequiredbytheparentComPlusAssemblyelement.

Yes

RemarksItisonlynecessarytoexplicitlyspecifydependenciesbetweenassembliescontainedinthesamepackage(MSIorMSM).Assembliesmergedintoapackagefromamergemodulewillalwaysbeinstalledbeforeanyassembliesspecifiedinthebasepackage.Assembliesmergedinfromdifferentmergemodulesare

sequencedusingtheModuleDependencyMSItable.Itisnotpossibletohavecrossdependenciesbetweenmergemodulesorhaveanassemblyinamergemoduledependonanassemblyinthebasepackage.

SeeAlsoComplusSchema

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

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

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

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.

Group String ForeignkeyintotheGrouptable.

Yes

SeeAlsoComplusSchema

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

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

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.

SeeAlsoComplusSchema

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

Name String Nameofthepartition.Thisattributecanbeomittediftheelementisalocater,andavalueisprovidedforthePartitionIdattribute.

PartitionId String Idforthepartition.Thisattributecanbeomitted,inwhichcaseanidwillbegeneratedoninstall.Iftheelementisalocater,thisattributecanbeomittedifavalueisprovidedfortheNameattribute.

SeeAlsoComplusSchema

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

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

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.

SeeAlsoComplusSchema

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.

SeeAlsoComplusSchema

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.

SeeAlsoComplusSchema

ComPlusSubscriptionElement(ComplusExtension)

DescriptionDefinesaneventsubscriptionforaCOM+component.

WindowsInstallerreferencesNone

ParentsComPlusComponent,Component

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Identifierfortheelement.

Yes

Component String IftheelementisnotachildofaComPlusComponentelement,thisattributeshouldbeprovidedwiththeidofaComPlusComponentelementrepresentingthecomponentthesubscriptionistobecreatedfor.

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

valueisnotprovidedforthisattribute,anidwillbegeneratedduringinstallation.

UserName String

SeeAlsoComplusSchema

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.

User String ForeignkeyintotheUsertable.

Yes

SeeAlsoComplusSchema

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

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

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoComplusSchema

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoComplusSchema

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

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

EnumerationTypePossiblevalues:{high,low,medium,mszip,none}

SeeAlsoComplusSchema

DiskIdType(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.

PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.

SeeAlsoComplusSchema

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoComplusSchema

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

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.

SeeAlsoComplusSchema

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoComplusSchema

LocalizableInteger(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.

PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.

SeeAlsoComplusSchema

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

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.

SeeAlsoComplusSchema

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}

SeeAlsoComplusSchema

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoComplusSchema

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

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

VersionType(SimpleType)

DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.

PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.

SeeAlsoComplusSchema

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

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

YesNoAlwaysType(SimpleType)

DescriptionValuesofthistypewilleitherbe"always","yes",or"no".

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoComplusSchema

YesNoButtonType(SimpleType)

DescriptionValuesofthistypewilleitherbe"button","yes"or"no".

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoComplusSchema

YesNoDefaultType(SimpleType)

DescriptionValuesofthistypewilleitherbe"default","yes",or"no".

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoComplusSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoComplusSchema

ProviderKeyAttribute(DependencyExtension)

DescriptionOptionalattributetoexplicitlyauthortheproviderkeyfortheentirebundle.

WindowsInstallerreferencesNone

ParentsBundle

Remarks

Thisproviderkeyisdesignedtopersistthroughoutcompatibleupgradessothatdependentbundlesdonothavetobereinstalledandwillnotpreventyourproductfrombeingupgraded.Ifthisattributeisnotauthored,thevalueistheautomatically-generatedbundleIDandwillnotautomaticallysupportupgrades.

Onlyasingleproviderkeyissupportedforbundles.Toauthorthatyourbundleprovidesadditionalfeaturesviapackages,authordifferentproviderkeysforyourpackages.

SeeAlsoDependencySchema,Provides

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

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

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

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

HowTo:Authorproductdependencies

SeeAlsoDependencySchema,RequiresRef

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

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

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoDependencySchema

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,

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

DifxappSchema

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

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoDifxappSchema

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoDifxappSchema

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

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

EnumerationTypePossiblevalues:{high,low,medium,mszip,none}

SeeAlsoDifxappSchema

DiskIdType(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.

PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.

SeeAlsoDifxappSchema

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoDifxappSchema

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

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.

SeeAlsoDifxappSchema

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoDifxappSchema

LocalizableInteger(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.

PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.

SeeAlsoDifxappSchema

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

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.

SeeAlsoDifxappSchema

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}

SeeAlsoDifxappSchema

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoDifxappSchema

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

VersionType(SimpleType)

DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.

PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.

SeeAlsoDifxappSchema

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

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

YesNoAlwaysType(SimpleType)

DescriptionValuesofthistypewilleitherbe"always","yes",or"no".

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoDifxappSchema

YesNoButtonType(SimpleType)

DescriptionValuesofthistypewilleitherbe"button","yes"or"no".

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoDifxappSchema

YesNoDefaultType(SimpleType)

DescriptionValuesofthistypewilleitherbe"default","yes",or"no".

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoDifxappSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoDifxappSchema

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,

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.

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

specified.

IfyouuseProtocolandalsoFileorPrograminthesameFirewallExceptionelement,theexceptionwillfailtoinstallonWindowsXPandWindowsServer2003.IgnoreFailure="yes"canbeusedtoignoretheresultingfailure,buttheexceptionwillnotbeadded.Thisattribute'svaluemustbeoneofthefollowing:tcp

udp

Scope Enumeration Thescopeofthisfirewallexception,whichindicateswhetherincomingconnectionscancomefromanycomputerincludingthoseontheInternetoronlythoseonthelocalnetworksubnet.Tomorepreciselyspecifyallowedremoteaddress,specifyacustomscopeusingRemoteAddresschildelements.Thisattribute'svaluemustbeoneofthefollowing:any

localSubnet

SeeAlsoFirewallSchema

RemoteAddressElement(FirewallExtension)

DescriptionAremoteaddresstowhichtheportorprogramcanlisten.AddressformatsvarybasedontheversionofWindowsandWindowsFirewalltheprogramisbeinginstalledon.ForWindowsXPSP2andWindowsServer2003SP1,seeRemoteAddressesProperty.ForWindowsVistaandWindowsServer2008,seeRemoteAddressesProperty.

WindowsInstallerreferencesNone

ParentsFirewallException

InnerText(xs:string)Aremoteaddress.

ChildrenNone

AttributesNone

SeeAlsoFirewallSchema

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

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoFirewallSchema

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoFirewallSchema

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

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

EnumerationTypePossiblevalues:{high,low,medium,mszip,none}

SeeAlsoFirewallSchema

DiskIdType(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.

PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.

SeeAlsoFirewallSchema

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoFirewallSchema

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

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.

SeeAlsoFirewallSchema

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoFirewallSchema

LocalizableInteger(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.

PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.

SeeAlsoFirewallSchema

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

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.

SeeAlsoFirewallSchema

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}

SeeAlsoFirewallSchema

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoFirewallSchema

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

VersionType(SimpleType)

DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.

PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.

SeeAlsoFirewallSchema

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

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

YesNoAlwaysType(SimpleType)

DescriptionValuesofthistypewilleitherbe"always","yes",or"no".

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoFirewallSchema

YesNoButtonType(SimpleType)

DescriptionValuesofthistypewilleitherbe"button","yes"or"no".

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoFirewallSchema

YesNoDefaultType(SimpleType)

DescriptionValuesofthistypewilleitherbe"default","yes",or"no".

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoFirewallSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoFirewallSchema

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

resource,ifitdoesn'texistintheparentfile.

SeeAlsoGamingSchema

IsRichSavedGameAttribute(GamingExtension)

DescriptionRegistersthisextensionfortherichsavedgamespropertyhandleronWindowsVistaandlater.

WindowsInstallerreferencesNone

ParentsExtension

SeeAlsoGamingSchema

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

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

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoGamingSchema

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoGamingSchema

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

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

EnumerationTypePossiblevalues:{high,low,medium,mszip,none}

SeeAlsoGamingSchema

DiskIdType(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.

PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.

SeeAlsoGamingSchema

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoGamingSchema

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

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.

SeeAlsoGamingSchema

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoGamingSchema

LocalizableInteger(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.

PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.

SeeAlsoGamingSchema

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

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.

SeeAlsoGamingSchema

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}

SeeAlsoGamingSchema

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoGamingSchema

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

VersionType(SimpleType)

DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.

PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.

SeeAlsoGamingSchema

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

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

YesNoAlwaysType(SimpleType)

DescriptionValuesofthistypewilleitherbe"always","yes",or"no".

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoGamingSchema

YesNoButtonType(SimpleType)

DescriptionValuesofthistypewilleitherbe"button","yes"or"no".

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoGamingSchema

YesNoDefaultType(SimpleType)

DescriptionValuesofthistypewilleitherbe"default","yes",or"no".

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoGamingSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoGamingSchema

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

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

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoHttpSchema

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoHttpSchema

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

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

EnumerationTypePossiblevalues:{high,low,medium,mszip,none}

SeeAlsoHttpSchema

DiskIdType(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.

PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.

SeeAlsoHttpSchema

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoHttpSchema

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

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.

SeeAlsoHttpSchema

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoHttpSchema

LocalizableInteger(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.

PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.

SeeAlsoHttpSchema

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

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.

SeeAlsoHttpSchema

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}

SeeAlsoHttpSchema

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoHttpSchema

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

VersionType(SimpleType)

DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.

PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.

SeeAlsoHttpSchema

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

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

YesNoAlwaysType(SimpleType)

DescriptionValuesofthistypewilleitherbe"always","yes",or"no".

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoHttpSchema

YesNoButtonType(SimpleType)

DescriptionValuesofthistypewilleitherbe"button","yes"or"no".

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoHttpSchema

YesNoDefaultType(SimpleType)

DescriptionValuesofthistypewilleitherbe"default","yes",or"no".

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoHttpSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoHttpSchema

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

SERVICE\ServiceInstallName".ThismaybeeitheraSIDoranaccountnameinaformatthatLookupAccountNamesupports.WhenusingaSID,anasteriskmustbeprepended.Forexample,"*S-1-5-18".

SeeAlsoHttpSchema

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).

ignoreKeepstheexistingURLreservation.

failTheinstallationfails.

Id String UniqueIDofthisURLreservation.Ifthisattributeisnotspecified,anidentifierwillbegeneratedautomatically.

Sddl String SecuritydescriptortoapplytotheURLreservation.Can'tbespecifiedwhenusingchildrenUrlAceelements.

Url String TheUrlPrefixstringthatdefinestheportionoftheURLnamespacetowhichthisreservationpertains.

Yes

SeeAlsoHttpSchema

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

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

localMachine

StoreName Enumeration Thisattribute'svaluemustbeoneofthefollowing:ca

Containsthecertificatesofcertificateauthoritiesthattheusertruststoissuecertificatestoothers.Certificatesinthesestoresarenormallysuppliedwiththeoperatingsystemorbytheuser'snetworkadministrator.

myUsethe"personal"valueinstead.

personalContainspersonalcertificates.Thesecertificateswillusuallyhaveanassociatedprivatekey.Thisstoreisoftenreferredtoasthe"MY"certificatestore.

request

rootContainsthe

Yes

certificatesofcertificateauthoritiesthattheusertruststoissuecertificatestoothers.Certificatesinthesestoresarenormallysuppliedwiththeoperatingsystemorbytheuser'snetworkadministrator.Certificatesinthisstorearetypicallyself-signed.

otherPeopleContainsthecertificatesofthosethattheusernormallysendsenvelopedmessagestoorreceivessignedmessagesfrom.SeeMSDNdocumentationformoreinformation.

trustedPeopleContainsthecertificatesofthosedirectlytrustedpeopleandresources.SeeMSDNdocumentationformoreinformation.

trustedPublisher

Containsthecertificatesofthosepublisherswhoaretrusted.SeeMSDNdocumentationformoreinformation.

SeeAlsoIisSchema,CertificateRef

CertificateRefElement(IisExtension)

DescriptionAssociatesacertificatewiththeparentWebSite.TheCertificateelementshouldbeinthesameComponentastheparentWebSite.

WindowsInstallerreferencesNone

ParentsWebSite

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifierofthereferencedCertificate.

Yes

SeeAlsoIisSchema,Certificate

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.

SeeAlsoIisSchema

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

RecycleTimeElement(IisExtension)

DescriptionIIS6ApplicationPoolRecycleTimeson24hourclock.

WindowsInstallerreferencesNone

ParentsWebAppPool

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Value String Pattern:'\d{1,2}:\d{2}'. Yes

SeeAlsoIisSchema

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

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoIisSchema

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoIisSchema

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

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

EnumerationTypePossiblevalues:{high,low,medium,mszip,none}

SeeAlsoIisSchema

DiskIdType(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.

PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.

SeeAlsoIisSchema

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoIisSchema

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

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.

SeeAlsoIisSchema

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoIisSchema

LocalizableInteger(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.

PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.

SeeAlsoIisSchema

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

PercentType(SimpleType)

DescriptionValuesofthistypeareanyintegersbetween0and100,inclusive.

xs:nonNegativeIntegerTypexs:maxInclusivevalue='100'

SeeAlsoIisSchema

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.

SeeAlsoIisSchema

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}

SeeAlsoIisSchema

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoIisSchema

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

VersionType(SimpleType)

DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.

PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.

SeeAlsoIisSchema

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

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

YesNoAlwaysType(SimpleType)

DescriptionValuesofthistypewilleitherbe"always","yes",or"no".

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoIisSchema

YesNoButtonType(SimpleType)

DescriptionValuesofthistypewilleitherbe"button","yes"or"no".

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoIisSchema

YesNoDefaultType(SimpleType)

DescriptionValuesofthistypewilleitherbe"default","yes",or"no".

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoIisSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoIisSchema

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.

Whenthisattributehasthevalue"*"thenanyIPaddressincludingthe"AllUnassigned"IPaddresswillbelocated

WhentheWebAddressispartofaWebSiteelementusedtocreateanewwebsitethefollowingrulesareused:

Whenthisattributeisnotspecifiedorthevalueis"*"the"AllUnassigned"IPaddresswillbeused.WhenthisattributeisexplicitlyspecifiedtheIPaddresswillusethatvalue.

TheIPattributecancontainaformattedstringthatisprocessedatinstalltimetoinsertthevaluesofpropertiesusing[PropertyName]syntax.

Port String Yes

Secure YesNoType Determinesifthisaddressrepresentsasecurebinding.Thedefaultis'no'.

SeeAlsoIisSchema

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.

Buffer YesNoDefaultType Setstheoptionthatenablesresponsebufferingintheapplication,whichallowsASPscripttosetresponseheadersanywhereinthescript.

ClientDebugging YesNoDefaultType EnableASPclient-sidescriptdebugging.

DefaultScript Enumeration Setsthedefaultscriptlanguageforthesite.Thisattribute'svaluemustbeoneofthefollowing:VBScript

JScript

Isolation Enumeration Setstheapplicationisolationlevelforthisapplicationforpre-IIS6applications.Thisattribute'svaluemustbeoneofthefollowing:low

Meanstheapplication

executeswithintheIISprocess.

mediumExecutespooledinaseparateprocess.

highMeansexecutionaloneinaseparateprocess.

Name String Setsthenameofthisapplication.

Yes

ParentPaths YesNoDefaultType Setstheparentpathsoption,whichallowsaclienttouserelativepathstoreachparentdirectoriesfromthisapplication.

ScriptTimeout Integer SetsthetimeoutvalueinsecondsforexecutingASPscripts.

ServerDebugging YesNoDefaultType EnableASPserver-sidescriptdebugging.

SessionTimeout Integer Setsthetimeoutvaluefor

sessionsinminutes.

WebAppPool String ReferencestheIdattributeofaWebAppPoolelementtouseastheapplicationpoolforthisapplicationinIIS6applications.

SeeAlsoIisSchema

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

Extensionattributecompletely.

Script YesNoType

Verbs String

SeeAlsoIisSchema

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

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

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

WebSite String ReferencestheIdattributeforaWebSiteelementinwhichthisdirectorybelongs.RequiredwhenthiselementisnotachildofaWebSiteelement.

SeeAlsoIisSchema

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

metabaseproperty.

AccessSSL128 YesNoType AvalueoftrueindicatesthatfileaccessrequiresSSLfilepermissionprocessingwithaminimumkeysizeof128bits,withorwithoutaclientcertificate.ThiscorrespondstoAccessSSL128flagforAccessSSLFlagsIISmetabaseproperty.

AccessSSLMapCert YesNoType ThiscorrespondstoAccessSSLMapCertflagforAccessSSLFlagsIISmetabaseproperty.

AccessSSLNegotiateCert YesNoType ThiscorrespondstoAccessSSLNegotiateCertflagforAccessSSLFlagsIISmetabaseproperty.

AccessSSLRequireCert YesNoType ThiscorrespondstoAccessSSLRequireCertflagforAccessSSLFlagsIISmetabaseproperty.

AnonymousAccess YesNoType SetstheEnableAnonymousAccesscheckbox,whichmapsanonymoususerstoaWindowsuseraccount.Whensettingthisto'yes'youshouldalsoprovidetheuseraccountusingtheAnonymousUserattribute,anddeterminewhatsettingtouseforthe

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.

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.

Defaultsto'no.'

Read YesNoType

Script YesNoType

WindowsAuthentication YesNoType SetstheWindowsAuthenticationoption,whichenablesintegratedWindowsauthenticationtobeusedonthesite.Defaultsto'no.'

Write YesNoType

SeeAlsoIisSchema

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.

SeeAlsoIisSchema

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

file.Thisshouldusuallybeavaluelike'[!FileId]',where'FileId'isthefileidentifierofthefilterexecutablefile.

WebSite String Specifiestheparentwebsiteforthisfilter(ifthereisone).Ifthisisaglobalfilter,thenthisattributeshouldnotbespecified.

SeeAlsoIisSchema

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

Format

SeeAlsoIisSchema

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:

FortheIdsIIs5IsolationModeandLogInUTF8,novalueshouldbespecifiedsincethepresenceofthispropertyindicatesthatthesettingshouldbeset.FortheMaxGlobalBandwidthId,thevalueshouldbespecifiedinkilobytes.Thevalueshouldbeabase10number.ETagChangeNumbersetsthemachine-specificportionofETagasanumber.Thisvalue,whensynchronizedacrossserversinawebfarm,allowsthewebfarmtoreturnanidenticalETagforagivenresourceregardlessoftheserverthathandledtherequest.Thevalueshouldbeabase10number.

SeeAlsoIisSchema

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

deletable.

SeeAlsoIisSchema

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

toautomaticallystartthewebsite.

ConfigureIfExists YesNoType Specifieswhethertoconfigurethewebsiteifitalreadyexists.Note:Thiswillnotaffectuninstallbehavior.Ifthewebsiteexistsonuninstall,itwillberemoved.

ConnectionTimeout NonNegativeInteger Setsthetimeoutvalueforconnectionsinseconds.

Description String ThisisthenameofthewebsitethatwillshowupintheIISmanagementconsole.

Yes

Directory String Rootdirectoryofthewebsite.ResolvedtoadirectoryintheDirectorytableatinstalltimebytheservercustomactions.

DirProperties String ReferencestheIdattributeforaWebDirPropertieselementthatspecifiesthesecurityand

accesspropertiesforthiswebsiterootdirectory.ThisattributemaynotbespecifiedifaWebDirPropertieselementisdirectlynestedinthiselement.

Sequence Integer Sequencethatthewebsiteistobecreatedin.

SiteId String OptionalattributetodirectlyspecifythesiteidoftheWebSite.Usethistoensureallwebsitesinawebgardengetthesamesiteid.Ifanumberisprovided,thesiteidmustbeuniqueonalltargetmachines.If"*"isused,theDescriptionattributewillbehashedtocreateauniquevalueforthesiteid.Thisvaluemustbeapositivenumberora"*"oraformattedvaluethatresolvesto"-1"

(forthesamebehavioras"*")orapositivenumberorblank.IfthisattributeisabsentthenthewebsitewillbelocatedusingtheWebAddresselementassociatedwiththewebsite.

StartOnInstall YesNoType Specifieswhethertostartthewebsiteoninstall.

WebApplication String ReferencetoaWebApplicationthatistobeinstalledaspartofthiswebsite.

WebLog String ReferencetoWebLogdefinition.

RemarksNestingWebSiteunderaComponentelementwillresultinaWebSitebeinginstalledtothemachineasthepackageisinstalled.

NestingWebSiteunderProduct,Fragment,orModuleresultsinawebsite"locator"recordbeingcreatedintheIIsWebSitetable.ThismeansthatthewebsiteitselfisneitherinstallednoruninstalledbytheMSIpackage.ItdoesmakethedatabaseavailableforreferencingfromaWebApplication,WebVirtualDirorWebDirrecord.ThisallowsanMSItoinstallWebApplications,WebVirtualDirsorWebDirstoalreadyexistingwebsitesonthemachine.Theinstallwillfailifthewebsitedoesnotexistinthesecases.

SeeAlsoIisSchema

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

Directory String ReferencestheIdattributeforaDirectoryelementthatpointstothecontentforthisvirtualdirectory.

Yes

DirProperties String ReferencestheIdattributeforaWebDirPropertieselementthatspecifiesthesecurityandaccesspropertiesforthisvirtualdirectory.ThisattributemaynotbespecifiedifaWebDirPropertieselementisdirectlynestedinthiselement.

WebApplication String ReferencestheIdattributeforaWebApplicationelementthatspecifieswebapplicationsettingsforthisvirtualdirectory.IfaWebApplicationchildisnotspecified,thevirtualdirectorydoesnothostwebapplications.

WebSite String ReferencestheIdattributeforaWebSiteinwhichthisvirtualdirectorybelongs.RequiredwhenthiselementisnotachildofWebSiteelement.

SeeAlsoIisSchema

ConditionElement(LuxExtension)

DescriptionConditionsforaunittest.

WindowsInstallerreferencesNone

ParentsUnitTest

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoLuxSchema

ExpressionElement(LuxExtension)

DescriptionAnexpressionthatmustevaluatetotruetosucceed.CannotbespecifiedifPropertyisspecified.

WindowsInstallerreferencesNone

ParentsUnitTest

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoLuxSchema

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

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

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoLuxSchema

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoLuxSchema

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

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

EnumerationTypePossiblevalues:{high,low,medium,mszip,none}

SeeAlsoLuxSchema

DiskIdType(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.

PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.

SeeAlsoLuxSchema

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoLuxSchema

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

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.

SeeAlsoLuxSchema

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoLuxSchema

LocalizableInteger(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.

PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.

SeeAlsoLuxSchema

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

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.

SeeAlsoLuxSchema

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}

SeeAlsoLuxSchema

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoLuxSchema

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

VersionType(SimpleType)

DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.

PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.

SeeAlsoLuxSchema

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

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

YesNoAlwaysType(SimpleType)

DescriptionValuesofthistypewilleitherbe"always","yes",or"no".

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoLuxSchema

YesNoButtonType(SimpleType)

DescriptionValuesofthistypewilleitherbe"button","yes"or"no".

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoLuxSchema

YesNoDefaultType(SimpleType)

DescriptionValuesofthistypewilleitherbe"default","yes",or"no".

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoLuxSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoLuxSchema

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

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

setbythecustomaction.

Value String Thevaluetocomparetotheproperty.

ValueSeparator String Onecharacterthatisusedtoseparatevaluesinamulti-valueproperty.

SeeAlsoLuxSchema

UnitTestRefElement(LuxExtension)

DescriptionIdentifiesaunittesttobelinkedintoaproject.

WindowsInstallerreferencesNone

ParentsFragment,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Identifieroftheunittesttobeincluded.

SeeAlsoLuxSchema

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

following:none

optional

body

Quota Integer

ServiceTypeGuid String

Transactional YesNoType Default:No.

SeeAlsoMsmqSchema

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

QueueGenericAll YesNoType

QueueGenericExecute YesNoType

QueueGenericRead YesNoType

QueueGenericWrite YesNoType

ReceiveJournalMessage YesNoType

ReceiveMessage YesNoType

SetQueueProperties YesNoType

TakeQueueOwnership YesNoType

User String

WriteMessage YesNoType

SeeAlsoMsmqSchema

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

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoMsmqSchema

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoMsmqSchema

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

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

EnumerationTypePossiblevalues:{high,low,medium,mszip,none}

SeeAlsoMsmqSchema

DiskIdType(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.

PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.

SeeAlsoMsmqSchema

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoMsmqSchema

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

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.

SeeAlsoMsmqSchema

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoMsmqSchema

LocalizableInteger(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.

PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.

SeeAlsoMsmqSchema

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

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.

SeeAlsoMsmqSchema

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}

SeeAlsoMsmqSchema

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoMsmqSchema

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

VersionType(SimpleType)

DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.

PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.

SeeAlsoMsmqSchema

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

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

YesNoAlwaysType(SimpleType)

DescriptionValuesofthistypewilleitherbe"always","yes",or"no".

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoMsmqSchema

YesNoButtonType(SimpleType)

DescriptionValuesofthistypewilleitherbe"button","yes"or"no".

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoMsmqSchema

YesNoDefaultType(SimpleType)

DescriptionValuesofthistypewilleitherbe"default","yes",or"no".

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoMsmqSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoMsmqSchema

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

assemblies,thisattributedoesnotneedtobesetbecauseNGenwillusethedirectoryoftheassemblyfilebydefault.

Thevaluecanbeintheformofadirectoryidentifier,oraformattedstringthatresolvestoeitheradirectoryidentifierorafullpathtoadirectory.

AssemblyApplication String Theapplicationwhichwillloadthisassembly.ForDLLassemblieswhichareloadedviareflection,thisattributeshouldbesettoindicatetheapplicationwhichwillloadthisassembly.Theconfigurationoftheapplication(usuallyspecifiedviaanexe.configfile)willbeusedtodeterminehowtoresolvedependenciesforthisassembly.

Thevaluecanbeintheformofafileidentifier,oraformattedstringthatresolvestoeitherafileidentifierorafullpathtoafile.

Whenasharedcomponentisloadedatruntime,usingtheLoadmethod,the

application'sconfigurationfiledeterminesthedependenciesthatareloadedforthesharedcomponent—forexample,theversionofadependencythatisloaded.Thisattributegivesguidanceonwhichdependencieswouldbeloadedatruntimeinordertofigureoutwhichdependencyassemblieswillalsoneedtohavenativeimagesgenerated(assumingtheDependencyattributeisnotsetto"no").

ThisattributecannotbesetiftheAssemblyApplicationattributeissetontheparentFileelement(pleasenotethattheseattributesbothrefertothesameapplicationassemblybutdoverydifferentthings:specifiyingFile/@AssemblyApplicationwillforceanassemblytoinstalltoaprivatelocationnexttotheindicatedapplication,whereasthisAssemblyApplicationattributewillbeusedtohelpresolvedependentassemblieswhilegeneratingnativeimagesforthisassembly).

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

machine,nativeimagecustomactionswillnotbescheduled.

allAttempttogeneratenativeimagesforthe32-bitand64-bitversionsofthe.NETFrameworkonthetargetmachine.Ifaversionofthe.NETFramework2.0ornewerisnotpresentonthetargetmachineforaprocessorarchitecture,nativeimagecustomactionswillnotbescheduledforthatprocessorarchitecture.

Priority Enumeration Setsthepriorityofgeneratingthenativeimagesforthisassembly.Thisattribute'svaluemustbeoneofthefollowing:0

Thisisthehighestpriority,itmeansthatimagegenerationoccurssyncronouslyduringthesetupprocess.Thisoptionwillslowdownsetupperformance.

1Thiswillqueueimagegenerationtothe

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

tofailandrollback.

Noteforpatches:ifyoubuiltyourtarget,orbaseline,MSIwithpreviousversions3.0or3.5ofthisextensionandwanttoupgradetoformattablevaluesfor@AssemblyApplicationor@AppBaseDirectoryyoumustalsoincludeaBinaryRefto"NetFxCA"topullinnecessarychanges.Ifyoudouseformattablevaluesanddonotincludethebinarychangesngen.exewillnotoptimizeyournativeimagesforthespecifiedapplication.

Thisshouldbearareoccurrence,however.Becauseyoucannotremovecomponentsinapatch-andpyrodoesvalidateyoudonot-itisnotpracticaltoswitchfromusingidentifierstoformattablevaluesinapatch.OnepracticalpossibilityisifyouwantedtouseadifferentapplicationtooptimizeyournativeimagesandthatapplicationisnotalreadyinstalledwiththeMSItobeupdated.

SeeAlsoNetfxSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoNetfxSchema

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

RequiredVersionAttribute(PsExtension)

DescriptionTheversionofthisextensionrequiredtocompilethedefiningsource.

WindowsInstallerreferencesNone

ParentsWix

SeeAlsoPsSchema

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

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoPsSchema

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoPsSchema

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

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

EnumerationTypePossiblevalues:{high,low,medium,mszip,none}

SeeAlsoPsSchema

DiskIdType(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.

PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.

SeeAlsoPsSchema

EmbeddedResource(SimpleType)

Description

ValuesshouldbeintheformatResourceName,StringName,whereResourceNameisthenameoftheembeddedresourceinyourassemblysansthe".resources"extension,andStringNameisthenameofthestringresourceintheembeddedresource.

Example:UtilityMshSnapInResources,Description

SeeAlsoPsSchema

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoPsSchema

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

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.

SeeAlsoPsSchema

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoPsSchema

LocalizableInteger(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.

PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.

SeeAlsoPsSchema

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

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.

SeeAlsoPsSchema

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}

SeeAlsoPsSchema

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoPsSchema

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

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

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

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

YesNoAlwaysType(SimpleType)

DescriptionValuesofthistypewilleitherbe"always","yes",or"no".

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoPsSchema

YesNoButtonType(SimpleType)

DescriptionValuesofthistypewilleitherbe"button","yes"or"no".

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoPsSchema

YesNoDefaultType(SimpleType)

DescriptionValuesofthistypewilleitherbe"default","yes",or"no".

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoPsSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoPsSchema

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

registeralistofcmdletsandproviders.

Description String Abriefdescriptionofthesnap-in.

DescriptionIndirect EmbeddedResource Anembeddedresourcethatcontainsabriefdescriptionofthesnap-in.Thisresourcemustbeembeddedinthecurrentsnap-inassembly.

RequiredPowerShellVersion VersionType TherequiredversionofPowerShellthatmustbeinstalledandisassociatedwiththesnap-inregistration.Thedefaultvalueis

"1.0".

Vendor String Thenameofthesnap-invendor.

VendorIndirect EmbeddedResource Anembeddedresourcethatcontainsthenameofthesnap-invendor.Thisresourcemustbeembeddedinthecurrentsnap-inassembly.

Version VersionType Theversionofthesnapin.Ifnotspecified,thisistakenfromtheassemblyname.

RemarksPowerShellsnap-insallowdeveloperstoextendthefunctionalityofofthePowerShellengine.AddthiselementtoidentifytheparentFileasaPowerShellsnap-inthatwillgetregisteredonthesystem.

SeeAlsoPsSchema

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

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

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoSqlSchema

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoSqlSchema

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

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

EnumerationTypePossiblevalues:{high,low,medium,mszip,none}

SeeAlsoSqlSchema

DiskIdType(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.

PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.

SeeAlsoSqlSchema

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoSqlSchema

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

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.

SeeAlsoSqlSchema

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoSqlSchema

LocalizableInteger(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.

PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.

SeeAlsoSqlSchema

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

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.

SeeAlsoSqlSchema

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}

SeeAlsoSqlSchema

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoSqlSchema

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

VersionType(SimpleType)

DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.

PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.

SeeAlsoSqlSchema

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

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

YesNoAlwaysType(SimpleType)

DescriptionValuesofthistypewilleitherbe"always","yes",or"no".

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoSqlSchema

YesNoButtonType(SimpleType)

DescriptionValuesofthistypewilleitherbe"button","yes"or"no".

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoSqlSchema

YesNoDefaultType(SimpleType)

DescriptionValuesofthistypewilleitherbe"default","yes",or"no".

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoSqlSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoSqlSchema

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

componentisreinstalled.SettingCreateOnInstalltoyesdoesnotimplyCreateOnReinstallissettoyes.CreateOnReinstallmustbesetinadditiontoCreateOnInstallforittobecreatedduringbothinstallandreinstall.

CreateOnUninstall YesNoType

Database String Thenameofthedatabase.ThevaluecanbealiteralvalueorderivedfromaPropertyelementusingtheFormattedsyntax.

Yes

DropOnInstall YesNoType

DropOnReinstall YesNoType Specifieswhethertodropthedatabasewhentheassociatedcomponentisreinstalled.SettingDropOnInstalltoyesdoesnotimplyDropOnReinstallissettoyes.DropOnReinstallmustbesetinadditiontoDropOnInstallforittobedroppedduringbothinstallandreinstall.

DropOnUninstall YesNoType

Instance String

Server String Yes

User String

RemarksNestingSqlDatabaseunderaComponentelementwillresultinaSqlDatabasebeinginstalledtothemachineasthepackageisinstalled.

NestingSqlDatabaseunderProduct,Fragment,orModuleresultsinadatabase"locator"recordbeingcreatedintheSqlDatabasetable.ThismeansthatthedatabaseitselfisneitherinstallednoruninstalledbytheMSIpackage.ItdoesmakethedatabaseavailableforreferencingfromaSqlStringorSqlScriptrecord.ThisallowsMSItoinstallSqlScriptsorSqlStringstoalreadyexistingdatabasesonthemachine.Theinstallwillfailifthedatabasedoesnotexistinthesecases.

TheUserattributereferencescredentialsspecifiedinaUserelement.IfauserisnotspecifiedthenWindowsAuthenticationwillbeusedbydefaultusingthecredentialsoftheuserperformingtheinstalltoexecutesqlstrings,etc.

SeeAlsoSqlSchema,User

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

MaxSizesetting.

MaxSize String Specifiesthemaximumsizetowhichthedatabasefilecangrow.TheGB,MBandKBsuffixescanbeusedtotospecifygigabytes,megabytesorkilobytes.Thedefaultismegabytesifnosuffixisspecified.IfMaxSizeisnotspecified,thefilewillgrowuntilthediskisfull.

Name String Specifiesthelogicalnameforthedatabasefile.

Size String Specifiesthesizeofthedatabasefile.TheGB,MBandKBsuffixescanbeusedtospecifygigabytes,megabytesorkilobytes.Thedefaultismegabytesifnosuffixisspecified.WhenaSizeisnotsuppliedforadatabasefile,SQLServerusesthesizeoftheprimaryfileinthemodeldatabase.

SeeAlsoSqlSchema

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.

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

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,

RollbackOnReinstallandRollbackOnUninstallattributes.

ExecuteOnReinstall YesNoType Specifieswhethertoexecutethescriptwhentheassociatedcomponentisreinstalled.SettingExecuteOnInstalltoyesdoesnotimplyExecuteOnReinstallissettoyes.ExecuteOnReinstallmustbesetinadditiontoExecuteOnInstallforittobeexecutedduringbothinstallandreinstall.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,RollbackOnReinstallandRollbackOnUninstallattributes.

ExecuteOnUninstall YesNoType Specifiestoexecutethescriptwhentheassociatedcomponentisuninstalled.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,RollbackOnReinstallandRollbackOnUninstall

attributes.

RollbackOnInstall YesNoType Specifieswhethertoexecutethescriptonrollbackifanattemptismadetoinstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.

RollbackOnReinstall YesNoType Specifieswhethertoexecutethescriptonrollbackifanattemptismadetoreinstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.

RollbackOnUninstall YesNoType Specifieswhethertoexecutethescriptonrollbackifanattemptismadetouninstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstall

andExecuteOnUninstallattributes.

Sequence Integer SpecifestheordertoruntheSQLScripts.Itisrecommendedthatrollbackscriptsbescheduledbeforetheircomplementaryexecutionscript.ThisorderisalsorelativeacrosstheSqlStringelement.

SqlDb String requiredwhennotchildofSqlDatabase

User String

SeeAlsoSqlSchema

SqlStringElement(SqlExtension)

DescriptionSQLString

WindowsInstallerreferencesNone

ParentsComponent,SqlDatabase

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

ContinueOnError YesNoType Continueexecutingstringsevenifthisonefails.

ExecuteOnInstall YesNoType Specifiestoexecutethestringwhentheassociatedcomponentisinstalled.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,RollbackOnReinstallandRollbackOnUninstallattributes.

ExecuteOnReinstall YesNoType Specifieswhethertoexecutethestringwhentheassociatedcomponentisreinstalled.SettingExecuteOnInstalltoyesdoesnotimplyExecuteOnReinstallissettoyes.ExecuteOnReinstallmustbesetinadditiontoExecuteOnInstallforittobeexecutedduringbothinstallandreinstall.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,RollbackOnReinstallandRollbackOnUninstallattributes.

ExecuteOnUninstall YesNoType Specifiestoexecutethestringwhentheassociatedcomponentisuninstalled.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,RollbackOnReinstallandRollbackOnUninstallattributes.

RollbackOnInstall YesNoType Specifieswhethertoexecutethestringonrollbackifanattempt

ismadetoinstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.

RollbackOnReinstall YesNoType Specifieswhethertoexecutethestringonrollbackifanattemptismadetoreinstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.

RollbackOnUninstall YesNoType Specifieswhethertoexecutethestringonrollbackifanattemptismadetouninstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.

Sequence Integer Specifestheorderto

runtheSQLStrings.Itisrecommendedthatrollbackstringsbescheduledbeforetheircomplementaryexecutionstring.ThisorderisalsorelativeacrosstheSqlScriptelement.

SQL String Yes

SqlDb String

User String

SeeAlsoSqlSchema

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

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoTagSchema

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoTagSchema

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

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

EnumerationTypePossiblevalues:{high,low,medium,mszip,none}

SeeAlsoTagSchema

DiskIdType(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.

PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.

SeeAlsoTagSchema

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoTagSchema

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

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.

SeeAlsoTagSchema

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoTagSchema

LocalizableInteger(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.

PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.

SeeAlsoTagSchema

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

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.

SeeAlsoTagSchema

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}

SeeAlsoTagSchema

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoTagSchema

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

VersionType(SimpleType)

DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.

PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.

SeeAlsoTagSchema

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

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

YesNoAlwaysType(SimpleType)

DescriptionValuesofthistypewilleitherbe"always","yes",or"no".

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoTagSchema

YesNoButtonType(SimpleType)

DescriptionValuesofthistypewilleitherbe"button","yes"or"no".

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoTagSchema

YesNoDefaultType(SimpleType)

DescriptionValuesofthistypewilleitherbe"default","yes",or"no".

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoTagSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoTagSchema

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"

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

defaultvalueis'yes'.

ThisattributeisonlyallowedonaTagelementfoundunderaProductelement.

SeeAlsoTagSchema

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

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

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

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

Yes

SeeAlsoThmutilSchema

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

forthecontrol.

HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.

ImageFile String Relativepathtoanimagefiletodefineangraphicbutton.Theimagemustbe3xtheheighttorepresentthebuttonin3states:unselected,hover,selected.MutuallyexclusivewithImageResourceandSourceXandSourceYattributes.

ImageResource String Identifierthatreferencesanimageresourceinthemoduleforthecontrol.Theimagemustbe3xtheheighttorepresentthebuttonin3states:unselected,hover,selected.

MutuallyexclusivewithImageFileandSourceXandSourceYattributes.

Name String Optionalnameforthecontrol.

TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.

Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.

Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.

Yes

X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidth

Yes

ofthecontrol.

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

Yes

SeeAlsoThmutilSchema

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

minusthevalue.

HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.

HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.

Name String Optionalnameforthecontrol.

TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.

Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.

Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthe

Yes

value.

X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.

Yes

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

Yes

SeeAlsoThmutilSchema

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

ComboboxElement(ThmutilExtension)

DescriptionDefinesacombobox.

WindowsInstallerreferencesNone

ParentsPage,Theme

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

FontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontforthecontrol.

Yes

Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindow

Yes

minusthevalue.

HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.

HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.

Name String Optionalnameforthecontrol.

TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.

Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.

Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthe

Yes

value.

X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.

Yes

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

Yes

SeeAlsoThmutilSchema

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

control.Non-positivevaluesextendthecontroltothebottomofthewindowminusthevalue.

HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.

HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.

Name String Optionalnameforthecontrol.

TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.

Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.

Width Int Widthofthe Yes

control.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.

X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.

Yes

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

Yes

SeeAlsoThmutilSchema

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

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

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

minusthevalue.

HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.

HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.

HoverFontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontwhenthecontrolishoveredover.

Yes

Name String Optionalnameforthecontrol.

SelectedFontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontwhenthecontrolisselected.

Yes

TabStop YesNoType Specifieswhetherthecontrolispartofthetab

sequenceofcontrols.

Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.

Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.

Yes

X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.

Yes

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negative

Yes

valuesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

SeeAlsoThmutilSchema

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

windowminusthevalue.

HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.

HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.

Name String Optionalnameforthecontrol.

TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.

Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.

Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindow

Yes

minusthevalue.

X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.

Yes

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

Yes

SeeAlsoThmutilSchema

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

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

valuesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

SeeAlsoThmutilSchema

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

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

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

controlfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

SeeAlsoThmutilSchema

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

Name String Optionalnameforthepage.

SeeAlsoThmutilSchema

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

mustbe4pixelswide:leftpixelistheleftsideofprogressbar,leftmiddlepixelisprogressused,rightmiddlepixelisprogressunused,rightpixelisrightsideofprogressbar.MutuallyexclusivewithImageResourceandSourceXandSourceYattributes.

ImageResource String Identifierthatreferencesanimageresourceinthemoduleforthecontrol.Theimagemustbe4pixelswide:leftpixelistheleftsideofprogressbar,leftmiddlepixelisprogressused,rightmiddlepixelisprogressunused,rightpixelisrightsideofprogressbar.MutuallyexclusivewithImageFileandSourceXandSourceYattributes.

Name String Optionalnameforthecontrol.

TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.

Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.

Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.

Yes

X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.

Yes

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

Yes

SeeAlsoThmutilSchema

RicheditElement(ThmutilExtension)

DescriptionDefinesaricheditcontrol.

WindowsInstallerreferencesNone

ParentsPage,Theme

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

FontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontforthecontrol.

Yes

Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindow

Yes

minusthevalue.

HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.

HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.

Name String Optionalnameforthecontrol.

TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.

Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.

Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthe

Yes

value.

X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.

Yes

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

Yes

SeeAlsoThmutilSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoThmutilSchema

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

tabsequenceofcontrols.

Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.

Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.

Yes

X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.

Yes

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

Yes

SeeAlsoThmutilSchema

TabElement(ThmutilExtension)

DescriptionDefinesatab.

WindowsInstallerreferencesNone

ParentsPage,Theme

InnerText(xs:string)Captionofthetab.

ChildrenNone

AttributesNone

SeeAlsoThmutilSchema

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

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

control.

TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.

Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.

Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.

Yes

X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.

Yes

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

Yes

SeeAlsoThmutilSchema

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)

Text(min:1,max:unbounded)TreeView(min:1,max:unbounded)

Attributes

Name Type Description Required

ImageFile String Relativepathtoanimagefilethatcanserveasasinglesourceforimagesintherestofthetheme.ThisimageisreferencedbycontrolsusingtheSourceXandSourceYattributes.

SeeAlsoThmutilSchema

TreeViewElement(ThmutilExtension)

DescriptionDefinesatreeview.

WindowsInstallerreferencesNone

ParentsPage,Theme

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

AlwaysShowSelect Specifieswhethertherowalwaysappearsselectedevenwhenthetreeviewhaslostfocus.

asButtons Specifieswhetherthetreeviewwillshowbuttons.

EnableDragDrop Specifieswhetherdraganddropisenabledforthetreeview.

FullRowSelect Specifieswhetheranentirerowisselected

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

X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.

Yes

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

Yes

SeeAlsoThmutilSchema

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

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

functionsifAutoResizeisenabled.

SourceX NonNegativeInteger XoffsetofthewindowbackgroundintheTheme/@ImageFile.MutuallyexclusivewithIconFileandIconResource.

SourceY NonNegativeInteger YoffsetofthewindowbackgroundintheTheme/@ImageFile.MutuallyexclusivewithIconFileandIconResource.

Width PositiveInteger Widthofthewindow.

SeeAlsoThmutilSchema

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.

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".

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

thentheRebootPromptorTerminateProcessattributeswillbeconsidered.Thedefaultvalueis"5"seconds.

SeeAlsoUtilSchema

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.

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

ComponentSearchRefElement(UtilExtension)

DescriptionReferencesaComponentSearch.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

SeeAlsoUtilSchema

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:

'exists'.

Variable String Nameofthevariableinwhichtoplacetheresultofthesearch.

Yes

SeeAlsoUtilSchema

DirectorySearchRefElement(UtilExtension)

DescriptionReferencesaDirectorySearch.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

SeeAlsoUtilSchema

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

yourParameterFilehereandtheparameterFileNameattributeofthealltheprovidersinthemanifestwillbeupdatedwiththepathbeforeitisregistered.

ResourceFile String Theresourcefile(includingpath)ofalltheprovidersintheeventmanifest.Oftentheresourcefilepathcannotbedetermineduntilsetuptime.PutyourResourceFilehereandtheresourceFileNameattributeofthealltheprovidersinthemanifestwillbeupdatedwiththepathbeforeitisregistered.

SeeAlsoUtilSchema

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.

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.

SeeAlsoUtilSchema

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

ofthefollowing:exists

Savestrueifamatchingfileisfound;falseotherwise.

versionSavestheversioninformationforfilesthathaveit(.exe,.dll);zero-version(0.0.0.0)otherwise.

Variable String Nameofthevariableinwhichtoplacetheresultofthesearch.

Yes

SeeAlsoUtilSchema

FileSearchRefElement(UtilExtension)

DescriptionReferencesaFileSearch.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

SeeAlsoUtilSchema

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

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'

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

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

GroupRefElement(UtilExtension)

DescriptionUsedtojoinausertoagroup

WindowsInstallerreferencesNone

ParentsUser

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

SeeAlsoUtilSchema

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).

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

PerfCounterElement(UtilExtension)

DescriptionThiselementhasbeendeprecated;pleaseusethePerformanceCounterelementinstead.

WindowsInstallerreferencesNone

ParentsFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Name String

SeeAlsoUtilSchema

PerfCounterManifestElement(UtilExtension)

DescriptionUsedtoinstallPerfmonCounterManifests.NotethatthisfunctionalitycannotbeusedwithmajorupgradesthatarescheduledaftertheInstallExecute,InstallExecuteAgain,orInstallFinalizeactions.Formoreinformationonmajorupgradescheduling,seeRemoveExistingProductsAction.

WindowsInstallerreferencesNone

ParentsFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

ResourceFileDirectory String Thedirectorythatholdstheresourcefileoftheprovidersintheperfmoncountermanifest.Oftentheresourcefilepathcannotbedetermineduntilsetuptime.Putthedirectoryhereandduringperfmonmanifestregistrtionthe

pathwillbeupdatedintheregistry.Ifnotspecified,Perfmonwilllookfortheresourcefileinthesamedirectoryoftheperfmoncountermanifestfile.

SeeAlsoUtilSchema

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.

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

theLibraryDLLcalledwhenopeningtheperformancecounter.defaultis"OpenPerformanceData"whichshouldbeusedforallmanagedcodeperformancecounters.

SeeAlsoUtilSchema

PerformanceCounterElement(UtilExtension)

DescriptionCreatesaperformancecounterinaperformancecategory.

WindowsInstallerreferencesNone

ParentsPerformanceCategory

InnerTextNone

ChildrenNone

Attributes

Name Type Description

Help String Optionalhelptextfortheperformancecounter.

Language PerformanceCounterLanguageType Languageforthepeformancecounternameandhelp.ThedefaultistousetheparentPerformanceCategoryelement'sDefaultLanguageattribute.

Name String Namefortheperformancecounter.

Type PerformanceCounterTypesType Typeoftheperformancecounter.

SeeAlsoUtilSchema

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

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'

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

Traverse YesNoType Foradirectory,therighttotraversethedirectory.Bydefault,usersareassignedtheBYPASS_TRAVERSE_CHECKINGprivilege,whichignorestheFILE_TRAVERSEaccessright.Onlyvalidundera'CreateFolder'parent.

User String

Write YesNoType

WriteAttributes YesNoType

WriteExtendedAttributes YesNoType

SeeAlsoUtilSchema

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.

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

(1).

UpgradeCode String TheUpgradeCodetouseforthesearch.ThisattributemustbeomittedifProductCodeisspecified.Notethatifmultipleproductsarefound,thehighestversionedproductwillbeusedfortheresult.

Variable String Nameofthevariableinwhichtoplacetheresultofthesearch.

Yes

SeeAlsoUtilSchema

ProductSearchRefElement(UtilExtension)

DescriptionReferencesaProductSearch.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

SeeAlsoUtilSchema

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

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:

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

RegistrySearchRefElement(UtilExtension)

DescriptionReferencesaRegistrySearch.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

SeeAlsoUtilSchema

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

Removesthefolderonlywhentheparentcomponentisbeinginstalled(msiInstallStateLocalormsiInstallStateSource).

uninstallDefault:Removesthefolderonlywhentheparentcomponentisbeingremoved(msiInstallStateAbsent).

bothRemovesthefolderwhentheparentcomponentisbeinginstalledorremoved.

Property String Theidofapropertythatresolvestothefullpathofthesourcedirectory.Thepropertydoesnothavetoexistintheinstallerdatabaseatcreationtime;itcouldbecreatedatinstallationtimebyacustomaction,onthecommandline,etc.ThepropertyvaluecancontainenvironmentvariablessurroundedbypercentsignssuchasfromaREG_EXPAND_SZregistryvalue;environmentvariableswillbeexpandedbeforebeingevaluatedforafullpath.

Remarks

ThecustomactionthatimplementsRemoveFolderExdoessobywritingtemporaryrowstotheRemoveFiletableforeachsubfolderof

therootfolderyouspecify.BecauseitmightdramaticallyaffectWindowsInstaller'sFileCosting,thetemporaryrowsmustbewrittenbeforetheCostInitializestandardaction.Unfortunately,MSIdoesn'tcreatepropertiesfortheDirectoryhierarchyinyourpackageuntillater,intheCostFinalizeaction.

Aneasyworkaroundforatypicalusecaseofremovingafolderduringuninstallistowritethedirectorypathtotheregistryandtoloaditduringuninstall.SeeTheWiXtoolset's"RememberProperty"patternforanexample.

Ifyouusecustomactionstosetproperties,ensurethattheyarescheduledbeforetheWixRemoveFoldersExcustomaction.

SeeAlsoUtilSchema

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.

ServiceName String ThenameofaWindowsservicetoregisterwiththeRestartManager.Thiscanbeaformattedvaluethatresolvestoaservicename.

SeeAlsoUtilSchema

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

*ActionTypeattributesis"runCommand",thisspecifiesthecommandtorunwhendoingso.Thisvalueisformatted.

RebootMessage String Ifanyofthethree*ActionTypeattributesis"reboot",thisspecifiesthemessagetobroadcasttoserverusersbeforedoingso.

ResetPeriodInDays Integer Numberofdaysafterwhichtoresetthefailurecounttozeroiftherearenofailures.

RestartServiceDelayInSeconds Integer Ifanyofthethree*ActionTypeattributesis"restart",thisspecifiesthenumberofsecondstowaitbeforedoingso.

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

installwillfail.

SeeAlsoUtilSchema

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

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoUtilSchema

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoUtilSchema

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

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

EnumerationTypePossiblevalues:{high,low,medium,mszip,none}

SeeAlsoUtilSchema

DiskIdType(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.

PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.

SeeAlsoUtilSchema

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoUtilSchema

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

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.

SeeAlsoUtilSchema

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoUtilSchema

LocalizableInteger(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.

PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.

SeeAlsoUtilSchema

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

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

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

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.

SeeAlsoUtilSchema

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}

SeeAlsoUtilSchema

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoUtilSchema

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

VersionType(SimpleType)

DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.

PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.

SeeAlsoUtilSchema

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

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

YesNoAlwaysType(SimpleType)

DescriptionValuesofthistypewilleitherbe"always","yes",or"no".

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoUtilSchema

YesNoButtonType(SimpleType)

DescriptionValuesofthistypewilleitherbe"button","yes"or"no".

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoUtilSchema

YesNoDefaultType(SimpleType)

DescriptionValuesofthistypewilleitherbe"default","yes",or"no".

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoUtilSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoUtilSchema

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.

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

propertiesshouldbeupdatediftheuseralreadyexists.

Vital YesNoType Indicateswhetherfailuretocreatetheuseroraddtheusertoagroupfailstheinstallation.Thedefaultvalueis"yes".

SeeAlsoUtilSchema,Group,GroupRef

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

'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

attributecausestheelement'stextvaluetobeset.Otherwisethisspecifiedtheattributenamethatisset.

Node Enumeration Thisattribute'svaluemustbeoneofthefollowing:element

value

document

On Enumeration Thisattribute'svaluemustbeoneofthefollowing:install

uninstall

PreserveModifiedDate YesNoType Specifieswheterornotthemodificationshouldpreservethemodifieddate.Preservingthemodifieddatewillallowthefiletobepatchedifnoothermodificationshavebeenmade.

Sequence Integer Specifiesthe

orderinwhichthemodificationistobeattemptedontheXMLfile.Itisimportanttoensurethatnewelementsarecreatedbeforeyouattempttoaddanattributetothem.

Value String Thevaluetobewritten.SeetheFormattedtopicforinformationhowtoescapesquarebracketsinthevalue.

VerifyPath String TheXPathtotheelementbeingmodified.Thisisrequiredfor'delete'actions.For'create'actions,VerifyPathisusedtodecideiftheelementalreadyexists.Notethatthisisaformattedfieldandtherefore,squarebracketsintheXPathmustbeescaped.Inaddition,XPathsallowbackslashestobe

usedtoescapecharacters,soifyouintendtoincludeliteralbackslashes,youmustescapethemaswellbydoublingtheminthisattribute.ThestringisformattedbyMSIfirst,andtheresultisconsumedastheXPath.

SeeAlsoUtilSchema

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

specifiedinElementPath.TheNameattributeisrequiredinthiscaseandspecifiesthenameofthenewelement.TheValueattributeisnotnecessarywhencreateElementisspecifiedastheaction.IftheValueattributeisset,itwillcausethenewelement'stextvaluetobeset.

deleteValueDeletesavaluefromtheelementspecifiedintheElementPath.IfNameisspecified,theattributewiththatnameisdeleted.IfNameisnotspecified,thetextvalueof

theelementspecifiedintheElementPathisdeleted.TheValueattributeisignoredifdeleteValueistheactionspecified.

setValueSetsavalueintheelementspecifiedintheElementPath.IfNameisspecified,andattributewiththatnameissettothevaluespecifiedinValue.IfNameisnotspecified,thetextvalueoftheelementisset.ValueisarequiredattributeifsetValueistheactionspecified.

bulkSetValueSetsallthevaluesinthe

elementsthatmatchtheElementPath.IfNameisspecified,attributeswiththatnamearesettothesamevaluespecifiedinValue.IfNameisnotspecified,thetextvaluesoftheelementsareset.ValueisarequiredattributeifsetBulkValueistheactionspecified.

ElementPath String TheXPathoftheelementtobemodified.Notethatthisisaformattedfieldandtherefore,squarebracketsintheXPathmustbeescaped.Inaddition,XPathsallowbackslashestobeusedtoescapecharacters,soifyouintendtoincludeliteralbackslashes,youmustescapethemaswellbydoubling

Yes

theminthisattribute.ThestringisformattedbyMSIfirst,andtheresultisconsumedastheXPath.

File String Pathofthe.xmlfiletoconfigure.

Yes

Name String NameofXMLnodetoset/addtothespecifiedelement.Notsettingthisattributecausestheelement'stextvaluetobeset.Otherwisethisspecifiedtheattributenamethatisset.

Permanent YesNoType Specifieswhetherornotthemodificationshouldberemovedonuninstall.ThishasnoeffectonuninstalliftheactionwasdeleteValue.

PreserveModifiedDate YesNoType Specifieswheterornotthemodificationshouldpreservethemodifieddate.

Preservingthemodifieddatewillallowthefiletobepatchedifnoothermodificationshavebeenmade.

SelectionLanguage Enumeration SpecifywhethertheDOMobjectshoulduseXPathlanguageortheoldXSLPatternlanguage(default)asthequerylanguage.Thisattribute'svaluemustbeoneofthefollowing:XPath

XSLPattern

Sequence Integer SpecifiestheorderinwhichthemodificationistobeattemptedontheXMLfile.Itisimportanttoensurethatnewelementsarecreatedbeforeyouattempttoaddanattributetothem.

Value String Thevaluetobewritten.SeetheFormattedtopicforinformationhowtoescapesquarebracketsinthe

value.

SeeAlsoUtilSchema

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

customactions.Helpredistributablemergemoduleswillberequired.Usethiswhenbuildingamergemodule.

SeeAlsoVsSchema

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

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

isinthe"root"ofthesamplesdirectoryforthisHelpFile.

Search String KeyforHxQ(Query)file.

SuppressCustomActions YesNoType SuppresslinkingHelpregistrationcustomactions.Helpredistributablemergemoduleswillberequired.Usethiswhenbuildingamergemodule.

SeeAlsoVsSchema

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

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.

SeeAlsoVsSchema

HelpFilterRefElement(VsExtension)

DescriptionCreateareferencetoaHelpFileelementinanotherFragment.

WindowsInstallerreferencesNone

ParentsHelpCollection

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String PrimaryKeyforHelpFilter. Yes

AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.

SeeAlsoVsSchema

PlugCollectionIntoElement(VsExtension)

DescriptionPluginforHelpNamespace.

WindowsInstallerreferencesNone

ParentsHelpCollection

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Attributes String KeyforHxA(Attributes)fileofchildnamespace.

SuppressExternalNamespaces YesNoType SuppresslinkingVisualStudioHelpnamespaces.Helpredistributablemergemoduleswillberequired.Usethiswhenbuildingamergemodule.

TableOfContents String KeyforHxTfileofchildnamespace.

TargetCollection String ForiegnKeyintoHelpNamespacetablefortheparentnamespaceintowhichthechildwillbeinserted.Thefollowingspecialkeyscanbeusedtoplugintoexternalnamespacesdefinedoutsideoftheinstaller.MS_VSIPCC_v80:VisualStudio2005MS.VSIPCC.v90:VisualStudio2008

Yes

TargetFeature String Keyforthefeatureparentofthishelpcollection.Requiredonlywhenpluggingintoexternalnamespaces.

TargetTableOfContents String KeyforHxTfileofparentnamespacethatnowincludesthenewchildnamespace.

SeeAlsoVsSchema

VersionType(SimpleType)

DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.

PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){0,3}\d{1,5}'.

SeeAlsoVsSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoVsSchema

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

peritsinternalmanifest.IfthisvalueisnotcorrecttheVSIXpackagewillnotcorrectlyuninstall.

Permanent YesNoType IndicateswhethertheVSIXpackageisuninstalledwhentheparentComponentisuninstalled.Thedefaultis'no'.

Target String SpecifiestheSKUofVisualStudioinwhichtoregistertheextension.IfnotargetisspecifiedtheextensionisregisteredwithallinstalledSKUs.IftheTargetattributeisspecifiedtheTargetVersionattributemustalsobespecified.ThefollowingisalistofknownVisualStudiotargets:integratedShell,professional,premium,

ultimate,vbExpress,vcExpress,vcsExpress,vwdExpress

TargetVersion VersionType SpecifiestheversionofVisualStudioinwhichtoregistertheextension.ThisattributeisrequirediftheTargetattributeisspecified.

Vital YesNoType IndicateswhetherfailuretoinstalltheVSIXpackagecausestheinstallationtorollback.Thedefaultis'yes'.

VsixInstallerPathProperty String OptionalreferencetoaPropertyelementthatcontainsthepathtotheVsixInstaller.exe.Bydefault,thelatestVsixInstaller.exeonthemachinewillbeusedtoinstalltheVSIXpackage.Itishighly

recommendedthatthisattributeis*not*used.

AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.

SeeAlsoVsSchema

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.

LaunchConditions(min:0,max:unbounded):QueriestheLaunchConditiontableandevaluateseachconditionalstatementrecordedthere.PatchFiles(min:0,max:unbounded):QueriesthePatchtabletodeterminewhichpatchesaretobeapplied.ResolveSource(min:0,max:unbounded):DeterminesthelocationofthesourceandsetstheSourceDirpropertyifthesourcehasnotbeenresolvedyet.

AttributesNone

SeeAlsoWixSchema

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.

InstallValidate(min:0,max:unbounded):Verifiesthatallcostedvolumeshaveenoughspacefortheinstallation.LaunchConditions(min:0,max:unbounded):QueriestheLaunchConditiontableandevaluateseachconditionalstatementrecordedthere.Show(min:0,max:unbounded)

AttributesNone

SeeAlsoWixSchema

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

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

AllElement

DescriptionUsedonlyforPatchFamiliestoincludeallchangesbetweenthebaselineandupgradedpackagesinapatch.

WindowsInstallerreferencesNone

ParentsPatchFamily

Remarks

Warning:thisisintendedfortestingpurposesonly.Shippingapatchwithallchangesnegatesthebenefitsofusingpatchfamiliesforincludingonlyspecificchanges.

BecausechangingtheProductCodeisnotsupportedinapatch,theProductCodepropertyisautomaticallyremovedfromthetransform.

SeeAlsoWixSchema

AllocateRegistrySpaceElement

DescriptionEnsurestheneededamountofspaceexistsintheregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesAllocateRegistrySpaceAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

AppDataElement

DescriptionOptionalwayfordefiningAppData,generallyusedforcomplexCDATA.

WindowsInstallerreferencesNone

ParentsCategory

SeeAlsoWixSchema

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

AppIdtablerow.Setthisvalueto'no'inordertogenerateRegistryrowsthatperformsimilarregistration(withouttheoftenproblematicWindowsInstalleradvertisingbehavior).

Description String SetthisvaluetothedescriptionoftheAppId.ItcanonlybespecifiedwhentheAppIdisnotbeingadvertised.

DllSurrogate String SetthisvaluetospecifythattheclassisaDLLthatistobeactivatedinasurrogateEXEprocess,andthesurrogateprocesstobeusedisthepathofasurrogateEXEfilespecifiedbythevalue.

LocalService String SetthisvaluetothenameofaservicetoallowtheobjecttobeinstalledasaWin32service.

RemoteServerName String Setthisvaluetothenameoftheremoteservertoconfigure

theclienttorequesttheobjectberunataparticularmachinewheneveranactivationfunctioniscalledforwhichaCOSERVERINFOstructureisnotspecified.

RunAsInteractiveUser YesNoType Setthisvalueto'yes'toconfigureaclasstorunundertheidentityoftheusercurrentlyloggedonandconnectedtotheinteractivedesktopwhenactivatedbyaremoteclientwithoutbeingwrittenasaWin32service.

ServiceParameters String SetthisvaluetotheparameterstobepassedtoaLocalServiceoninvocation.

RemarksWhenbeingusedinunadvertisedmode,theattributesintheAppIdelementcorrespondtoregistrykeysasfollows(valuesthatcanbespecifiedinauthoringareinbold):Id

InGeneral[HKCR\AppID\{Id}]

SpecificExample

[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"

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

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'.

SeeAlsoWixSchema

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.

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,ComponentSearch,FileSearch,IniFileSearch,RegistrySearch

AssemblyNameElement

DescriptionTheMsiAssemblyNametablespecifiestheschemafortheelementsofastrongassemblycachenamefora.NETFrameworkorWin32assembly.ConsiderusingtheAssemblyattributeonFileelementtohavethetoolsetpopulatetheseentriesautomatically.

WindowsInstallerreferencesMsiAssemblyNameTable

ParentsFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String NameoftheattributeassociatedwiththevaluespecifiedintheValuecolumn.

Yes

Value String ValueassociatedwiththenamespecifiedintheNamecolumn.

SeeAlsoWixSchema

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

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

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

beendeprecated;pleaseusetheSourceFileattributeinstead.

SuppressModularization YesNoType UsetosuppressmodularizationofthisBinaryidentifierinmergemodules.

AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.

SeeAlsoWixSchema

BinaryRefElement

DescriptionUsedonlyforPatchFamiliestoincludeonlyabinarytableentryinapatch.

WindowsInstallerreferencesNone

ParentsPatchFamily

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifieroftheBinaryelementtoreference.

Yes

AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.

SeeAlsoWixSchema

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

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'..'

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

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

settings.Otherwise,thepreviousAPI(whichuseslocaleinsteadoflanguage)isusedtomaintaincompatiblitywithpreviousversionsofWiX.OnVistaandnewerplatforms,thisvaluesetto"yes"willsearchallspecifieduserlanguages,includingfallbacklanguages,inorder.(http://schemas.microsoft.com/wix/BalExtension)

SeeAlsoWixSchema

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.

ApprovedExeForElevationBootstrapperApplicationBootstrapperApplicationRefCatalogChainComponentSearchComponentSearchRefConditionContainerContainerRefDirectorySearchDirectorySearchRefFileSearchFileSearchRefLogProductSearchProductSearchRefRegistrySearchRegistrySearchRefRelatedBundleRequiresTagUpdateUXVariable

Attributes

Name Type Description

AboutUrl String AURLformoreinformationaboutthebundletodisplayinProgramsandFeatures(alsoPrograms).

Compressed YesNoDefaultType WhetherPackagesandPayloadsnotassignedtoacontainershouldbeaddedtothedefaultattached

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

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

extensionscanregisteradditionalattributesatthispointintheschema.

ProviderKey String Optionalattributetoexplicitlyauthortheproviderkeyfortheentirebundle.(http://schemas.microsoft.com/wix/DependencyExtension)

SeeAlsoWixSchema

CatalogElement

DescriptionSpecifyoneormorecatalogfilesthatwillbeusedtoverifythecontentsofthebundle.

WindowsInstallerreferencesNone

ParentsBundle

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Theidentifierofthecatalogelement.

SourceFile String Thecatalogfile

SeeAlsoWixSchema

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

intheIdattribute.AqualifierisusedtodistinguishmultipleformsofthesameComponent,suchasaComponentthatisimplementedinmultiplelanguages.

SeeAlsoWixSchema

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.

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,RMCCPSearch,ComplianceCheck

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

packagewillrollbackandthechainwillstopwiththeerror.Thedefaultis"no"whichindicatesallpackagesexecutedduringthechainwillberolledbacktotheirpreviousstatewhenavitalpackagefails.

DisableSystemRestore YesNoType Specifieswhetherthebundlewillattempttocreateasystemrestorepointwhenexecutingthechain.If"yes"isspecifiedthenasystemrestorepointwillnotbecreated.Thedefaultis"no"whichindicatesasystemrestorepointwillbecreatedwhenthebundleisinstalled,uninstalled,repaired,modified,etc.Ifthesystemrestorepointcannotbecreated,thebundlewilllogtheissueandcontinue.

ParallelCache YesNoType Specifieswhetherthebundlewillstartinstallingpackageswhileotherpackagesarestillbeingcached.If"yes",packageswillstartexecutingwhenarollbackboundaryisencountered.Thedefaultis"no"whichdictatesallpackagesmustbecachedbeforeanypackageswillstarttobeinstalled.

SeeAlsoWixSchema

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

(withouttheoftenproblematicWindowsInstalleradvertisingbehavior).

AppId Guid ThisattributeisonlyallowedwhenaClassisadvertised.UsingthisattributewillreferenceanApplicationIDcontainingDCOMinformationfortheassociatedapplicationGUID.ThevaluemustcorrespondtoanAppId/@IdofanAppIdelementnestedunderaFragment,Module,orProductelement.ToassociateanAppIdwithanon-advertisedclass,nesttheclasswithinaparentAppIdelement.

Argument String ThiscolumnisoptionalonlywhentheContextcolumnissetto"LocalServer"or"LocalServer32"servercontext.ThetextisregisteredastheargumentagainsttheOLEserverandisusedbyOLEforinvokingtheserver.Notethattheresolutionofpropertiesinthe

Argumentfieldislimited.Apropertyformattedas[Property]inthisfieldcanonlyberesolvedifthepropertyalreadyhastheintendedvaluewhenthecomponentowningtheclassisinstalled.Forexample,fortheargument"[#MyDoc.doc]"toresolvetothecorrectvalue,thesameprocessmustbeinstallingthefileMyDoc.docandthecomponentthatownstheclass.

Context List Theservercontext(s)forthisCOMserver.ThisattributeisoptionalforVB6librariesthataremarked"PublicNotCreateable".ClasselementsmarkedAdvertisedmustspecifyatleastoneservercontext.ItismostcommonfortheretobeasinglevaluefortheContextattribute.Thisattribute'svalueshouldbeaspace-delimitedlistcontaingoneormoreofthe

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.

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

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

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.

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

[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:

[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:

[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]

@="Version"

SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Version]@="1.0.0.0"

SeeAlsoWixSchema,AppId

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

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.

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

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.

SeeAlsoWixSchema

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

CommandLineElement

DescriptionDescribesadditional,conditionalcommand-lineargumentsforanExePackage.

WindowsInstallerreferencesNone

ParentsExePackage

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Condition String Theconditionthatcontrolswhetherthecommand-lineargumentsspecifiedintheInstallArgument,UninstallArgument,orRepairArgumentattributesareappendedtothecommandlinepassedtotheExePackage.WhichattributeisuseddependsontheactionbeingappliedtotheExePackage.Forexample,whentheExePackageisbeinginstalled,theInstallArgumentattribute

valueisappendedtothecommandlinewhentheExePackageisexecuted.

InstallArgument String Additionalcommand-lineargumentstoapplyduringpackageinstallationifConditionistrue.

RepairArgument String Additionalcommand-lineargumentstoapplyduringpackagerepairifConditionistrue.

UninstallArgument String Additionalcommand-lineargumentstoapplyduringpackageuninstallationifConditionistrue.

SeeAlsoWixSchema

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

ComplianceDriveElement

DescriptionSetstheparentofanestedDirectorySearchelementtoCCP_DRIVE.

WindowsInstallerreferencesNone

ParentsComplianceCheck,Property

InnerTextNone

ChildrenChoiceofelements(min:1,max:1)

DirectorySearch(min:1,max:1)DirectorySearchRef(min:1,max:1)

AttributesNone

SeeAlsoWixSchema

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)

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

EventSourceFileShareFirewallExceptionInternetShortcutMessageQueueMessageQueuePermissionPerformanceCategoryProvidesRemoveFolderExRestartResourceServiceConfigSqlDatabaseSqlScriptSqlStringUrlReservationUserVsixPackageWebAppPoolWebDirWebFilterWebPropertyWebServiceExtensionWebSiteWebVirtualDirXmlConfigXmlFile

Attributes

Name Type Description

ComPlusFlags Integer SetthisattributetocreateaComPlusentry.Thevalueshouldbetheexportflagsusedduringthegenerationofthe.msi

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

formoreinformationaboutthepurposeoftheDiskId.

Feature String Identifiesafeaturetowhichthiscomponentbelongs,asashorthandforachildComponentRefelementoftheFeatureelement.ThevalueofthisattributeshouldcorrespondtotheIdattributeofaFeatureelementauthoredelsewhere.Notethatasinglecomponentcanbelongtomultiplefeaturesbutthisattributeallowsyoutospecifyonlyasinglefeature.

Guid ComponentGuid Thisvalueshouldbeaguidthatuniquelyidentifiesthiscomponent'scontents,language,platform,andversion.Ifomitted,thedefaultvalueis'*'whichindicatesthatthelinkershouldgenerateastableguid.Generatableguidsaresupportedonlyforcomponentswithasinglefileasthecomponent'skeypathornofilesandaregistryvalueasthekeypath.It'salsopossibletosetthevaluetoanemptystringtospecifyanunmanaged

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

notsetto'yes'fortheComponentorforachildRegistryvalueorFile,WiXwilllookatthechildelementsundertheComponentinsequentialorderandtrytoautomaticallyselectoneofthemasakeypath.AllowingWiXtoautomaticallyselectakeypathcanbedangerousbecauseaddingorremovingchildelementsundertheComponentcaninadvertantlycausethekeypathtochange,whichcanleadtoinstallationproblems.

Location Enumeration Optionalvaluethatspecifiesthelocationthatthecomponentcanberunfrom.Thisattribute'svaluemustbeoneofthefollowing:local

Preventsthecomponentfromrunningfromthesourceorthenetwork(thisisthedefaultbehaviorifthisattributeisnotset).

sourceEnforcesthatthecomponentcanonly

berunfromthesource(itcannotberunfromtheuser'scomputer).

eitherAllowsthecomponenttorunfromsourceorlocally.

MultiInstance YesNoType Ifthisattributeissetto'yes',anewComponent/@Guidwillbegeneratedforeachinstancetransform.Ensurethatalloftheresourcescontainedinamulti-instanceComponentwillbeinstalledtodifferentpathsbasedontheinstanceProperty;otherwise,theComponentRuleswillbeviolated.

NeverOverwrite YesNoType Ifthisattributeissetto'yes',theinstallerdoesnotinstallorreinstallthecomponentifakeypathfileorakeypathregistryentryforthecomponentalreadyexists.Theapplicationdoesregisteritselfasaclientofthecomponent.Usethisflagonlyforcomponentsthatarebeingregisteredby

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.

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

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

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

canregisteradditionalattributesatthispointintheschema.

SeeAlsoWixSchema,ComponentGroupRef

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

feature,thatfeatureistheprimaryfeatureforthecomponent.Youcannotsetmorethanonefeatureastheprimaryfeatureofagivencomponent.

AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.

SeeAlsoWixSchema,ComponentGroup

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

componentnestsunderonlyonefeature,thatfeatureistheprimaryfeatureforthecomponent.Youcannotsetmorethanonefeatureastheprimaryfeatureofagivencomponent.

AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.

HowTosandExamplesHowTo:Addafiletoyourinstaller

SeeAlsoWixSchema,Component

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

Thekeypathofthecomponentisadirectory.

fileThekeypathofthecomponentisafile.Thisisthedefaultvalue.

SeeAlsoWixSchema,IniFileSearch,RegistrySearch

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.

enableEnabletheControl.OnlyusedunderControlelements.

disableDisabletheControl.OnlyusedunderControlelements.

hideHidetheControl.OnlyusedunderControlelements.

showDisplaytheControl.OnlyusedunderControlelements.

Level Integer UsedonlyunderFeatureelementsandisrequired.AllowsmodifyingthelevelofaFeaturebasedontheresultofthiscondition.

Message String UsedonlyunderFragmentorProductelementsandisrequired.Setthevaluetothetexttodisplaywhentheconditionfailsandtheinstallationmustbeterminated.

HowTosandExamplesHowTo:BlockinstallationbasedonOSversionHowTo:Checktheversionnumberofafileduringinstallation

SeeAlsoWixSchema

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

Key

Integer

Bitfield

HelpKeyword String Keywordintochmfileforauthoring.

HelpLocation String Locationofchmfileforauthoring.

KeyNoOrphan YesNoType DoesnotmergeruleaccordingtorulesinMSISDK.

Name String Definesthenameoftheconfigurableitem.

Yes

NonNullable YesNoType Ifyes,nullisnotavalidentry.

Type String Specifiesthetypeofthedatabeingchanged.

SeeAlsoWixSchema

ConfigurationDataElement

DescriptionDatatouseasinputtoaconfigurablemergemodule.

WindowsInstallerreferencesNone

ParentsMerge

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Name String NameoftheitemintheModuleConfigurationtable.

Yes

Value String Valuetobepassedtoconfigurablemergemodule.

Yes

SeeAlsoWixSchema

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

bythecontainerfilename.

Id String Theuniqueidentifierforthecontainer.IfthisattributeisnotspecifiedtheNameattributewillbeused.

Name String Thefilenameforthiscontainer.Arelativepathmaybeprovidedtoplacethecontainerinasub-folderofthebundle.

Type BurnContainerType Indicateswhetherthecontaineris"attached"tothebundleexecutableorplacedexternaltothebundleextecutableas"detached".Ifthisattributeisnotspecified,thedefaultistocreateadetachedcontainer.

SeeAlsoWixSchema

ContainerRefElement

DescriptionCreateareferencetoanexistingContainerelement.

WindowsInstallerreferencesNone

ParentsBundle

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifierofContainerelementtoreference.

Yes

SeeAlsoWixSchema,Container

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

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

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

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

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.

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

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

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]

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

validforTextControls.

Width LocalizableInteger Widthoftherectangularboundaryofthecontrol.Thismustbeanon-negativenumber.

Yes

X LocalizableInteger Horizontalcoordinateoftheupper-leftcorneroftherectangularboundaryofthecontrol.Thismustbeanon-negativenumber.

Yes

Y LocalizableInteger Verticalcoordinateoftheupper-leftcorneroftherectangularboundaryofthecontrol.Thismustbeanon-negativenumber.

Yes

SeeAlsoWixSchema

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.

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

shortfilename.setthisvaluetothelocalizablenametobegiventotheoriginalfileafteritismovedorcopied.Ifthisattributeisnotspecified,thenthedestinationfileisgiventhesamenameasthesourcefile.shortfilenameisspecified,theDestinationShortNameattributemaynotbespecified.Ifalongfilenameisspecified,theDestinationLongNameattributemaynotbespecified.Also,ifthisvalueisalongfilename,theDestinationShortNameattributemaybeomittedtoallowWiXtoattempttogenerateauniqueshortfilename.However,ifthisnamecollideswithanotherfileoryouwishtomanuallyspecifytheshortfilename,thentheDestinationShortNameattributemaybespecified.

DestinationProperty String Setthisvaluetoapropertythatwillhaveavaluethatresolves

tothefullpathofthedestinationdirectory.Thepropertydoesnothavetoexistintheinstallerdatabaseatcreationtime;itcouldbecreatedatinstallationtimebyacustomaction,onthecommandline,etc.ThisattributecannotbespecifiedinconjunctionwithDestinationDirectory.

DestinationShortName ShortFileNameType Theshortfilenameofthefilein8.3format.Thisattributeshouldonlybesetifthereisaconflictbetweengeneratedshortfilenamesoryouwishtomanuallyspecifytheshortfilename.

FileId String ThisattributecannotbespecifiediftheelementisnestedunderaFileelement.Setthisattribute'svaluetotheidentifierofafilefromadifferentcomponenttocopyitbasedontheinstallstateoftheparentcomponent.

SourceDirectory String Thisattributecannotbespecifiediftheelementisnested

underaFileelementortheFileIdattributeisspecified.Setvaluetothesourcedirectoryfromwhichtocopyormoveanexistingfileonthetargetmachine.Directorymusttheinstallerdatabaseatcreationtime.attributecannotbespecifiedinconjunctionwithSourceProperty.

SourceName WildCardLongFileNameType ThisattributecannotbespecifiediftheelementisnestedunderaFileelementortheFileIdattributeisspecified.Setvaluetothelocalizablenameofthefile(s)tobecopiedormoved.Allofthefilesthatmatchthewildcardwillberemovedfromthespecifieddirectory.Thevalueisafilenamethatmayalsocontainthewildcardcharacters"?"foranysinglecharacteror"*"forzeroormoreoccurrencesofanycharacter.Ifthisattributeisnot

specified(andthiselementisnotnestedunderaFileelementorspecifyaFileIdattribute)thentheSourcePropertyattributeshouldbesettothenameofapropertythatwillresolvetothefullpathofthesourcefilename.Ifthevalueofthisattributecontainsa"*"wildcardandtheDestinationNameattributeisspecified,allmovedorcopiedfilesretainthefilenamesfromtheirsources.

SourceProperty String ThisattributecannotbespecifiediftheelementisnestedunderaFileelementortheFileIdattributeisspecified.Setvaluetoapropertythatwillhaveavaluethatresolvestothefullpathofthesourcedirectory(orfullpathincludingfilenameifSourceNameisnotspecified).Thepropertydoesnothavetoexistintheinstallerdatabaseat

creationtime;itcouldbecreatedatinstallationtimebyacustomaction,onthecommandline,etc.ThisattributebespecifiedinconjunctionwithSourceDirectory.

SeeAlsoWixSchema,RemoveFile

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

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,CostInitialize,FileCost

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

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

CreateFoldersElement

DescriptionCreatesemptyfoldersforcomponentsthataresettobeinstalled.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesCreateFoldersAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

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

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

OnExit ExitType MutuallyexclusivewithBefore,After,andSequenceattributes

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Thesequencenumberforthisaction.MutuallyexclusivewithBefore,After,andOnExitattributes

SeeAlsoWixSchema,CustomAction

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.

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

Indicatesthatthecustomactionrunsin-script(possiblywithelevatedprivileges).

firstSequenceIndicatesthatthecustomactionwillonlyruninthefirstsequencethatrunsit.

immediateIndicatesthatthecustomactionwillrunduringnormalprocessingtimewithuserprivileges.Thisisthedefault.

oncePerProcessIndicatesthatthecustomactionwillonlyruninthefirstsequencethatrunsitinthesameprocess.

rollbackIndicatesthatacustomactionwillrunintherollbacksequencewhenafailureduringinstallation,usuallytoundochangesmadebyadeferredcustomaction.

secondSequenceIndicatesthatacustomactionshouldberunasecondtimeifitwaspreviouslyruninanearliersequence.

FileKey String ThisattributespecifiesareferencetoaFileelementwithmatchingIdattributethatexecutethecustomactioncodeinthefileafterthefileisinstalled.ThisattributeistypicallyusedwiththeExeCommandattributetospecifyatype18customactionthatrunsaninstalledexecutable,withtheDllEntryattributetospecifyaninstalledcustomactionDLLtouseforatype17customaction,orwiththeVBScriptCallorJScriptCallattributestospecifyatype21or22customaction.

HideTarget YesNoType Ensurestheinstallerdoesnotlogthe

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

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

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

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

CustomPropertyElement

DescriptionAcustompropertyforthePatchMetadatatable.

WindowsInstallerreferencesNone

ParentsPatchMetadata

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Company String Thenameofthecompany. Yes

Property String Thenameofthemetadataproperty.

Yes

Value String Valueofthemetadataproperty. Yes

SeeAlsoWixSchema

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.

SeeAlsoWixSchema

DataElement

DescriptionUsedforaCustomTable.SpecifiesthedatafortheparentRowandspecifiedColumn.

WindowsInstallerreferencesNone

ParentsRow

InnerText(xs:string)Adatavalue

ChildrenNone

Attributes

Name Type Description Required

Column String Specifiesinwhichcolumntoinsertthisdata.

Yes

SeeAlsoWixSchema

DeleteServicesElement

DescriptionStopsaserviceandremovesitsregistrationfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesDeleteServicesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

DependencyElement

DescriptionDeclaresadependencyonanothermergemodule.

WindowsInstallerreferencesNone

ParentsModule

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

RequiredId String Identifierofthemergemodulerequiredbythemergemodule.

Yes

RequiredLanguage Integer NumericlanguageIDofthemergemoduleinRequiredID.

Yes

RequiredVersion String VersionofthemergemoduleinRequiredID.

SeeAlsoWixSchema

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.

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

dialogboxasapercentageofscreenheight.Thedefaultvalueis50.

SeeAlsoWixSchema

DialogRefElement

DescriptionReferencetoaDialog.Thiswillcausetheentirereferencedsection'scontentstobeincludedintheinstallerdatabase.

WindowsInstallerreferencesNone

ParentsUI

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifieroftheDialogtoreference.

Yes

SeeAlsoWixSchema,Dialog

DigitalCertificateElement

DescriptionAddsadigitalcertificate.

WindowsInstallerreferencesMsiDigitalCertificateTable

ParentsDigitalSignature,PackageCertificates,PatchCertificates

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Identifierforacertificatefile. Yes

SourceFile String Thepathtothecertificatefile. Yes

SeeAlsoWixSchema

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

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

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

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.

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

directoryin8.3format.attributeshouldonlybesetifthereisaconflictbetweengeneratedshortdirectorynamesortheuserwantstomanuallyspecifytheshortdirectoryname.

ShortSourceName ShortFileNameType Theshortnameofthedirectoryonthesourcemediain8.3format.shouldonlybesetifthereisaconflictbetweengeneratedshortdirectorynamesuserwantstomanuallyspecifytheshortsourcedirectoryname.

SourceName LongFileNameType Thenameofthedirectoryonthesourcemedia.attributeisnotspecified,WindowsInstallerwilldefaulttotheNameattribute.

InpriorversionsoftheWiXtoolset,thisattributespecifiedtheshortsourcedirectoryname.Thisattribute'svaluemaynowbeeitherashortorlongdirectoryname.directorynameisspecified,theShortSourceNameattributemaynotbespecified.Ifalongdirectorynameisspecified,theLongSourceattributemaynotbespecified.Also,ifthisvalueisalongdirectoryname,theShortSourceNameattributemaybeomittedto

toattempttogenerateauniqueshortdirectoryname.However,ifthisnamecollideswithanotherdirectoryoryouwishtomanuallyspecifyshortdirectoryname,thentheShortSourceNameattributemaybespecified.

src String Thisattributehasbeendeprecated;pleaseusetheFileSourceattributeinstead.

AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.

HowTosandExamplesHowTo:Addafiletoyourinstaller

SeeAlsoWixSchema,DirectoryRef

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.

FileSource String UsedtosetthefilesystemsourceforthisDirectoryRef'schildelements.Formoreinformation,seeSpecifyingsourcefiles.

src String Thisattributehasbeendeprecated;pleaseusetheFileSourceattributeinstead.

AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.

HowTosandExamplesHowTo:Addafiletoyourinstaller

SeeAlsoWixSchema,Directory

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

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

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

CompLocator,ortheDrLocatortables.

Path String Pathontheuser'ssystem.Eitherabsolute,orrelativetocontainingdirectories.

Remarks

AreferencetoanotherDirectorySearchelementmustreferencethesameId,thesameParentId,andthesamePath.IfanyoftheseattributevaluesaredifferentyoumustinsteaduseaDirectorySearchelement.

HowTosandExamplesHowTo:ReferenceanotherDirectorySearchelement

SeeAlsoWixSchema,ComponentSearch,IniFileSearch,RegistrySearch

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.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

DuplicateFilesElement

DescriptionDuplicatesfilesinstalledbytheInstallFilesaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesDuplicateFilesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

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

executable.

FileSource String ReferencetotheFileelementthatisthechainerexecutable.MutuallyexclusivewiththeBinarySourceandPropertySourceattributes.

PropertySource String ReferencetoaPropertythatresolvestothefullpathtothechainerexecutable.MutuallyexclusivewiththeBinarySourceandFileSourceattributes.

SeeAlsoWixSchema,Binary,File,Property,EmbeddedChainerRef

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

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

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

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

EmbeddedUIResourceElement

DescriptionDefinesaresourceforusebytheembeddedUI.

WindowsInstallerreferencesMsiEmbeddedUITable

ParentsEmbeddedUI

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String IdentifierfortheembeddedUIresource.

Yes

Name LongFileNameType ThenamefortheresourcewhenitisextractedfromtheProductforusebytheembeddedUIDLL.(WindowsInstallerdoesnotsupportthetypicalshortfilenameandlongfilenamecombinationforembeddedUIfilesasitdoesforotherkindsoffiles.)IfthisattributeisnotspecifiedtheId

Yes

attributewillbeused.

SourceFile String PathtothebinaryfilethatistheembeddedUIresource.

Yes

SeeAlsoWixSchema,EmbeddedUI

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

WixSchema

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.

setCreatestheenvironmentvariableifitdoesnotexist,andthensetitduringinstallation.Iftheenvironmentvariableexists,setitduringtheinstallation.

removeRemovestheenvironmentvariableduringaninstallation.TheinstalleronlyremovesanenvironmentvariableduringaninstallationifthenameandvalueofthevariablematchtheentriesintheNameandValueattributes.Ifyouwanttoremoveanenvironmentvariable,regardlessofitsvalue,donotsettheValueattribute.

Name String Nameoftheenvironmentvariable.

Yes

Part Enumeration Thisattribute'svaluemustbeoneofthefollowing:all

Thisvalueistheentireenvironmentalvariable.Thisisthedefault.

firstThisvalueisprefixed.

last

Thisvalueisappended.

Permanent YesNoType Specifiesthattheenvironmentvariableshouldnotberemovedonuninstall.

Separator String Optionalattributetochangetheseparatorusedbetweenvalues.Bydefaultasemicolonisused.

System YesNoType Specifiesthattheenvironmentvariableshouldbeaddedtothesystemenvironmentspace.Thedefaultis'no'whichindicatestheenvironmentvariableisaddedtotheuserenvironmentspace.

Value String Thevaluetosetintotheenvironmentvariable.Ifthisattributeisnotset,theenvironmentvariableisremovedduringinstallationifitexistsonthemachine.

SeeAlsoWixSchema

ErrorElement

DescriptionNone

WindowsInstallerreferencesErrorTable

ParentsUI

InnerText(xs:string)ElementvalueisMessage,useCDATAifmessagecontainsdelimitercharacters

ChildrenNone

Attributes

Name Type Description Required

Id Integer Numberoftheerrorforwhichamessageisbeingprovided.SeeMSISDKforerrordefinitions.

SeeAlsoWixSchema

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

normin,noexclusionbasedonversion.

ExcludeExceptLanguage Integer NumericlanguageIDofthemergemoduleinExcludedID.Allexceptthislanguagewillbeexcluded.OnlyoneofExcludeExceptLanguageandExcludeLanguagemaybespecified.

ExcludeLanguage Integer NumericlanguageIDofthemergemoduleinExcludedID.Thespecifiedlanguagewillbeexcluded.OnlyoneofExcludeExceptLanguageandExcludeLanguagemaybespecified.

SeeAlsoWixSchema

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

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

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,

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

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

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

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

tothisbehavior.

SeeAlsoWixSchema

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

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

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

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

tableentryoftheupgradedimage.

Name String Identifierforthefamily. Yes

SequenceStart Int Sequencenumberforthestartingfile.

VolumeLabel String EnteredintotheVolumeLabelfieldofthenewMediatablerecord.

SeeAlsoWixSchema

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

optiontosetafeaturetoabsentintheuserinterface.Thisattribute'svaluemustbeoneofthefollowing:allow

AllowstheuserinterfacetodisplayanoptiontochangethefeaturestatetoAbsent.

disallowPreventstheuserinterfacefromdisplayinganoptiontochangethefeaturestatesettingthemsidbFeatureAttributesUIDisallowAbsentattribute.Thiswillforcethefeatureinstallationstate,whetherornotthefeatureisvisibleintheUI.

AllowAdvertise Enumeration Thisattributedeterminesthepossibleadvertisestatesforthisfeature.Thisattribute'svaluemustbeoneofthefollowing:no

PreventsthisfeaturefrombeingadvertisedbysettingthemsidbFeatureAttributesDisallowAdvertiseattribute.

systemPreventsadvertisingforthisfeatureiftheoperatingsystemshelldoesnotsupportWindowsInstallerdescriptorsbysettingthemsidbFeatureAttributesNoUnsupportedAdvertiseattribute.

yesAllowsthefeaturetobeadvertised.

ConfigurableDirectory String SpecifytheIdofaDirectorythatcanbeconfiguredbytheuseratinstallationtime.beapublicpropertyandthereforecompletelyuppercase.

Description String Longerstringoftextdescribingthefeature.

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

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

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.

SeeAlsoWixSchema,FeatureGroupRef

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

ordertomaketheparentfeatureofthisgrouptheprimaryfeatureforanycomponentsandmergescontainedinthegroup.Featuresmaybelongtomultiplefeatures.Bydesignatingafeatureastheprimaryfeatureofacomponentormerge,youensurethatwheneveracomponentisselectedforinstall-on-demand(IOD),theprimaryfeaturewillbetheonetoinstallit.Thisattributeshouldonlybesetifacomponentactuallynestsundermultiplefeatures.Ifacomponentnestsunderonlyonefeature,thatfeatureistheprimaryfeatureforthecomponent.Youcannotsetmorethanonefeatureastheprimaryfeatureofagivencomponent.

AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.

SeeAlsoWixSchema,FeatureGroup

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

thatarenestedunderaparentelementcreateaconnectiontothatparent.ThisbehaviorisundesirablewhentryingtosimplyreferenceaFeatureinadifferentFragment.Specify'yes'tohavethisfeaturereferencenotcreateaconnectiontoitsparent.Thedefaultis'no'.

AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.

SeeAlsoWixSchema,Feature

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

FirewallExceptionFormatsFileGameHelpCollectionHelpFileNativeImagePerfCounterPerfCounterManifestPermissionExSnapInTypesFileVsixPackage

Attributes

Name Type Description

Assembly Enumeration SpecifiesifthisFileisaWin32Assemblyor.NETAssemblythatneedstobeinstalledintotheGlobalAssemblyCache(GAC).Ifthevalueis'.net'or'win32',thisfilemustalsobethekeypathoftheComponent.Thisattribute'svaluemustbeoneofthefollowing:.net

Thefileisa.NETFrameworkassembly.

noThefileisnota.NETFrameworkorWin32assembly.

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

isusuallyalistofproperties,witheachpropertyenclosedinsidesquarebrackets.Thevaluemaybesettoanemptystring.IncludingthisattributewillcauseanentrytobegeneratedforthefileintheBindImagetable.

Checksum YesNoType Thisattributeshouldbesetto"yes"foreveryexecutablefileintheinstallationthathasavalidchecksumstoredinthePortableExecutable(PE)fileheader.Onlythosefilesthathavethisattributesetwillbeverifiedforvalidchecksumduringareinstall.

CompanionFile String Setthisattributetomakethisfileacompanionchildofanotherfile.Theinstallationstateofacompanionfiledependsnotonitsownfileversioninginformation,butontheversioningofitscompanionparent.filethatisthekeypathforitscomponentcannotbeacompanionfile(thatmeansthisattributecannotbesetifKeyPath="yes"forthis

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

thisconnectionbetweenafileanditsmedia,yousetthepackagingoptionstothevaluesspecifiedintheMediaelement(valuessuchascompressionlevel,cabembedding,etc...).SpecifyingtheDiskIdattributeontheFileelementoverridesthedefaultDiskIdattributefromtheparentComponentelement.IfnoDiskIdattributeisspecified,thedefaultis"1".ThisDiskIdattributeisignoredwhencreatingamergemodulebecausemergemodulesdonothavemedia.

FontTitle String CausesanentrytobegeneratedforthefileintheFonttablewiththespecifiedFontTitle.Thisattributeisintendedtobeusedtoregisterthefileasanon-TrueTypefont.

Hidden YesNoType Settoyesinordertohavethefile'shiddenattributesetwhenitisinstalledonthetargetmachine.

Id String TheuniqueidentifierforthisFileelement.IfyouomitId,itdefaultstothe

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

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

shouldbeinstalledratherthancreatingabinarypatch.

ProcessorArchitecture Enumeration Specifiesthearchitectureforthisassembly.Thisattributeshouldonlybeusedon.NETFramework2.0orhigherassemblies.Thisattribute'svaluemustbeoneofthefollowing:msil

Thefileisa.NETFrameworkassemblythatisprocessor-neutral.

x86Thefileisa.NETFrameworkassemblyforthex86processor.

x64Thefileisa.NETFrameworkassemblyforthex64processor.

ia64Thefileisa.NETFrameworkassemblyfortheia64processor.

ReadOnly YesNoType Settoyesinordertohavethefile'sread-onlyattributesetwhenitisinstalledonthetarget

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

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

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

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,CostInitialize,CostFinalize

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.

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

nowbeeitherashortorlongfilename.Ifashortfilenameisspecified,theShortNameattributemaynotbespecified.Ifalongfilenameisspecified,theLongNameattributemaynotbespecified.Ifyouwishtomanuallyspecifytheshortfilename,thentheShortNameattributemaybespecified.

ShortName ShortFileNameType Theshortfilenameofthefilein8.3format.ThereisaWindowsInstallerbugwhichpreventstheFileSearchfunctionalityfromworkingifbothashortandlongfilenamearespecified.SincetheNameattributeallowseitherashortorlongnametobespecified,itistheonlyattributerelatedtofilenameswhichshouldbespecified.

RemarksWhentheparentDirectorySearch/@Depthattributeisgreaterthan0,theFileSearch/@Idattributemustbeabsentorthesameasthe

parentDirectorySearch/@Idattributevalue,unlesstheparentDirectorySearch/@AssignToPropertyattributevalueis'yes'.

HowTosandExamplesHowTo:Checktheversionnumberofafileduringinstallation

SeeAlsoWixSchema,ComponentSearch,DirectorySearch,DirectorySearchRef,FileSearchRef,IniFileSearch,RegistrySearch

FileSearchRefElement

DescriptionReferencesanexistingFileSearchelement.

WindowsInstallerreferencesNone

ParentsComponentSearch,DirectorySearch,DirectorySearchRef,IniFileSearch,RegistrySearch

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String SpecifytheIdtotheFileSearchtoreference.

Yes

Remarks

AreferencetoanotherFileSearchelementmustreferencethesameIdandthesameParentId.IfanyoftheseattributevaluesaredifferentyoumustinsteaduseaFileSearchelement.

SeeAlsoWixSchema,FileSearch

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

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

thisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,Upgrade

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.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

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)

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)

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

RequiresRestartResourceSqlDatabaseUnitTestUnitTestRefUpdateUserUXVariableWebApplicationWebAppPoolWebDirPropertiesWebLogWebSite

Attributes

Name Type Description Required

Id String OptionalidentifierforaFragment.Shouldonlybesetbyadvanceduserstotagsections.

SeeAlsoWixSchema

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

WixSchema

IconRefElement

DescriptionUsedonlyforPatchFamiliestoincludeonlyaicontableentryinapatch.

WindowsInstallerreferencesNone

ParentsPatchFamily

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifieroftheIconelementtoreference.

Yes

AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.

SeeAlsoWixSchema

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

IgnoreRangeElement

DescriptionSpecifiespartofafilethatistobeignoredduringpatching.

WindowsInstallerreferencesNone

ParentsExternalFile,TargetFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Length Int Lengthoftherange. Yes

Offset Int Offsetofthestartoftherange. Yes

SeeAlsoWixSchema

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

IncludeElement

DescriptionThisisthetop-levelcontainerelementforeverywxifile.

WindowsInstallerreferencesNone

ParentsNone

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

AnyElement(namespace='##any'processContents='Lax')

AttributesNone

SeeAlsoWixSchema

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

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

shortname.Thisattribute'svaluemaynowbeeitherashortorlongname.Ifashortnameisspecified,theShortNameattributemaynotbespecified.Ifalongnameisspecified,theLongNameattributemaynotbespecified.Also,ifthisvalueisalongname,theShortNameattributemaybeomittedtoallowWiXtoattempttogenerateauniqueshortname.However,ifthisnamecollideswithanotherfileoryouwishtomanuallyspecifytheshortname,thentheShortNameattributemaybespecified.

Section String Thelocalizable.inifilesection.

Yes

ShortName ShortFileNameType Theshortnameofthein8.3format.Thisattributeshouldonlybesetifthereisaconflictbetweengeneratedshortnamesortheuserwantstomanuallyspecifytheshortname.

Value String Thelocalizablevaluetobewrittenordeleted.ThisattributemustbesetiftheActionattribute'svalueis"addLine","addTag",or"createLine".

SeeAlsoWixSchema

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;

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

specifytheshortname.

Type Enumeration MustbefileiflastchildisFileSearchelementandmustbedirectoryiflastchildisDirectorySearchelement.Thisattribute'svaluemustbeoneofthefollowing:directory

Adirectorylocation.

fileAfilelocation.Thisisthedefaultvalue.

rawAraw.inivalue.

SeeAlsoWixSchema,ComponentSearch,RegistrySearch

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

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

sequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

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

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

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.

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.

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-

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

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

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

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

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

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

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

InstallServicesElement

DescriptionRegistersaserviceforthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesInstallServicesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

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.

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

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

InstanceElement

DescriptionDefinesaninstancetransformforyourproduct.

WindowsInstallerreferencesNone

ParentsInstanceTransforms

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Theidentityoftheinstancetransform.Thisvaluewilldefinethenamebywhichtheinstanceshouldbereferredtoonthecommandline.Inaddition,thevalueofthethisattributewilldeterminewhatthevalueofthepropertyspecifiedinPropertyattributeonInstanceTransformswillchangetoforeachinstance.

Yes

ProductCode AutogenGuid TheProductCodeforthisinstance.

Yes

ProductName String TheProductNameforthisinstance.

UpgradeCode Guid TheUpgradeCodeforthisinstance.

SeeAlsoWixSchema

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

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.

ProxyStubClassId32 Guid GUIDCLSIDfor32-bitproxystubtoCOMInterface.

Versioned YesNoType DetermineswhetheraTypelibversionentryshouldbecreatedwiththeotherCOMInterfaceregistrykeys.Defaultis'yes'.

SeeAlsoWixSchema

IsolateComponentElement

DescriptionSharedComponenttobeprivatelyreplicatedinfolderofparentComponent

WindowsInstallerreferencesIsolateComponentTable

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Shared String SharedComponentforthisapplicationComponent.

Yes

SeeAlsoWixSchema

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

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,IsolateComponent

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

thisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,Condition

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

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

WixSchema

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

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

prefixforthelogfile.ThedefaultistousetheBundle/@Nameor,ifBundle/@Nameisnotspecified,thevalue"Setup".

SeeAlsoWixSchema

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.

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

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

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,

reinstallsit.

afterInstallExecuteSchedulesRemoveExistingProductsbetweentheInstallExecuteandInstallFinalizestandardactions.schedulinginstallstheupgradeproduct"ontopof"theinstalledproductthenletsRemoveExistingProductsuninstallanycomponentsthatdon'talsoexistintheupgradeproduct.schedulingrequiresstrictadherencetothecomponentrulesbecauseitreliesoncomponentreferencecountstobeaccurateduringinstallationoftheupgradeproductandinstalledproduct.Formoreinformation,seeBobArnson'sblogpost"PayingforUpgrades"fordetails.Ifinstallationoftheupgradeproductfails,WindowsInstalleralsorollsbacktheremovaloftheinstalledproduct--inotherwords,reinstallsit.

afterInstallExecuteAgainSchedulesRemoveExistingProductsbetweentheInstallExecuteAgainandInstallFinalizestandardactions.identicaltotheafterInstallExecuteschedulingbutaftertheInstallExecuteAgainstandardinsteadofInstallExecute.

afterInstallFinalizeSchedulesRemoveExistingProductsaftertheInstallFinalizestandardaction.ThisissimilartotheandafterInstallExecuteAgainschedulingsbuttakesplaceoutsidetheinstallationtransactionsoifinstallation

oftheupgradeproductfails,WindowsInstallerdoesnotrollbacktheremovaloftheinstalledproduct,sothemachinewillhavebothversions

SeeAlsoWixSchema

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

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

betheoutputdirectoryforthefinalimage.Thedefaultvalueensuresthebindergeneratesaninstallableimage.Ifarelativepathisspecifiedinthesrcattribute,thevaluewillbeappendedtotheimage'soutputdirectory.Ifanabsolutepathisprovided,thatpathwillbeusedwithoutmodification.Thelattertwooptionsareprovidedtoeasethelayoutofanimageontomultiplemedias(CDs/DVDs).

Source String Optionalpropertythatidentifiesthesourceoftheembeddedcabinet.Ifacabinetisspecifiedforapatch,thispropertyshouldbedefinedanduniquetoeachpatchsothattheembeddedcabinetcontainingpatchedandnewfilescanbelocatedinthepatchpackage.Ifthecabinetisnotembedded-thisisnottypical-thecabinetcanbefoundinthe

directoryreferencedinthiscolumn.Ifempty,theexternalcabinetmustbelocatedintheSourceDirdirectory.

src String Thisattributehasbeendeprecated;pleaseusetheLayoutattributeinstead.

VolumeLabel String Thelabelattributedtothevolume.ThisisthevolumelabelreturnedbytheGetVolumeInformationfunction.IftheSourceDirpropertyreferstoaremovable(floppyorCD-ROM)volume,thenthisvolumelabelisusedtoverifythattheproperdiskisinthedrivebeforeattemptingtoinstallfiles.Theentryinthiscolumnmustmatchthevolumelabelofthephysicalmedia.

SeeAlsoWixSchema

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

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

allowedvalueandtheDefaultvalueofthisattributeis2048MB(2GB).

MaximumUncompressedMediaSize Int Sizeofuncompressedfilesineachcabinet,inmegabytes.WIX_MUMSenvironmentvariablecanbeusedtooverridethisvalue.Defaultvalueis200MB.

VolumeLabel String Thelabelattributedtothevolume.ThisisthevolumelabelreturnedbytheGetVolumeInformationfunction.IftheSourceDirpropertyreferstoaremovable(floppyorCD-ROM)volume,thenthisvolumelabelistheproperdiskisinthedrivebeforeattemptingTheentryinthiscolumnmustmatchthevolumelabelphysicalmedia.

SeeAlsoWixSchema

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

creatingthisconnectionbetweenthemergemoduleandMediaelement,yousetthepackagingoptionstothevaluesspecifiedintheMediaelement(valuessuchascompressionlevel,cabembedding,etc...).

FileCompression YesNoType Specifiesifthefilesinthemergemoduleshouldbecompressed.

Language LocalizableInteger SpecifiesthedecimalLCIDorlocalizationtokenforthelanguagetomergetheModuleinas.

Yes

SourceFile String Pathtothesourcelocationofthemergemodule.

src String Thisattributehasbeendeprecated;pleaseusetheSourceFileattributeinstead.

HowTosandExamplesHowTo:InstalltheVisualC++Redistributablewithyourinstaller

SeeAlsoWixSchema,MergeRef

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

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

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

Extension.Thedefaultvalueis'no'.

SeeAlsoWixSchema

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)

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

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

information.

SeeAlsoWixSchema

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

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

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

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.

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

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

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

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

MsiUnpublishAssembliesElement

DescriptionManagestheunadvertisementofCLRandWin32assembliesthatarebeingremoved.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesMsiUnpublishAssembliesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

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

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

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.

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"

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

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

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

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

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

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

MultiStringValueElement

DescriptionUseseveraloftheseelementstospecifyeachregistryvalueinamultiStringregistryvalue.ThiselementcannotbeusediftheValueattributeisspecifiedunlesstheTypeattributeissetto'multiString'.ThevaluesshouldgointhetextareaoftheMultiStringValueelement.

WindowsInstallerreferencesRegistryTable

ParentsRegistryValue

SeeAlsoWixSchema

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

machineDatasourceisregisteredpermachine.

userDatasourceisregisteredperuser.

SeeAlsoWixSchema

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

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

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

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

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

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

description.

Id AutogenGuid ThepackagecodeGUIDforaproductormergemodule.Whencompilingaproduct,thisattributeshouldnotbesetinordertoallowthepackagecodetobegeneratedforeachbuild.Whencompilingamergemodule,thisattributemustbesettothemodularizationguid.

InstallerVersion Integer TheminimumversionoftheWindowsInstallerrequiredtoinstallthispackage.TakethemajorversionoftherequiredWindowsInstallerandmultiplybya100thenaddtheminorversionoftheWindowsInstaller.Forexample,"200"wouldrepresentWindowsInstaller2.0and"405"wouldrepresentWindowsInstaller4.5.For64-bitWindowsInstallerpackages,thispropertyisset

to200bydefaultasWindowsInstaller2.0wasthefirstversiontosupport64-bitpackages.

InstallPrivileges Enumeration UsethisattributetospecifythepriviligesrequiredtoinstallthepackageonWindowsVistaandabove.Thisattribute'svaluemustbeoneofthefollowing:limited

Setthisvaluetodeclarethatthepackagedoesnotrequireelevatedprivilegestoinstall.

elevatedSetthisvaluetodeclarethatthepackagerequireselevatedprivilegestoinstall.Thisisthedefaultvalue.

InstallScope Enumeration Usethisattributetospecifytheinstallationscopeof

thispackage:per-machineorper-user.Thisattribute'svaluemustbeoneofthefollowing:perMachine

Setthisvaluetodeclarethatthepackageisaper-machineinstallationandrequireselevatedprivilegestoinstall.SetstheALLUSERSpropertyto1.

perUserSetthisvaluetodeclarethatthepackageisaper-userinstallationanddoesnotrequireelevatedprivilegestoinstall.Setsthepackage'sInstallPrivilegesattributeto"limited."

Keywords String Optionalkeywordsforbrowsing.

Languages String ThelistoflanguageIDs(LCIDs)

supportedinthepackage.

Manufacturer String Thevendorreleasingthepackage.

Platform Enumeration Theplatformsupportedbythepackage.Useofthisattributeisdiscouraged;instead,specifythe-archswitchatthecandle.execommandlineortheInstallerPlatformpropertyina.wixprojMSBuildproject.Thisattribute'svaluemustbeoneofthefollowing:x86

Setthisvaluetodeclarethatthepackageisanx86package.

ia64Setthisvaluetodeclarethatthepackageisania64package.ThisvaluerequiresthattheInstallerVersionpropertybeset

to200orgreater.

x64Setthisvaluetodeclarethatthepackageisanx64package.ThisvaluerequiresthattheInstallerVersionpropertybesetto200orgreater.

armSetthisvaluetodeclarethatthepackageisanarmpackage.ThisvaluerequiresthattheInstallerVersionpropertybesetto500orgreater.

intelThisvaluehasbeendeprecated.Use"x86"instead.

intel64Thisvaluehasbeendeprecated.Use"ia64"

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

remarksformoreinformation.

Remarks

YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.

SeeAlsoWixSchema

PackageCertificatesElement

DescriptionDigitalsignaturesthatidentifyinstallationpackagesinamulti-producttransaction.

WindowsInstallerreferencesMsiPackageCertificateTable

ParentsFragment,Product

InnerTextNone

ChildrenChoiceofelements(min:1,max:unbounded)

DigitalCertificate(min:1,max:unbounded)

AttributesNone

SeeAlsoWixSchema

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

PackageGroupRefElement

DescriptionCreateareferencetoPackageGroupelementthatexistsinsideaBundleorFragmentelement.

WindowsInstallerreferencesNone

ParentsChain,Container,PackageGroup

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifierofthePackageGroupelementtoreference.

Yes

After String Theidentifierofapackagethatthisgroupshouldbeinstalledafter.

SeeAlsoWixSchema,PackageGroup

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

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

CriticalUpdate,Hotfix,SecurityRollup,SecurityUpdate,ServicePack,Update,UpdateRollup.

ClientPatchId String Aneasilyreferencedidentityuniquetoapatchthatcanbeusedinproductauthoring.Seeremarksformoreinformation.

Codepage String ThecodepageintegervalueorwebnamefortheresultingMSP.Seeremarksformoreinformation.

Comments String Optionalcommentsforbrowsing.

Description String Descriptionofthepatch.

DisplayName String Atitleforthepatchthatissuitableforpublicdisplay.

InAdd/RemoveProgramsfromXPSP2on.

Id AutogenGuid Patchcodeforthispatch.

Manufacturer String Vendorreleasingthepackage

MinorUpdateTargetRTM YesNoType IndicatesthatthepatchtargetstheRTMversionoftheproductorthemostrecentmajorupgradepatch.AuthorthisoptionalpropertyinminorupdatepatchesthatcontainsequencinginformationtoindicatethatthepatchremovesallpatchesuptotheRTMversionoftheproduct,oruptothemostrecentmajorupgradepatch.Thispropertyisavailable

beginningwithWindowsInstaller3.1.

MoreInfoURL String AURLthatprovidesinformationspecifictothispatch.InAdd/RemoveProgramsfromXPSP2on.

OptimizedInstallMode YesNoType Ifthisattributeissetto'yes'inallthepatchestobeappliedinatransaction,theapplicationofthepatchisoptimizedifpossible.AvailablebeginningwithWindowsInstaller3.1.

OptimizePatchSizeForLargeFiles YesNoType Whenthisattributeisset,patchesforfilesgreaterthanapproximately4MBinsizemaybemadesmaller.

TargetProductName String Nameoftheapplicationortargetproduct

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

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

PatchCertificatesElement

DescriptionIdentifiesthepossiblesignercertificatesusedtodigitallysignpatches.

WindowsInstallerreferencesMsiPatchCertificateTable

ParentsFragment,Product

InnerTextNone

ChildrenChoiceofelements(min:1,max:unbounded)

DigitalCertificate(min:1,max:unbounded)

AttributesNone

SeeAlsoWixSchema

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

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

YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.

SeeAlsoWixSchema

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

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

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

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

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

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

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

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

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

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

theproduct,oruptothemostrecentmajorupgradepatch.ThispropertyisavailablebeginningwithWindowsInstaller3.1.

MoreInfoURL String AURLthatprovidesinformationspecifictothispatch.InAdd/RemoveProgramsfromXPSP2on.

Yes

OptimizedInstallMode YesNoType Ifthisattributeissetto'yes'inallthepatchestobeappliedinatransaction,theapplicationofthepatchisoptimizedifpossible.AvailablebeginningwithWindowsInstaller3.1.

TargetProductName String Nameoftheapplicationortargetproductsuite.

Yes

SeeAlso

WixSchema

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

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

documentationforSequencecolumnofMsiPatchSequencetableinMSISDK.

Supersede YesNoType Setthisvalueto'yes'toindicatethatthispatchwillsupersedeallpreviouspatchesinthispatchfamily.Thedefaultvalueis'no'.

Target String Thisattributehasbeendeprecated;pleaseusetheTargetImageattributeinstead.

TargetImage String SpecifiestheTargetImagethatthisfamilyappliesto.ThisattributecannotthespecifiediftheProductCodeattributeisspecified.

SeeAlsoWixSchema

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

aresupported:

{0}isreplacedbythepackageId.{1}isreplacedbythepayloadId.{2}isreplacedbythepayloadfilename.

Id String TheidentifierofPayloadelement.

Name String Thedestinationpathandfilenameforthispayload.Thedefaultisthesourcefilename.Theuseof'..'directoriesisnotallowed.

SourceFile String Locationofthesourcefile.

Yes

SuppressSignatureVerification YesNoType Bydefault,aBundlewilluseapackage'sAuthenticodesignaturetoverifythecontents.IfthepackagedoesnothaveanAuthenticodesignaturethentheBundlewilluseahashofthepackageinstead.Setthisattributeto"yes"tosuppressthedefaultbehaviorandforcetheBundletoalwaysusethehashofthepackageevenwhenthepackageissigned.

SeeAlsoWixSchema

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

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

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

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

privilege,whichignorestheFILE_TRAVERSEaccessright.Onlyvalidundera'CreateFolder'parent.

User String

Write YesNoType

WriteAttributes YesNoType

WriteExtendedAttributes YesNoType

SeeAlsoWixSchema

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

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

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)

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

ComPlusApplicationRoleComPlusPartitionComPlusPartitionRoleGroupHelpCollectionRefHelpFilterMajorUpgradeRequiresRestartResourceSqlDatabaseTagUnitTestRefUserWebApplicationWebAppPoolWebDirPropertiesWebLogWebSite

Attributes

Name Type Description Required

Id AutogenGuid TheproductcodeGUIDfortheproduct.

Yes

Codepage String ThecodepageintegervalueorwebnamefortheresultingMSI.Seeremarksformoreinformation.

Language LocalizableInteger ThedecimallanguageID(LCID)fortheproduct.

Yes

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

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

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

canregisteradditionalattributesatthispointintheschema.

SeeAlsoWixSchema

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

iconresource.

IconIndex Integer

NoOpen String SpecifiesthattheassociatedProgIdshouldnotbeopenedbyusers.Thevalueispresentedasawarningtousers.Anemptystringisalsovalidforthisattribute.

SeeAlsoWixSchema

ProgressTextElement

DescriptionNone

WindowsInstallerreferencesActionTextTable

ParentsUI

InnerText(xs:string)Elementvalueisprogressmessagetextforaction

ChildrenNone

Attributes

Name Type Description Required

Action String Yes

Template String usedtoformatActionDatamessagesfromactionprocessing

SeeAlsoWixSchema

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

Admin YesNoType DenotesthatthePropertyissavedduringadmininistrativeinstallation.SeetheAdminPropertiesPropertyformoreinformation.

ComplianceCheck YesNoType AddsarowtotheCCPSearchtable.ThisattributeisonlyvalidwhenthisPropertycontainsasearchelement.

Hidden YesNoType DenotesthatthePropertyisnotloggedduringinstallation.SeetheMsiHiddenPropertiesPropertyformoreinformation.

Secure YesNoType DenotesthatthePropertycanbepassedtotheserversidewhendoingamanagedinstallationwithelevatedprivileges.SeetheSecureCustomPropertiesPropertyformoreinformation.

SuppressModularization YesNoType Usetosuppressmodularizationofthispropertyidentifierinmergemodules.Usingthisfunctionalityisstronglydiscouraged;itshouldonlybenecessaryasa

workaroundoflastresortinrarescenarios.

Value String Setsadefaultvaluefortheproperty.ThevaluewillbeoverwrittenifthePropertyisusedforasearch.

AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.

HowTosandExamplesHowTo:Checktheversionnumberofafileduringinstallation

SeeAlsoWixSchema,PropertyRef

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

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

ProtectRangeElement

DescriptionSpecifiespartofafilethatcannotbeoverwrittenduringpatching.

WindowsInstallerreferencesNone

ParentsExternalFile,ProtectFile,TargetFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Length Int Lengthoftherange. Yes

Offset Int Offsetofthestartoftherange. Yes

SeeAlsoWixSchema

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

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

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

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

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

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

theattributecreatesareferencetoaBinaryelementthatrepresentstheicon.ThisattributeismutuallyexclusivewiththeBitmapandTextattributes.

Text String Textdisplayedwiththeradiobutton.ThisattributeismutuallyexclusivewiththeBitmapandIconattributes.

ToolTip String

Value String ValueassignedtotheassociatedcontrolPropertywhenthisradiobuttonisselected.

Yes

Width LocalizableInteger Yes

X LocalizableInteger Yes

Y LocalizableInteger Yes

SeeAlsoWixSchema,RadioButtonGroup

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

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

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

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

RegisterFontsElement

DescriptionRegistersinstalledfontswiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterFontsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

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

RegisterProductElement

DescriptionRegisterstheproductinformationwiththeinstaller.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterProductAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

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

RegisterTypeLibrariesElement

DescriptionRegisterstypelibrarieswiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterTypeLibrariesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

RegisterUserElement

DescriptionRegisterstheuserinformationwiththeinstallertoidentifytheuserofaproduct.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterUserAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

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.

createKeyCreatesthekey,ifabsent,whentheparentcomponentisinstalled.

createKeyAndRemoveKeyOnUninstallCreatesthekey,ifabsent,whentheparentcomponentisinstalledthenremovethekeywithallitsvaluesandsubkeyswhentheparentcomponentisuninstalled.

prependPrependsthespecifiedvalue(s)toamultiStringregistrykey.

removeRemovesaregistrynamewhentheparentcomponentisinstalled.

removeKeyOnInstallRemovesakeywithallitsvaluesandsubkeyswhentheparentcomponentisinstalled.

removeKeyOnUninstallRemovesakeywithallitsvaluesandsubkeyswhentheparentcomponentisuninstalled.

writeWritesaregistryvalue.

Id String Primarykeyusedtoidentifythisparticularentry.Ifthisattributeisnotspecified,anidentifierwillbegeneratedbyhashingtheparentComponentidentifier,Root,Key,andName.

Key String Thelocalizablekeyfortheregistry

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

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

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

key,usetheForceCreateOnInstallorForceDeleteOnUninstallattributesinstead.Thisattribute'svaluemustbeoneofthefollowing:create

Createsthekey,ifabsent,whentheparentcomponentisinstalled.

createAndRemoveOnUninstallCreatesthekey,ifabsent,whentheparentcomponentisinstalledthenremovethekeywithallitsvaluesandsubkeyswhentheparentcomponentisuninstalled.Notethatthisvalueisusefulonlyifyourprogramcreatesadditionalvaluesorsubkeysunderthiskeyandyouwantanuninstalltoremovethem.MSIalreadyremovesallvaluesandsubkeysthatitcreates,sothisoptionjustaddsadditionaloverheadtouninstall.

noneDoesnothing;thiselementisusedmerelyinWiXauthoringfororganizationanddoesnothingtothefinaloutput.Thisisthedefaultvalue.

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

thepathoftheparent,orifitsspecifieditwillbeappendedtothepathoftheparent.

Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.

HowTosandExamplesHowTo:ReadaregistryentryduringinstallationHowTo:Writearegistryentryduringinstallation

SeeAlsoWixSchema

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

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

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

WhentheTypeattributevalueis'directory'theregistryvaluemustspecifythepathtoadirectoryexcludingthefilename.WhentheTypeattributevalueis'file'theregistryvaluemustspecifythepathtoafileincludingthefilename;however,ifthereisnochildFileSearchelementtheparentdirectoryofthefileisreturned.TheFileSearchelementrequiresthatyouauthorthenameofthefileyouaresearchingfor.IfyoudonotknowthefilenameyoumustsettheTypeattributeto'raw'toreturnthefullfilepathincludingthefilename.

HowTosandExamplesHowTo:Readaregistryentryduringinstallation

SeeAlsoWixSchema,ComponentSearch,IniFileSearch

RegistrySearchRefElement

DescriptionReferencesanexistingRegistrySearchelement.

WindowsInstallerreferencesNone

ParentsProperty

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String SpecifytheIdoftheRegistrySearchtoreference.

Yes

SeeAlsoWixSchema,RegistrySearch

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

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

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

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

localizableregistryvalue.Thisvalueisformatted.TheWindowsInstallerallowsseveralspecialvaluestobesetforthisattribute.YoushouldnotusetheminWiX.InsteaduseappropriatevaluesintheTypeattributetogetthedesiredbehavior.

HowTosandExamplesHowTo:Writearegistryentryduringinstallation

SeeAlsoWixSchema

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

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

RemotePayload.IncludethisattributeiftheremotefileisunsignedorSuppressSignatureVerificationissettoYes.

ProductName String Productnameofthefilefromversionresouces.

Size Integer Sizeoftheremotefileinbytes.

Version VersionType Versionoftheremotefile

SeeAlsoWixSchema

RemoveDuplicateFilesElement

DescriptionDeletesfilesinstalledbytheDuplicateFilesaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveDuplicateFilesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

RemoveEnvironmentStringsElement

DescriptionModifiesthevaluesofenvironmentvariables.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveEnvironmentStringsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

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

sequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

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

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

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

intheinstallerdatabaseatcreationtime;itcouldbecreatedatinstallationtimebyacustomaction,onthecommandline,etc.ThisattributecannotbespecifiedinconjunctionwiththeDirectoryattribute.

ShortName WildCardShortFileNameType Theshortfilenameofthefilein8.3format.Thisattributeshouldonlybesetifyouwanttomanuallyspecifytheshortfilename.

SeeAlsoWixSchema,CopyFile

RemoveFilesElement

DescriptionRemovesfilespreviouslyinstalledbytheInstallFilesaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveFilesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

RemoveFolderElement

DescriptionRemoveanemptyfolderiftheparentcomponentisselectedforinstallationorremoval.Bydefault,thefolderisthedirectoryoftheparentcomponent.ThiscanbeoverriddenbyspecifyingtheDirectoryattributewithavaluecorrespondingtotheIdofthedirectory,orbyspecifyingthePropertyattributewithavaluecorrespondingtoapropertythatwillhaveavaluethatresolvestothefullpathofthefolder.

WindowsInstallerreferencesRemoveFileTable

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Primarykeyusedtoidentifythisparticularentry.

Yes

Directory String OverridesthedirectoryoftheparentcomponentwithaspecificDirectory.ThisDirectorymustexistintheinstallerdatabaseatcreationtime.Thisattributecannotbespecifiedinconjunction

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

attributecannotbespecifiedinconjunctionwiththeDirectoryattribute.

SeeAlsoWixSchema,CreateFolder

RemoveFoldersElement

DescriptionRemovesanyfolderslinkedtocomponentssettoberemovedorrunfromsource.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveFoldersAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

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

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

RemoveRegistryKeyElement

DescriptionUsedforremovingregistrykeysandallchildkeyseitherduringinstalloruninstall.

WindowsInstallerreferencesRegistryTable,RemoveRegistryTable

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Action Enumeration Thisistheactionthatwillbetakenforthisregistryvalue.Thisattribute'svaluemustbeoneofthefollowing:removeOnInstall

Removesakeywithallitsvaluesandsubkeyswhentheparentcomponentisinstalled.

removeOnUninstallRemovesakeywithallitsvaluesandsubkeyswhentheparentcomponentisuninstalled.

Id String Primarykeyusedtoidentifythisparticularentry.Ifthisattributeisnotspecified,anidentifierwillbegeneratedbyhashingtheparentComponentidentifier,Root,Key,andName.

Key String Thelocalizablekeyfortheregistryvalue.

Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.

SeeAlsoWixSchema

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.

Name String Thelocalizableregistryvaluename.Ifthisattributeisnotprovidedthedefaultvaluefortheregistrykeywillbesetinstead.TheWindowsInstallerallowsseveralspecialvaluestobesetforthisattribute.YoushouldnotusetheminWiX.InsteaduseappropriatevaluesintheActionattributetogetthedesiredbehavior.

Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.

SeeAlsoWixSchema

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

RemoveShortcutsElement

DescriptionManagestheremovalofanadvertisedshortcutwhosefeatureisselectedforuninstallationoranonadvertisedshortcutwhosecomponentisselectedforuninstallation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveShortcutsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

ReplacePatchElement

DescriptionApatchthatisdeprecatedbythispatch.

WindowsInstallerreferencesNone

ParentsPatchCreation

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id Guid PatchGUIDtobeunregisteredifitexistsonthemachinetargetedbythispatch.

Yes

SeeAlsoWixSchema

RequiredPrivilegeElement

DescriptionPrivilegerequiredbyserviceconfiguredbyServiceConfigparent.ValidvaluesareaprivilegeconstantoraFormattedpropertythatresolvestoaprivilegeconstant.

WindowsInstallerreferencesMsiServiceConfigTable

ParentsServiceConfig

SeeAlsoWixSchema

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

RunLocal Integer Thenumberofbytesofdiskspacetoreserveifthecomponentisinstalledtorunlocally.

Yes

SeeAlsoWixSchema

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

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

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

thisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,CCPSearch,ComplianceCheck

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

specifiedthenthechainshouldcontinuesuccessfulyatthenextrollbackboundary.

SeeAlsoWixSchema

RowElement

DescriptionRowdataforaCustomTable

WindowsInstallerreferencesNone

ParentsCustomTable

InnerTextNone

ChildrenSequence(min:1,max:1)1. Data(min:1,max:unbounded)

AttributesNone

SeeAlsoWixSchema

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.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

SelfRegModulesElement

DescriptionProcessesallmoduleslistedintheSelfRegtableandregistersallinstalledmoduleswiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesSelfRegModulesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

SelfUnregModulesElement

DescriptionUnregistersallmoduleslistedintheSelfRegtablethatarescheduledtobeuninstalled.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesSelfUnregModulesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

ServiceArgumentElement

DescriptionArgumentusedinServiceControlparent

WindowsInstallerreferencesServiceControlTable

ParentsServiceControl

SeeAlsoWixSchema

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

"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.

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

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.

ThisvaluewilldefaulttotheServiceNameattributeifnotspecified.

OnInstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisinstalled.ThisattributemaybecombinedwithOnReinstallandOnUninstall.

OnReinstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisreinstalled.ThisattributemaybecombinedwithOnInstallandOnUninstall.

OnUninstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisuninstalled.ThisattributemaybecombinedwithOnInstallandOnReinstall.

RebootMessage String Specifiesthemessagetoshowforarebootfailureaction.Ifanemptystringisprovideditclearsanyexistingrebootmessage.Ifthisattributeisnotpresentthesettingisnotchanged.

ResetPeriod String Specifiesthetimeinsecondstoresetthefailurecount.Ifthisattributeisnotpresentthefailurecountwillnotbereset.

ServiceName String Specifiesthenameoftheservicetoconfigure.ThisvaluewilldefaulttotheServiceInstall/@NameattributewhennestedunderaServiceInstallelement.

SeeAlsoWixSchema

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

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

willbestoppedonlywhentheparentcomponentisbeinginstalled(msiInstallStateLocalormsiInstallStateSource);for'uninstall',theservicewillbestoppedonlywhentheparentcomponentisbeingremoved(msiInstallStateAbsent);for'both',theservicewillbestoppedinbothcases.

Wait YesNoType Specifieswhetherornottowaitfortheservicetocompletebeforecontinuing.Thedefaultis'yes'.

SeeAlsoWixSchema

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

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".

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

messageboxandcontinuesthestartupoperation.

criticalLogstheerrorifitispossibleandthesystemisrestartedwiththelastconfigurationknowntobegood.Ifthelast-known-goodconfigurationisbeingstarted,thestartupoperationfails.

Id String Uniqueidentifierforthisserviceconfiguration.ThisvaluewilldefaulttotheNameattributeifnotspecified.

Interactive YesNoType Whetherornottheserviceinteractswiththedesktop.

LoadOrderGroup String Theloadorderinggroupthatthisserviceshouldbeapartof.

Name String Thiscolumnisthestringthatgivestheservicenametoinstall.

Yes

Password String Thepasswordfortheaccount.Validonlywhentheaccounthasapassword.

Start Enumeration Determineswhentheserviceshouldbestarted.TheWindowsInstallerdoesnotsupportbootorsystem.Thisattribute'svaluemustbeoneofthefollowing:auto

Theservicewillstartduringstartupofthesystem.

demandTheservicewillstartwhentheservicecontrolmanagercallstheStartServicefunction.

disabledTheservicecannolongerbestarted.

bootTheserviceisadevicedriverthatwillbestartedbytheoperatingsystembootloader.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.

systemTheserviceisadevicedriverthatwillbestartedby

Yes

theIoInitSystemfunction.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.

Type Enumeration TheWindowsInstallerdoesnotcurrentlysupportkernelDriverorsystemDriver.Thisattribute'svaluemustbeoneofthefollowing:ownProcess

AWin32servicethatrunsitsownprocess.

shareProcessAWin32servicethatsharesaprocess.

kernelDriverAkerneldriverservice.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.

systemDriverAfilesystemdriverservice.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.

Yes

Vital YesNoType Theoverallinstallshouldfailifthis

servicefailstoinstall.

RemarksTheserviceexecutableinstalledwillpointtotheKeyPathfortheComponent.Therefore,youmustensurethatthecorrectexecutableiseitherthefirstchildFileelementunderthisComponentorexplicitlymarktheappropriateFileelementasKeyPath='yes'.

SeeAlsoWixSchema

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

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

SetODBCFoldersElement

DescriptionChecksforexistingODBCdriversandsetsthetargetdirectoryforeachnewdrivertothelocationofanexistingdriver.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesSetODBCFoldersAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

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

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

aliteralvalueorderivedfromaPropertyelementusingtheFormattedsyntax.

AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.

SeeAlsoWixSchema,Custom,CustomActionRef,InstallUISequence,InstallExecuteSequence

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

SFPFileElement

DescriptionProvidesamany-to-manymappingfromtheSFPCatalogtabletotheFiletable

WindowsInstallerreferencesFileSFPCatalogTable

ParentsSFPCatalog

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String PrimaryKeytoFileTable. Yes

SeeAlsoWixSchema

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

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

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.

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

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

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.

attributeisnotvalidforadvertisedshortcuts.Ifyouspecifythisvalue,itsvalueshouldbeapropertyidentifierenclosedbysquarebrackets([]),thatisexpandedintothefileorafolderpointedtobytheshortcut.

WorkingDirectory String Directoryidentifier(orPropertyidentifierthatresolvestoadirectory)thatresolvespathoftheworkingdirectoryfortheshortcut.

HowTosandExamplesHowTo:CreateashortcutontheStartMenu

SeeAlsoWixSchema

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

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

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

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoWixSchema

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoWixSchema

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

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

EnumerationTypePossiblevalues:{high,low,medium,mszip,none}

SeeAlsoWixSchema

DiskIdType(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.

PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.

SeeAlsoWixSchema

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoWixSchema

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

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.

SeeAlsoWixSchema

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoWixSchema

LocalizableInteger(SimpleType)

DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.

PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.

SeeAlsoWixSchema

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

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.

SeeAlsoWixSchema

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}

SeeAlsoWixSchema

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoWixSchema

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

VersionType(SimpleType)

DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.

PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.

SeeAlsoWixSchema

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

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

YesNoAlwaysType(SimpleType)

DescriptionValuesofthistypewilleitherbe"always","yes",or"no".

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoWixSchema

YesNoButtonType(SimpleType)

DescriptionValuesofthistypewilleitherbe"button","yes"or"no".

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoWixSchema

YesNoDefaultType(SimpleType)

DescriptionValuesofthistypewilleitherbe"default","yes",or"no".

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoWixSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoWixSchema

SlipstreamMspElement

DescriptionSpecifiesapatchincludedinthesamebundlethatisinstalledwhentheparentMSIpackageisinstalled.

WindowsInstallerreferencesNone

ParentsMsiPackage

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifierforaMspPackageinthebundle.

Yes

Remarks

YoucanalsospecifythatanyMspPackageelementsinthechainareautomaticallyslipstreamedbysettingtheSlipstreamattributeofanMspPackageto"yes".Thiswillreducetheamountofauthoringyouneedtowriteandwilldeterminewhichmsipackagescanslipstreampatcheswhenbuildingabundle.

SeeAlsoWixSchema,MspPackage

StartServicesElement

DescriptionStartssystemservices.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesStartServicesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

StopServicesElement

DescriptionStopssystemservices.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesStopServicesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

SubscribeElement

DescriptionSetsattributesforeventsintheEventMappingtable

WindowsInstallerreferencesEventMappingTable

ParentsControl

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Attribute String ifnotpresentcanonlyhandleenable,disable,hide,unhideevents

Event String mustbeoneofthestandardcontrolevents'

SeeAlsoWixSchema

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

WixSchema

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

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

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

usetheSourceFileattributeinstead.

Validation String Productcheckingtoavoidapplyingirrelevanttransforms.

SeeAlsoWixSchema

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

TargetProductCodesElement

DescriptionTheproductcodesforproductsthatcanacceptthepatch.

WindowsInstallerreferencesNone

ParentsPatch

InnerTextNone

ChildrenChoiceofelements(min:1,max:unbounded)

TargetProductCode(min:1,max:unbounded)

Attributes

Name Type Description Required

Replace YesNoType Whethertoreplacetheproductcodesthatcanacceptthepatchfromthetargetpackageswiththechildelements.

SeeAlsoWixSchema

TextElement

DescriptionAnalternativetousingtheTextattributewhenthevaluecontainsspecialXMLcharacterslike<,>,or&.

WindowsInstallerreferencesNone

ParentsControl

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

SourceFile String Instructsthetexttobeimportedfromafileinsteadoftheelementvalueduringthebindingprocess.

src String Thisattributehasbeendeprecated;pleaseusetheSourceFileattributeinstead.

SeeAlsoWixSchema

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

WixSchema

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

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

MajorVersion Integer Themajorversionofthetypelibrary.Thevalueshouldbeanintegerfrom0-255.

MinorVersion Integer Theminorversionofthetypelibrary.Thevalueshouldbeanintegerfrom0-255.

ResourceId Integer Theresourceidofatypelib.Thevalueisappendedtotheendofthetypelibpathintheregistry.

Restricted YesNoType Valueof'yes'meansthetypelibraryisrestricted,andshouldnotbedisplayedtousers.ThisattributecanonlybesetifAdvertise='no'.

SeeAlsoWixSchema

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

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

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

UITextElement

DescriptionTextassociatedwithcertaincontrols

WindowsInstallerreferencesUITextTable

ParentsUI

InnerText(xs:string)Elementvalueistext,mayuseCDATAifneededtoescapeXMLdelimiters

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

SeeAlsoWixSchema

UnpublishComponentsElement

DescriptionManagestheunadvertisementofcomponentslistedinthePublishComponenttable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnpublishComponentsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

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

UnregisterClassInfoElement

DescriptionManagestheremovalofCOMclassinformationfromthesystemregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterClassInfoAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

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

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

UnregisterFontsElement

DescriptionRemovesregistrationinformationaboutinstalledfontsfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterFontsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

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

UnregisterProgIdInfoElement

DescriptionManagestheunregistrationofOLEProgIdinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterProgIdInfoAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

UnregisterTypeLibrariesElement

DescriptionUnregisterstypelibrariesfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterTypeLibrariesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

UpdateElement

DescriptionDefinestheupdateforaBundle.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenNone

Attributes

Name Type Description

Location String TheabsolutepathorURLtocheckforanupdatebundle.CurrentlytheengineprovidesthisvalueintheIBootstrapperApplication::OnDetectUpdateBegin()andotherwiseignoresthevalue.Inthefuturetheenginewillbeabletoacquireanupdatebundlefromthelocationanddetermineifitisnewerthanthecurrentexecutingbundle.

SeeAlsoWixSchema

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

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

patch.

SeeAlsoWixSchema

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.

srcPatch String Thisattributehasbeendeprecated;pleaseusetheSourcePatchattributeinstead.

SeeAlsoWixSchema

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

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

uninstall.

Property String WhentheFindRelatedProductsactiondetectsarelatedproductinstalledonthesystem,itappendstheproductcodetothepropertyspecifiedinthisfield.WindowsInstallerdocumentationfortheUpgradetablestatesthatthepropertyspecifiedinthisfieldmustbeapublicpropertyandmustbeaddedtotheSecureCustomPropertiesproperty.WiXautomaticallyappendsthepropertyspecifiedinthisfieldtotheSecureCustomPropertiespropertywhencreatinganMSI.EachUpgradeVersionmusthaveauniquePropertyvalue.AftertheFindRelatedProductsactionisrun,thevalueofthispropertyisalistofproductcodes,separatedbysemicolons(;),detectedonthesystem.

Yes

RemoveFeatures String TheinstallersetstheREMOVEpropertytofeaturesspecifiedinthiscolumn.Thefeaturestoberemovedcanbe

determinedatruntime.TheFormattedstringenteredinthisfieldmustevaluatetoacomma-delimitedlistoffeaturenames.Forexample:[Feature1],[Feature2],[Feature3].Nofeaturesareremovedifthefieldcontainsformattedtextthatevaluatestoanemptystring.TheinstallersetsREMOVE=ALLonlyiftheRemovefieldisempty.

AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.

SeeAlsoWixSchema

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

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

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

valuemustbeoneofthefollowing:Major

Checksthemajorversion.

MinorChecksthemajorandminorversions.

UpdateChecksthemajor,minor,andupdateversions.

ProductVersionOperator Enumeration DetermineshowtheinstalledProductVersioniscomparedtothetargetProductVersionusedtocreatethetransform.Seeremarksformoreinformation.Thedefaultis'Equal'.Thisattribute'svaluemustbeoneofthefollowing:Lesser

InstalledProductVersion<targetProductVersion.

LesserOrEqualInstalledProductVersion

<=targetProductVersion.

EqualInstalledProductVersion=targetProductVersion.

GreaterOrEqualInstalledProductVersion>=targetProductVersion.

GreaterInstalledProductVersion>targetProductVersion.

UpgradeCode YesNoType RequiresthattheinstalledUpgradeCodematchthetargetUpgradeCodeusedtocreatethetransform.Thedefaultis'yes'.

Remarks

Atransformcontainsthedifferencesbetweenthetargetproductandtheupgradedproduct.Whenatransformorapatch(whichcontainstransforms)isapplied,thefollowingpropertiesoftheinstalledproductarevalidatedagainstthepropertiesofthetargetproductstoredinatransform.

ProductCodeProductLanguageProductVersion

UpgradeCode

WindowsInstallersimplyvalidatesthattheProductCode,ProductLanguage,andUpgradeCodeofaninstalledproductareequivalenttothosepropetiesofthetargetproductusedtocreatethetransform;however,theProductVersioncanbevalidatedwithagreaterrangeofcomparisons.

YoucancompareuptothefirstthreefieldsoftheProductVersion.Changestothefourthfieldarenotvalidatedandareusefulforsmallupdates.YoucanalsochoosehowtocomparethetargetProductVersionusedtocreatethetransformwiththeinstalledProductVersion.Forexample,whilethedefaultvalueof'Equals'isrecommended,ifyouwantedaminorupgradepatchtoapplytothetargetProductVersionandallolderproductswiththesameProductCode,youwoulduse'LesserOrEqual'.

SeeAlsoWixSchema

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.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

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

theschema.

Overridable YesNoType Whensetto"yes",letstheuseroverridethevariable'sdefaultvaluebyspecifyinganothervalueonthecommandline,intheformVariable=Value.Otherwise,WixStdBAwon'toverwritethedefaultvalueandwilllog"Ignoringattempttosetnon-overridablevariable:'BAR'."(http://schemas.microsoft.com/wix/BalExtension)

SeeAlsoWixSchema

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

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

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

RequiredVersion VersionType RequiredversionoftheWiXtoolsettocompilethisinputfile.

AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.

RequiredVersion String Theversionofthisextensionrequiredtocompilethedefiningsource.(http://schemas.microsoft.com/wix/PSExtension)

SeeAlsoWixSchema

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).

Thedefaultvalueis'no'.

Value String Thevalueofthevariable.Thevaluecannotbeanemptystringbecausethatwouldmakeitpossibletoaccidentallysetacolumntonull.

Yes

SeeAlsoWixSchema

WriteEnvironmentStringsElement

DescriptionModifiesthevaluesofenvironmentvariables.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesWriteEnvironmentStringsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

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

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

LocalizationYesNoType(SimpleType)

DescriptionNone

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoWixlocSchema

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

identifiersthatlookliketext.

Overridable LocalizationYesNoType Determinesifthelocalizedstringmaybeoverridden.

HowTosandExamplesHowTo:BuildalocalizedversionofyourinstallerHowTo:Makeyourinstallerlocalizable

SeeAlsoWixlocSchema

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

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

oftherectangularboundaryofthecontrol.Thismustbeanon-negativenumber.

X Integer Foradialog,overridestheauthoredhorizontalcentering.Foracontrol,overridestheauthoredhorizontalcoordinateoftheupper-leftcorneroftherectangularboundary.Thismustbeanon-negativenumber.

Y Integer Foradialog,overridestheauthoredverticalcentering.Foracontrol,overridestheauthoredverticalcoordinateoftheupper-leftcorneroftherectangularboundaryofthecontrol.Thismustbeanon-

negativenumber.

SeeAlsoWixlocSchema

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

YoucanspecifyanyvalidWindowscodepagebyintegerlike1252,orbywebnamelikeWindows-1252oriso-8859-1.SeeCodePagesformoreinformation.

HowTosandExamplesHowTo:BuildalocalizedversionofyourinstallerHowTo:Makeyourinstallerlocalizable

SeeAlsoWixlocSchema

DevelopingforVotiveIfyouwanttocontributecodetotheVotiveprojectordebugVotive,youmustdownloadandinstalltheVisualStudio2010SDK,availableattheVisualStudioExtensibilityDeveloperCenter.TheVisualStudio2010SDKisnon-invasiveandwillcreateanexperimentalhiveintheregistrythatwillleaveyourretailversionofVisualStudio2010unaffected.

TostartdebuggingVotive,setyourbreakpointsthenpressF5intheWix.slnforVisualStudio.ThecustombuildactionsintheVotiveprojectwillsetupandregisterVotiveintheexperimentalhive,sorunningWix39.exeisnotrequired,norsuggested.

AddingtotheWiXDocumentationWiXdocumentationiscompiledintothefileWiX.chmasapartoftheWiXbuildprocess.Thesourcefilesforhelparelocatedinthewix\src\chmdirectory.Thedocumentationiswritteninmarkdown.

WhattheWiXhelpcompilerdoesTheWiXhelpcompilerdoesthefollowing:

Parses.xsdschemafilesreferencedinchm.helpprojandgenerateshelptopicsfortheattributesandelementsthatareannotatedinthe.xsdfiles.

CompilesallofthemarkdownfilescontainedinthedocumentsdirectoryintoHTMLstrippingthefinalfileextension(.md).

Eachmarkdowndocumentconsistsofametadataheaderfollowedbythecontentofthetopicpage.

SortstheHTMLfilesaccordingtotheaftermetadataandincludesalltheHTMLandcontentfilesprocessedinthelistofdocumentationtobuildintotheCHM.

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.

IntroductiontoDevelopingWiXExtensions

CommonRequirementsInordertounderstandhoweachoftheclassesofextensionswork,oneshouldstartbylookingattheWiXsourcecode.Allextensionshavethefollowingthingsincommon:

Implementedusingthe.NETFramework2.0.TherestoftheWiXtoolsetcurrentlyonlydependsonthe.NETFramework2.0,soinordertoensurebackwardscompatibility,itisabestpracticetodevelopnewextensionssothattheyonlydependonthe.NETFramework2.0aswell.Buildasubclassoftheappropriateextensionobject,whichgivesitaneasilydistinguishablename.Buildaschemaoftheappropriatesyntaxtoprovidevalidationcheckingwherepossible.Buildinternaltabledefinitionsandregisterthemwiththecompiler.Buildoverridesforextensiblemethodsandvirtualmemberswhichwillgetinvokedattheapproriatelocationduringthesinglepasscompile.CompiledintoaDLL.PlacednexttoWiXEXEsalongwithallotherWiXextensionDLLs.RegisteredwithWiXbypassingthepathoftheexensionDLLasacommandlineargumenttothecompilerand/orlinker.

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>

ExtensionsWiXsupportsthefollowingclassesofextensions:

BinderExtensionsallowclientstomodifythebehavioroftheBinder.BinderFileManagerExtensionsallowclientstosimplymodifythefilesourceresolutionandfiledifferencingfeaturesoftheBinder.CompilerExtensionsallowclientstocustomcompileauthoredXMLintointernaltablerepresentationbeforeitiswrittentobinaryform.DecompilerExtensionsallowclientstodecompilecustomtablesintoXML.HarvesterExtensionsallowclientstomodifythebehavioroftheHarvester.InspectorExtensionsallowclientstoinspectsource,intermediate,andoutputdocumentsatvarioustimesduringthebuildtovalidatebusinessrulesasearlyaspossible.MutatorExtensionsallowclientstomodifythebehavioroftheMutator.PreprocessorExtensionsallowclientstomodifyauthoringfilesbeforetheyareprocessedbythecompiler.UnbinderExtensionsallowclientstomodifythebehavioroftheUnbinder.ValidatorExtensionsallowclientstoprocessICEvalidationmessages.Bydefault,ICEvalidationmessagesareoutputtotheconsole.WixBinderExtensionsallowclientstocompletelychangetheBinderto,forexample,createdifferentoutputformatsfromWiXauthoring.

ForinformationonhowtouseWiXextensionsonthecommandlineorinsidetheVisualStudioIDE,pleasevisittheUsingWiXextensionstopic.

ForinformationonhowtouselocalizedWiXextensions,pleasevisittheLocalizedextensionstopic.

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

nowusethisskeletoncodetobuildyourowncustomaction.Afteryouaredone,youcanauthorthecustomactionintheWiXsourcecodebyfollowingtheAddingaCustomActiontopic.YoucanalsobuildyourownextensionstotheWiXtoolsetusingthisskeletoncode.Foranexampleofbuildinganextension,seeCreatingaPreprocessorExtension.

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();

}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;

}

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.

AddingaCustomActionThisexampleshowshowtoauthorabinarycustomactioncalled"FooAction".Acommonexampleisadllcustomactionthatlaunchesnotepad.exeorsomeotherapplicationaspartoftheirinstall.Beforeyoustart,youwillneedasampledllthathasanentrypointcalled"FooEntryPoint".ThissampleassumesyouhavealreadyreviewedtheCreatingaSkeletonExtensiontopic.

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.

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>

</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.

LocalizingExtensionsYoucancreateyourownlocalizedextensionslikeWixUIExtensionusinglit.exe.Localizedextensionscanevencontainmultiplelanguages.Productsusingtheseextensionscanpassthe-culturesswitchtolight.exealongwiththe-extswitchtoreferencetheextension.

WiXextensionscontainlibrariescomprisedoffragments.Thesefragmentsmaycontainproperties,searchproperties,dialogs,andmore.Justlikewhenlocalizingproducts,replaceanylocalizablefieldswithvariablesintheformat!(loc.variableName).Productwouldbeauthoredtoreferenceelementsinthislibrary,andwhencompiledwouldthemselvescontainthelocalizationvariables.Thefollowingshowsanexampleonhowtolocalizeanextension

Step1:AuthoraWiXFragmentCreatea.wxsfilenamedexample.wxsandaddthefollowingcontent:

<?xmlversion="1.0"encoding="utf-8"?><Fragment><ErrorId="50000">!(loc.errormsg)</Error></Fragment>

YouhavejustauthoredaFragmentthatwillbecompiledintoaWiXlibrary.Itcontainsanerrormessagethatreferencesalocalizedstring.

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.

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().

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

RunningWiXTestsThereisasuiteofteststhatareincludedwithWiX.Theycanbeusedtoverifythatchangestothetoolsetdonotregressexistingfunctionality.

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

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.

WritingWiXTestsThisdocumentdescribeshowtowritetestsforWiX.

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

WixTestsSolutionThetestsolutionfile,WixTests.sln,islocatedin%WIX_ROOT%\test\WixTests.sln.TheWixTestssolutioncurrentlycontainstwoprojects:

WixTests:ContainsallofthetestsWixTestsTools:Alibraryofwrapperclassesandverificationmethodsusedbythetests

ThesolutionshouldbeopenedfromtheWiXcommandwindowtoensurethatthe%WIX_ROOT%environmentvariableisset.

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");

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

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");}

ToolsandConceptsTheWiXtoolsetistightlycoupledwiththeWindowsInstallertechnology.InordertofullyutilizethefeaturesinWiX,youmustbefamiliarwiththeWindowsInstallerconcepts.ThissectionassumesyouhaveaworkingknowledgeoftheWindowsInstallerdatabaseformat.ForinformationonWindowsInstaller,seeUsefulWindowsInstallerInformation.

WiXFileTypesThereisasetoftoolsthatWiXofferstofulfilltheneedsofbuildingWindowsInstaller-basedpackages.Eachtooloutputsatypeoffilethatcanbeconsumedasinputsofanothertool.Afterprocessingthroughtheappropriatetools,thefinalinstallerisproduced.

TogetfamiliarwiththeWiXfiletypes,seeFileTypes.

WiXToolsOnceyouarefamiliarwiththefiletypes,seehowthefiletypesareproducedbywhatWiXtoolsbyvisitingListofTools.ForagraphicalviewoftheWiXtoolsandhowtheyinteractwitheachother,seeWiXToolsetDiagram.

WiXSchemaThecoreWiXschemaisaclosemirrorwiththeMSItables.ForhelpfulhintsonhowtheWiXschemamapstoMSItables,seeMSITablestoWiXSchema.

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

BuildingaBootstrapperApplication

WorkinginVisualStudioTheVisualStudioWiXtoolsetallowsyoutoeasilycreateWiXprojects,editWiXfilesusingIntelliSense,andcompile/linkyourprojectwithintheVisualStudioIDE.TheWiXVisualStudioplug-insupportsVS2005,VS2008,andVS2010.

ForWiXprojecttypes,seeWiXProjectTypes.

ForWiXitemtemplates,seeWiXItemtemplates.

FortheWiXpropertypages,seeWiXProjectpropertypages.

ForhintsonhowtoreadthedefaultWiXprojecttemplate,seeWiXProjectTemplate.

YoucancreateandbuildWindowsInstallerpackagesusingWiXwithintheVisualStudioIDE.Inthissection,wewillcoverthebasicsofcreatingasimplesetupusingVisualStudioandWiX.

CreatingasimplesetupUsingprojectreferencesandvariables

Alternatively,youmayalsouseWiXonthecommandlinebycallingthetoolsdirectlyorusingMSBuild.

WorkingwithMSBuildWiXincludesacompletebuildprocess(.targetsfile)forusewithMSBuild-basedbuildsystems.Formoreinformationseethefollowingtopics.

Creatinga.wixprojfileIntegratingWiXProjectsIntoDailyBuildsBuildingWiXProjectsInTeamFoundationBuildWiXMSBuildTaskReferenceWiXMSBuildTargetReference

HowToGuidesThissectionincludesHowTodocumentationforperformingcommonWiXtasks.

Files,ShortcutsandRegistryAddafiletoyourinstallerChecktheversionnumberofafileduringinstallationWritearegistryentryduringinstallationReadaregistryentryduringinstallationCreateashortcutontheStartMenuCreateashortcuttoawebpageCreateanuninstallshortcutNGenmanagedassembliesduringinstallationReferenceanotherDirectorySearchelementGettheparentdirectoryofafilesearch

RedistributablesandInstallChecksCheckfor.NETFrameworkversionsInstallthe.NETFrameworkusingabootstrapperInstallDirectX9.0withyourinstallerInstalltheVisualC++RedistributablewithyourinstallerBlockinstallationbasedonOSversion

UserInterfaceandLocalizationBuildalocalizedversionofyourinstallerMakeyourinstallerlocalizableRuntheinstalledapplicationaftersetupSetyourinstaller'siconinAdd/RemovePrograms

ProductUpdatesImplementamajorupgradeinyourinstaller

OthersGetalogofyourinstallationfordebuggingLookinsideyourMSIwithOrcaGenerateaGUIDUseWiXExtensionsOptimizebuildingcabinetfilesSpecifysourcefilelocations

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.

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.

CreatingpatchesPatchesareupdatestoaproductorproducts.WiXsupportstwodifferentwaysofcreatingthem:

UsingPatchCreationPropertieswhichrequiresthatyouhavetheWindowsInstaller3.0ornewerSDKinstalledforfullsupportofincludedexamples.UsingPurelyWiXwhichusesfunctionalityprovidedinWiXanddoesnotrequireadditionaltools.

Therearealsorestrictionsonhowpatchesarebuiltinordertoavoidproblemswheninstallingthem.

HowPatchesWorkPatchescontainacollectionoftransforms-mostoftenapairoftransformsforeachtargetproduct.Whenapatchisapplied,eachinstalledtargetproductisreinstalledindividuallywiththecorrespondingpatchtransformsapplied.Thesetransformscontainthedifferencesbetweenthattargetproductandtheupgradeproductthatmightcontainnewfileversionsandsizes,newregistrykeys,etc.

FormoreinformationaboutpatchingwithWindowsInstaller,readPatchingandUpgrades.

WiXSchemaReferencesThissectioncontainsschemareferenceinformationforWiXandextensions.

WixschemaWixlocschemaDifxappschemaforWixDifxAppExtensionFirewallschemaforWixFirewallExtensionGamingschemaforWixGamingExtensionIisschemaforWixIIsExtensionLuxschemaforWixLuxExtensionNetfxschemaforWixNetFxExtensionPsschemaforWixPSExtensionSqlschemaforWixSqlExtensionTagschemaforWixTagExtensionUtilschemaforWixUtilExtensionVsschemaforWixVSExtension

DevelopingforWiXThissectioncoversthefollowingtopicsfordeveloperswhowanttocontributetotheWiXcodebase:

ExtensionDevelopmentDevelopingforVotiveAddingtotheWiXDocumentationTestingWiX

Seealsothefollowingtopicsononwixtoolset.org:

WiXToolsetGovernanceWiXToolsetDevelopment

WixUIDialogLibraryReferenceThissectionexplainsWixUIdialogsanddialogsetsthatareincludedwiththeWiXtoolset.

WixUI_AdvancedDialogSetWixUI_FeatureTreeDialogSetWixUI_InstallDirDialogSetWixUI_MinimalDialogSetWixUI_MondoDialogSetWixUIDialogs

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"/>

<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

GamingSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetGamingExtension.

TargetNamespacehttp://schemas.microsoft.com/wix/GamingExtension

ChildElementsGamePlayTaskSupportTask

NetfxSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolset.NETFrameworkExtension.

TargetNamespacehttp://schemas.microsoft.com/wix/NetFxExtension

ChildElementsNativeImage

VsSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetVisualStudioExtension.

TargetNamespacehttp://schemas.microsoft.com/wix/VSExtension

ChildElementsHelpCollectionHelpCollectionRefHelpFileHelpFileRefHelpFilterHelpFilterRefPlugCollectionIntoVsixPackage

BalSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetBurnUserExperienceExtension.

TargetNamespacehttp://schemas.microsoft.com/wix/BalExtension

ChildElementsConditionWixManagedBootstrapperApplicationHostWixStandardBootstrapperApplication

ComplusSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetCOM+Extension.

TargetNamespacehttp://schemas.microsoft.com/wix/ComPlusExtension

ChildElementsComPlusApplicationComPlusApplicationRoleComPlusAssemblyComPlusAssemblyDependencyComPlusComponentComPlusGroupInApplicationRoleComPlusGroupInPartitionRoleComPlusInterfaceComPlusMethodComPlusPartitionComPlusPartitionRoleComPlusPartitionUserComPlusRoleForComponentComPlusRoleForInterfaceComPlusRoleForMethodComPlusSubscriptionComPlusUserInApplicationRoleComPlusUserInPartitionRole

DependencySchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetDependencyExtension.

TargetNamespacehttp://schemas.microsoft.com/wix/DependencyExtension

ChildElementsProvidesRequiresRequiresRef

DifxappSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetDriverInstallFrameworksforApplicationsExtension.

TargetNamespacehttp://schemas.microsoft.com/wix/DifxAppExtension

ChildElementsDriver

FirewallSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetFirewallExtension.

TargetNamespacehttp://schemas.microsoft.com/wix/FirewallExtension

ChildElementsFirewallExceptionRemoteAddress

HttpSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetHttpExtension.

TargetNamespacehttp://schemas.microsoft.com/wix/HttpExtension

ChildElementsUrlAceUrlReservation

IisSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetInternetInformationServicesExtension.

TargetNamespacehttp://schemas.microsoft.com/wix/IIsExtension

ChildElementsCertificateCertificateRefHttpHeaderMimeMapRecycleTimeWebAddressWebApplicationWebApplicationExtensionWebAppPoolWebDirWebDirPropertiesWebErrorWebFilterWebLogWebPropertyWebServiceExtensionWebSiteWebVirtualDir

LuxSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetLuxExtension.

TargetNamespacehttp://schemas.microsoft.com/wix/2009/Lux

ChildElementsConditionExpressionMutationUnitTestUnitTestRef

MsmqSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetMSMQExtension.

TargetNamespacehttp://schemas.microsoft.com/wix/MsmqExtension

ChildElementsMessageQueueMessageQueuePermission

PsSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetPowerShellExtension.

TargetNamespacehttp://schemas.microsoft.com/wix/PSExtension

ChildElementsFormatsFileSnapInTypesFile

SqlSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetSQLServerExtension.

TargetNamespacehttp://schemas.microsoft.com/wix/SqlExtension

ChildElementsSqlDatabaseSqlFileSpecSqlLogFileSpecSqlScriptSqlString

TagSchema

ThesourcecodeschemafortheWiXToolsetSoftwareIdTagExtension.

TargetNamespacehttp://schemas.microsoft.com/wix/TagExtension

ChildElementsTagTagRef

ThmutilSchema

SchemafordescribingThemefilesprocessedbythmutil.

RootElementTheme

TargetNamespacehttp://wixtoolset.org/schemas/thmutil/2010

DocumentShouldLookLike<?xmlversion="1.0"?><Themexmlns="http://wixtoolset.org/schemas/thmutil/2010">...</Theme>

UtilSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetUtilityExtension.

TargetNamespacehttp://schemas.microsoft.com/wix/UtilExtension

ChildElementsCloseApplicationComponentSearchComponentSearchRefDirectorySearchDirectorySearchRefEventManifestEventSourceFileSearchFileSearchRefFileShareFileSharePermissionGroupGroupRefInternetShortcutPerfCounterPerfCounterManifestPerformanceCategoryPerformanceCounterPermissionExProductSearchProductSearchRefRegistrySearchRegistrySearchRef

RemoveFolderExRestartResourceServiceConfigUserXmlConfigXmlFile

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>

WixlocSchema

SchemafordescribingWindowsInstallerXmlLocalizationfiles(.wxl).

RootElementWixLocalization

TargetNamespacehttp://schemas.microsoft.com/wix/2006/localization

DocumentShouldLookLike<?xmlversion="1.0"?><WixLocalizationxmlns="http://schemas.microsoft.com/wix/2006/localization">...</WixLocalization>

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

resourcescreatedduringBootstrapperApplicationCreatethatneedtobecleanedupinBootstrapperApplicationDestroy.Theentrypointlookslikethis:

extern"C"voidWINAPIBootstrapperApplicationDestroy()

NotethatbootstrapperapplicationsmustberecompiledwhenupgradingminorversionsoftheWiXToolset.Minorversionsmaintainsource-codecompatibilitybutdonotguaranteebinarycompatibility.

WiXMSBuildTaskReferenceThissectionexplainsMSBuildtasksthatareincludedwiththeWiXtoolset.

CandleTaskHeatDirectoryTaskHeatFileTaskHeatProjectTaskLightTaskLitTaskInsigniaTask

WiXMSBuildTargetReferenceThissectionexplainsMSBuildtargetsthatareincludedwiththeWiXtoolset.

HarvestDirectoryTargetHarvestFileTargetHarvestProjectsTarget

DevelopingWiXExtensionsThissectioncoversthefollowingtopicsfordeveloperswhowanttocreatetheirownWiXextensions:

IntroductiontoDevelopingWiXExtensionsCreatingaSkeletonExtensionCreatingaPreprocessorExtension

TestingWiXThissectioncontainsdocumentsonhowtocreateandexecutetestsfortheWindowsInstallerXMLToolset.

RunningTestsWritingTests