windows installer xml (wix) - documentation & help · wix is a set of tools that allows you to...

Post on 13-Jul-2020

6 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

IntroductiontoWindowsInstallerXML(WiX)toolset

WhatisWiX?WiXisasetoftoolsthatallowsyoutocreateWindowsInstaller-baseddeploymentpackagesforyourapplication.TheWiXtoolsetisbasedonadeclarativeXMLauthoringmodel.YoucanuseWiXonthecommandlinebyusingtheWiXtoolsorMSBuild.Inaddition,thereisalsoaWiXVisualStudioplug-inthatsupportsVS2005,VS2008,andVS2010.TheWiXtoolsetsupportsbuildingthefollowingtypesofWindowsInstallerfiles:

Installer(.msi)Patches(.msp)MergeModules(.msm)Transforms(.mst)

WiXsupportsaboardspectrumofWindowsInstallerfeatures.Inaddition,WiXalsooffersasetofbuilt-incustomactionsthatcanbeusedandincorporatedinWindowsInstallerpackages.ThecustomactionsareofferedinasetofWiXextensions.SomecommonWiXextensionsincludesupportforInternetInformationSystem(IIS),StructuredQueryLanguage(SQL),the.NETFramework,VisualStudio,andWindowsetc.

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

UsingWiXontheCommandLineUsingWiXinVisualStudioUsingWiXwithMSBuildUsingWiXwithNAntHowToGuidesWiXSchemaReferenceAdvancedWiXTopicsDevelopingforWiXAdditionalResources

GettingStartedThereareseveraloptionsavailabletogetstartedlearninghowtouseWiX.

BasicWalkthroughTogetstarted,youcangototheCreatingInstallationPackagessectionwhichincludesastep-by-stepwalkthroughtocreateasimplepackageusingWiX.

HowToGuidesThishelpfileincludesasetofHowToGuidesthatexplainhowtoaccomplishcommonWindowsInstallertasksusingWiX.

TutorialsIfyouprefertolearnfromatutorial,thefollowingoptionsareavailable:

UsingtheWiXToolsettoIntegrateSetupintoYourDevelopmentProcesshttp://www.tramontana.co.hu/wix/NotethatthistutorialiscurrentlytargetedatWiX2.0.ThistutorialisagreatwaytorampupontheWiXtoolsetifyouarenewtoWiXorarelookingforanswerstocommonauthoringquestions.

Ifyouprefertolearnfromaudio-visualpresentations,thefollowingoptionsareavailable:

BlogintroductionwithvideoVideoonChannel9MSDNRadiobroadcast

CommunityIfyouprefertolearnbyinteractingwiththecommunity,thereisaWiXusersmailinglistathttp://wix.sourceforge.net/mailinglists.html#wix-users.

IntegratedDevelopmentEnvironmentIfyouprefertolearnbyusinganintegrateddevelopmentenvironment,thereisanoverviewofWiXeditorsathttp://robmensching.com/blog/archive/2007/11/20/WiX-editors.aspx.

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

ReadingSourceCodeIfyouprefertolearnbyreadingcode,WiXisanopensourceproject,andyoucanlookatthesourcecodebyreviewingtheHowtobeaWindowsInstallerXMLDevelopertopic.

FixaBug,WriteaFeatureIfyouprefertolearnbywritingcode,youcanreviewthefollowingWiXissuetrackers:

Bugs-http://sourceforge.net/tracker/?group_id=105970&atid=642714Features-http://sourceforge.net/tracker/?group_id=105970&atid=642717

ForWiXdevelopmentassistance,thereisaWiXdevelopermailinglistathttp://sourceforge.net/mailarchive/forum.php?forum_name=wix-devs.

GettingHelpPleaseseehttp://wix.sourceforge.net/formoreinformationabouttheWiXtoolset.Thissiteincludesthefollowinginformation:

1. LinkstodownloadweeklyreleasesoftheWiXtoolset.2. TheWiXbugdatabasewhereyoucanreportnewbugsorcheckthe

statusofexistingbugs.3. Mailingliststoaskquestions,makesuggestionsordiscusstheWiX

toolsetwithotherusersandtheWiXdevelopers.4. LinkstoblogsmaintainedbytheWiXdevelopers.

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

WiXFileTypesThereisasetoftoolsthatWiXofferstofulfilltheneedsofbuildingWindowsInstaller-basedpackages.Eachtooloutputsatypeoffilethatcanbeconsumedasinputsofanothertool.Afterprocessingthroughtheappropriatetools,thefinalinstallerisproduced.

TogetfamiliarwiththeWiXfiletypes,seeFileTypes.

WiXToolsOnceyouarefamiliarwiththefiletypes,seehowthefiletypesareproducedbywhatWiXtoolsbyvisitingListofTools.ForagraphicalviewoftheWiXtoolsandhowtheyinteractwitheachother,seeWiXToolsetDiagram.

WiXSchemaThecoreWiXschemaisaclosemirrorwiththeMSItables.ForhelpfulhintsonhowtheWiXschemamapstoMSItables,seeMSITablestoWiXSchema.

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.

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.

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

<?if$(env.MySku)=Enterprise?><?includeEnterpriseFeature.wxs?><?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.

CURRENTDIR-thecurrentdirectorywherethebuildprocessisrunningSOURCEFILEPATH–thefullpathtothefilebeingprocessedSOURCEFILEDIR–thedirectorycontainingthefilebeingprocessedPLATFORM–theplatform(Intel,x64,Intel64)thispackageiscompiledfor(setbythePackageelement'sPlatformattribute)

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,$$(Variablescanbeusedtocheckforexistence

VariablescanbecomparedtoaliteraloranothervariableComparisonswith=,!=,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.

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

<?foreachLCIDin"1033;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$$$.

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.

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

(managedonly)

bind.assemblyName.FileID !(bind.assemblyName.MyAssembly)

bind.assemblyProcessorArchitecture.FileID !(bind.assemblyProcessorArchitecture.MyAssembly)

bind.assemblyPublicKeyToken.FileID !(bind.assemblyPublicKeyToken.MyAssembly)

bind.assemblyType.FileID(nativeonly)

!(bind.assemblyType.MyAssembly)

bind.assemblyVersion.FileID !(bind.assemblyVersion.MyAssembly)

LocalizationVariables

VariablescanbepassedinbeforebindingtheoutputfilefromaWiXlocalizationfile,or.wxlfile.Thisprocessallowsthedevelopertolinkoneormore.wixobjfilestogetherwithdiferent.wxlfilestoproducedifferentlocalizedpackages.

Localizationvariablesareinthefollowingformat:

!(loc.VariableName)

CustomBinderVariables

YoucancreateyourownbindervariablesusingtheWixVariableelementorbysimplytypingyourownvariablenameinthefollowingformat:

!(bind.VariableName)

Custombindervariablesallowyoutousethesame.wixobjfilesbutspecifydifferentvalueswhenlinking,similartohowlocalizationvariablesareused.Youmightusebindervariablesfordifferentbuilds,likevarying

thetargetprocessorarchitecture.

InsigniaInsigniaisatoolusedforinscribinganMSIwiththedigitalsignaturesthatitsexternalCABsaresignedwith.

TosignyourexternalcabswithInsignia,firstbuildyourMSInormally,andsignyourcabsmanually.ThencallInsigniawiththepathtoyourMSI-InsigniawillupdateyourMSIwiththedigitalsignatureinformationofitsassociatedexternalcabs.Thefilewillbeupdatedin-place.ThensignyourMSI.Thiswillallowwindowsinstallertoverify,atinstall-time,thattheexternalcabshaven'tchangedsinceyoubuiltthem.

IfyouuseMSBuild,aneasiermethodfordoingthisexists.Inyour.wixprojfile,setthe"InscribeMainOutput"propertyto"true".Thenoverridethe"SignCabs"target,usingthe"OutputCabList"propertyasalistofcabstosign,tosigntheexternalcabsHere'sanexamplesigningthosecabsusingsigntool.exe:

<TargetName="SignCabs"><ExecCondition="'%(OutputCabList.FullPath)'!=''"Command="Signtool.exesign/a&quot;%(OutputCabList.FullPath)&quot;"/></Target>

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

<TargetName="SignMsi"><ExecCondition="'$(OutputMsi)'!=''"Command="signtool.exesign/a&quot;$(OutputMsi)&quot;"/></Target>

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

WixCopWixCopservestwomainpurposes:

ToupgradeWiXauthoringtothecurrentschemaToformatWiXauthoringaccordingtoasetofcommonformatting

WixCop'scommand-linesyntaxis:

WixCop.exe[options]sourceFile[sourceFile...]

WixCoptakesanynumberofWiXsourcefilesascommand-linearguments.Wildcardsarepermitted.WixCopsupportsresponsefilescontainingoptionsandsourcefiles,using@responseFilesyntax.

WixCopreturnsthefollowingexitcodes:

0,whennoerrorsarereported.1,whenafatalerroroccurs.2,whenWixCopviolationsoccur.

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 Displayedwhenthe

whitespacefollowingaCDATAnodeiswrong.

WhitespacePrecedingEndElementWrong Displayedwhenthewhitespaceprecedinganendelementiswrong.

XmlnsMissing Displayedwhenthexmlnsattributeismissingfromthedocumentelement.

XmlnsValueWrong Displayedwhenthexmlnsattributeonthedocumentelementiswrong.

CategoryAppDataEmpty DisplayedwhenaCategoryelementhasanemptyAppDataattribute.

COMRegistrationTyper DisplayedwhenaRegistryelementencountersanerrorwhilebeingconvertedtoastrongly-typedWiXCOMelement.

UpgradeVersionRemoveFeaturesEmpty DisplayedwhenanUpgradeVersionelementhasanemptyRemoveFeaturesattribute.

FeatureFollowParentDeprecated DisplayedwhenaFeatureelementcontainsthedeprecatedFollowParentattribute.

RadioButtonMissingValue DisplayedwhenaRadioButtonelementismissingtheValueattribute.

TypeLibDescriptionEmpty DisplayedwhenaTypeLibelementcontainsaDescriptionelementwithanemptystringvalue.

ClassRelativePathMustBeAdvertised DisplayedwhenaRelativePathattributeoccurs

onanunadvertisedClasselement.

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 DisplayedwhenaProgId/@Iconattributevaluecontainsaformattedstring.

IgnoreModularizationDeprecated DisplayedwhenadeprecatedIgnoreModularizationelementisfound.

PackageCompressedIllegal DisplayedwhenaPackage/@CompressedattributeisfoundunderaModuleelement.

PackagePlatformsDeprecated DisplayedwhenaPackage/@Platformsattributeisfound.

ModuleGuidDeprecated DisplayedwhenadeprecatedModule/@Guidattributeisfound.

GuidWildcardDeprecated Displayedwhenadeprecatedguidwildcardvalueisfound.

FragmentRefIllegal DisplayedwhenaFragmentRefElementis

found.FileRedundantNames Displayedwhena

File/@NamematchesaFile/@ShortName.

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

ListofWindowsInstallerdefaultproperties:http://msdn.microsoft.com/en-us/library/aa370905.aspx

ListofWindowsInstalleroperatorsforconditionalexpressions:http://msdn.microsoft.com/en-us/library/aa368012.aspx

CreatinganInstallerPackageInthissection,wewillcoverthebasicsofcreatingasimplesetupthatproducesanMSIpackageusingWiXonthecommandline.

CreatingaSimpleSetupCreatingaMergeModuleIncorporatingaMergeModuleAddingaCustomAction

Alternatively,WiXcanalsobeusedonthecommandlineviaMSBuild.Formoreinformation,seeUsingWiXwithMSBuild.

CreatingaSimpleSetupThegoalofthistutorialistohelpyoutogetfamiliarwithWiXandthefundmentalbuildingblocksinordertobuildasimpleinstallable.msipackageusingWiX.WewillstartwiththebasicWiXcodetocreatean.msipackagethatinstallsonefile.

Step1:CreatetheWiXsourcefileTogetstarted,pickyourfavoriteXMLeditor(suchasNotepadorVisualStudio)andcreateanewfilecalledproduct.wxs.Nothingaboutthatnameisspecial,butthe.wxsextensionletsusknowthatthisisaWindowsInstallerXMLsourcefile.Next,addthethreelinesoftextthatall.wxsfilesmustcontain:

<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'></Wix>

Thatformstheouterskeletonforoursourcefile.SavethefileinthesamedirectoryaswheretheWiXtoolsareinstalled(e.g.C:\test).

Step2:AuthorthecontentofthepackageOkay,nowthatwe'vecreatedanemptysourcefile,let'screateaninstallableWindowsInstallerpackage.Addthefollowingcontenttoyourproduct.wxsfile:

<?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='MicrosoftCorporation'UpgradeCode='PUT-GUID-HERE'><PackageDescription='MyfirstWindowsInstallerpackage'Comments='ThisismyfirstattemptatcreatingaWindowsInstallerdatabase'Manufacturer='MicrosoftCorporation'InstallerVersion='200'Compressed='yes'/>

<DirectoryId='TARGETDIR'Name='SourceDir'><ComponentId='MyComponent'Guid='PUT-GUID-HERE'/></Directory><FeatureId='MyFeature'Title='My1stFeature'Level='1'><ComponentRefId='MyComponent'/></Feature></Product></Wix>

ReplacePUT-GUID-HEREwithaGUIDvalue.Thiswillallowyoutocreatean.msiwithaProductCodeof"{PUT-GUID-HERE}"withaProductLanguageof"1033"andaProductVersionof"1.0.0.0".Allofthatinformationistakenfromthe<Product>element.The<Package>elementdefinesalloftheinformationthatgoesinour.msi'ssummaryinformationstream.Finally,asimple<Directory>and<Feature>treeiscreatedwithasingle<Component>.Thisisenoughtogetour.msiregisteredonthemachine.

Step3:AddingafiletothepackageNowthatwehavethedirectoryauthored,let'sputafileinthefolder.Createanewtextfilecalledreadme.txtinthesamedirectoryastheproduct.wxsfileandtypeamessagesuchas"Hello,World!"inthefile.Then,weneedtomodifyproduct.wxstotellitaboutthefile:

<?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='MicrosoftCorporation'UpgradeCode='PUT-GUID-HERE'><PackageDescription='MyfirstWindowsInstallerpackage'Comments='ThisismyfirstattemptatcreatingaWindowsInstallerdatabase'Manufacturer='MicrosoftCorporation'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></Directory></Directory></Directory><FeatureId='MyFeature'Title='My1stFeature'Level='1'><ComponentRefId='MyComponent'/></Feature></Product></Wix>

Step4:BuildthepackageNowlet'sbuildthepackageusingthefollowinginstructions:

C:\test>candleproduct.wxsMicrosoft(R)WindowsInstallerXmlCompilerversion1.0.1220.15022Copyright(C)MicrosoftCorporation2003.Allrightsreservedproduct.wxsC:\test>lightproduct.wixobjMicrosoft(R)WindowsInstallerXmlLinkerversion1.0.1220.15022Copyright(C)MicrosoftCorporation2003.Allrightsreserved

Step5:VerifythepackageWecannowtryinstallingtheresultingpackageandlookattheresult.Notethatmsipackagesrequiresadministrativeprivilegesinordertoinstallcorrectly.IfwillfailsilentlyifyouarenotinstallingasanAdministrator.

C:\test>msiexec/iproduct.msi

YoucannowgotoAdd/RemoveProgramsintheControlPanelandsee"TestPackage"listedthere.Youcanalsoseethatitcreatesadirectorycalled"TestProgram"inyoursystem's"ProgramFiles"folder.Thefilereadme.txtwillbeinstalledinthe"TestProgram"directory.Afterverifyingthatinstallationworksasexpected,remembertouninstallthe.msisoyoucanrebuilditandinstallanewversionagainlater.

That'sallthereistocreatingaWindowsInstallerpackage.Youcandomanymoreadvancedthings,suchasaddingsetupUItoyour.msi,butwe'vecoveredthebasics.EverythingjustcomesdowntofillingintherightXMLelements.

CreatingaMergeModuleCreatingaMergeModuleisverymuchlikecreatingaWindowsInstallerpackage.

Step1:CreatetheWiXsourcefileCreateanewtextfilecalled"module.wxs"andputthestandardskeletoninit:

<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'></Wix>

Step2:AuthorthecontentofthepackageTocreateaMergeModule,weaddthe<Module/>elementandaddtherequiredattributes:

<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'><ModuleId='TestModule'Language='1033'Version='1.0.0.0'><PackageId='PUT-GUID-HERE'Description='MyfirstMergeModule'Comments='ThisismyfirstattemptatcreatingaWindowsInstallerMergeModule'Manufacturer='MicrosoftCorporation'InstallerVersion='200'/>

</Module></Wix>

ReplacePUT-GUID-HEREwithaGUIDvalue.

Step3:AddingafiletothepackageThencreateatextfilecalledreadme2.txtandupdatethesourcecodetoincludethenewfile:

<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'><ModuleId='TestModule'Language='1033'Version='1.0.0.0'><PackageId='PUT-GUID-HERE'Description='MyfirstMergeModule'Comments='ThisismyfirstattemptatcreatingaWindowsInstallerMergeModule'Manufacturer='MicrosoftCorporation'InstallerVersion='200'/><DirectoryId='TARGETDIR'Name='SourceDir'><DirectoryId='MyModuleDirectory'Name='.'><ComponentId='MyModuleComponent'Guid='PUT-GUID-HERE'><FileId='readme2'Name='readme2.txt'Source='readme2.txt'/></Component></Directory></Directory></Module></Wix>

ReplacePUT-GUID-HEREwithaGUIDvalue.

Step4:BuildthepackageNowlet'sbuildthepackageusingthefollowinginstructions:

C:\test>candlemodule.wxsMicrosoft(R)WindowsInstallerXmlCompilerversion1.0.1220.15022Copyright(C)MicrosoftCorporation2003.Allrightsreservedmodule.wxsC:\test>lightmodule.wixobjMicrosoft(R)WindowsInstallerXmlLinkerversion1.0.1220.15022Copyright(C)MicrosoftCorporation2003.Allrightsreserved

That'sit!YounowhaveaMergeModulethatcanbesharedwithotherteamstoinstallyour"readme2.txt"file.NowthatwehaveaMergeModule,let'sactuallyuseitinaWindowsInstallerpackage.SeeIncorporatingaMergeModule

IncorporatingaMergeModuleintoa.wxsFileMergeModulescanonlybemergedintoWindowsInstallerpackages.Onceyouhavea.wxsfilethatcreatesaWindowsInstallerpackage,it'sjustamatterofaddingtwolines(yes,onlytwolinesarenecessary)tomergeanewModule.Inyour.wxssourcefile,addthefollowinglines:

<?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='MicrosoftCorporation'><PackageDescription='MyfirstWindowsInstallerpackage'Comments='ThisismyfirstattemptatcreatingaWindowsInstallerdatabase'Manufacturer='MicrosoftCorporation'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></Product></Wix>

NowwhenyoucompileyourWindowsInstallerpackagesourcefile,itwillincludetheinstallationlogicandfilesfromtheMergeModule.

C:\test>candleproduct.wxsMicrosoft(R)WindowsInstallerXmlCompilerversion1.0.1220.15022Copyright(C)MicrosoftCorporation2003.Allrightsreservedproduct.wxsC:\test>lightproduct.wixobjMicrosoft(R)WindowsInstallerXmlLinkerversion1.0.1220.15022Copyright(C)MicrosoftCorporation2003.Allrightsreserved

Nowwhenyouinstallthepackage,youwillseethatitcreatesadirectorycalled"TestProgram"inyoursystem's"ProgramFiles"folder.Thefilesreadme.txtandreadme2.txtwillbeinstalledinthe"TestProgram"directory.

UsingaCustomActionWiXprovidesasetofbuilt-incustomactionsthatcanbeusedinyourinstallerpackage.Inthisexample,wewillcreateaninstallerthatcreatesashortcuttoanURL.

Step1:AddtheextensionnamespaceTobuildontopofthesimplesetupexample,let'sre-usethesamesourcefileandaddthefollowing:

<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'xmlns:util='http://schemas.microsoft.com/wix/UtilExtension'<ProductId='PUT-GUID-HERE'Name='TestPackage'Language='1033'Version='1.0.0.0'Manufacturer='MicrosoftCorporation'><PackageDescription='MyfirstWindowsInstallerpackage'Comments='ThisismyfirstattemptatcreatingaWindowsInstallerdatabase'Manufacturer='MicrosoftCorporation'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></Product></Wix>

Step2:AuthortheelementtocreatetheshortcutAddthefollowingtothesourcefile::

<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'xmlns:util='http://schemas.microsoft.com/wix/UtilExtension<ProductId='PUT-GUID-HERE'Name='TestPackage'Language='1033'Version='1.0.0.0'Manufacturer='MicrosoftCorporation'><PackageDescription='MyfirstWindowsInstallerpackage'Comments='ThisismyfirstattemptatcreatingaWindowsInstallerdatabase'Manufacturer='MicrosoftCorporation'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'/><util:InternetShortcutId='Bing'Name='Bing'Target='http://www.bing.com'/></Component><MergeId='MyModule'Language='1033'SourceFile='module.msm'DiskId='1'/></Directory></Directory></Directory><FeatureId='MyFeature'Title='My1stFeature'Level='1'><ComponentRefId='MyComponent'/><MergeRefId='MyModule'/></Feature></Product></Wix>;;;;

Step3:BuildtheinstallerTobuildtheinstaller,youneedtopassintheextensionthatthesourcefileisreferencing:

C:\test>candleproduct.wxs-extWixUtilExtensionMicrosoft(R)WindowsInstallerXmlCompilerversion1.0.1220.15022Copyright(C)MicrosoftCorporation2003.Allrightsreservedproduct.wxsC:\test>lightproduct.wixobj-extWixUtilExtensionMicrosoft(R)WindowsInstallerXmlLinkerversion1.0.1220.15022Copyright(C)MicrosoftCorporation2003.Allrightsreserved

WixUIDialogLibraryWiXoffersasetofbuilt-inWindowsInstaller-baseduserinterfaceforinstallationpackages.ThissectioncoversthefollowingtopicsaboutusingtheWixUIdialoglibrary:

UsingBuilt-inWixUIDialogSetsCustomizingBuilt-inWixUIDialogSetsUsingLocalizedVersionsofWixUIWixUIDialogReference

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-culturesswitchestolight.exetoreferencetheWixUIExtension.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:

Languagename Culturecode WXLfilenameEnglish en-us WixUI_en-us.wxlFrench fr-fr WixUI_fr-fr.wxlGerman de-de WixUI_de-de.wxlItalian it-it WixUI_it-it.wxlJapanese ja-jp WixUI_ja-jp.wxlPolish pl-pl WixUI_pl-pl.wxlRussian ru-ru WixUI_ru-ru.wxlSpanish es-es WixUI_es-es.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"/>

WixUIDialogLibraryReferenceThissectionexplainsWixUIdialogsanddialogsetsthatareincludedwiththeWiXtoolset.

WixUI_AdvancedDialogSetWixUI_FeatureTreeDialogSetWixUI_InstallDirDialogSetWixUI_MinimalDialogSetWixUI_MondoDialogSetWixUIDialogs

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

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

agreement.UnliketheLicenseAgreementDlg,ithasAdvancedandInstallbuttonsinsteadofNextandBackbuttons.ThisdialogisusedbytheWixUI_Advanceddialogsettoprovidetheuserwithaquickwaytoperformadefaultinstallation.

BrowseDlg Adialogthatallowstheusertobrowseforadestinationfolder.

CancelDlg AdialogthatappearsaftertheuserclicksaCancelbuttononanydialogandconfirmswhetherornottheuserreallywantstocanceltheinstallation.

CustomizeDlg AdialogthatdisplaysafeatureselectiontreewithaBrowsebutton,DiskUsagebutton,andatextboxthatcontainsinformationaboutthecurrentlyselectedfeature.

DiskCostDlg Adialogthatallowstheusertoselectwhichdrivetoinstalltoandthatdisplaysdiskspaceusageinformationforeachdrive.

ErrorDlg Adialogthatdisplaysanerrormessagetotheuserandcanprovideanoptiontoretrythepreviousaction.

ExitDlg Adialogthatdisplaysasummarydialogaftersetupcompletessuccessfully.Itcanalsooptionallydisplayacheckboxandcustomtext.Fordetailsabouthowtoadd

acheckboxandcustomtexttothisdialog,seeCustomizingBuilt-inWixUIDialogSetsandHowTo:RuntheInstalledApplicationAfterSetup.

FatalError Adialogthatdisplaysasummaryerrordialogifsetupfails.

FeaturesDlg Adialogthatdisplaysafeatureselectiontreewithatextboxthatcontainsinformationaboutthecurrentlyselectedfeature.UnliketheCustomizeDlg,itdoesnotcontainBrowseorDiskSpacebuttons.

FilesInUse Adialogthatdisplaysalistofapplicationsthatareholdingfilesinusethatneedtobeupdatedbythecurrentinstallationprocess.ItincludesRetry,IgnoreandExitbuttons.

InstallDirDlg Adialogthathasatextboxthatallowstheusertotypeinanon-defaultinstallationpathandaBrowsebuttonthatallowstheusertoselectanon-defaultinstallationfolder.Bydefault,theInstallDirDlgdialogvalidatesthatanypaththeuserentersisvalidforWindowsInstaller:Thatis,it'sapathonalocalharddrive,notanetworkpathoronaremovabledrive.Ifyouwishtodisablepathvalidationandallowinvalidpaths,setthepublicpropertyWIXUI_DONTVALIDATEPATHto1.

InstallScopeDlg Adialogthatallowstheusertochoosetoinstalltheproductforallusersorforthecurrentuser.

InvalidDirDlg Adialogthatdisplaysanerroriftheuserselectsaninvalidinstallationdirectory.

LicenseAgreementDlg AdialogthatdisplaystheenduserlicenseagreementandincludesBackandNextbuttons.Unlikethe

AdvancedWelcomeEulaDlg,thisdialogdoesnotallowtheusertostartadefaultinstallation.

MaintenanceTypeDlg Adialogthatincludesbuttonsthatallowtheusertochangewhichfeaturesareinstalled,repairtheproductorremovetheproduct.Itonlyappearswhentheuserrunssetupafteraproducthasbeeninstalled.

MaintenanceWelcomeDlg Anintroductorydialogthatappearswhenrunningsetupaftertheproducthasbeeninstalled.

MsiRMFilesInUse AdialogthatissimilartotheFilesInUsedialog,butthatinteractswithRestartManager.Itallowstheusertoattempttoautomaticallycloseapplicationsorignorethepromptandresultinthesetuprequiringarebootafteritcompletes.

OutOfDiskDlg Adialogthatinformstheuserthattheyhaveinsufficientdiskspaceontheselecteddriveandadvisesthemtofreeupadditionaldiskspaceorreducethenumberoffeaturestobeinstalledtothedrive.

OutOfRbDiskDlg AdialogthatissimilartotheOutOfDiskDlg,butalsoallowstheusertodisableWindowsInstallerrollbackfunctionalityinordertoconservediskspacerequiredbysetup.

PrepareDlg Asimpleprogressdialogthatappearsduringsetupinitializationbeforethefirstinteractivedialogappears.

ProgressDlg Adialogthatappearsduringinstallationthatdisplaysaprogressbarandmessagesaboutactionsarebeingperformed.

ResumeDlg Anintroductorydialogthatappearswhenresumingasuspendedsetup.

SetupTypeDlg AdialogthatallowstheusertochooseTypical,CustomorCompleteinstallationconfigurations.

UserExit AdialogthatthatissimilartotheFatalErrordialog.Itdisplaysasummarydialogiftheuserchoosestocancelsetup.

VerifyReadyDlg Adialogthatappearsimmediatelybeforestartinginstallation.Itaskstheuserforfinalconfirmationbeforestartingtomakechangestothesystem.

WaitForCostingDlg AdialogthatappearsiftheuseradvancestoofarinthesetupwizardbeforeWindowsInstallerhasfinishedcalculatingdiskcostrequirements.

WelcomeDlg Anintroductorydialogthatappearswhenrunningsetupforaproductthathasnotyetbeeninstalled.

WelcomeEulaDlg Adialogthatdisplaysanenduserlicenseagreementandallowstheusertostartinstallationafteracceptingtheagreement.ItisonlyusedbytheWixUI_Minimaldialogsetandisintendedforsimplesetupprogramsthatdonotofferanyuserconfigurableoptions.

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

ForWiXprojecttypes,seeWiXProjectTypes.

ForWiXitemtemplates,seeWiXItemtemplates.

FortheWiXpropertypages,seeWiXProjectpropertypages.

ForhintsonhowtoreadthedefaultWiXprojecttemplate,seeWiXProjectTemplate.

YoucancreateandbuildWindowsInstallerpackagesusingWiXwithintheVisualStudioIDE.Inthissection,wewillcoverthebasicsofcreatingasimplesetupusingVisualStudioandWiX.

CreatingasimplesetupUsingprojectreferencesandvariables

Alternatively,youmayalsouseWiXonthecommandlinebycallingthetoolsdirectlyorusingMSBuild.SeeCreatingInstallationPackagesandUsingWiXwithMSBuild.

ProjectTemplatesTheWiXVisualStudiopackageprovidesthefollowingVisualStudioprojecttemplates:

WiXProject-usedtocreateanewWindowsInstallerpackage(.msi)file.EachnewWiXprojectincludesa.wxsfilethatconsistsofa<Product>elementthatcontainsaskeletonwiththeWiXauthoringrequiredtocreateafullyfunctionalWindowsInstallerpackage.The<Package>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-atextboxthatcontainsthenameoftheresultant.msi,.msmor.wixlibfilethatwillbecreatedbythebuildprocess.Outputtype-adrop-downlistthatallowsyoutoselecttheoutputtype(a.msi,.msmor.wixlibfile).

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,itcreatesfilecontainsthebeginningofthesetupcodefortheproject.EverythingneededtocreateanMSIcanbeaddedtothisfile.

Note:IfyouarenotfamiliarwithWindowsInstallersetuppackages,youarestronglyencouragedtoreviewtheMSDNdocumentationabouttheInstallationPackagebeforecontinuing.ItwillprovidealotofvaluablecontextaswedigintothedetailsofaWindowsInstallersetuppackage.

<?xmlversion="1.0"encoding="UTF-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><ProductId="677a7ac3-6e9b-4531-8a61-c31acc301d27"Name="MySetup"Language="1033"Version="1.0.0.0"Manufacturer="MySetup"UpgradeCode="ae949a2b-1fcd-4abe-bf47-1eb923575de1"><PackageInstallerVersion="200"Compressed="yes"/><MediaId="1"Cabinet="MySetup.cab"EmbedCab="yes"/><DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"><DirectoryId="INSTALLLOCATION"Name="MySetup"><!--TODO:RemovethecommentsaroundthisComponentelementandtheComponentRefbelowinordertoaddresourcestothisinstaller.--><!--<ComponentId="ProductComponent"Guid="78576f70-ac55-4d9c-b9e8-a96d81889ada">--><!--TODO:Insertfiles,registrykeys,andotherresourceshere.--><!--</Component>--></Directory></Directory></Directory><FeatureId="ProductFeature"Title="PUT-FEATURE-TITLE-HERE"Level="1"><ComponentRefId="ProductComponent"/></Feature></Product></Wix>

IfyouarefamiliarwiththeWindowsInstaller,thestructureofthe.wxsfileshouldbefamiliar.First,theWixelementexistspurelytowraptherestofthecontentinthefile.TheWixelementalsospecifiesthenamespace,thexmlnsattributethatenablesvalidationduringcompileandauto-completeinVisualStudioviaIntelliSense.Next,theProductelementdefinestherequiredWindowsInstallerpropertiesusedtoidentifytheproduct,suchastheProductCode,ProductName,ProductLanguage,andProductVersion.Third,thePackageelementcontainstheattributesfortheSummaryInformationStreamthatprovidesinformationaboutthesetuppackageitself.Therestoftheelements,excepttheComponentRefelement,maptoWindowsInstallertablesbythesamename,forexampletheMediatable,Directorytable,Componenttable,andFeaturetable.TheComponentRefelementisusedtotietheFeaturestotheirComponentswhichmapstotheentriesintheFeatureComponentstable.

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,

thenselectWiXProject3. Nameyourproject"MySetup"andpressOK.4. IntheMySetupproject,right-clickontheReferencesnodeand

chooseAddReference....5. NavigatetotheProjectstab,clickontheMyApplicationproject,

andclicktheAddbutton,andthenpressOK.6. BuildtheWiXproject.

That'sit!Nowyouhaveaworkinginstallerthatinstallsanduninstallstheapplication.

Note:Afterstep5,theappropriateWiXauthoringisauto-generatedtoreferencetheapplicationproject.Todisableauto-generation,right-clickontheMyApplicationprojectreferenceandgotoProperties,thensettheHarvestpropertytoFalse.TomanuallyaddtheprojectreferenceintotheWiXsourcefile,openMySetup.wxsandyouwillseeacommentthatsays:

<!--TODO:Insertyourfiles,registrykeys,andotherresourceshere.-->

Deletethislineandreplaceitwiththefollowinglinesofcode:

<FileId="MyApplicationFile"Name="$(var.MyApplication.TargetFileName)"Source="$(var.MyApplication.TargetPath)"DiskId="1"KeyPath="yes"/>

Ifyoutypethatcodeintotheeditor(insteadofcopyingandpastingfromthisexample)youwillnoticethatIntelliSensepicksupthevalidelementsandattributes.IntelliSensewithWiXinVisualStudiocansaveyousignificantamountsoftypingandtimewhensearchingforthenameoftheelementsorattributesasyoubecomemorecomfortablewiththeWiXlanguage.

ThatlineofcodeinstructstheWiXtoolsettoaddafileresourcetothesetuppackageusing"MyApplicationFile"asitspackageidentifier.TheNameattributespecifiesthenameforyourfilewhenitisinstalledandtheSourceattributespecifieswheretofindthefileforpackagingduringthebuild.Ratherthanhard-codevaluesfortheseattributesintooursourcecode,weusetheWiXpreprocessorvariablesthatarepassedtotheWiXcompiler.Moreinformationaboutusingpreprocessorvariables,includingatableofallsupportedvalues,canbefoundintheAddingProjectReferencestopic.

TheDiskIdattributeinstructstheWiXtoolsettoaddthisfiletotheMediaelementwithmatchingIdattribute.Inthisexample,theMyApplicationexecutableisaddedtotheMySetup.cabcabinetandthatcabinetisembeddedinthesetuppackage.TheKeyPathattributeinstructstheWiXtoolsettousethisfileasthekeypathforthecomponentthatcontainsthefile.

ProjectReferencesandVariablesTheWiXprojectsupportsaddingprojectreferencestootherprojectssuchasVBandC#.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\VisualStudio2005\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

2005\Projects\MyProject\MyApp.csproj

var.ProjectName.TargetDir $(var.MyProject.TargetDir) C:\users\myusername\Documents\VisualStudio2005\Projects\MyProject\obj\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\VisualStudio2005\Projects\MyProject\obj\Debug\MyProject.exe

var.ProjectName.Culture.TargetPath $(var.MyProject.en-US.TargetPath)

C:\users\myusername\Documents\VisualStudio2005\Projects\MyProject\obj\Debug\en-US\MyProject.msm

var.SolutionDir $(var.SolutionDir) C:\users\myusername\Documents\VisualStudio2005\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\VisualStudio2005\Projects\MySolution\MySolution.sln

Note:var.ProjectName.Culture.TargetPathisonlyavailableforprojectsthathavemultiplelocalizedoutputs(e.g.MSMs).

UsingWiXWithMSBuildWiXincludesacompletebuildprocess(.targetsfile)forusewithMSBuild-basedbuildsystems.Formoreinformationseethefollowingtopics.

Creatinga.wixprojfileIntegratingWiXProjectsIntoDailyBuildsBuildingWiXProjectsInTeamFoundationBuildWiXMSBuildTaskReferenceWiXMSBuildTargetReference

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\v3.5\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. InstallWiXonadevelopermachineusingtheWiXinstallerthat'sappropriateforthemachine'sarchitecture(x86orx64).

2. CreateadirectoryinyoursourcecodecontrolsystemtoholdtheWiXtools.It'scommontocreateanumberedsubdirectorymatchingtheversionofWiXthatyou'recheckingin.

3. Copythecontentsofc:\ProgramFiles\WindowsInstallerXMLv3\binintothedirectorycreatedinstep2.

4. Copythecontentsofc:\ProgramFiles\MSBuild\Microsoft\WiX\v3.5intothedirectorycreatedinstep2.

5. IfyouuseDeploymentToolsFoundationortheWiXSDKheaderfilesandlibraries,createaparalleldirectorytreetotheoneyoucreatedinstep2andcopythecontentsofc:\ProgramFiles\WindowsInstallerXMLv3\sdkintothatdirectory.

6. Addandcheckinthefilesfromsteps3through5.

Theactualfilelocationsinsteps3through5willvarydependingonwhereyouinstalledWiX.On64-bitoperatingsystems,thefileswillbelocatedunderc:\ProgramFiles(x86)bydefault.

Step2:ModifyYour.wixprojFileAftercheckingtheWiXtoolsintosourcecodecontrolthe.wixprojfilemustbemodifiedtopointtothelocationofthecheckedintools.Openthe.wixprojfileinanytexteditor,suchasVisualStudio,andaddthefollowingtothefileanywherebetweenthe<Project>elementbeforethe<Import>element:

<PropertyGroup><WixToolPath>$(SourceCodeControlRoot)\wix\3.5.1623.0\</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.

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'(oranotherculture

dependingonthesettingsintheWiXproject)thatcontainsthebuiltWindowsInstallerpackage.

WiXMSBuildTaskReferenceThissectionexplainsMSBuildtasksthatareincludedwiththeWiXtoolset.

CandleTaskHeatDirectoryTaskHeatFileTaskHeatProjectTaskLightTaskLitTask

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.

ThenameoftheComponentGrouptocreateforallthegeneratedauthoring.

DirectoryRefId Optionalstringparameter.

TheIDofthedirectorytoreferenceinsteadofTARGETDIR.

KeepEmptyDirectories Optionalbooleanparameter.

WhethertocreateDirectoryentriesforemptydirectories.

PreprocessorVariable Optionalstringparameter.

SubstituteSourceDirforanothervariablename(ex:var.Dir).

SuppressCom Optionalbooleanparameter.

SuppressgenerationofCOMregistryelements.Thedefaultisfalse.

SuppressRegistry Optionalbooleanparameter.

SuppressgenerationofaDirectoryelementfortheparentdirectoryofthefile.Thedefaultisfalse.

SuppressRootDirectory Optionalbooleanparameter.

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

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

parameter.

Specifiesabasepaththatshouldbeusedtolocateallfiles.Thisisequivalenttothe-b<path>switch.

BindFiles Optionalbooleanparameter.

Specifiesthatthetoolshouldbindfilesintoa.wixoutfile.ThisisonlyvalidwhentheOutputAsXmlparameterisalsoprovided.Thisis

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

ThefollowingtabledescribestheparametersthatarespecifictotheLighttask.

Parameter DescriptionAllowIdenticalRows Optionalboolean

parameter.

Specifiesthatthelinker

shouldallowidenticalrows.Identicalrowswillbetreatedaswarnings.Thisisequivalenttothe-aiswitchinlight.exe.

AllowUnresolvedReferences Optionalbooleanparameter.

Specifiesthatthelinkershouldallowunresolvedreferences.Thiswillnotcreatevalidoutput.Thisisequivalenttothe-auswitchinlight.exe.

AdditionalCub Optionalstringparameter.

Specifiesanadditional.cubfilethatthelinkershouldusewhenrunningICEvalidation.Thisisequivalenttothe-cub<file.cub>switchinlight.exe.

BackwardsCompatibleGuidGeneration Optionalbooleanparameter.

SpecifiesthatthelinkershouldusethebackwardcompatibleGUIDgenerationalgorithm.Thisisequivalenttothe-bcggswitchinlight.exe.

CabinetCachePath Optionalstringparameter.

Specifiesapaththatthelinkershouldusetocache

builtcabinetfiles.Thisisequivalenttothe-cc<path>switchinlight.exe.

CabinetCreationThreadCount Optionalintegerparameter.

Specifiesthatnumberofthreadsthatthelinkershouldusewhenbuildingcabinetfiles.Thisisequivalenttothe-ct<N>switchinlight.exe.

Cultures Optionalstringparameter.

Specifiesasemicolonorcommadelimitedlistoflocalizedstringculturestoloadfrom.wxlfilesandlibraries.Precedenceofculturesisfromlefttoright.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).Thisisequivalenttothe-ice:<ICE>switchinlight.exe.

LeaveTemporaryFiles Optionalbooleanparameter.

Specifiesthatthelinkershouldnotdeletetemporaryfiles.Thisisequivalenttothe-notidyswitchinlight.exe.

LinkerAdditionalOptions Optionalstringparameter.

Specifiesadditionalcommandlineparameterstoappendwhencallinglight.exe.

LinkerBaseInputPaths Optionalstringparameter.

Specifiesabasepaththatthelinkershouldusetolocateallfiles.Thisisequivalenttothe-b<path>switchinlight.exe.

LinkerBindFiles Optionalbooleanparameter.

Specifiesthatthelinkershouldbindfilesintoa.wixoutfile.ThisisonlyvalidwhentheOutputAsXmlparameterisalsoprovided.Thisisequivalenttothe-bfswitchinlight.exe.

LinkerPedantic Optionalbooleanparameter.

Specifiesthatthelinkershoulddisplaypedanticmessages.Thisisequivalenttothe-pedanticswitchinlight.exe.

LinkerSuppressAllWarnings Optionalbooleanparameter.

Specifiesthatalllinkerwarningsshouldbesuppressed.Thisisequivalenttothe-swswitchinlight.exe.

LinkerSuppressIntermediateFileVersionMatching Optionalboolean

parameter.

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

equivalenttothe-wxswitchinlight.exe.

LinkerVerboseOutput Optionalbooleanparameter.

Specifiesthatthelinkershouldprovideverboseoutput.Thisisequivalenttothe-vswitchinlight.exe.

OutputAsXml Optionalbooleanparameter.

Specifiesthatthelinkershouldoutputa.wixoutfileinsteadofa.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.Thisisusefulwhenlayingoutanimagetoanetworkshare.Thisisequivalenttothe-saclswitchinlight.exe.

SuppressAssemblies Optionalbooleanparameter.

Specifiesthatthelinkershouldnotgetassemblynameinformationforassemblies.Thisisequivalenttothe-saswitchinlight.exe.

SuppressDefaultAdminSequenceActions Optionalbooleanparameter.

Specifiesthatthelinkershouldsuppressdefaultadminsequenceactions.Thisisequivalenttothe-sadminswitchinlight.exe.

SuppressDefaultAdvSequenceActions Optionalboolean

parameter.

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.

SuppressPdbOutput Optionalbooleanparameter.

Specifiesthatthelinkershouldsuppressoutputting.wixpdbfiles.Thisisequivalenttothe-spdbswitchinlight.exe.

SuppressValidation Optionalbooleanparameter.

Specifiesthatthelinkershouldsuppress.msiand

.msmvalidation.Thisisequivalenttothe-svalswitchinlight.exe.

SuppressTagSectionIdAttributeOnTuples Optionalbooleanparameter.

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

parameter.

Specifiesthatthetoolshouldbindfilesintoa.wixoutfile.ThisisonlyvalidwhentheOutputAsXmlparameterisalsoprovided.Thisisequivalenttothe-bfswitch.

Pedantic Optionalbooleanparameter.

Specifiesthatthetoolshoulddisplaypedanticmessages.Thisisequivalenttothe-

pedanticswitch.SuppressAllWarnings Optionalboolean

parameter.

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.Thisisequivalenttothe-swswitchinlit.exe.

LibSuppressIntermediateFileVersionMatching Optionalbooleanparameter.

Specifiesthatthelibrarycreationtoolshouldsuppressintermediatefileversionmismatchchecking.Thisisequivalenttothe-svswitchinlit.exe.

LibSuppressSchemaValidation Optionalboolean

parameter.

Specifiesthatthelibrarycreationtoolshouldsuppressschemavalidationofdocuments.Thisisequivalenttothe-ssswitchinlit.exe.

LibSuppressSpecificWarnings Optionalstringparameter.

Specifiesthatcertainlibrarycreationtoolwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switchinlit.exe.

LibTreatSpecificWarningsAsErrors Optionalstringparameter.

Specifiesthatcertainlibrarycreationtoolwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switchinlit.exe.

LibTreatWarningsAsErrors Optionalbooleanparameter.

Specifiesthatalllibrarycreationtoolwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitchinlit.exe.

LibVerboseOutput Optionalboolean

parameter.

Specifiesthatthelibrarycreationtoolshouldprovideverboseoutput.Thisisequivalenttothe-vswitchinlit.exe.

LinkerBaseInputPaths Optionalstringparameter.

Specifiesabasepaththatthelibrarycreationtoolshouldusetolocateallfiles.Thisisequivalenttothe-b<path>switchinlit.exe.

WiXMSBuildTargetReferenceThissectionexplainsMSBuildtargetsthatareincludedwiththeWiXtoolset.

HarvestDirectoryTargetHarvestFileTargetHarvestProjectsTarget

HarvestDirectoryTargetTheHarvestDirectorytargetpassesHarvestDirectoryitemstotheHeatDirectorytasktogenerateauthoringfromafile.Authoringisgeneratedfortypelibrariesandself-registrationfromDllRegisterServerforanyfilesfoundindirectories.Thistargetisprocessedbeforecompilation.GeneratedauthoringisautomaticallyaddedtotheCompileitemgrouptobecompiledbytheCandletask.

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

ThefollowingtablesdescribethecommonWiXMSBuildpropertiesanditemsthatareapplicabletotheHarvestDirectorytarget.

ItemsThefollowingitemsanditemmetadataareusedbytheHarvestDirectorytarget.

ItemorMetadata Description@(HarvestDirectory) Requireditemgroup.

Thelistofdirectoriestoharvest.

%(HarvestDirectory.ComponentGroupName)

Optionalstringmetadata.

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.

Thecomponentgroupnamethatwillcontainallgeneratedauthoring.

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

$(HarvestDirectoryDirectoryRefId) Optionalstringproperty.

TheidentifieroftheDirectoryelementthatwillcontainallgeneratedauthoring.

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

$(HarvestDirectoryGenerateGuidsNow) Optionalboolean

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

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

UsingWiXWithNAntToincludetheNAntbuildtasksinyouNAntprojectincludethefollowingcode:

<!--WiX3folder--><propertyname="wix.dir"value="${path::combine(environment::get-variable('WIX'),'bin')}"readonly="true<!--LoadtheWiX3tasks--><loadtasksassembly="${wix.dir}\Microsoft.Tools.WindowsInstallerXml.NAntTasks.dll"/>

Formoreinformationseethefollowingtopics:

CandletaskLighttaskLitTask

WiXNAntTaskReferenceThissectionexplainsMSBuildtasksthatareincludedwiththeWiXtoolset.

CandleTaskLightTaskLitTask

CandleTaskTheCandletaskwrapscandle.exe,theWiXcompiler.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.ThefollowingisasampleshowsatheNAntcodeusedtoruntheCandletask:

<candleexedir="${wix.dir}"out="${release.dir}\obj\\"rebuild="true"extensions="WixUIExtension;WixUtilExtension"warningsaserrors="true"><defines><definename="ProjectDir"value="${release.dir}"/><definename="Configuration"value="Release"/><definename="Version"value="${buildnumber.version}"/></defines><sourcesbasedir="${releasemsi.dir}"><includename="Product.wxs"/><includename="Files.wxs"/></sources></candle>

ThefollowingtabledescribesthecommonWiXNAntparametersthatareapplicabletotheCandletask.

Parameter Descriptionexedir Optionalstringparameter.

Setsthedirectorytothetoolexecutable.Defaultstothepathspecifiedbytheregistrykey"HKLM\SOFTWARE\Microsoft\WindowsInstallerXML\3.0\InstallRoot"whichissetbytheWiXinstallation.Ifnopathisfoundorspecifiedthetaskassumestheexecutableisonthepath.

out Requiredstringparameter.

Setsthefileordirectorytowritetheoutputto.Thisis

equivalenttothe-outswitch.extensions Optionalstringparameter.

Semi-colonseparatedlistofWiXextensionstoload.Thisisequivalenttothe-extswitch.

rebuild Optionalbooleanparameter.

InstructsNAnttorecompiletheoutputfileregardlessofthefiletimestamps..

sources RequiredNAntfileset.

Thesetofsourcefilesforcompilation.warningsaserrors Optionalbooleanparameter.

Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitch.

verbose Optionalbooleanparameter.

Specifiesthatthetoolshouldprovideverboseoutput.Thisisequivalenttothe-vswitch.

ThefollowingtabledescribestheparametersthatarespecifictotheCandletask.

Parameter Descriptiondefines OptionalNAntfileset.

Thisisequivalenttothe-d<name>[=<value>]switchincandle.exe.

includedirs OptionalNAntfileset.

Specifiesdirectoriestoaddtothecompilerincludesearchpath.Thisisequivalenttothe-I<dir>switchincandle.exe.

AdditionaloptionscanbeaddedbyusingthestandardNAnt<arg>elements,e.g.:

<argline="-pedantic"/>

LightTaskTheLighttaskwrapslight.exe,theWiXlinker.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.ThefollowingisasampleshowsatheNAntcodeusedtoruntheLighttask:

<lightexedir="${wix.dir}"out="${output.dir}\Setup.msi"warningsaserrors="true"suppressices="ICE57"cultures="en-us"extensions="WixUIExtension"rebuild="true"suppresspdb="true"><!--Specifyadditionaloptions--><argline="-fv"/><sourcesbasedir="${release.dir}\Setup\obj"><includename="*.wixobj"/></sources></light>

ThefollowingtabledescribesthecommonWiXNAntparametersthatareapplicabletotheLighttask.

Parameter Descriptionexedir Optionalstringparameter.

Setsthedirectorytothetoolexecutable.Defaultstothepathspecifiedbytheregistrykey"HKLM\SOFTWARE\Microsoft\WindowsInstallerXML\3.0\InstallRoot"whichissetbytheWiXinstallation.Ifnopathisfoundorspecifiedthetaskassumestheexecutableisonthepath.

out Requiredstringparameter.

Setsthefileordirectorytowritetheoutputto.Thisis

equivalenttothe-outswitch.extensions Optionalstringparameter.

Semi-colonseparatedlistofWiXextensionstoload.Thisisequivalenttothe-extswitch.

rebuild Optionalbooleanparameter.

InstructsNAnttorecompiletheoutputfileregardlessofthefiletimestamps..

sources RequiredNAntfileset.

Thesetofsourcefilesforcompilation.Thisisequivalenttothe-xxswitch.

warningsaserrors Optionalbooleanparameter.

Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitch.

verbose Optionalbooleanparameter.

Specifiesthatthetoolshouldprovideverboseoutput.Thisisequivalenttothe-vswitch.

ThefollowingtabledescribestheparametersthatarespecifictotheLighttask.

Parameter Descriptioncultures Optionalstringparameter.

Specifiesasemicolon-delimitedlistoflocalizedstringculturesthatthelinkershouldloadfromlibraries.Thisisequivalenttothe-culturesswitchinlight.exe.

localizations OptionalNAntfileset.

Thesetoflocalizationfiles(.wxl)toinclude.Thisisequivalenttothe-locswitchinlight.exe.

suppressices Optionalstringparameter.

Specifiesasemicolon-delimitedlistofICEvalidationsthatthelinkershouldsuppressrunning.Thisisequivalenttothe-sice:<ICE>switchinlight.exe.

suppresspdb Optionalbooleanparameter.

Specifiesthatthelinkershouldsuppressoutputting.wixpdbfiles.Thisisequivalenttothe-spdbswitchinlight.exe.

reusecab Optionalbooleanparameter.

Specifiesthatthelinkershouldreusecabinetfilesfromthecabinetcache.Thisisequivalenttothe-reusecabswitchinlight.exe.

cabcache Optionalstringparameter.

Specifiesapaththatthelinkershouldusetocachebuiltcabinetfiles.Thisisequivalenttothe-ccswitchinlight.exe.

fileversions Optionalbooleanparameter.

Specifiesthatthelinkershouldadda'fileVersion'entrytotheMsiAssemblyNametable.Thisisequivalenttothe-fvswitchinlight.exe.

AdditionaloptionscanbeaddedbyusingthestandardNAnt<arg>elements,e.g.:

<argline="-sacl"/>

LitTaskTheLighttaskwrapslit.exe,theWiXlibrarytool.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.ThefollowingisasampleshowsatheNAntcodeusedtoruntheLittask:

<litexedir="${wix.dir}"out="${output.dir}\Setup.wixlib"bindfiles="true"rebuild="true"><sourcesbasedir="${release.dir}\Setup\obj"><includename="*.wixobj"/></sources></lit>

ThefollowingtabledescribesthecommonWiXNAntparametersthatareapplicabletotheLittask.

Parameter Descriptionexedir Optionalstringparameter.

Setsthedirectorytothetoolexecutable.Defaultstothepathspecifiedbytheregistrykey"HKLM\SOFTWARE\Microsoft\WindowsInstallerXML\3.0\InstallRoot"whichissetbytheWiXinstallation.Ifnopathisfoundorspecifiedthetaskassumestheexecutableisonthepath.

out Requiredstringparameter.

Setsthefileordirectorytowritetheoutputto.Thisisequivalenttothe-outswitch.

extensions Optionalstringparameter.

Semi-colonseparatedlistofWiXextensionstoload.Thisisequivalenttothe-extswitch.

rebuild Optionalbooleanparameter.

InstructsNAnttorecompiletheoutputfileregardlessofthefiletimestamps..

sources RequiredNAntfileset.

Thesetofsourcefilesforcompilation.Thisisequivalenttothe-xxswitch.

warningsaserrors Optionalbooleanparameter.

Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitch.

verbose Optionalbooleanparameter.

Specifiesthatthetoolshouldprovideverboseoutput.Thisisequivalenttothe-vswitch.

ThefollowingtabledescribestheparametersthatarespecifictotheLittask.

Parameter Descriptionbindfiles Optionalbooleanparameter.

Thisisequivalenttothe-bfswitchinlit.exe.localizations OptionalNAntfileset.

Thesetoflocalizationfiles(.wxl)toinclude.Thisisequivalenttothe-locswitchinlit.exe.

AdditionaloptionscanbeaddedbyusingthestandardNAnt<arg>elements,e.g.:

<argline="-ss"/>

HowToGuidesThissectionincludesHowTodocumentationforperformingcommonWiXtasks.

Files,ShortcutsandRegistryAddafiletoyourinstallerChecktheversionnumberofafileduringinstallationWritearegistryentryduringinstallationReadaregistryentryduringinstallationCreateashortcutontheStartMenuCreateashortcuttoawebpageCreateanuninstallshortcutNGenmanagedassembliesduringinstallationReferenceanotherDirectorySearchelementGettheparentdirectoryofafilesearch

RedistributablesandInstallChecksCheckfor.NETFrameworkversionsInstallthe.NETFrameworkusingabootstrapperInstallDirectX9.0withyourinstallerInstalltheVisualC++RedistributablewithyourinstallerBlockinstallationbasedonOSversion

UserInterfaceandLocalizationBuildalocalizedversionofyourinstallerMakeyourinstallerlocalizableRuntheinstalledapplicationaftersetupSetyourinstaller'siconinAdd/RemovePrograms

ProductUpdatesImplementamajorupgradeinyourinstaller

OthersGetalogofyourinstallationfordebuggingLookinsideyourMSIwithOrcaGenerateaGUIDUseWiXExtensionsOptimizebuildingcabinetfilesSpecifysourcefilelocations

HowTo:Files,ShortcutsandRegistryThissectionincludeshowtoguidesthatdemonstratehowtoworkwithfiles,shortcuts,andtheWindowsregistry.

HowTo:AddafiletoyourinstallerHowTo:ChecktheversionnumberofafileduringinstallationHowTo:WritearegistryentryduringinstallationHowTo:ReadaregistryentryduringinstallationHowTo:CreateashortcutontheStartMenuHowTo:CreateashortcuttoawebpageHowTo:CreateanuninstallshortcutHowTo:NGenmanagedassembliesduringinstallationHowTo:ReferenceanotherDirectorySearchelement

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.WhenyouhaveonefilepercomponentyoushouldalwayssettheKeyPathattributetoyes.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: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: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: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="[APPLICATIONROOTDIRECTORY]MyApplication.exe"WorkingDirectory="APPLICATIONROOTDIRECTORY"/><RemoveFolderId="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.NoticehowitusestheAPPLICATIONROOTDIRECTORYpropertypreviouslydefinedinthedirectorystructure.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="[APPLICATIONROOTDIRECTORY]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="[APPLICATIONROOTDIRECTORY]MyApplication.exe"WorkingDirectory="APPLICATIONROOTDIRECTORY"/><util:InternetShortcutId="OnlineDocumentationShortcut"Name="MyOnlineDocumentation"Target="http://www.wixwiki.com/"/><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="[System64Folder]msiexec.exe"Arguments="/x[ProductCode]"Description="UninstallsMyApplication"/>

TheTargetattributepointstothelocationofmsiexec.exe.TheWindowsInstallerSystem64FolderpropertywillresolvetotheSystem32directoryon32-bitmachinesandtheSysWow64directoryon64-bitmachines.Usingthispropertyensuresmsiexec.execanalwaysbelocatedregardlessoftheoperatingsystemversiononthetargetmachine.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="[APPLICATIONROOTDIRECTORY]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:RedistributablesandInstallChecksThissectionincludesguidesforcommonredistributableinstallationsandpre-installationchecks.

HowTo:Checkfor.NETFrameworkversionsHowTo:InstallDirectX9.0withyourinstallerHowTo:Installthe.NETFrameworkusingabootstrapperHowTo:InstalltheVisualC++RedistributablewithyourinstallerHowTo:BlockinstallationbasedonOSversion

HowTo:Checkfor.NETFrameworkVersionsWheninstallingapplicationswrittenusingmanagedcodeitisoftenusefultoverifythattheuser'smachinehasthenecessaryversionofthe.NETFrameworkpriortoinstallation.ThishowtodescribesusingtheWiXsupporttoverify.NETFrameworkversionsatinstalltime.Forinformationonhowtoinstallthe.NETFrameworkduringyourinstallationseeHowTo:Installthe.NETFrameworkusingabootstrapper.

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:ReferencetherequiredpropertiesinyourprojectThe.NETFrameworkextensionsforWiXdefinepropertiesforallcurrentversionsofthe.NETFramework,includingservicepacklevels.Tomakethesepropertiesavailabletoyourinstalleryouneedtoreferencethemusingthe<PropertyRef>element.Foreachpropertyyouwanttouse,addthecorrespondingPropertyReftoyourproject.Forexample,ifyouareinterestedindetecting.NETFramework2.0addthefollowing:

<PropertyRefId="NETFRAMEWORK20"/>

Step4:Usethepre-definedpropertiesinaconditionOncethepropertyisreferencedyoucanuseitinanyWiXconditionstatement.Forexample,thefollowingconditionblocksinstallationif.NETFramework2.0isnotinstalled.

<ConditionMessage="Thisapplicationrequires.NETFramework2.0.Pleaseinstallthe.NETFrameworkthenrunthisinstalleragain."<![CDATA[InstalledORNETFRAMEWORK20]]></Condition>

InstalledisaWindowsInstallerpropertythatensuresthecheckisonlydonewhentheuserisinstallingtheapplication,ratherthanonarepairorremove.TheNETFRAMEWORK20partoftheconditionwillpassif.NETFramework2.0installed.Ifitisnotsettheinstallerwilldisplaytheerrormessagethenaborttheinstallationprocess.

Tocheckagainsttheservicepackleveloftheframeworkusethe*_SP_LEVELproperties.Thefollowingconditionblocksinstallationif.NETFramework3.0SP1isnotpresentonthemachine.

<ConditionMessage="Thisapplicationrequires.NETFramework3.0SP1.Pleaseinstallthe.NETFrameworkthenrunthisinstalleragain."<![CDATA[InstalledOR(NETFRAMEWORK30_SP_LEVELandNOTNETFRAMEWORK30_SP_LEVEL="#0")</Condition>

AswiththepreviousexampleInstalledpreventsthecheckfromrunningwhentheuserisdoingarepairorremove.TheNETFRAMEWORK30_SP_LEVELpropertyissetto"#1"ifServicePack1ispresent.Sincethereisnowaytodoanumericalcomparisonagainstavaluewitha#infrontofit,theconditionfirstcheckstoseeiftheNETFRAMEWORK30_SP_LEVELissetandtheconfirmsthatitissettoanumber.Thiswillcorrectlyindicatewhetheranyservicepackfor.NET3.0isinstalled.

HowTo:Installthe.NETFrameworkUsingaBootstrapperApplicationswrittenusingthe.NETFrameworkoftenneedtoinstalltheframeworkaspartoftheirinstallationprocess.Duetodependenciesinthe.NETFrameworkinstallerthereisnowaytoincludetheframeworkdirectlywithinyourpackage(asyoucanwiththeVisualC++andDirectXruntimes).Insteadyouhavetorelyonabootstrapper:awrapperapplicationthatfirstinstallsthe.NETFrameworkandthenrunsyourapplication'sinstaller.

WiXdoesnotcurrentlyprovideabootstrapper,howeveryoucanusetheoneprovidedbytheClickOncedeploymentfeaturesinVisualStudio.ThisdocumentwalksthroughhowtomodifyaWiXprojecttogenerateaClickOncebootstrapperfor.NETFramework3.5.Similarstepscanbeusedtogenerateabootstrapperforothertechnologies,suchasSQLServerCompactEditionandVisualStudioToolsForOffice.

Step1:Openyour.wixprojfileforeditingToedityour.wixprojfileforeditinginVisualStudio:

1. OpentheprojectinVisualStudio2. InSolutionExplorerrightclickonyourprojectfileandselect

UnloadProject3. InSolutionExplorerrightclickonyourprojectfileandselectEdit

<projectname>

Step2:AdditemsforprerequisitesAnywhereinyourprojectfile,insidethe<Project>element,addthefollowing:

<ItemGroup><BootstrapperFileInclude="Microsoft.Net.Framework.3.5"><ProductName>.NETFramework3.5</ProductName></BootstrapperFile><BootstrapperFileInclude="Microsoft.Windows.Installer.3.1"><ProductName>WindowsInstaller3.1</ProductName></BootstrapperFile></ItemGroup>

Theseitemswillbeusedinstep3totellthebootstrapcreationtaskthelistofpackagestoinclude.Inthiscasethepackagesare.NETFramework3.5andWindowsInstaller3.1(whichisarequiredcomponentfor.NETFrameworkinstallation).

Step3:AddthebootstrapgenerationtaskInyourprojectfileuncommentthe<TargetName="AfterBuild"></Target>elementattheendofthefileandreplaceitwiththefollowing:

<TargetName="AfterBuild"><GenerateBootstrapperApplicationFile="$(TargetFileName)"ApplicationName="MyApplicationName"BootstrapperItems="@(BootstrapperFile)"ComponentsLocation="Relative"CopyComponents="True"OutputPath="$(OutputPath)"Path="C:\ProgramFiles\MicrosoftSDKs\Windows\v6.0A\Bootstrapper\"/></Target>

ThiswillinstructMSBuildtogeneratethebootstrapperafterthebuildofyourinstalleriscomplete.TheApplicationFileattributewillresolvetothelocationofyourapplication'sinstallerafterthebuildiscomplete.TheApplicationNameattributeistheapplicationnamedisplayedtotheuserwhilethebootstrapperisrunning.TheBootstrapperItemsattributeprovidesthelistofpre-requisitestoinclude(fromStep2).TheComponentsLocationattributeissettoRelativetoindicatethepre-requisiteswillbeinstalledfromthesamelocationasyourapplication'sinstaller.TheCopyComponentsattributeissettotruetocopythepre-requisitefilesintotheoutputdirectory.TheOutputPathattributeresolvestotheoutputlocationofyourinstallerondisk.

ThePathattributeindicatesthelocationonyourmachineofthepre-requisitepackages.ThelocationshownaboveisappropriateformachineswithVisualStudio2008installedtothedefaultlocation.FormachineswithVisualStudio2005thedefaultlocationisC:\ProgramFiles\MicrosoftVisualStudio8\SDK\v2.0\BootStrapper\Packages.

Step4:BuildtheprojectDothefollowingtore-opentheprojectforbuilding:

1. Savethechanges2. InSolutionExplorerrightclickonyourprojectfileandselect

ReloadProject3. IntheresultingconfirmationdialogselectYes

Thenbuildyourproject.Afteryourinstallerisbuiltthebootstrapperwillbuildandbeplacedintheoutputdirectory.

InstallingOtherPackagesOtherpackagescanbeinstalledusingthesamemechanismdescribedabove.TheonlyadditionalstepsaretomodifythelistofbootstrapperfilesinStep2.TheeasiestwaytoobtainthenecessaryentriesistousetheBootstrapperManifestGeneratortooltocreateanewMSBuildfilewiththerequiredpackagesselected.Thensavethegeneratedfile,openitinatexteditor,andcopyouttheappropriateentries.TheBootstrapManifestGeneratortoolcanalsobeusedtocreateyourowncustompackagesthataretheninstalledviatheClickOncebootstrapper.

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

HowTo:Implementamajorupgradeinyourinstaller

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

Definetherangeofoldversionsthatshouldbeupgradedbythenew.msi

TheUpgradeVersionelementwilluse3-partversionnumbers.Theminimumversionvalueistypicallysetto1.0.0,andthemaximumversionvalueistypicallysettothe3-partvalueofthecurrent.msi'sversion.Thislookslikethefollowing:

<UpgradeId="PUT-GUID-HERE"><UpgradeVersionMinimum="1.0.0"IncludeMinimum="yes"Maximum="1.0.1"Property="OLDERVERSIONBEINGUPGRADED"/></Upgrade>

TheexactnameofthepropertyspecifiedintheUpgradeVersionelementdoesnotmatter,butitmustbeinallcapitalletters.

Scheduletheremovalofoldversionsofthe.msi

ThereareseveraloptionsforwhereyoucanscheduletheRemoveExistingProductsactiontoremoveoldversionsofthe.msi.Youneedtoreviewtheoptionsandchoosetheonethatmakesthemostsenseforyourscenarios.YoucanfindasummaryoftheoptionsintheRemoveExistingProductsdocumentation.IfyouchoosetoscheduleitafterInstallInitialize,itwilllooklikethefollowing:

<InstallExecuteSequence><RemoveExistingProductsAfter="InstallInitialize"/></InstallExecuteSequence>

IfyoudonotscheduletheRemoveExistingProductsaction,youwillseeanerrorlikethefollowing:

errorLGHT0094:Unresolvedreferencetosymbol'WixAction:InstallExecuteSequence/RemoveExistingProducts'insection'Product:*'.

WindowsInstallerlooksforotherinstalled.msifileswiththesameUpgradeCodevalueduringtheFindRelatedProductsaction.IfyoudonotspecificallyscheduletheFindRelatedProductsactioninyoursetupauthoring,WiXwillautomaticallyscheduleitforyouwhenitcreatesyour.msi.

Step2:Addlogictohandleout-of-orderinstallations(installingversion2thentryingtoinstallversion1)Theinformationprovidedinstep1willallowyour.msitouninstallolderversionsofyour.msiduringtheinstallprocessfornewerversions.Inordertobecomplete,youshouldalsoincludeinformationinyour.msitohandlescenarioswhereauserattemptstoinstallanewerversionofyour.msiandtheninstallanolderversionafterwards(anout-of-orderinstallation).Thisstepisnotstrictlynecessary,butincludingthisinformationinyour.msiallowsyoutoprovideamoreuser-friendlyexperienceinthecaseofanout-of-orderinstallationscenario.

Detectinganout-of-orderinstallationrequiresauthoringanUpgradeVersionelementthatdefinesapropertythatwillbesetifanewerversionofthe.msiisfoundontheuser'ssystem.Thislookslikethefollowing:

<UpgradeId="PUT-GUID-HERE"><UpgradeVersionMinimum="1.0.1"OnlyDetect="yes"Property="NEWERVERSIONDETECTED"/></Upgrade>

Onceyouhavedefinedthedetectionproperty,youneedtodecidehowyouwantyour.msitobehaveinanout-of-orderinstallationscenarioandauthoranappropriatecustomaction.Thereareacoupleofoptions:

Option1:Blockinstallation

Youcanblocktheinstallationbyaddingalaunchconditionthatrunsiftheversiondetectionpropertyisset.Thislookslikethefollowing:

<ConditionMessage="Alaterversionof[ProductName]isalreadyinstalled.Setupwillnowexit.">NOTNEWERVERSIONDETECTEDORInstalled</Condition>

Option2:Immediatelyexitandreturnsuccess

Thisrequirescreatingacustomactionthatreturnsexitcode5(ERROR_NO_MORE_ITEMS).WiXhasabuilt-incustomactionnamedWixExitEarlyWithSuccessthatcanbeusedtoenablethisfunctionality.Tousethebuilt-incustomaction,youmustmakesurethatthepropertycreatedaboveisnamedNEWERVERSIONDETECTED.Then,youmustreferencethecustomactionbyaddingthefollowingtoyoursetupauthoring:

<CustomActionRefId="WixExitEarlyWithSuccess"/>

YoumustalsoreferencetheWixUtilExtensiontousetheWixExitEarlyWithSuccesscustomaction,eitherbyaddingittothereferenceslistforyourprojectifyouareusingVotiveandVisualStudio,orbypassingitintolight.exewiththe-extcommandlineswitch.

An.msimaywanttoimmediatelyexitandreturnsuccessinsteadofblockingandreturninganerrorinanout-of-orderinstallationscenariotosupportbackwardscompatibilityforcallingapplications.Thisisparticularlyusefulifthe.msiisaredistributablecomponentthatcanbeshippedandinstalledasapartofotherproducts.

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

Step4: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:GeneralHowTosThissectionincludesguidestogeneraltopicssuchasdebuggingandlogginginstallations.

HowTo:GetalogofyourinstallationfordebuggingHowTo:LookinsideyourMSIwithOrcaHowTo:GenerateaGUID

HowTo:GetaLogofYourInstallationforDebuggingWhenauthoringinstallersitisoftennecessarytogetalogoftheinstallationfordebuggingpurposes.Thisisparticularlyhelpfulwhentryingtodebugfilesearchesandlaunchconditions.Toobtainalogofaninstallationusethecommandlinemsiexectool:

msiexec/iMyApplication.msi/l*vMyLogFile.txt

ThiswillinstallyourapplicationandwriteaverboselogtoMyLogFile.txtinthecurrentdirectory.

IfyouneedtogetalogofyourinstallerwhenitislaunchedfromtheAdd/RemoveProgramsdialogyoucanenableWindowsInstallerloggingviatheregistry.

HowTo:LookInsideYourMSIWithOrcaWhenbuildinginstallersitcanoftenbeusefultolookinsideyourinstallertoseetheactualtablesandvaluesthatwerecreatedbytheWiXbuildprocess.MicrosoftprovidesatoolwiththeWindowsInstaller4.5SDK,calledOrca,thatcanbeusedforthispurpose.ToinstallOrca,downloadandinstalltheWindowsInstaller4.5SDK.AftertheSDKinstallationiscompletenavigatetotheinstalldirectory(typicallyC:\ProgramFiles\WindowsInstaller4.5SDK)andopentheToolsfolder.InsidetheToolsfolderrunOrca.msitocompletetheinstallation.

OnceOrcaisinstalledyoucanrightclickonanyMSIfilefromWindowsExplorerandselectEditwithOrcatoviewthecontentsoftheMSI.

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.

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

OptimizingbuildsWiXprovidestwowaysofspeedingupthecreationofcabinetsforcompressingfiles:

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.

SpecifyingsourcefilesWiXprovidestwowaysofidentifyingasetuppackage'spayload-thefilesthatareincludedinthesetupandinstalledontheuser'smachine.

Byfilenameanddirectorytree.Byexplicitsourcefile.

Compiling,linking,andbindingTheWiXtoolsetmodelsatypicalC/C++compilerishowauthoredisbuilt,withacompilerthatparsestheWiXsourceauthoringtoobjectfilesandalinkerthatcombinestheobjectfilesintoanoutput.ForWiX,theoutputisan.msipackage,.msmmergemodule,or.wixliblibrary,whichhaveathirdphase:bindingpayloadfilesintotheoutput.Light.exeincludesboththelinkerandbinder.

ThoughWiXsourceauthoringreferstopayloadfiles,thecompilerneverlooksatthem;instead,onlythebinderdoes,whenitcreatescabinetscontainingthemorcopiesthemtoanuncompressedlayout.

Youcanprovidethebinderwithoneormorebaseinputpathsitusestolookforfiles.Italsolooksforfilesrelativetothecurrentworkingdirectory.Light.exe's-bswitchandtheBaseInputPaths.wixprojpropertyletyouspecifyoneormorebaseinputpaths.

IdentifyingfilesbynameanddirectorytreeWhenyouusetheFile/@Nameattributeanddon'tusetheFile/@Sourceattribute,thecompilerconstructsanimplicitpathtothefilebasedonthefile'sparentcomponentdirectoryplusthenameyousupply.So,forexample,giventhepartialauthoring

<DirectoryId="TARGETDIR"><DirectoryName="foo"><DirectoryName="bar"><Component><FileName="baz.txt"/>

thebinderlooksforafilefoo\bar\baz.txtinthebaseinputpaths.

Overridingimplicitpayloaddirectories

TheFileSourceattributefortheDirectoryandDirectoryRefelementssetsanewdirectoryforfilesinthatdirectoryoranychilddirectories.Forexample,giventhepartialauthoring

<DirectoryId="TARGETDIR"><DirectoryName="foo"FileSource="build\retail\x86"><DirectoryName="bar"><Component><FileName="baz.txt"/>

thebinderlooksforafilebuild\retail\x86\bar\baz.txtinthebaseinputpaths.

TheFileSourceattributecanusepreprocessorvariablesorenvironmentvariables.Ifthevalueisanabsolutepath,thebinder'sbaseinputpathsaren'tused.

Preferreduse

Ifthebuildtreeservingasyourpayloadsourceisalmostidenticaltothe

treeofyourinstalledimageandyouhaveamoderate-to-deepdirectorytree,usingimplicitpathswillavoidrepetitioninyourauthoring.

Sourcedirectories

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

IdentifyingpayloadbysourcefilesTheFile/@Sourceattributeisapathtothepayloadfile.Itcanbeanabsolutepathorrelativetoanybaseinputpath.IfFile/@Sourceispresent,ittakesprecedenceovertheimplicitpathcreatedbyDirectory/@Name,Directory/@FileSource,andFile/@Name.

IfyouspecifyFile/@Source,youcanomitFile/@Namebecausethecompilerautomaticallysetsittothefilenameportionofthesourcepath.

Preferreduse

Ifthebuildtreeservingasyourpayloadsourceisdifferentfromthetreeofyourinstalledimage,usingFile/@Sourcemakesiteasytopickexplicitpathsthanaredifferentthanthe.msipackage'sdirectorytree.YoucanusemultiplebaseinputpathstoshortentheFile/@Sourcepaths.

Forexample,theWiXsetup.wixprojprojectpointstotheoutputtreeforthex86,x64,andia64platformsWiXsupportsandtheWiXsourcetree.Uniquefilenamescanbereferredtowithjusttheirfilenames;fileswiththesamenameacrossplatformsuserelativepaths.

SeetheWiXauthoringinsrc\Setup\*.wxsforexamples.

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.

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. Run'candle.exeyourfile.wxs-ext%fullpathtoWixUtilExtension.dll%'4. Run'light.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.

WIX_ACCOUNT_LOCALSERVICE LocalizedqualifiednameoftheLocalServiceaccount.

WIX_ACCOUNT_NETWORKSERVICE LocalizedqualifiednameoftheNetworkServiceaccount.

WIX_ACCOUNT_ADMINISTRATORS LocalizedqualifiednameoftheAdministratorsgroup.

WIX_ACCOUNT_USERS LocalizedqualifiednameoftheUsersgroup.

WIX_ACCOUNT_GUESTS LocalizedqualifiednameoftheUsersgroup.

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=English004=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=DisplaysperformancestatisticsofthedeviceinChineseDEVICE_COUNTER_1_009_NAME=NameoffirstcounterDEVICE_COUNTER_1_009_HELP=DisplaysthecurrentvalueofthefirstcounterDEVICE_COUNTER_1_004_NAME=NameofthefirstcounterinChineseDEVICE_COUNTER_1_004_HELP=DisplaysthevalueofthefirstcounterinChineseDEVICE_COUNTER_2_009_NAME=NameofthesecondcounterDEVICE_COUNTER_2_009_HELP=DisplaysthecurrentrateofthesecondcounterDEVICE_COUNTER_2_004_NAME=NameofthesecondcounterinChineseDEVICE_COUNTER_2_004_HELP=DisplaystherateofthesecondcounterinChinesePERF_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.

ImmediateexecutionWhentheQtExecactionisrunasanimmediatecustomaction,itwilltrytoexecutethecommandstoredintheQtExecCmdLineproperty.ThefollowingisanexampleofauthoringanimmediateQtExeccustomaction:

<PropertyId="QtExecCmdLine"Value="commandlinetorun"/><CustomActionId="QtExecExample"BinaryKey="WixCA"DllEntry="CAQuietExec"Execute="immediate"Return="check"/>...<InstallExecuteSequence><CustomAction="QtExecExample"After="TheActionYouWantItAfter"/></InstallExecuteSequence>

Thiswillresultinrunningthecommandlineintheimmediatesequence.Iftheexitcodeofthecommandlineinthisexampleindicatesanerror(meaningthatthereturncodeisnotequalto0)thenthesetupwillfailbecausetheReturnvalueissetto“check."ChangingtheReturnvalueto"ignore"willcausethesetuptologthefailurebutskipitandcontinueinsteadoffailingtheentiresetup.

IfyouwanttorunmorethanonecommandlineintheimmediatesequencethenyouwillneedtoschedulemultipleQtExeccustomactionsandsettheQtExecCmdLinepropertytoanewvaluebyschedulingaproperty-settingcustomactionimmediatelybeforeeachinstanceoftheQtExeccustomaction.

DeferredexecutionWhentheQtExecactionisrunasadeferredcustomaction,itwilltrytoexecutethecommandlinestoredinthevalueofthecustomactiondata.FordeferredQtExeccustomactions,thecustomactiondataisapropertythathasthesameIdvalueasthecustomactionId.ThefollowingisanexampleofauthoringadeferredQtExeccustomaction:

<PropertyId="QtExecDeferredExample"Value="commandlinetorun"/><CustomActionId="QtExecDeferredExample"BinaryKey="WixCA"DllEntry="CAQuietExec"Execute="deferred"Return="check"Impersonate="no"/>...<InstallExecuteSequence><CustomAction="QtExecDeferredExample"After="TheActionYouWantItAfter"/></InstallExecuteSequence>

IfyouneedtosetacommandlinethatusesotherWindowsInstallerproperties,youmustscheduleanimmediatecustomactiontosetthecommandlinepropertyvalueandscheduleadeferredcustomactiontorunQtExec.ThePropertyvalueusedintheimmediatecustomactionmustmatchtheIdvalueusedinthedeferredcustomaction.AcommonuseofthispatternforQtExeccustomactionsistorunanexecutablethatwillbeinstalledasapartofthesetup.ThefollowingisanexampleofauthoringadeferredQtExeccustomactionthatreliesonanotherpropertyvalue:

<CustomActionId="QtExecDeferredExampleWithProperty_Cmd"Property="QtExecDeferredExampleWithProperty"Value="&quot;[#MyExecutable.exe]&quot;"Execute="immediate"/><CustomActionId="QtExecDeferredExampleWithProperty"BinaryKey="WixCA"DllEntry="CAQuietExec"Execute="deferred"Return="check"Impersonate="no"/>...<InstallExecuteSequence>

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

Running64-bitexecutablesIfyouneedtoruna64-bitexecutable,usethe64-bitawareQtExec.Tousethe64-bitQtExecchangetheCustomActionelement'sDllEntryattributeto"CAQuietExec64"andforimmediateexecutionusethe"QtExec64CmdLine"property.Thefollowingexamplecombinestheexamplesabovethe64-bitawareQtExecforboth.NoticethattheCustomActionelement'sIdattributesdonotneedtochange:

<PropertyId="QtExec64CmdLine"Value="64-bitcommandlinetorun"/><CustomActionId="QtExecExample"BinaryKey="WixCA"DllEntry="CAQuietExec64"Execute="immediate"Return="check"/>...<CustomActionId="QtExecDeferredExampleWithProperty_Cmd"Property="QtExecDeferredExampleWithProperty"Value="&quot;[#MyExecutable.exe]&quot;"Execute="immediate"Return="ignore"/><CustomActionId="QtExecDeferredExampleWithProperty"BinaryKey="WixCA"DllEntry="CAQuietExec64"Execute="deferred"Return="check"Impersonate="no"/>...<InstallExecuteSequence><CustomAction="QtExecExample"After="TheImmediateActionYouWantItAfter"/>

<CustomAction="QtExecDeferredExampleWithProperty_Cmd"After="CostFinalize"/><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.

TheWixNetfxExtensionalsoincludesasetofpropertiesthatcanbeusedtodetectthepresenceofvariousversionsofthe.NETFramework,the.NETFrameworkSDKandtheWindowsSDK.Forinformationonhowtousethesepropertiestoverifytheuser's.NETFrameworkversionatinstalltimeseeHowTo:Checkfor.NETFrameworkVersions.

PropertiesThefollowingpropertyisapplicabletoallversionsofthe.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.1Koreanlanguagepackisinstalled(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.0Germanlanguagepackisinstalled(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.0Spanishlanguagepackisinstalled(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.5product

family:

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).ThispropertyisavailablestartingwithWiXv3.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.0fullItalian

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

withWiXv3.5.

NETFRAMEWORK40FULL_ES_ES_LANGPACK Setto#1ifthe.NETFramework4.0fullSpanishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_SV_SE_LANGPACK Setto#1ifthe.NETFramework4.0fullSwedishlanguagepackisinstalled(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).ThispropertyisavailablestartingwithWiXv3.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.0client

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

withWiXv3.5.

NETFRAMEWORK40CLIENT_NB_NO_LANGPACK Setto#1ifthe.NETFramework4.0clientNorwegianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_PL_PL_LANGPACK Setto#1ifthe.NETFramework4.0clientPolishlanguagepackisinstalled(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.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"/>

WixVSExtensionTheWixVSExtensionincludesasetofcustomactionstomanagehelpcollections.ItalsoincludesasetofpropertiesandcustomactionsthatcanbeusedtodetectthepresenceofvariousversionsofVisualStudioandregisteradd-ins,projecttemplatesanditemtemplatesforuseinVisualStudio.

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.

VS90_SP_LEVEL IndicatestheservicepacklevelforVisualStudio2008StandardEditionandhigher.

VSTF90_SP_LEVEL IndicatestheservicepacklevelforVisualStudio2008TeamFoundation.

VB90EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualBasic2008ExpressEdition.

VB90EXPRESS_SP1 Indicateswhetherornotservicepack1forVisualBasic2008ExpressEditionisinstalled.

VC90EXPRESS_SP_LEVEL Indicatesthe

servicepacklevelforVisualC++2008ExpressEdition.

VC90EXPRESS_SP1 Indicateswhetherornotservicepack1forVisualC++2008ExpressEditionisinstalled.

VCSHARP90EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualC#2008ExpressEdition.

VCSHARP90EXPRESS_SP1 Indicateswhetherornotservicepack1forVisualC#2008ExpressEditionisinstalled.

VWD90EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualWebDeveloper2008ExpressEdition.

VWD90EXPRESS_SP1 Indicates

whetherornotservicepack1forVisualWebDeveloper2008ExpressEditionisinstalled.

DEXPLORE_2008_INSTALLED IndicateswhetherornottheDocumentExplorer2008runtimecomponentspackageisinstalledonthesystem.

HereisacompletelistofpropertiesfortheVisualStudio2010productfamily:

Propertyname Meaning

VS2010DEVENV Fullpathtodevenv.exeforVisualStudio2010ifitisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2010itemtemplates

directory.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_PROJECTTEMPLATES_DIR FullpathtotheVisualStudio2010projecttemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_SCHEMAS_DIR FullpathtotheVisualStudio2010XMLschemasdirectory.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_ROOT_FOLDER FullpathtotheVisualStudio2010rootinstallationdirectory.ThispropertyisavailablestartingwithWiXv3.5.

VB2010EXPRESS_IDE Fullpathto

vbexpress.exeifVisualBasic2010ExpressEditionisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.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.Thispropertyis

availablestartingwithWiXv3.5.

VWD2010EXPRESS_IDE Fullpathtovwdexpress.exeifVisualWebDeveloper2010ExpressEditionisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2010StandardEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.5.

VPD2010EXPRESS_IDE Fullpathtovpdexpress.exeifVisualStudio2010ExpressforWindowsPhoneis

installedonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010TeamTestprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_DB_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010Databaseprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_VSD_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010Deployment

projectsystem(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 Indicateswhetherornot

theVisualStudio2010F#projectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_BOOTSTRAPPER_PACKAGE_FOLDER ThelocationoftheVisualStudio2010bootstrapperpackagefolder.ThispropertyisavailablestartingwithWiXv3.5.

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

actionautomaticallyaddstheVB2005EXPRESS_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.IncludingthiscustomactionautomaticallyaddstheVCSHARP2005EXPRESS_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_IDEproperty.

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

VC90InstallVSTemplates Runsvcexpress.exe/InstallVSTemplatesifVisualC++2008ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVC90EXPRESS_IDEproperty.

VCSHARP90Setup Runsvcsexpress.exe/setupifVisualC#2008ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVCSHARP90EXPRESS_IDEproperty.

VCSHARP90InstallVSTemplates Runsvcsexpress.exe/InstallVSTemplatesifVisualC#2008ExpressEditionisfoundon

thesystem.IncludingthiscustomactionautomaticallyaddstheVCSHARP90EXPRESS_IDEproperty.

VWD90Setup Runsvwdexpress.exe/setupifVisualWebDeveloper2008ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD90EXPRESS_IDEproperty.

VWD90InstallVSTemplates Runsvwdexpress.exe/InstallVSTemplatesifVisualWebDeveloper2008ExpressEditionisfoundonthesystem.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/InstallVSTemplatesifVisualBasic2010ExpressEditionisfoundonthesystem.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.Includingthis

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

VPD2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.

VPD2010InstallVSTemplates Runsvpdexpress.exe/InstallVSTemplatesifVisualStudio2010ExpressforWindowsPhoneisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVPD2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.

UsingWixVSExtensionPropertiesorCustomActionsTousetheWixVSExtensionpropertiesorcustomactionsinanMSI,usethefollowingsteps:

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

Forexample:

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

Whenyoureferenceanyoftheabovepropertiesorcustomactions,theWixVSExtensionautomaticallyschedulesthecustomactionsandpullsinpropertiesusedinthecustomactionconditionsandexecutionlogic.

PatchBuildingPatchesareupdatestoaproductorproducts.WiXsupportstwodifferentwaysofcreatingthem:

UsingPatchCreationPropertieswhichrequiresthatyouhavetheWindowsInstaller3.0ornewerSDKinstalledforfullsupportofincludedexamples.UsingPurelyWiXwhichusesfunctionalityprovidedinWiXanddoesnotrequireadditionaltools.

Therearealsorestrictionsonhowpatchesarebuiltinordertoavoidproblemswheninstallingthem.

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

FormoreinformationaboutpatchingwithWindowsInstaller,readPatchingandUpgrades.

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/@BindPath

Class Class

Complus Component/@ComPlusFlags

CreateFolder CreateFolder

DuplicateFile CopyFile

Environment Environment

Extension Extension

Font File/@FontTitle

IniFile IniFile

IsolatedComponent IsolatedComponent

LockPermissions Permission

MIME MIME

MoveFile CopyFile

ODBCAttribute ODBCDriver/Property

ODBCDataSource ODBCDataSource

ODBCDriver ODBCDriver

ODBCSourceAttribute ODBCDataSource/Property

ODBCTranslator ODBCTranslator

ProgId ProgId

PublishComponent Category

RemoveIniFile IniFile

SelfReg File/@SelfRegCost

ServiceControl ServiceControl

ServiceInstall ServiceInstall

TypeLib TypeLib

Verb Verb

Majorupgradepatchesarenotuninstallable.

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.

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.

WiXSchemaReferencesThissectioncontainsschemareferenceinformationforWiXandextensions.

WixschemaWixlocschemaDifxappschemaforWixDifxAppExtensionFirewallschemaforWixFirewallExtensionGamingschemaforWixGamingExtensionIisschemaforWixIIsExtensionIsolatedAppschemaforWixIsolatedAppExtensionLuxschemaforWixLuxExtensionNetfxschemaforWixNetFxExtensionOfficeAddinschemaforWixOfficeExtensionPsschemaforWixPSExtensionSqlschemaforWixSqlExtensionUtilschemaforWixUtilExtensionVsschemaforWixVSExtension

WixSchema

Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.

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>

Version3.5.1623.0

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.ResolveSource(min:0,max:unbounded):DeterminesthelocationofthesourceandsetstheSourceDirpropertyifthesourcehasnotbeenresolvedyet.

AttributesNone

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

AllocateRegistrySpaceElement

DescriptionEnsurestheneededamountofspaceexistsintheregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesAllocateRegistrySpaceAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

AppDataElement

DescriptionOptionalwayfordefiningAppData,generallyusedforcomplexCDATA.

WindowsInstallerreferencesNone

ParentsCategory

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

AssemblyNameElement

DescriptionTheMsiAssemblyNametablespecifiestheschemafortheelementsofastrongassemblycachenamefora.NETFrameworkorWin32assembly.ConsiderusingtheAssemblyattributeonFileelementtohavethetoolsetpopulatetheseentriesautomatically.

WindowsInstallerreferencesMsiAssemblyNameTable

ParentsFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String NameoftheattributeassociatedwiththevaluespecifiedintheValuecolumn.

Yes

Value String ValueassociatedwiththenamespecifiedintheNamecolumn.

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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 TheIdcannotbylongerthan55characters.InordertopreventerrorsincaseswheretheIdismodularized,itshouldnotbelongerthan18characters.

Yes

SourceFile String Pathtothebinaryfile.

src String Thisattributehas

beendeprecated;pleaseusetheSourceFileattributeinstead.

SuppressModularization YesNoType UsetosuppressmodularizationofthisBinaryidentifierinmergemodules.

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

SeeAlsoWixSchema

Version3.5.1623.0

BinaryRefElement

DescriptionUsedonlyforPatchFamiliestoincludeonlyabinarytableentryinapatch.

WindowsInstallerreferencesNone

ParentsPatchFamily

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifieroftheBinaryelementtoreference.

Yes

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

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

BundleElement

DescriptionTherootelementforcreatingbundledpackages.

WindowsInstallerreferencesNone

ParentsWix

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Chain(min:1,max:1)Container(min:0,max:unbounded)ContainerRef(min:0,max:unbounded)LayoutDirectory(min:0,max:unbounded)LayoutDirectoryRef(min:0,max:unbounded)UX(min:1,max:1)Variable(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

ChainComponentSearchContainerContainerRefDirectorySearchFileSearchLayoutDirectoryLayoutDirectoryRef

ProductSearchRegistrySearchUXVariable

AttributesNone

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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)

AttributesNone

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

ComplianceDriveElement

DescriptionSetstheparentofanestedDirectorySearchelementtoCCP_DRIVE.

WindowsInstallerreferencesNone

ParentsComplianceCheck,Property

InnerTextNone

ChildrenChoiceofelements(min:1,max:1)

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

AttributesNone

SeeAlsoWixSchema

Version3.5.1623.0

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

EventSourceFileShareFirewallExceptionInternetShortcutMessageQueueMessageQueuePermissionPerformanceCategoryServiceConfigSqlDatabaseSqlScriptSqlStringUserWebAppPoolWebDirWebFilterWebPropertyWebServiceExtensionWebSiteWebVirtualDirXmlConfigXmlFile

Attributes

Name Type Description

ComPlusFlags Integer SetthisattributetocreateaComPlusentry.Thevalueshouldbetheexportflagsusedduringthegenerationofthe.msifile.FormoreinformationseetheCOM+documentationinthePlatformSDK.

Directory String SetstheDirectoryofthe

Component.IfthiselementisnestedunderaDirectoryelement,thisvaluedefaultstothevalueoftheparentDirectory/@Id.

DisableRegistryReflection YesNoType Setthisattributeto'yes'inordertodisableregistryreflectiononallexistingandnewregistrykeysaffectedbythiscomponent.Whensetto'yes',theWindowsInstallercallstheRegDisableReflectionKeyoneachkeybeingaccessedbythecomponent.ThisbitisavailablewithWindowsInstallerversion4.0andisignoredon32-bitsystems.

DiskId Integer ThisattributeprovidesadefaultDiskIdattributeforallchildFileelements.SpecifyingtheDiskIdonaComponentelementwilloverrideanyDiskIdattributessetbyparentDirectoryorDirectoryRefelements.SeetheFileelement'sDiskIdattributeformoreinformationaboutthepurposeoftheDiskId.

Feature String Identifiesafeaturetowhichthiscomponent

belongs,asashorthandforachildComponentRefelementoftheFeatureelement.ThevalueofthisattributeshouldcorrespondtotheIdattributeofaFeatureelementauthoredelsewhere.Notethatasinglecomponentcanbelongtomultiplefeaturesbutthisattributeallowsyoutospecifyonlyasinglefeature.

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

repairedbyWindowsInstaller(itisessentiallyanunpatchable,permanentcomponent).Therefore,aguidshouldalwaysbespecifiedforanycomponentwhichcontainsresourcesthatmayneedtobepatchedinthefuture.

Id String Componentidentifier;thisistheprimarykeyforidentifyingcomponents.Ifomitted,thecompilerdefaultstheidentifiertotheidentifieroftheresourcethatistheexplicitkeypathofthecomponent(forexample,achildFileelementwithKeyPathattributewithvalue'yes'.

KeyPath YesNoType Ifthisattribute'svalueissetto'yes',thentheDirectoryofthisComponentisusedastheKeyPath.TosetaRegistrykeyorFileastheKeyPathofacomponent,settheKeyPathattributeto'yes'ononeofthosechildelements.

Location Enumeration Optionalvaluethatspecifiesthelocationthatthecomponentcanberunfrom.Thisattribute's

valuemustbeoneofthefollowing:local

Preventsthecomponentfromrunningfromthesourceorthenetwork(thisisthedefaultbehaviorifthisattributeisnotset).

sourceEnforcesthatthecomponentcanonlyberunfromthesource(itcannotberunfromtheuser'scomputer).

eitherAllowsthecomponenttorunfromsourceorlocally.

NeverOverwrite YesNoType Ifthisattributeissetto'yes',theinstallerdoesnotinstallorreinstallthecomponentifakeypathfileorakeypathregistryentryforthecomponentalreadyexists.Theapplicationdoesregisteritselfasaclientofthecomponent.UsethisflagonlyforcomponentsthatarebeingregisteredbytheRegistrytable.Donotusethisflagfor

componentsregisteredbytheAppId,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.ThisfunctionalityisavailableinWindows

Installer4.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.ThisfunctionalityisavailableinWindowsInstaller4.5andlater.

Win64 YesNoType Setthisattributeto'yes'tomarkthisasa64-bitcomponent.Thisattributefacilitatestheinstallationofpackagesthatincludeboth32-bitand64-bitcomponents.Ifthisbitnotset,thecomponentisregisteredasa32-bitcomponent.Ifthisisa64-bitcomponentreplacinga32-bitcomponent,setthisbitandassignanewGUIDintheGuidattribute.

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

HowTosandExamplesHowTo:Addafiletoyourinstaller

SeeAlsoWixSchema,ComponentRef,Media

Version3.5.1623.0

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

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

SeeAlsoWixSchema,ComponentGroupRef

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

ConfigurationDataElement

DescriptionDatatouseasinputtoaconfigurablemergemodule.

WindowsInstallerreferencesNone

ParentsMerge

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Name String KeyintotheModuleConfigurationtable.

Yes

Value String Valuetobepassedtoconfigurablemergemodule.

Yes

SeeAlsoWixSchema

Version3.5.1623.0

ContainerElement

DescriptionRepresentationofafilethatcontainsoneormorefiles.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Payload(min:0,max:unbounded)

Attributes

Name Type Description Required

Name String Thedestinationpathandfilenameforthiscontainer.

Yes

SeeAlsoWixSchema

Version3.5.1623.0

ContainerRefElement

DescriptionCreateareferencetoanexistingContainerelement.

WindowsInstallerreferencesNone

ParentsBundle

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifierofContainerelementtoreference.

Yes

SeeAlsoWixSchema,Container

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

CreateFoldersElement

DescriptionCreatesemptyfoldersforcomponentsthataresettobeinstalled.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesCreateFoldersAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

CustomActionElement

DescriptionSpecifiesacustomactiontobeaddedtotheMSICustomActiontable.Variouscombinationsoftheattributesforthiselementcorrespondtodifferentcustomactiontypes.FormoreinformationaboutcustomactionsseetheCustomActionTypestopiconMSDN.

WindowsInstallerreferencesCustomActionTable

ParentsFragment,Module,Product

InnerText(xs:string)ThetextnodeisonlyvalidiftheScriptattributeisspecified.Inthatcase,thetextnodecontainsthescripttoembed.

ChildrenNone

Attributes

Name Type Description

BinaryKey String ThisattributeisareferencetoaBinaryelementwithmatchingIdattribute.Thatbinarystreamcontainsthecustomactionforuseduringinstall.Thecustomactionwillnotbeinstalledintoatargetdirectory.ThisattributeiswiththeDllEntryattributetospecifythecustomactionDLLtouseforatype1customaction,withtheExeCommandattributetospecifyatype17customactionthatrunsanembeddedexecutable,orwiththeVBScriptCallorJScriptCallattributestospecifyatype5or6customaction.

Directory String ThisattributespecifiesareferencetoaDirectory

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

deferredIndicatesthatthecustomactionrunsin-script(possiblywithelevatedprivileges).

firstSequenceIndicatesthatthecustomactionwillonlyruninthefirstsequencethatrunsit.

immediateIndicatesthatthecustomactionwillrunduringnormalprocessingtimewithuserprivileges.Thisisthedefault.

oncePerProcessIndicatesthatthecustomactionwillonlyruninthefirstsequencethatrunsitinthesameprocess.

rollbackIndicatesthatacustomactionwillrunintherollbacksequencewhenafailureduringinstallation,usuallytoundochangesmadebyadeferredcustomaction.

secondSequenceIndicatesthatacustomactionshouldberunasecondtimeifitwaspreviouslyruninanearliersequence.

FileKey String ThisattributespecifiesareferencetoaFileelementwithmatchingIdattributethatexecutethecustomactioncodeinthefileafterthefileisinstalled.ThisattributeistypicallyusedwiththeExeCommandattributetospecifyatype18customactionthatrunsaninstalledexecutable,withtheDllEntryattributetospecifyaninstalledcustomactionDLLtouseforatype17customaction,orwiththeVBScriptCallorJScriptCallattributestospecifyatype21or22customaction.

HideTarget YesNoType EnsurestheinstallerdoesnotlogtheCustomActionDataforthedeferredcustomaction.

Id String Theidentifierofthecustomaction.

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

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

Servermachines.Deferredexecutioncustomactionsthatdonotspecifythisattribute,orexplicitlysetit'no',willrunwithnouserimpersonationonTerminalServermachinesduringper-machineinstallations.onlyapplicablewheninstallingontheServer2003family.

Value String Thisattributespecifiesastringvaluetouseinthecustomaction.ThisattributewiththePropertyattributetosetthepropertyaspartofatype51customactionorwiththeDirectoryattributetosetadirectorypathinthattableinatype35customaction.ThevaluecanbealiteralvalueorderivedfromaelementusingtheFormatted

VBScriptCall String ThisattributespecifiesthenameoftheVBScriptSubroutinetoexecuteinascript.ThescriptmustbeprovidedinaBinaryelementidentifiedbytheBinaryKeyattributedescribedabove.Inotherwords,thisattributemustbespecifiedinconjunctionwiththeBinaryKeyattribute.

Win64 YesNoType Specifiesthatascriptcustomactiontargetsa64-bitplatform.ValidonlywhenusedwithScript,VBScriptCall,andJScriptCallattributes.

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

SeeAlsoWixSchema,Custom,CustomActionRef

Version3.5.1623.0

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

Version3.5.1623.0

CustomPropertyElement

DescriptionAcustompropertyforthePatchMetadatatable.

WindowsInstallerreferencesNone

ParentsPatchMetadata

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Company String Thenameofthecompany. Yes

Property String Thenameofthemetadataproperty.

Yes

Value String Valueofthemetadataproperty. Yes

SeeAlsoWixSchema

Version3.5.1623.0

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

SeeAlsoWixSchema

Version3.5.1623.0

DataElement

DescriptionUsedforaCustomTable.SpecifiesthedatafortheparentRowandspecifiedColumn.

WindowsInstallerreferencesNone

ParentsRow

InnerText(xs:string)Adatavalue

ChildrenNone

Attributes

Name Type Description Required

Column String Specifiesinwhichcolumntoinsertthisdata.

Yes

SeeAlsoWixSchema

Version3.5.1623.0

DeleteServicesElement

DescriptionStopsaserviceandremovesitsregistrationfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesDeleteServicesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

DependencyElement

DescriptionDeclaresadependencyonanothermergemodule.

WindowsInstallerreferencesNone

ParentsModule

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

RequiredId String Identifierofthemergemodulerequiredbythemergemodule.

Yes

RequiredLanguage Integer NumericlanguageIDofthemergemoduleinRequiredID.

Yes

RequiredVersion String VersionofthemergemoduleinRequiredID.

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

DialogRefElement

DescriptionReferencetoaDialog.Thiswillcausetheentirereferencedsection'scontentstobeincludedintheinstallerdatabase.

WindowsInstallerreferencesNone

ParentsUI

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifieroftheDialogtoreference.

Yes

SeeAlsoWixSchema,Dialog

Version3.5.1623.0

DigitalCertificateElement

DescriptionAddsadigitalcertificate.

WindowsInstallerreferencesMsiDigitalCertificateTable

ParentsDigitalSignature,PackageCertificates,PatchCertificates

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Identifierforacertificatefile. Yes

SourceFile String Thepathtothecertificatefile. Yes

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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,etc).isrecommendedthatthisattributebeavoidedandthatdevelopersinstalltheirComponentsunderstandarddirectorieswithuniquenamesinstead(forexample,"ProgramFilesFolder\CompanyNameProductNameVersion").ItisnotethatonceadirectoryisassignedaComponentGuidGenerationSeedthevaluemustnotchangeuntildirectorynamechanges.

DiskId Integer 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 Theshortnameofthedirectoryin8.3format.attributeshouldonlybesetifthereisaconflictbetween

generatedshortdirectorynamesortheuserwantstomanuallyspecifytheshortdirectoryname.

ShortSourceName ShortFileNameType Theshortnameofthedirectoryonthesourcemediain8.3format.shouldonlybesetifthereisaconflictbetweengeneratedshortdirectorynamesuserwantstomanuallyspecifytheshortsourcedirectoryname.

SourceName LongFileNameType Thenameofthedirectoryonthesourcemedia.attributeisnotspecified,WindowsInstallerwilldefaulttotheNameattribute.

InpriorversionsoftheWiXtoolset,thisattributespecifiedtheshortsourcedirectoryname.Thisattribute'svaluemaynowbeeitherashortorlongdirectoryname.directorynameisspecified,theShortSourceNameattributemaynotbespecified.Ifalongdirectorynameisspecified,theLongSourceattributemaynotbespecified.Also,ifthisvalueisalongdirectoryname,theShortSourceNameattributemaybeomittedtotoattempttogenerateauniqueshortdirectoryname.However,ifthisnamecollides

withanotherdirectoryoryouwishtomanuallyspecifyshortdirectoryname,thentheShortSourceNameattributemaybespecified.

src String Thisattributehasbeendeprecated;pleaseusetheFileSourceattributeinstead.

HowTosandExamplesHowTo:Addafiletoyourinstaller

SeeAlsoWixSchema,DirectoryRef

Version3.5.1623.0

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

Version3.5.1623.0

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/@Depthattributeisgreaterthan1,theFileSearch/@IdattributemustbeabsentorthesameastheparentDirectorySearch/@Idattributevalue,unlesstheparentDirectorySearch/@AssignToPropertyattributevalueis'yes'.

HowTosandExamplesHowTo:ChecktheversionnumberofafileduringinstallationHowTo:ReferenceanotherDirectorySearchelementHowTo:Gettheparentdirectoryofafilesearch

SeeAlsoWixSchema,ComponentSearch,IniFileSearch,RegistrySearch

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

DuplicateFilesElement

DescriptionDuplicatesfilesinstalledbytheInstallFilesaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesDuplicateFilesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

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

CommandLine String Valuetoappendtothetransactionhandleandpassedtothechainer

executable.

FileSource String ReferencetotheFileelementthatisthechainerexecuteable.MutuallyexclusivewiththeBinarySourceandPropertySourceattributes.

PropertySource String ReferencetoaPropertythatresolvestothefullpathtothechainerexecuteable.MutuallyexclusivewiththeBinarySourceandFileSourceattributes.

SeeAlsoWixSchema,Binary,File,Property,EmbeddedChainerRef

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

ErrorElement

DescriptionNone

WindowsInstallerreferencesErrorTable

ParentsUI

InnerText(xs:string)ElementvalueisMessage,useCDATAifmessagecontainsdelimitercharacters

ChildrenNone

Attributes

Name Type Description Required

Id Integer Numberoftheerrorforwhichamessageisbeingprovided.SeeMSISDKforerrordefinitions.

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

ExePackageElement

DescriptionDescribesasingleexepackagetoinstall.

WindowsInstallerreferencesNone

ParentsChain,PackageGroup

InnerTextNone

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

Attributes

Name Type Description Required

After String Theidentifierofanotherpackagethatthisoneshouldbeinstalledafter.

Cache YesNoType Whethertocachethepackage.

CacheId String Theidentifiertousewhencachingthe

package.

DownloadUrl String TheURLtousetodownloadthepackage.

Id String Identifierforthispackage,fororderingandcross-referencing.

InstallCommand String Thecommand-lineargumentstospecifytoindicateaninstall.

InstallCondition String Aconditiontoevaluatebeforeinstallingthepackage.Thepackagewillonlybeinstallediftheconditionevaluatestotrue.

Name String Thedestinationpathandfilenameforthischainpayload.Thedefaultisthesourcefilename.Usethisattributetorenamethechainentrypointorextractitintoasubfolder.

RepairCommand String Thecommand-lineargumentstospecifytoindicatearepair.

SourceFile String Locationofthepackage.

Yes

UninstallCommand String Thecommand-lineargumentstospecifytoindicatean

uninstall.

Vital YesNoType Whetherthepackageshouldbeconsidered"vital".

AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.Theextension'sCompilerExtension.ParseAttribute()methodwillbecalledwiththepackageidentifierincontextValues["PackageId"].

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

DiskPrompt String Valuetodisplayinthe"[1]"oftheDiskPromptProperty.UsingthisattributewillrequireyoutodefineaDiskPromptProperty.

MediaSrcProp String EnteredintotheSourcefieldofthenewMediatableentryoftheupgradedimage.

Name String Identifierforthefamily. Yes

SequenceStart Int Sequencenumberforthestartingfile.

VolumeLabel String EnteredintotheVolumeLabelfieldofthenewMediatablerecord.

SeeAlsoWixSchema

Version3.5.1623.0

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

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

FirewallExceptionFormatsFileGameHelpCollectionHelpFileNativeImagePerfCounterPerfCounterManifestPermissionExSnapInTypesFile

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.Thelistisusuallyalistofproperties,witheach

propertyenclosedinsidesquarebrackets.Thevaluemaybesettoanemptystring.IncludingthisattributewillcauseanentrytobegeneratedforthefileintheBindImagetable.

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

CompanionFile String Setthisattributetomakethisfileacompanionchildofanotherfile.Theinstallationstateofacompanionfiledependsnotonitsownfileversioninginformation,butontheversioningofitscompanionparent.filethatisthekeypathforitscomponentcannotbeacompanionfile(thatmeansthisattributecannotbesetifKeyPath="yes"forthisfile).TheVersionattributecannotbeset

alongwiththisattributesincecompanionfilesarenotinstalledbasedontheirownversion.

Compressed YesNoDefaultType Setsthefile'ssourcetypecompression.Asettingof"yes"or"no"willoverridethesettingintheWordCountSummaryProperty.

DefaultLanguage String Thisisthedefaultlanguageofthisfile.linkerwillreplacethisvaluefromthevalueinthefileifthesuppressfilesoptionisnotused.

DefaultSize Integer Thisisthedefaultsizeofthisfile.Thelinkerwillreplacethisvaluefromthevalueinthefileifthesuppressfilesoptionisnotused.

DefaultVersion String Thisisthedefaultversionofthisfile.Thelinkerwillreplacethisvaluefromthevalueinthefileifthesuppressfilesoptionisnotused.

DiskId Integer ThevalueofthisattributeshouldcorrespondtotheIdattributeofaMediaelementauthoredelsewhere.Bycreatingthisconnectionbetweenafileanditsmedia,you

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

FontTitle String CausesanentrytobegeneratedforthefileintheFonttablewiththespecifiedFontTitle.Thisattributeisintendedtobeusedtoregisterthefileasanon-TrueTypefont.

Hidden YesNoType Settoyesinordertohavethefile'shiddenattributesetwhenitisinstalledonthetargetmachine.

Id String TheuniqueidentifierforthisFileelement.IfyouomitId,itdefaultstothefilenameportionoftheSourceattribute,if

specified.MaybereferencedasaPropertybyspecifying[#value].

KeyPath YesNoType Settoyesinordertoforcethisfiletobethekeypathfortheparentcomponent.

LongName LongFileNameType Thisattributehasbeendeprecated;pleaseusetheNameattributeinstead.

Name LongFileNameType InpriorversionsoftheWiXtoolset,thisattributespecifiedtheshortfilename.Thisattribute'svaluemaynowbeeitherashortorlongfilename.Ifashortfilenameisspecified,theShortNameattributemaynotbespecified.alongfilenameisspecified,theLongNameattributemaynotbespecified.Also,ifthisvalueisalongfilename,theShortNameattributemaybeomittedtoallowWiXtoattempttogenerateauniqueshortfilename.However,ifthisnamecollideswithanotherfileoryouwishtomanuallyspecifytheshortfilename,thenthe

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

binarypatch.

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

Thefileisa.NETFrameworkassemblythatisprocessor-neutral.

x86Thefileisa.NETFrameworkassemblyforthex86processor.

x64Thefileisa.NETFrameworkassemblyforthex64processor.

ia64Thefileisa.NETFrameworkassemblyfortheia64processor.

ReadOnly YesNoType Settoyesinordertohavethefile'sread-onlyattributesetwhenitisinstalledonthetargetmachine.

SelfRegCost Integer Thecostofregistering

thefileinbytes.Thismustbeanon-negativenumber.IncludingthisattributewillcauseanentrytobegeneratedforthefileintheSelfRegtable.

ShortName ShortFileNameType Theshortfilenameofthefilein8.3format.Thisattributeshouldonlybesetifthereisaconflictbetweengeneratedshortfilenamesortheuserwantstomanuallyspecifytheshortfilename.

Source String SpecifiesthepathtotheFileinthebuildprocess.OverridesdefaultsourcepathsetbyparentdirectoriesandNameattribute.Thisattributemustbesetifnosourceinformationcanbegatheredfromparentdirectories.Formoreinformation,seeSpecifyingsourcefiles

src String Thisattributehasbeendeprecated;pleaseusetheSourceattributeinstead.

System YesNoType Settoyesinordertohavethefile'ssystemattributesetwhenitisinstalledonthetarget

machine.

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

Version3.5.1623.0

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

Version3.5.1623.0

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/@Depthattributeisgreaterthan1,theFileSearch/@Idattributemustbeabsentorthesameasthe

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

HowTosandExamplesHowTo:Checktheversionnumberofafileduringinstallation

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

Version3.5.1623.0

FileSearchRefElement

DescriptionReferencesanexistingFileSearchelement.

WindowsInstallerreferencesNone

ParentsComponentSearch,DirectorySearch,DirectorySearchRef,IniFileSearch,RegistrySearch

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String SpecifytheIdtotheFileSearchtoreference.

Yes

Remarks

AreferencetoanotherFileSearchelementmustreferencethesameIdandthesameParentId.IfanyoftheseattributevaluesaredifferentyoumustinsteaduseaFileSearchelement.

SeeAlsoWixSchema,FileSearch

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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)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)LayoutDirectory(min:0,max:unbounded)LayoutDirectoryRef(min:0,max:unbounded)Media(min:0,max:unbounded)PackageCertificates(min:0,max:unbounded)PackageGroup(min:0,max:unbounded)PatchCertificates(min:0,max:unbounded)PatchFamily(min:0,max:unbounded)PayloadGroup(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)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.

CloseApplicationComPlusApplicationComPlusApplicationRoleComPlusPartitionComPlusPartitionRoleComponentSearchDirectorySearchFileSearchGroupHelpCollectionRefHelpFilterLayoutDirectoryLayoutDirectoryRefMutationPackageGroupPayloadGroupProductSearchRegistrySearchSqlDatabaseUnitTestUnitTestRefUserUXWebApplicationWebAppPoolWebDirPropertiesWebLogWebSite

Attributes

Name Type Description Required

Id String OptionalidentifierforaFragment.Shouldonlybesetbyadvanceduserstotagsections.

SeeAlsoWixSchema

Version3.5.1623.0

IconElement

DescriptionIconusedforShortcut,ProgId,orClasselements(butnotUIcontrols)

WindowsInstallerreferencesIconTable

ParentsFragment,Module,Product,Shortcut

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheIdcannotbylongerthan55characters.InordertopreventerrorsincaseswheretheIdismodularized,itshouldnotbelongerthan18characters.

Yes

SourceFile String Pathtotheiconfile.

src String Thisattributehasbeendeprecated;pleaseusetheSourceFileattributeinstead.

HowTosandExamplesHowTo:Setyourinstaller'siconinAdd/RemoveProgramsHowTo:CreateashortcutontheStartMenu

SeeAlso

WixSchema

Version3.5.1623.0

IconRefElement

DescriptionUsedonlyforPatchFamiliestoincludeonlyaicontableentryinapatch.

WindowsInstallerreferencesNone

ParentsPatchFamily

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifieroftheIconelementtoreference.

Yes

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

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

IgnoreRangeElement

DescriptionSpecifiespartofafilethatistobeignoredduringpatching.

WindowsInstallerreferencesNone

ParentsExternalFile,TargetFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Length Int Lengthoftherange. Yes

Offset Int Offsetofthestartoftherange. Yes

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

IncludeElement

DescriptionThisisthetop-levelcontainerelementforeverywxifile.

WindowsInstallerreferencesNone

ParentsNone

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

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

AttributesNone

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

InstallServicesElement

DescriptionRegistersaserviceforthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesInstallServicesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

InstanceElement

DescriptionDefinesaninstancetransformforyourproduct.

WindowsInstallerreferencesNone

ParentsInstanceTransforms

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Theidentityoftheinstancetransform.Thisvaluewilldefinethenamebywhichtheinstanceshouldbereferredtoonthecommandline.Inaddition,thevalueofthethisattributewilldeterminewhatthevalueofthepropertyspecifiedinPropertyattributeonInstanceTransformswillchangetoforeachinstance.

Yes

ProductCode String TheProductCodeforthisinstance.

Yes

ProductName String TheProductNameforthisinstance.

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

IsolateComponentElement

DescriptionSharedComponenttobeprivatelyreplicatedinfolderofparentComponent

WindowsInstallerreferencesIsolateComponentTable

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Shared String SharedComponentforthisapplicationComponent.

Yes

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

LayoutDirectoryElement

DescriptionRepresentationoflayoutdirectory.

WindowsInstallerreferencesNone

ParentsBundle,Fragment,LayoutDirectory,LayoutDirectoryRef,Module,Patch,PatchCreation,Product

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

LayoutDirectory(min:0,max:unbounded)LayoutDirectoryRef(min:0,max:unbounded)LayoutFile(min:0,max:unbounded)

Attributes

Name Type Description Required

Id String IdentifierforLayoutDirectory.OnlyrequiredifthisissharedandisreferencedbyLayoutDirectoryRef.

Name String Thedestinationpathofthislayout.Itcancontainmultiplelevelsofdirectorystructure(i.e.src\files\product)

Yes

SeeAlsoWixSchema

Version3.5.1623.0

LayoutDirectoryRefElement

DescriptionCreateareferencetoanexistingLayoutDirectoryelement.

WindowsInstallerreferencesNone

ParentsBundle,Fragment,LayoutDirectory,LayoutDirectoryRef,Module,Patch,PatchCreation,Product

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

LayoutDirectory(min:0,max:unbounded)LayoutDirectoryRef(min:0,max:unbounded)LayoutFile(min:0,max:unbounded)

Attributes

Name Type Description Required

Id String TheidentifierofLayoutDirectoryelementtoreference.

Yes

SeeAlsoWixSchema,LayoutDirectory

Version3.5.1623.0

LayoutFileElement

DescriptionDescribesthepayloadtoabootstrapper.

WindowsInstallerreferencesNone

ParentsLayoutDirectory,LayoutDirectoryRef

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Name String Thedestinationpathandfilenameforthisfile.Thedefaultisthesourcefilename.

SourceFile String Locationofthesourcefile. Yes

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

MajorUpgradeElement

DescriptionSimplifiesauthoringformajorupgrades,includingsupportforpreventingdowngrades.

TheparentProductelementmusthavevalidUpgradeCodeandVersionattributes.

WindowsInstallerreferencesNone

ParentsProduct

InnerTextNone

ChildrenNone

Attributes

Name Type Description

AllowDowngrades YesNoType Whensettono(thedefault),productswithlowerversionnumbersareblockedfrominstallingwhenaproductwithahigherversionisinstalled;theDowngradeErrorMessageattributemustalsobespecified.

Whensettoyes,anyversioncanbeinstalledoveranyotherversion.

DowngradeErrorMessage String Themessagedisplayedif

userstrytoinstallaproductwithalowerversionnumberwhenaproductwithahigherversionisinstalled.UsedonlywhenAllowDowngradesisno(thedefault).

IgnoreRemoveFailure YesNoType Whensettoyes,failuresremovingtheinstalledproductduringtheupgradewillbeignored.

Whensettono(thedefault),failuresremovingtheinstalledproductduringtheupgradewillbeconsideredafailureand,dependingonthescheduling,rollbacktheupgrade.

MigrateFeatures YesNoType Whensettoyes(thedefault),theMigrateFeatureStatesstandardactionwillsetthefeaturestatesoftheupgradeproducttothoseoftheinstalledproduct.

Whensettono,theinstalledfeatureshavenoeffectontheupgradeinstallation.

RemoveFeatures String Aformattedstringthatcontainsthelistoffeaturestoremovefromtheinstalledproduct.Thedefaultistoremoveallfeatures.Notethatifyouuseformattedpropertyvaluesthatevaluatetoanemptystring,nofeatureswillberemoved;onlyomitting

thisattributedefaultstoremovingallfeatures.

Schedule Enumeration DeterminestheschedulingoftheRemoveExistingProductsstandardaction,whichiswhentheinstalledproductisremoved.Thedefaultis"afterInstallValidate"whichremovestheinstalledproductentirelybeforeinstallingtheupgradeproduct.It'sslowestbutgivesthemostflexibilityinchangingcomponentsandfeaturesintheupgradeproduct.

Formoreinformation,seeRemoveExistingProducts.Thisattribute'svaluemustbeoneofthefollowing:afterInstallValidate

(Default)SchedulesRemoveExistingProductsaftertheInstallValidatestandardaction.Thisschedulingremovestheinstalledproductentirelybeforeinstallingtheupgradeproduct.It'sslowestbutgivesthemostflexibilityinchangingcomponentsandfeaturesintheupgradeproduct.Notethatiftheinstallationoftheupgradeproductfails,themachinewillhaveneitherversion

installed.

afterInstallInitializeSchedulesRemoveExistingProductsaftertheInstallInitializestandardaction.ThisissimilartotheafterInstallValidatescheduling,butiftheinstallationoftheupgradeproductfails,WindowsInstalleralsorollsbacktheremovaloftheinstalledproduct--inotherwords,reinstallsit.

afterInstallExecuteSchedulesRemoveExistingProductsbetweentheInstallExecuteandInstallFinalizestandardactions.Thisschedulinginstallstheupgradeproduct"ontopof"theinstalledproductthenletsRemoveExistingProductsuninstallanycomponentsthatdon'talsoexistintheupgradeproduct.Notethatthisschedulingrequiresstrictadherencetothecomponentrulesbecauseitreliesoncomponentreferencecountstobeaccurateduringinstallationofthe

upgradeproductandremovaloftheinstalledproduct.Formoreinformation,seeBobArnson'sblogpost"PayingforUpgrades"fordetails.Ifinstallationoftheupgradeproductfails,WindowsInstalleralsorollsbacktheremovaloftheinstalledproduct--inotherwords,reinstallsit.

afterInstallExecuteAgainSchedulesRemoveExistingProductsbetweentheInstallExecuteAgainandInstallFinalizestandardactions.ThisisidenticaltotheafterInstallExecuteschedulingbutaftertheInstallExecuteAgainstandardactioninsteadofInstallExecute.

afterInstallFinalizeSchedulesRemoveExistingProductsaftertheInstallFinalizestandardaction.ThisissimilartotheafterInstallExecuteandafterInstallExecuteAgainschedulingsbuttakesplaceoutsidetheinstallationtransactionsoifinstallationoftheupgradeproductfails,

WindowsInstallerdoesnotrollbacktheremovaloftheinstalledproduct,sothemachinewillhavebothversionsinstalled.

SeeAlsoWixSchema

Version3.5.1623.0

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 Required

Id Integer DiskidentifierforMediatable.Thisnumbermustbeequaltoorgreaterthan1.

Yes

Cabinet String Thenameofthecabinetifsomeorallofthefilesstoredonthemediaareinacabinetfile.Ifnocabinetsareused,thisattributemustnot

beset.

CompressionLevel Enumeration IndicatesthecompressionlevelfortheMedia'scabinet.ThisattributecanonlybeusedinconjunctionwiththeCabinetattribute.Thedefaultis'mszip'.Thisattribute'svaluemustbeoneofthefollowing:high

low

medium

mszip

none

DiskPrompt String Thediskname,whichisusuallythevisibletextprintedonthedisk.Thislocalizabletextisusedtoprompttheuserwhenthisdiskneedstobeinserted.Thisvaluewillbeusedinthe"[1]"oftheDiskPromptProperty.UsingthisattributewillrequireyoutodefineaDiskPromptProperty.

EmbedCab YesNoType Instructsthebindertoembedthecabinetintheproductif'yes'.

ThisattributecanonlybespecifiedinconjunctionwiththeCabinetattribute.

Layout String ThisattributespecifiestherootdirectoryfortheuncompressedfilesthatareapartofthisMediaelement.Bydefault,thesrcwillbetheoutputdirectoryforthefinalimage.Thedefaultvalueensuresthebindergeneratesaninstallableimage.Ifarelativepathisspecifiedinthesrcattribute,thevaluewillbeappendedtotheimage'soutputdirectory.Ifanabsolutepathisprovided,thatpathwillbeusedwithoutmodification.Thelattertwooptionsareprovidedtoeasethelayoutofanimageontomultiplemedias(CDs/DVDs).

Source String Optionalpropertythatidentifiesthesourceoftheembeddedcabinet.Ifacabinetisspecifiedforapatch,thispropertyshouldbedefinedandunique

toeachpatchsothattheembeddedcabinetcontainingpatchedandnewfilescanbelocatedinthepatchpackage.Ifthecabinetisnotembedded-thisisnottypical-thecabinetcanbefoundinthedirectoryreferencedinthiscolumn.Ifempty,theexternalcabinetmustbelocatedintheSourceDirdirectory.

src String Thisattributehasbeendeprecated;pleaseusetheLayoutattributeinstead.

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

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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)LayoutDirectory(min:0,max:unbounded)LayoutDirectoryRef(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.

CloseApplicationComPlusApplicationComPlusApplicationRoleComPlusPartitionComPlusPartitionRoleGroup

HelpCollectionRefHelpFilterLayoutDirectoryLayoutDirectoryRefSqlDatabaseUserWebApplicationWebAppPoolWebDirPropertiesWebLogWebSite

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

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.Theextension'sCompilerExtension.ParseElement()methodwillbecalledwiththepackageidentifierasthefirstvalueincontextValues.

MsiProperty

Attributes

Name Type Description Required

After String Theidentifierofanotherpackagethatthisoneshouldbeinstalledafter.

Cache YesNoType Whethertocachethepackage.

CacheId String Theidentifiertousewhencachingthepackage.

DownloadUrl String TheURLtousetodownloadthepackage.

Id String Identifierforthispackage,fororderingandcross-referencing.

InstallCondition String Aconditiontoevaluatebeforeinstallingthepackage.Thepackagewillonlybeinstallediftheconditionevaluatestotrue.

Name String Thedestinationpathandfilenameforthischainpayload.Thedefaultisthesourcefilename.Usethisattributetorenamethechainentrypointorextractitintoasubfolder.

SourceFile String Locationofthepackage. Yes

Vital YesNoType Whetherthepackageshouldbeconsidered"vital".

AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.Theextension'sCompilerExtension.ParseAttribute()methodwillbecalledwiththepackageidentifierincontextValues["PackageId"].

SeeAlsoWixSchema

Version3.5.1623.0

MsiPropertyElement

DescriptionAllowsanMSIpropertytobesetbasedonthevalueofaburnengineexpression.

WindowsInstallerreferencesNone

ParentsMsiPackage

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Name String ThenameoftheMSIpropertytoset.

Yes

Value String Thevaluetosetthepropertyto.Thisstringisevaluatedbytheburnengineandcanbeassimpleasaburnenginevariablereferenceorascomplexasafullexpression.

Yes

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

MsiUnpublishAssembliesElement

DescriptionManagestheunadvertisementofCLRandWin32assembliesthatarebeingremoved.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesMsiUnpublishAssembliesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

MspPackageElement

DescriptionDescribesasinglemsppackagetoinstall.

WindowsInstallerreferencesNone

ParentsChain,PackageGroup

InnerTextNone

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

Attributes

Name Type Description Required

After String Theidentifierofanotherpackagethatthisoneshouldbeinstalledafter.

Cache YesNoType Whethertocachethepackage.

CacheId String Theidentifiertousewhencachingthepackage.

DownloadUrl String TheURLtousetodownloadthepackage.

Id String Identifierforthispackage,fororderingandcross-referencing.

InstallCondition String Aconditiontoevaluatebeforeinstallingthepackage.Thepackagewillonlybeinstallediftheconditionevaluatestotrue.

Name String Thedestinationpathandfilenameforthischainpayload.Thedefaultisthesourcefilename.Usethisattributetorenamethechainentrypointorextractitintoasubfolder.

SourceFile String Locationofthepackage. Yes

Vital YesNoType Whetherthepackageshouldbeconsidered"vital".

AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.Theextension'sCompilerExtension.ParseAttribute()methodwillbecalledwiththepackageidentifierincontextValues["PackageId"].

SeeAlsoWixSchema

Version3.5.1623.0

MsuPackageElement

DescriptionDescribesasinglemsupackagetoinstall.

WindowsInstallerreferencesNone

ParentsChain,PackageGroup

InnerTextNone

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

Attributes

Name Type Description Required

After String Theidentifierofanotherpackagethatthisoneshouldbeinstalledafter.

Cache YesNoType Whethertocachethepackage.

CacheId String Theidentifiertousewhencachingthepackage.

DownloadUrl String TheURLtousetodownloadthepackage.

Id String Identifierforthispackage,fororderingandcross-referencing.

InstallCondition String Aconditiontoevaluatebeforeinstallingthepackage.Thepackagewillonlybeinstallediftheconditionevaluatestotrue.

Name String Thedestinationpathandfilenameforthischainpayload.Thedefaultisthesourcefilename.Usethisattributetorenamethechainentrypointorextractitintoasubfolder.

SourceFile String Locationofthepackage. Yes

Vital YesNoType Whetherthepackageshouldbeconsidered"vital".

AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.Theextension'sCompilerExtension.ParseAttribute()methodwillbecalledwiththepackageidentifierincontextValues["PackageId"].

SeeAlsoWixSchema

Version3.5.1623.0

MultiStringValueElement

DescriptionUseseveraloftheseelementstospecifyeachregistryvalueinamultiStringregistryvalue.ThiselementcannotbeusediftheValueattributeisspecifiedunlesstheTypeattributeissetto'multiString'.ThevaluesshouldgointhetextareaoftheMultiStringValueelement.

WindowsInstallerreferencesRegistryTable

ParentsRegistryValue

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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.Thisattribute'svaluemustbeoneofthefollowing:x86

Setthisvaluetodeclarethatthepackageisanx86package.

ia64Setthisvaluetodeclarethatthepackageisania64package.ThisvaluerequiresthattheInstallerVersionpropertybesetto200orgreater.

x64Setthisvaluetodeclarethatthepackageisanx64package.Thisvaluerequires

thattheInstallerVersionpropertybesetto200orgreater.

intelThisvaluehasbeendeprecated.Use"x86"instead.

intel64Thisvaluehasbeendeprecated.Use"ia64"instead.

Platforms String Thisattributehasbeendeprecated;pleaseusethePlatformattributeinstead.

ReadOnly YesNoDefaultType Thevalueofthisattributeconveyswhetherthepackageshouldbeopenedasread-only.Adatabaseeditingtoolshouldnotmodifyaread-onlyenforceddatabaseandshouldissueawarningatattemptstomodifyaread-onlyrecommended

database.

ShortNames YesNoType Setto'yes'tohaveshortfilenamesinthesource.

SummaryCodepage String Thecodepageintegervalueorwebnameforsummaryinfostringsonly.Seeremarksformoreinformation.

Remarks

YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.

SeeAlsoWixSchema

Version3.5.1623.0

PackageCertificatesElement

DescriptionDigitalsignaturesthatidentifyinstallationpackagesinamulti-producttransaction.

WindowsInstallerreferencesMsiPackageCertificateTable

ParentsFragment,Product

InnerTextNone

ChildrenChoiceofelements(min:1,max:unbounded)

DigitalCertificate(min:1,max:unbounded)

AttributesNone

SeeAlsoWixSchema

Version3.5.1623.0

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)

Attributes

Name Type Description Required

Id String Identifierforpackagegroup. Yes

SeeAlsoWixSchema

Version3.5.1623.0

PackageGroupRefElement

DescriptionCreateareferencetoPackageGroupelementthatexistsinsideaBundleorFragmentelement.

WindowsInstallerreferencesNone

ParentsChain,PackageGroup

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifierofthePackageGroupelementtoreference.

Yes

After String Theidentifierofapackagethatthisgroupshouldbeinstalledafter.

SeeAlsoWixSchema,PackageGroup

Version3.5.1623.0

PatchElement

DescriptionThePatchelementisanalogoustothemainfunctioninaCprogram.Whenlinking,onlyonePatchsectioncanbegiventothelinkertoproduceasuccessfulresult.UsingthiselementcreatesanMSPfile.

WindowsInstallerreferencesNone

ParentsWix

InnerTextNone

ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)

LayoutDirectory(min:0,max:unbounded)LayoutDirectoryRef(min:0,max:unbounded)Media(min:1,max:unbounded)OptimizeCustomActions(min:0,max:1):Indicateswhethercustomactionscanbeskippedwhenapplyingthepatch.PatchFamily(min:1,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.

LayoutDirectory

LayoutDirectoryRef

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 Categoryof

updates.RecommendedvaluesareCriticalUpdate,Hotfix,SecurityRollup,SecurityUpdate,ServicePack,Update,UpdateRollup.

ClientPatchId String Aneasilyreferencedidentityuniquetoapatchthatcanbeusedinproductauthoring.Seeremarksformoreinformation.

Codepage String ThecodepageintegervalueorwebnamefortheresultingMSP.Seeremarksformoreinformation.

Comments String Optionalcommentsforbrowsing.

Description String Descriptionofthepatch.

DisplayName String Atitleforthe

patchthatissuitableforpublicdisplay.InAdd/RemoveProgramsfromXPSP2on.

Id AutogenGuid Patchcodeforthispatch.

Manufacturer String Vendorreleasingthepackage

MinorUpdateTargetRTM YesNoType IndicatesthatthepatchtargetstheRTMversionoftheproductorthemostrecentmajorupgradepatch.AuthorthisoptionalpropertyinminorupdatepatchesthatcontainsequencinginformationtoindicatethatthepatchremovesallpatchesuptotheRTMversionoftheproduct,oruptothemostrecentmajor

upgradepatch.ThispropertyisavailablebeginningwithWindowsInstaller3.1.

MoreInfoURL String AURLthatprovidesinformationspecifictothispatch.InAdd/RemoveProgramsfromXPSP2on.

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

OptimizePatchSizeForLargeFiles YesNoType Whenthisattributeisset,patchesforfilesgreaterthanapproximately4MBinsizemaybemadesmaller.

TargetProductName String Nameoftheapplicationortargetproductsuite.

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

Version3.5.1623.0

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

Version3.5.1623.0

PatchCertificatesElement

DescriptionIdentifiesthepossiblesignercertificatesusedtodigitallysignpatches.

WindowsInstallerreferencesMsiPatchCertificateTable

ParentsFragment,Product

InnerTextNone

ChildrenChoiceofelements(min:1,max:unbounded)

DigitalCertificate(min:1,max:unbounded)

AttributesNone

SeeAlsoWixSchema

Version3.5.1623.0

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)

LayoutDirectory(min:0,max:unbounded)LayoutDirectoryRef(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 Usethistosetwhetherthemajorversionsbetweentheupgradeandtargetimagesmatch.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

Version3.5.1623.0

PatchFamilyElement

DescriptionCollectionofitemsthatshouldbekeptfromthedifferencesbetweentwoproducts.

WindowsInstallerreferencesNone

ParentsFragment,Patch

InnerTextNone

ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)

BinaryRef(min:0,max:unbounded)ComponentRef(min:0,max:unbounded)CustomActionRef(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.

Attributes

Name Type Description Required

Id String Identifierwhichindicatesasequencefamilytowhich

Yes

thispatchbelongs.

ProductCode Guid SpecifiestheProductCodeoftheproductthatthisfamilyappliesto.

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

Version String UsedtopopulatethesequencecolumnoftheMsiPatchSequencetableinthefinalMSPfile.Specifiedinx.x.x.xformat.SeedocumentationforSequencecolumnofMsiPatchSequencetableinMSISDK.

Yes

SeeAlsoWixSchema

Version3.5.1623.0

PatchFamilyRefElement

DescriptionThiswillcausetheentirecontentsoftheFragmentcontainingthereferencedPatchFamilytobeusedintheprocessofcreatingapatch.

WindowsInstallerreferencesNone

ParentsPatch

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifieroftheCustomActiontoreference.

Yes

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

SeeAlsoWixSchema,PatchFamily

Version3.5.1623.0

PatchFilesElement

DescriptionQueriesthePatchtabletodeterminewhichpatchesaretobeapplied.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesPatchFilesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

PayloadElement

DescriptionDescribesapayloadtoabootstrapper.

WindowsInstallerreferencesNone

ParentsContainer,ExePackage,MsiPackage,MspPackage,MsuPackage,PayloadGroup,UX

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

DownloadUrl String TheURLtousetodownloadthepackage.

Name String Thedestinationpathandfilenameforthispayload.Thedefaultisthesourcefilename.

SourceFile String Locationofthesourcefile. Yes

SeeAlsoWixSchema

Version3.5.1623.0

PayloadGroupElement

DescriptionDescribesapayloadgrouptoabootstrapper.

WindowsInstallerreferencesNone

ParentsFragment

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

Version3.5.1623.0

PayloadGroupRefElement

DescriptionCreateareferencetoPayloadGroupelementthatexistsinsideaBundleorFragmentelement.

WindowsInstallerreferencesNone

ParentsExePackage,MsiPackage,MspPackage,MsuPackage,PayloadGroup,UX

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifierofthePayloadGroupelementtoreference.

Yes

SeeAlsoWixSchema,PayloadGroup

Version3.5.1623.0

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

GenericAll YesNoType

GenericExecute YesNoType

GenericRead YesNoType specifyingthiswillfailtograntreadaccess

GenericWrite YesNoType

Notify 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

Write YesNoType

WriteAttributes YesNoType

WriteExtendedAttributes YesNoType

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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)LayoutDirectory(min:0,max:unbounded)LayoutDirectoryRef(min:0,max:unbounded)MajorUpgrade(min:0,max:unbounded)Media(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.

CloseApplication

ComPlusApplicationComPlusApplicationRoleComPlusPartitionComPlusPartitionRoleGroupHelpCollectionRefHelpFilterLayoutDirectoryLayoutDirectoryRefMajorUpgradeSqlDatabaseUnitTestRefUserWebApplicationWebAppPoolWebDirPropertiesWebLogWebSite

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

YoucanspecifyanyvalidWindowscodebyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

ProgressTextElement

DescriptionNone

WindowsInstallerreferencesActionTextTable

ParentsUI

InnerText(xs:string)Elementvalueisprogressmessagetextforaction

ChildrenNone

Attributes

Name Type Description Required

Action String Yes

Template String usedtoformatActionDatamessagesfromactionprocessing

SeeAlsoWixSchema

Version3.5.1623.0

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)

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

ProtectRangeElement

DescriptionSpecifiespartofafilethatcannotbeoverwrittenduringpatching.

WindowsInstallerreferencesNone

ParentsExternalFile,ProtectFile,TargetFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Length Int Lengthoftherange. Yes

Offset Int Offsetofthestartoftherange. Yes

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

RegisterFontsElement

DescriptionRegistersinstalledfontswiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterFontsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

RegisterProductElement

DescriptionRegisterstheproductinformationwiththeinstaller.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterProductAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

RegisterTypeLibrariesElement

DescriptionRegisterstypelibrarieswiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterTypeLibrariesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

RegisterUserElement

DescriptionRegisterstheuserinformationwiththeinstallertoidentifytheuserofaproduct.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterUserAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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 Required

Action Enumeration Thisistheactionthatwillbetakenforthisregistryvalue.Thisattribute'svaluemustbeoneofthefollowing:create

Createsthekey,if

absent,whentheparentcomponentisinstalled.

createAndRemoveOnUninstallCreatesthekey,ifabsent,whentheparentcomponentisinstalledthenremovethekeywithallitsvaluesandsubkeyswhentheparentcomponentisuninstalled.

noneDoesnothing;thiselementisusedmerelyinWiXauthoringfororganizationanddoesnothingtothefinaloutput.Thisisthedefaultvalue.

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

Key String Thelocalizablekeyfortheregistryvalue.IftheparentelementisaRegistryKey,thisvaluemaybeomittedtousethepathoftheparent,orifitsspecifieditwillbeappendedtothepathoftheparent.

Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.

HowTosandExamples

HowTo:ReadaregistryentryduringinstallationHowTo:Writearegistryentryduringinstallation

SeeAlsoWixSchema

Version3.5.1623.0

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.ThedefaultvaluedependsonthevalueofthePackage/@Platformattribute:ifthe@Platformattributevalueis'x86',thedefault@Win64attributevalueis'no';otherwise,thedefaultvalueis'yes'.

Remarks

WhentheTypeattributevalueis'directory'theregistryvaluemust

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

HowTosandExamplesHowTo:Readaregistryentryduringinstallation

SeeAlsoWixSchema,ComponentSearch,IniFileSearch

Version3.5.1623.0

RegistrySearchRefElement

DescriptionReferencesanexistingRegistrySearchelement.

WindowsInstallerreferencesNone

ParentsProperty

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String SpecifytheIdoftheRegistrySearchtoreference.

Yes

SeeAlsoWixSchema,RegistrySearch

Version3.5.1623.0

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

Version3.5.1623.0

RemoveDuplicateFilesElement

DescriptionDeletesfilesinstalledbytheDuplicateFilesaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveDuplicateFilesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

RemoveEnvironmentStringsElement

DescriptionModifiesthevaluesofenvironmentvariables.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveEnvironmentStringsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

RemoveFilesElement

DescriptionRemovesfilespreviouslyinstalledbytheInstallFilesaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveFilesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

RemoveFoldersElement

DescriptionRemovesanyfolderslinkedtocomponentssettoberemovedorrunfromsource.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveFoldersAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

RemoveShortcutsElement

DescriptionManagestheremovalofanadvertisedshortcutwhosefeatureisselectedforuninstallationoranonadvertisedshortcutwhosecomponentisselectedforuninstallation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveShortcutsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

ReplacePatchElement

DescriptionApatchthatisdeprecatedbythispatch.

WindowsInstallerreferencesNone

ParentsPatchCreation

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id Guid PatchGUIDtobeunregisteredifitexistsonthemachinetargetedbythispatch.

Yes

SeeAlsoWixSchema

Version3.5.1623.0

RequiredPrivilegeElement

DescriptionPrivilegerequiredbyserviceconfiguredbyServiceConfigparent.ValidvaluesareaprivilegeconstantoraFormattedpropertythatresolvestoaprivilegeconstant.

WindowsInstallerreferencesMsiServiceConfigTable

ParentsServiceConfig

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

RowElement

DescriptionRowdataforaCustomTable

WindowsInstallerreferencesNone

ParentsCustomTable

InnerTextNone

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

AttributesNone

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

SelfRegModulesElement

DescriptionProcessesallmoduleslistedintheSelfRegtableandregistersallinstalledmoduleswiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesSelfRegModulesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

SelfUnregModulesElement

DescriptionUnregistersallmoduleslistedintheSelfRegtablethatarescheduledtobeuninstalled.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesSelfUnregModulesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

ServiceArgumentElement

DescriptionArgumentusedinServiceControlparent

WindowsInstallerreferencesServiceControlTable

ParentsServiceControl

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

ServiceDependencyElement

DescriptionServiceorgroupofservicesthatmuststartbeforetheparentservice.

WindowsInstallerreferencesServiceInstallTable

ParentsServiceInstall

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Thevalueofthisattributeshouldbeoneofthefollowing:1. Thename(notthedisplay

name)ofapreviouslyinstalledservice.

2. AforeignkeyreferringtoanotherServiceInstall/@Id.

3. Agroupofservices(inwhichcasetheGroupattributeshouldbesetto'yes').

Yes

Group YesNoType Setto'yes'toindicatethatthevalueintheIdattributeisthenameofagroupofservices.

SeeAlso

WixSchema

Version3.5.1623.0

ServiceInstallElement

DescriptionAddsandremovesservicesforparentComponent.

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):orderedlistofdependencieswheninstallingservicesAnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

ServiceConfig

Attributes

Name Type Description Required

Account String Theaccountunderwhichtostarttheservice.ValidonlywhenServiceTypeisownProcess.

Arguments String Containsany

commandlineargumentsorpropertiesrequiredtoruntheservice.

Description String Setsthedescriptionoftheservice.

DisplayName String Thiscolumnisthelocalizablestringthatuserinterfaceprogramsusetoidentifytheservice.

EraseDescription YesNoType Determineswhethertheexistingservicedescriptionwillbeignored.If'yes',theservicedescriptionwillbenull,eveniftheDescriptionattributeisset.

ErrorControl Enumeration Determineswhatactionshouldbetakenonanerror.Thisattribute'svaluemustbeoneofthefollowing:ignore

Logstheerrorandcontinueswiththestartupoperation.

normalLogstheerror,displaysamessageboxandcontinuesthestartupoperation.

critical

Yes

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

Yes

supportbootorsystem.Thisattribute'svaluemustbeoneofthefollowing:auto

Theservicewillstartduringstartupofthesystem.

demandTheservicewillstartwhentheservicecontrolmanagercallstheStartServicefunction.

disabledTheservicecannolongerbestarted.

bootTheserviceisadevicedriverthatwillbestartedbytheoperatingsystembootloader.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.

systemTheserviceisadevicedriverthatwillbestartedbytheIoInitSystemfunction.Thisvalueisnot

currentlysupportedbytheWindowsInstaller.

Type Enumeration TheWindowsInstallerdoesnotcurrentlysupportkernelDriverorsystemDriverThisattribute'svaluemustbeoneofthefollowing:ownProcess

AWin32servicethatrunsitsownprocess.

shareProcessAWin32servicethatsharesaprocess.

kernelDriverAkerneldriverservice.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.

systemDriverAfilesystemdriverservice.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.

Yes

Vital YesNoType Theoverallinstallshouldfailifthisservicefailstoinstall.

RemarksTheserviceexecutableinstalledwillpointtotheKeyPathfortheComponent.Therefore,youmustensurethatthecorrectexecutableiseitherthefirstchildFileelementunderthisComponentorexplicitlymarktheappropriateFileelementasKeyPath='yes'.

SeeAlsoWixSchema

Version3.5.1623.0

SetDirectoryElement

DescriptionSetsaDirectorytoaparticularvalue.ThisisaccomplishedbycreatingaType51customactionthatisappropriatelyscheduledintheInstallUISequenceandInstallExecuteSequence.

WindowsInstallerreferencesCustomActionTable

ParentsFragment,Module,Product

InnerText(xs:string)TheconditionthatdetermineswhethertheDirectoryisset.Iftheconditionevaluatestofalse,theSetDirectoryisskipped.

ChildrenNone

Attributes

Name Type Description Required

Id String ThisattributespecifiesareferencetoaDirectoryelementwithmatchingIdattribute.ThepathoftheDirectorywillbesettotheValueattribute.

Sequence SequenceType ControlswhichsequencestheDirectoryassignmentissequencedin.For'execute',theassignmentisscheduledintheInstallExecuteSequence.For'ui',theassignmentisscheduledinthe

InstallUISequence.For'both',theassignmentisscheduledinboththeInstallUISequenceandtheInstallExecuteSequence.Thedefaultisboth.

Value String ThisattributespecifiesastringvaluetoassigntotheDirectory.ThevaluecanbealiteralvalueorderivedfromaPropertyelementusingtheFormattedsyntax.

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

SeeAlsoWixSchema,Custom,CustomActionRef,InstallUISequence,InstallExecuteSequence

Version3.5.1623.0

SetODBCFoldersElement

DescriptionChecksforexistingODBCdriversandsetsthetargetdirectoryforeachnewdrivertothelocationofanexistingdriver.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesSetODBCFoldersAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

SetPropertyElement

DescriptionSetsaPropertytoaparticularvalue.ThisisaccomplishedbycreatingaType51customactionthatisappropriatelyscheduledintheInstallUISequenceandInstallExecuteSequence.

WindowsInstallerreferencesCustomActionTable

ParentsFragment,Module,Product

InnerText(xs:string)TheconditionthatdetermineswhetherthePropertyisset.Iftheconditionevaluatestofalse,theSetisskipped.

ChildrenNone

Attributes

Name Type Description Required

After String Thenameofthestandardorcustomactionafterwhichthisactionshouldbeperformed.MutuallyexclusivewiththeBeforeattribute.ABeforeorAfterattributeisrequiredwhensettingaProperty.

Before String Thenameofthestandardorcustomactionbeforewhichthisactionshouldbeperformed.MutuallyexclusivewiththeAfterattribute.ABeforeorAfter

attributeisrequiredwhensettingaProperty.

Id String ThisattributespecifiesthePropertytosettotheValue.

Sequence SequenceType ControlswhichsequencesthePropertyassignmentissequencedin.For'execute',theassignmentisscheduledintheInstallExecuteSequence.For'ui',theassignmentisscheduledintheInstallUISequence.For'both',theassignmentisscheduledinboththeInstallUISequenceandtheInstallExecuteSequence.Thedefaultisboth.

Value String ThisattributespecifiesastringvaluetoassigntotheProperty.ThevaluecanbealiteralvalueorderivedfromaPropertyelementusingtheFormattedsyntax.

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

SeeAlsoWixSchema,Custom,CustomActionRef,InstallUISequence,InstallExecuteSequence

Version3.5.1623.0

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

Version3.5.1623.0

SFPFileElement

DescriptionProvidesamany-to-manymappingfromtheSFPCatalogtabletotheFiletable

WindowsInstallerreferencesFileSFPCatalogTable

ParentsSFPCatalog

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String PrimaryKeytoFileTable. Yes

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

StartServicesElement

DescriptionStartssystemservices.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesStartServicesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

StopServicesElement

DescriptionStopssystemservices.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesStopServicesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

SubscribeElement

DescriptionSetsattributesforeventsintheEventMappingtable

WindowsInstallerreferencesEventMappingTable

ParentsControl

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Attribute String ifnotpresentcanonlyhandleenable,disable,hide,unhideevents

Event String mustbeoneofthestandardcontrolevents'

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

TargetProductCodesElement

DescriptionTheproductcodesforproductsthatcanacceptthepatch.

WindowsInstallerreferencesNone

ParentsPatch

InnerTextNone

ChildrenChoiceofelements(min:1,max:unbounded)

TargetProductCode(min:1,max:unbounded)

Attributes

Name Type Description Required

Replace YesNoType Whethertoreplacetheproductcodesthatcanacceptthepatchfromthetargetpackageswiththechildelements.

SeeAlsoWixSchema

Version3.5.1623.0

TextElement

DescriptionAnalternativetousingtheTextattributewhenthevaluecontainsspecialXMLcharacterslike<,>,or&.

WindowsInstallerreferencesNone

ParentsControl

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

SourceFile String Instructsthetexttobeimportedfromafileinsteadoftheelementvalueduringthebindingprocess.

src String Thisattributehasbeendeprecated;pleaseusetheSourceFileattributeinstead.

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

UITextElement

DescriptionTextassociatedwithcertaincontrols

WindowsInstallerreferencesUITextTable

ParentsUI

InnerText(xs:string)Elementvalueistext,mayuseCDATAifneededtoescapeXMLdelimiters

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

SeeAlsoWixSchema

Version3.5.1623.0

UnpublishComponentsElement

DescriptionManagestheunadvertisementofcomponentslistedinthePublishComponenttable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnpublishComponentsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

UnregisterClassInfoElement

DescriptionManagestheremovalofCOMclassinformationfromthesystemregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterClassInfoAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

UnregisterFontsElement

DescriptionRemovesregistrationinformationaboutinstalledfontsfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterFontsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

UnregisterProgIdInfoElement

DescriptionManagestheunregistrationofOLEProgIdinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterProgIdInfoAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

UnregisterTypeLibrariesElement

DescriptionUnregisterstypelibrariesfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterTypeLibrariesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

UXElement

DescriptionContainsalltherelevantinformationaboutthesetupUI.

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 ThedestinationpathandfilenameforthisUXpayload.Thedefaultisthesourcefilename.UsethisattributetorenametheUXentrypointorextractitintoasubfolder.

SourceFile String TheentrypointoftheUX.

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

VariableElement

DescriptionDescribesaburnenginevariabletodefine.

WindowsInstallerreferencesNone

ParentsBundle

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Name String Thenameforthevariable. Yes

Type Enumeration Typeofthevariable,inferredfromthevalueifnotspecified.Thisattribute'svaluemustbeoneofthefollowing:string

numeric

version

Value String Startingvalueforthevariable. Yes

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

WixVariableElement

DescriptionThiselementexposesadvancedWiXfunctionality.UsethiselementtodeclareWiXvariablesfromdirectlywithinyourauthoring.WiXvariablesarenotresolveduntilthefinalmsi/msm/pcpfileisactuallygenerated.WiXvariablesdonotpersistintothemsi/msm/pcpfile,sotheycannotbeusedwhenanMSIfileisbeinginstalled;it'saWiX-onlyconcept.

WindowsInstallerreferencesNone

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

Version3.5.1623.0

WriteEnvironmentStringsElement

DescriptionModifiesthevaluesofenvironmentvariables.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesWriteEnvironmentStringsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

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

ExitType(SimpleType)

DescriptionTODO:Whatdoesthistypemean?

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

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoWixSchema

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,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

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoWixSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoWixSchema

WixlocSchema

Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.

SchemafordescribingWindowsInstallerXmlLocalizationfiles(.wxl).

RootElementWixLocalization

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

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

Version3.5.1623.0

StringElement

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

Version3.5.1623.0

WixLocalizationElement

DescriptionNone

WindowsInstallerreferencesNone

ParentsNone

InnerTextNone

ChildrenSequence(min:0,max:unbounded)1. String(min:0,max:unbounded)

Attributes

Name Type Description Required

Codepage String Thecodepageintegervalueorwebnamefortheresultingdatabase.Youcanalsospecify-1whichwillnotresetthedatabasecodepage.Seeremarksformoreinformation.

Culture String Cultureofthelocalizationstrings. Yes

Remarks

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

HowTosandExamplesHowTo:Buildalocalizedversionofyourinstaller

HowTo:Makeyourinstallerlocalizable

SeeAlsoWixlocSchema

Version3.5.1623.0

LocalizationYesNoType(SimpleType)

DescriptionNone

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoWixlocSchema

ComplusSchema

Copyright(c)MicrosoftCorporation.Allrightsreserved.

TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.

Youmustnotremovethisnotice,oranyother,fromthissoftware.

ThesourcecodeschemafortheWindowsInstallerXMLToolsetCOM+Extension.

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

ChildElementsComPlusApplicationComPlusApplicationRoleComPlusAssemblyComPlusAssemblyDependencyComPlusComponentComPlusGroupInApplicationRoleComPlusGroupInPartitionRoleComPlusInterfaceComPlusMethodComPlusPartitionComPlusPartitionRoleComPlusPartitionUserComPlusRoleForComponentComPlusRoleForInterface

ComPlusRoleForMethodComPlusSubscriptionComPlusUserInApplicationRoleComPlusUserInPartitionRole

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

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

ExitType(SimpleType)

DescriptionTODO:Whatdoesthistypemean?

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

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoComplusSchema

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,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

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoComplusSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoComplusSchema

DifxappSchema

Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.

ThesourcecodeschemafortheWindowsInstallerXMLToolsetDriverInstallFrameworksforApplicationsExtension.

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

ChildElementsDriver

Version3.5.1623.0

DriverElement(DifxappExtension)

DescriptionInstallsadriver.Tousethiselement,youneedtoreferencetheWixDifxAppExtensionextensionandaddthe.wixlibappropriateforthetargetplatform(difxapp_x86.wixlib,difxapp_x64.wixlib,ordifxapp_ia64.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.DriverDeleteFilesto"yes"setsthecorrespondingbitintheFlagsentryvalue.SettingDriverLegacycorrespondingbitintheFlagsentryvalue.Ifthisattribute

isnotpresent,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.SettingDriverLegacyto"yes"setstheFlagsentryvalue.SettingDriverLegacyto"no"clearsthebitintheFlagsentryvaluethatconfiguresDIFxApptoinstallunsigneddriverpackages.Ifthisattributeisnotpresent,DIFxAppusesadefaultvalueof"no".

PlugAndPlayPrompt YesNoType SpecifiesthattheDIFxAppCustomActionsshouldprompttheusertoconnectthePlugandPlayconnected.Thedefaultis'yes'.

Sequence Integer Specifiesanoptionalinstallationsequencenumber.DIFxAppCustomActionsinstallthedriverpackagesininstallationpackageintheorderofincreasingsequencenumbers.Thesamesequencenumbercanbeusedmorethanonedriver;however,theorderinwhichpackageswiththesamesequencenumberareactuallyinstalledcannotbedetermined.

SeeAlso

DifxappSchema

Version3.5.1623.0

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

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

ExitType(SimpleType)

DescriptionTODO:Whatdoesthistypemean?

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

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoDifxappSchema

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,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

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoDifxappSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoDifxappSchema

FirewallSchema

Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.

ThesourcecodeschemafortheWindowsInstallerXMLToolsetFirewallExtension.

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

ChildElementsFirewallExceptionRemoteAddress

Version3.5.1623.0

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

File String Identifierofafiletobegrantedaccesstoallincomingportsandprotocols.IfyouuseFile,youcannotalsouseProgram,Port,orProtocol.

IgnoreFailure YesNoType If"yes,"failurestoregisterthisfirewallexceptionwill

besilentlyignored.If"no"(thedefault),failureswillcauserollback.

Name String Nameofthisfirewallexception,visibletotheuserinthefirewallcontrolpanel.

Yes

Port String Porttoallowthroughthefirewallforthisexception.IfyouusePort,youcannotalsouseFileorProgram.

Profile Enumeration Profiletypeforthisfirewallexception.Defaultis"all".Thisattribute'svaluemustbeoneofthefollowing:domain

private

public

all

Program String Pathtoatargetprogramtobegrantedaccesstoallincomingportsandprotocols.Notethatthisisaformattedfield,soyoucanuse[#fileId]syntaxtorefertoafilebeinginstalled.IfyouuseProgram,youcannotalsouseFile,Port,orProtocol.

Protocol Enumeration IPprotocolusedforthisfirewallexception.Ifnotspecified,"tcp"isassumed.IfyouuseProtocol,youmustalso

specifyPortandyoucannotalsouseFileorProgram.Thisattribute'svaluemustbeoneofthefollowing:tcp

udp

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

localSubnet

SeeAlsoFirewallSchema

Version3.5.1623.0

RemoteAddressElement(FirewallExtension)

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

WindowsInstallerreferencesNone

ParentsFirewallException

InnerText(xs:string)Aremoteaddress.

ChildrenNone

AttributesNone

SeeAlsoFirewallSchema

Version3.5.1623.0

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

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

ExitType(SimpleType)

DescriptionTODO:Whatdoesthistypemean?

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

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoFirewallSchema

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,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

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoFirewallSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoFirewallSchema

GamingSchema

Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.

ThesourcecodeschemafortheWindowsInstallerXMLToolsetGamingExtension.

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

ChildElementsGamePlayTaskSupportTask

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

IsRichSavedGameAttribute(GamingExtension)

DescriptionRegistersthisextensionfortherichsavedgamespropertyhandleronWindowsVistaandlater.

WindowsInstallerreferencesNone

ParentsExtension

SeeAlsoGamingSchema

Version3.5.1623.0

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

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

ExitType(SimpleType)

DescriptionTODO:Whatdoesthistypemean?

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

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoGamingSchema

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,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

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoGamingSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoGamingSchema

IisSchema

Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.

ThesourcecodeschemafortheWindowsInstallerXMLToolsetInternetInformationServicesExtension.

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

ChildElementsCertificateCertificateRefHttpHeaderMimeMapRecycleTimeWebAddressWebApplicationWebApplicationExtensionWebAppPoolWebDirWebDirPropertiesWebErrorWebFilterWebLogWebPropertyWebServiceExtensionWebSite

WebVirtualDir

Version3.5.1623.0

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

Version3.5.1623.0

CertificateRefElement(IisExtension)

DescriptionAssociatesacertificatewiththeparentWebSite.TheCertificateelementshouldbeinthesameComponentastheparentWebSite.

WindowsInstallerreferencesNone

ParentsWebSite

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifierofthereferencedCertificate.

Yes

SeeAlsoIisSchema,Certificate

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

RecycleTimeElement(IisExtension)

DescriptionIIS6ApplicationPoolRecycleTimeson24hourclock.

WindowsInstallerreferencesNone

ParentsWebAppPool

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

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

SeeAlsoIisSchema

Version3.5.1623.0

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

Version3.5.1623.0

WebApplicationElement(IisExtension)

DescriptionDefinespropertiesforawebapplication.Thesepropertiescanbeusedformorethanoneapplicationdefinedinawebsiteorvroot,bydefiningthiselementinacommonlocationandreferringtoitbysettingtheWebApplicationattributeoftheWebSiteandWebVirtualDirelements.

WindowsInstallerreferencesNone

ParentsFragment,Module,Product,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 SetsthetimeoutvalueforexecutingASPscripts.

ServerDebugging YesNoDefaultType EnableASPserver-sidescriptdebugging.

SessionTimeout Integer Setsthetimeoutvaluefor

sessionsinminutes.

WebAppPool String ReferencestheIdattributeofaWebAppPoolelementtouseastheapplicationpoolforthisapplicationinIIS6applications.

SeeAlsoIisSchema

Version3.5.1623.0

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

Version3.5.1623.0

WebAppPoolElement(IisExtension)

DescriptionIIS6ApplicationPool

WindowsInstallerreferencesNone

ParentsComponent,Fragment,Module,Product

InnerTextNone

ChildrenSequence(min:1,max:1)1. RecycleTime(min:0,max:unbounded)

Attributes

Name Type Description Required

Id String IdoftheAppPool. Yes

CpuAction Enumeration ActiontakenwhenCPUexceedsmaximumCPUuse(asdefinedwithMaxCpuUsageandRefreshCpu).Thisattribute'svaluemustbeoneofthefollowing:none

shutdown

Identity Enumeration IdentityyouwanttheAppPooltorununder.Usethe'other'valueinconjunctionwiththeUserattributetospecifynon-standarduser.Thisattribute'svaluemustbeoneofthefollowing:networkService

localService

localSystem

other

IdleTimeout Integer Shutdownworkerprocessafterbeingidlefor(timeinminutes).

MaxCpuUsage PercentType MaximumCPUusage(percent).

MaxWorkerProcesses Integer Maximumnumberofworkerprocesses.

Name String NameoftheAppPooltobeshowninIIs.

Yes

PrivateMemory Integer Specifiestheamountofprivatememory(inKB)thataworkerprocesscanuse

beforetheworkerprocessrecycles.Themaximumvaluesupportedforthisattributeis4,294,967KB.

QueueLimit Integer Limitthekernelrequestqueue(numberofrequests).

RecycleMinutes Integer Howoften,inminutes,youwanttheAppPooltoberecycled.

RecycleRequests Integer Howoften,inrequests,youwanttheAppPooltoberecycled.

RefreshCpu Integer RefreshCPUusagenumbers(inminutes).

User String UseraccounttoruntheAppPoolas.Tousethis,youmustsettheIdentityattributeto'other'.

VirtualMemory Integer Specifiestheamountofvirtualmemory(inKB)thataworkerprocesscanusebeforetheworkerprocessrecycles.

Themaximumvaluesupportedforthisattributeis4,294,967KB.

SeeAlsoIisSchema

Version3.5.1623.0

WebDirElement(IisExtension)

DescriptionDefinesasubdirectorywithinanIISwebsite.WhenthiselementisachildofWebSite,thewebdirectoryisdefinedwithinthatwebsite.OtherwisethewebdirectorymustreferenceaWebSiteelementviatheWebSiteattribute.

WindowsInstallerreferencesNone

ParentsComponent,WebSite

InnerTextNone

ChildrenChoiceofelements(min:1,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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

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

ExitType(SimpleType)

DescriptionTODO:Whatdoesthistypemean?

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

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoIisSchema

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,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

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoIisSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoIisSchema

IsolatedAppSchema

Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.

SchemafordescribingIsolatedApplications.

RootElementIsolatedApp

TargetNamespacehttp://wix.sourceforge.net/schemas/clickthrough/isolatedapp/2006

DocumentShouldLookLike<?xmlversion="1.0"?><IsolatedAppxmlns="http://wix.sourceforge.net/schemas/clickthrough/isolatedapp/2006">...</IsolatedApp>

Version3.5.1623.0

ApplicationElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsIsolatedApp

InnerTextNone

ChildrenChoiceofelements(min:0,max:1)

Details(min:0,max:1)EntryPoint(min:0,max:1)Icon(min:0,max:1)Id(min:0,max:1)Name(min:0,max:1)Source(min:0,max:1)

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

DescriptionElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

DetailsElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

EntryPointElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

PackageVersion Boolean

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

FeedElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

IconElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication,Package

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Index Integer

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

IdElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication,Package

InnerText(uuid)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

IsolatedAppElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsNone

InnerTextNone

ChildrenSequence(min:1,max:1)1. Package(min:1,max:1)2. Application(min:1,max:1)3. PreviousFeed(min:0,max:1)

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

ManufacturerElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

NameElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

PackageElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsIsolatedApp

InnerTextNone

ChildrenChoiceofelements(min:0,max:1)

Description(min:0,max:1)Feed(min:0,max:1)Icon(min:0,max:1)Id(min:0,max:1)Manufacturer(min:0,max:1)UpdateRate(min:0,max:1)Version(min:0,max:1)

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

PreviousFeedElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsIsolatedApp

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

SourceElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

UpdateRateElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(xs:integer)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

VersionElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(VersionType)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

uuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{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}[})]?'.

SeeAlsoIsolatedAppSchema

VersionType(SimpleType)

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

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

SeeAlsoIsolatedAppSchema

LuxSchema

Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.

ThesourcecodeschemafortheWindowsInstallerXMLToolsetLuxExtension.

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

ChildElementsConditionExpressionMutationUnitTestUnitTestRef

Version3.5.1623.0

ConditionElement(LuxExtension)

DescriptionConditionsforaunittest.

WindowsInstallerreferencesNone

ParentsUnitTest

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoLuxSchema

Version3.5.1623.0

ExpressionElement(LuxExtension)

DescriptionAnexpressionthatmustevaluatetotruetosucceed.CannotbespecifiedifPropertyisspecified.

WindowsInstallerreferencesNone

ParentsUnitTest

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoLuxSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

UnitTestRefElement(LuxExtension)

DescriptionIdentifiesaunittesttobelinkedintoaproject.

WindowsInstallerreferencesNone

ParentsFragment,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Identifieroftheunittesttobeincluded.

SeeAlsoLuxSchema

Version3.5.1623.0

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

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

ExitType(SimpleType)

DescriptionTODO:Whatdoesthistypemean?

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

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoLuxSchema

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,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

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoLuxSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoLuxSchema

MsmqSchema

Copyright(c)MicrosoftCorporation.Allrightsreserved.

TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.

Youmustnotremovethisnotice,oranyother,fromthissoftware.

ThesourcecodeschemafortheWindowsInstallerXMLToolsetMSMQExtension.

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

ChildElementsMessageQueueMessageQueuePermission

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

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

ExitType(SimpleType)

DescriptionTODO:Whatdoesthistypemean?

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

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoMsmqSchema

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,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

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoMsmqSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoMsmqSchema

NetfxSchema

Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.

ThesourcecodeschemafortheWindowsInstallerXMLToolset.NETFrameworkExtension.

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

ChildElementsNativeImage

Version3.5.1623.0

NativeImageElement(NetfxExtension)

DescriptionImprovestheperformanceofmanagedapplicationsbycreatingnativeimages.Requiresthe.NETFramework2.0ornewertobeinstalledonthetargetmachinesinceitrunsNGen.

WindowsInstallerreferencesNone

ParentsFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifierforthisNativeImage.

Yes

AppBaseDirectory String Theidentifierofthedirectorytouseforlocatingdependentassemblies.ForDLLassembliesandassembliesinstalledtotheGlobalAssemblyCache(GAC),thisattributeshouldbesettothedirectoryoftheapplicationwhichloadsthisassembly.ForEXEassemblies,thisattribute

doesnotneedtobesetbecauseNGenwillusethedirectoryoftheassemblyfilebydefault.

AssemblyApplication String Theidentifieroftheapplicationwhichwillloadthisassembly.ForDLLassemblieswhichareloadedviareflection,thisattributeshouldbesettoindicatetheapplicationwhichwillloadthisassembly.Theconfigurationoftheapplication(usuallyspecifiedviaanexe.configfile)willbeusedtodeterminehowtoresolvedependenciesforthisassembly.Whenasharedcomponentisloadedatruntime,usingtheLoadmethod,theapplication'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.0ornewerisnotpresentonthetargetmachine,nativeimagecustomactionswillnotbescheduled.

allAttempttogeneratenativeimagesforthe32-bitand64-bitversionsofthe.NETFrameworkonthetargetmachine.Ifaversionofthe.NETFramework2.0ornewerisnotpresentonthetargetmachineforaprocessor

architecture,nativeimagecustomactionswillnotbescheduledforthatprocessorarchitecture.

Priority Enumeration Setsthepriorityofgeneratingthenativeimagesforthisassembly.Thisattribute'svaluemustbeoneofthefollowing:0

Thisisthehighestpriority,itmeansthatimagegenerationoccurssyncronouslyduringthesetupprocess.Thisoptionwillslowdownsetupperformance.

1ThiswillqueueimagegenerationtotheNGenservicetooccurimmediately.Thisoptionwillslowdownsetupperformance.

2ThiswillqueueimagegenerationtotheNGenservicetooccurafterallpriority1assemblieshavecompleted.Thisoptionwillslowdownsetupperformance.

3

Thisisthelowestpriority,itwillqueueimagegenerationtooccurwhenthemachineisidle.Thisoptionshouldnotslowdownsetupperformance.Thisisthedefaultvalue.

Profile YesNoType Setto"yes"togeneratenativeimagesthatcanbeusedunderaprofiler.Thedefaultvalueis"no".

RemarksNativeimagesarefilescontainingcompiledprocessor-specificmachinecode,whichareinstalledintothenativeimagecacheonthelocalcomputer.Theruntimecanusenativeimagesfromthecacheinsteadusingthejust-in-time(JIT)compilertocompiletheoriginalassembly.Thenativeimagecustomactionsareconfiguredtoignorefailuressothatfailingtogenerateorremoveanativeimagewillnotcausesetuptofailandrollback.

SeeAlsoNetfxSchema

Version3.5.1623.0

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoNetfxSchema

OfficeAddinSchema

Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.

SchemafordescribingOfficeAddins.

RootElementOfficeAddin

TargetNamespacehttp://wix.sourceforge.net/schemas/clickthrough/officeaddin/2006

DocumentShouldLookLike<?xmlversion="1.0"?><OfficeAddinxmlns="http://wix.sourceforge.net/schemas/clickthrough/officeaddin/2006">...</OfficeAddin>

Version3.5.1623.0

ApplicationElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsOfficeAddin

InnerTextNone

ChildrenChoiceofelements(min:0,max:1)

Details(min:0,max:1)EntryPoint(min:0,max:1)ExtendsApplication(min:0,max:1)Icon(min:0,max:1)Id(min:0,max:1)Name(min:0,max:1)Source(min:0,max:1)

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

DescriptionElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

DetailsElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

EntryPointElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

ExtendsApplicationElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(SupportedOfficeApplications)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

FeedElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

IconElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication,Package

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Index Integer

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

IdElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication,Package

InnerText(uuid)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

ManufacturerElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

NameElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

OfficeAddinElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsNone

InnerTextNone

ChildrenSequence(min:1,max:1)1. Package(min:1,max:1)2. Application(min:1,max:1)3. PreviousFeed(min:0,max:1)

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

PackageElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsOfficeAddin

InnerTextNone

ChildrenChoiceofelements(min:0,max:1)

Description(min:0,max:1)Feed(min:0,max:1)Icon(min:0,max:1)Id(min:0,max:1)Manufacturer(min:0,max:1)UpdateRate(min:0,max:1)Version(min:0,max:1)

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

PreviousFeedElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsOfficeAddin

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

SourceElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

UpdateRateElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(xs:integer)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

VersionElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(VersionType)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

SupportedOfficeApplications(SimpleType)

DescriptionNone

EnumerationTypePossiblevalues:{Excel2003,Outlook2003,PowerPoint2003,Word2003}

SeeAlsoOfficeAddinSchema

uuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{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}[})]?'.

SeeAlsoOfficeAddinSchema

VersionType(SimpleType)

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

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

SeeAlsoOfficeAddinSchema

PsSchema

Copyright(c)MicrosoftCorporation.Allrightsreserved.

TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.

Youmustnotremovethisnotice,oranyother,fromthissoftware.

ThesourcecodeschemafortheWindowsInstallerXMLToolsetPowerShellExtension.

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

ChildElementsFormatsFileSnapInTypesFile

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

RequiredVersionAttribute(PsExtension)

DescriptionTheversionofthisextensionrequiredtocompilethedefiningsource.

WindowsInstallerreferencesNone

ParentsWix

SeeAlsoPsSchema

Version3.5.1623.0

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

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

EmbeddedResource(SimpleType)

Description

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

Example:UtilityMshSnapInResources,Description

SeeAlsoPsSchema

ExitType(SimpleType)

DescriptionTODO:Whatdoesthistypemean?

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

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoPsSchema

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,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

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoPsSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoPsSchema

SqlSchema

Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.

ThesourcecodeschemafortheWindowsInstallerXMLToolsetSQLServerExtension.

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

ChildElementsSqlDatabaseSqlFileSpecSqlLogFileSpecSqlScriptSqlString

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

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

ExitType(SimpleType)

DescriptionTODO:Whatdoesthistypemean?

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

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoSqlSchema

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,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

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoSqlSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoSqlSchema

UtilSchema

Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.

ThesourcecodeschemafortheWindowsInstallerXMLToolsetUtilityExtension.

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

ChildElementsCloseApplicationComponentSearchDirectorySearchEventManifestEventSourceFileSearchFileShareFileSharePermissionGroupGroupRefInternetShortcutPerfCounterPerfCounterManifestPerformanceCategoryPerformanceCounterPermissionExProductSearch

RegistrySearchServiceConfigUserXmlConfigXmlFile

Version3.5.1623.0

CloseApplicationElement(UtilExtension)

DescriptionClosesapplicationsorschedulesarebootifapplicationcannotbeclosed.

WindowsInstallerreferencesNone

ParentsFragment,Module,Product

InnerText(xs:string)Conditionthatdeterminesiftheapplicationshouldbeclosed.Mustbeblankorevaluatetotruefortheapplicationtobescheduledforclosing.

ChildrenNone

Attributes

Name Type Description Required

Id String Identifierforthecloseapplication(primarykey).

Yes

CloseMessage YesNoType Optionallysendsaclosemessagetotheapplication.Defaultisno.

Description String Descriptiontoshowifapplicationisrunningand

needstobeclosed.

ElevatedCloseMessage YesNoType Optionallysendsaclosemessagetotheapplicationfromdefferedactionwithoutimpersonation.Defaultisno.

Property String Propertytobesetifapplicationisstillrunning.UsefulforlaunchconditionsortoconditionalizecustomUItoaskusertoshutdownapps.

RebootPrompt YesNoType Optionallypromptsforrebootifapplicationisstillrunning.Defaultisyes.

Sequence Integer Optionallyorderstheapplicationstobeclosed.

Target String Nameoftheexectuabletobeclosed.Thisshouldonlybefilename.

Yes

SeeAlsoUtilSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

GroupRefElement(UtilExtension)

DescriptionUsedtojoinausertoagroup

WindowsInstallerreferencesNone

ParentsUser

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

SeeAlsoUtilSchema

Version3.5.1623.0

InternetShortcutElement(UtilExtension)

DescriptionCreatesashortcuttoaURL.

WindowsInstallerreferencesNone

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String UniqueidentifierinyourinstallationpackageforthisInternetshortcut.

Yes

Directory String IdentifierreferencetoDirectoryelementwhereshortcutistobecreated.Thisattribute'svaluedefaultstotheparentComponentdirectory.

Name String Thenameoftheshortcutfile,whichisvisibletotheuser.(The.lnkextensionisaddedautomaticallyandbydefault,isnotshowntotheuser.)

Yes

Target String URLthatshouldbeopened Yes

whentheuserselectstheshortcut.WindowsopenstheURLintheappropriatehandlerfortheprotocolspecifiedintheURL.Notethatthisisaformattedfield,soyoucanuse[#fileId]syntaxtorefertoafilebeinginstalled(usingthefile:protocol).

Type Enumeration Whichtypeofshortcutshouldbecreated.Thisattribute'svaluemustbeoneofthefollowing:url

Creates.urlfilesusingIUniformResourceLocatorW.

linkCreates.lnkfilesusingIShellLinkW(default).

HowTosandExamplesHowTo:Createashortcuttoawebpage

SeeAlsoUtilSchema

Version3.5.1623.0

PerfCounterElement(UtilExtension)

DescriptionThiselementhasbeendeprecated;pleaseusethePerformanceCounterelementinstead.

WindowsInstallerreferencesNone

ParentsFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Name String

SeeAlsoUtilSchema

Version3.5.1623.0

PerfCounterManifestElement(UtilExtension)

DescriptionUsedtoinstallPerfmonCounterManifests.

WindowsInstallerreferencesNone

ParentsFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

ResourceFileDirectory String Thedirectorythatholdstheresourcefileoftheprovidersintheperfmoncountermanifest.Oftentheresourcefilepathcannotbedetermineduntilsetuptime.Putthedirectoryhereandduringperfmonmanifestregistrtionthepathwillbeupdatedintheregistry.Ifnotspecified,Perfmonwilllookfortheresource

fileinthesamedirectoryoftheperfmoncountermanifestfile.

SeeAlsoUtilSchema

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

PermissionExElement(UtilExtension)

DescriptionSetsACLsonFile,Registry,CreateFolder,orServiceInstall.WhenunderaRegistryelement,thiscannotbeusediftheActionattribute'svalueisremoveorremoveKeyOnInstall.ThiselementhasnoIdattribute.Thetableandkeyaretakenfromtheparentelement.TousePermissionExwithanIA-64MSI,youmustcompileallofyoursourcefileswiththe"-archia64"switch,toensuretheIA-64customactionisused,andnotthex64customaction.

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 RequiredtocalltheEnumDependentServicesfunction

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

Version3.5.1623.0

ProductSearchElement(UtilExtension)

DescriptionDescribesaproductsearch.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

After String Idofthesearchthatthisoneshouldcomeafter.

Condition String Conditionforevaluatingthesearch.Ifthisevaluatestofalse,thesearchisnotexecutedatall.

Guid String ProductCodetosearchfor. Yes

Id String Idofthesearchfororderinganddependency.

Result Enumeration Ratherthansavingtheproductversionintothevariable,aProductSearchcansaveanotherattributeofthe

matchingproductinstead.Thisattribute'svaluemustbeoneofthefollowing:Version

Savestheversionofamatchingproductiffound;0.0.0.0otherwise.Thisisthedefault.

LanguageSavesthelanguageofamatchingproductiffound;emptyotherwise.

StateSavesthestateoftheproduct:advertised(1),absent(2),orlocallyinstalled(3).

AssignmentSavestheassignmenttypeoftheproduct:per-user(0),orper-machine(1).

Variable String Nameofthevariableinwhichtoplacetheresultofthesearch.

Yes

SeeAlsoUtilSchema

Version3.5.1623.0

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 NMTOKEN Ratherthansavingthematchingregistryvalueintothevariable,aRegistrySearchcansaveanattributeofthematchingentryinstead.Pattern:'Exists'.

Root Enumeration Registryroothivetosearchunder.Thisattribute'svaluemustbeoneofthefollowing:HKLM

HKEY_LOCAL_MACHINE

HKCUHKEY_CURRENT_USER

HKCRHKEY_CLASSES_ROOT

HKUHKEY_USERS

Value String Optionalvaluetosearchfor

underthegivenKey.

Variable String Nameofthevariableinwhichtoplacetheresultofthesearch.

SeeAlsoUtilSchema

Version3.5.1623.0

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.

RebootMessage String Ifanyofthethree*ActionTypeattributesis"reboot",thisspecifiesthemessagetobroadcasttoserverusersbeforedoingso.

ResetPeriodInDays Integer Numberofdaysafterwhichtoresetthefailurecounttozeroiftherearenofailures.

RestartServiceDelayInSeconds Integer Ifanyofthethree*ActionTypeattributesis"restart",thisspecifiesthenumberofsecondstowaitbeforedoingso.

SecondFailureActionType Enumeration Actiontotake Yes

onthesecondfailureoftheservice.Thisattribute'svaluemustbeoneofthefollowing:none

reboot

restart

runCommand

ServiceName String RequiredifnotunderaServiceInstallelement.

ThirdFailureActionType Enumeration Actiontotakeonthethirdfailureoftheservice.Thisattribute'svaluemustbeoneofthefollowing:none

reboot

restart

runCommand

Yes

RemarksNestingaServiceConfigelementunderaServiceInstallelementwillresultintheservicebeinginstalledtobeconfigured.

NestingaServiceConfigelementunderacomponentelementwillresultinanalreadyinstalledservicetobeconfigured.IftheservicedoesnotexistpriortotheinstalloftheMSIpackage,theinstallwillfail.

SeeAlsoUtilSchema

Version3.5.1623.0

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.

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

SeeAlsoUtilSchema,Group,GroupRef

Version3.5.1623.0

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

'Action''Node'and'On'attributesmustbeleftunspecified.

ElementPath String TheXPathoftheparentelementbeingmodified.Notethatthisisaformattedfieldandtherefore,squarebracketsintheXPathmustbeescaped.

File String Pathofthe.xmlfiletoconfigure.

Yes

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

Node Enumeration Thisattribute'svaluemustbeoneofthefollowing:element

value

document

On Enumeration Thisattribute'svaluemustbeoneofthefollowing:install

uninstall

PreserveModifiedDate YesNoType Specifieswheterornotthemodificationshouldpreservethemodifieddate.Preservingthemodifieddatewillallowthefiletobepatchedifnoothermodificationshavebeenmade.

Sequence Integer SpecifiestheorderinwhichthemodificationistobeattemptedontheXMLfile.Itisimportanttoensurethatnewelementsarecreatedbeforeyouattempttoaddanattributetothem.

Value String Thevaluetobewritten.SeetheFormattedtopicforinformationhowtoescapesquarebrackets

inthevalue.

VerifyPath String TheXPathtotheelementbeingmodified.Thisisrequiredfor'delete'actions.For'create'actions,VerifyPathisusedtodecideiftheelementalreadyexists.

SeeAlsoUtilSchema

Version3.5.1623.0

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.

Yes

File String Pathofthe.xmlfiletoconfigure.

Yes

Name String NameofXMLnodetoset/addtothespecifiedelement.Notsettingthis

attributecausestheelement'stextvaluetobeset.Otherwisethisspecifiedtheattributenamethatisset.

Permanent YesNoType Specifieswhetherornotthemodificationshouldberemovedonuninstall.ThishasnoeffectonuninstalliftheactionwasdeleteValue.

PreserveModifiedDate YesNoType Specifieswheterornotthemodificationshouldpreservethemodifieddate.Preservingthemodifieddatewillallowthefiletobepatchedifnoothermodificationshavebeenmade.

SelectionLanguage Enumeration SpecifywhethertheDOMobjectshoulduseXPathlanguageortheoldXSLPatternlanguage(default)asthequerylanguage.Thisattribute'svalue

mustbeoneofthefollowing:XPath

XSLPattern

Sequence Integer SpecifiestheorderinwhichthemodificationistobeattemptedontheXMLfile.Itisimportanttoensurethatnewelementsarecreatedbeforeyouattempttoaddanattributetothem.

Value String Thevaluetobewritten.SeetheFormattedtopicforinformationhowtoescapesquarebracketsinthevalue.

SeeAlsoUtilSchema

Version3.5.1623.0

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

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

ExitType(SimpleType)

DescriptionTODO:Whatdoesthistypemean?

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

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoUtilSchema

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,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

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoUtilSchema

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoUtilSchema

VsSchema

Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.

ThesourcecodeschemafortheWindowsInstallerXMLToolsetVisualStudioExtension.

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

ChildElementsHelpCollectionHelpCollectionRefHelpFileHelpFileRefHelpFilterHelpFilterRefPlugCollectionInto

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

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

Version3.5.1623.0

HelpFilterRefElement(VsExtension)

DescriptionCreateareferencetoaHelpFileelementinanotherFragment.

WindowsInstallerreferencesNone

ParentsHelpCollection

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String PrimaryKeyforHelpFilter. Yes

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

SeeAlsoVsSchema

Version3.5.1623.0

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

Version3.5.1623.0

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoVsSchema

DevelopingforWiXThissectioncoversthefollowingtopicsfordeveloperswhowanttocontributetotheWiXcodebase:

HowtobeaWindowsInstallerXMLDeveloperBuildingWiXNAntConventionsExtensionDevelopmentDevelopingforVotiveAddingtotheWiXDocumentationTestingWiX

SoyouwanttobeaWindowsInstallerXMLdeveloper?PeoplehavestartedexpressinginterestinjoiningtheWindowsInstallerXMLtoolsetdevelopmentcommunitysoIfiguredIshouldgetsomeadministrativedetailsoutoftheway.IfyouareinterestedincontributingcodetotheWindowsInstallerXMLtoolset,itisveryimportanttoreadthroughallfourofthesetopics.

1)TheWindowsInstallerXMLtoolsetcopyrightisheldbyMicrosoft.

IwanttobeveryupfrontaboutthecopyrightoftheWindowsInstallerXMLtoolsetandhowitaffectsusasdevelopers.MicrosoftisthesponsoroftheWindowsInstallerXMLproject.BeforeacontributioncanbeacceptedintotheWiXproject,thelawyershaveaskedthatweassignourrightstothosecontributionstoMicrosoft.Byhavingdeveloperssignacopyrightassignmentagreement,Microsoftcanmaintainsinglelegalcontroloftheproject.ThatsinglelegalcontrolenablesMicrosofttobestdefendtheprojectinthefutureiftherewaseveranysortoflegalchallenge.

Beforejumpingtoanyconspiracytheories,pleasenotethatthiscopyrightassignmentisexactlythesameprocesstheFreeSoftwareFoundationhasyougothroughifyouworkonaprojecttheysponsor.Also,inClause5oftheWindowsInstallerXMLassignmentagreementyourrightstoyourcontributionareexplicitlygrantedbacktoyou.Ifyouwouldlikeacopyoftheassignmentagreement,pleasecontactwixadmin@microsoft.com.

2)TheWindowsInstallerXMLprojectisabenevolentdictatorship.

Inordertoensureconsistencyintheschemaandmaintainthequalityofthetools,theWindowsInstallerXMLproject’sCVStreeislockeddown.Inotherwords,commitstothecode-basebythegeneralpopulaceareprevented.Ifyouattemptcommitchanges,CVSwillinformyouthatyouhave"InsufficientKarmatocompletethetask."

Tohaveyourcontributionsubmittedtotheproject,pleasesubmitan

assignmentagreementasdescribedabove(youonlyneedtodosoonce)thensendyourcodedifftoWiX-devs@lists.sourceforge.net.ThedeveloperstherewillreviewthechangesandsomeonewillapplythemtoCVSasquicklyaspossible.

3)TheWindowsInstallerXMLcommunityisameritocracy.

ThoseindividualsinthecommunitywhodemonstrateanunderstandingofthecodebasebyactivelyparticipatingontheWindowsInstallerXMLmailinglistsandconsistentlysubmittinghighqualitydiffswillbegivena“Karmaboost”.WithenoughKarmayouwillearntheabilitytocommitchangesdirectlytotheWindowsInstallerXMLproject’sCVStree.

Commitprivilegesshouldnotbetakenlightly.ItisveryimportantthattheWiXtoolsetmaintainahighqualitybarbecausemanypeopledependonthetoolsworkingproperly.Veryfewdevelopersearntheseprivileges.Infact,inoverfouryearsofdevelopment,onlyfivedevelopershaveearnedcommitprivilegestotheinternalWindowsInstallerXMLproject.

4)TheWindowsInstallerXMLdevelopersareallvolunteers.

Everyone(tothebestofmyknowledge)thatworksontheWindowsInstallerXMLtoolsetdoessoinhisorherfreetime.Pleasekeepthatfactinmindwhenaskingforhelp,submittingcodediffs,orinteractingwithanymembersoftheproject.WeallwanttohelptomaketheWindowsInstallerXMLtoolsetassolidatoolaspossible,butsometimes“realjobs”and“significantothers”havetotakeahigherprecedence.

Ifworsecomestoworse,youhaveaccesstothesourcecode.Tryreadingforawhile.:)

Reprintedfromhttp://blogs.msdn.com/robmen/archive/2004/04/14/112970.aspx.Copyright�RobMensching

BuildingWiXSimplyrun"nant"fromthedev\wixdirectory.Thiswillbuilddebugbitsintothe"target"directorybydefault.Tobuildreleasebits,run"nant-D:flavor=ship".YoucandisablebuildingIA64-specificpartsofthecustomactionlibrarybyrunning"nant-D:ia64=false".

InordertofullybuildWiX,youmusthavethefollowingFrameworksandSDKsinstalled:

NAnt(build2008-02-10-0.86orlater)ThefollowingcomponentsfromtheWindowsSDKforWindowsServer2008and.NETFramework3.5,VisualStudio2008,MicrosoftWindows7SDK,and/orVisualStudio2010:

x86andx64compilers,headersandlibrariesIA64headersandlibrariesareoptional,buttheyarenecessaryforIA64customactionsupportIfyouwanttobeabletobuildoptimizedIA64binaries,you'llneedboththeWindowsSDKforWindowsServer2008and.NETFramework3.5SDKANDVisualStudio2008installed;ortheMicrosoftWindows7SDKANDVisualStudio2010.

HTMLHelpSDK1.4orhigher[installedtoProgramFilesorProgramFiles(x86)]

TobuildSconceandVotive,youmusthavethefollowingSDKsinstalled:

VisualStudio2005SDKVersion4.0VisualStudio2008SDK

MoreinformationabouttheVisualStudioSDKcanbefoundattheVisualStudioExtensibilityCenter.

ToinstallVotiveonVisualStudio2005,2008,or2010,youmusthavetheStandardEditionorhigher.

TosuccessfullybuildWiXwithonlyWindowsServer2008and.NETFramework3.5SDK(withoutVisualStudio2008),youneedtomodifyyourNAnt.exe.configfiletosupporttheWindowsServer2008and.NETFramework3.5SDK.

<readregistryproperty="sdkInstallRoot"key="SOFTWARE\Microsoft\MicrosoftSDKs\Windows\v6.0a\WinSDKNetFxTools\InstallationFolder"hive="LocalMachine"failonerror="false"/>

Replacethiswiththefollowingelement:

<readregistryproperty="sdkInstallRoot"key="SOFTWARE\Microsoft\MicrosoftSDKs\Windows\v6.1\WinSDKNetFxTools\InstallationFolder"hive="LocalMachine"failonerror="false"/>

Notetheonlydifferenceisthatthe"v6.0a"changedto"v6.1"inthe"key"attribute.

TosuccessfullybuildWiXwithonlytheMicrosoftWindows7SDKand/orVisualStudio2010,youneedtomodifyyourNAnt.exe.configfiletosupporteitherandthe.NETFramework4.0.SeeNAntConfigurationforanexample.

TobuildDTFhelpfiles,youneedthefollowingtools:

SandcastleJanuary2008ReleaseSandcastleHelpFileBuilder1.6.0.4

TheDTFhelpbuildlooksfortheminan"external"directoryparalleltotheWiX"src"directory:

SandcastleJanuary2008Release:external\SandcastleSandcastleHelpFileBuilder1.6.0.4:external\SandcastleBuilder

NAntConfiguration

Microsoft.NETFramework4.0SupportInordertobuildWiXusingNAntwithonlyMicrosoftVisualStudio2010andthe.NETFramework4.0,youneedtoaddthefollowingtothelistofframeworkssupportedbyNAnt.

<frameworkname="net-4.0"family="net"version="4.0"description="Microsoft.NETFramework4.0"sdkdirectory="${path::combine(sdkInstallRoot,'bin')}"frameworkdirectory="${installRoot}"frameworkassemblydirectory="${installRoot}"clrversion="4.0"><!--${installVersion}--><runtime><probing-paths><directoryname="lib/net/4.0"/><directoryname="lib/net/neutral"/><directoryname="lib/common/4.0"/><directoryname="lib/common/neutral"/></probing-paths><modes><strict><environment><variablename="COMPLUS_VERSION"value="v${installVersion}"/></environment></strict></modes></runtime><reference-assembliesbasedir="${path::combine(installRoot,'v'+${installVersion})}"><includename="Accessibility.dll"/><includename="mscorlib.dll"/><includename="Microsoft.Build.Utilities.dll"/><includename="Microsoft.Vsa.dll"/><includename="Microsoft.VisualBasic.dll"/><includename="Microsoft.VisualBasic.Compatibility.dll"/><includename="Microsoft.VisualBasic.Compatibility.Data.dll"/><includename="System.Configuration.dll"/><includename="System.Configuration.Install.dll"/>

<includename="System.Data.dll"/><includename="System.Data.OracleClient.dll"/><includename="System.Data.SqlXml.dll"/><includename="System.Deployment.dll"/><includename="System.Design.dll"/><includename="System.DirectoryServices.dll"/><includename="System.dll"/><includename="System.Drawing.Design.dll"/><includename="System.Drawing.dll"/><includename="System.EnterpriseServices.dll"/><includename="System.Management.dll"/><includename="System.Messaging.dll"/><includename="System.Runtime.Remoting.dll"/><includename="System.Runtime.Serialization.Formatters.Soap.dll"/><includename="System.Security.dll"/><includename="System.ServiceProcess.dll"/><includename="System.Transactions.dll"/><includename="System.Web.dll"/><includename="System.Web.Mobile.dll"/><includename="System.Web.RegularExpressions.dll"/><includename="System.Web.Services.dll"/><includename="System.Windows.Forms.dll"/><includename="System.Xml.dll"/><includename="Microsoft.Build.Engine.dll"/><includename="Microsoft.Build.Framework.dll"/><includename="System.AddIn.Contract.dll"/><includename="System.AddIn.dll"/><includename="System.Core.dll"/><includename="System.Data.DataSetExtensions.dll"/><includename="System.Data.Linq.dll"/><includename="System.DirectoryServices.AccountManagement.dll"/><includename="System.Management.Instrumentation.dll"/><includename="System.Net.dll"/><includename="System.ServiceModel.Web.dll"/><includename="System.Web.Extensions.Design.dll"/><includename="System.Web.Extensions.dll"/><includename="System.Windows.Presentation.dll"/><includename="System.WorkflowServices.dll"/><includename="System.Xml.Linq.dll"/>

<includename="System.IdentityModel.dll"/><includename="System.IdentityModel.Selectors.dll"/><includename="System.IO.Log.dll"/><includename="System.Printing.dll"/><includename="System.Runtime.Serialization.dll"/><includename="System.ServiceModel.dll"/><includename="System.Speech.dll"/><includename="System.Workflow.Activities.dll"/><includename="System.Workflow.ComponentModel.dll"/><includename="System.Workflow.Runtime.dll"/><includename="WindowsBase.dll"/></reference-assemblies><task-assemblies><!--includeMS.NETversion-neutralassemblies--><includename="extensions/net/neutral/**/*.dll"/><!--includeMS.NET4.0specificassemblies--><includename="extensions/net/4.0/**/*.dll"/><!--includeMS.NETspecifictaskassembly--><includename="NAnt.MSNetTasks.dll"/><!--includeMS.NETspecifictestassembly--><includename="NAnt.MSNet.Tests.dll"/><!--include.NET4.0specificassemblies--><includename="extensions/common/4.0/**/*.dll"/></task-assemblies><tool-paths><directoryname="${path::combine(sdkInstallRoot,'bin')}"if="${property::exists('sdkInstallRoot')}"/><directoryname="${installRoot}"/></tool-paths><project><readregistryproperty="installRoot"key="SOFTWARE\Microsoft\NETFrameworkSetup\NDP\v4\Client\InstallPath"hive="LocalMachine"/><readregistryproperty="installVersion"key="SOFTWARE\Microsoft\NETFrameworkSetup\NDP\v4\Client\Version"hive="LocalMachine"/><readregistryproperty="sdkInstallRoot"key="SOFTWARE\Microsoft\MicrosoftSDKs\Windows\v7.0\WinSDK\InstallationFolder"hive="LocalMachine"failonerror="false"/><readregistryproperty="sdkInstallRoot"unless="${property::exists('sdkInstallRoot')}"key="SOFTWARE\Microsoft\MicrosoftSDKs\Windows\v7.0A\InstallationFolder"hive="LocalMachine"failonerror="false"/></project><tasks><taskname="csc"><attributename="supportsnowarnlist">true</attribute><attributename="supportswarnaserrorlist">true</attribute><attributename="supportskeycontainer">true</attribute>

<attributename="supportskeyfile">true</attribute><attributename="supportsdelaysign">true</attribute><attributename="supportsplatform">true</attribute><attributename="supportslangversion">true</attribute></task><taskname="vbc"><attributename="supportsdocgeneration">true</attribute><attributename="supportsnostdlib">true</attribute><attributename="supportsnowarnlist">true</attribute><attributename="supportskeycontainer">true</attribute><attributename="supportskeyfile">true</attribute><attributename="supportsdelaysign">true</attribute><attributename="supportsplatform">true</attribute><attributename="supportswarnaserrorlist">true</attribute></task><taskname="jsc"><attributename="supportsplatform">true</attribute></task><taskname="vjc"><attributename="supportsnowarnlist">true</attribute><attributename="supportskeycontainer">true</attribute><attributename="supportskeyfile">true</attribute><attributename="supportsdelaysign">true</attribute></task><taskname="resgen"><attributename="supportsassemblyreferences">true</attribute><attributename="supportsexternalfilereferences">true</attribute></task><taskname="delay-sign"><attributename="exename">sn</attribute></task><taskname="license"><attributename="exename">lc</attribute><attributename="supportsassemblyreferences">true</attribute></task></tasks></framework>

NAntConventions

BuildFileFormatInordertopromoteconsitencyandreadability,the.buildfileswillbelaidoutinthefollowingway.<TODOJRock:addtherestofthecontent>

Properties

Prefixes

Sincepropertiesdefinedina.buildfilearevisibletoother.buildfilesthatuse<include>,eachproject's.buildfileshouldusethefilenameforitsprefixonproperties.Forexample,thecandle.buildprojectshouldusetheprefix'candle.'beforeanylocalproperties.Globalproperties(thosethatappearinthewix.includefile)donothaveaprefix.

DevelopingforVotiveIfyouwanttocontributecodetotheVotiveprojectordebugVotive,youmustdownloadandinstalltheVisualStudio2005SDK,availableattheVisualStudioExtensibilityDeveloperCenter.TheVisualStudio2005SDKisnon-invasiveandwillcreateanexperimentalhiveintheregistrythatwillleaveyourretailversionofVisualStudio2005unaffected.

TostartdebuggingVotive,setyourbreakpointsthenpressF5intheWix.slnforVisualStudio.ThecustombuildactionsintheVotiveprojectwillsetupandregisterVotiveintheexperimentalhive,sorunningWix3.msiisnotrequired,norsuggested.

AddingtotheWiXDocumentationWiXdocumentationiscompiledintothefileWiX.chmasapartoftheWiXbuildprocess.Thesourcefilesforhelparelocatedinthewix\src\chmdirectory.

WhattheWiXhelpcompilerdoesTheWiXhelpcompilerdoesthefollowing:

ParsesthefileTOC.xmltodeterminethetableofcontentstoconstructintheCHMfileanddeterminewhatHTMLfilestoincludeintheCHMfile.Includesallthe.htmfileslistedintheprojectfileinthelistofdocumentationtobuildintotheCHMParses.xsdschemafilesreferencedinTOC.xmlandgenerateshelptopicsfortheattributesandelementsthatareannotatedinthe.xsdfiles.

HowtoaddanewtopictoWiX.chmAddinganewtopictoWiX.chmrequiresthefollowingsteps:

AddanewHTMLfilewiththecontentsofthenewtopictotheWiXsourcetreeundersrc\chm\html.AddanentryforthenewHTMLtothesrc\chm\chm.projfile.Addanyrelevantimagestothesrc\chm\imgs\sub-directoryintheWiXsourcetree.Addanentryforthenewimagestothesrc\chm\chm.projfile.AddareferencetothenewHTMLfiletoTOC.xmlinthedesiredlocationinthetableofcontents.

HelptopicsmaycontainlinkstoexternalWebpages,andmayalsocontainrelativelinkstootherhelptopicsorattributesorelementsdefinedinoneofthe.xsdschemafiles.

Tobuildthenewcontenttypemsbuildfromthecommandlineinthesrc\chmdirectory.

TestingWiXThissectioncontainsdocumentsonhowtocreateandexecutetestsfortheWindowsInstallerXMLToolset.

RunningTestsWritingTests

RunningWiXTestsThereisasuiteofteststhatareincludedwithWiX.Theycanbeusedtoverifythatchangestothetoolsetdonotregressexistingfunctionality.

BuildingtheTestsThetestswillbuildaspartofthenormalWiXbuild.TheyhaveadependencyonMicrosoft.VisualStudio.QualityTools.UnitTestFramework9.0.0.0assemblythatshipswiththefollowingeditionsofVisualStudio:

VisualStudio2008ProfessionalEditionVisualStudioTeamSystem2008DatabaseEditionVisualStudioTeamSystem2008DevelopmentEditionVisualStudioTeamSystem2008TeamSuiteVisualStudioTeamSystem2008TestEdition

Thebuildsystemsearchestheregistrytodetectifoneoftheabovementionededitionsisinstalledonthemachine.IfthedetectionkeycannotbefoundthenthetestswillnotbuildfromNantbuttheycanstillbebuiltbyMSBuildiftherequiredUnitTestFrameworkassemblyexists.

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

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

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

DevelopingWiXExtensionsThissectioncoversthefollowingtopicsfordeveloperswhowanttocreatetheirownWiXextensions:

IntroductiontoDevelopingWiXExtensionsCreatingaSkeletonExtensionCreatingaPreprocessorExtension

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:

PreprocessorExtensionsallowclientstomodifyauthoringfilesbeforetheyareprocessedbythecompiler.CompilerExtensionsallowclientstocustomcompileauthoredXMLintointernaltablerepresentationbeforeitiswrittentobinaryform.BinderExtensionsallowclientstomodifythebehavioroftheBinder.DecompilerExtensionsallowclientstodecompilecustomtablesintoXML.ValidatorExtensionsallowclientstoprocessvalidationmessages.Bydefault,validationmessagesareoutputtotheconsole.MutatorExtensionsallowclientstomodifythebehavioroftheMutator.HarvesterExtensionsallowclientstomodifythebehavioroftheHarvester.UnbinderExtensionsallowclientstomodifythebehavioroftheUnbinder.

ForinformationonhowtouseWiXextensionsonthecommandlineorinsidetheVisualStudioIDE,pleasevisittheUsingWiXextensionstopic.

ForinformationonhowtouselocalizedWiXextensions,pleasevisittheLocalizedextensionstopic.

CreatingaSkeletonWiXExtensionWiXextensionsareusedtoextendandcustomizewhatWiXbuildsandhowitbuildsit.

ThefirststepincreatingaWiXextensionistocreateaclassthatextendstheWixExtensionclass.Thisclasswillbethecontainerforalltheextensionsyouplanonimplementing.Thiscanbedonebyusingthefollowingsteps:

1. InVisualStudio,createanewC#library(.dll)projectnamedSampleWixExtension.

2. Addareferencetowix.dlltoyourproject.3. Addausingstatementthatreferstothe

Microsoft.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='MicrosoftCorporation'><PackageDescription='MyfirstWindowsInstallerpackage'Comments='ThisismyfirstattemptatcreatingaWindowsInstallerdatabase'Manufacturer='MicrosoftCorporation'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.wxsC:\test>lightproduct.wixobjca.wixobj–outproduct.msiC:\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

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="[INSTALLLOCATION]"Operator="equal"/></Fragment>

Whenthetestruns,LuxcomparesthevalueoftheSIMPLEpropertyagainstthe(formatted)value[INSTALLLOCATION].Ifthetwomatch(becausetheoperatoris"equal"),thetestpasses.LegalvaluesoftheOperatorattributeare:

equal(Default)ComparesPropertytoValueandsucceedsiftheyareequal.

notEqualComparesPropertytoValueandsucceedsiftheyareNOTequal.

caseInsensitiveEqualComparesPropertytoValueandsucceedsiftheyareequal(ignoringcase).

caseInsensitiveNotEqualComparesPropertytoValueandsucceedsiftheyareNOTequal(ignoringcase).

TestconditionsConditionsletyouvalidatecodepathsinyourcustomaction.Forexample,ifyourcustomactionbehavesdifferentlyonWindowsXPthanitdoesonWindowsVistaandlater,youcancreatetwotestswithmutuallyexclusiveconditions:

<Fragment><lux:UnitTestCustomAction="TestCustomActionSimple"Property="SIMPLE"Value="[INSTALLLOCATION]"><lux:Condition><![CDATA[VersionNT<600]]></lux:Condition></lux:UnitTest><lux:UnitTestCustomAction="TestCustomActionSimple"Property="SIMPLE"Value="[INSTALLLOCATION]"><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="[INSTALLLOCATION]"><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="[INSTALLLOCATION]"/><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:Microsoft(R)WindowsInstallerXmlUnitTestRunnerversion3.5.1204.0Copyright(C)MicrosoftCorporation.Allrightsreserved.TestluxB21F0D12E0701DBA30FFB92A532A5390passed:Property'SIMPLE'matchedexpectedvalue'[INSTALLLOCATION]'.TestTestConditionBeforeVistapassed:Property'SIMPLE'matchedexpectedvalue'[INSTALLLOCATION]'.TestTestConditionVistaOrLaterpassed:Property'SIMPLE'matchedexpectedvalue'[INSTALLLOCATION]'.TestTestExpressionTruthpassed:Expression'NOTMsiSystemRebootPendingANDSIMPLE'evaluatedtotrue.nit.exe:errorNIT8103:TestluxA6D27EC5903612D7F3786FF71952E314failed:Property'MULTIVALUE'expectedvalue'2'butactualvaluewas'1'.Testlux210257649C16AFA33793F1CDDF575505passed:Property'MULTIVALUE'matchedexpectedvalue'[INSTALLLOCATION]'.nit.exe:errorNIT8103:Testlux402940A90D3ADAD181D599AB8C260FA0failed:Property'MULTIVALUE'expectedvalue'xxxWIXEAST'butactualvaluewas'WIXEAST'.Testlux453EC8DB458A8F66F0D22970CFF2AE99passed:Property'NAMEVALUEPAIRS'matchedexpectedvalue'[INSTALLLOCATION]'.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.

top related