Windows Installer XML (WiX) HelpWindows Installer XML, or WiX, provides a schema that describes a...

1267
Windows Installer XML (WiX) v3.0 Help This documentation contains information about the Windows Installer XML (WiX) toolset. See the following topics for more detailed information: Introduction About WiX Using WiX on the Command Line Using WiX in Visual Studio Using WiX with MSBuild Using WiX with NAnt How To Guides WiX Schema Reference Advanced WiX Topics Developing for WiX Additional Resources

Transcript of Windows Installer XML (WiX) HelpWindows Installer XML, or WiX, provides a schema that describes a...

WindowsInstallerXML(WiX)v3.0HelpThisdocumentationcontainsinformationabouttheWindowsInstallerXML(WiX)toolset.Seethefollowingtopicsformoredetailedinformation:

IntroductionAboutWiXUsingWiXontheCommandLineUsingWiXinVisualStudioUsingWiXwithMSBuildUsingWiXwithNAntHowToGuidesWiXSchemaReferenceAdvancedWiXTopicsDevelopingforWiXAdditionalResources

IntroductiontoWindowsInstallerXML(WiX)toolset

WhatisWiX?WiXisasetoftoolsandspecificationsthatallowyoutoeasilycreateWindowsInstallerdatabasefiles.TheWiXtoolsmodelthetraditionalcompileandlinkmodelusedtocreateexecutablesfromsourcecode.ForWiX,sourcecodeiswritteninXMLfiles.Thesefilesarevalidatedagainstaschema,wix.xsd,thenprocessedbyapreprocessor,compiler,andlinkertocreatethedesiredresult.WiXhasbeendesignedtoallowfortheeasycreationofmultipleWindowsInstallerdatabasesfromasmallsetofsourcefiles.YoucanuseWiXbothonthecommandlineandintheVisualStudiodevelopmentenvironment.

AdditionalResourcesGettingStartedLearningWiX

AboutWiXWindowsInstallerXML,orWiX,providesaschemathatdescribesaWindowsInstallerdatabase(MSIorMSM),aswellastoolstoconverttheXMLdescriptionfilesintoausabledatabase.TheWiXtoolsmodelthetraditionalcompileandlinkmodelusedtocreateexecutablesfromsourcecode.ThissectionprovidesanintroductiononthetoolsandconceptsaswellasanoverviewofthefiletypesinWiX.

Note:ThisdocumentassumesyouhaveaworkingknowledgeoftheWindowsInstallerdatabaseformat.

FileTypesToolsandConcepts

FileTypesTherearemanyfiletypesinWiXthataregeneratedfromdifferenttoolsinthetoolset.Atthehighestlevel,allinputfilesandintermediatefilesforWiXareXMLfiles.TheoutputisintheformofstandardWindowsInstallerdatabasefiles.

Sourcefiles(.wxsand.wxi)arecompiled,producingobjectfiles(.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>.

.wixobj WiXObjectFile

A.wixobjfileiscreatedbythecompilerforeachsourcefilecompiled.The.wixobjfilecontainsoneormoresectionsthat,inturn,containsymbolsandreferencestoothersymbols.

.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.Formoreinformationon.msifiles,seetheWindowsInstallerdocumentation.

.msm WindowsInstallerMergeModule

Amergemodulefile(.msm)isusedtosharesetuplogicacrossdifferent.msipackages.Amergemodulecanbecreatedbyonedevelopmentteam,thenmergedintoanotherdevelopmentteam's.msipackage.Formoreinformationon.msmfiles,seetheWindowsInstallerdocumentation.

.mst WindowsInstallerTransform

Atransformfile(.mst)isusedtoapplychangestoan.msifile.Formoreinformationon.mstfiles,seetheWindowsInstallerdocumentation.

.pcp WindowsInstallerPatchCreationProcess

Apatchcreationpropertiesfile(.pcp)isusedasaninputtothepatchbuildingtoolsprovidedintheWindowsInstallerSDK.Formoreinformationon.pcpfiles,seetheWindowsInstallerdocumentation.

AdditionalInformation

WindowsInstallerXMLFiles-.wxs&.wixobj

A.wxsfileisusedbyallsourcefilesintheWindowsInstallerXMLsystem.These.wxsfilesareanalogousto.cppfilesforC++or.csfilesforC#.The.wxsfilesarepreprocessedandthencompiledintoWiXobjectfiles,whichusetheextension.wixobj.Whenallofthesourcefileshavebeencompiledintoobjectfiles,thelinkerisusedtocollecttheobjectfilestogetherandcreateaWindowsInstallerdatabase.Moredetailsonthecompilerandlinkerareprovidedlaterinthistopic.

Structureof.wxsfilesAll.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>elementsthat

builduptheDirectorytable.Mostelementscontainan“Id”attributethatwillactastheprimarykeyfortheresultingrowintheWindowsInstallerdatabase.Inmostcases,the“Id”attributealsodefinesasymbolwhenthesourcefileiscompiledintoanobjectfile.

Symbolsandreferences

Everysymbolinanobjectfileiscomposedoftheelementnameplustheuniqueidentifierfromthe“Id”attribute.Symbolsareimportantbecausetheycanbereferencedbyothersectionsfromanysourcefile.Forexample,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,thelinkerwillnotonlyprocessthesymbolsandreferencesbutalsouseandupdatetherawdatafromthe.wixobjfile.Itisinterestingtonotethattheobjectfileschema,objects.xsd,usescamelcasingwherethesourcefileschema,wix.xsd,usesPascalcasing.Thiswasaconsciouschoicetoindicatethattheobjectfilesarenotintendedtobeeditedbytheuser.Infact,allschemasthatdefinedatatobeprocessedonlybytheWiXtoolsusecamelcasing.

ToolsandConceptsThissectionexplorestheconceptsofthepreprocessor,compiler,andlinker.Inaddition,itprovidesacompletelistoftoolsthatWiXoffers.ListoftoolsPreprocessorCompiler(Candle)Linker(Light)LibraryTool(Lit)Harvester(Heat)Decompiler(Dark)WixCop

DiagramBelowisadiagramshowingtherelationshipofalloftheWiXtoolsandtheoutputthattheygenerate.

ListofToolsName Description

Candle PreprocessesandcompilesWiXsourcefilesintoobjectfiles(.wixobj).

Light Linksandbindsoneormore.wixobjfilesandcreatesaWindowsInstallerdatabase(.msior.msm).Whennecessary,LightwillalsocreatecabinetsandembedstreamsintotheWindowsInstallerdatabaseitcreates.

Lit Combinesmultiple.wixobjfilesintolibrariesthatcanbeconsumedbyLight.

Dark ConvertsaWindowsInstallerdatabaseintoasetofWiXsourcefiles.

Heat GeneratesWiXauthoringfromvariousinputformats.

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.

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

-nologo-wx

1.wxs

2.wxs3.wxs

andissueacommandlike:

[email protected]

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

Preprocessor

IntroductionOftenyouwillneedtoadddifferentpiecesofyoursetupduringbuildtimedependingonmanyfactorssuchastheSKUbeingbuilt.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?>.WhenthisoccursthepreprocessorwillcreateaprivatecopyofthevariablecontextsetthevariableintheforeachstatementtoaniterationonthesemicolondelimitedlistgenerateafragmentwiththevariablesubstitutedTheeffectofthisprocessisthatthefragmentisusedasatemplatebythepreprocessorinordertogenerateaseriesoffragments.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.ThispartoftheprocessingtypicallyendsupgeneratingadditionalrowsthatgetaddedassociatedwiththeentrysectiontoensuretheyareincludedinthefinalWindowsInstallerdatabase.

Finally,lightworksthroughthemechanicsofgeneratingIDTfilesandimportingthemintotheWindowsInstallerdatabase.Afterthedatabaseisfullycreated,thefinalpostprocessingisdonetomergeinanyMergeModulesandcreateacabinetifnecessary.TheresultisafullyfunctionalWindowsInstallerdatabase.

UsageInformationlight.exe[-?][-bbasePath][-nologo][-outoutputFile]objectFile[objectFile...]

Lightsupportsthefollowingcommandlineparameters:

Switch Meaning

-ai Allowidenticalrows;identicalrowswillbetreatedasawarning

-au Allowunresolvedreferences;thiswillcauseinvalidoutputtobecreated

-b Specifyabasepathtolocateallfiles;thedefaultvalueisthecurrentworkingdirectory

-bf Bindfilesintoawixout;thisswitchisonlyvalidwhenalsoprovidingthe-xooption

-cc Specifyapathtocachebuiltcabinetfiles;thepathwillnotbedeletedafterlinking

-ct<N> Specifythenumberofthreadstousewhencreatingcabinets;thedefaultisthe%NUMBER_OF_PROCESSORS%environmentvariable

-cultures:<cultures>

Specifiesasemicolonorcommadelimitedlistoflocalizedstringculturestoloadfrom.wxlfilesandlibraries.Precedenceofculturesisfromlefttoright.FormoreinformationseeSpecifyingculturestobuild.

-cub Providea.cubfilecontainingadditionalinternal

consistencyevaluators(ICEs)torun

-d<name>=<value>

DefineaWiXvariable

-ext Specifyanextensionassembly

-fv AddaFileVersionattributetoeachassemblyintheMsiAssemblyNametable(rarelyneeded)

-loc<loc.wxl>

Providea.wxlfiletoreadlocalizationstringsfrom

-nologo SkipprintingLightlogoinformation

-notidy PreventLightfromdeletingtemporaryfilesafterlinkingiscomplete(usefulfordebugging)

-out Specifyanoutputfile;bydefault,Lightwillwritetothecurrentworkingdirectory

-pedantic Displaypedanticoutputmessages

-reusecab Reusecabinetsfromthecabinetcacheinsteadofrebuildingcabinets

-sa Suppressassemblies:donotgetassemblynameinformationforassemblies

-sacl SuppressresettingACLs(usefulwhenlayingoutanimagetoanetworkshare)

-sadmin SuppressaddingdefaultAdminsequenceactions

-sadv SuppressaddingdefaultAdvtsequenceactions

-sdut Suppressdroppingunrealtablestotheoutputimage;thisswitchissetbydefaultwhenthe-xoswitchisprovided

-sice:<ICE> Suppressrunninginternalconsistencyevaluators(ICEs)withspecificIDs

-sma SuppressprocessingthedataintheMsiAssemblytable

-sf Suppressfiles:donotgetanyfileinformation;thisswitchisequivalenttothecombinationofthe-saand-shswitches

-sh Suppressfileinformation:donotgethash,version,languageandotherfileproperties

-sl Suppresslayoutcreation

-ss Suppressschemavalidationfordocuments;thisswitchprovidesaperformanceboostduringlinking

-sui SuppressaddingdefaultUIsequenceactions

-sv Suppressintermediatefileversionmismatchchecking

-sval SuppressMSI/MSMvalidation

-sw<N> SuppresswarningswithspecificmessageIDs

-ts TagsectionIdattributeonrows;thisswitchissetbydefaultwhenthe-xoswitchisprovided

-tsa TagsectionIdattributeonrowsandgeneratetherowswhennull;thisswitchissetbydefaultwhenthe-xoswitch

isprovided

-usf<output.xml>

Specifyanunreferencedsymbolsfile

-v Generateverboseoutput

-wx Treatwarningsaserrors

-xo GenerateXMLoutputinsteadofanMSI

-? DisplayLighthelpinformation

BinderVariables

StandardBinderVariables

Somepropertiesarenotavailableuntilthelinkerisabouttogenerate,orbind,thefinaloutput.Thesevariablesarecalledbindervariablesandsupportedbindervariablesarelistedbelow.

AllVersionedFiles

Thefollowingstandardbindervariablesareavailableforallversionedbinaries.

Variablename Exampleusage Examplevalue

bind.fileLanguage.FileID !(bind.fileLanguage.MyFile) 1033

bind.fileVersion.FileID !(bind.fileVersion.MyFile) 1.0.0.0

Assemblies

Thefollowingstandardbindervariablesareavailableforallmanagedandnativeassemblies(exceptwherenoted),wheretheFile/@Assemblyattributeissetto".net"or"win32".

Variablename Exampleusage

bind.assemblyCulture.FileID(managedonly)

!(bind.assemblyCulture.MyAssembly)

bind.assemblyFileVersion.FileID !(bind.assemblyFileVersion.MyAssembly)

bind.assemblyFullName.FileID !(bind.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,likevaryingthetargetprocessorarchitecture.

LibraryTool(lit)LitistheWiXlibrarycreationtool.Itcanbeusedtocombinemultiple.wixobjfilesintolibrariesthatcanbeconsumedbylight.

UsageInformationlit.exe[-?][-nologo][-outlibraryFile]objectFile[objectFile...]

Litsupportsthefollowingcommandlineparameters:

Switch Meaning

-b Specifyabasepathtolocateallfiles;thedefaultvalueisthecurrentworkingdirectory

-bf Bindfilesintothelibraryfile

-ext Specifyanextensionassembly

-loc<loc.wxl>

Providea.wxlfiletoreadlocalizationstringsfrom

-nologo SkipprintingLitlogoinformation

-out Specifyanoutputfile;bydefault,Litwillwritetothecurrentworkingdirectory

-ss Suppressschemavalidationfordocuments;thisswitchprovidesaperformanceboostduringlinking

-sv Suppressintermediatefileversionmismatchchecking

-sw<N> SuppresswarningswithspecificmessageIDs

-v Generateverboseoutput

-wx Treatwarningsaserrors

-? DisplayLithelpinformation

DarkDarkisatoolforconvertingaWindowsInstallerdatabase(.msi,.msm,.msp,.mst,.pcp)intoaWiXsourcefile.ThistoolisveryusefulforgettingallyourauthoringintoaWiXsourcefilewhenyouhaveanexistingWindowsInstallerdatabase.However,youwillthenneedtotweakthisfiletoaccomodatedifferentlanguagesandbreakingthingsintofragments.

HeatGeneratesWiXauthoringfromvariousinputformats.

Everytimeheatisrunitregeneratestheoutputfileandanychangesarelost.

UsageInformationheat.exe[-?]harvestType<harvesterarguments>-outsourceFile.wxs

Heatsupportstheharvestingtypes:

HarvestType Meaning

dir Harvestadirectory.

file Harvestafile.

project HarvestoutputsofaVisualStudioproject.

website HarvestanIISwebsite.

perf Harvestperformancecountersfromacategory.

Heatsupportsthefollowingcommandlineparameters:

Switch Meaning

-ag Autogeneratecomponentguidsatcompiletime,e.g.setGuid="*".

-gg Generateguidsnow.Allcomponentsaregivenaguidwhenheatisrun.

-g1 Generatecomponentguidswithoutcurlybraces.

-ke Keepemptydirectories.

-nologo Skipprintingheatlogoinformation.

-out Specifyoutputfile(default:writetocurrentdirectory).

-pog:<group> SpecifyoutputgroupofVisualStudioproject,oneof:Binaries,Symbols,Documents,Satellites,Sources,Content.

Binaries-primaryoutputoftheproject,e.g.theassemblyexeordll.Symbols-debugsymbolfiles,e.g.pdb.Documents-documentationfiles.Satellites-thelocalizedresourceassemblies.Sources-sourcefiles.Content-contentfiles.

Thisoptionmayberepeatedformultipleoutputgroups;e.g.-pog:Binaries-pog:Content.

-scom SuppressCOMelements.

-sfrag Suppressgenerationoffragmentsfordirectoriesandcomponents.

-sreg Suppressregistryharvesting.

-suid Suppressuniqueidentifiersforfiles,components,&directories.

-sw<N> SuppressallwarningsoraspecificmessageID,e.g.-sw1011-sw1012.

-swall Suppressallwarnings(deprecated).

-svb6 SuppressVB6COMregistrationentries.WhenregisteringaCOMcomponentcreatedinVB6itadds

registryentriesthatarepartoftheVB6runtimecomponent,recommendforVB6componentstoavoidbreakingtheVB6runtimeonuninstall.

Thefollowingvaluesareexcluded:-CLSID\{D5DE8D20-5BB8-11D1-A1E3-00A0C90F2731}-Typelib\{EA544A21-C82D-11D1-A3E4-00A0C90AEA82}-Typelib\{000204EF-0000-0000-C000-000000000046}-AnyInterfacesthatreferencethesetwotypelibraries

-t:<xsl> TransformharvestedoutputwithXSLfile.

-indent<n> Indentationmultiple(overridesdefaultof4).

-template:<template> Usetemplate,oneof:fragment,module,product.Default:fragment.

-v Verboseoutput.

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

-wxall Treatallwarningsaserrors(deprecated).

-?|-help Displayheathelpinformation.

Commandlineexamples

Harvestadirectory

heatdir-gg-sfrag-template:fragment-outdirectory.wxs".\MyFiles"

Thiswillharvestthesubfolder"MyFiles"asasinglefragmenttothefiledirectory.wxs.Itwillgenerateguidsforallthefilesastheyarefound.

Harvestafile

heatfile-ag-template:fragment-outfile.wxs".\MyFiles\File.dll"

Thiswillharvestthefile"File.dll"asasinglefragmenttothefilefile.wxs.Thecomponentguidwillbesetto"*".

HarvestaVisualStudioproject

heatproject-pog:Binaries-ag-template:fragment-outproject.wxs"MyProject.csproj"

ThiswillharvestthebinaryoutputfilesfromtheVisualStudioproject"MyProject.csproj"asasinglefragmenttothefileproject.wxs.Thecomponentguidwillbesetto"*".

HarvestaWebsite

heatwebsite-template:fragment-outwebsite.wxs"DefaultWebSite"

Thiswillharvestthewebsite"DefaultWebSite"asasinglefragmenttothefilewebsite.wxs.

HarvestaVB6COMcomponent

heatfile-ag-template:fragment-svb6-outvb6file.wxs".\MyFiles\VB6File.dll"

ThiswillharvesttheVB6COMcomponent"VB6File.dll"asasinglefragmenttothefilevb6file.wxsandsuppresstheVB6runtimespecificregistyentries.

Harvestperformancecounters

heatperf"MyCategory"-outperf.wxs

Thiswillharvestalltheperformancecountersfromthecategory"MyCategory".

WixCopWixCopisaWiXv3command-linetoolthatservestwomainpurposes:

ToupgradeWiXauthoringtothecurrentschemaToformatWiXauthoringaccordingtoasetofcommonformatting

WixCop'scommand-linesyntaxis:

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

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

WixCopreturnsthefollowingexitcodes:

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

ThefollowingtabledescribestheswitchesthatWixCopsupports.

WixCopswitch

Description

-? Showhelp.-nologo Don'tshowtheWixCopbanner.-f Fixerrorsencounteredinsourcefiles.Thisswitchtakes

effectonlyforsourcefilesthatarewritable.-s Lookforsourcefilesinsubdirectories.-indent:n Overridesthedefaultnumberofspacesperindentation

level(4)tothenumbernyouspecify.-set1filename

Loadsaprimarysettingsfile(seebelow).Notethattherearenocharactersseparating-set1andthesettingsfilename.

-set2filename

Loadsanalternatesettingsfilethatoverridessomeorallofthesettingsintheprimarysettingsfile.Notethattherearenocharactersseparating-set2andthesettingsfile

name.

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

tryingtosavebackafixedfile.

DeclarationEncodingWrong DisplayedwhentheencodingattributeintheXMLdeclarationisnot'UTF-8'.

DeclarationMissing DisplayedwhentheXMLdeclarationismissingfromthesourcefile.

WhitespacePrecedingCDATAWrong DisplayedwhenthewhitespaceprecedingaCDATAnodeiswrong.

WhitespacePrecedingNodeWrong Displayedwhenthewhitespaceprecedinganodeiswrong.

NotEmptyElement Displayedwhenanelementisnotemptyasitshouldbe.

WhitespaceFollowingCDATAWrong DisplayedwhenthewhitespacefollowingaCDATAnodeiswrong.

WhitespacePrecedingEndElementWrong Displayedwhenthewhitespaceprecedinganendelementiswrong.

XmlnsMissing Displayedwhenthexmlnsattributeismissingfromthedocumentelement.

XmlnsValueWrong Displayedwhenthexmlnsattributeonthedocumentelementiswrong.

CategoryAppDataEmpty DisplayedwhenaCategoryelementhasanemptyAppDataattribute.

COMRegistrationTyper DisplayedwhenaRegistryelementencountersanerrorwhilebeingconvertedtoastrongly-typedWiXCOMelement.

UpgradeVersionRemoveFeaturesEmpty DisplayedwhenanUpgradeVersionelementhasanemptyRemoveFeaturesattribute.

FeatureFollowParentDeprecated DisplayedwhenaFeatureelementcontainsthedeprecatedFollowParentattribute.

RadioButtonMissingValue DisplayedwhenaRadioButtonelementismissingtheValueattribute.

TypeLibDescriptionEmpty DisplayedwhenaTypeLibelementcontainsaDescriptionelementwithanemptystringvalue.

ClassRelativePathMustBeAdvertised DisplayedwhenaRelativePathattributeoccursonanunadvertisedClasselement.

ClassDescriptionEmpty DisplayedwhenaClasselementhasanemptyDescriptionattribute.

ServiceInstallLocalGroupEmpty DisplayedwhenaServiceInstallelementhasanemptyLocalGroupattribute.

ServiceInstallPasswordEmpty DisplayedwhenaServiceInstallelementhasanemptyPasswordattribute.

ShortcutWorkingDirectoryEmpty DisplayedwhenaShortcutelementhasanemptyWorkingDirectoryattribute.

IniFileValueEmpty DisplayedwhenaIniFileelementhasanemptyValueattribute.

FileSearchNamesCombined DisplayedwhenaFileSearchelementhasaNameattribute

thatcontainsboththeshortandlongversionsofthefilename.

WebApplicationExtensionIdDeprecated DisplayedwhenaWebApplicationExtensionelementhasadeprecatedIdattribute.

WebApplicationExtensionIdEmpty DisplayedwhenaWebApplicationExtensionelementhasanemptyIdattribute.

PropertyValueEmpty DisplayedwhenaPropertyelementhasanemptyValueattribute.

ControlCheckBoxValueEmpty DisplayedwhenaControlelementhasanemptyCheckBoxValueattribute.

RadioGroupDeprecated DisplayedwhenadeprecatedRadioGroupelementisfound.

ProgressTextTemplateEmpty DisplayedwhenaProgresselementhasanemptyTextTemplateattribute.

RegistrySearchTypeRegistryDeprecated DisplayedwhenaRegistrySearchelementhasaTypeattributesetto'registry'.

WebFilterLoadOrderIncorrect DisplayedwhenaWebFilter/@LoadOrderattributehasavaluethatisnotmorestonglytyped.

SrcIsDeprecated Displayedwhenanelementcontainsadeprecatedsrcattribute.

RequireComponentGuid DisplayedwhenaComponentelementis

missingtherequiredGuidattribute.

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

FileRedundantNames DisplayedwhenaFile/@NamematchesaFile/@ShortName.

UsingWiXonthecommandlineWiXcancreateWindowsInstallerdatabaseswhichinclude:WindowsInstallerpackages(.msifiles),andmergemodules(.msmfiles).We'llstartbycreatingaWindowsInstallerpackagesothatyou'llhavesomethingthatyoucaninstallanduninstallquickly.Then,we'llcreateamergemoduleandmergeitintoourexampleWindowsInstallerpackage.

Authoringyourfirst.wxsfileCreatingMergeModulesMSITablestoWiXSchema

Authoringyourfirst.wxsfileThegoalofthistutorialistohelpyoutogetfamiliarwithWiXandthefundmentalbuildingblocksinordertobuildasimpleinstallable.msipackageusingWiX.WewillstartwiththebasicWiXcodetocreatean.msipackagethatinstallsonefile.

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

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

</Wix>

Thatformstheouterskeletonforoursourcefile.Youcanpassthisemptysourcefiletocandle.exeandgetoutanemptyobjectfile.Tellyouwhat,let'sdothat.Followthefollowingstepsandyoushouldseeverysimilaroutput:

C:\test>candleproduct.wxs

Microsoft(R)WindowsInstallerXmlCompilerversion1.0.1220.15022

Copyright(C)MicrosoftCorporation2003.Allrightsreserved

C:\test>typeproduct.wixobj

<?xmlversion="1.0"encoding="utf-8"?><wixObject

xmlns="http://schemas.microsoft.com/wix/2003/04/objects"

src="C:\test\product.wxs"/>

C:\test>

Noticethatwhenthereisnoerror,Candledoesn'tprintanytextotherthanitsheader.Infact,youcanevensuppresstheheaderoutputbyspecifying"-nologo"onthecommandline.Inthatcase,Candlewillprintnothingunlessthereisafailure.

Okay,nowthatwe'veseenanemptysourcefilecreateanemptyobjectfile,let'screateaninstallableWindowsInstallerpackage.Addthefollowingcontenttoyourproduct.wxsfile:p>

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

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.

Solet'scompile,link,andinstall,thentakealookattheregisteredpackagesforour.msiusingthefollowinginstructions:

Note:This.msirequiresadministrativeprivilegesinordertoinstallcorrectly.ItwillsilentlyfailifyouarenotinstallingasanAdministrator.

C:\test>candleproduct.wxs

Microsoft(R)WindowsInstallerXmlCompilerversion1.0.1220.15022

Copyright(C)MicrosoftCorporation2003.Allrightsreserved

product.wxs

C:\test>lightproduct.wixobj

Microsoft(R)WindowsInstallerXmlLinkerversion1.0.1220.15022

Copyright(C)MicrosoftCorporation2003.Allrightsreserved

C:\test>msiexec/iproduct.msi

YoucannowgotoAdd/RemoveProgramsintheControlPanelandsee

"TestPackage"listedthere.Atthispoint,youshouldgoaheadanduninstallthepackage,soyoudon'tforgetitlater.

Nowthatwehaveanempty.msithatinstallsanduninstallsproperly,let'sactuallyinstallsomething.So,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>

Nowyoucancompile,link,andinstallthe.msiandseethatitcreatesadirectorycalled"TestProgram"inyoursystem's"ProgramFiles"folder.Thefilereadme.txtwillbeinstalledinthe"TestProgram"directory.Afterverifyingthatinstallationworksasexpected,remembertouninstallthe.msisoyoucanrebuilditandinstallanewversionagainlater.

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

CreatingMergeModulesCreatingaMergeModuleisverymuchlikecreatingaWindowsInstallerpackage.So,let'screateanewtextfilecalled"module.wxs"andputthestandardskeletoninit:

<?xmlversion='1.0'?>

<Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'>

</Wix>

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

Youcan,ifyouwish,compileandlinkthatcode.Youwillgetaverysmallandnotveryinteresting.msmfilefromtheoutputoflight.exe.So,let'saddatextfiletothisMergeModuleaswedidtotheWindowsInstallerpackage.First,createatextfilecalledreadme2.txtandputadifferentmessagethanthemessageinreadme1.txttoyourselfinthere.Then,updatethesourcecodetoincludethenewfile:

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

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

IncorporatingaMergeModuleintoa.wxsFileMergeModulescanonlybemergedintoWindowsInstallerpackages.Fortunately,wehavea.wxsfilethatcreatesaWindowsInstallerpackagefromourfirstexperimentswithWiX.So,let'saddthetwolines(yes,onlytwolinesarenecessary)tomergeyournewModule.Openyour"product.wxs"sourcefileagain,andadd:

<?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.Thenexttimeyouinstallthe"product.msi",youshouldseetwotextfilesinthe"TestProgram"directoryinsteadofone.

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.

UsingWiXinVisualStudioTheVisualStudioWiXtoolsetallowsyoutoeasilycreateWiXprojects,editWiXfilesusingIntelliSense,andcompile/linkyourprojectwithintheVisualStudioIDE.

WiXProjectTypesWiXItemtemplatesWiXProjectpropertypagesCreatingasimplesetupAddingProjectreferencesAddingWiXreferences

ProjectTemplates

IntroductionTheWiXVisualStudiopackageprovidesthefollowingVisualStudioprojecttemplates:

WiXProjectWiXLibraryProjectWiXMergeModuleProject

WiXProjectAWiXprojectprovidesastartingpointthatcanbeusedtocreateanewWindowsInstallerpackage(.msi)file.

EachnewWiXprojectincludesa.wxsfilethatconsistsofa<Product>elementthatcontainsaskeletonwiththeWiXauthoringrequiredtocreateafullyfunctionalWindowsInstallerpackage.The<Package>elementincludes<Package>,<Media>,<Directory>,<Component>and<Feature>elements.

WiXLibraryProjectAWiXlibraryprojectprovidesastartingpointthatcanbeusedtocreateanewWiXlibrary(.wixlib)file.A.wixlibfileisalibraryofsetupfunctionalitythatcanbeeasilysharedacrossdifferentWiX-basedpackagesbyincludingitwhenlinkingthesetuppackage.

EachnewWiXlibraryprojectincludesa.wxsfilethatconsistsofanempty<Fragment>elementthatcanbepopulatedwithWiXauthoringthatcanbesharedbymultiplepackages.

WiXMergeModuleProjectAWiXmergemoduleprojectprovidesastartingpointthatcanbeusedtocreateanewWindowsInstallermergemodule(.msm)file.AmergemodulecontainsasetofWindowsInstallerresourcesthatcanbesharedbymultipleWindowsInstallerinstallationpackagesbymergingthecontentsofthemoduleintothe.msipackage.

EachnewWiXmergemoduleprojectincludesa.wxsfilethatconsistsofa<Module>elementthatcontainsaskeletonwiththeWiXauthoringrequiredtocreateafullyfunctionalmergemodule.The<Module>elementincludes<Package>,<Directory>and<Component>elements.

ItemTemplatesWiXVisualStudiopackageprovidesthefollowingitemtemplatesforWiXprojects:

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

FormoreinformationaboutWiXfiletypes,pleasevisittheFileListsection.

Toaddanewitem:

1. Right-clickontheprojectnodeintheSolutionExplorer.2. ChooseAdd|NewItem...andselecttheappropriateitem

template.3. TypeintheitemnameintheNamefieldandpressAdd.

ProjectPropertyPages

IntroductionToaccesstheWiXprojectpropertypages,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(WiXextensionsand.wixlib's)TheIncludePathssectionallowsyoutodefinepathsyouwanttousewhenlocatingWiXIncludefiles

ToolSettingsPropertyPageTheToolSettingstabcontainsthefollowingconfigurableoptions:

TheICEvalidationsectionallowsyoutotoggleICEvalidationsuppressionorspecifywhichICEvalidationtosuppressTheAdditionalparameterssectionallowsyoutospecifycommandlineargumentstopassdirectlytotheWiXtools

CreatingasimplesetupTogetstartedusingWiXinVisualStudio,youcancreateanewWiXprojectintheVisualStudioIDEbyusingthefollowingsteps:

1. ClickFile,thenclickNew,thenclickProject...2. ChoosetheWiXnodeintheProjecttypestree,thenselect

WiXProject,andnameyourproject"MySetup"asdepictedinFigure1.

Figure1.CreateanewWiXproject

ThiswillcreateanewsolutionwiththeMySetupprojectandaMySetup.wxsfile.TheMySetup.wxsfilerequiressomeadditionalinformationbeforeitwillcompilesuccessfully.Solet'stakeamomenttolookattheMySetup.wxsfileanddiscusswhatneedstobedonetoitinordertobeabletobuildanMSI.

AFirstLookattheDefaultMySetup.wxsFileTheMySetup.wxsfilecontainsthebeginningofthesetupcodefortheproject.EverythingneededtocreateanMSIcanbeaddedtothisfile.Tobeginwith,let'slookatthedefaultcontentsprovidedinMySetup.wxs.

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,thestructureoftheMySetup.wxsfileshouldbefamiliar.First,theWixelementexistspurelytowraptherestofthecontentinthefile.TheWixelementalsospecifiesthenamespace,thexmlnsattributethatenablesvalidationduring

compileandauto-completeinVisualStudioviaIntelliSense.Next,theProductelementdefinestherequiredWindowsInstallerpropertiesusedtoidentifytheproduct,suchastheProductCode,ProductName,ProductLanguage,andProductVersion.Third,thePackageelementcontainstheattributesfortheSummaryInformationStreamthatprovidesinformationaboutthesetuppackageitself.Therestoftheelements,excepttheComponentRefelement,maptoWindowsInstallertablesbythesamename,forexampletheMediatable,Directorytable,Componenttable,andFeaturetable.TheComponentRefelementisusedtotietheFeaturestotheirComponentswhichmapstotheentriesintheFeatureComponentstable.

BuildingtheMySetup.wxsFileThedefaultMySetup.wxsthatisgeneratedwhenyoucreateanewWiXprojectwillgeneratesabuildwarning.IntheOutputwindow,youmayseethiswarning:

Thecabinet'InstallPackage.cab'doesnotcontainanyfiles.Ifthisinstallationcontainsnofiles,thiswarningcanlikelybesafelyignored.Otherwise,pleaseaddfilestothecabinetorremoveit.

BecausetheWiXprojectdoesnotyetreferenceanapplication,thereisnothingtoinstall.Nevertheless,aninstallationpackagenamedInstallPackage.msiwasbuiltinthebin/Debugfolder,togetherwithafilethatisnamedInstallPackage.wixpdb,whichcontainsdebugginginformation.RunningtheInstallPackage.msiatthispointdoesalmostnothing.

DoingSomethingUsefulwithMySetup.wxsNowlet'sdosomethingusefulandaddanapplicationtooursolution.Forthisexample,wewillcreateaC#WindowsFormsApplication,butyoucanusewhateverprogramminglanguageyouprefer.

1. ClickFile,thenselectNew,thenselectProject.2. ChoosetheVisualC#nodeintheProjectTypestree,then

selectWindowsFormsApplication.3. Nameyourapplication"MyApplication".4. BesuretochoosetheAddtoSolutionoptionintheSolution

drop-downasdepictedinFigure2.

Figure2.CreatingMyApplicationprojectinthesolution

WeneedtomakesurethattheMyApplicationprojectisbuiltbeforetheMySetupprojectbecausewewillusetheoutputfromtheMyApplicationprojectbuildasaninputintothesetupbuild.Forthepurposesofthisexample,itdoesnotmatterwhattheapplicationdoes,sowewillnotchangethegeneratedapplicationcode.Nomatterwhattheapplication

does,weneedtogetittoinstallviasetup,solet’sreturntotheMySetupprojectandtheMySetup.wxsfiletoaddthisnewapplication.Whilewearethere,let'saddashortcuttotheapplicationtotheinstaller.Tocreatetheappropriateprojectdependencies,right-clickontheReferencesnodeundertheMySetupprojectandchooseAddReference....Inthatdialog,choosetheProjectstab,clickontheMyApplicationproject,andclicktheAddbuttonasdepictedinFigure3.

Figure3.MySetupprojectreferencestheoutputoftheMyApplicationproject

Nowweneedtogetthisapplicationtoinstallviasetup,solet’sreturntotheMySetupprojectandtheMySetup.wxsfiletoaddthisnewapplication.

OpenMySetup.wxsandyouwillseeacommentthatsays:

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

Deletethislineandreplaceitwiththefollowinglinesofcode:

<FileId="MyApplicationFile"Name="$(var.MyApplication.TargetFileName)"Source="$(var.MyApplication.TargetPath)"

DiskId="1"KeyPath="yes"/>

Note:Ifyoutypethatcodeintotheeditor(insteadofcopyingandpastingfromthisexample)youwillnoticethatIntelliSensepicksupthevalidelementsandattributes.IntelliSensewithWiXinVisualStudiocansaveyousignificantamountsoftypingandtimewhensearchingforthenameoftheelementsorattributesasyoubecomemorecomfortablewiththeWiXlanguage.

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

TheDiskIdattributeinstructstheWiXtoolsettoaddthisfiletotheMediaelementwithmatchingIdattribute.Inthisexample,theMyApplicationexecutableisaddedtotheMySetup.cabcabinetandthatcabinetisembeddedinthesetuppackage.TheKeyPathattributeinstructstheWiXtoolsettousethisfileasthekeypathforthecomponentthatcontainsthefile.

Beforebuildingthesolutionagain,weneedtomakesurethattheMyApplicationprojectisbuiltbeforetheMySetupprojectbecausetheoutputfromtheMyApplicationprojectbuildisaninputintothesetupbuild.Tocreatetheappropriateprojectdependencies,right-clickontheReferencesnodeundertheMySetupprojectandchooseAddReference....Inthatdialog,choosetheProjectstab,clickonthe

MyApplicationproject,clicktheAddbutton,andclickOk.

Rebuildingwiththesechangeswillcreateasetuppackagethatcaninstallanduninstallyourapplication.

AddingProjectReferences

IntroductionTheWiXprojectsupportsaddingprojectreferencestootherprojectssuchasVBandC#.Thisensuresthatbuildorderdependenciesaredefinedcorrectlywithinthesolution.Inaddition,itgeneratesasetofWiXpreprocessordefinitionswhicharesetontheCandlecommandlineandcanbereferencedinsourcefiles.

ToaddaprojectreferencetoaWiXproject:

1. Right-clickontheReferencesnodeoftheprojectintheSolutionExplorerandchooseAddReference...

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

OKtodismissthedialog.

ListofSupportedProjectReferencesTheWiXprojectsupportsthefollowingprojectreferencevariables:

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

ExampleThefollowingFileelementdemonstrateshowtouseprojectreferencesinWiXauthoring:

<FileId="MyExecutable"Name="$(var.MyProject.TargetFileName)"Source="$(var.MyProject.TargetPath)"DiskId="1"/>

AddingWiXReferences

IntroductionTheWiXtoolsetsupportsaddingWiXlibraryandextensionDLLreferencestoaWiXproject.ThisallowsthereuseofWiXelements(suchasCustomActionsandProperties)definedinthosereferences.WhenaWiXreferenceisaddedtotheproject,theWiXtoolsetautomaticallyaddsthenecessaryparameterstothecompilerandlinkercommandlinessothatitwillbecorrectlyresolvedwhenbuildingtheproject.

ToaddaWiXlibraryorextensionreferencetoaWiXproject:

1. Right-clickontheReferencesnodeoftheprojectintheSolutionExplorerandchooseAddReference...

2. IntheAddReferencedialog,clickontheBrowsetab.3. Locatethedesired.wixlibfilesand/orWiXextensionsandclick

theAddbutton,thenclickOKtodismissthedialog.

UsingWiXWithMSBuildWiXincludesacompletebuildprocess(.targetsfile)forusewithMSBuild-basedbuildsystems.Formoreinformationseethefollowingtopics.

Creatinga.wixprojfileIntegratingWiXProjectsIntoDailyBuildsBuildingWiXProjectsInTeamFoundationBuildWiXMSBuildTaskReference

Creatinga.wixprojFileTheeasiestwaytocreateanew.wixprojforyourinstalleristoWiXinVisualStudiobecauseitautomaticallygeneratesstandardmsbuildprojectfilesthatcanbebuiltonthecommandlinebysimplytyping:

msbuild<projectfile>.wixproj

IfyoudonothaveVisualStudioavailable,a.wixprojfilecanbecreatedusinganytexteditor.Thefollowingisasample.wixprojfilethatbuildsaninstallerconsistingofasingleproduct.wxsfile:

<ProjectDefaultTargets="Build"xmlns="http://schemas.microsoft.com/developer/msbuild/2003

<PropertyGroup>

<ConfigurationCondition="'$(Configuration)'==''

<PlatformCondition="'$(Platform)'==''">x86</Platform

<ProductVersion>3.0</ProductVersion>

<ProjectGuid>{c523055d-a9d0-4318-ae85-ec934d33204b}</

<SchemaVersion>2.0</SchemaVersion>

<OutputName>WixProject1</OutputName>

<OutputType>Package</OutputType>

<WixTargetsPathCondition="'$(WixTargetsPath)'==''

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

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

downlist.4. EnsurethattheWiXprojectischeckedinthe'Build'column.5. EnsurethatanyprojectreferencesthattheWiXprojectusesare

alsocheckedinthe'Build'column.6. Setthe'Release'configurationastheactiveconfiguration.7. Repeatsteps3-5toensurethattheWiXprojectandits

dependencieswillbuildforthe'Release'configuration.8. Ifyouplantobuildthe'x64'platform,repeatsteps3-7forthe

'x64'platform.9. CloseConfigurationManagerandsavethesolution.

Step2:AddtheBuildConfigurationstoTFSBuild.projNowthatyouhaveaddedtheWiXprojectanditsdependentprojectstothe'x86'and/or'x64'buildconfigurations,TeamFoundationBuildwillbuildyourWiXprojectinthesebuildconfigurations.However,thesebuildconfigurationsmaynotbespecifiedinyourTeamFoundationBuildDefinition(TFSBuild.proj).

WhenyoucreateanewBuildDefinition,youcanselectthe'Debug/MixedPlatforms'and'Release/MixedPlatforms'buildconfigurationstobuildallprojectsinyoursolution,includingWiXprojects.

IfyouhaveanexistingBuildDefinition,youneedtousethefollowingstepstomodifyitsoitwillbuildWiXprojectsalongwiththeotherprojectsinyoursolution.

1. Right-clickontheBuildDefinitionandselectViewConfigurationFolder.

2. CheckoutandopenthefilenamedTFSBuild.proj.3. Addthefollowingbuildconfigurationstothe

<ConfigurationToBuild>sectioniftheydonotalreadyexistthere,orupdatethemiftheydoalreadyexist:

<ConfigurationToBuildInclude="Debug|MixedPlatforms">

<FlavorToBuild>Debug</FlavorToBuild>

<PlatformToBuild>MixedPlatforms</PlatformToBuild>

</ConfigurationToBuild>

<ConfigurationToBuildInclude="Release|MixedPlatforms">

<FlavorToBuild>Release</FlavorToBuild>

<PlatformToBuild>MixedPlatforms</PlatformToBuild>

</ConfigurationToBuild>

4. Close,saveandcheckinthechangestoTFSBuild.proj.

Aftermakingtheabovechangesandqueuingthebuild,youwillseefoldersnamed'Debug'and'Release'inthebuildoutput.Eachofthesefolderswillcontainasub-foldernamed'en-us'(oranotherculturedependingonthesettingsintheWiXproject)thatcontainsthebuilt

WindowsInstallerpackage.

WiXMSBuildTaskReferenceThissectionexplainsMSBuildtasksthatareincludedwiththeWiXtoolset.

CandleTaskLightTaskLitTask

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.

Specifiesthatthecompilershouldsuppressschemavalidationofdocuments.

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,intel,x64,intel64oria64.Thisisequivalenttothe-archswitchincandle.exe.

OnlyValidateDocuments Optionalbooleanparameter.

Specifiesthatthecompilershouldonlyvalidatedocuments.Thisisequivalenttothe-zsswitchincandle.exe.

Pedantic Optionalbooleanparameter.

Specifiesthatthecompilershoulddisplaypedanticmessages.Thisisequivalenttothe-pedanticswitchincandle.exe.

ShowSourceTrace Optionalbooleanparameter.

Specifiesthatthecompilershouldshowsourcetraceinformationforerrors,warningsandverbosemessages.Thisisequivalenttothe-traceswitchincandle.exe.

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.

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

Specifiesthatthelinkershouldsuppressintermediatefileversionmismatchchecking.Thisisequivalenttothe-svswitchinlight.exe.

LinkerSuppressSchemaValidation Optionalbooleanparameter.

Specifiesthatthelinkershouldsuppressschemavalidationofdocuments.Thisisequivalenttothe-ssswitchinlight.exe.

LinkerSuppressSpecificWarnings Optionalstringparameter.

Specifiesthatcertainlinkerwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switchinlight.exe.

LinkerTreatSpecificWarningsAsErrors Optionalstringparameter.

Specifiesthatcertainlinkerwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switchinlight.exe.

LinkerTreatWarningsAsErrors Optionalbooleanparameter.

Specifiesthatalllinkerwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitchinlight.exe.

LinkerVerboseOutput Optionalbooleanparameter.

Specifiesthatthelinkershouldprovideverboseoutput.Thisisequivalent

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

switchinlight.exe.SuppressAclReset Optionalboolean

parameter.

SpecifiesthatthelinkershouldsuppressresettingACLs.Thisisusefulwhenlayingoutanimagetoanetworkshare.Thisisequivalenttothe-saclswitchinlight.exe.

SuppressAssemblies Optionalbooleanparameter.

Specifiesthatthelinkershouldnotgetassemblynameinformationforassemblies.Thisisequivalenttothe-saswitchinlight.exe.

SuppressDefaultAdminSequenceActions Optionalbooleanparameter.

Specifiesthatthelinkershouldsuppressdefaultadminsequenceactions.Thisisequivalenttothe-sadminswitchinlight.exe.

SuppressDefaultAdvSequenceActions Optionalbooleanparameter.

Specifiesthatthelinkershouldsuppressdefaultadvertisedsequenceactions.Thisisequivalenttothe-sadvswitchinlight.exe.

SuppressDefaultUISequenceActions Optionalbooleanparameter.

SpecifiesthatthelinkershouldsuppressdefaultUIsequenceactions.Thisisequivalenttothe-uiswitchinlight.exe.

SuppressFileHashAndInfo Optionalbooleanparameter.

Specifiesthatthelinkershouldsuppressgatheringfileinformation(hash,version,language,etc).Thisisequivalenttothe-shswitchinlight.exe.

SuppressFiles Optionalbooleanparameter.

Specifiesthatthelinkershouldsuppressgatheringallfiledata.ThishasthesameeffectassettingtheSuppressAssembliesadnSuppressFileHashAndInfoparameters.Thisisequivalenttothe-sfswitchinlight.exe.

SuppressIces Optionalstringparameter.

SpecifiesthatthelinkershouldsuppressrunningspecificICEs.Thisisequivalenttothe-sice:<ICE>switchinlight.exe.

SuppressLayout Optionalbooleanparameter.

Specifiesthatthelinkershouldsuppresslayoutcreation.Thisisequivalenttothe-slswitchinlight.exe.

SuppressMsiAssemblyTableProcessing Optionalbooleanparameter.

SpecifiesthatthelinkershouldsuppressprocessingthedataintheMsiAssemblytable.Thisisequivalenttothe-smaswitchinlight.exe.

SuppressPdbOutput Optionalbooleanparameter.

Specifiesthatthelinkershouldsuppressoutputting.wixpdbfiles.Thisisequivalenttothe-spdbswitchinlight.exe.

SuppressValidation Optionalbooleanparameter.

Specifiesthatthelinkershouldsuppress.msiand.msmvalidation.Thisisequivalenttothe-svalswitchinlight.exe.

SuppressTagSectionIdAttributeOnTuples Optionalbooleanparameter.

Specifiesthatthelinkershouldsuppressadding

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

Specifiesthatallwarningsshouldbesuppressed.Thisisequivalenttothe-swswitch.

SuppressIntermediateFileVersionMatching Optionalbooleanparameter.

Specifiesthatthetoolshouldsuppressintermediatefileversionmismatchchecking.Thisisequivalenttothe-svswitch.

SuppressSchemaValidation Optionalbooleanparameter.

Specifiesthatschemavalidationofdocumentsshouldbesuppressed.Thisisequivalenttothe-ssswitch.

SuppressSpecificWarnings Optionalstringparameter.

Specifiesthatcertainwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switch.

TreatSpecificWarningsAsErrors Optionalstringparameter.

Specifiesthatcertainwarningsshouldbe

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

OutputAsXmlparameterisalsoprovided.Thisisequivalenttothe-bfswitchinlit.exe.

LibPedantic Optionalbooleanparameter.

Specifiesthatthelibrarycreationtoolshoulddisplaypedanticmessages.Thisisequivalenttothe-pedanticswitchinlit.exe.

LibSuppressAllWarnings Optionalbooleanparameter.

Specifiesthatalllibrarycreationtoolwarningsshouldbesuppressed.Thisisequivalenttothe-swswitchinlit.exe.

LibSuppressIntermediateFileVersionMatching Optionalbooleanparameter.

Specifiesthatthelibrarycreationtoolshouldsuppressintermediatefileversionmismatchchecking.Thisisequivalenttothe-svswitchinlit.exe.

LibSuppressSchemaValidation Optionalbooleanparameter.

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

Specifiesthatthelibrarycreationtoolshouldprovideverboseoutput.Thisisequivalenttothe-vswitchinlit.exe.

LinkerBaseInputPaths Optionalstringparameter.

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

UsingWiXWithNAntToincludetheNAntbuildtasksinyouNAntprojectincludethefollowingcode:

<!--WiX3folder-->

<propertyname="wix.dir"value="${path::combine(environment::get-variable('WIX'),'bin')}

<!--LoadtheWiX3tasks-->

<loadtasksassembly="${wix.dir}\Microsoft.Tools.WindowsInstallerXml.NAntTasks.dll

Formoreinformationseethefollowingtopics:

CandletaskLighttaskLitTask

WiXNAntTaskReferenceThissectionexplainsMSBuildtasksthatareincludedwiththeWiXtoolset.

CandleTaskLightTaskLitTask

CandleTaskTheCandletaskwrapscandle.exe,theWiXcompiler.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.ThefollowingisasampleshowsatheNAntcodeusedtoruntheCandletask:

<candle

exedir="${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.Thisisequivalenttothe-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:

<light

exedir="${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.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.

ThefollowingtabledescribestheparametersthatarespecifictotheLighttask.

Parameter Descriptioncultures Optionalstringparameter.

Specifiesasemicolon-delimitedlistoflocalizedstringculturesthatthelinkershouldloadfromlibraries.Thisisequivalenttothe-culturesswitchinlight.exe.

localizations OptionalNAntfileset.

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

suppressices Optionalstringparameter.

Specifiesasemicolon-delimitedlistofICEvalidationsthatthelinkershouldsuppressrunning.Thisis

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

<lit

exedir="${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,ShortcutsandRegistryHowTo:AddafiletoyourinstallerHowTo:ChecktheversionnumberofafileduringinstallationHowTo:WritearegistryentryduringinstallationHowTo:ReadaregistryentryduringinstallationHowTo:CreateashortcutontheStartMenuHowTo:CreateashortcuttoawebpageHowTo:CreateanuninstallshortcutHowTo:NGenmanagedassembliesduringinstallationHowTo:ReferenceanotherDirectorySearchelementHowTo:Gettheparentdirectoryofafilesearch

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

UserInterfaceandLocalizationHowTo:BuildalocalizedversionofyourinstallerHowTo:MakeyourinstallerlocalizableHowTo:RuntheinstalledapplicationaftersetupHowTo:Setyourinstaller'siconinAdd/RemovePrograms

UpdatesHowTo:Implementamajorupgradeinyourinstaller

GeneralHowTosHowTo:GetalogofyourinstallationfordebuggingHowTo:LookinsideyourMSIwithOrcaHowTo:GenerateaGUID

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

</Component>

<ComponentId="documentation.html"Guid="PUT-GUID-HERE">

<FileId="documentation.html"Source="MySourceFiles\documentation.html

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

<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

</Component>

<ComponentId="documentation.html"Guid="PUT-GUID-HERE">

<FileId="documentation.html"Source="MySourceFiles\documentation.html

</Component>

</DirectoryRef>

<!--Step3:TellWiXtoinstallthefiles-->

<FeatureId="MainApplication"Title="MainApplication"Level

<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

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

TheidattributeisomittedontheRegistryKeyandRegistryValue

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

</Component>

</DirectoryRef>

The<DirectoryRef>elementisusedtorefertothedirectorystructurecreatedinstep1.ByreferencingtheApplicationProgramsFolderdirectorytheshortcutwillbeinstalledintotheuser'sStartMenuinsidetheMyApplicationNamefolder.

UnderneaththeDirectoryRefisasingleComponenttogrouptheelementsusedtoinstalltheShortcut.ThefirstelementisShortcutanditcreatestheactualshortcutintheStartMenu.TheIdattributeisauniqueidfortheshortcut.TheNameattributeisthetextthatwillbedisplayedintheStartMenu.Thedescriptionisanoptionalattributeforanadditionalapplicationdescription.TheTargetattributepointstotheexecutabletolaunchondisk.NoticehowitusestheAPPLICATIONROOTDIRECTORYpropertypreviouslydefinedinthedirectorystructure.TheWorkingDirectoryattributesetstheworkingdirectoryfortheshortcut.

Tosetanoptionaliconfortheshortcutyouneedtofirstincludetheiconinyourinstallerusingthe<Icon>element,thenreferenceitusingtheIcon

attributeontheShortcutelement.

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

<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

</Component>

<ComponentId="documentation.html"Guid="PUT-GUID-HERE">

<FileId="documentation.html"Source="MySourceFiles\documentation.html

</Component>

</DirectoryRef>

<!--Step2:Addtheshortcuttoyourinstallerpackage-->

<DirectoryRefId="ApplicationProgramsFolder">

<ComponentId="ApplicationShortcut"Guid="PUT-GUID-HERE"

<ShortcutId="ApplicationStartMenuShortcut"

Description="MyApplicationDescription"

Target="[APPLICATIONROOTDIRECTORY]MyApplication.exe

WorkingDirectory="APPLICATIONROOTDIRECTORY

<RemoveFolderId="ApplicationProgramsFolder"On="uninstall

<RegistryValueRoot="HKCU"Key="Software\Microsoft\MyApplicationName

</Component>

</DirectoryRef>

<FeatureId="MainApplication"Title="MainApplication"Level

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

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

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

<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

</Component>

<ComponentId="documentation.html"Guid="PUT-GUID-HERE">

<FileId="documentation.html"Source="MySourceFiles\documentation.html

</Component>

</DirectoryRef>

<DirectoryRefId="ApplicationProgramsFolder">

<ComponentId="ApplicationShortcut"Guid="PUT-GUID-HERE"

<ShortcutId="ApplicationStartMenuShortcut"

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

</Component>

</DirectoryRef>

<FeatureId="MainApplication"Title="MainApplication"Level

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

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

<netfx:NativeImageId="ngen_MyApplication.exe"Platform="32bit

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

<FileSearchId="Ngen_exe"Name="ngen.exe"MinVersion

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

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

Edit<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,anditsDisplayattributeissettohiddentopreventtheuserfromseeingthefeatureinanyUIthatmaybepartof

yourinstaller.

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

</DirectoryRef>

<FeatureId="VCRedist"Title="VisualC++8.0Runtime"AllowAdvertise

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

light.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Component,Column:KeyPath,Key(s):downlevel_manifest.8.0.50727.100.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18E

light.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Component,Column:KeyPath,Key(s):downlevel_manifest.8.0.50727.101.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18E

light.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Component,Column:KeyPath,Key(s):downlevel_manifest.8.0.50727.103.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18E

light.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Component,Column:KeyPath,Key(s):downlevel_manifest.8.0.50727.104.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18E

light.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Component,Column:KeyPath,Key(s):downlevel_manifest.8.0.50727.193.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18E

light.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Registry,Column:Registry,Key(s):reg_downlevel_manifest.8.0.50727.100.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18E

light.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Registry,Column:Registry,Key(s):reg_downlevel_manifest.8.0.50727.101.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18E

light.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Registry,Column:Registry,Key(s):reg_downlevel_manifest.8.0.50727.103.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18E

light.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Registry,Column:Registry,Key(s):reg_downlevel_manifest.8.0.50727.104.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18E

light.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Registry,Column:Registry,Key(s):reg_downlevel_manifest.8.0.50727.193.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18E

light.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Registry,Column:Registry,Key(s):reg_downlevel_manifest.8.0.50727.762.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18E

light.exe(0,0):warningLGHT1076:ICE25:PossibledependencyfailureaswedonotfindCRT.Policy.63E949F6_03BC_5C40_FF1F_C8B3B9A1E18E@0vinModuleSignaturetable

light.exe(0,0):warningLGHT1076:ICE82:ThisactionSystemFolder.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Ehasduplicatesequencenumber1inthetableInstallExecuteSequence

light.exe(0,0):warningLGHT1076:ICE82:ThisactionSystemFolder.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Ehasduplicatesequencenumber1inthetableInstallUISequence

light.exe(0,0):warningLGHT1076:ICE82:ThisactionSystemFolder.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Ehasduplicatesequencenumber1inthetableAdminExecuteSequence

light.exe(0,0):warningLGHT1076:ICE82:ThisactionSystemFolder.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Ehasduplicatesequencenumber1inthetableAdminUISequence

light.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:UserInterfaceandLocalizationThissectionincludesguidesforbuildinginstallerUIandlocalizingyourinstaller.

HowTo:BuildalocalizedversionofyourinstallerHowTo:MakeyourinstallerlocalizableHowTo:RuntheinstalledapplicationaftersetupHowTo:Setyourinstaller'siconinAdd/RemovePrograms

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

Option1:BuildinglocalizedinstallersfromthecommandlineThefirststepinbuildingalocalizedinstalleristocompileyourWiXsourcesusingcandle.exe:

candle.exemyinstaller.wxs-outmyinstaller.wixobj

Aftertheintermediateoutputfileisgeneratedyoucanthenuselight.exetogeneratemultiplelocalizedMSIs:

light.exemyinstaller.wixobj-cultures:en-us-locen-us.wxl-outmyinstaller-en-us.msi

light.exemyinstaller.wixobj-cultures:fr-fr-locfr-fr.wxl-outmyinstaller-fr-fr.msi

The-locflagisusedtospecifythelanguagefiletouse.Itisimportanttoincludethe-culturesflagonthecommandlinetoensurethecorrectlocalizedstringsareincludedforextensionssuchasWiXUIExtension.

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

Formoreinformation,seeSpecifyingculturestobuild

HowTo:MakeyourinstallerlocalizableWiXsupportsbuildinglocalizedinstallersthroughtheuseoflanguagefilesthatincludelocalizedstrings.Itisagoodpracticetoputallyourstringsinalanguagefileasyoucreateyoursetup,evenifyoudonotcurrentlyplanonshippinglocalizedversionsofyourinstaller.ThishowtodescribeshowtocreatealanguagefileanduseitsstringsinyourWiXproject.

Step1:CreatethelanguagefileLanguagefilesendinthe.wxlextensionandspecifytheircultureusingthe<WixLocalization>element.Tocreatealanguagefileonthecommandlinecreateanewfilewiththeappropriatenameandaddthefollowing:

<?xmlversion="1.0"encoding="utf-8"?>

<WixLocalizationCulture="en-us"xmlns="http://schemas.microsoft.com/wix/2006/localization

</WixLocalization>

IfyouareusingVisualStudioyoucanaddanewlanguagefiletoyourprojectbydoingthefollowing:

1. RightclickonyourprojectinSolutionExplorerandselectAdd>NewItem...

2. SelectWiXLocalizationFile,givethefileanappropriatename,andselectAdd

BydefaultVisualStudiocreateslanguagefilesintheen-usculture.TocreatealanguagefileforadifferentculturechangetheCultureattributetotheappropriateculturestring.

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

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

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

TheStringelementgoesinsidetheWixLocalizationelement,andyoushouldaddoneStringelementforeachpieceoftextyouneedtolocalize.

Step3:UsethelocalizedstringsinyourprojectOnceyouhavedefinedthestringsyoucanusetheminyourprojectwhereveryouwouldnormallyusetext.Forexample,tosetyourproduct'sNameandManufacturertothelocalizedstringsdothefollowing:

<ProductId="*"

UpgradeCode="PUT-GUID-HERE"

Version="1.0.0.0"

Language="1033"

Name="!(loc.ApplicationName)"

Manufacturer="!(loc.ManufacturerName)">

Localizationstringsarereferencedusingthe!(loc.stringname)syntax.Thesereferenceswillbereplacedwiththeactualstringsfortheappropriatelocaleatbuildtime.

ForinformationonhowtocompilelocalizedversionsofyourinstalleronceyouhavethenecessarylanguagefilesseeHowTo:Buildalocalizedversionofyourinstaller.

HowTo:RuntheInstalledApplicationAfterSetupOftenwhencompletingtheinstallationofanapplicationitisdesirabletooffertheusertheoptionofimmediatelylaunchingtheinstalledprogramwhensetupiscomplete.ThishowtodescribescustomizingthedefaultWiXUIexperiencetoincludeacheckboxandaWiXcustomactiontolaunchtheapplicationifthecheckboxischecked.

ThishowtoassumesyouhavealreadycreatedabasicWiXprojectusingthestepsoutlinedinHowTo:Addafiletoyourinstaller.

Step1:AddtheextensionlibrariestoyourprojectThiswalkthroughrequiresWiXextensionsforUIcomponentsandcustomactions.Theseextensionlibrariesmustmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommand-lineyouneedtoaddthefollowingtoyourcandleandlightcommandlines:

-extWixUIExtension-extWixUtilExtension

IfyouareusingVisualStudioyoucanaddtheextensionsusingtheAddReferencedialog:

1. RightclickonyourprojectinSolutionExplorerandselectAddReference...

2. SelecttheWixUIExtension.dllassemblyfromthelistandclickAdd

3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd

4. ClosetheAddReferencedialog

Step2:AddUItoyourinstallerTheWiXMinimalUIsequenceincludesabasicsetofdialogsthatincludesafinisheddialogwithoptionalcheckbox.Toincludethesequenceinyourprojectaddthefollowingsnippetanywhereinsidethe<Product>element.

<UI>

<UIRefId="WixUI_Minimal"/>

</UI>

Todisplaythecheckboxonthelastscreenoftheinstallerincludethefollowingsnippetanywhereinsidethe<Product>element:

<PropertyId="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT"Value="LaunchMyApplicationName

TheWIXUI_EXITDIALOGOPTIONALCHECKBOXTEXTpropertyisprovidedbythestandardUIsequencethat,whenset,displaysthecheckboxandusesthespecifiedvalueasthecheckboxlabel.

Step3:IncludethecustomactionCustomactionsareincludedinaWiXprojectusingthe<CustomAction>element.RunninganapplicationisaccomplishedwiththeWixShellExecTargetcustomaction.TotellWindowsInstalleraboutthecustomaction,andtosetitsproperties,includethefollowinginyourprojectanywhereinsidethe<Product>element:

<PropertyId="WixShellExecTarget"Value="[#myapplication.exe]"/>

<CustomActionId="LaunchApplication"BinaryKey="WixCA"DllEntry="WixShellExec

ThePropertyelementsetstheWixShellExecTargettothelocationoftheinstalledapplication.WixShellExecTargetisthepropertyIdtheWixShellExeccustomactionexpectswillbesettothelocationofthefiletorun.TheValuepropertyusesthespecial#charactertotellWiXtolookupthefullinstalledpathofthefilewiththeidmyapplication.exe.

TheCustomActionelementincludestheactionintheinstaller.ItisgivenauniqueId,andtheBinaryKeyandDllEntrypropertiesindicatetheassemblyandentrypointforthecustomaction.TheImpersonatepropertytellsWindowsInstallertorunthecustomactionastheinstallinguser.

Step4:TriggerthecustomactionSimplyincludingthecustomaction,asinStep3,isn'tsufficienttocauseittorun.WindowsInstallermustalsobetoldwhenthecustomactionshouldbetriggered.Thisisdonebyusingthe<Publish>elementtoaddittotheactionsrunwhentheuserclickstheFinishedbuttononthefinalpageoftheUIdialogs.ThePublishelementshouldbeincludedinsidethe<UI>elementfromStep2,andlookslikethis:

<PublishDialog="ExitDialog"

Control="Finish"

Event="DoAction"

Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX=1andNOTInstalled

TheDialogpropertyspecifiesthedialogtheCustomActionwillbeattachedto,inthiscasetheExitDialog.TheControlpropertyspecifiesthattheFinishbuttononthedialogtriggersthecustomaction.TheEventpropertyindicatesthatacustomactionshouldberunwhenthebuttonisclicked,andtheValuepropertyspecifiesthecustomactionthatwasincludedinStep3.TheconditionontheelementpreventstheactionfromrunningunlessthecheckboxfromStep2wascheckedandtheapplicationwasactuallyinstalled(asopposedtobeingremovedorrepaired).

TheCompleteSample<?xmlversion="1.0"encoding="UTF-8"?>

<<Wixxmlns="http://schemas.microsoft.com/wix/2006/wi">

<ProductId="*"

UpgradeCode="PUT-GUID-HERE"

Version="1.0.0.0"

Language="1033"

Name="MyApplicationName"

Manufacturer="MyManufacturerName">

<PackageInstallerVersion="300"Compressed="yes"/>

<MediaId="1"Cabinet="myapplication.cab"EmbedCab="yes"/>

<!--ThefollowingthreesectionsarefromtheHowTo:AddaFiletoYourInstallertopic

<DirectoryId="TARGETDIR"Name="SourceDir">

<DirectoryId="ProgramFilesFolder">

<DirectoryId="APPLICATIONROOTDIRECTORY"Name="MyApplicationName

</Directory>

</Directory>

<DirectoryRefId="APPLICATIONROOTDIRECTORY">

<ComponentId="myapplication.exe"Guid="PUT-GUID-HERE">

<FileId="myapplication.exe"Source="MySourceFiles\MyApplication.exe

</Component>

<ComponentId="documentation.html"Guid="PUT-GUID-HERE">

<FileId="documentation.html"Source="MySourceFiles\documentation.html

</Component>

</DirectoryRef>

<FeatureId="MainApplication"Title="MainApplication"Level="1"

<ComponentRefId="myapplication.exe"/>

<ComponentRefId="documentation.html"/>

</Feature>

<!--Step2:AddUItoyourinstaller/Step4:Triggerthecustomaction

<UI>

<UIRefId="WixUI_Minimal"/>

<PublishDialog="ExitDialog"

Control="Finish"

Event="DoAction"

Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX=1andNOTInstalled

</UI>

<PropertyId="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT"Value="LaunchMyApplicationName

<!--Step3:Includethecustomaction-->

<PropertyId="WixShellExecTarget"Value="[#myapplication.exe]"/>

<CustomActionId="LaunchApplication"

BinaryKey="WixCA"

DllEntry="WixShellExec"

Impersonate="yes"/>

</Product>

</Wix>

HowTo:SetYourInstaller'sIconinAdd/RemoveProgramsWindowsInstallersupportsastandardproperty,ARPRPODUCTICON,thatcontrolstheicondisplayedinAdd/RemoveProgramsforyourapplication.Tosetthispropertyyoufirstneedtoincludetheiconinyourinstallerusingthe<Icon>element,thensetthepropertyusingthe<Property>element.

<IconId="icon.ico"SourceFile="MySourceFiles\icon.ico"/>

<PropertyId="ARPPRODUCTICON"Value="icon.ico"/>

ThesetwoelementscanbeplacedanywhereinyourWiXprojectundertheProjectelement.ThereisnoneedtonesttheminaDirectoryelement.TheIcontagspecifiesthelocationoftheicononyoursourcemachine,andgivesitauniqueidforuselaterintheWiXproject.ThePropertyelementsetstheARPPRODUCTIONpropertytotheidoftheicontouse.

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

Thereareseveraloptionsforwhereyoucanschedulethe

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

WiXSchemaReferencesThissectioncontainsschemareferenceinformationforWiXandextensions.

WixschemaWixlocschemaDifxappschemaforWixDifxAppExtensionFirewallschemaforWixFirewallExtensionGamingschemaforWixGamingExtensionIisschemaforWixIIsExtensionIsolatedAppschemaforWixIsolatedAppExtensionNetfxschemaforWixNetFxExtensionOfficeAddinschemaforWixOfficeExtensionPsschemaforWixPSExtensionSqlschemaforWixSqlExtensionUtilschemaforWixUtilExtensionVsschemaforWixVSExtension

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>

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

LaunchConditiontableandevaluateseachconditionalstatementrecordedthere.ResolveSource(min:0,max:unbounded):DeterminesthelocationofthesourceandsetstheSourceDirpropertyifthesourcehasnotbeenresolvedyet.

AttributesNone

SeeAlsoWixSchema

Version3.0.5419.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):Verifiesthatallcosted

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

AttributesNone

SeeAlsoWixSchema

Version3.0.5419.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):ManagestheadvertisementofthecomponentsfromthePublishComponent

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

AllocateRegistrySpaceElement

DescriptionEnsurestheneededamountofspaceexistsintheregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesAllocateRegistrySpaceAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

AppDataElement

DescriptionOptionalwayfordefiningAppData,generallyusedforcomplexCDATA.

WindowsInstallerreferencesNone

ParentsCategory

SeeAlsoWixSchema

Version3.0.5419.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 RequiredId Guid Setthisvalueto

theAppIDGUIDthatcorrespondstothenamedexecutable.

Yes

ActivateAtStorage YesNoType Setthisvalueto'yes'toconfiguretheclienttoactivateonthesamesystemaspersistentstorage.

Advertise YesNoType Setthisvalueto'yes'inordertocreateanormalAppIdtablerow.

Setthisvalueto'no'inordertogenerateRegistryrowsthatperformsimilarregistration(withouttheoftenproblematicWindowsInstalleradvertisingbehavior).

Description String SetthisvaluetothedescriptionoftheAppId.ItcanonlybespecifiedwhentheAppIdisnotbeingadvertised.

DllSurrogate String SetthisvaluetospecifythattheclassisaDLLthatistobeactivatedinasurrogateEXEprocess,andthesurrogateprocesstobeusedisthepathofasurrogateEXEfilespecifiedbythevalue.

LocalService String SetthisvaluetothenameofaservicetoallowtheobjecttobeinstalledasaWin32service.

RemoteServerName String Setthisvaluetothenameoftheremoteservertoconfiguretheclient

torequesttheobjectberunataparticularmachinewheneveranactivationfunctioniscalledforwhichaCOSERVERINFOstructureisnotspecified.

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"

RemoteServerName

InGeneral[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.0.5419.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 RequiredAfter String Thenameofanactionthat

thisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Overridable YesNoType If"yes",thesequencingof

thisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,ComponentSearch,FileSearch,IniFileSearch,RegistrySearch

Version3.0.5419.0

AssemblyNameElement

DescriptionTheMsiAssemblyNametablespecifiestheschemafortheelementsofastrongassemblycachenamefora.NETFrameworkorWin32assembly.ConsiderusingtheAssemblyattributeonFileelementtohavethetoolsetpopulatetheseentriesautomatically.

WindowsInstallerreferencesMsiAssemblyNameTable

ParentsFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Nameoftheattributeassociated

withthevaluespecifiedintheValuecolumn.

Yes

Value String ValueassociatedwiththenamespecifiedintheNamecolumn.

SeeAlsoWixSchema

Version3.0.5419.0

BillboardElement

DescriptionBillboardtodisplayduringinstallofaFeature

WindowsInstallerreferencesBillboardTable,BBControlTable

ParentsBillboardAction

InnerTextNone

ChildrenSequence(min:1,max:1)

1. Control(min:0,max:unbounded):Onlycontrolsofstatictypesuchas:Text,Bitmap,Icon,orcustomcontrolcanbeplacedonabillboard.

Attributes

Name Type Description RequiredId String UniqueidentifierfortheBillboard. YesFeature String Featurewhosestatedeterminesif

theBillboardisshown.

SeeAlsoWixSchema

Version3.0.5419.0

BillboardActionElement

DescriptionBillboardactionduringwhichchildBillboardsaredisplayed

WindowsInstallerreferencesBillboardTable,BBControlTable

ParentsUI

InnerTextNone

ChildrenSequence(min:1,max:1)

1. Billboard(min:1,max:unbounded):OrderofBillboardelementsdeterminesorderofdisplay

Attributes

Name Type Description RequiredId String Actionnamethatdetermineswhen

theBillboardshouldbeshown.Yes

SeeAlsoWixSchema

Version3.0.5419.0

BinaryElement

DescriptionBinarydatausedforCustomActionelementsandUIcontrols.

WindowsInstallerreferencesBinaryTable

ParentsControl,Fragment,Module,Product,UI

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)AnyElementnamespace='##other'processContents='Lax'

Attributes

Name Type Description RequiredId String TheIdcannot

bylongerthan55characters.InordertopreventerrorsincaseswheretheIdismodularized,itshouldnotbelongerthan18characters.

Yes

SourceFile String Pathtothebinaryfile.

src String Thisattributehasbeendeprecated;pleaseusethe

SourceFileattributeinstead.

SuppressModularization YesNoType UsetosuppressmodularizationofthisBinaryidentifierinmergemodules.

Anyattributenamespace='##other'processContents='lax'

SeeAlsoWixSchema

Version3.0.5419.0

BinaryRefElement

DescriptionUsedonlyforPatchFamiliestoincludeonlyabinarytableentryinapatch.

WindowsInstallerreferencesNone

ParentsPatchFamily

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String TheidentifieroftheBinaryelement

toreference.Yes

Anyattributenamespace='##other'processContents='lax'

SeeAlsoWixSchema

Version3.0.5419.0

BindImageElement

DescriptionBindseachexecutableorDLLthatmustbeboundtotheDLLsimportedbyit.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesBindImageTable,BindImageAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

CategoryElement

DescriptionQualifiedpublishedcomponentforparentComponent

WindowsInstallerreferencesPublishComponentTable

ParentsComponent

InnerTextNone

ChildrenSequence(min:0,max:unbounded)

1. AppData(min:0,max:unbounded)

Attributes

Name Type Description RequiredId Guid AstringGUIDthatrepresentsthe

categoryofcomponentsbeinggroupedtogether.

Yes

AppData String Anoptionallocalizabletextdescribingthecategory.Thestringiscommonlyparsedbytheapplicationandcanbedisplayedtotheuser.Itshoulddescribethecategory.

Feature String Featurethatcontrolstheadvertisementofthecategory.DefaultstotheprimaryFeaturefortheparentComponent.

Qualifier String AtextstringthatqualifiesthevalueintheIdattribute.AqualifierisusedtodistinguishmultipleformsofthesameComponent,suchas

Yes

aComponentthatisimplementedinmultiplelanguages.

SeeAlsoWixSchema

Version3.0.5419.0

CCPSearchElement

DescriptionUsesfilesignaturestovalidatethatqualifyingproductsareinstalledonasystembeforeanupgradeinstallationisperformed.TheCCPSearchactionshouldbeauthoredintotheInstallUISequencetableandInstallExecuteSequencetable.TheinstallerpreventstheCCPSearchactionfromrunningintheInstallExecuteSequencesequenceiftheactionhasalreadyruninInstallUISequencesequence.TheCCPSearchactionmustcomebeforetheRMCCPSearchaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesCCPSearchAction

ParentsInstallExecuteSequence,InstallUISequence

InnerText(xs:string)Textnodespecifiestheconditionoftheaction.

ChildrenNone

Attributes

Name Type Description RequiredAfter String Thenameofanactionthat

thisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,RMCCPSearch,ComplianceCheck

Version3.0.5419.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 RequiredId Guid TheClassidentifier

(CLSID)ofaCOMserver.

Yes

Advertise YesNoType Setthisvalueto"yes"inordertocreateanormalClasstablerow.Setthisvalueto"no"inordertogenerateRegistryrowsthatperformsimilarregistration(withouttheoftenproblematicWindows

Installeradvertisingbehavior).

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

Argument String ThiscolumnisoptionalonlywhentheContextcolumnissetto"LocalServer"or"LocalServer32"servercontext.ThetextisregisteredastheargumentagainsttheOLEserverandisusedbyOLEforinvokingtheserver.NotethattheresolutionofpropertiesintheArgumentfieldislimited.Aproperty

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

Context List Theservercontext(s)forthisCOMserver.ThisattributeisoptionalforVB6librariesthataremarked"PublicNotCreateable".ClasselementsmarkedAdvertisedmustspecifyatleastoneservercontext.ItismostcommonfortheretobeasinglevaluefortheContextattribute.Thisattribute'svalueshouldbeaspace-delimitedlistcontaingoneormoreofthefollowing: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).This

attributeshouldbeusedtospecifyforeignservers,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(shouldmatchtheIdattributeofanIconelement).Thisiscurrentlynotsupportedifthevalue

oftheAdvertiseattributeis"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 MayonlybespecifiedifthevalueoftheAdvertiseattributeis"no"andtheForeignServerattributeisnot

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

SeeAlso

WixSchema,AppIdVersion3.0.5419.0

ColumnElement

DescriptionColumndefinitionforaCustomTable

WindowsInstallerreferencesNone

ParentsCustomTable

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Identifierforthecolumn. YesCategory 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 Columninthetablein

KeyTableattribute.

KeyTable String Tableinwhichthiscolumnisanexternalkey.Canbesemicolondelimited.

Localizable YesNoType Whetherthiscolumncanbelocalized.

MaxValue Integer Maximumvaluefora

numericvalue,dateorversioninthiscolumn.

MinValue Integer Minimumvalueforanumericvalue,dateorversioninthiscolumn.

Modularize Enumeration Howthiscolumnshouldbemodularized,ifatall.Thisattribute'svaluemustbeoneofthefollowing:None

Columnshouldnotbemodularized.Thisisthedefaultvalue.

ColumnColumnshouldbemodularized.

ConditionColumnisaconditionandshouldbemodularized.

IconWhenthecolumnisanprimaryorforeignkeytotheIcontableitshouldbemodularizedspecial.

PropertyAnyPropertiesinthecolumnshouldbemodularized.

SemicolonDelimitedSemi-colonlistofkeys,allofwhichneedtobemodularized.

Nullable YesNoType Whetherthiscolumncan

beleftnull.PrimaryKey YesNoType Whetherthiscolumnisa

primarykey.

Set String Semicolondelimitedlistofpermissiblevalues.

Type Enumeration Thetypeofthiscolumn.Thisattribute'svaluemustbeoneofthefollowing:binary

Columncontainsapathtoafilethatwillbeinsertedintothecolumnasabinaryobject.Ifthisvalueisset,theCategoryattributemustalsobesetwithavalueof'Binary'topassICEvalidation.

intColumncontainsanintegerordatetimevalue(theMinValueandMaxValueattributesshouldalsobeset).

stringColumncontainsanon-localizablestringvalue.

Yes

Width Integer Widthofthiscolumn.

SeeAlsoWixSchema

Version3.0.5419.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 RequiredProperty String Propertytiedtothisgroup Yes

SeeAlsoWixSchema

Version3.0.5419.0

ComplianceCheckElement

DescriptionAddsarowtotheCCPSearchtable.

WindowsInstallerreferencesCCPSearchTable,SignatureTable

ParentsFragment,Product

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)Sequence(min:1,max:1)

1. ComplianceDrive(min:0,max:1):StartssearchesfromtheCCP_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)

AnyElementnamespace='##other'processContents='Lax'

AttributesNone

SeeAlsoWixSchema,Property

Version3.0.5419.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.0.5419.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)AnyElementnamespace='##other'processContents='Lax'CertificateComPlusApplicationComPlusApplicationRoleComPlusAssemblyComPlusGroupInApplicationRoleComPlusGroupInPartitionRoleComPlusPartitionComPlusPartitionRoleComPlusPartitionUserComPlusRoleForComponentComPlusRoleForInterfaceComPlusRoleForMethodComPlusSubscriptionComPlusUserInApplicationRoleComPlusUserInPartitionRoleDriverEventSourceFileShareFirewallException

InternetShortcutMessageQueueMessageQueuePermissionPerformanceCategoryServiceConfigSqlDatabaseSqlScriptSqlStringUserWebAppPoolWebDirWebFilterWebPropertyWebServiceExtensionWebSiteWebVirtualDirXmlConfigXmlFile

Attributes

Name Type DescriptionId String Componentidentifier;this

istheprimarykeyforidentifyingcomponents.

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

Directory String SetstheDirectoryoftheComponent.Ifthis

elementisnestedunderaDirectoryelement,thisvaluedefaultstothevalueoftheparentDirectory/@Id.

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

DiskId Integer ThisattributeprovidesadefaultDiskIdattributeforallchildFileelements.SpecifyingtheDiskIdonaComponentelementwilloverrideanyDiskIdattributessetbyparentDirectoryorDirectoryRefelements.SeetheFileelement'sDiskIdattributeformoreinformationaboutthepurposeoftheDiskId.

Feature String Identifiesafeaturetowhichthiscomponentbelongs,asashorthandforachildComponentRef

elementoftheFeatureelement.ThevalueofthisattributeshouldcorrespondtotheIdattributeofaFeatureelementauthoredelsewhere.Notethatasinglecomponentcanbelongtomultiplefeaturesbutthisattributeallowsyoutospecifyonlyasinglefeature.

Guid ComponentGuid Thisvalueshouldbeaguidthatuniquelyidentifiesthiscomponent'scontents,language,platform,andversion.It'salsopossibletosetthevaluetoanemptystringtospecifyanunmanagedcomponent.UnmanagedcomponentsareasecurityvulnerabilitybecausethecomponentcannotberemovedorrepairedbyWindowsInstaller(itisessentiallyanunpatchable,permanentcomponent).Therefore,aguidshouldalwaysbespecifiedforanycomponentwhichcontainsresourcesthatmayneedtobepatchedinthefuture.

KeyPath YesNoType Ifthisattribute'svalueissetto'yes',thenthe

DirectoryofthisComponentisusedastheKeyPath.TosetaRegistrykeyorFileastheKeyPathofacomponent,settheKeyPathattributeto'yes'ononeofthosechildelements.

Location Enumeration Optionalvaluethatspecifiesthelocationthatthecomponentcanberunfrom.Thisattribute'svaluemustbeoneofthefollowing:local

Preventsthecomponentfromrunningfromthesourceorthenetwork(thisisthedefaultbehaviorifthisattributeisnotset).

sourceEnforcesthatthecomponentcanonlyberunfromthesource(itcannotberunfromtheuser'scomputer).

eitherAllowsthecomponenttorunfromsourceorlocally.

NeverOverwrite YesNoType Ifthisattributeissetto

'yes',theinstallerdoesnotinstallorreinstallthecomponentifakeypathfileorakeypathregistryentryforthecomponentalreadyexists.Theapplicationdoesregisteritselfasaclientofthecomponent.UsethisflagonlyforcomponentsthatarebeingregisteredbytheRegistrytable.DonotusethisflagforcomponentsregisteredbytheAppId,Class,Extension,ProgId,MIME,andVerbtables.

Permanent YesNoType Ifthisattributeissetto'yes',theinstallerdoesnotremovethecomponentduringanuninstall.TheinstallerregistersanextrasystemclientforthecomponentintheWindowsInstallerregistrysettings(whichbasicallyjustmeansthatatleastoneproductisalwaysreferencingthiscomponent).Notethatthisoptiondiffersfromthebehaviorofnotsettingaguidbecausealthoughthecomponentispermanent,itisstillpatchable(becauseWindowsInstallerstilltracksit),it'sjustnot

uninstallable.Shared YesNoType Ifthisattribute'svalueis

setto'yes',enablesadvancedpatchingsemanticsforComponentsthataresharedacrossmultipleProducts.Specifically,theWindowsInstallerwillcachethesharedfilestoimprovepatchuninstall.ThisfunctionalityisavailableinWindowsInstaller4.5andlater.

SharedDllRefCount YesNoType Ifthisattribute'svalueissetto'yes',theinstallerincrementsthereferencecountinthesharedDLLregistryofthecomponent'skeyfile.Ifthisbitisnotset,theinstallerincrementsthereferencecountonlyifthereferencecountalreadyexists.

Transitive YesNoType Ifthisattributeissetto'yes',theinstallerreevaluatesthevalueofthestatementintheConditionuponareinstall.IfthevaluewaspreviouslyFalseandhaschangedtoTrue,theinstallerinstallsthecomponent.IfthevaluewaspreviouslyTrueandhaschangedtoFalse,theinstallerremovesthe

componentevenifthecomponenthasotherproductsasclients.

UninstallWhenSuperseded YesNoType Ifthisattributeissetto'yes',theinstallerwilluninstalltheComponent'sfilesandregistrykeyswhenitissupersededbyapatch.ThisfunctionalityisavailableinWindowsInstaller4.5andlater.

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

Anyattributenamespace='##other'processContents='lax'

HowTosandExamplesHowTo:Addafiletoyourinstaller

SeeAlsoWixSchema,ComponentRef,Media

Version3.0.5419.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)AnyElementnamespace='##other'processContents='Lax'

Attributes

Name Type Description RequiredId String IdentifierfortheComponentGroup. YesAnyattributenamespace='##other'processContents='lax'

SeeAlsoWixSchema,ComponentGroupRef

Version3.0.5419.0

ComponentGroupRefElement

DescriptionCreateareferencetoaComponentGroupinanotherFragment.

WindowsInstallerreferencesNone

ParentsComponentGroup,Feature,FeatureGroup,FeatureRef,Module

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Theidentifierofthe

ComponentGrouptoreference.Yes

Primary YesNoType Setthisattributeto'yes'inordertomaketheparentfeatureofthiscomponenttheprimaryfeatureforthiscomponent.Componentsmaybelongtomultiplefeatures.Bydesignatingafeatureastheprimaryfeatureofacomponent,youensurethatwheneveracomponentisselectedforinstall-on-demand(IOD),theprimaryfeaturewillbetheonetoinstallit.Thisattributeshouldonlybesetifacomponentactuallynestsundermultiplefeatures.Ifacomponentnests

underonlyonefeature,thatfeatureistheprimaryfeatureforthecomponent.Youcannotsetmorethanonefeatureastheprimaryfeatureofagivencomponent.

Anyattributenamespace='##other'processContents='lax'

SeeAlsoWixSchema,ComponentGroup

Version3.0.5419.0

ComponentRefElement

DescriptionCreateareferencetoaFeatureelementinanotherFragment.

WindowsInstallerreferencesNone

ParentsComponentGroup,Feature,FeatureGroup,FeatureRef,Module,PatchFamily

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String TheidentifieroftheComponent

elementtoreference.Yes

Primary YesNoType Setthisattributeto'yes'inordertomaketheparentfeatureofthiscomponenttheprimaryfeatureforthiscomponent.Componentsmaybelongtomultiplefeatures.Bydesignatingafeatureastheprimaryfeatureofacomponent,youensurethatwheneveracomponentisselectedforinstall-on-demand(IOD),theprimaryfeaturewillbetheonetoinstallit.Thisattributeshouldonlybesetifacomponentactuallynestsundermultiple

features.Ifacomponentnestsunderonlyonefeature,thatfeatureistheprimaryfeatureforthecomponent.Youcannotsetmorethanonefeatureastheprimaryfeatureofagivencomponent.

Anyattributenamespace='##other'processContents='lax'

HowTosandExamplesHowTo:Addafiletoyourinstaller

SeeAlsoWixSchema,Component

Version3.0.5419.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 RequiredId String YesGuid Guid ThecomponentIDofthe

componentwhosekeypathistobeusedforthesearch.

Type Enumeration MustbefileiflastchildisFileSearchelementandmustbedirectoryiflastchildisDirectorySearchelement.Thisattribute'svaluemustbeoneofthefollowing:directory

Thekeypathofthe

componentisadirectory.

fileThekeypathofthecomponentisafile.Thisisthedefaultvalue.

SeeAlsoWixSchema,IniFileSearch,RegistrySearch

Version3.0.5419.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 RequiredAction Enumeration UsedonlyunderControl

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

ConfigurationElement

DescriptionDefinestheconfigurableattributesofmergemodule.

WindowsInstallerreferencesNone

ParentsModule

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredContextData String Specifiesasemantic

contextfortherequesteddata.

DefaultValue String Specifiesadefaultvaluefortheiteminthisrecordifthemergetooldeclinestoprovideavalue.

Description String Descriptionforauthoring. DisplayName String Displaynamefor

authoring.

Format Enumeration Specifiestheformatofthedatabeingchanged.Thisattribute'svaluemustbeoneofthefollowing:Text

Key

Yes

Integer

Bitfield

HelpKeyword String Keywordintochmfileforauthoring.

HelpLocation String Locationofchmfileforauthoring.

KeyNoOrphan YesNoType DoesnotmergeruleaccordingtorulesinMSISDK.

Name String Definesthenameoftheconfigurableitem.

Yes

NonNullable YesNoType Ifyes,nullisnotavalidentry.

Type String Specifiesthetypeofthedatabeingchanged.

SeeAlsoWixSchema

Version3.0.5419.0

ConfigurationDataElement

DescriptionDatatouseasinputtoaconfigurablemergemodule.

WindowsInstallerreferencesNone

ParentsMerge

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredName String KeyintotheModuleConfiguration

table.Yes

Value String Valuetobepassedtoconfigurablemergemodule.

Yes

SeeAlsoWixSchema

Version3.0.5419.0

ControlElement

DescriptionContainsthecontrolsthatappearoneachdialog.

WindowsInstallerreferencesControlTable,ComboBoxTable,DialogTable,ListBoxTable,ListViewTable,RadioButtonTable

ParentsBillboard,Dialog

InnerTextNone

ChildrenSequence(min:1,max:1)

1. Text(min:0,max:1):alternativetoTextattributewhenCDATAisneededtoescapeXMLdelimiters

2. ComboBox(min:0,max:1):ComboBoxtablewithListItemchildren

3. ListBox(min:0,max:1):ListBoxtablewithListItemchildren

4. ListView(min:0,max:1):ListViewtablewithListItemchildren

5. RadioButtonGroup(min:0,max:1):RadioButtontablewithRadioButtonchildren

6. Property(min:0,max:1):PropertytableentryforthePropertytablecolumnassociatedwiththiscontrol

7. Binary(min:0,max:1):Iconreferencediniconcolumnofrow

8. 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 RequiredId String Combinedwiththe

DialogIdtomakeuptheprimarykeyoftheControltable.

Yes

Bitmap YesNoType ThisattributeisonlyvalidforRadioButtonandPushButtonControls.

Cancel YesNoType Setthisattributeto"yes"tocausethisControltobeinvokedbytheescapekey.

CDROM YesNoType ThisattributeisonlyvalidforVolumeandDirectoryControls.

CheckBoxPropertyRef String ThisattributeisonlyvalidforCheckBoxcontrols.ThevalueisthenameofaPropertythatwasalreadyusedasthePropertyforanotherCheckBoxcontrol.ThePropertyattributecannotbespecified.Theattributeexiststosupportmultiplecheckboxesondifferentdialogsbeingtiedtothesameproperty.

CheckBoxValue String ThisattributeisonlyvalidforCheckBoxControls.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,thepushbuttoncontroliscreatedusingtheUserAccountControl

(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 Heightoftherectangularboundaryofthecontrol.Thismustbeanon-negative

Yes

number.Help String Thisattributeis

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

set,thecontroldisplaysorchangesthevalueofthepropertythathastheidentifierlistedinthePropertycolumnoftheControltable.

Integer YesNoType Setthisattributeto"yes"tocausethelinkedPropertyvaluefortheControltobetreatedasaninteger.Otherwise,thePropertywillbetreatedasastring.

LeftScroll YesNoType Setthisattributeto"yes"tocausethescrollbartodisplayontheleftsideoftheControl.

Multiline YesNoType ThisattributeisonlyvalidforEditControls.

NoPrefix YesNoType ThisattributeisonlyvalidforTextControls.

NoWrap YesNoType ThisattributeisonlyvalidforTextControls.

Password YesNoType ThisattributeisonlyvalidforEditControls.

ProgressBlocks YesNoType ThisattributeisonlyvalidforProgressBarControls.

Property String Thenameofadefinedpropertyto

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

Sorted YesNoType ThisattributeisonlyvalidforListBox,ListView,andComboBoxControls.Setthevalueofthisattributeto"yes"tohaveentriesappearintheorderspecified

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

Width LocalizableInteger Widthoftherectangularboundaryofthecontrol.Thismustbeanon-negativenumber.

Yes

X LocalizableInteger Horizontalcoordinateoftheupper-leftcorneroftherectangularboundaryofthecontrol.Thismustbe

Yes

anon-negativenumber.

Y LocalizableInteger Verticalcoordinateoftheupper-leftcorneroftherectangularboundaryofthecontrol.Thismustbeanon-negativenumber.

Yes

SeeAlsoWixSchema

Version3.0.5419.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 DescriptionId String Primarykeyusedto

identifythisparticularentry.

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

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

DestinationProperty String Setthisvaluetoapropertythatwillhaveavaluethatresolvestothefullpathofthe

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

DestinationShortName ShortFileNameType Theshortfilenameofthefilein8.3format.Thisattributeshouldonlybesetifthereisaconflictbetweengeneratedshortfilenamesoryouwishtomanuallyspecifytheshortfilename.

FileId String ThisattributecannotbespecifiediftheelementisnestedunderaFileelement.Setthisattribute'svaluetotheidentifierofafilefromadifferentcomponenttocopyitbasedontheinstallstateoftheparentcomponent.

SourceDirectory String ThisattributecannotbespecifiediftheelementisnestedunderaFileelementortheFileIdattribute

isspecified.Setvaluetothesourcedirectoryfromwhichtocopyormoveanexistingfileonthetargetmachine.Directorymusttheinstallerdatabaseatcreationtime.attributecannotbespecifiedinconjunctionwithSourceProperty.

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

underaFileelementorspecifyaFileIdattribute)thentheSourcePropertyattributeshouldbesettothenameofapropertythatwillresolvetothefullpathofthesourcefilename.Ifthevalueofthisattributecontainsa"*"wildcardandtheDestinationNameattributeisspecified,allmovedorcopiedfilesretainthefilenamesfromtheirsources.

SourceProperty String ThisattributecannotbespecifiediftheelementisnestedunderaFileelementortheFileIdattributeisspecified.Setvaluetoapropertythatwillhaveavaluethatresolvestothefullpathofthesourcedirectory(orfullpathincludingfilenameifSourceNameisnotspecified).Thepropertydoesnothavetoexistintheinstallerdatabaseatcreationtime;itcouldbecreatedat

installationtimebyacustomaction,onthecommandline,etc.ThisattributebespecifiedinconjunctionwithSourceDirectory.

SeeAlsoWixSchema,RemoveFile

Version3.0.5419.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 RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactionina

sequence.Suppress YesNoType Ifyes,thisactionwillnot

occur.

SeeAlsoWixSchema,CostInitialize,FileCost

Version3.0.5419.0

CostInitializeElement

DescriptionInitiatestheinternalinstallationcostingprocess.AnystandardorcustomactionsthataffectcostingshouldbesequencedbeforetheCostInitializeaction.CalltheFileCostactionimmediatelyfollowingtheCostInitializeaction.ThencalltheCostFinalizeactionfollowingtheCostInitializeactiontomakeallfinalcostcalculationsavailabletotheinstallerthroughtheComponenttable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesCostInitializeAction

ParentsAdminExecuteSequence,AdminUISequence,AdvertiseExecuteSequence,InstallExecuteSequence,InstallUISequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,FileCost,CostFinalize

Version3.0.5419.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,ShortcutTargetispresettothefolderAnyElementnamespace='##other'processContents='Lax'PermissionEx

Attributes

Name Type Description RequiredDirectory String IdentifierofDirectorytocreate.

DefaultstoDirectoryofparentComponent.

SeeAlsoWixSchema,RemoveFolder

Version3.0.5419.0

CreateFoldersElement

DescriptionCreatesemptyfoldersforcomponentsthataresettobeinstalled.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesCreateFoldersAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

CreateShortcutsElement

DescriptionManagesthecreationofshortcuts.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesCreateShortcutsAction

ParentsAdvertiseExecuteSequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

CustomElement

DescriptionUsetosequenceacustomaction.

WindowsInstallerreferencesNone

ParentsAdminExecuteSequence,AdminUISequence,AdvertiseExecuteSequence,InstallExecuteSequence,InstallUISequence

InnerText(xs:string)Textnodespecifiestheconditionoftheaction.

ChildrenNone

Attributes

Name Type Description RequiredAction String Theactiontowhichthe

Customelementapplies.Yes

After String Thenameofthestandardorcustomactionafterwhichthisactionshouldbeperformed.MutuallyexclusivewithBefore,OnExit,andSequenceattributes

Before String Thenameofthestandardorcustomactionbeforewhichthisactionshouldbeperformed.MutuallyexclusivewithOnExit,After,andSequenceattributes

OnExit Enumeration Mutuallyexclusivewith

Before,After,andSequenceattributesThisattribute'svaluemustbeoneofthefollowing:success

cancel

error

suspend

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Thesequencenumberforthisaction.MutuallyexclusivewithBefore,After,andOnExitattributes

SeeAlsoWixSchema,CustomAction

Version3.0.5419.0

CustomActionElement

DescriptionSpecifiesacustomactiontobeaddedtotheMSICustomActiontable.Variouscombinationsoftheattributesforthiselementcorrespondtodifferentcustomactiontypes.FormoreinformationaboutcustomactionsseetheCustomActionTypestopiconMSDN.

WindowsInstallerreferencesCustomActionTable

ParentsFragment,Module,Product

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

ChildrenNone

Attributes

Name Type DescriptionBinaryKey String ThisattributeisareferencetoaBinaryelement

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

firstSequence

Indicatesthatthecustomactionwillonlyruninthefirstsequencethatrunsit.

immediateIndicatesthatthecustomactionwillrunduringnormalprocessingtimewithuserprivileges.Thisisthedefault.

oncePerProcessIndicatesthatthecustomactionwillonlyruninthefirstsequencethatrunsitinthesameprocess.

rollbackIndicatesthatacustomactionwillrunintherollbacksequencewhenafailureduringinstallation,usuallytoundochangesmadebyadeferredcustomaction.

secondSequenceIndicatesthatacustomactionshouldberunasecondtimeifitwaspreviouslyruninanearliersequence.

FileKey String ThisattributespecifiesareferencetoaFileelementwithmatchingIdattributethatexecutethecustomactioncodeinthefileafterthefileisinstalled.ThisattributeistypicallyusedwiththeExeCommandattributetospecifyatype18customactionthatrunsaninstalledexecutable,withtheDllEntryattributetospecifyaninstalledcustomactionDLLtouseforatype17customaction,orwiththeVBScriptCallorJScriptCallattributestospecifyatype21or22customaction.

HideTarget YesNoType EnsurestheinstallerdoesnotlogtheCustomActionDataforthedeferredcustomaction.

Id String Theidentifierofthecustomaction.Impersonate YesNoType ThisattributespecifieswhethertheWindows

Installer,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-machineinstallsonTerminalServermachines.Deferredexecutioncustomactionsthatdonotspecifythisattribute,orexplicitlysetit'no',willrunwithnouserimpersonationonTerminalServermachinesduringper-machineinstallations.

onlyapplicablewheninstallingontheServer2003family.

Value String Thisattributespecifiesastringvaluetouseinthecustomaction.ThisattributewiththePropertyattributetosetthepropertyaspartofatype51customactionorwiththeDirectoryattributetosetadirectorypathinthattableinatype35customaction.ThevaluecanbealiteralvalueorderivedfromaelementusingtheFormatted

VBScriptCall String ThisattributespecifiesthenameoftheVBScriptSubroutinetoexecuteinascript.ThescriptmustbeprovidedinaBinaryelementidentifiedbytheBinaryKeyattributedescribedabove.Inotherwords,thisattributemustbespecifiedinconjunctionwiththeBinaryKeyattribute.

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

Anyattributenamespace='##other'processContents='lax'

SeeAlsoWixSchema,Custom,CustomActionRef

Version3.0.5419.0

CustomActionRefElement

DescriptionThiswillcausetheentirecontentsoftheFragmentcontainingthereferencedCustomActiontobeincludedintheinstallerdatabase.

WindowsInstallerreferencesNone

ParentsFragment,Module,PatchFamily,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String TheidentifieroftheCustomAction

toreference.Yes

Anyattributenamespace='##other'processContents='lax'

SeeAlsoWixSchema,CustomAction

Version3.0.5419.0

CustomPropertyElement

DescriptionAcustompropertyforthePatchMetadatatable.

WindowsInstallerreferencesNone

ParentsPatchMetadata

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredCompany String Thenameofthecompany. YesProperty String Thenameofthemetadata

property.Yes

Value String Valueofthemetadataproperty. Yes

SeeAlsoWixSchema

Version3.0.5419.0

CustomTableElement

DescriptionDefinesacustomtableforusefromacustomaction.

WindowsInstallerreferencesNone

ParentsFragment,Module,Product

InnerTextNone

ChildrenSequence(min:1,max:1)

1. Column(min:0,max:unbounded):Columndefinitionforthecustomtable.

2. Row(min:0,max:unbounded):Rowdefinitionforthecustomtable.

Attributes

Name Type Description RequiredId String Identifierforthecustomtable. Yes

SeeAlsoWixSchema

Version3.0.5419.0

DataElement

DescriptionUsedforaCustomTable.SpecifiesthedatafortheparentRowandspecifiedColumn.

WindowsInstallerreferencesNone

ParentsRow

InnerText(xs:string)Adatavalue

ChildrenNone

Attributes

Name Type Description RequiredColumn String Specifiesinwhichcolumntoinsert

thisdata.Yes

SeeAlsoWixSchema

Version3.0.5419.0

DeleteServicesElement

DescriptionStopsaserviceandremovesitsregistrationfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesDeleteServicesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

DependencyElement

DescriptionDeclaresadependencyonanothermergemodule.

WindowsInstallerreferencesNone

ParentsModule

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredRequiredId String Identifierofthemerge

modulerequiredbythemergemodule.

Yes

RequiredLanguage Integer NumericlanguageIDofthemergemoduleinRequiredID.

Yes

RequiredVersion String VersionofthemergemoduleinRequiredID.

SeeAlsoWixSchema

Version3.0.5419.0

DialogElement

DescriptionDefinesadialogboxintheDialogTable.

WindowsInstallerreferencesControlTable,ComboBoxTable,DialogTable,ListBoxTable,ListViewTable,RadioButtonTable

ParentsUI

InnerTextNone

ChildrenSequence(min:1,max:1)

1. Control(min:0,max:unbounded):Controlelementsbelongingtothisdialog.

Attributes

Name Type Description RequiredId String Uniqueidentifierforthe

dialog.Yes

CustomPalette YesNoType Usedtospecifyifpicturesinthedialogboxarerenderedwithacustompalette.

ErrorDialog YesNoType Specifiesthisdialogasanerrordialog.

Height Integer Theheightofthedialogboxindialogunits.

Yes

Hidden YesNoType Usedtohidethedialog. KeepModeless YesNoType Keepmodelessdialogs

alivewhenthisdialogiscreatedthrough

DoAction.LeftScroll YesNoType Usedtoalignthescroll

barontheleft.

Modeless YesNoType Usedtosetthedialogasmodeless.

NoMinimize YesNoType Usedtospecifyifthedialogcanbeminimized.

RightAligned YesNoType Aligntextontheright. RightToLeft YesNoType Usedtospecifyifthe

textinthedialogshouldbedisplayedinrighttoleftreadingorder.

SystemModal YesNoType Usedtosetthedialogassystemmodal.

Title String Thetitleofthedialogbox.

TrackDiskSpace YesNoType Havethedialogperiodicallycalltheinstallertocheckifavailablediskspacehaschanged.

Width Integer Thewidthofthedialogboxindialogunits.

Yes

X Integer Horizontalplacementofthedialogboxasapercentageofscreenwidth.Thedefaultvalueis50.

Y Integer Verticalplacementofthedialogboxasapercentageofscreenheight.Thedefaultvalueis50.

SeeAlsoWixSchema

Version3.0.5419.0

DialogRefElement

DescriptionReferencetoaDialog.Thiswillcausetheentirereferencedsection'scontentstobeincludedintheinstallerdatabase.

WindowsInstallerreferencesNone

ParentsUI

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String TheidentifieroftheDialogto

reference.Yes

SeeAlsoWixSchema,Dialog

Version3.0.5419.0

DigitalCertificateElement

DescriptionAddsadigitalcertificate.

WindowsInstallerreferencesMsiDigitalCertificateTable

ParentsDigitalSignature,PackageCertificates,PatchCertificates

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Identifierforacertificatefile. YesSourceFile String Thepathtothecertificatefile. Yes

SeeAlsoWixSchema

Version3.0.5419.0

DigitalSignatureElement

DescriptionAddsadigitalsignature.

WindowsInstallerreferencesMsiDigitalSignatureTable

ParentsMedia

InnerTextNone

ChildrenChoiceofelements(min:1,max:1)DigitalCertificate(min:1,max:1)

Attributes

Name Type Description RequiredSourceFile String Thepathtosignature'soptional

hashfile.

SeeAlsoWixSchema

Version3.0.5419.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)AnyElementnamespace='##other'processContents='Lax'

Attributes

Name Type DescriptionId String Thisvalueistheunique

identifierofthedirectoryentry.ComponentGuidGenerationSeedGuid TheComponentGuid

GenerationSeedisaguidthatmustbeusedwhenaComponentwiththegenerateguiddirective("*")rootedinastandardWindowsInstallerdirectory(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)ifthisdirectoryrepresents

directoryastheparent(seetheWindowsInstallerSDK'sDirectorytableinformationaboutthe"."operator).

InpriorversionsoftheWiXtoolset,thisattributespecifiedtheshortdirectoryname.attribute'svaluemaynowbeeitherashortorlongdirectoryname.Ifashortdirectorynameisspecified,theShortNameattributemaynotbespecified.nameisspecified,theLongNameattributemaynotbespecified.isalongdirectoryname,theShortNameattributemaybeomittedtoallowWiXtoattempttogenerateauniqueshortdirectoryname.However,ifthisnamecollideswithanotherdirectoryoryouwishtomanuallyspecifyshortdirectoryname,thentheShortNameattributemaybespecified.

ShortName ShortFileNameType Theshortnameofthedirectoryin8.3format.attributeshouldonlybesetifthereisaconflictbetweengeneratedshortdirectorynamesortheuserwantstomanuallyspecifytheshortdirectoryname.

ShortSourceName ShortFileNameType Theshortnameofthe

directoryonthesourcemediain8.3format.shouldonlybesetifthereisaconflictbetweengeneratedshortdirectorynamesuserwantstomanuallyspecifytheshortsourcedirectoryname.

SourceName LongFileNameType Thenameofthedirectoryonthesourcemedia.attributeisnotspecified,WindowsInstallerwilldefaulttotheNameattribute.

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

src String Thisattributehasbeendeprecated;pleaseusetheFileSourceattributeinstead.

HowTosandExamplesHowTo:Addafiletoyourinstaller

SeeAlsoWixSchema,DirectoryRef

Version3.0.5419.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)AnyElementnamespace='##other'processContents='Lax'

Attributes

Name Type Description RequiredId String TheidentifieroftheDirectory

elementtoreference.Yes

DiskId Integer Setsthedefaultdiskidentifierforthefilescontainedinthisdirectory.Thisattribute'svaluemaybeoverriddenbyachildComponent,Directory,MergeorFileelement.SeetheFileorMergeelements'DiskIdattributeformoreinformation.

FileSource String UsedtosetthefilesystemsourceforthisDirectoryRef'schildelements.Formore

information,seeSpecifyingsourcefiles.

src String Thisattributehasbeendeprecated;pleaseusetheFileSourceattributeinstead.

Anyattributenamespace='##other'processContents='lax'

HowTosandExamplesHowTo:Addafiletoyourinstaller

SeeAlsoWixSchema,Directory

Version3.0.5419.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 RequiredId String Uniqueidentifierfor

thedirectorysearch.Yes

AssignToProperty YesNoType SetthevalueoftheouterPropertytotheresultofthissearch.Seeremarksformoreinformation.

Depth Integer Depthbelowthepaththattheinstallersearchesforthefileordirectoryspecifiedby

thesearch.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.0.5419.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 RequiredId String Idofthesearchbeingreferredto. YesParent String Thisattributeisthesignatureof

theparentdirectoryofthefileordirectoryintheSignature_column.Ifthisfieldisnull,andthePathcolumndoesnotexpandtoafullpath,thenallthefixeddrivesoftheuser'ssystemaresearchedbyusingthePath.Thisfieldisakeyintooneofthefollowingtables:theRegLocator,theIniLocator,theCompLocator,ortheDrLocator

tables.Path String Pathontheuser'ssystem.Either

absolute,orrelativetocontainingdirectories.

Remarks

AreferencetoanotherDirectorySearchelementmustreferencethesameId,thesameParentId,andthesamePath.IfanyoftheseattributevaluesaredifferentyoumustinsteaduseaDirectorySearchelement.

HowTosandExamplesHowTo:ReferenceanotherDirectorySearchelement

SeeAlsoWixSchema,ComponentSearch,IniFileSearch,RegistrySearch

Version3.0.5419.0

DisableRollbackElement

DescriptionDisablesrollbackfortheremainderoftheinstallation.Specialactionsdon'thaveabuilt-insequencenumberandthusmustappearrelativetoanotheraction.ThesuggestedwaytodothisisbyusingtheBeforeorAfterattribute.InstallExecuteandInstallExecuteAgaincanoptionallyappearanywherebetweenInstallInitializeandInstallFinalize.

WindowsInstallerreferencesDisableRollbackAction

ParentsInstallExecuteSequence

InnerText(xs:string)Textnodespecifiestheconditionoftheaction.

ChildrenNone

Attributes

Name Type Description RequiredAfter String Thenameofanactionthat

thisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnot

occur.

SeeAlsoWixSchema

Version3.0.5419.0

DuplicateFilesElement

DescriptionDuplicatesfilesinstalledbytheInstallFilesaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesDuplicateFilesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

EmbeddedChainerElement

DescriptionNone

WindowsInstallerreferencesMsiEmbeddedChainerTable

ParentsFragment,Module,Product

InnerText(xs:string)Elementvalueisthecondition.CDATAmaybeusedtowhenaconditioncontainsmanyXMLcharactersthatmustbeescaped.ItisimportanttonotethateachEmbeddedChainerelementmusthaveamutuallyexclusiveconditiontoensurethatonlyoneembeddedchainerwillexecuteatatime.Iftheconditionsarenotmutuallyexclusivethechainerthatexecutesisundeterministic.

ChildrenNone

Attributes

Name Type Description RequiredId String Uniqueidentifierfor

embeddedchainer.Yes

BinarySource String ReferencetotheBinaryelementthatcontainsthechainerexecuteable.MutuallyexclusivewiththeFileSourceandPropertySourceattributes.

CommandLine String Valuetoappendtothetransactionhandleandpassedtothechainerexecutable.

FileSource String ReferencetotheFileelementthatisthechainerexecuteable.MutuallyexclusivewiththeBinarySourceandPropertySourceattributes.

PropertySource String ReferencetoaPropertythatresolvestothefullpathtothechainerexecuteable.MutuallyexclusivewiththeBinarySourceandFileSourceattributes.

SeeAlsoWixSchema,Binary,File,Property,EmbeddedChainerRef

Version3.0.5419.0

EmbeddedChainerRefElement

DescriptionReferencetoanEmbeddedChainerelement.ThiswillforcetheentirereferencedFragment'scontentstobeincludedintheinstallerdatabase.

WindowsInstallerreferencesNone

ParentsFragment,Module,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String YesAnyattributenamespace='##other'processContents='lax'

SeeAlsoWixSchema,EmbeddedChainer

Version3.0.5419.0

EmbeddedUIElement

DescriptionElementvalueisthecondition.UseCDATAifmessagecontainsdelimitercharacters.

WindowsInstallerreferencesMsiEmbeddedUITable

ParentsUI

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenSequence(min:1,max:1)

1. EmbeddedUIResource(min:0,max:unbounded):SpecifiesextrafilestobeextractedforusebytheembeddedUI,suchaslanguageresources.

Attributes

Name Type DescriptionId String UniqueidentifierforembeddedUI.Ifthis

attributeisnotspecifiedtheNameattributeorthefilenameSourceFileattributewillbeused.

IgnoreActionData YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_ACTIONDATAmessages.

IgnoreActionStart YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_ACTIONSTARTmessages.

IgnoreCommonData YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_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_RMFILESINUSEmessages.

IgnoreShowDialog YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_SHOWDIALOGmessages.

IgnoreTerminate YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_TERMINATE

messages.IgnoreUser YesNoType EmbeddedUIwillnotrecieveany

INSTALLLOGMODE_USERmessages.IgnoreWarning YesNoType EmbeddedUIwillnotrecieveany

INSTALLLOGMODE_WARNINGmessages.

Name LongFileNameType ThenamefortheembeddedUIDLLwhenitisextractedfromtheProductandexecuted.(WindowsInstallersupportthetypicalshortfilenameandlongfilenamecombinationforembeddedUIfilesasitdoesforotherkindsoffiles.)IfthisattributeisnotspecifiedthefilenameportionoftheSourceFileused.

SourceFile String PathtothebinaryfilethatistheembeddedUI.ThismustbeaDLLthatexportsthefollowingthreeentrypoints:InitializeEmbeddedUI,EmbeddedUIHandlerandShutdownEmbeddedUI.

SupportBasicUI YesNoType SetyestoallowtheWindowsInstallertodisplaytheembeddedUIduringbasicUIlevelinstallation.

SeeAlsoWixSchema

Version3.0.5419.0

EmbeddedUIResourceElement

DescriptionDefinesaresourceforusebytheembeddedUI.

WindowsInstallerreferencesMsiEmbeddedUITable

ParentsEmbeddedUI

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Identifierforthe

embeddedUIresource.

Yes

Name LongFileNameType ThenamefortheresourcewhenitisextractedfromtheProductforusebytheembeddedUIDLL.(WindowsInstallerdoesnotsupportthetypicalshortfilenameandlongfilenamecombinationforembeddedUIfilesasitdoesforotherkindsoffiles.)Ifthisattributeisnot

Yes

specifiedtheIdattributewillbeused.

SourceFile String PathtothebinaryfilethatistheembeddedUIresource.

Yes

SeeAlsoWixSchema,EmbeddedUI

Version3.0.5419.0

EnsureTableElement

DescriptionUsethiselementtoensurethatatableappearsintheinstallerdatabase,evenifitsempty.

WindowsInstallerreferencesNone

ParentsFragment,Module,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Thenameofthetable. Yes

RemarksThiselementisparticularlyusefulfortwoproblemsthatmayoccurwhilemergingmergemodules:

1. Thefirstlikelyproblemisthatinordertoproperlymergeyouneedtohavecertaintablespresentpriortomerging.Usingthiselementisonewaytoensurethosetablesarepresentpriortothemerging.

2. Theothercommonproblemisthatamergemodulehasincorrectvalidationinformationaboutsometables.Byensuringthesetablespriortomerging,youcanavoidthisproblembecausethecorrectvalidationinformationwillgointotheinstallerdatabasebeforethemergemodulehasachancetosetitincorrectly.

SeeAlsoWixSchema

Version3.0.5419.0

EnvironmentElement

DescriptionEnvironmentvariablesaddedorremovedfortheparentcomponent.

WindowsInstallerreferencesEnvironmentTable

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Uniqueidentifierfor

environmententry.Yes

Action Enumeration Specfieswhethertheenvironmentalvariableshouldbecreated,setorremovedwhentheparentcomponentisinstalled.Thisattribute'svaluemustbeoneofthefollowing:create

Createstheenvironmentvariableifitdoesnotexist,thensetitduringinstallation.Thishasnoeffectonthevalueoftheenvironmentvariableif

italreadyexists.

setCreatestheenvironmentvariableifitdoesnotexist,andthensetitduringinstallation.Iftheenvironmentvariableexists,setitduringtheinstallation.

removeRemovestheenvironmentvariableduringaninstallation.TheinstalleronlyremovesanenvironmentvariableduringaninstallationifthenameandvalueofthevariablematchtheentriesintheNameandValueattributes.Ifyouwanttoremoveanenvironmentvariable,regardlessofitsvalue,donotsettheValueattribute.

Name String Nameoftheenvironmentvariable.

Yes

Part Enumeration Thisattribute'svaluemustbeoneofthefollowing:all

Thisvalueistheentireenvironmentalvariable.Thisisthedefault.

first

Thisvalueisprefixed.

lastThisvalueisappended.

Permanent YesNoType Specifiesthattheenvironmentvariableshouldnotberemovedonuninstall.

Separator String Optionalattributetochangetheseparatorusedbetweenvalues.Bydefaultasemicolonisused.

System YesNoType Specifiesthattheenvironmentvariableshouldbeaddedtothesystemenvironmentspace.Thedefaultis'no'whichindicatestheenvironmentvariableisaddedtotheuserenvironmentspace.

Value String Thevaluetosetintotheenvironmentvariable.Ifthisattributeisnotset,theenvironmentvariableisremovedduringinstallationifitexistsonthemachine.

SeeAlsoWixSchema

Version3.0.5419.0

ErrorElement

DescriptionNone

WindowsInstallerreferencesErrorTable

ParentsUI

InnerText(xs:string)ElementvalueisMessage,useCDATAifmessagecontainsdelimitercharacters

ChildrenNone

Attributes

Name Type Description RequiredId Integer Numberoftheerrorforwhicha

messageisbeingprovided.SeeMSISDKforerrordefinitions.

SeeAlsoWixSchema

Version3.0.5419.0

ExclusionElement

DescriptionDeclaresamergemodulewithwhichthismergemoduleisincompatible.

WindowsInstallerreferencesNone

ParentsModule

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredExcludedId String Identifierofthemerge

modulethatisincompatible.

Yes

ExcludedMaxVersion String Maximumversionexcludedfromarange.Ifnotset,allversionsafterminareexcluded.Ifneithermaxnormin,noexclusionbasedonversion.

ExcludedMinVersion String Minimumversionexcludedfromarange.Ifnotset,allversionsbeforemaxareexcluded.Ifneithermaxnormin,noexclusionbasedonversion.

ExcludeExceptLanguage Integer NumericlanguageIDofthemergemoduleinExcludedID.Allexceptthislanguagewillbeexcluded.OnlyoneofExcludeExceptLanguageandExcludeLanguagemaybespecified.

ExcludeLanguage Integer NumericlanguageIDofthemergemoduleinExcludedID.Thespecifiedlanguagewillbeexcluded.OnlyoneofExcludeExceptLanguageandExcludeLanguagemaybespecified.

SeeAlsoWixSchema

Version3.0.5419.0

ExecuteActionElement

DescriptionInitiatestheexecutionsequence.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesExecuteActionAction

ParentsAdminUISequence,InstallUISequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.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 DescriptionId String Thisissimplythefileextension,like"doc"or"xml".

Donotincludetheprecedingperiod.Advertise YesNoType Whetherthisextensionistobeadvertised.The

defaultis"no".ContentType String TheMIMEtypethatistobewritten.Anyattributenamespace='##other'processContents='lax'IsRichSavedGame Registersthisextensionfortherichsavedgames

propertyhandleronWindowsVistaandlater.(http://schemas.microsoft.com/wix/GamingExtension)

SeeAlsoWixSchema

Version3.0.5419.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 RequiredFile String ForeignkeyintotheFiletable. YesOrder Int Specifiestheorderoftheexternal

filestousewhencreatingthepatch.

Yes

Source String Fullpathoftheexternalfile. src String Thisattributehasbeen

deprecated;pleaseusetheSourceattributeinstead.

SeeAlsoWixSchema

Version3.0.5419.0

FailureElement

DescriptionFailureactionforaServiceConfigFailureActionselement.

WindowsInstallerreferencesNone

ParentsServiceConfigFailureActions

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredAction String Specifiestheactiontotakewhen

theservicefails.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.0.5419.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 RequiredDiskId Int EnteredintotheDiskIdfield

ofthenewMediatablerecord.

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

MediaSrcProp String EnteredintotheSourcefieldofthenewMediatableentryoftheupgradedimage.

Name String Identifierforthefamily. YesSequenceStart Int Sequencenumberforthe

startingfile.VolumeLabel String Enteredintothe

VolumeLabelfieldofthenewMediatablerecord.

SeeAlsoWixSchema

Version3.0.5419.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)AnyElementnamespace='##other'processContents='Lax'

Attributes

Name Type DescriptionId String Uniqueidentifierofthefeature.Absent Enumeration Thisattributedeterminesifauserwillhavethe

optiontosetafeaturetoabsentintheuserinterface.Thisattribute'svaluemustbeoneofthefollowing:allow

Allowstheuserinterfacetodisplayanoptionto

changethefeaturestatetoAbsent.

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:

collapseInitiallyshowsthefeaturecollapsed.defaultvalue.

expandInitiallyshowsthefeatureexpanded.

hiddenPreventsthefeaturefromdisplayingintheuserinterface.

<anexplicitintegervalue>Foradvancedusersonly,itispossibletodirectlysettheintegervalueofthedisplayvaluethatwillappearintheFeaturerow.

InstallDefault Enumeration Thisattributedeterminesthedefaultinstall/runlocationofafeature.ThisattributecannotbespecifiedifthevalueoftheFollowParentattributeis'yes'sincethatwouldasktheinstallertoforcethisfeaturetofollowtheparentinstallationstateandsimultaneouslyfavoraparticularinstallationstatejustforthisfeature.Thisattribute'svaluemustbeoneofthefollowing:followParent

Forcesthefeaturetofollowthesameinstallationstateasitsparentfeature.

localFavorsinstallingthisfeaturelocallybysettingthemsidbFeatureAttributesFavorLocalattribute.

sourceFavorsrunningthisfeaturefromsourcebysettingthemsidbFeatureAttributesFavorSourceattribute.

Level Integer Setstheinstalllevelofthisfeature.disablethefeature.Processingthecanmodifythelevelvalue(thisissetviatheConditionchildelement).

Title String Shortstringoftextidentifyingthefeature.islistedasanitembytheSelectionTreecontroloftheSelectionDialog.

TypicalDefault Enumeration Thisattributedeterminesthedefaultadvertisestateofthefeature.Thisattribute'svaluemustbeoneofthefollowing:advertise

SetsthefeaturetobeadvertisedbysettingthemsidbFeatureAttributesFavorAdvertiseattribute.ThisvaluecannotbesetifthevalueoftheAllowAdvertiseattributeis'no'sincethatwouldasktheinstallertodisallowtheadvertisedstateforthisfeaturewhileatthesametimefavoringit.

installSetsthefeaturetothedefaultnon-advertisedinstallationoption.

Anyattributenamespace='##other'processContents='lax'

HowTosandExamplesHowTo:Addafiletoyourinstaller

SeeAlsoWixSchema,FeatureRef

Version3.0.5419.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)AnyElementnamespace='##other'processContents='Lax'

Attributes

Name Type Description RequiredId String IdentifierfortheFeatureGroup. YesAnyattributenamespace='##other'processContents='lax'

SeeAlsoWixSchema,FeatureGroupRef

Version3.0.5419.0

FeatureGroupRefElement

DescriptionCreateareferencetoaFeatureGroupinanotherFragment.

WindowsInstallerreferencesNone

ParentsFeature,FeatureGroup,FeatureRef,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Theidentifierofthe

FeatureGrouptoreference.Yes

IgnoreParent YesNoType Normallyfeaturegroupreferencesthatendupnestedunderaparentelementcreateaconnectiontothatparent.ThisbehaviorisundesirablewhentryingtosimplyreferencetoaFeatureGroupinadifferentFragment.Specify'yes'tohavethisfeaturegroupreferencenotcreateaconnectiontoitsparent.Thedefaultis'no'.

Primary YesNoType Setthisattributeto'yes'inordertomaketheparent

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

Anyattributenamespace='##other'processContents='lax'

SeeAlsoWixSchema,FeatureGroup

Version3.0.5419.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)AnyElementnamespace='##other'processContents='Lax'

Attributes

Name Type Description RequiredId String TheidentifieroftheFeature

elementtoreference.Yes

IgnoreParent YesNoType Normallyfeaturereferencesthatarenestedunderaparentelementcreateaconnectiontothatparent.Thisbehavioris

undesirablewhentryingtosimplyreferenceaFeatureinadifferentFragment.Specify'yes'tohavethisfeaturereferencenotcreateaconnectiontoitsparent.Thedefaultis'no'.

Anyattributenamespace='##other'processContents='lax'

SeeAlsoWixSchema,Feature

Version3.0.5419.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)AnyElementnamespace='##other'processContents='Lax'EventManifestFirewallException

FormatsFileGameHelpCollectionHelpFileNativeImagePerfCounterPerfCounterManifestPermissionExSnapInTypesFile

Attributes

Name Type DescriptionAssembly Enumeration SpecifiesifthisFileisa

Win32Assemblyor.NETAssemblythatneedstobeinstalledintotheGlobalAssemblyCache(GAC).Ifthevalueis'.net'or'win32',thisfilemustalsobethekeypathoftheComponent.Thisattribute'svaluemustbeoneofthefollowing:.net

Thefileisa.NETFrameworkassembly.

noThefileisnota.NETFrameworkorWin32assembly.Thisisthedefaultvalue.

win32

ThefileisaWin32assembly.

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,witheachpropertyenclosedinsidesquarebrackets.The

valuemaybesettoanemptystring.IncludingthisattributewillcauseanentrytobegeneratedforthefileintheBindImagetable.

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

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

arenotinstalledbasedontheirownversion.

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,yousetthepackagingoptionstothevaluesspecifiedintheMediaelement(valuessuchas

compressionlevel,cabembedding,etc...).SpecifyingtheDiskIdattributeontheFileelementoverridesthedefaultDiskIdattributefromtheparentComponentelement.IfnoDiskIdattributeisspecified,thedefaultis"1".ThisDiskIdattributeisignoredwhencreatingamergemodulebecausemergemodulesdonothavemedia.

FontTitle String CausesanentrytobegeneratedforthefileintheFonttablewiththespecifiedFontTitle.Thisattributeisintendedtobeusedtoregisterthefileasanon-TrueTypefont.

Hidden YesNoType Settoyesinordertohavethefile'shiddenattributesetwhenitisinstalledonthetargetmachine.

Id String TheuniqueidentifierforthisFileelement.IfyouomitId,itdefaultstothefilenameportionoftheSourceattribute,ifspecified.MaybereferencedasaPropertybyspecifying[#value].

KeyPath YesNoType Settoyesinorderto

forcethisfiletobethekeypathfortheparentcomponent.

LongName LongFileNameType Thisattributehasbeendeprecated;pleaseusetheNameattributeinstead.

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

attribute,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 Setiftheentirefileshouldbeinstalledratherthancreatingabinarypatch.

ProcessorArchitecture Enumeration Specifiesthearchitectureforthisassembly.Thisattributeshouldonlybeusedon.NETFramework2.0orhigherassemblies.Thisattribute'svaluemustbe

oneofthefollowing:msil

Thefileisa.NETFrameworkassemblythatisprocessor-neutral.

x86Thefileisa.NETFrameworkassemblyforthex86processor.

x64Thefileisa.NETFrameworkassemblyforthex64processor.

ia64Thefileisa.NETFrameworkassemblyfortheia64processor.

ReadOnly YesNoType Settoyesinordertohavethefile'sread-onlyattributesetwhenitisinstalledonthetargetmachine.

SelfRegCost Integer Thecostofregisteringthefileinbytes.Thismustbeanon-negativenumber.IncludingthisattributewillcauseanentrytobegeneratedforthefileintheSelfRegtable.

ShortName ShortFileNameType Theshortfilenameofthefilein8.3format.

Thisattributeshouldonlybesetifthereisaconflictbetweengeneratedshortfilenamesortheuserwantstomanuallyspecifytheshortfilename.

Source String SpecifiesthepathtotheFileinthebuildprocess.OverridesdefaultsourcepathsetbyparentdirectoriesandNameattribute.Thisattributemustbesetifnosourceinformationcanbegatheredfromparentdirectories.Formoreinformation,seeSpecifyingsourcefiles

src String Thisattributehasbeendeprecated;pleaseusetheSourceattributeinstead.

System YesNoType Settoyesinordertohavethefile'ssystemattributesetwhenitisinstalledonthetargetmachine.

TrueType YesNoType CausesanentrytobegeneratedforthefileintheFonttablewithnoFontTitlespecified.ThisattributeisintendedtobeusedtoregisterthefileasaTrueTypefont.

Vital YesNoType Ifafileisvital,theninstallationcannotproceedunlessthefile

issuccessfullyinstalled.Theuserwillhavenooptiontoignoreanerrorinstallingthisfile.Ifanerroroccurs,theycanmerelyretrytoinstallthefileoraborttheinstallation.Thedefaultis"yes,"unlessthe-sfdvitalswitch(candle.exe)orSuppressFileDefaultVitalproperty(.wixproj)isused.

Anyattributenamespace='##other'processContents='lax'

HowTosandExamplesHowTo:Addafiletoyourinstaller

SeeAlsoWixSchema

Version3.0.5419.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 RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,CostInitialize,CostFinalize

Version3.0.5419.0

FileSearchElement

DescriptionSearchesforfileandassignstofullpathvalueofparentProperty

WindowsInstallerreferencesDrLocatorTable,SignatureTable

ParentsComponentSearch,DirectorySearch,DirectorySearchRef,IniFileSearch,RegistrySearch

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Uniqueidentifierfor

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

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

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

RemarksWhentheparentDirectorySearch/@Depthattributeisgreaterthan1,theFileSearch/@IdattributemustbeabsentorthesameastheparentDirectorySearch/@Idattributevalue,unlesstheparentDirectorySearch/@AssignToPropertyattributevalueis

'yes'.

HowTosandExamplesHowTo:Checktheversionnumberofafileduringinstallation

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

Version3.0.5419.0

FileSearchRefElement

DescriptionReferencesanexistingFileSearchelement.

WindowsInstallerreferencesNone

ParentsComponentSearch,DirectorySearch,DirectorySearchRef,IniFileSearch,RegistrySearch

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String SpecifytheIdtotheFileSearchto

reference.Yes

Remarks

AreferencetoanotherFileSearchelementmustreferencethesameIdandthesameParentId.IfanyoftheseattributevaluesaredifferentyoumustinsteaduseaFileSearchelement.

SeeAlsoWixSchema,FileSearch

Version3.0.5419.0

FileTypeMaskElement

DescriptionFileTypedataforclassIdregistration.

WindowsInstallerreferencesNone

ParentsClass

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredMask HexType HexvaluethatisAND'dagainst

thebytesinthefileatOffset.Yes

Offset Integer Offsetintofile.Ifpositive,offsetisfromthebeginning;ifnegative,offsetisfromtheend.

Yes

Value HexType IftheresultoftheAND'ingofMaskwiththebytesinthefileisValue,thefileisamatchforthisFileType.

Yes

SeeAlsoWixSchema

Version3.0.5419.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 RequiredAfter String Thenameofanactionthat

thisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,Upgrade

Version3.0.5419.0

ForceRebootElement

DescriptionPromptstheuserforarestartofthesystemduringtheinstallation.Specialactionsdon'thaveabuilt-insequencenumberandthusmustappearrelativetoanotheraction.ThesuggestedwaytodothisisbyusingtheBeforeorAfterattribute.InstallExecuteandInstallExecuteAgaincanoptionallyappearanywherebetweenInstallInitializeandInstallFinalize.

WindowsInstallerreferencesForceRebootAction

ParentsInstallExecuteSequence

InnerText(xs:string)Textnodespecifiestheconditionoftheaction.

ChildrenNone

Attributes

Name Type Description RequiredAfter String Thenameofanactionthat

thisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnot

occur.

SeeAlsoWixSchema

Version3.0.5419.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)CustomAction(min:0,max:unbounded)CustomActionRef(min:0,max:unbounded)CustomTable(min:0,max:unbounded)Directory(min:0,max:unbounded)

DirectoryRef(min:0,max:unbounded)EmbeddedChainer(min:0,max:unbounded)EmbeddedChainerRef(min:0,max:unbounded)EnsureTable(min:0,max:unbounded)Feature(min:0,max:unbounded)FeatureGroup(min:0,max:unbounded)FeatureRef(min:0,max:unbounded)Icon(min:0,max:unbounded)IgnoreModularization(min:0,max:unbounded)Media(min:0,max:unbounded)PackageCertificates(min:0,max:unbounded)PatchCertificates(min:0,max:unbounded)PatchFamily(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)

AnyElementnamespace='##other'processContents='Lax'CloseApplicationComPlusApplicationComPlusApplicationRoleComPlusPartition

ComPlusPartitionRoleGroupHelpCollectionRefHelpFilterSqlDatabaseUserWebApplicationWebAppPoolWebDirPropertiesWebLogWebSite

Attributes

Name Type Description RequiredId String OptionalidentifierforaFragment.

Shouldonlybesetbyadvanceduserstotagsections.

SeeAlsoWixSchema

Version3.0.5419.0

IconElement

DescriptionIconusedforShortcut,ProgId,orClasselements(butnotUIcontrols)

WindowsInstallerreferencesIconTable

ParentsFragment,Module,Product,Shortcut

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String TheIdcannotbylongerthan55

characters.InordertopreventerrorsincaseswheretheIdismodularized,itshouldnotbelongerthan18characters.

Yes

SourceFile String Pathtotheiconfile. src String Thisattributehasbeen

deprecated;pleaseusetheSourceFileattributeinstead.

HowTosandExamplesHowTo:Setyourinstaller'siconinAdd/RemoveProgramsHowTo:CreateashortcutontheStartMenu

SeeAlsoWixSchema

Version3.0.5419.0

IconRefElement

DescriptionUsedonlyforPatchFamiliestoincludeonlyaicontableentryinapatch.

WindowsInstallerreferencesNone

ParentsPatchFamily

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String TheidentifieroftheIconelement

toreference.Yes

Anyattributenamespace='##other'processContents='lax'

SeeAlsoWixSchema

Version3.0.5419.0

IgnoreModularizationElement

DescriptionThiselementhasbeendeprecated.UsetheBinary/@SuppressModularization,CustomAction/@SuppressModularization,orProperty/@SuppressModularizationattributesinstead.

WindowsInstallerreferencesNone

ParentsFragment,Module

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredName String Thenameoftheitemtoignore

modularizationfor.Yes

Type Enumeration Thetypeoftheitemtoignoremodularizationfor.Thisattribute'svaluemustbeoneofthefollowing:Action

Property

Directory

SeeAlsoWixSchema

Version3.0.5419.0

IgnoreRangeElement

DescriptionSpecifiespartofafilethatistobeignoredduringpatching.

WindowsInstallerreferencesNone

ParentsExternalFile,TargetFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredLength Int Lengthoftherange. YesOffset Int Offsetofthestartoftherange. Yes

SeeAlsoWixSchema

Version3.0.5419.0

IgnoreTableElement

DescriptionSpecifiesatablefromthemergemodulethatisnotmergedintoan.msifile.Ifthetablealreadyexistsinan.msifile,itisnotmodifiedbythemerge.Thespecifiedtablecanthereforecontaindatathatisunneededafterthemerge.Tominimizethesizeofthe.msmfile,itisrecommendedthatdevelopersremoveunusedtablesfrommodulesintendedforredistributionratherthancreatingIgnoreTableelementsforthosetables.

WindowsInstallerreferencesNone

ParentsModule

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Thenameofthetableinthemerge

modulethatisnottobemergedintothe.msifile.

Yes

SeeAlsoWixSchema

Version3.0.5419.0

IncludeElement

DescriptionThisisthetop-levelcontainerelementforeverywxifile.

WindowsInstallerreferencesNone

ParentsNone

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)AnyElementnamespace='##any'processContents='Lax'

AttributesNone

SeeAlsoWixSchema

Version3.0.5419.0

IniFileElement

DescriptionAddsorremoves.inifileentries.

WindowsInstallerreferencesIniFileTable,RemoveIniFileTable

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Identifierforinifile. YesAction Enumeration Thetypeof

modificationtobemade.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,this

Yes

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

Section String Thelocalizable.inifilesection.

Yes

ShortName ShortFileNameType Theshortnameofthein8.3format.Thisattributeshouldonlybesetifthereisaconflictbetweengeneratedshortnamesortheuser

wantstomanuallyspecifytheshortname.

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

SeeAlsoWixSchema

Version3.0.5419.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 RequiredId String Externalkeyintothe

Signaturetable.Yes

Field Integer Thefieldinthe.iniline.IffieldisNullor0,theentirelineisread.

Key String Thekeyvaluewithinthesection.

Yes

LongName LongFileNameType Thisattributehasbeendeprecated;pleaseusetheNameattribute

instead.Name LongFileNameType Inpriorversionsof

theWiXtoolset,thisattributespecifiedtheshortname.Thisattribute'svaluemaynowbeeitherashortorlongname.Ifashortnameisspecified,theShortNameattributemaynotbespecified.Ifalongnameisspecified,theLongNameattributemaynotbespecified.Also,ifthisvalueisalongname,theShortNameattributemaybeomittedtoallowWiXtoattempttogenerateauniqueshortname.However,ifyouwishtomanuallyspecifytheshortname,thentheShortNameattributemaybespecified.

Yes

Section String Thelocalizable.inifilesection.

Yes

ShortName ShortFileNameType Theshortnameofthefilein8.3format.Thisattributeshouldonlybesetiftheuserwantstomanuallyspecifythe

shortname.Type Enumeration Mustbefileiflast

childisFileSearchelementandmustbedirectoryiflastchildisDirectorySearchelement.Thisattribute'svaluemustbeoneofthefollowing:directory

Adirectorylocation.

fileAfilelocation.Thisisthedefaultvalue.

rawAraw.inivalue.

SeeAlsoWixSchema,ComponentSearch,RegistrySearch

Version3.0.5419.0

InstallAdminPackageElement

DescriptionCopiestheproductdatabasetotheadministrativeinstallationpoint.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesInstallAdminPackageAction

ParentsAdminExecuteSequence,AdminUISequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

InstallExecuteElement

DescriptionRunsascriptcontainingalloperationsspooledsinceeitherthestartoftheinstallationorthelastInstallExecuteaction,orInstallExecuteAgainaction.Specialactionsdon'thaveabuilt-insequencenumberandthusmustappearrelativetoanotheraction.ThesuggestedwaytodothisisbyusingtheBeforeorAfterattribute.InstallExecuteandInstallExecuteAgaincanoptionallyappearanywherebetweenInstallInitializeandInstallFinalize.

WindowsInstallerreferencesInstallExecuteAction

ParentsInstallExecuteSequence

InnerText(xs:string)Textnodespecifiestheconditionoftheaction.

ChildrenNone

Attributes

Name Type Description RequiredAfter String Thenameofanactionthat

thisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactionina

sequence.Suppress YesNoType Ifyes,thisactionwillnot

occur.

SeeAlsoWixSchema

Version3.0.5419.0

InstallExecuteAgainElement

DescriptionRunsascriptcontainingalloperationsspooledsinceeitherthestartoftheinstallationorthelastInstallExecuteaction,orInstallExecuteAgainaction.ShouldonlybeusedafterInstallExecute.Specialactionsdon'thaveabuilt-insequencenumberandthusmustappearrelativetoanotheraction.ThesuggestedwaytodothisisbyusingtheBeforeorAfterattribute.InstallExecuteandInstallExecuteAgaincanoptionallyappearanywherebetweenInstallInitializeandInstallFinalize.

WindowsInstallerreferencesInstallExecuteAgainAction

ParentsInstallExecuteSequence

InnerText(xs:string)Textnodespecifiestheconditionoftheaction.

ChildrenNone

Attributes

Name Type Description RequiredAfter String Thenameofanactionthat

thisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactionina

sequence.Suppress YesNoType Ifyes,thisactionwillnot

occur.

SeeAlsoWixSchema

Version3.0.5419.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):Stopsaserviceand

removesitsregistrationfromthesystem.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):Installsacopyof

acomponent(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):DeterminesthelocationofthesourceandsetstheSourceDirpropertyifthe

sourcehasnotbeenresolvedyet.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):ManagestheunregistrationofOLEProgIdinformationwiththesystem.

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

InstallFilesElement

DescriptionCopiesfilesspecifiedintheFiletablefromthesourcedirectorytothedestinationdirectory.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesInstallFilesAction

ParentsAdminExecuteSequence,AdminUISequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

InstallFinalizeElement

DescriptionMarkstheendofasequenceofactionsthatchangethesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesInstallFinalizeAction

ParentsAdminExecuteSequence,AdminUISequence,AdvertiseExecuteSequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,InstallInitialize

Version3.0.5419.0

InstallInitializeElement

DescriptionMarksthebeginningofasequenceofactionsthatchangethesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesInstallInitializeAction

ParentsAdminExecuteSequence,AdminUISequence,AdvertiseExecuteSequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,InstallFinalize

Version3.0.5419.0

InstallODBCElement

DescriptionInstallsthedrivers,translators,anddatasourcesintheODBCDrivertable,ODBCTranslatortable,andODBCDataSourcetable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesInstallODBCAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

InstallServicesElement

DescriptionRegistersaserviceforthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesInstallServicesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.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):Installsacopyof

acomponent(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.0.5419.0

InstallValidateElement

DescriptionVerifiesthatallcostedvolumeshaveenoughspacefortheinstallation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesInstallValidateAction

ParentsAdminExecuteSequence,AdminUISequence,AdvertiseExecuteSequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

InstanceElement

DescriptionDefinesaninstancetransformforyourproduct.

WindowsInstallerreferencesNone

ParentsInstanceTransforms

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Theidentityoftheinstance

transform.Thisvaluewilldefinethenamebywhichtheinstanceshouldbereferredtoonthecommandline.Inaddition,thevalueofthethisattributewilldeterminewhatthevalueofthepropertyspecifiedinPropertyattributeonInstanceTransformswillchangetoforeachinstance.

Yes

ProductCode String TheProductCodeforthisinstance.

Yes

ProductName String TheProductNameforthisinstance.

SeeAlsoWixSchema

Version3.0.5419.0

InstanceTransformsElement

DescriptionUsethiselementtocontaindefinitionsforinstancetransforms.

WindowsInstallerreferencesNone

ParentsProduct

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)Instance(min:0,max:unbounded)

Attributes

Name Type Description RequiredProperty String TheIdofthePropertywho'svalue

shouldchangeforeachinstance.Yes

SeeAlsoWixSchema

Version3.0.5419.0

InterfaceElement

DescriptionCOMInterfaceregistrationforparentTypeLib.

WindowsInstallerreferencesRegistryTable

ParentsClass,Component,TypeLib

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId Guid GUIDidentifierfor

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

IsolateComponentElement

DescriptionSharedComponenttobeprivatelyreplicatedinfolderofparentComponent

WindowsInstallerreferencesIsolateComponentTable

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredShared String SharedComponentforthis

applicationComponent.Yes

SeeAlsoWixSchema

Version3.0.5419.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 RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,IsolateComponent

Version3.0.5419.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 RequiredAfter String Thenameofanactionthat

thisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Overridable YesNoType If"yes",thesequencingofthisactionmaybe

overriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,Condition

Version3.0.5419.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 RequiredProperty String Propertytiedtothisgroup Yes

SeeAlsoWixSchema

Version3.0.5419.0

ListItemElement

DescriptionThevalue(andoptionaltext)associatedwithaniteminaComboBox,ListBox,orListView.

WindowsInstallerreferencesComboBoxTable,ListBoxTable,ListViewTable

ParentsComboBox,ListBox,ListView

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredIcon String TheidentifieroftheBinary(not

Icon)elementcontainingtheicontoassociatewiththisitem.ThisvalueisonlyvalidwhennestedunderaListViewelement.

Text String Thelocalizable,visibletexttobeassignedtotheitem.Ifnotspecified,thiswilldefaulttothevalueoftheValueattribute.

Value String ThevalueassignedtotheassociatedComboBox,ListBox,orListViewpropertyifthisitemisselected.

Yes

SeeAlsoWixSchema

Version3.0.5419.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 RequiredProperty String Propertytiedtothisgroup Yes

SeeAlsoWixSchema

Version3.0.5419.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 RequiredId Integer Diskidentifierfor

Mediatable.Thisnumbermustbeequaltoorgreaterthan1.

Yes

Cabinet String Thenameofthecabinetifsomeorallofthefilesstoredonthemediaareinacabinetfile.Ifnocabinetsareused,thisattributemustnotbeset.

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

Cabinetattribute.Layout String Thisattributespecifies

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

Source String Optionalpropertythatidentifiesthesourceoftheembeddedcabinet.Ifacabinetisspecifiedforapatch,thispropertyshouldbedefinedanduniquetoeachpatchsothattheembeddedcabinetcontainingpatched

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

src String Thisattributehasbeendeprecated;pleaseusetheLayoutattributeinstead.

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

SeeAlsoWixSchema

Version3.0.5419.0

MergeElement

DescriptionMergedirectivetobringinamergemodulethatwillberedirectedtotheparentdirectory.

WindowsInstallerreferencesNone

ParentsDirectory,DirectoryRef

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)ConfigurationData(min:0,max:unbounded):Datatouseasinputtoaconfigurablemergemodule.

Attributes

Name Type Description RequiredId String Theunique

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

MergeRefElement

DescriptionMergereferencetoconnectaMergeModuletoparentFeature

WindowsInstallerreferencesNone

ParentsFeature,FeatureGroup,FeatureRef

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Theuniqueidentifierforthe

Mergeelementtobereferenced.

Yes

Primary YesNoType SpecifieswhetherthefeaturecontainingthisMergeRefistheprimaryfeatureforadvertisingthemergemodule'scomponents.

Anyattributenamespace='##other'processContents='lax'

HowTosandExamplesHowTo:InstalltheVisualC++Redistributablewithyourinstaller

SeeAlsoWixSchema,Merge

Version3.0.5419.0

MigrateFeatureStatesElement

DescriptionUsedforupgradingorinstallingoveranexistingapplication.Readsfeaturestatesfromexistingapplicationandsetsthesefeaturestatesforthependinginstallation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesMigrateFeatureStatesAction

ParentsInstallExecuteSequence,InstallUISequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

MIMEElement

DescriptionMIMEcontent-typeforanExtension

WindowsInstallerreferencesMIMETable

ParentsExtension

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredAdvertise YesNoType WhetherthisMIMEistobe

advertised.Thedefaultistomatchwhatevertheparentextensionelementuses.Iftheparentelementisnotadvertised,thenthiselementcannotbeadvertisedeither.

Class Guid ClassIDfortheCOMserverthatistobeassociatedwiththeMIMEcontent.

ContentType String ThisistheidentifierfortheMIMEcontent.Itiscommonlywrittenintheformoftype/format.

Yes

Default YesNoType If'yes',becomethecontenttypefortheparent

Extension.Thedefaultvalueis'no'.

SeeAlsoWixSchema

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

AnyElementnamespace='##other'processContents='Lax'CloseApplicationComPlusApplicationComPlusApplicationRoleComPlusPartitionComPlusPartitionRoleGroupHelpCollectionRefHelpFilterSqlDatabaseUserWebApplication

WebAppPoolWebDirPropertiesWebLogWebSite

Attributes

Name Type Description RequiredId String Thenameofthemerge

module(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.0.5419.0

MoveFilesElement

DescriptionLocatesexistingfilesonthesystemandmovesorcopiesthosefilestoanewlocation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesMoveFileTable,MoveFilesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

MsiPublishAssembliesElement

DescriptionManagestheadvertisementofCLRandWin32assemblies.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesMsiPublishAssembliesAction

ParentsAdvertiseExecuteSequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

MsiUnpublishAssembliesElement

DescriptionManagestheunadvertisementofCLRandWin32assembliesthatarebeingremoved.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesMsiUnpublishAssembliesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

MultiStringValueElement

DescriptionUseseveraloftheseelementstospecifyeachregistryvalueinamultiStringregistryvalue.ThiselementcannotbeusediftheValueattributeisspecifiedunlesstheTypeattributeissetto'multiString'.ThevaluesshouldgointhetextareaoftheMultiStringValueelement.

WindowsInstallerreferencesRegistryTable

ParentsRegistryValue

SeeAlsoWixSchema

Version3.0.5419.0

ODBCDataSourceElement

DescriptionODBCDataSourceforaComponent

WindowsInstallerreferencesODBCDataSourceTable

ParentsComponent,ODBCDriver

InnerTextNone

ChildrenSequence(min:1,max:1)

1. Property(min:0,max:unbounded):TranslatesintoODBCSourceAttributes

Attributes

Name Type Description RequiredId String Identifierofthedata

source.Yes

DriverName String RequiredifnotfoundaschildofODBCDriverelement

KeyPath YesNoType Set'yes'toforcethisfiletobekeypathforparentComponent

Name String Nameforthedatasource. YesRegistration Enumeration Scopeforwhichthedata

sourceshouldberegistered.Thisattribute'svaluemustbeoneofthefollowing:machine

Yes

Datasourceisregisteredpermachine.

userDatasourceisregisteredperuser.

SeeAlsoWixSchema

Version3.0.5419.0

ODBCDriverElement

DescriptionODBCDriverforaComponent

WindowsInstallerreferencesODBCDriverTable

ParentsComponent,File

InnerTextNone

ChildrenSequence(min:1,max:1)

1. Property(min:0,max:unbounded):TranslatesintoODBCSourceAttributes

2. ODBCDataSource(min:0,max:unbounded)

Attributes

Name Type Description RequiredId String Identifierforthedriver. YesFile String Requiredifnotfoundaschildof

Fileelement

Name String Nameforthedriver. YesSetupFile String Requiredifnotfoundaschildof

FileelementordifferentfromFileattributeabove

SeeAlsoWixSchema

Version3.0.5419.0

ODBCTranslatorElement

DescriptionODBCTranslatorforaComponent

WindowsInstallerreferencesODBCTranslatorTable

ParentsComponent,File

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Identifierforthetranslator. YesFile String Requiredifnotfoundaschildof

Fileelement

Name String Nameforthetranslator. YesSetupFile String Requiredifnotfoundaschildof

FileelementordifferentfromFileattributeabove

SeeAlsoWixSchema

Version3.0.5419.0

OptimizeCustomActionsElement

DescriptionIndicateswhethercustomactionscanbeskippedwhenapplyingthepatch.

WindowsInstallerreferencesMsiPatchMetadataTable

ParentsPatch,PatchMetadata

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredSkipAssignment YesNoType Skipproperty(type51)

anddirectory(type35)assignmentcustomactions.

SkipDeferred YesNoType Skipcustomactionsthatrunwithinthescript.

SkipImmediate YesNoType Skipimmediatecustomactionsthatarenotpropertyordirectoryassignmentcustomactions.

SeeAlsoWixSchema

Version3.0.5419.0

PackageElement

DescriptionPropertiesaboutthepackagetobeplacedintheSummaryInformationStream.ThesearevisiblefromCOMthroughtheIStreaminterface,andthesepropertiescanbeseenonthepackageinExplorer.

WindowsInstallerreferencesNone

ParentsModule,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredAdminImage YesNoType Setto'yes'ifthe

sourceisanadminimage.

Comments String Optionalcommentsforbrowsing.

Compressed YesNoType Setto'yes'tohavecompressedfilesinthesource.Thisattributecannotbesetformergemodules.

Description String Theproductfullnameordescription.

Id AutogenGuid Thepackagecode

GUIDforaproductormergemodule.Whencompilingaproduct,thisattributeshouldnotbesetinordertoallowthepackagecodetobegeneratedforeachbuild.Whencompilingamergemodule,thisattributemustbesettothemodularizationguid.

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

InstallPrivileges Enumeration UsethisattributetospecifythepriviligesrequiredtoinstallthepackageonWindowsVistaandabove.Thisattribute'svaluemustbeoneofthefollowing:limited

Setthisvaluetodeclarethatthepackagedoesnotrequireelevatedprivilegestoinstall.

elevatedSetthisvaluetodeclarethatthepackagerequireselevatedprivilegestoinstall.Thisisthedefaultvalue.

InstallScope Enumeration Usethisattributetospecifytheinstallationscopeofthispackage: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 Theplatformsupportedbythe

package.Thisattribute'svaluemustbeoneofthefollowing:x86

Setthisvaluetodeclarethatthepackageisanx86package.

ia64Setthisvaluetodeclarethatthepackageisania64package.ThisvaluerequiresthattheInstallerVersionpropertybesetto200orgreater.

x64Setthisvaluetodeclarethatthepackageisanx64package.ThisvaluerequiresthattheInstallerVersionpropertybesetto200orgreater.

intelThisvaluehasbeen

deprecated.Use"x86"instead.

intel64Thisvaluehasbeendeprecated.Use"ia64"instead.

Platforms String Thisattributehasbeendeprecated;pleaseusethePlatformattributeinstead.

ReadOnly YesNoDefaultType Thevalueofthisattributeconveyswhetherthepackageshouldbeopenedasread-only.Adatabaseeditingtoolshouldnotmodifyaread-onlyenforceddatabaseandshouldissueawarningatattemptstomodifyaread-onlyrecommendeddatabase.

ShortNames YesNoType Setto'yes'tohaveshortfilenamesinthesource.

SummaryCodepage String Thecodepageintegervalueorwebnameforsummaryinfostringsonly.See

remarksformoreinformation.

Remarks

YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.

SeeAlsoWixSchema

Version3.0.5419.0

PackageCertificatesElement

DescriptionDigitalsignaturesthatidentifyinstallationpackagesinamulti-producttransaction.

WindowsInstallerreferencesMsiPackageCertificateTable

ParentsFragment,Product

InnerTextNone

ChildrenChoiceofelements(min:1,max:unbounded)DigitalCertificate(min:1,max:unbounded)

AttributesNone

SeeAlsoWixSchema

Version3.0.5419.0

PatchElement

DescriptionThePatchelementisanalogoustothemainfunctioninaCprogram.Whenlinking,onlyonePatchsectioncanbegiventothelinkertoproduceasuccessfulresult.UsingthiselementcreatesanMSPfile.

WindowsInstallerreferencesNone

ParentsWix

InnerTextNone

ChildrenSequence(min:1,max:1)

1. Choiceofelements(min:0,max:unbounded)Media(min:1,max:unbounded)OptimizeCustomActions(min:0,max:1):Indicateswhethercustomactionscanbeskippedwhenapplyingthepatch.PatchFamily(min:1,max:unbounded)PatchFamilyRef(min:0,max:unbounded)PatchProperty(min:0,max:unbounded)TargetProductCodes(min:0,max:unbounded)AnyElementnamespace='##other'processContents='Lax'

Attributes

Name Type DescriptionAllowRemoval YesNoType Whetherthis

isanuninstallable

patch.ApiPatchingSymbolNoFailuresFlag YesNoType Flagused

whencreatingabinaryfilepatch.Defaultis"no".Don'tfailpatchduetoimagehlpfailures.

ApiPatchingSymbolNoImagehlpFlag YesNoType Flagusedwhencreatingabinaryfilepatch.Defaultis"no".Don'tuseimagehlp.dll.

ApiPatchingSymbolUndecoratedTooFlag YesNoType Flagusedwhencreatingabinaryfilepatch.Defaultis"no".Aftermatchingdecoratedsymbols,trytomatchremainingbyundecoratednames.

Classification PatchClassificationType Categoryofupdates.

ClientPatchId String Aneasilyreferencedidentityuniquetoapatchthatcanbeusedinproductauthoring.

Seeremarksformoreinformation.

Codepage String ThecodepageintegervalueorwebnamefortheresultingMSP.Seeremarksformoreinformation.

Comments String Optionalcommentsforbrowsing.

Description String Descriptionofthepatch.

DisplayName String Atitleforthepatchthatissuitableforpublicdisplay.InAdd/RemoveProgramsfromXPSP2on.

Id AutogenGuid Patchcodeforthispatch.

Manufacturer String Vendorreleasingthepackage

MinorUpdateTargetRTM YesNoType IndicatesthatthepatchtargetstheRTMversionoftheproductorthemost

recentmajorupgradepatch.thisoptionalpropertyinminorupdatepatchesthatcontainsequencinginformationtoindicatethatthepatchremovesallpatchesuptotheRTMversionoftheproduct,oruptothemostrecentmajorupgradepatch.propertyisavailablebeginningwithWindowsInstaller3.1.

MoreInfoURL String AURLthatprovidesinformationspecifictothispatch.Add/RemoveProgramsfromXPSP2on.

OptimizedInstallMode YesNoType Ifthisattributeissetto'yes'inall

thepatchestobeappliedinatransaction,theapplicationofthepatchisoptimizedifpossible.AvailablebeginningwithWindowsInstaller3.1.

OptimizePatchSizeForLargeFiles YesNoType Whenthisattributeisset,patchesforfilesgreaterthanapproximately4MBinsizemaybemadesmaller.

TargetProductName String Nameoftheapplicationortargetproductsuite.

Remarks

YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.

TheClientPatchIdattributeallowsyoutospecifyaneasilyreferencedidentitythatyoucanuseinproductauthoring.ThisidentityprefixespropertiesaddedbyWiXtoapatchtransform,suchasClientPatchId.PatchCodeandClientPatchId.AllowRemoval.IfthepatchcodeGUIDisauto-generatedyoucouldnotreferenceanypropertiesusingthis

auto-generatedprefix.

Forexample,ifyouwereplanningtoshipapatchreferredtoas"QFE1"andneededtowriteyourownregistryvaluesforAdd/RemoveProgramsinproductauthoringsuchastheUninstallStringforthispatch,youcouldauthoraRegistryValuewiththenameUninstallStringandthevalue[SystemFolder]msiexec.exe/package[ProductCode]/uninstall[QFE1.PatchCode].InyourpatchauthoringyouwouldthensetClientPatchIdto"QFE1"andWiXwilladdtheQFE1.PatchCodepropertytothepatchtransformwhenthepatchiscreated.IftheIdattributespecifiedthepatchcodetobegeneratedautomatically,youcouldnotreferencetheprefix.PatchCodepropertyasshownabove.

SeeAlsoWixSchema

Version3.0.5419.0

PatchBaselineElement

DescriptionIdentifiesasetofproductversions.

WindowsInstallerreferencesNone

ParentsMedia

InnerTextNone

ChildrenChoiceofelements(min:0,max:1)Validate(min:0,max:1)

Attributes

Name Type Description RequiredId String Identifierforasetofproduct

versions.Yes

SeeAlsoWixSchema

Version3.0.5419.0

PatchCertificatesElement

DescriptionIdentifiesthepossiblesignercertificatesusedtodigitallysignpatches.

WindowsInstallerreferencesMsiPatchCertificateTable

ParentsFragment,Product

InnerTextNone

ChildrenChoiceofelements(min:1,max:unbounded)DigitalCertificate(min:1,max:unbounded)

AttributesNone

SeeAlsoWixSchema

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

PatchProperty(min:0,max:unbounded)PatchSequence(min:0,max:unbounded)ReplacePatch(min:0,max:unbounded)TargetProductCode(min:0,max:unbounded)

Attributes

Name Type DescriptionId Guid PatchCreationidentifier;thisisthe

primarykeyforidentifyingpatches.AllowMajorVersionMismatches YesNoType Usethistosetwhetherthemajor

versionsbetweentheupgradeandtargetimagesmatch.SeeAllowProductVersionMajorMismatches

formoreinformation.AllowProductCodeMismatches YesNoType Usethistosetwhethertheproduct

codebetweentheupgradeandtargetimagesmatch.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.0.5419.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)AnyElementnamespace='##other'processContents='Lax'

Attributes

Name Type Description RequiredId String Identifierwhichindicatesa

sequencefamilytowhichthispatchbelongs.

Yes

ProductCode Guid SpecifiestheProductCode

oftheproductthatthisfamilyappliesto.

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

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

Yes

SeeAlsoWixSchema

Version3.0.5419.0

PatchFamilyRefElement

DescriptionThiswillcausetheentirecontentsoftheFragmentcontainingthereferencedPatchFamilytobeusedintheprocessofcreatingapatch.

WindowsInstallerreferencesNone

ParentsPatch

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String TheidentifieroftheCustomAction

toreference.Yes

Anyattributenamespace='##other'processContents='lax'

SeeAlsoWixSchema,PatchFamily

Version3.0.5419.0

PatchFilesElement

DescriptionQueriesthePatchtabletodeterminewhichpatchesaretobeapplied.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesPatchFilesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

PatchInformationElement

DescriptionPropertiesaboutthepatchtobeplacedintheSummaryInformationStream.ThesearevisiblefromCOMthroughtheIStreaminterface,andthesepropertiescanbeseenonthepackageinExplorer.

WindowsInstallerreferencesNone

ParentsPatchCreation

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredAdminImage YesNoType Sourceisan

adminimage

Comments String Optionalcommentsforbrowsing

Compressed YesNoType Compressedfilesonsource

Description String Productfullnameordescription

Keywords String Optionalkeywordsforbrowsing

Languages String ListoflanguageIDssupportedinpackage

Manufacturer String Vendorreleasingthepackage

Platforms String Listofplatformssupportedinpackage

ReadOnly YesNoDefaultType Thevalueofthisattributeconveyswhetherthepackageshouldbeopenedasread-only.Adatabaseeditingtoolshouldnotmodifyaread-onlyenforceddatabaseandshouldissueawarningatattemptstomodifyaread-onlyrecommendeddatabase.

ShortNames YesNoType Shortfilenamesonsource

SummaryCodepage String Thecodepageintegervalueorweb

nameforsummaryinfostringsonly.Seeremarksformoreinformation.

Remarks

YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.

SeeAlsoWixSchema

Version3.0.5419.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 RequiredAllowRemoval YesNoType Whetherthis

isanuninstallablepatch.

Yes

Classification PatchClassificationType Categoryofupdate.

Yes

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

versionoftheproduct,oruptothemostrecentmajorupgradepatch.ThispropertyisavailablebeginningwithWindowsInstaller3.1.

MoreInfoURL String AURLthatprovidesinformationspecifictothispatch.InAdd/RemoveProgramsfromXPSP2on.

Yes

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

TargetProductName String Nameofthe Yes

applicationortargetproductsuite.

SeeAlsoWixSchema

Version3.0.5419.0

PatchPropertyElement

DescriptionApropertyforthispatchdatabase.

WindowsInstallerreferencesMsiPatchMetadataTable

ParentsPatch,PatchCreation

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredCompany String Nameofthecompanyfora

custommetadataproperty.

Name String Nameofthepatchproperty. YesValue String Valueofthepatchproperty. Yes

Remarks

WhenauthoredunderthePatchelement,thePatchPropertydefinesentriesintheMsiPatchMetadatatable.

SeeAlsoWixSchema

Version3.0.5419.0

PatchSequenceElement

DescriptionSequenceinformationforthispatchdatabase.Sequenceinformationisgeneratedautomaticallyinmostcases,andrarelyneedstobesetexplicitly.

WindowsInstallerreferencesMsiPatchSequenceTable

ParentsPatchCreation

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredPatchFamily String Identifierwhichindicatesa

sequencefamilytowhichthispatchbelongs.

Yes

ProductCode Guid SpecifiestheProductCodeoftheproductthatthisfamilyappliesto.ThisattributecannotthespecifiediftheTargetImageattributeisspecified.

Sequence String UsedtopopulatethesequencecolumnoftheMsiPatchSequencetableinthefinalMSPfile.Specifiedinx.x.x.xformat.SeedocumentationforSequencecolumnof

MsiPatchSequencetableinMSISDK.

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

Target String Thisattributehasbeendeprecated;pleaseusetheTargetImageattributeinstead.

TargetImage String SpecifiestheTargetImagethatthisfamilyappliesto.ThisattributecannotthespecifiediftheProductCodeattributeisspecified.

SeeAlsoWixSchema

Version3.0.5419.0

PermissionElement

DescriptionSetsACLsonFile,Registry,orCreateFolder.WhenunderaRegistryelement,thiscannotbeusediftheActionattribute'svalueisremoveorremoveKeyOnInstall.ThiselementhasnoIdattribute.Thetableandkeyaretakenfromtheparentelement.

WindowsInstallerreferencesLockPermissionsTable

ParentsCreateFolder,File,Registry,RegistryKey,RegistryValue

InnerTextNone

ChildrenNone

Attributes

Name Type DescriptionAppend YesNoType ChangePermission YesNoType CreateChild YesNoType Foradirectory,therighttocreatea

subdirectory.Onlyvalidundera'CreateFolder'parent.

CreateFile YesNoType Foradirectory,therighttocreateafileinthedirectory.Onlyvalidundera'CreateFolder'parent.

CreateLink YesNoType CreateSubkeys YesNoType Delete YesNoType DeleteChild YesNoType Foradirectory,therighttodeletea

directoryandallthefilesitcontains,includingread-onlyfiles.

Onlyvalidundera'CreateFolder'parent.

Domain String EnumerateSubkeys YesNoType Execute YesNoType GenericAll YesNoType GenericExecute YesNoType GenericRead YesNoType specifyingthiswillfailtograntread

accessGenericWrite YesNoType Notify YesNoType Read YesNoType ReadAttributes YesNoType ReadExtendedAttributes YesNoType ReadPermission YesNoType Synchronize YesNoType TakeOwnership YesNoType Traverse YesNoType Foradirectory,therighttotraverse

thedirectory.Bydefault,usersareassignedtheBYPASS_TRAVERSE_CHECKINGprivilege,whichignorestheFILE_TRAVERSEaccessright.Onlyvalidundera'CreateFolder'parent.

User String Write YesNoType WriteAttributes YesNoType WriteExtendedAttributes YesNoType

SeeAlsoWixSchema

Version3.0.5419.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):Optionalconditionthatcontrolswhetherthepermissionsareapplied.

Attributes

Name Type Description RequiredId String Primarykeyusedtoidentifythis

particularentry.Ifthisisnotspecifiedtheparentelement'sIdattributewillbeusedinstead.

Sddl String Securitydescriptortoapplytoparentobject.

Yes

SeeAlsoWixSchema

Version3.0.5419.0

ProcessComponentsElement

DescriptionRegistersandunregisterscomponents,theirkeypaths,andthecomponentclients.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesProcessComponentsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

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

AnyElementnamespace='##other'processContents='Lax'CloseApplicationComPlusApplicationComPlusApplicationRoleComPlusPartitionComPlusPartitionRoleGroupHelpCollectionRef

HelpFilterSqlDatabaseUserWebApplicationWebAppPoolWebDirPropertiesWebLogWebSite

Attributes

Name Type Description RequiredId AutogenGuid Theproductcode

GUIDfortheproduct.

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

Anyattributenamespace='##other'processContents='lax'

Remarks

YoucanspecifyanyvalidWindowscodebyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.

SeeAlsoWixSchema

Version3.0.5419.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-independentProgIdmustbethefirstchildelementofactualProgId.NestingotherProgIdelementswithintheVersion-independentProgIdwillcreateCOM+aliases,seehttp://support.microsoft.com/kb/305745formoreinformation.

2. Extension(min:0,max:unbounded):ExtensionsthatrefertothisProgId

Attributes

Name Type Description RequiredId String YesAdvertise YesNoType Description String Icon String ForanadvertisedProgId,the

IdofanIconelement.Foranon-advertisedProgId,thisistheIdofafilecontaininganiconresource.

IconIndex Integer NoOpen String Specifiesthattheassociated

ProgIdshouldnotbeopenedbyusers.Thevalueispresentedasawarningtousers.Anemptystringisalsovalidforthisattribute.

SeeAlsoWixSchema

Version3.0.5419.0

ProgressTextElement

DescriptionNone

WindowsInstallerreferencesActionTextTable

ParentsUI

InnerText(xs:string)Elementvalueisprogressmessagetextforaction

ChildrenNone

Attributes

Name Type Description RequiredAction String YesTemplate String usedtoformatActionData

messagesfromactionprocessing

SeeAlsoWixSchema

Version3.0.5419.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):StartssearchesfromtheCCP_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)

AnyElementnamespace='##other'processContents='Lax'

Attributes

Name Type Description RequiredId String Uniqueidentifierfor

Property.Yes

Admin YesNoType DenotesthatthePropertyissavedduringadmininistrativeinstallation.Seethe

AdminPropertiesPropertyformoreinformation.

ComplianceCheck YesNoType AddsarowtotheCCPSearchtable.ThisattributeisonlyvalidwhenthisPropertycontainsasearchelement.

Hidden YesNoType DenotesthatthePropertyisnotloggedduringinstallation.SeetheMsiHiddenPropertiesPropertyformoreinformation.

Secure YesNoType DenotesthatthePropertycanbepassedtotheserversidewhendoingamanagedinstallationwithelevatedprivileges.SeetheSecureCustomPropertiesPropertyformoreinformation.

SuppressModularization YesNoType Usetosuppressmodularizationofthispropertyidentifierinmergemodules.Usingthisfunctionalityisstronglydiscouraged;itshouldonlybenecessaryasaworkaroundoflastresortinrarescenarios.

Value String Setsadefaultvaluefortheproperty.ThevaluewillbeoverwrittenifthePropertyisusedfora

search.Anyattributenamespace='##other'processContents='lax'

HowTosandExamplesHowTo:Checktheversionnumberofafileduringinstallation

SeeAlsoWixSchema,PropertyRef

Version3.0.5419.0

PropertyRefElement

DescriptionReferencetoaPropertyvalue.

WindowsInstallerreferencesNone

ParentsFragment,Module,PatchFamily,Product,UI

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String IdentifierofPropertytoreference. YesAnyattributenamespace='##other'processContents='lax'

HowTosandExamplesHowTo:Checkfor.NETFrameworkversions

SeeAlsoWixSchema,Property

Version3.0.5419.0

ProtectFileElement

DescriptionSpecifiesafiletobeprotected.

WindowsInstallerreferencesNone

ParentsFamily

InnerTextNone

ChildrenChoiceofelements(min:1,max:unbounded)ProtectRange(min:1,max:unbounded)

Attributes

Name Type Description RequiredFile String ForeignkeyintotheFiletable. Yes

SeeAlsoWixSchema

Version3.0.5419.0

ProtectRangeElement

DescriptionSpecifiespartofafilethatcannotbeoverwrittenduringpatching.

WindowsInstallerreferencesNone

ParentsExternalFile,ProtectFile,TargetFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredLength Int Lengthoftherange. YesOffset Int Offsetofthestartoftherange. Yes

SeeAlsoWixSchema

Version3.0.5419.0

PublishElement

DescriptionNone

WindowsInstallerreferencesControlEventTable

ParentsControl,UI

InnerText(xs:string)TheelementvalueistheoptionalConditionexpression.

ChildrenNone

Attributes

Name Type Description RequiredControl String TheparentControlforthisPublish

element,shouldonlybespecifiedwhenthiselementisachildoftheUIelement.

Dialog String TheparentDialogforthisPublishelement,shouldonlybespecifiedwhenthiselementisachildoftheUIelement.ThisattributewillcreateareferencetothespecifiedDialog,soanadditionalDialogRefisnotnecessary.

Event String Setthisattribute'svaluetooneofthestandardcontroleventstotriggerthatevent.EitherthisattributeorthePropertyattributemustbeset,butnotbothatthesametime.

Order String Thisattributeshouldonlyneedto

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

PublishComponentsElement

DescriptionManagestheadvertisementofthecomponentsfromthePublishComponenttable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesPublishComponentsAction

ParentsAdvertiseExecuteSequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

PublishFeaturesElement

DescriptionWriteseachfeature'sstateintothesystemregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesPublishFeaturesAction

ParentsAdvertiseExecuteSequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

PublishProductElement

DescriptionManagestheadvertisementoftheproductinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesPublishProductAction

ParentsAdvertiseExecuteSequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

RadioButtonElement

DescriptionTextorIconplusValuethatisassignedtothePropertyoftheparentControl(RadioButtonGroup).

WindowsInstallerreferencesRadioButtonTable,ControlTable,DialogTable

ParentsRadioButtonGroup

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredBitmap String Thisattributedefinesthe

bitmapdisplayedwiththeradiobutton.ThevalueoftheattributecreatesareferencetoaBinaryelementthatrepresentsthebitmap.ThisattributeismutuallyexclusivewiththeIconandTextattributes.

Height LocalizableInteger YesHelp String Icon String Thisattributedefinesthe

icondisplayedwiththeradiobutton.ThevalueoftheattributecreatesareferencetoaBinary

elementthatrepresentstheicon.ThisattributeismutuallyexclusivewiththeBitmapandTextattributes.

Text String Textdisplayedwiththeradiobutton.ThisattributeismutuallyexclusivewiththeBitmapandIconattributes.

ToolTip String Value String Valueassignedtothe

associatedcontrolPropertywhenthisradiobuttonisselected.

Yes

Width LocalizableInteger YesX LocalizableInteger YesY LocalizableInteger Yes

SeeAlsoWixSchema,RadioButtonGroup

Version3.0.5419.0

RadioButtonGroupElement

DescriptionSetofradiobuttonstiedtothespecifiedProperty

WindowsInstallerreferencesRadioButtonTable,ControlTable,DialogTable

ParentsControl,UI

InnerTextNone

ChildrenSequence(min:1,max:1)

1. RadioButton(min:1,max:unbounded)

Attributes

Name Type Description RequiredProperty String Propertytiedtothisgroup. Yes

SeeAlsoWixSchema

Version3.0.5419.0

RegisterClassInfoElement

DescriptionManagestheregistrationofCOMclassinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterClassInfoAction

ParentsAdvertiseExecuteSequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

RegisterComPlusElement

DescriptionRegistersCOM+applications.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterComPlusAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

RegisterExtensionInfoElement

DescriptionManagestheregistrationofextensionrelatedinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterExtensionInfoAction

ParentsAdvertiseExecuteSequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

RegisterFontsElement

DescriptionRegistersinstalledfontswiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterFontsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

RegisterMIMEInfoElement

DescriptionRegistersMIME-relatedregistryinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterMIMEInfoAction

ParentsAdvertiseExecuteSequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

RegisterProductElement

DescriptionRegisterstheproductinformationwiththeinstaller.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterProductAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

RegisterProgIdInfoElement

DescriptionManagestheregistrationofOLEProgIdinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterProgIdInfoAction

ParentsAdvertiseExecuteSequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

RegisterTypeLibrariesElement

DescriptionRegisterstypelibrarieswiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterTypeLibrariesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

RegisterUserElement

DescriptionRegisterstheuserinformationwiththeinstallertoidentifytheuserofaproduct.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterUserAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.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)AnyElementnamespace='##other'processContents='Lax'PermissionEx

Attributes

Name Type Description RequiredAction Enumeration Thisistheactionthatwillbetakenfor

thisregistrykey.Thisattribute'svaluemustbeoneofthefollowing:append

Appendsthespecifiedvalue(s)toamultiStringregistrykey.

createKeyCreatesthekey,ifabsent,whentheparentcomponentis

installed.

createKeyAndRemoveKeyOnUninstallCreatesthekey,ifabsent,whentheparentcomponentisinstalledthenremovethekeywithallitsvaluesandsubkeyswhentheparentcomponentisuninstalled.

prependPrependsthespecifiedvalue(s)toamultiStringregistrykey.

removeRemovesaregistrynamewhentheparentcomponentisinstalled.

removeKeyOnInstallRemovesakeywithallitsvaluesandsubkeyswhentheparentcomponentisinstalled.

removeKeyOnUninstallRemovesakeywithallitsvaluesandsubkeyswhentheparentcomponentisuninstalled.

writeWritesaregistryvalue.

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

Key String Thelocalizablekeyfortheregistryvalue.

KeyPath YesNoType Setthisattributeto'yes'tomakethisregistrykeytheKeyPathoftheparent

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

binaryThevalueisinterpretedandstoredasahexadecimalvalue(REG_BINARY).

expandableThevalueisinterpretedand

storedasanexpandablestring(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.0.5419.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)AnyElementnamespace='##other'processContents='Lax'PermissionEx

Attributes

Name Type Description RequiredAction Enumeration Thisistheactionthatwillbe

takenforthisregistryvalue.Thisattribute'svaluemustbeoneofthefollowing:create

Createsthekey,ifabsent,whentheparentcomponentisinstalled.

createAndRemoveOnUninstallCreatesthekey,ifabsent,whentheparentcomponentisinstalledthenremovethekeywithallitsvaluesandsubkeyswhentheparentcomponentisuninstalled.

noneDoesnothing;thiselementisusedmerelyinWiXauthoringfororganizationanddoesnothingtothefinaloutput.Thisisthedefaultvalue.

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

Key String Thelocalizablekeyfortheregistryvalue.IftheparentelementisaRegistryKey,thisvaluemaybeomittedtousethepathoftheparent,orifitsspecifieditwillbeappendedtothepathoftheparent.

Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.

HowTosandExamplesHowTo:ReadaregistryentryduringinstallationHowTo:Writearegistryentryduringinstallation

SeeAlsoWixSchema

Version3.0.5419.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 RequiredId String Signaturetobeusedforthefile,

directoryorregistrykeybeingsearchedfor.

Yes

Key String Keyfortheregistryvalue. YesName String Registryvaluename. Root Enumeration Rootkeyfortheregistryvalue.

Thisattribute'svaluemustbeoneofthefollowing:HKCR

HKEY_CLASSES_ROOT

HKCUHKEY_CURRENT_USER

Yes

HKLMHKEY_LOCAL_MACHINE

HKUHKEY_USERS

Type Enumeration Thevaluemustbe'file'ifthechildisaFileSearchelement,andmustbe'directory'ifchildisaDirectorySearchelement.Thisattribute'svaluemustbeoneofthefollowing:directory

Theregistryvaluecontainsthepathtoadirectory.

fileTheregistryvaluecontainsthepathtoafile.ToreturnthefullfilepathyoumustaddaFileSearchelementasachildofthiselement;otherwise,theparentdirectoryofthefilepathisreturned.

rawSetstherawvaluefromtheregistryvalue.Pleasenotethatthisvaluewillcontainaprefixasfollows:

DWORDStartswith'#'optionallyfollowedby'+'or'-'.

REG_BINARYStartswith'#x'andtheinstallerconvertsandsaveseachhexadecimaldigit

Yes

(nibble)asanASCIIcharacterprefixedby'#x'.

REG_EXPAND_SZStartswith'#%'.

REG_MULTI_SZStartswith'[~]'andendswith'[~]'.

REG_SZNoprefix,butifthefirstcharacteroftheregistryvalueis'#',theinstallerescapesthecharacterbyprefixingitwithanother'#'.

Win64 YesNoType Instructsthesearchtolookinthe64-bitregistrywhenthevalueis'yes'.Defaultis'no'andsearchlooksinthe32-bitregistry.

Remarks

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

HowTosandExamplesHowTo:Readaregistryentryduringinstallation

SeeAlso

WixSchema,ComponentSearch,IniFileSearchVersion3.0.5419.0

RegistrySearchRefElement

DescriptionReferencesanexistingRegistrySearchelement.

WindowsInstallerreferencesNone

ParentsProperty

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String SpecifytheIdofthe

RegistrySearchtoreference.Yes

SeeAlsoWixSchema,RegistrySearch

Version3.0.5419.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.AnyElementnamespace='##other'processContents='Lax'PermissionEx

Attributes

Name Type Description RequiredAction Enumeration Thisistheactionthatwill

betakenforthisregistryvalue.Thisattribute'svaluemustbeoneofthefollowing:

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

binaryThevalueisinterpretedandstoredasahexadecimalvalue(REG_BINARY).

expandableThevalueisinterpretedandstoredasanexpandablestring(REG_EXPAND_SZ).

multiStringThevalueisinterpretedandstoredasamultiplestrings(REG_MULTI_SZ).Pleasenotethatthisvaluewillonlyresultinamulti-stringvalueifthereismorethanoneregistryvalueortheActionattribute'svalueis'append'or'prepend'.Otherwiseastringvaluewillbecreated.

Value String Setthisattributetothelocalizableregistryvalue.Thisvalueisformatted.

TheWindowsInstallerallowsseveralspecialvaluestobesetforthisattribute.YoushouldnotusetheminWiX.InsteaduseappropriatevaluesintheTypeattributetogetthedesiredbehavior.

HowTosandExamplesHowTo:Writearegistryentryduringinstallation

SeeAlsoWixSchema

Version3.0.5419.0

RemoveDuplicateFilesElement

DescriptionDeletesfilesinstalledbytheDuplicateFilesaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveDuplicateFilesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

RemoveEnvironmentStringsElement

DescriptionModifiesthevaluesofenvironmentvariables.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveEnvironmentStringsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

RemoveExistingProductsElement

DescriptionGoesthroughtheproductcodeslistedintheActionPropertycolumnoftheUpgradetableandremovestheproductsinsequence.Specialactionsdon'thaveabuilt-insequencenumberandthusmustappearrelativetoanotheraction.ThesuggestedwaytodothisisbyusingtheBeforeorAfterattribute.InstallExecuteandInstallExecuteAgaincanoptionallyappearanywherebetweenInstallInitializeandInstallFinalize.

WindowsInstallerreferencesRemoveExistingProductsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Textnodespecifiestheconditionoftheaction.

ChildrenNone

Attributes

Name Type Description RequiredAfter String Thenameofanactionthat

thisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

RemoveFileElement

DescriptionRemoveafile(s)iftheparentcomponentisselectedforinstallationorremoval.MultiplefilescanberemovedbyspecifyingawildcardforthevalueoftheNameattribute.Bydefault,thesourcedirectoryofthefileisthedirectoryoftheparentcomponent.ThiscanbeoverriddenbyspecifyingtheDirectoryattributewithavaluecorrespondingtotheIdofthesourcedirectory,orbyspecifyingthePropertyattributewithavaluecorrespondingtoapropertythatwillhaveavaluethatresolvestothefullpathtothesourcedirectory.

WindowsInstallerreferencesRemoveFileTable

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type DescriptionId String Primarykeyusedtoidentify

thisparticularentry.Directory String Overridesthedirectoryof

theparentcomponentwithaspecificDirectory.ThisDirectorymustexistintheinstallerdatabaseatcreationtime.Thisattributecannotbespecifiedinconjunctionwiththe

Propertyattribute.LongName WildCardLongFileNameType Thisattributehasbeen

deprecated;pleaseusetheNameattributeinstead.

Name WildCardLongFileNameType Thisvalueshouldbesettothelocalizablenameofthefile(s)toberemoved.Allofthefilesthatmatchthewildcardwillberemovedfromthespecifieddirectory.Thevalueisafilenamethatmayalsocontainthewildcardcharacters"?"foranysinglecharacteror"*"forzeroormoreoccurrencesofanycharacter.InpriorversionsoftheWiXtoolset,thisattributespecifiedtheshortfilename.Thisattribute'svaluemaynowbeeitherashortorlongfilename.Ifashortfilenameisspecified,theShortNameattributemaynotbespecified.Ifalongfilenameisspecified,theLongNameattributemaynotbespecified.Also,ifthisvalueisalongfilename,theShortNameattributemaybeomittedtoallowWiXtoattempttogenerateauniqueshortfilename.However,ifyouwishtomanuallyspecifytheshortfilename,thentheShortNameattributemaybespecified.

On Enumeration Thisvaluedeterminesthe

timeatwhichthefile(s)mayberemoved.Thisattribute'svaluemustbeoneofthefollowing:install

Removesthefileonlywhentheparentcomponentisbeinginstalled(msiInstallStateLocalormsiInstallStateSource).

uninstallRemovesthefileonlywhentheparentcomponentisbeingremoved(msiInstallStateAbsent).

bothRemovesthefilewhentheparentcomponentisbeinginstalledorremoved.

Property String Overridesthedirectoryoftheparentcomponentwiththevalueofthespecifiedproperty.Thepropertyshouldhaveavaluethatresolvestothefullpathofthesourcedirectory.Thepropertydoesnothavetoexistintheinstallerdatabaseatcreationtime;itcouldbecreatedatinstallationtimebyacustomaction,onthecommandline,etc.Thisattributecannotbespecifiedin

conjunctionwiththeDirectoryattribute.

ShortName WildCardShortFileNameType Theshortfilenameofthefilein8.3format.Thisattributeshouldonlybesetifyouwanttomanuallyspecifytheshortfilename.

SeeAlsoWixSchema,CopyFile

Version3.0.5419.0

RemoveFilesElement

DescriptionRemovesfilespreviouslyinstalledbytheInstallFilesaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveFilesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

RemoveFolderElement

DescriptionRemoveanemptyfolderiftheparentcomponentisselectedforinstallationorremoval.Bydefault,thefolderisthedirectoryoftheparentcomponent.ThiscanbeoverriddenbyspecifyingtheDirectoryattributewithavaluecorrespondingtotheIdofthedirectory,orbyspecifyingthePropertyattributewithavaluecorrespondingtoapropertythatwillhaveavaluethatresolvestothefullpathofthefolder.

WindowsInstallerreferencesRemoveFileTable

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Primarykeyusedtoidentify

thisparticularentry.Yes

Directory String OverridesthedirectoryoftheparentcomponentwithaspecificDirectory.ThisDirectorymustexistintheinstallerdatabaseatcreationtime.ThisattributecannotbespecifiedinconjunctionwiththePropertyattribute.

On Enumeration Thisvaluedeterminesthetimeatwhichthefoldermay

Yes

beremoved.Thisattribute'svaluemustbeoneofthefollowing:install

Removesthefolderonlywhentheparentcomponentisbeinginstalled(msiInstallStateLocalormsiInstallStateSource).

uninstallRemovesthefolderonlywhentheparentcomponentisbeingremoved(msiInstallStateAbsent).

bothRemovesthefolderwhentheparentcomponentisbeinginstalledorremoved.

Property String Overridesthedirectoryoftheparentcomponentwiththevalueofthespecifiedproperty.Thepropertyshouldhaveavaluethatresolvestothefullpathofthesourcedirectory.Thepropertydoesnothavetoexistintheinstallerdatabaseatcreationtime;itcouldbecreatedatinstallationtimebyacustomaction,onthecommandline,etc.ThisattributecannotbespecifiedinconjunctionwiththeDirectoryattribute.

SeeAlsoWixSchema,CreateFolder

Version3.0.5419.0

RemoveFoldersElement

DescriptionRemovesanyfolderslinkedtocomponentssettoberemovedorrunfromsource.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveFoldersAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

RemoveIniValuesElement

DescriptionRemoves.inifileinformationspecifiedforremovalintheRemoveIniFiletableifthecomponentissettobeinstalledlocallyorrunfromsource.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveIniValuesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

RemoveODBCElement

DescriptionRemovesthedatasources,translators,anddriverslistedforremovalduringtheinstallation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveODBCAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

RemoveRegistryKeyElement

DescriptionUsedforremovingregistrykeysandallchildkeyseitherduringinstalloruninstall.

WindowsInstallerreferencesRegistryTable,RemoveRegistryTable

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredAction Enumeration Thisistheactionthatwill

betakenforthisregistryvalue.Thisattribute'svaluemustbeoneofthefollowing:removeOnInstall

Removesakeywithallitsvaluesandsubkeyswhentheparentcomponentisinstalled.

removeOnUninstallRemovesakeywithallitsvaluesandsubkeyswhentheparentcomponentisuninstalled.

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

Key String Thelocalizablekeyfortheregistryvalue.

Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.

SeeAlsoWixSchema

Version3.0.5419.0

RemoveRegistryValueElement

DescriptionUsedtoremovearegistryvalueduringinstallation.Thereisnostandardwaytoremoveasingleregistryvalueduringuninstall(butyoucanremoveanentirekeywithRemoveRegistryKey).

WindowsInstallerreferencesRemoveRegistryTable

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Primarykeyusedto

identifythisparticularentry.Ifthisattributeisnotspecified,anidentifierwillbegeneratedbyhashingtheparentComponentidentifier,Root,Key,andName.

Key String Thelocalizablekeyfortheregistryvalue.IftheparentelementisaRegistryKey,thisvaluemaybeomittedtousethepathoftheparent,orifitsspecifieditwillbeappendedtothepathoftheparent.

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

Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.

SeeAlsoWixSchema

Version3.0.5419.0

RemoveRegistryValuesElement

DescriptionRemovesaregistryvaluethathasbeenauthoredintotheregistrytableiftheassociatedcomponentwasinstalledlocallyorasrunfromsource,andisnowsettobeuninstalled.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveRegistryValuesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

RemoveShortcutsElement

DescriptionManagestheremovalofanadvertisedshortcutwhosefeatureisselectedforuninstallationoranonadvertisedshortcutwhosecomponentisselectedforuninstallation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveShortcutsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

ReplacePatchElement

DescriptionApatchthatisdeprecatedbythispatch.

WindowsInstallerreferencesNone

ParentsPatchCreation

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId Guid PatchGUIDtobeunregisteredifit

existsonthemachinetargetedbythispatch.

Yes

SeeAlsoWixSchema

Version3.0.5419.0

RequiredPrivilegeElement

DescriptionPrivilegerequiredbyserviceconfiguredbyServiceConfigparent.ValidvaluesareaprivilegeconstantoraFormattedpropertythatresolvestoaprivilegeconstant.

WindowsInstallerreferencesMsiServiceConfigTable

ParentsServiceConfig

SeeAlsoWixSchema

Version3.0.5419.0

ReserveCostElement

DescriptionDiskcosttoreserveinafolderforrunninglocallyand/orfromsource.

WindowsInstallerreferencesReserveCostTable

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Aprimarykeythatuniquely

identifiesthisReserveCostentry.

Yes

Directory String AddstheamountofdiskspacespecifiedinRunFromSourceorRunLocaltothevolumecostofthedevicecontainingthedirectory.Ifthisattributeisnotset,itwilldefaulttothedirectoryofparentcomponent.

RunFromSource Integer Thenumberofbytesofdiskspacetoreserveifthecomponentisinstalledtorunfromsource.

Yes

RunLocal Integer Thenumberofbytesofdisk Yes

spacetoreserveifthecomponentisinstalledtorunlocally.

SeeAlsoWixSchema

Version3.0.5419.0

ResolveSourceElement

DescriptionDeterminesthelocationofthesourceandsetstheSourceDirpropertyifthesourcehasnotbeenresolvedyet.Specialactionsdon'thaveabuilt-insequencenumberandthusmustappearrelativetoanotheraction.ThesuggestedwaytodothisisbyusingtheBeforeorAfterattribute.InstallExecuteandInstallExecuteAgaincanoptionallyappearanywherebetweenInstallInitializeandInstallFinalize.

WindowsInstallerreferencesResolveSourceAction

ParentsAdminExecuteSequence,InstallExecuteSequence,InstallUISequence

InnerText(xs:string)Textnodespecifiestheconditionoftheaction.

ChildrenNone

Attributes

Name Type Description RequiredAfter String Thenameofanactionthat

thisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactionina

sequence.Suppress YesNoType Ifyes,thisactionwillnot

occur.

SeeAlsoWixSchema

Version3.0.5419.0

RMCCPSearchElement

DescriptionUsesfilesignaturestovalidatethatqualifyingproductsareinstalledonasystembeforeanupgradeinstallationisperformed.TheRMCCPSearchactionshouldbeauthoredintotheInstallUISequencetableandInstallExecuteSequencetable.TheinstallerpreventsRMCCPSearchfromrunningintheInstallExecuteSequencesequenceiftheactionhasalreadyruninInstallUISequencesequence.TheRMCCPSearchactionrequirestheCCP_DRIVEpropertytobesettotherootpathontheremovablevolumethathastheinstallationforanyofthequalifyingproducts.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRMCCPSearchAction

ParentsInstallExecuteSequence,InstallUISequence

InnerText(xs:string)Textnodespecifiestheconditionoftheaction.

ChildrenNone

Attributes

Name Type Description RequiredAfter String Thenameofanactionthat

thisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencing

elsewhere.Sequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,CCPSearch,ComplianceCheck

Version3.0.5419.0

RowElement

DescriptionRowdataforaCustomTable

WindowsInstallerreferencesNone

ParentsCustomTable

InnerTextNone

ChildrenSequence(min:1,max:1)

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

AttributesNone

SeeAlsoWixSchema

Version3.0.5419.0

ScheduleRebootElement

DescriptionPromptstheusertorestartthesystemattheendofinstallation.Specialactionsdon'thaveabuilt-insequencenumberandthusmustappearrelativetoanotheraction.ThesuggestedwaytodothisisbyusingtheBeforeorAfterattribute.InstallExecuteandInstallExecuteAgaincanoptionallyappearanywherebetweenInstallInitializeandInstallFinalize.

WindowsInstallerreferencesScheduleRebootAction

ParentsInstallExecuteSequence,InstallUISequence

InnerText(xs:string)Textnodespecifiestheconditionoftheaction.

ChildrenNone

Attributes

Name Type Description RequiredAfter String Thenameofanactionthat

thisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnot

occur.

SeeAlsoWixSchema

Version3.0.5419.0

SelfRegModulesElement

DescriptionProcessesallmoduleslistedintheSelfRegtableandregistersallinstalledmoduleswiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesSelfRegModulesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

SelfUnregModulesElement

DescriptionUnregistersallmoduleslistedintheSelfRegtablethatarescheduledtobeuninstalled.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesSelfUnregModulesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

ServiceArgumentElement

DescriptionArgumentusedinServiceControlparent

WindowsInstallerreferencesServiceControlTable

ParentsServiceControl

SeeAlsoWixSchema

Version3.0.5419.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 RequiredDelayedAutoStart String Thisattributespecifieswhether

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

ServiceInstall/@NameattributewhennestedunderaServiceInstallelement.

ServiceSid String SpecifiestheserviceSIDtoapplytotheservice.Validvaluesare"none","restricted","unrestricted"oraFormattedpropertythatresolvesto"0"(for"none"),"3"(for"restricted")or"1"(for"unrestricted").Ifthisattributeisnotpresentthesettingisnotconfigured.

SeeAlsoWixSchema

Version3.0.5419.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 RequiredCommand String Thisattributespecifies

commandtoexecutewhena"runCommand"failureactionhit.Ifanemptystringisprovideditclearstheexistingcommand.Ifthisattributeisnotpresentthesettingisnotchanged.

Id String Uniqueidentifierforthisserviceconfiguration.ThisvaluewilldefaulttotheServiceName

attributeifnotspecified.OnInstall YesNoType Specifieswhetherto

configuretheservicewhentheparentComponentisinstalled.ThisattributemaybecombinedwithOnReinstallandOnUninstall.

OnReinstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisreinstalled.ThisattributemaybecombinedwithOnInstallandOnUninstall.

OnUninstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisuninstalled.ThisattributemaybecombinedwithOnInstallandOnReinstall.

RebootMessage String Specifiesthemessagetoshowforarebootfailureaction.Ifanemptystringisprovideditclearsanyexistingrebootmessage.Ifthisattributeisnotpresentthesettingisnotchanged.

ResetPeriod String Specifiesthetimeinsecondstoresetthefailurecount.Ifthisattributeisnotpresent

thefailurecountwillnotbereset.

ServiceName String Specifiesthenameoftheservicetoconfigure.ThisvaluewilldefaulttotheServiceInstall/@NameattributewhennestedunderaServiceInstallelement.

SeeAlsoWixSchema

Version3.0.5419.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):Orderedlistofargumentsusedwhenmodifyingservices.

Attributes

Name Type Description RequiredId String YesName String Nameoftheservice. YesRemove Enumeration Specifieswhethertheservice

shouldberemovedoninstall,uninstallorboth.Thisattribute'svaluemustbeoneofthefollowing:install

Theservicewillbedeletedbythe

DeleteServicesactionduringinstall.

uninstallTheservicewillbedeletedbytheDeleteServicesactionduringuninstall.

bothTheservicewillbedeletedbytheDeleteServicesactionduringinstallanduninstall.

Start Enumeration Specifieswhethertheserviceshouldbestartedoninstall,uninstallorboth.Thisattribute'svaluemustbeoneofthefollowing:install

TheservicewillbestartedbytheStartServicesactionduringinstall.

uninstallTheservicewillbestartedbytheStartServicesactionduringuninstall.

bothTheservicewillbestartedbytheStartServicesactionduringinstallanduninstall.

Stop Enumeration Specifieswhethertheserviceshouldbestoppedoninstall,uninstallorboth.Thisattribute'svaluemustbeone

ofthefollowing:install

TheservicewillbestoppedbytheStopServicesactionduringinstall.

uninstallTheservicewillbestoppedbytheStopServicesactionduringuninstall.

bothTheservicewillbestoppedbytheStopServicesactionduringinstallanduninstall.

Wait YesNoType Specifieswhetherornottowaitfortheservicetocompletebeforecontinuing.

SeeAlsoWixSchema

Version3.0.5419.0

ServiceDependencyElement

DescriptionServiceorgroupofservicesthatmuststartbeforetheparentservice.

WindowsInstallerreferencesServiceInstallTable

ParentsServiceInstall

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Thevalueofthisattributeshould

beoneofthefollowing:1. Thename(notthe

displayname)ofapreviouslyinstalledservice.

2. AforeignkeyreferringtoanotherServiceInstall/@Id.

3. Agroupofservices(inwhichcasetheGroupattributeshouldbesetto'yes').

Yes

Group YesNoType Setto'yes'toindicatethatthevalueintheIdattributeisthenameofagroupofservices.

SeeAlsoWixSchema

Version3.0.5419.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):orderedlistofdependencieswheninstallingservicesAnyElementnamespace='##other'processContents='Lax'ServiceConfig

Attributes

Name Type Description RequiredAccount String Theaccountunder

whichtostarttheservice.ValidonlywhenServiceTypeisownProcess.

Arguments String Containsanycommandlineargumentsorpropertiesrequiredto

runtheservice.Description String Setsthedescriptionof

theservice.

DisplayName String Thiscolumnisthelocalizablestringthatuserinterfaceprogramsusetoidentifytheservice.

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

ErrorControl Enumeration Determineswhatactionshouldbetakenonanerror.Thisattribute'svaluemustbeoneofthefollowing:ignore

Logstheerrorandcontinueswiththestartupoperation.

normalLogstheerror,displaysamessageboxandcontinuesthestartupoperation.

criticalLogstheerrorifitispossibleandthesystemis

Yes

restartedwiththelastconfigurationknowntobegood.Ifthelast-known-goodconfigurationisbeingstarted,thestartupoperationfails.

Id String Uniqueidentifierforthisserviceconfiguration.ThisvaluewilldefaulttotheNameattributeifnotspecified.

Interactive YesNoType Whetherornottheserviceinteractswiththedesktop.

LoadOrderGroup String Theloadorderinggroupthatthisserviceshouldbeapartof.

Name String Thiscolumnisthestringthatgivestheservicenametoinstall.

Yes

Password String Thepasswordfortheaccount.Validonlywhentheaccounthasapassword.

Start Enumeration Determineswhentheserviceshouldbestarted.TheWindowsInstallerdoesnotsupportbootorsystem.Thisattribute'svaluemust

Yes

beoneofthefollowing:auto

Theservicewillstartduringstartupofthesystem.

demandTheservicewillstartwhentheservicecontrolmanagercallstheStartServicefunction.

disabledTheservicecannolongerbestarted.

bootTheserviceisadevicedriverthatwillbestartedbytheoperatingsystembootloader.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.

systemTheserviceisadevicedriverthatwillbestartedbytheIoInitSystemfunction.Thisvalueisnotcurrently

supportedbytheWindowsInstaller.

Type Enumeration TheWindowsInstallerdoesnotcurrentlysupportkernelDriverorsystemDriverThisattribute'svaluemustbeoneofthefollowing:ownProcess

AWin32servicethatrunsitsownprocess.

shareProcessAWin32servicethatsharesaprocess.

kernelDriverAkerneldriverservice.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.

systemDriverAfilesystemdriverservice.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.

Yes

Vital YesNoType Theoverallinstallshouldfailifthis

servicefailstoinstall.

RemarksTheserviceexecutableinstalledwillpointtotheKeyPathfortheComponent.Therefore,youmustensurethatthecorrectexecutableiseitherthefirstchildFileelementunderthisComponentorexplicitlymarktheappropriateFileelementasKeyPath='yes'.

SeeAlsoWixSchema

Version3.0.5419.0

SetDirectoryElement

DescriptionSetsaDirectorytoaparticularvalue.ThisisaccomplishedbycreatingaType51customactionthatisappropriatelyscheduledintheInstallUISequenceandInstallExecuteSequence.

WindowsInstallerreferencesCustomActionTable

ParentsFragment,Module,Product

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

ChildrenNone

Attributes

Name Type Description RequiredId String Thisattributespecifiesa

referencetoaDirectoryelementwithmatchingIdattribute.ThepathoftheDirectorywillbesettotheValueattribute.

Sequence Enumeration ControlswhichsequencestheDirectoryassignmentissequencedin.Thedefaultisboth.Thisattribute'svaluemustbeoneofthefollowing:both

SchedulestheassignmentintheInstallUISequenceand

theInstallExecuteSequence.

executeSchedulestheassignmentonlyinthetheInstallExecuteSequence.

uiSchedulestheassignmentonlyinthetheInstallUISequence.

Value String ThisattributespecifiesastringvaluetoassigntotheDirectory.ThevaluecanbealiteralvalueorderivedfromaPropertyelementusingtheFormattedsyntax.

Anyattributenamespace='##other'processContents='lax'

SeeAlsoWixSchema,Custom,CustomActionRef,InstallUISequence,InstallExecuteSequence

Version3.0.5419.0

SetODBCFoldersElement

DescriptionChecksforexistingODBCdriversandsetsthetargetdirectoryforeachnewdrivertothelocationofanexistingdriver.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesSetODBCFoldersAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

SetPropertyElement

DescriptionSetsaPropertytoaparticularvalue.ThisisaccomplishedbycreatingaType51customactionthatisappropriatelyscheduledintheInstallUISequenceandInstallExecuteSequence.

WindowsInstallerreferencesCustomActionTable

ParentsFragment,Module,Product

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

ChildrenNone

Attributes

Name Type Description RequiredAfter String Thenameofthestandardor

customactionafterwhichthisactionshouldbeperformed.MutuallyexclusivewiththeBeforeattribute.ABeforeorAfterattributeisrequiredwhensettingaProperty.

Before String Thenameofthestandardorcustomactionbeforewhichthisactionshouldbeperformed.MutuallyexclusivewiththeAfterattribute.ABeforeorAfterattributeisrequiredwhen

settingaProperty.Id String Thisattributespecifiesthe

PropertytosettotheValue.

Sequence Enumeration ControlswhichsequencesthePropertyassignmentissequencedin.Thedefaultisboth.Thisattribute'svaluemustbeoneofthefollowing:both

SchedulestheassignmentintheInstallUISequenceandtheInstallExecuteSequence.

executeSchedulestheassignmentonlyinthetheInstallExecuteSequence.

uiSchedulestheassignmentonlyinthetheInstallUISequence.

Value String ThisattributespecifiesastringvaluetoassigntotheProperty.ThevaluecanbealiteralvalueorderivedfromaPropertyelementusingtheFormattedsyntax.

Anyattributenamespace='##other'processContents='lax'

SeeAlsoWixSchema,Custom,CustomActionRef,InstallUISequence,InstallExecuteSequence

Version3.0.5419.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 RequiredDependency String Usedtodefinedependency

outsideofthepackage.

Name String Filenameforcatalogfilewheninstalled.

SourceFile String Pathtocatalogfileinbinary.

SeeAlsoWixSchema

Version3.0.5419.0

SFPFileElement

DescriptionProvidesamany-to-manymappingfromtheSFPCatalogtabletotheFiletable

WindowsInstallerreferencesFileSFPCatalogTable

ParentsSFPCatalog

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String PrimaryKeytoFileTable. Yes

SeeAlsoWixSchema

Version3.0.5419.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 DescriptionId String Uniqueidentifierforthe

shortcut.Thisvaluewillserveastheprimarykeyfortherow.

Advertise YesNoType Specifiesiftheshortcutshouldbeadvertisedornot.Notethatadvertisedshortcutsalwayspointataparticularapplication,identifiedbyaProductCode,andshouldnotbesharedbetweenapplications.Advertisedshortcutsonlyworkforthemostrecentlyinstalledapplication,andareremovedwhenthatapplicationisremoved.Thedefaultvalueis

'no'.Arguments String Thecommand-linearguments

fortheshortcut.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.thisattributeisprovidedandinstallisrunningonVistaandabove,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.thisattributeisnotpopulatedandtheinstallisrunningon

Vistaandabove,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,thepracticeofassigninghotkeystoshortcutscanbeproblematicforusersusinghotkeysforaccessibility.

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

ShortName ShortFileNameType Theshortnameoftheshortcutin8.3format.Thisattributeshouldonlybesetifthereisaconflictbetweengenerated

shortnamesortheuserwantstomanuallyspecifytheshortname.

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

ShortcutPropertyElement

DescriptionPropertyvaluesforashortcut.Thiselement'sfunctionalityisavailablestartingwithMSI5.0.

WindowsInstallerreferencesMsiShortcutPropertyTable

ParentsShortcut

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredId String Uniqueidentifierfor

MsiShortcutPropertytable.Ifomitted,astableidentifierwillbegeneratedfromtheparentshortcutidentifierandKeyvalue.

Key String Aformattedstringidentifyingthepropertytobeset.

Yes

Value String Aformattedstringsupplyingthevalueoftheproperty.

SeeAlsoWixSchema,Shortcut

Version3.0.5419.0

ShowElement

DescriptionNone

WindowsInstallerreferencesNone

ParentsAdminUISequence,InstallUISequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredAfter String Before String Dialog String YesOnExit Enumeration mutuallyexclusivewith

Before,After,andSequenceattributesThisattribute'svaluemustbeoneofthefollowing:success

cancel

error

suspend

Overridable YesNoType If"yes",thesequencingofthisdialogmaybeoverriddenbysequencing

elsewhere.Sequence Integer

SeeAlsoWixSchema

Version3.0.5419.0

StartServicesElement

DescriptionStartssystemservices.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesStartServicesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

StopServicesElement

DescriptionStopssystemservices.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesStopServicesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

SubscribeElement

DescriptionSetsattributesforeventsintheEventMappingtable

WindowsInstallerreferencesEventMappingTable

ParentsControl

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredAttribute String ifnotpresentcanonlyhandle

enable,disable,hide,unhideevents

Event String mustbeoneofthestandardcontrolevents'

SeeAlsoWixSchema

Version3.0.5419.0

SubstitutionElement

DescriptionSpecifiestheconfigurablefieldsofamoduledatabaseandprovidesatemplatefortheconfigurationofeachfield.

WindowsInstallerreferencesNone

ParentsModule

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredColumn String Specifiesthetargetcolumninthe

rownamedintheRowcolumn.Yes

Row String SpecifiestheprimarykeysofthetargetrowinthetablenamedintheTablecolumn.Ifmultiplekeys,separatedbysemicolons.

Yes

Table String Specifiesthenameofthetablebeingmodifiedinthemoduledatabase.

Yes

Value String ProvidesaformattingtemplateforthedatabeingsubstitutedintothetargetfieldspecifiedbyTable,Row,andColumn.

SeeAlsoWixSchema

Version3.0.5419.0

SymbolPathElement

DescriptionApathtosymbols.

WindowsInstallerreferencesNone

ParentsComponent,Directory,ExternalFile,File,Media,Product,TargetFile,TargetImage,UpgradeFile,UpgradeImage

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredPath String Thepath. Yes

SeeAlsoWixSchema

Version3.0.5419.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 RequiredId String ForeignkeyintotheFiletable. Yes

SeeAlsoWixSchema

Version3.0.5419.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 RequiredId String Identifierforthetarget

image.Yes

IgnoreMissingFiles YesNoType Filesmissingfromthetargetimageareignoredbytheinstaller.

Order Int Relativeorderofthetargetimage.

Yes

SourceFile String Fullpathtothelocationofthemsifileforthetargetimage.

src String Thisattributehasbeendeprecated;pleaseusetheSourceFileattribute

instead.Validation String Productcheckingto

avoidapplyingirrelevanttransforms.

SeeAlsoWixSchema

Version3.0.5419.0

TargetProductCodeElement

DescriptionAproductcodeforaproductthatcanacceptthepatch.

WindowsInstallerreferencesNone

ParentsPatchCreation,TargetProductCodes

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Theproductcodeforaproductthat

canacceptthepatch.Thiscanbe'*'.Seeremarksformoreinformation.

Yes

Remarks

WhenusingthePatchCreationelement,iftheIdattributevalueis'*'orthiselementisnotauthored,theproductcodesofallproductsreferencedbytheTargetImageselementareused.

WhenusingthePatchelement,theIdattributevaluemustnotbe'*'.UsetheTargetProductCodes/@Replaceattributeinstead.

SeeAlsoWixSchema

Version3.0.5419.0

TargetProductCodesElement

DescriptionTheproductcodesforproductsthatcanacceptthepatch.

WindowsInstallerreferencesNone

ParentsPatch

InnerTextNone

ChildrenChoiceofelements(min:1,max:unbounded)TargetProductCode(min:1,max:unbounded)

Attributes

Name Type Description RequiredReplace YesNoType Whethertoreplacetheproduct

codesthatcanacceptthepatchfromthetargetpackageswiththechildelements.

SeeAlsoWixSchema

Version3.0.5419.0

TextElement

DescriptionAnalternativetousingtheTextattributewhenthevaluecontainsspecialXMLcharacterslike<,>,or&.

WindowsInstallerreferencesNone

ParentsControl

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSourceFile String Instructsthetexttobeimported

fromafileinsteadoftheelementvalueduringthebindingprocess.

src String Thisattributehasbeendeprecated;pleaseusetheSourceFileattributeinstead.

SeeAlsoWixSchema

Version3.0.5419.0

TextStyleElement

DescriptionNone

WindowsInstallerreferencesTextStyleTable

ParentsUI

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String YesBlue Integer 0to255 Bold YesNoType FaceName String YesGreen Integer 0to255 Italic YesNoType Red Integer 0to255 Size String YesStrike YesNoType Underline YesNoType

SeeAlsoWixSchema

Version3.0.5419.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 RequiredId Guid TheGUIDthatidentifes

thetypelibrary.Yes

Advertise YesNoType Valueof'yes'willcreatearowintheTypeLibtable.Valueof'no'willcreaterowsintheRegistrytable.Thedefaultvalueis'no'.

Control YesNoType Valueof'yes'meansthetypelibrarydescribescontrols,andshouldnotbedisplayedintype

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

0-255.MinorVersion Integer Theminorversionofthe

typelibrary.Thevalueshouldbeanintegerfrom0-255.

ResourceId Integer Theresourceidofatypelib.Thevalueisappendedtotheendofthetypelibpathintheregistry.

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

SeeAlsoWixSchema

Version3.0.5419.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):ActionTextentryassociatedwithanactionProperty(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 RequiredId String

SeeAlsoWixSchema,UIRef

Version3.0.5419.0

UIRefElement

DescriptionReferencetoaUIelement.ThiswillforcetheentirereferencedFragment'scontentstobeincludedintheinstallerdatabase.

WindowsInstallerreferencesNone

ParentsFragment,Module,PatchFamily,Product,UI

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String YesAnyattributenamespace='##other'processContents='lax'

SeeAlsoWixSchema,UI

Version3.0.5419.0

UITextElement

DescriptionTextassociatedwithcertaincontrols

WindowsInstallerreferencesUITextTable

ParentsUI

InnerText(xs:string)Elementvalueistext,mayuseCDATAifneededtoescapeXMLdelimiters

ChildrenNone

Attributes

Name Type Description RequiredId String Yes

SeeAlsoWixSchema

Version3.0.5419.0

UnpublishComponentsElement

DescriptionManagestheunadvertisementofcomponentslistedinthePublishComponenttable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnpublishComponentsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

UnpublishFeaturesElement

DescriptionRemovesselection-stateandfeature-componentmappinginformationfromtheregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnpublishFeaturesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

UnregisterClassInfoElement

DescriptionManagestheremovalofCOMclassinformationfromthesystemregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterClassInfoAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

UnregisterComPlusElement

DescriptionRemovesCOM+applicationsfromtheregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterComPlusAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

UnregisterExtensionInfoElement

DescriptionManagestheremovalofextension-relatedinformationfromthesystemregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterExtensionInfoAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

UnregisterFontsElement

DescriptionRemovesregistrationinformationaboutinstalledfontsfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterFontsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

UnregisterMIMEInfoElement

DescriptionUnregistersMIME-relatedregistryinformationfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterMIMEInfoAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

UnregisterProgIdInfoElement

DescriptionManagestheunregistrationofOLEProgIdinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterProgIdInfoAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

UnregisterTypeLibrariesElement

DescriptionUnregisterstypelibrariesfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterTypeLibrariesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.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 RequiredId Guid Thisvaluespecifiestheupgrade

codefortheproductsthataretobedetectedbytheFindRelatedProductsaction.

Yes

SeeAlsoWixSchema

Version3.0.5419.0

UpgradeFileElement

DescriptionSpecifiesfilestoeitherignoreortospecifyoptionaldataaboutafile.

WindowsInstallerreferencesNone

ParentsUpgradeImage

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)SymbolPath(min:0,max:unbounded)

Attributes

Name Type Description RequiredAllowIgnoreOnError YesNoType Specifieswhether

patchingthisfileisvital.

File String ForeignkeyintotheFiletable.

Yes

Ignore YesNoType Ifyes,thefileisignoredduringpatching,andthenexttwoattributesareignored.

Yes

WholeFile YesNoType Whetherthewholefileshouldbeinstalled,ratherthancreatingabinarypatch.

SeeAlsoWixSchema

Version3.0.5419.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 RequiredId String Identifiertoconnecttarget

imageswithupgradedimage.Yes

SourceFile String Fullpathtolocationofmsifileforupgradedimage.

SourcePatch String Modifiedcopyoftheupgradedinstallationdatabasethatcontainsadditionalauthoringspecifictopatching.

src String Thisattributehasbeendeprecated;pleaseusetheSourceFileattributeinstead.

srcPatch String Thisattributehasbeendeprecated;pleaseusethe

SourcePatchattributeinstead.

SeeAlsoWixSchema

Version3.0.5419.0

UpgradeVersionElement

DescriptionNone

WindowsInstallerreferencesUpgradeTable

ParentsUpgrade

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredExcludeLanguages YesNoType Setto"yes"todetectall

languages,excludingthelanguageslistedintheLanguageattribute.

IgnoreRemoveFailure YesNoType Setto"yes"tocontinueinstallationuponfailuretoremoveaproductorapplication.

IncludeMaximum YesNoType Setto"yes"tomaketherangeofversionsdetectedincludethevaluespecifiedinMaximum.

IncludeMinimum YesNoType Setto"no"tomaketherangeofversionsdetectedexcludethevaluespecifiedinMinimum.Thisattribute

is"yes"bydefault.Language String Specifiesthesetof

languagesdetectedbyFindRelatedProducts.Enteralistofnumericlanguageidentifiers(LANGID)separatedbycommas(,).Leavethisvaluenulltospecifyalllanguages.SetExcludeLanguagesto"yes"inorderdetectalllanguages,excludingthelanguageslistedinthisvalue.

Maximum String SpecifiestheupperboundaryoftherangeofproductversionsdetectedbyFindRelatedProducts.

MigrateFeatures YesNoType Setto"yes"tomigratefeaturestatesfromupgradedproductsbyenablingthelogicintheMigrateFeatureStatesaction.

Minimum String SpecifiesthelowerboundontherangeofproductversionstobedetectedbyFindRelatedProducts.

OnlyDetect YesNoType Setto"yes"todetectproductsandapplicationsbutdonotuninstall.

Property String WhentheFindRelatedProducts

Yes

actiondetectsarelatedproductinstalledonthesystem,itappendstheproductcodetothepropertyspecifiedinthisfield.WindowsInstallerdocumentationfortheUpgradetablestatesthatthepropertyspecifiedinthisfieldmustbeapublicpropertyandmustbeaddedtotheSecureCustomPropertiesproperty.WiXautomaticallyappendsthepropertyspecifiedinthisfieldtotheSecureCustomPropertiespropertywhencreatinganMSI.EachUpgradeVersionmusthaveauniquePropertyvalue.AftertheFindRelatedProductsactionisrun,thevalueofthispropertyisalistproductcodes,separatedbysemicolons(;),detectedonthesystem.

RemoveFeatures String TheinstallersetstheREMOVEpropertytofeaturesspecifiedinthiscolumn.Thefeaturestoberemovedcanbedeterminedatruntime.TheFormattedstringenteredinthisfieldmust

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

Anyattributenamespace='##other'processContents='lax'

SeeAlsoWixSchema

Version3.0.5419.0

ValidateElement

DescriptionSetsinformationinthepatchtransformthatdeterminesifthetransformappliestoaninstalledproductandwhaterrorsshouldbeignoredwhenapplyingthepatchtransform.

WindowsInstallerreferencesNone

ParentsPatchBaseline

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredIgnoreAddExistingRow YesNoType Ignoreerrorswhen

addingexistingrows.Thedefaultis'yes'.

IgnoreAddExistingTable YesNoType Ignoreerrorswhenaddingexistingtables.Thedefaultis'yes'.

IgnoreChangingCodePage YesNoType Ignoreerrorswhenchangingthedatabasecodepage.Thedefaultis'no'.

IgnoreDeleteMissingRow YesNoType Ignoreerrorswhendeletingmissingrows.Thedefaultis

'yes'.IgnoreDeleteMissingTable YesNoType Ignoreerrorswhen

deletingmissingtables.Thedefaultis'yes'.

IgnoreUpdateMissingRow YesNoType Ignoreerrorswhenupdatingmissingrows.Thedefaultis'yes'.

ProductId YesNoType RequiresthattheinstalledProductCodematchthetargetProductCodeusedtocreatethetransform.Thedefaultis'yes'.

ProductLanguage YesNoType RequiresthattheinstalledProductLanguagematchthetargetProductLanguageusedtocreatethetransform.Thedefaultis'no'.

ProductVersion Enumeration DetermineshowmanyfieldsoftheinstalledProductVersiontocompare.Seeremarksformoreinformation.Thedefaultis'Update'.Thisattribute'svaluemustbeoneofthefollowing:Major

Checksthe

majorversion.

MinorChecksthemajorandminorversions.

UpdateChecksthemajor,minor,andupdateversions.

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

InstalledProductVersion<targetProductVersion.

LesserOrEqualInstalledProductVersion<=targetProductVersion.

EqualInstalled

ProductVersion=targetProductVersion.

GreaterOrEqualInstalledProductVersion>=targetProductVersion.

GreaterInstalledProductVersion>targetProductVersion.

UpgradeCode YesNoType RequiresthattheinstalledUpgradeCodematchthetargetUpgradeCodeusedtocreatethetransform.Thedefaultis'yes'.

Remarks

Atransformcontainsthedifferencesbetweenthetargetproductandtheupgradedproduct.Whenatransformorapatch(whichcontainstransforms)isapplied,thefollowingpropertiesoftheinstalledproductarevalidatedagainstthepropertiesofthetargetproductstoredinatransform.

ProductCodeProductLanguageProductVersionUpgradeCode

WindowsInstallersimplyvalidatesthattheProductCode,ProductLanguage,andUpgradeCodeofaninstalledproductareequivalenttothosepropetiesofthetargetproductusedto

createthetransform;however,theProductVersioncanbevalidatedwithagreaterrangeofcomparisons.

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

SeeAlsoWixSchema

Version3.0.5419.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 RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

VerbElement

DescriptionVerbdefinitionforanExtension.Whenadvertised,thiselementcreatesarowintheVerbtable.Whennotadvertised,thiselementcreatestheappropriaterowsinRegistrytable.

WindowsInstallerreferencesVerbTable,RegistryTable

ParentsExtension

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Theverbforthecommand. YesArgument String Valueforthecommand

arguments.NotethattheresolutionofpropertiesintheArgumentfieldislimited.Apropertyformattedas[Property]inthisfieldcanonlyberesolvedifthepropertyalreadyhastheintendedvaluewhenthecomponentowningtheverbisinstalled.Forexample,fortheargument"[#MyDoc.doc]"toresolvetothecorrectvalue,thesameprocessmustbeinstallingthefile

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

WixElement

DescriptionThisisthetop-levelcontainerelementforeverywxsfile.Amongthepossiblechildren,theProduct,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)Module(min:0,max:1)Patch(min:0,max:1)Product(min:0,max:1)

2. Fragment(min:0,max:unbounded)

Attributes

Name Type DescriptionRequiredVersion VersionType RequiredversionoftheWiXtoolsettocompile

thisinputfile.

Anyattributenamespace='##other'processContents='lax'RequiredVersion String Theversionofthisextensionrequiredto

compilethedefiningsource.(http://schemas.microsoft.com/wix/PSExtension)

SeeAlsoWixSchema

Version3.0.5419.0

WixVariableElement

DescriptionThiselementexposesadvancedWiXfunctionality.UsethiselementtodeclareWiXvariablesfromdirectlywithinyourauthoring.WiXvariablesarenotresolveduntilthefinalmsi/msm/pcpfileisactuallygenerated.WiXvariablesdonotpersistintothemsi/msm/pcpfile,sotheycannotbeusedwhenanMSIfileisbeinginstalled;itsaWiX-onlyconcept.

WindowsInstallerreferencesNone

ParentsFragment,Module,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Thenameofthevariable. YesOverridable YesNoType Setthisvalueto'yes'in

ordertomakethevariable'svalueoverridableeitherbyanotherWixVariableentryorviathecommand-lineoption-d<name>=<value>forlight.exe.Ifthesamevariableisdeclaredoverridableinmultipleplacesitwillcauseanerror(sinceWiXwon'tknowwhichvalueiscorrect).Thedefaultvalue

is'no'.Value String Thevalueofthevariable.

Thevaluecannotbeanemptystringbecausethatwouldmakeitpossibletoaccidentallysetacolumntonull.

Yes

SeeAlsoWixSchema

Version3.0.5419.0

WriteEnvironmentStringsElement

DescriptionModifiesthevaluesofenvironmentvariables.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesWriteEnvironmentStringsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

WriteIniValuesElement

DescriptionWritesthe.inifileinformationthattheapplicationneedswrittentoits.inifiles.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesWriteIniValuesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.0.5419.0

WriteRegistryValuesElement

DescriptionSetsupanapplication'sregistryinformation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesWriteRegistryValuesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredSequence Integer Avalueusedtoindicatethe

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

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

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

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

PatchClassificationType(SimpleType)

DescriptionCategoryofupdate.

EnumerationTypePossiblevalues:{CriticalUpdate,Hotfix,SecurityRollup,ServicePack,Update,UpdateRollup}

SeeAlsoWixSchema

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

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>

StringElement

DescriptionNone

WindowsInstallerreferencesNone

ParentsWixLocalization

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredId String Identityofthe

resource.Yes

Localizable LocalizationYesNoType Indicateswhetherthestringislocalizabletextoranon-localizablestringthatmustbeuniqueperlocale.NoWiXtoolsareaffectedbythevalueofthisattribute;itusedasdocumentationforlocalizerstoignorethingslike

GUIDsoridentifiersthatlookliketext.

Overridable LocalizationYesNoType Determinesifthelocalizedstringmaybeoverridden.

HowTosandExamplesHowTo:BuildalocalizedversionofyourinstallerHowTo:Makeyourinstallerlocalizable

SeeAlsoWixlocSchema

Version3.0.5419.0

WixLocalizationElement

DescriptionNone

WindowsInstallerreferencesNone

ParentsNone

InnerTextNone

ChildrenSequence(min:0,max:unbounded)

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

Attributes

Name Type Description RequiredCodepage String Thecodepageintegervalueor

webnamefortheresultingdatabase.Seeremarksformoreinformation.

Culture String Cultureofthelocalizationstrings. Yes

Remarks

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

HowTosandExamplesHowTo:BuildalocalizedversionofyourinstallerHowTo:Makeyourinstallerlocalizable

SeeAlsoWixlocSchema

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

ChildElementsComPlusApplicationComPlusApplicationRoleComPlusAssemblyComPlusAssemblyDependencyComPlusComponentComPlusGroupInApplicationRoleComPlusGroupInPartitionRoleComPlusInterfaceComPlusMethodComPlusPartitionComPlusPartitionRoleComPlusPartitionUserComPlusRoleForComponentComPlusRoleForInterfaceComPlusRoleForMethod

ComPlusSubscriptionComPlusUserInApplicationRoleComPlusUserInPartitionRole

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 DescriptionId String Identifierfortheelement.AccessChecksLevel Enumeration Thisattribute'svaluemust

beoneofthefollowing:applicationLevel

applicationComponentLevel

Activation Enumeration Thisattribute'svaluemustbeoneofthefollowing:inproc

local

ApplicationAccessChecksEnabled YesNoType ApplicationDirectory String ApplicationId String Idfortheapplication.This

attributecanbeomitted,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'svaluemust

beoneofthefollowing:anonymous

identify

impersonate

delegate

IsEnabled YesNoType MaxDumpCount Int Name String Nameoftheapplication.

Thisattributecanbeomittediftheelementisalocater,andavalueisprovidedforthePartitionIdattribute.

Partition String IftheelementisnotachildofaComPlusPartitionelement,thisattributecanbeprovidedwiththeidofaComPlusPartitionelement

representingthepartitiontheapplicationbelongsto.

Password String QCAuthenticateMsgs Enumeration Thisattribute'svaluemust

beoneofthefollowing: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'svaluemust

beoneofthefollowing:disallowed

fullyTrusted

ThreeGigSupportEnabled YesNoType

SeeAlsoComplusSchema

Version3.0.5419.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 RequiredId String Identifierfortheelement. YesApplication String Iftheelementisnotachildofa

ComPlusApplicationelement,thisattributeshouldbeprovidedwiththeidofaComPlusApplicationelementrepresentingtheapplicationthe

rolebelongsto.Description String Name String Nameoftheapplicationrole. Yes

SeeAlsoComplusSchema

Version3.0.5419.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 RequiredId String Identifierforthe

element.Yes

Application String IftheelementisnotachildofaComPlusApplicationelement,thisattributeshouldbeprovided

withtheidofaComPlusApplicationelementrepresentingtheapplicationtheassemblyistoberegisteredin.Thisattributecanbeomittedfora.NETassemblyeveniftheapplicationisnotachildofaComPlusApplicationelement.

AssemblyName String ThenameoftheassemblyusedtoidentifytheassemblyintheGAC.ThisattributecanbeprovidedonlyifDllPathFromGACissetto“yes”.

DllPath String ThepathtolocatetheassemblyDLLduringregistration.ThisattributeshouldbeprovidedifDllPathFromGACisnotsetto“yes”.

DllPathFromGAC YesNoType IndicatesthattheDLLpathshouldbeextractedfromtheGACinsteadforbeingprovidedintheDllPathattribute.Ifthisattributeissetto“yes”,thenameoftheassemblycanbeprovidedusingthe

AssemblyNameattribute.Or,ifthisAssemblyNameattributeismissing,thenamewillbeextractedfromtheMsiAssemblyNametableusingtheidoftheparentComponentelement.

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

PSDllPath String Anoptionalpathtoanexternalproxy/stubDLLfortheassembly.

RegisterInCommit YesNoType Indicatesthattheassemblyshouldbeinstalledinthecommitcustomactioninsteadofthenormaldeferredcustomaction.Thisisnecessarywheninstalling.NETassembliestotheGACinthesame

installation,astheassembliesarenotvisibleintheGACuntilaftertheInstallFinalizeactionhasrun.

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

ComPlusAssemblyDependencyElement(ComplusExtension)

DescriptionDefinesadependencybetweentwoassemblies.Thiselementaffectstheorderinwhichassemblesareregistered.Anyassembliesreferencedbythiselementareguarantiedtoberegisteredbefore,andunregisteredafter,theassemblyreferencedbytheparentComPlusAssemblyelement.

WindowsInstallerreferencesNone

ParentsComPlusAssembly

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredRequiredAssembly String Referencetotheidofthe

assemblyrequiredbytheparentComPlusAssemblyelement.

Yes

RemarksItisonlynecessarytoexplicitlyspecifydependenciesbetweenassembliescontainedinthesamepackage(MSIorMSM).Assembliesmergedintoapackagefromamergemodulewillalwaysbeinstalledbeforeanyassembliesspecifiedinthebasepackage.AssembliesmergedinfromdifferentmergemodulesaresequencedusingtheModuleDependencyMSItable.Itisnotpossibletohavecrossdependenciesbetweenmergemodules

orhaveanassemblyinamergemoduledependonanassemblyinthebasepackage.

SeeAlsoComplusSchema

Version3.0.5419.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 DescriptionId String Identifierforthe

element.AllowInprocSubscribers YesNoType CLSID Uuid CLSIDofthe

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

valuemustbeoneofthefollowing:ignored

none

supported

required

requiresNew

Transaction Enumeration Thisattribute's

valuemustbeoneofthefollowing:ignored

none

supported

required

requiresNew

TxIsolationLevel Enumeration Thisattribute'svaluemustbeoneofthefollowing:any

readUnCommitted

readCommitted

repeatableRead

serializable

SeeAlsoComplusSchema

Version3.0.5419.0

ComPlusGroupInApplicationRoleElement(ComplusExtension)

DescriptionThiselementrepresentsasecuritygroupmembershipinanapplicationrole.Whentheparentcomponentofthiselementisinstalled,theuserwillbeaddedtotheassociatedapplicationrole.ThiselementmustbeadescendentofaComponentelement;itcannotbeachildofaComPlusApplicationRolelocaterelement.ToreferencealocaterelementusetheApplicationRoleattribute.

WindowsInstallerreferencesNone

ParentsComPlusApplicationRole,Component

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Identifierfortheelement. YesApplicationRole String Iftheelementisnotachildof

aComPlusApplicationRoleelement,thisattributeshouldbeprovidedwiththeidofaComPlusApplicationRoleelementrepresentingtheapplicationroletheuseristobeaddedto.

Group String ForeignkeyintotheGroup Yes

table.

SeeAlsoComplusSchema

Version3.0.5419.0

ComPlusGroupInPartitionRoleElement(ComplusExtension)

DescriptionThiselementrepresentsasecuritygroupmembershipinapartitionrole.Whentheparentcomponentofthiselementisinstalled,thesecuritygroupwillbeaddedtotheassociatedpartitionrole.

WindowsInstallerreferencesNone

ParentsComPlusPartitionRole,Component

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Identifierfortheelement. YesGroup String ForeignkeyintotheGroup

table.Yes

PartitionRole String TheidofaComPlusPartitionRoleelementrepresentingthepartitiontheusershouldbeaddedto.

SeeAlsoComplusSchema

Version3.0.5419.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 RequiredId String Identifierforthe

element.Yes

Description String IID Uuid IIDoftheinterface. YesQueuingEnabled YesNoType

SeeAlsoComplusSchema

Version3.0.5419.0

ComPlusMethodElement(ComplusExtension)

DescriptionRepresentsamethodforaninterface.

WindowsInstallerreferencesNone

ParentsComPlusInterface

InnerTextNone

ChildrenSequence(min:1,max:1)

1. ComPlusRoleForMethod(min:0,max:unbounded)

Attributes

Name Type Description RequiredId String Identifierfortheelement. YesAutoComplete YesNoType Description String Index Int Dispatchidofthemethod.

IfthisattributeisnotsetavaluemustbeprovidedfortheNameattribute.

Name String Nameofthemethod.IfthisattributeisnotsetavaluemustbeprovidedfortheIndexattribute.

SeeAlsoComplusSchema

Version3.0.5419.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 RequiredId String Identifierfortheelement. YesChangeable YesNoType Deleteable YesNoType Description String Name String Nameofthepartition.This

attributecanbeomittediftheelementisalocater,and

avalueisprovidedforthePartitionIdattribute.

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

SeeAlsoComplusSchema

Version3.0.5419.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 RequiredId String Identifierfortheelement. YesName String Nameofthepartitionrole. YesPartition String TheidofaComPlusPartition

elementrepresentingthepartitiontherolebelongsto.

SeeAlsoComplusSchema

Version3.0.5419.0

ComPlusPartitionUserElement(ComplusExtension)

DescriptionRepresentsadefaultpartitiondefinitionforauser.Whentheparentcomponentofthiselementisinstalled,thedefaultpartitionoftheuserwillbesettothereferencedpartition.

WindowsInstallerreferencesNone

ParentsComPlusPartition,Component

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Identifierfortheelement. YesPartition String TheidofaComPlusPartition

elementrepresentingthepartitionthatwillbethedefaultpartitionfortheuser.

User String ForeignkeyintotheUsertable. Yes

SeeAlsoComplusSchema

Version3.0.5419.0

ComPlusRoleForComponentElement(ComplusExtension)

DescriptionRepresentsaroleassignmenttoaCOM+component.

WindowsInstallerreferencesNone

ParentsComPlusComponent,Component

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Identifierfortheelement. YesApplicationRole String Idofthe

ComPlusApplicationRoleelementrepresentingtherolethatshallbegrantedaccesstothecomponent.

Yes

Component String IftheelementisnotachildofaComPlusComponentelement,thisattributeshouldbeprovidedwiththeidofaComPlusComponentelementrepresentingthecomponenttheroleistobeaddedto.

SeeAlsoComplusSchema

Version3.0.5419.0

ComPlusRoleForInterfaceElement(ComplusExtension)

DescriptionRepresentsaroleassignmenttoaninterface.

WindowsInstallerreferencesNone

ParentsComPlusInterface,Component

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Identifierfortheelement. YesApplicationRole String Idofthe

ComPlusApplicationRoleelementrepresentingtherolethatshallbegrantedaccesstotheinterface.

Yes

Interface String IftheelementisnotachildofaComPlusInterfaceelement,thisattributeshouldbeprovidedwiththeidofaComPlusInterfaceelementrepresentingtheinterfacetheroleistobeaddedto.

SeeAlsoComplusSchema

Version3.0.5419.0

ComPlusRoleForMethodElement(ComplusExtension)

DescriptionRepresentsaroleassignmenttoaCOM+method.

WindowsInstallerreferencesNone

ParentsComPlusMethod,Component

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Identifierfortheelement. YesApplicationRole String Idofthe

ComPlusApplicationRoleelementrepresentingtherolethatshallbegrantedaccesstothemethod.

Yes

Method String IftheelementisnotachildofaComPlusMethodelement,thisattributeshouldbeprovidedwiththeidofaComPlusMethodelementrepresentingthemethodtheroleistobeaddedto.

SeeAlsoComplusSchema

Version3.0.5419.0

ComPlusSubscriptionElement(ComplusExtension)

DescriptionDefinesaneventsubscriptionforaCOM+component.

WindowsInstallerreferencesNone

ParentsComPlusComponent,Component

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Identifierforthe

element.Yes

Component String IftheelementisnotachildofaComPlusComponentelement,thisattributeshouldbeprovidedwiththeidofaComPlusComponentelementrepresentingthecomponentthesubscriptionistobecreatedfor.

Description String

Enabled YesNoType EventClassPartitionID String EventCLSID String CLSIDoftheevent

classforthesubscription.Ifavalueforthisattributeisnotprovided,avalueforthePublisherIDattributemustbeprovided.

FilterCriteria String InterfaceID String MachineName String MethodName String Name String Nameofthe

subscription.Yes

PerUser YesNoType PublisherID String Publisheridforthe

subscription.Ifavalueforthisattributeisnotprovided,avaluefortheEventCLSIDattributemustbeprovided.

Queued YesNoType SubscriberMoniker String SubscriptionId String Idofthe

subscription.Ifavalueisnotprovidedforthisattribute,anidwillbegeneratedduringinstallation.

UserName String

SeeAlsoComplusSchema

Version3.0.5419.0

ComPlusUserInApplicationRoleElement(ComplusExtension)

DescriptionThiselementrepresentsausermembershipinanapplicationrole.Whentheparentcomponentofthiselementisinstalled,theuserwillbeaddedtotheassociatedapplicationrole.ThiselementmustbeadescendentofaComponentelement;itcannotbeachildofaComPlusApplicationRolelocaterelement.ToreferencealocaterelementusetheApplicationRoleattribute.

WindowsInstallerreferencesNone

ParentsComPlusApplicationRole,Component

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Identifierfortheelement. YesApplicationRole String Iftheelementisnotachildof

aComPlusApplicationRoleelement,thisattributeshouldbeprovidedwiththeidofaComPlusApplicationRoleelementrepresentingtheapplicationroletheuseristobeaddedto.

User String ForeignkeyintotheUsertable.

Yes

SeeAlsoComplusSchema

Version3.0.5419.0

ComPlusUserInPartitionRoleElement(ComplusExtension)

DescriptionThiselementrepresentsausermembershipinapartitionrole.Whentheparentcomponentofthiselementisinstalled,theuserwillbeaddedtotheassociatedpartitionrole.

WindowsInstallerreferencesNone

ParentsComPlusPartitionRole,Component

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Identifierfortheelement. YesPartitionRole String Theidofa

ComPlusPartitionRoleelementrepresentingthepartitiontheusershouldbeaddedto.

User String ForeignkeyintotheUsertable. Yes

SeeAlsoComplusSchema

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

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

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

PatchClassificationType(SimpleType)

DescriptionCategoryofupdate.

EnumerationTypePossiblevalues:{CriticalUpdate,Hotfix,SecurityRollup,ServicePack,Update,UpdateRollup}

SeeAlsoComplusSchema

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

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

DriverElement(DifxappExtension)

DescriptionInstallsadriver.Tousethiselement,youneedtoreferencetheWixDifxAppExtensionextensionandaddthe.wixlibappropriateforthetargetplatform(difxapp_x86.wixlib,difxapp_x64.wixlib,ordifxapp_ia64.wixlib)toyourproject.

WindowsInstallerreferencesNone

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type DescriptionAddRemovePrograms YesNoType SpecifiesthattheDIFxAppCustomActionsshouldaddan

entryintheAdd/RemoveProgramsControlThedefaultis'yes'.

DeleteFiles YesNoType Ifsetto"yes",configuresDIFxApptodeletebinaryfilesthatwerecopiedtothesystemfromthedriveradriverpackagewasinstalled.Ifthisattributeissetto"no"ornotpresent,DIFxAppdoesnotfromasystem.NotethatconfiguringDIFxApptodeletethesefilesiscontrolledbytheFlagsentryvalueofthecomponentthatrepresentsthedriverpackageintheMsiDriverPackagescustomtable.DriverDeleteFilesto"yes"setsthecorrespondingbitintheFlagsentryvalue.SettingDriverLegacycorrespondingbitintheFlagsentryvalue.Ifthisattributeisnotpresent,DIFxAppusesadefaultvalueof"no".

ForceInstall YesNoType SpecifiesthattheDIFxAppCustomActionsshouldforcetheinstallationofanewPlugandPlaydriverevenifthecurrentlyinstalleddriveronthedeviceisabettermatchthanthenewdriver.excellentwaytoensuretheDIFxAppCustomActionsrecognizetheComponentcontainsThedefaultisnullwhichmeanstheComponentdoesnotinstalladriverviaDIFxAppCustomActions.Seehttp://www.microsoft.com/whdc/driver/install/difxtools.mspxformoreinformation.

Legacy YesNoType Ifsetto"yes",configuresDIFxApptoinstallunsigneddriverpackagesanddriverpackageswithmissingFormoreinformation,see"InstallingUnsignedDriverPackagesinLegacyMode"earlierinthispaper.attributeissetto"no"ornotpresent,DIFxAppwillinstallonlysigneddriverpackages.NoteDIFxApptoinstallunsigneddriversiscontrolledbytheFlagsentryvalueofthecomponentdriverpackageintheMsiDriverPackagescustomtable.SettingDriverLegacyto"yes"setstheFlagsentryvalue.SettingDriverLegacyto"no"clearsthebitintheFlagsentryvaluethatconfiguresDIFxApptoinstallunsigneddriverpackages.Ifthisattributeisnotpresent,DIFxAppusesadefaultvalueof"no".

PlugAndPlayPrompt YesNoType SpecifiesthattheDIFxAppCustomActionsshouldprompttheusertoconnectthePlugandPlayconnected.Thedefaultis'yes'.

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

SeeAlsoDifxappSchema

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

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

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

PatchClassificationType(SimpleType)

DescriptionCategoryofupdate.

EnumerationTypePossiblevalues:{CriticalUpdate,Hotfix,SecurityRollup,ServicePack,Update,UpdateRollup}

SeeAlsoDifxappSchema

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

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

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

exception.Yes

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

IgnoreFailure YesNoType If"yes,"failurestoregisterthisfirewallexceptionwillbesilentlyignored.If"no"

(thedefault),failureswillcauserollback.

Name String Nameofthisfirewallexception,visibletotheuserinthefirewallcontrolpanel.

Yes

Port String Porttoallowthroughthefirewallforthisexception.IfyouusePort,youcannotalsouseFileorProgram.

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

Protocol Enumeration IPprotocolusedforthisfirewallexception.Ifnotspecified,"tcp"isassumed.IfyouuseProtocol,youmustalsospecifyPortandyoucannotalsouseFileorProgram.Thisattribute'svaluemustbeoneofthefollowing:tcp

udp

Scope Enumeration Thescopeofthisfirewallexception,whichindicateswhetherincoming

connectionscancomefromanycomputerincludingthoseontheInternetoronlythoseonthelocalnetworksubnet.Tomorepreciselyspecifyallowedremoteaddress,specifyacustomscopeusingRemoteAddresschildelements.Thisattribute'svaluemustbeoneofthefollowing:any

localSubnet

SeeAlsoFirewallSchema

Version3.0.5419.0

RemoteAddressElement(FirewallExtension)

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

WindowsInstallerreferencesNone

ParentsFirewallException

InnerText(xs:string)Aremoteaddress.

ChildrenNone

AttributesNone

SeeAlsoFirewallSchema

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

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

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

PatchClassificationType(SimpleType)

DescriptionCategoryofupdate.

EnumerationTypePossiblevalues:{CriticalUpdate,Hotfix,SecurityRollup,ServicePack,Update,UpdateRollup}

SeeAlsoFirewallSchema

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

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

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 RequiredId Guid Thegame'sinstanceID. YesExecutableFile String Identifierofthefilethatis

thegame'sexecutable,ifitisn'ttheparentfile.

GdfResourceFile String Identifierofthefilethatcontainsthegame'sGDFresource,ifitdoesn'texistintheparentfile.

SeeAlsoGamingSchema

Version3.0.5419.0

PlayTaskElement(GamingExtension)

DescriptionCreatesashortcuttotheparentFileandregistersitasa"playtask"inGameExplorer.Formoreinformation,seeGameExplorerTasks.PlayTaskshouldnotbeusedwhenauthoringthetasksintheGDFusingExtendedProperties\GameTasksavailableinWindows7.

WindowsInstallerreferencesNone

ParentsGame

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredArguments String Command-lineargumentstobe

passedtothegameexecutableforthistask.

Name String User-visibletasknameGameExplorershowsonitscontextmenu.Notethatthefirsttaskisnamed"Play"regardlessofthenameyouprovide.

Yes

SeeAlsoGamingSchema

Version3.0.5419.0

SupportTaskElement(GamingExtension)

DescriptionCreatesanInternetshortcutandregistersitasa"supporttask"inGameExplorer.Formoreinformation,seeGameExplorerTasks.SupportTaskshouldnotbeusedwhenauthoringthetasksintheGDFusingExtendedProperties\GameTasksavailableinWindows7.

WindowsInstallerreferencesNone

ParentsGame

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredAddress String URIforthistask. Name String User-visibletasknameGame

Explorershowsonitscontextmenu.Notethatthefirsttaskisnamed"Play"regardlessofthenameyouprovide.

Yes

SeeAlsoGamingSchema

Version3.0.5419.0

IsRichSavedGameAttribute(GamingExtension)

DescriptionRegistersthisextensionfortherichsavedgamespropertyhandleronWindowsVistaandlater.

WindowsInstallerreferencesNone

ParentsExtension

SeeAlsoGamingSchema

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

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

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

PatchClassificationType(SimpleType)

DescriptionCategoryofupdate.

EnumerationTypePossiblevalues:{CriticalUpdate,Hotfix,SecurityRollup,ServicePack,Update,UpdateRollup}

SeeAlsoGamingSchema

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

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

ChildElementsCertificateCertificateRefHttpHeaderMimeMapRecycleTimeWebAddressWebApplicationWebApplicationExtensionWebAppPoolWebDirWebDirPropertiesWebErrorWebFilterWebLogWebPropertyWebServiceExtension

WebSiteWebVirtualDir

CertificateElement(IisExtension)

DescriptionUsedtoinstallanduninstallcertificates.

WindowsInstallerreferencesNone

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Uniqueidentifierforthis

certificateintheinstallationpackage.

Yes

BinaryKey String ReferencetoaBinaryelementthatwillstorethecertificateasastreaminsidethepackage.ThisattributecannotbespecifiedwiththeCertificatePathattribute.

CertificatePath String IftheRequestattributeis"no"thenthisattributeisthepathtothecertificatefileoutsideofthepackage.IftheRequestattributeis"yes"thenthisatributeis

thecertificateauthoritytorequestthecertificatefrom.ThisattributemaybesetviaaformattedProperty(e.g.[MyProperty]).

Name String Nameofthecertificatethatwillbeinstalledoruninstalledinthespecifiedstore.ThisattributemaybesetviaaformattedProperty(e.g.[MyProperty]).

Yes

Overwrite YesNoType PFXPassword String IftheBinarystreamor

pathtothefileoutsideofthepackageisapasswordprotectedPFXfile,thepasswordforthatPFXmustbespecifiedhere.ThisattributemaybesetviaaformattedProperty(e.g.[MyProperty]).

Request YesNoType ThisattributecontrolswhethertheCertificatePathattributeisapathtoacertificatefile(Request='no')orthecertificateauthoritytorequestthecertificatefrom(Request='yes').

StoreLocation Enumeration Thisattribute'svaluemustbeoneofthefollowing:currentUser

localMachine

Yes

StoreName Enumeration Thisattribute'svaluemustbeoneofthefollowing:ca

Containsthecertificatesofcertificateauthoritiesthattheusertruststoissuecertificatestoothers.Certificatesinthesestoresarenormallysuppliedwiththeoperatingsystemorbytheuser'snetworkadministrator.

myUsethe"personal"valueinstead.

personalContainspersonalcertificates.Thesecertificateswillusuallyhaveanassociatedprivatekey.Thisstoreisoftenreferredtoasthe"MY"certificatestore.

request

rootContainsthecertificatesofcertificateauthoritiesthatthe

Yes

usertruststoissuecertificatestoothers.Certificatesinthesestoresarenormallysuppliedwiththeoperatingsystemorbytheuser'snetworkadministrator.Certificatesinthisstorearetypicallyself-signed.

otherPeopleContainsthecertificatesofthosethattheusernormallysendsenvelopedmessagestoorreceivessignedmessagesfrom.SeeMSDNdocumentationformoreinformation.

trustedPeopleContainsthecertificatesofthosedirectlytrustedpeopleandresources.SeeMSDNdocumentationformoreinformation.

trustedPublisherContainsthecertificatesofthosepublisherswhoare

trusted.SeeMSDNdocumentationformoreinformation.

SeeAlsoIisSchema,CertificateRef

Version3.0.5419.0

CertificateRefElement(IisExtension)

DescriptionAssociatesacertificatewiththeparentWebSite.TheCertificateelementshouldbeinthesameComponentastheparentWebSite.

WindowsInstallerreferencesNone

ParentsWebSite

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Theidentifierofthereferenced

Certificate.Yes

SeeAlsoIisSchema,Certificate

Version3.0.5419.0

HttpHeaderElement(IisExtension)

DescriptionCustomHTTPHeaderdefinitionforIISresourcessuchasWebSiteandWebVirtualDir.

WindowsInstallerreferencesNone

ParentsWebSite,WebVirtualDir

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String PrimarykeyforcustomHTTP

Headerentry.ThiswilldefaulttotheNameattribute.

Name String NameofthecustomHTTPHeader. YesValue String ValueforthecustomHTTP

Header.Thisattributecancontainaformattedstringthatisprocessedatinstalltimetoinsertthevaluesofpropertiesusing[PropertyName]syntax.Alsosupportedareenvironmentvariables,fileinstallationpaths,andcomponentinstallationdirectories;seeFormattedfordetails.

SeeAlsoIisSchema

Version3.0.5419.0

MimeMapElement(IisExtension)

DescriptionMimeMapdefinitionforIISresources.

WindowsInstallerreferencesNone

ParentsWebSite,WebVirtualDir

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String IdfortheMimeMap. YesExtension String Extensioncoveredbythe

MimeMap.Mustbeginwithadot.Yes

Type String Mime-typecoveredbytheMimeMap.

Yes

SeeAlsoIisSchema

Version3.0.5419.0

RecycleTimeElement(IisExtension)

DescriptionIIS6ApplicationPoolRecycleTimeson24hourclock.

WindowsInstallerreferencesNone

ParentsWebAppPool

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredValue String Pattern:'\d{1,2}:\d{2}'. Yes

SeeAlsoIisSchema

Version3.0.5419.0

WebAddressElement(IisExtension)

DescriptionWebAddressforWebSite

WindowsInstallerreferencesNone

ParentsWebSite

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String YesHeader String IP String TheIPaddresstolocatean

existingWebSiteorcreateanewWebSite.WhentheWebAddressispartofaWebSiteelementusedtolocateanexistingwebsitethefollowingrulesareused:Whenthisattributeisnotspecifiedonlythe“AllUnassigned”IPaddresswillbelocated.WhenthisattributeisexplicitlyspecifiedonlythespecifiedIPaddresswillbelocated.Whenthisattributehasthe

value“*”thenanyIPaddressincludingthe“AllUnassigned”IPaddresswillbelocatedWhentheWebAddressispartofaWebSiteelementusedtocreateanewwebsitethefollowingrulesareused:Whenthisattributeisnotspecifiedorthevalueis"*"the"AllUnassigned"IPaddresswillbeused.WhenthisattributeisexplicitlyspecifiedtheIPaddresswillusethatvalue.TheIPattributecancontainaformattedstringthatisprocessedatinstalltimetoinsertthevaluesofpropertiesusing[PropertyName]syntax.

Port String YesSecure YesNoType Determinesifthisaddress

representsasecurebinding.Thedefaultis'no'.

SeeAlsoIisSchema

Version3.0.5419.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 RequiredId String YesAllowSessions YesNoDefaultType SetstheEnable

SessionStateoption.Whenenabled,youcansetthesessiontimeoutusingtheSessionTimeoutattribute.

Buffer YesNoDefaultType Setstheoptionthatenablesresponse

bufferingintheapplication,whichallowsASPscripttosetresponseheadersanywhereinthescript.

ClientDebugging YesNoDefaultType EnableASPclient-sidescriptdebugging.

DefaultScript Enumeration Setsthedefaultscriptlanguageforthesite.Thisattribute'svaluemustbeoneofthefollowing:VBScript

JScript

Isolation Enumeration Setstheapplicationisolationlevelforthisapplicationforpre-IIS6applications.Thisattribute'svaluemustbeoneofthefollowing:low

MeanstheapplicationexecuteswithintheIISprocess.

mediumExecutespooledinaseparateprocess.

highMeansexecutionaloneinaseparateprocess.

Name String Setsthenameofthisapplication.

Yes

ParentPaths YesNoDefaultType Setstheparentpathsoption,whichallowsaclienttouserelativepathstoreachparentdirectoriesfromthisapplication.

ScriptTimeout Integer SetsthetimeoutvalueforexecutingASPscripts.

ServerDebugging YesNoDefaultType EnableASPserver-sidescriptdebugging.

SessionTimeout Integer Setsthetimeoutvalueforsessionsinminutes.

WebAppPool String Referencesthe

IdattributeofaWebAppPoolelementtouseastheapplicationpoolforthisapplicationinIIS6applications.

SeeAlsoIisSchema

Version3.0.5419.0

WebApplicationExtensionElement(IisExtension)

DescriptionExtensionforWebApplication

WindowsInstallerreferencesNone

ParentsWebApplication

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredCheckPath YesNoType Executable String usuallyaPropertythat

resolvestoshortfilenamepath

Yes

Extension String Extensionbeingregistered.Donotprefixwitha'.'(e.g.youshoulduse"html",not".html").Toregisterforallextensions,useExtension="*".Toregisterawildcardapplicationmap(whichhandlesallrequests,eventhosefordirectoriesorfileswithnoextension)omittheExtensionattributecompletely.

Script YesNoType Verbs String

SeeAlsoIisSchema

Version3.0.5419.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 RequiredId String Idofthe

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

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

workerprocessrecycles.Themaximumvaluesupportedforthisattributeis4,294,967KB.

SeeAlsoIisSchema

Version3.0.5419.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 RequiredId String YesDirProperties String ReferencestheIdattributefor

aWebDirPropertieselementthatspecifiesthesecurityandaccesspropertiesforthiswebdirectory.ThisattributemaynotbespecifiedifaWebDirPropertieselementisdirectlynestedinthiselement.

Path String Specifiesthenameofthiswebdirectory.

Yes

WebSite String ReferencestheIdattributeforaWebSiteelementinwhichthisdirectorybelongs.

RequiredwhenthiselementisnotachildofaWebSiteelement.

SeeAlsoIisSchema

Version3.0.5419.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 DescriptionId String AccessSSL YesNoType Avalueoftrueindicates

thatfileaccessrequiresSSLfilepermissionprocessing,withorwithoutaclientcertificate.ThiscorrespondstoAccessSSLflagforAccessSSLFlagsIISmetabaseproperty.

AccessSSL128 YesNoType AvalueoftrueindicatesthatfileaccessrequiresSSLfilepermissionprocessingwithaminimumkeysizeof128bits,withorwithoutaclientcertificate.ThiscorrespondstoAccessSSL128flagforAccessSSLFlagsIISmetabaseproperty.

AccessSSLMapCert YesNoType ThiscorrespondstoAccessSSLMapCertflagforAccessSSLFlagsIISmetabaseproperty.

AccessSSLNegotiateCert YesNoType ThiscorrespondstoAccessSSLNegotiateCertflagforAccessSSLFlagsIISmetabaseproperty.

AccessSSLRequireCert YesNoType ThiscorrespondstoAccessSSLRequireCertflagforAccessSSLFlagsIISmetabaseproperty.

AnonymousAccess YesNoType SetstheEnableAnonymousAccesscheckbox,whichmapsanonymoususerstoaWindowsuseraccount.Whensettingthisto'yes'youshouldalsoprovidetheuseraccountusingtheAnonymousUserattribute,anddeterminewhatsettingtousefortheIIsControlledPasswordattribute.Defaultsto'no.'

AnonymousUser String ReferencetotheId

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

Authenticationoption,whichallowsusingdigestauthenticationwithdomainuseraccounts.Defaultsto'no.'

Execute YesNoType HttpExpires String Valuetosetthe

HttpExpiresattributetoforaWebDirinthemetabase.

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 SetstheWindows

Authenticationoption,whichenablesintegratedWindowsauthenticationtobeusedonthesite.

Defaultsto'no.'Write YesNoType

SeeAlsoIisSchema

Version3.0.5419.0

WebErrorElement(IisExtension)

DescriptionCustomWebErrorsusedbyWebSitesandVirtualDirectories.

WindowsInstallerreferencesNone

ParentsWebSite,WebVirtualDir

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredErrorCode Integer HTTP1.1errorcode. YesFile String Filetobesenttotheclientfor

thiserrorcodeandsubcode.Thiscanbeformatted.Forexample:[#FileId].

SubCode Integer Errorsubcode.Setto0togetthewildcard"*".

Yes

URL String URLtobesenttotheclientforthiserrorcodeandsubcode.Thiscanbeformatted.

RemarksYoucanonlyuseerrorcodeandsubcodecombinationswhicharesupportedbyIIS.AttemptingtosetacustomerrorforanerrorcodeandsubcodecombinationthatisnotsupportedbyIIS(inthedefaultlistoferrorcodes)willresultinaninstallationfailure.

SeeAlso

IisSchemaVersion3.0.5419.0

WebFilterElement(IisExtension)

DescriptionIIsFilterforaComponent

WindowsInstallerreferencesNone

ParentsComponent,WebSite

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String TheuniqueIdforthewebfilter. YesDescription String Descriptionofthefilter. Flags Integer SetstheMD_FILTER_FLAGS

metabasekeyforthefilter.Thismustbeaninteger.SeeMSDN'FilterFlags'documentationformoredetails.

LoadOrder String Thelegalvaluesare"first","last",oranumber.Ifanumberisspecified,itmustbegreaterthan0.

Name String ThenameofthefiltertobeusedinIIS.

Yes

Path String Thepathofthefilterexecutablefile.Thisshouldusuallybeavaluelike'[!FileId]',where'FileId'isthefileidentifierofthefilter

Yes

executablefile.WebSite String Specifiestheparentwebsitefor

thisfilter(ifthereisone).Ifthisisaglobalfilter,thenthisattributeshouldnotbespecified.

SeeAlsoIisSchema

Version3.0.5419.0

WebLogElement(IisExtension)

DescriptionWebLogdefinition.

WindowsInstallerreferencesNone

ParentsFragment,Module,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String IdentifierfortheWebLog. YesType Enumeration Thisattribute'svaluemustbe

oneofthefollowing:IIS

MicrosoftIISLogFileFormat

NCSANCSACommonLogFileFormat

noneDisableslogging.

ODBCODBCLogging

W3CW3CExtendedLogFileFormat

Yes

SeeAlsoIisSchema

Version3.0.5419.0

WebPropertyElement(IisExtension)

DescriptionIISProperties

WindowsInstallerreferencesNone

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId Enumeration Thisattribute'svaluemustbe

oneofthefollowing:ETagChangeNumber

IIs5IsolationMode

MaxGlobalBandwidth

LogInUTF8

Yes

Value String ThevaluetobeusedfortheWebPropertyspecifiedintheIdattribute.SeetheremarkssectionforinformationonacceptablevaluesforeachId.

RemarksHereisanexplanationoftheacceptablevaluesforeachpropertyandtheirmeaning:FortheIdsIIs5IsolationModeandLogInUTF8,novalueshould

bespecifiedsincethepresenceofthispropertyindicatesthatthesettingshouldbeset.FortheMaxGlobalBandwidthId,thevalueshouldbespecifiedinkilobytes.Thevalueshouldbeabase10number.ETagChangeNumbersetsthemachine-specificportionofETagasanumber.Thisvalue,whensynchronizedacrossserversinawebfarm,allowsthewebfarmtoreturnanidenticalETagforagivenresourceregardlessoftheserverthathandledtherequest.Thevalueshouldbeabase10number.

SeeAlsoIisSchema

Version3.0.5419.0

WebServiceExtensionElement(IisExtension)

DescriptionTheWebServiceExtensionpropertyisusedbytheWebservertodeterminewhetheraWebserviceextensionispermittedtorun.

WindowsInstallerreferencesNone

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String YesAllow YesNoType Indicatesiftheextensionis

allowedordenied.Yes

Description String Descriptionoftheextension. File String UsuallyaPropertythat

resolvestoshortfilenamepath

Yes

Group String Stringusedtoidentifygroupsofextensions.

UIDeletable YesNoType IndicatesiftheUIisallowedtodeletetheextensionfromthelistofnot.Default:Notdeletable.

SeeAlsoIisSchema

Version3.0.5419.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 RequiredId String Identifierforthe

WebSite.UsedwithintheMSIpackageonly.

Yes

AutoStart YesNoType Specifieswhethertoautomatically

startthewebsite.ConfigureIfExists YesNoType Specifieswhether

toconfigurethewebsiteifitalreadyexists.Note:Thiswillnotaffectuninstallbehavior.Ifthewebsiteexistsonuninstall,itwillberemoved.

ConnectionTimeout NonNegativeInteger Setsthetimeoutvalueforconnectionsinseconds.

Description String ThisisthenameofthewebsitethatwillshowupintheIISmanagementconsole.

Yes

Directory String Rootdirectoryofthewebsite.ResolvedtoadirectoryintheDirectorytableatinstalltimebytheservercustomactions.

DirProperties String ReferencestheIdattributeforaWebDirPropertieselementthatspecifiesthesecurityandaccesspropertiesforthiswebsiterootdirectory.

ThisattributemaynotbespecifiedifaWebDirPropertieselementisdirectlynestedinthiselement.

Sequence Integer Sequencethatthewebsiteistobecreatedin.

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

numberorblank.IfthisattributeisabsentthenthewebsitewillbelocatedusingtheWebAddresselementassociatedwiththewebsite.

StartOnInstall YesNoType Specifieswhethertostartthewebsiteoninstall.

WebApplication String ReferencetoaWebApplicationthatistobeinstalledaspartofthiswebsite.

WebLog String ReferencetoWebLogdefinition.

RemarksNestingWebSiteunderaComponentelementwillresultinaWebSitebeinginstalledtothemachineasthepackageisinstalled.

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

SeeAlsoIisSchema

Version3.0.5419.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 RequiredId String YesAlias String Setstheapplicationname,

whichistheURLrelativepathusedtoaccessthisvirtualdirectory

Yes

Directory String ReferencestheIdattributeforaDirectoryelementthatpointstothecontentforthis

Yes

virtualdirectory.DirProperties String ReferencestheIdattribute

foraWebDirPropertieselementthatspecifiesthesecurityandaccesspropertiesforthisvirtualdirectory.ThisattributemaynotbespecifiedifaWebDirPropertieselementisdirectlynestedinthiselement.

WebApplication String ReferencestheIdattributeforaWebApplicationelementthatspecifieswebapplicationsettingsforthisvirtualdirectory.IfaWebApplicationchildisnotspecified,thevirtualdirectorydoesnothostwebapplications.

WebSite String ReferencestheIdattributeforaWebSiteinwhichthisvirtualdirectorybelongs.RequiredwhenthiselementisnotachildofWebSiteelement.

SeeAlsoIisSchema

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

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

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

PatchClassificationType(SimpleType)

DescriptionCategoryofupdate.

EnumerationTypePossiblevalues:{CriticalUpdate,Hotfix,SecurityRollup,ServicePack,Update,UpdateRollup}

SeeAlsoIisSchema

PercentType(SimpleType)

DescriptionValuesofthistypeareanyintegersbetween0and100,inclusive.

xs:nonNegativeIntegerTypexs:maxInclusivevalue='100'

SeeAlsoIisSchema

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

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>

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

DescriptionElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.0.5419.0

DetailsElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.0.5419.0

EntryPointElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredPackageVersion Boolean

SeeAlsoIsolatedAppSchema

Version3.0.5419.0

FeedElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.0.5419.0

IconElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication,Package

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredIndex Integer

SeeAlsoIsolatedAppSchema

Version3.0.5419.0

IdElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication,Package

InnerText(uuid)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.0.5419.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.0.5419.0

ManufacturerElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.0.5419.0

NameElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.0.5419.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.0.5419.0

PreviousFeedElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsIsolatedApp

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.0.5419.0

SourceElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.0.5419.0

UpdateRateElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(xs:integer)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.0.5419.0

VersionElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(VersionType)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

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

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

MessageQueueElement(MsmqExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsComponent

InnerTextNone

ChildrenSequence(min:1,max:1)

1. MessageQueuePermission(min:0,max:unbounded)

Attributes

Name Type Description RequiredId String YesAuthenticate YesNoType Default:No. BasePriority Integer Journal YesNoType Default:No. JournalQuota Integer Label String YesMulticastAddress String PathName String YesPrivLevel Enumeration Thisattribute'svalue

mustbeoneofthefollowing:none

optional

body

Quota Integer ServiceTypeGuid String Transactional YesNoType Default:No.

SeeAlsoMsmqSchema

Version3.0.5419.0

MessageQueuePermissionElement(MsmqExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsComponent,MessageQueue

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String YesChangeQueuePermissions 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.0.5419.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

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

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

PatchClassificationType(SimpleType)

DescriptionCategoryofupdate.

EnumerationTypePossiblevalues:{CriticalUpdate,Hotfix,SecurityRollup,ServicePack,Update,UpdateRollup}

SeeAlsoMsmqSchema

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

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

NativeImageElement(NetfxExtension)

DescriptionImprovestheperformanceofmanagedapplicationsbycreatingnativeimages.Requiresthe.NETFramework2.0ornewertobeinstalledonthetargetmachinesinceitrunsNGen.

WindowsInstallerreferencesNone

ParentsFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Theidentifierforthis

NativeImage.Yes

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

filebydefault.AssemblyApplication String Theidentifierofthe

applicationwhichwillloadthisassembly.ForDLLassemblieswhichareloadedviareflection,thisattributeshouldbesettoindicatetheapplicationwhichwillloadthisassembly.Theconfigurationoftheapplication(usuallyspecifiedviaanexe.configfile)willbeusedtodeterminehowtoresolvedependenciesforthisassembly.Whenasharedcomponentisloadedatruntime,usingtheLoadmethod,theapplication'sconfigurationfiledeterminesthedependenciesthatareloadedforthesharedcomponent—forexample,theversionofadependencythatisloaded.Thisattributegivesguidanceonwhichdependencieswouldbeloadedatruntimeinordertofigureoutwhichdependencyassemblieswillalsoneedtohavenativeimagesgenerated(assumingtheDependencyattributeisnotsetto"no").This

attributecannotbesetiftheAssemblyApplicationattributeissetontheparentFileelement(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.NETFramework

onthetargetmachine.Ifthe32-bitversionofthe.NETFramework2.0ornewerisnotpresentonthetargetmachine,nativeimagecustomactionswillnotbescheduled.Thisisthedefaultvalue.

64bitAttempttogeneratenativeimagesonlyforthe64-bitversionofthe.NETFrameworkonthetargetmachine.Ifa64-bitversionofthe.NETFramework2.0ornewerisnotpresentonthetargetmachine,nativeimagecustomactionswillnotbescheduled.

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

architecture.

Priority Enumeration Setsthepriorityofgeneratingthenativeimagesforthisassembly.Thisattribute'svaluemustbeoneofthefollowing:0

Thisisthehighestpriority,itmeansthatimagegenerationoccurssyncronouslyduringthesetupprocess.Thisoptionwillslowdownsetupperformance.

1ThiswillqueueimagegenerationtotheNGenservicetooccurimmediately.Thisoptionwillslowdownsetupperformance.

2ThiswillqueueimagegenerationtotheNGenservicetooccurafterallpriority1assemblieshavecompleted.Thisoptionwillslowdownsetupperformance.

3Thisisthelowestpriority,itwillqueueimagegenerationtooccurwhenthe

machineisidle.Thisoptionshouldnotslowdownsetupperformance.Thisisthedefaultvalue.

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

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

SeeAlsoNetfxSchema

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

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

DescriptionElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.0.5419.0

DetailsElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.0.5419.0

EntryPointElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.0.5419.0

ExtendsApplicationElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(SupportedOfficeApplications)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.0.5419.0

FeedElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.0.5419.0

IconElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication,Package

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description RequiredIndex Integer

SeeAlsoOfficeAddinSchema

Version3.0.5419.0

IdElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication,Package

InnerText(uuid)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.0.5419.0

ManufacturerElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.0.5419.0

NameElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.0.5419.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.0.5419.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.0.5419.0

PreviousFeedElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsOfficeAddin

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.0.5419.0

SourceElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.0.5419.0

UpdateRateElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(xs:integer)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.0.5419.0

VersionElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(VersionType)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

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

FormatsFileElement(PsExtension)

DescriptionIdentifiestheparentFileasaformatsXMLfileforthereferencedPowerShellsnap-in.

WindowsInstallerreferencesNone

ParentsFile,SnapIn

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredFileId String ReferencetotheformatsFileID.

ThisisrequiredwhennestedundertheSnapInelement.

SnapIn String ReferencetothePowerShellsnap-inIDforwhichthisformatsfileisassociated.ThisisrequiredwhennestedundertheFileelement.

RemarksAformatsXMLfilethatdefinesoutputformatsforobjectsonthepipeline.

SeeAlsoPsSchema

Version3.0.5419.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 RequiredId String The

identifierforthisPowerShellsnap-in.

Yes

AssemblyName String Thisattributehasbeendeprecated.

CustomSnapInType String Thefulltypenameofaclassthatisusedtoregisteralistof

cmdletsandproviders.

Description String Abriefdescriptionofthesnap-in.

DescriptionIndirect EmbeddedResource Anembeddedresourcethatcontainsabriefdescriptionofthesnap-in.Thisresourcemustbeembeddedinthecurrentsnap-inassembly.

RequiredPowerShellVersion VersionType TherequiredversionofPowerShellthatmustbeinstalledandisassociatedwiththesnap-inregistration.Thedefaultvalueis"1.0".

Vendor String Thenameofthesnap-

invendor.VendorIndirect EmbeddedResource An

embeddedresourcethatcontainsthenameofthesnap-invendor.Thisresourcemustbeembeddedinthecurrentsnap-inassembly.

Version VersionType Theversionofthesnapin.Ifnotspecified,thisistakenfromtheassemblyname.

RemarksPowerShellsnap-insallowdeveloperstoextendthefunctionalityofofthePowerShellengine.AddthiselementtoidentifytheparentFileasaPowerShellsnap-inthatwillgetregisteredonthesystem.

SeeAlsoPsSchema

Version3.0.5419.0

TypesFileElement(PsExtension)

DescriptionIdentifiestheparentFileasatypesXMLfileforthereferencedPowerShellsnap-in.

WindowsInstallerreferencesNone

ParentsFile,SnapIn

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredFileId String ReferencetothetypesFileID.

ThisisrequiredwhennestedundertheSnapInelement.

SnapIn String ReferencetothePowerShellsnap-inIDforwhichthistypesfileisassociated.ThisisrequiredwhennestedundertheFileelement.

RemarksAtypesXMLfileusedbytheextensibletypesystem.

SeeAlsoPsSchema

Version3.0.5419.0

RequiredVersionAttribute(PsExtension)

DescriptionTheversionofthisextensionrequiredtocompilethedefiningsource.

WindowsInstallerreferencesNone

ParentsWix

SeeAlsoPsSchema

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

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

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

PatchClassificationType(SimpleType)

DescriptionCategoryofupdate.

EnumerationTypePossiblevalues:{CriticalUpdate,Hotfix,SecurityRollup,ServicePack,Update,UpdateRollup}

SeeAlsoPsSchema

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

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

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 RequiredId String YesConfirmOverwrite YesNoType ContinueOnError YesNoType CreateOnInstall YesNoType CreateOnReinstall YesNoType Specifieswhetherto

createthedatabasewhentheassociatedcomponentisreinstalled.SettingCreateOnInstalltoyesdoesnotimplyCreateOnReinstallis

settoyes.CreateOnReinstallmustbesetinadditiontoCreateOnInstallforittobecreatedduringbothinstallandreinstall.

CreateOnUninstall YesNoType Database String Thenameofthe

database.ThevaluecanbealiteralvalueorderivedfromaPropertyelementusingtheFormattedsyntax.

Yes

DropOnInstall YesNoType DropOnReinstall YesNoType Specifieswhetherto

dropthedatabasewhentheassociatedcomponentisreinstalled.SettingDropOnInstalltoyesdoesnotimplyDropOnReinstallissettoyes.DropOnReinstallmustbesetinadditiontoDropOnInstallforittobedroppedduringbothinstallandreinstall.

DropOnUninstall YesNoType Instance String Server String YesUser String

RemarksNestingSqlDatabaseunderaComponentelementwillresultinaSqlDatabasebeinginstalledtothemachineasthepackageisinstalled.

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

TheUserattributereferencescredentialsspecifiedinaUserelement.IfauserisnotspecifiedthenWindowsAuthenticationwillbeusedbydefaultusingthecredentialsoftheuserperformingtheinstalltoexecutesqlstrings,etc.

SeeAlsoSqlSchema,User

Version3.0.5419.0

SqlFileSpecElement(SqlExtension)

DescriptionFilespecificationforaSqldatabase.

WindowsInstallerreferencesNone

ParentsSqlDatabase

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String IDofthefilespecification. YesFilename String Specifiestheoperating-system

filenameforthedatabasefile.Yes

GrowthSize String Specifiesthegrowthincrementofthedatabasefile.TheGB,MBandKBand%suffixescanbeusedtospecifygigabytes,megabytes,kilobytesorapercentageofthecurrentfilesizetogrow.Thedefaultismegabytesifnosuffixisspecified.Thedefaultvalueis10%ifGrowthSizeisnotspecified,andtheminimumvalueis64KB.TheGrowthSizesettingforafilecannotexceedtheMaxSizesetting.

MaxSize String Specifiesthemaximumsizeto

whichthedatabasefilecangrow.TheGB,MBandKBsuffixescanbeusedtotospecifygigabytes,megabytesorkilobytes.Thedefaultismegabytesifnosuffixisspecified.IfMaxSizeisnotspecified,thefilewillgrowuntilthediskisfull.

Name String Specifiesthelogicalnameforthedatabasefile.

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

SeeAlsoSqlSchema

Version3.0.5419.0

SqlLogFileSpecElement(SqlExtension)

DescriptionFilespecificationforaSqldatabase.

WindowsInstallerreferencesNone

ParentsSqlDatabase

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredFilename String Specifiestheoperating-system

filenameforthelogfile.

GrowthSize String Specifiesthegrowthincrementofthelogfile.TheGB,MBandKBand%suffixescanbeusedtospecifygigabytes,megabytes,kilobytesorapercentageofthecurrentfilesizetogrow.Thedefaultismegabytesifnosuffixisspecified.Thedefaultvalueis10%ifGrowthSizeisnotspecified,andtheminimumvalueis64KB.TheGrowthSizesettingforafilecannotexceedtheMaxSizesetting.

Id String IDofthelogfilespecification. MaxSize String Specifiesthemaximumsizeto

whichthelogfilecangrow.TheGB,MBandKBsuffixescanbeusedtotospecifygigabytes,megabytesorkilobytes.Thedefaultismegabytesifnosuffixisspecified.IfMaxSizeisnotspecified,thefilewillgrowuntilthediskisfull.

Name String Specifiesthelogicalnameforthelogfile.

Size String Specifiesthesizeofthelogfile.TheGB,MBandKBsuffixescanbeusedtospecifygigabytes,megabytesorkilobytes.Thedefaultismegabytesifnosuffixisspecified.WhenaSizeisnotsuppliedforalogfile,SQLServermakesthefile1MB.

SeeAlsoSqlSchema

Version3.0.5419.0

SqlScriptElement(SqlExtension)

DescriptionSQLScript

WindowsInstallerreferencesNone

ParentsComponent,SqlDatabase

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String YesBinaryKey String ReferencetoBinary

streamthatcontainstheSQLscripttoexecute.

Yes

ContinueOnError YesNoType Continueexecutingscriptsevenifthisonefails.

ExecuteOnInstall YesNoType Specifiestoexecutethescriptwhentheassociatedcomponentisinstalled.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,RollbackOnReinstalland

RollbackOnUninstallattributes.

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

ExecuteOnUninstall YesNoType Specifiestoexecutethescriptwhentheassociatedcomponentisuninstalled.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,RollbackOnReinstallandRollbackOnUninstallattributes.

RollbackOnInstall YesNoType Specifieswhetherto

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

SqlStringElement(SqlExtension)

DescriptionSQLString

WindowsInstallerreferencesNone

ParentsComponent,SqlDatabase

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String YesContinueOnError YesNoType Continueexecuting

stringsevenifthisonefails.

ExecuteOnInstall YesNoType Specifiestoexecutethestringwhentheassociatedcomponentisinstalled.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,RollbackOnReinstallandRollbackOnUninstallattributes.

ExecuteOnReinstall YesNoType Specifieswhethertoexecutethestring

whentheassociatedcomponentisreinstalled.SettingExecuteOnInstalltoyesdoesnotimplyExecuteOnReinstallissettoyes.ExecuteOnReinstallmustbesetinadditiontoExecuteOnInstallforittobeexecutedduringbothinstallandreinstall.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,RollbackOnReinstallandRollbackOnUninstallattributes.

ExecuteOnUninstall YesNoType Specifiestoexecutethestringwhentheassociatedcomponentisuninstalled.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,RollbackOnReinstallandRollbackOnUninstallattributes.

RollbackOnInstall YesNoType Specifieswhethertoexecutethestringonrollbackifanattemptismadetoinstallthe

associatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.

RollbackOnReinstall YesNoType Specifieswhethertoexecutethestringonrollbackifanattemptismadetoreinstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.

RollbackOnUninstall YesNoType Specifieswhethertoexecutethestringonrollbackifanattemptismadetouninstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.

Sequence Integer Specifestheorder

toruntheSQLStrings.Itisrecommendedthatrollbackstringsbescheduledbeforetheircomplementaryexecutionstring.ThisorderisalsorelativeacrosstheSqlScriptelement.

SQL String YesSqlDb String User String

SeeAlsoSqlSchema

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

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

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

PatchClassificationType(SimpleType)

DescriptionCategoryofupdate.

EnumerationTypePossiblevalues:{CriticalUpdate,Hotfix,SecurityRollup,ServicePack,Update,UpdateRollup}

SeeAlsoSqlSchema

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

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

ChildElementsCloseApplicationEventManifestEventSourceFileShareFileSharePermissionGroupGroupRefInternetShortcutPerfCounterPerfCounterManifestPerformanceCategoryPerformanceCounterPermissionExServiceConfigUserXmlConfig

XmlFile

CloseApplicationElement(UtilExtension)

DescriptionClosesapplicationsorschedulesarebootifapplicationcannotbeclosed.

WindowsInstallerreferencesNone

ParentsFragment,Module,Product

InnerText(xs:string)Conditionthatdeterminesiftheapplicationshouldbeclosed.Mustbeblankorevaluatetotruefortheapplicationtobescheduledforclosing.

ChildrenNone

Attributes

Name Type Description RequiredId String Identifierforthe

closeapplication(primarykey).

Yes

CloseMessage YesNoType Optionallysendsaclosemessagetotheapplication.Defaultisno.

Description String Descriptiontoshowifapplicationisrunningandneedstobe

closed.ElevatedCloseMessage YesNoType Optionallysends

aclosemessagetotheapplicationfromdefferedactionwithoutimpersonation.Defaultisno.

Property String Propertytobesetifapplicationisstillrunning.UsefulforlaunchconditionsortoconditionalizecustomUItoaskusertoshutdownapps.

RebootPrompt YesNoType Optionallypromptsforrebootifapplicationisstillrunning.Defaultisyes.

Sequence Integer Optionallyorderstheapplicationstobeclosed.

Target String Nameoftheexectuabletobeclosed.Thisshouldonlybefilename.

Yes

SeeAlsoUtilSchema

Version3.0.5419.0

EventManifestElement(UtilExtension)

DescriptionUsedtoinstallEventManifests.

WindowsInstallerreferencesNone

ParentsFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredMessageFile String Themessagefile(including

path)ofalltheprovidersintheeventmanifest.Oftenthemessagefilepathcannotbedetermineduntilsetuptime.PutyourMessageFilehereandthemessageFileNameattributeofthealltheprovidersinthemanifestwillbeupdatedwiththepathbeforeitisregistered.

ParameterFile String Theparameterfile(includingpath)ofalltheprovidersintheeventmanifest.Oftentheparameterfilepathcannotbedetermineduntilsetuptime.PutyourParameterFilehereandtheparameterFileName

attributeofthealltheprovidersinthemanifestwillbeupdatedwiththepathbeforeitisregistered.

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

SeeAlsoUtilSchema

Version3.0.5419.0

EventSourceElement(UtilExtension)

DescriptionCreatesaneventsource.

WindowsInstallerreferencesNone

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type DescriptionCategoryCount Integer Thenumberofcategoriesin

CategoryMessageFile.CategoryMessageFilemustbespecifiedtoo.

CategoryMessageFile String Nameofthecategorymessagefile.CategoryCountmustbespecifiedtoo.Notethatthisisaformattedfield,soyoucanuse[#fileId]syntaxtorefertoafilebeinginstalled.ItisalsowrittenasaREG_EXPAND_SZstring,soyoucanuse%environment_variable%syntaxtorefertoafilealreadypresentontheuser'smachine.

EventMessageFile String Nameoftheeventmessagefile.Notethatthisisaformattedfield,soyoucanuse[#fileId]syntaxtotoafilebeinginstalled.Itisalso

writtenasaREG_EXPAND_SZstring,soyoucanuse%environment_variable%syntaxtorefertoafilealreadypresentontheuser'smachine.

KeyPath YesNoType MarkstheEventSourceregistryasthekeypathofthecomponentitbelongsto.

Log String Nameoftheeventsource'slog.Name String Nameoftheeventsource.ParameterMessageFile String Nameoftheparametermessage

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

FileShareElement(UtilExtension)

DescriptionCreatesafileshareoutofthecomponent'sdirectory.

WindowsInstallerreferencesNone

ParentsComponent

InnerTextNone

ChildrenSequence(min:1,max:1)

1. FileSharePermission(min:1,max:unbounded):ACLpermission

Attributes

Name Type Description RequiredId String Identifierforthefileshare

(primarykey).Yes

Description String Descriptionofthefileshare. Name String Nameofthefileshare. Yes

SeeAlsoUtilSchema

Version3.0.5419.0

FileSharePermissionElement(UtilExtension)

DescriptionSetsACLsonaFileShare.ThiselementhasnoIdattribute.Thetableandkeyaretakenfromtheparentelement.

WindowsInstallerreferencesNone

ParentsFileShare

InnerTextNone

ChildrenNone

Attributes

Name Type DescriptionChangePermission YesNoType CreateChild YesNoType Foradirectory,therighttocreatea

subdirectory.Onlyvalidundera'CreateFolder'parent.

CreateFile YesNoType Foradirectory,therighttocreateafileinthedirectory.Onlyvalidundera'CreateFolder'parent.

Delete YesNoType DeleteChild YesNoType Foradirectory,therighttodeletea

directoryandallthefilesitcontains,includingread-onlyfiles.Onlyvalidundera'CreateFolder'parent.

GenericAll YesNoType

GenericExecute YesNoType GenericRead YesNoType specifyingthiswillfailtograntread

accessGenericWrite YesNoType Read YesNoType ReadAttributes YesNoType ReadExtendedAttributes YesNoType ReadPermission YesNoType Synchronize YesNoType TakeOwnership YesNoType Traverse YesNoType Foradirectory,therighttotraverse

thedirectory.Bydefault,usersareassignedtheBYPASS_TRAVERSE_CHECKINGprivilege,whichignorestheFILE_TRAVERSEaccessright.Onlyvalidundera'CreateFolder'parent.

User String WriteAttributes YesNoType WriteExtendedAttributes YesNoType

SeeAlsoUtilSchema

Version3.0.5419.0

GroupElement(UtilExtension)

DescriptionFindsusergroupsonthelocalmachineorspecifiedActiveDirectorydomain.ThelocalmachinewillbesearchedforthegroupfirstthenfallbacktolookinginActiveDirectory.Thiselementisnotcapableofcreatingnewgroupsbutcanbeusedtoaddneworexistinguserstoanexistinggroup.

WindowsInstallerreferencesNone

ParentsFragment,Module,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Uniqueidentifierinyourinstallation

packageforthisgroup.Yes

Domain String AnoptionalFormattedstringthatspecifiesthedomainforthegroup.

Name String AFormattedstringthatcontainsthenameofthegrouptobefound.

Yes

SeeAlsoUtilSchema

Version3.0.5419.0

GroupRefElement(UtilExtension)

DescriptionUsedtojoinausertoagroup

WindowsInstallerreferencesNone

ParentsUser

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Yes

SeeAlsoUtilSchema

Version3.0.5419.0

InternetShortcutElement(UtilExtension)

DescriptionCreatesashortcuttoaURL.

WindowsInstallerreferencesNone

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Uniqueidentifierinyour

installationpackageforthisInternetshortcut.

Yes

Directory String IdentifierreferencetoDirectoryelementwhereshortcutistobecreated.Thisattribute'svaluedefaultstotheparentComponentdirectory.

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

Yes

Target String URLthatshouldbeopenedwhentheuserselectstheshortcut.Windowsopensthe

Yes

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

Type Enumeration Whichtypeofshortcutshouldbecreated.Thisattribute'svaluemustbeoneofthefollowing:url

Creates.urlfilesusingIUniformResourceLocatorW.

linkCreates.lnkfilesusingIShellLinkW(default).

HowTosandExamplesHowTo:Createashortcuttoawebpage

SeeAlsoUtilSchema

Version3.0.5419.0

PerfCounterElement(UtilExtension)

DescriptionThiselementhasbeendeprecated;pleaseusethePerformanceCounterelementinstead.

WindowsInstallerreferencesNone

ParentsFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredName String

SeeAlsoUtilSchema

Version3.0.5419.0

PerfCounterManifestElement(UtilExtension)

DescriptionUsedtoinstallPerfmonCounterManifests.

WindowsInstallerreferencesNone

ParentsFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredResourceFileDirectory String Thedirectorythat

holdstheresourcefileoftheprovidersintheperfmoncountermanifest.Oftentheresourcefilepathcannotbedetermineduntilsetuptime.Putthedirectoryhereandduringperfmonmanifestregistrtionthepathwillbeupdatedintheregistry.Ifnotspecified,Perfmonwilllookfortheresourcefileinthesamedirectoryofthe

perfmoncountermanifestfile.

SeeAlsoUtilSchema

Version3.0.5419.0

PerformanceCategoryElement(UtilExtension)

DescriptionUsedtocreateperformancecategoriesandconfigureperformancecounters.

WindowsInstallerreferencesNone

ParentsComponent

InnerTextNone

ChildrenSequence(min:1,max:1)

1. PerformanceCounter(min:0,max:unbounded)

Attributes

Name Type DescriptionClose String Functionentrypointinto

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

defaultis"OpenPerformanceData"whichshouldbeusedforallmanagedcodeperformancecounters.

SeeAlsoUtilSchema

Version3.0.5419.0

PerformanceCounterElement(UtilExtension)

DescriptionCreatesaperformancecounterinaperformancecategory.

WindowsInstallerreferencesNone

ParentsPerformanceCategory

InnerTextNone

ChildrenNone

Attributes

Name Type DescriptionHelp String Optionalhelptextfor

theperformancecounter.

Language PerformanceCounterLanguageType Languageforthepeformancecounternameandhelp.ThedefaultistousetheparentPerformanceCategoryelement'sDefaultLanguageattribute.

Name String Namefortheperformancecounter.

Type PerformanceCounterTypesType Typeoftheperformancecounter.

SeeAlsoUtilSchema

Version3.0.5419.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 DescriptionAppend YesNoType ChangePermission YesNoType CreateChild YesNoType Foradirectory,therighttocreatea

subdirectory.Onlyvalidundera'CreateFolder'parent.

CreateFile YesNoType Foradirectory,therighttocreateafileinthedirectory.Onlyvalidundera'CreateFolder'parent.

CreateLink YesNoType CreateSubkeys YesNoType

Delete YesNoType DeleteChild YesNoType Foradirectory,therighttodeletea

directoryandallthefilesitcontains,includingread-onlyfiles.Onlyvalidundera'CreateFolder'parent.

Domain String EnumerateSubkeys YesNoType Execute YesNoType GenericAll YesNoType GenericExecute YesNoType GenericRead YesNoType specifyingthiswillfailtograntread

accessGenericWrite YesNoType Notify YesNoType Read YesNoType ReadAttributes YesNoType ReadExtendedAttributes YesNoType ReadPermission YesNoType ServiceChangeConfig YesNoType Requiredtocallthe

ChangeServiceConfigorChangeServiceConfig2functiontochangetheserviceconfiguration.Onlyvalidundera'ServiceInstall'parent.

ServiceEnumerateDependents YesNoType RequiredtocalltheEnumDependentServicesfunctiontoenumeratealltheservicesdependentontheservice.validundera'ServiceInstall'parent.

ServiceInterrogate YesNoType RequiredtocalltheControlServicefunctiontoasktheservicetoreportitsstatusimmediately.Onlyvalidundera'ServiceInstall'parent.

ServicePauseContinue YesNoType RequiredtocalltheControlServicefunctiontopauseorcontinuetheservice.Onlyvalidundera'ServiceInstall'parent.

ServiceQueryConfig YesNoType RequiredtocalltheQueryServiceConfigandQueryServiceConfig2functionstoquerytheserviceconfiguration.Onlyvalidundera'ServiceInstall'parent.

ServiceQueryStatus YesNoType RequiredtocalltheQueryServiceStatusfunctiontoasktheservicecontrolmanageraboutthestatusoftheservice.undera'ServiceInstall'parent.

ServiceStart YesNoType RequiredtocalltheStartServicefunctiontostarttheservice.validundera'ServiceInstall'parent.

ServiceStop YesNoType RequiredtocalltheControlServicefunctiontostoptheservice.validundera'ServiceInstall'parent.

ServiceUserDefinedControl YesNoType RequiredtocalltheControlServicefunctiontospecifyauser-definedcontrolcode.Onlyvalidundera'ServiceInstall'parent.

Synchronize YesNoType TakeOwnership YesNoType Traverse YesNoType Foradirectory,therighttotraverse

thedirectory.Bydefault,usersareassignedtheBYPASS_TRAVERSE_CHECKINGprivilege,whichignorestheFILE_TRAVERSEaccessright.Onlyvalidundera'CreateFolder'parent.

User String Write YesNoType WriteAttributes YesNoType WriteExtendedAttributes YesNoType

SeeAlsoUtilSchema

Version3.0.5419.0

ServiceConfigElement(UtilExtension)

DescriptionServiceconfigurationinformationforfailureactions.

WindowsInstallerreferencesNone

ParentsComponent,ServiceInstall

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredFirstFailureActionType Enumeration Actiontotake

onthefirstfailureoftheservice.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 Actiontotakeonthesecondfailureoftheservice.Thisattribute'svaluemustbeoneof

Yes

thefollowing:none

reboot

restart

runCommand

ServiceName String RequiredifnotunderaServiceInstallelement.

ThirdFailureActionType Enumeration Actiontotakeonthethirdfailureoftheservice.Thisattribute'svaluemustbeoneofthefollowing:none

reboot

restart

runCommand

Yes

RemarksNestingaServiceConfigelementunderaServiceInstallelementwillresultintheservicebeinginstalledtobeconfigured.

NestingaServiceConfigelementunderacomponentelementwillresultinanalreadyinstalledservicetobeconfigured.IftheservicedoesnotexistpriortotheinstalloftheMSIpackage,theinstallwillfail.

SeeAlsoUtilSchema

Version3.0.5419.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 DescriptionId String CanNotChangePassword YesNoType Theusercannotchangethe

account'spassword.EquivalenttoUF_PASSWD_CANT_CHANGE.

CreateUser YesNoType Indicateswhetherornottocreatetheuser.Usercreationcanbeskippedifallthatisdesiredistojoinausertogroups.

Disabled YesNoType Theaccountisdisabled.Equivalentto

UF_ACCOUNTDISABLE.Domain String AFormattedstringthatcontains

thelocalmachineorActiveDirectorydomainfortheuser.

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.0.5419.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 RequiredId String Identifierforxml

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

valuemustbeoneofthefollowing:install

uninstall

PreserveModifiedDate YesNoType Specifieswheterornotthemodificationshouldpreservethemodifieddate.Preservingthemodifieddatewillallowthefiletobepatchedifnoothermodificationshavebeenmade.

Sequence Integer SpecifiestheorderinwhichthemodificationistobeattemptedontheXMLfile.Itisimportanttoensurethatnewelementsarecreatedbeforeyouattempttoaddanattributetothem.

Value String Thevaluetobewritten.SeetheFormattedtopicforinformationhowtoescape

squarebracketsinthevalue.

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

SeeAlsoUtilSchema

Version3.0.5419.0

XmlFileElement(UtilExtension)

DescriptionAddsorremoves.xmlfileentries.IfyouusetheXmlFileelementyoumustreferenceWixUtilExtension.dllasitcontainstheXmlFilecustomactions.

WindowsInstallerreferencesNone

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String Identifierforxml

filemodification.Yes

Action Enumeration ThetypeofmodificationtobemadetotheXMLfilewhenthecomponentisinstalled.Thisattribute'svaluemustbeoneofthefollowing:createElement

Createsanewelementundertheelementspecifiedin

Yes

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

deleteValueDeletesavaluefromtheelementspecifiedintheElementPath.IfNameisspecified,theattributewiththatnameisdeleted.IfNameisnotspecified,thetextvalueoftheelement

specifiedintheElementPathisdeleted.TheValueattributeisignoredifdeleteValueistheactionspecified.

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

bulkSetValueSetsallthevaluesintheelementsthat

matchtheElementPath.IfNameisspecified,attributeswiththatnamearesettothesamevaluespecifiedinValue.IfNameisnotspecified,thetextvaluesoftheelementsareset.ValueisarequiredattributeifsetBulkValueistheactionspecified.

ElementPath String TheXPathoftheelementtobemodified.Notethatthisisaformattedfieldandtherefore,squarebracketsintheXPathmustbeescaped.

Yes

File String Pathofthe.xmlfiletoconfigure.

Yes

Name String NameofXMLnodetoset/addtothespecifiedelement.Notsettingthisattributecausestheelement'stext

valuetobeset.Otherwisethisspecifiedtheattributenamethatisset.

Permanent YesNoType Specifieswhetherornotthemodificationshouldberemovedonuninstall.ThishasnoeffectonuninstalliftheactionwasdeleteValue.

PreserveModifiedDate YesNoType Specifieswheterornotthemodificationshouldpreservethemodifieddate.Preservingthemodifieddatewillallowthefiletobepatchedifnoothermodificationshavebeenmade.

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

XSLPattern

Sequence Integer SpecifiestheorderinwhichthemodificationistobeattemptedontheXMLfile.Itisimportanttoensurethatnewelementsarecreatedbeforeyouattempttoaddanattributetothem.

Value String Thevaluetobewritten.SeetheFormattedtopicforinformationhowtoescapesquarebracketsinthevalue.

SeeAlsoUtilSchema

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

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

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

PatchClassificationType(SimpleType)

DescriptionCategoryofupdate.

EnumerationTypePossiblevalues:{CriticalUpdate,Hotfix,SecurityRollup,ServicePack,Update,UpdateRollup}

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

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

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

HelpNamespace.Yes

Description String FriendlynameforNamespace.

Name String InternalMicrosoftHelpIDforthisNamespace.

Yes

SuppressCustomActions YesNoType SuppresslinkingHelpregistrationcustomactions.Helpredistributablemergemodules

willberequired.Usethiswhenbuildingamergemodule.

SeeAlsoVsSchema

Version3.0.5419.0

HelpCollectionRefElement(VsExtension)

DescriptionCreateareferencetoaHelpCollectionelementinanotherFragment.

WindowsInstallerreferencesNone

ParentsFragment,Module,Product

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)HelpFileRef(min:0,max:unbounded)

Attributes

Name Type Description RequiredId String PrimaryKeyforHelpNamespace

Table.Yes

Anyattributenamespace='##other'processContents='lax'

SeeAlsoVsSchema

Version3.0.5419.0

HelpFileElement(VsExtension)

DescriptionFileforHelpNamespace.TheparentfileisthekeyforHxS(Title)file.

WindowsInstallerreferencesNone

ParentsFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String PrimaryKeyfor

HelpFileTable.Yes

AttributeIndex String KeyforHxR(Attributes)file.

Index String KeyforHxI(Index)file.

Language Integer LanguageIDforcontentfile.

Yes

Name String InternalMicrosoftHelpIDforthisHelpFile.

Yes

SampleLocation String Keyforafilethatisinthe"root"ofthesamples

directoryforthisHelpFile.

Search String KeyforHxQ(Query)file.

SuppressCustomActions YesNoType SuppresslinkingHelpregistrationcustomactions.Helpredistributablemergemoduleswillberequired.Usethiswhenbuildingamergemodule.

SeeAlsoVsSchema

Version3.0.5419.0

HelpFileRefElement(VsExtension)

DescriptionCreateareferencetoaHelpFileelementinanotherFragment.

WindowsInstallerreferencesNone

ParentsHelpCollection,HelpCollectionRef

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String PrimaryKeyforHelpFileTable. YesAnyattributenamespace='##other'processContents='lax'

SeeAlsoVsSchema

Version3.0.5419.0

HelpFilterElement(VsExtension)

DescriptionFilterforHelpNamespace.

WindowsInstallerreferencesNone

ParentsFragment,Module,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String PrimaryKeyfor

HelpFilter.Yes

FilterDefinition String QueryStringforHelpFilter.

Name String FriendlynameforFilter.

Yes

SuppressCustomActions YesNoType SuppresslinkingHelpregistrationcustomactions.Helpredistributablemergemoduleswillberequired.Usethiswhenbuildingamergemodule.

SeeAlsoVsSchema

Version3.0.5419.0

HelpFilterRefElement(VsExtension)

DescriptionCreateareferencetoaHelpFileelementinanotherFragment.

WindowsInstallerreferencesNone

ParentsHelpCollection

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredId String PrimaryKeyforHelpFilter. YesAnyattributenamespace='##other'processContents='lax'

SeeAlsoVsSchema

Version3.0.5419.0

PlugCollectionIntoElement(VsExtension)

DescriptionPluginforHelpNamespace.

WindowsInstallerreferencesNone

ParentsHelpCollection

InnerTextNone

ChildrenNone

Attributes

Name Type Description RequiredAttributes 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.0.5419.0

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoVsSchema

AdvancedWiXTopicsThissectioncoversthefollowingadvancedWiXtopics:

SpecifyingCulturestoBuildSpecifyingSourceFilesOptimizingBuildsAddingCustomActionsStandardCustomActionsWixUIDialogLibraryExtensionsPatchBuildingCodePages

SpecifyingCulturestoBuild

SpecifyingCulturestobuildontheCommandLineYoucanspecifyaspecificcultureforlight.exetobuildusingthecultureswitch:

light.exemyinstaller.wixobj-cultures:en-us-extWixUIExtension

-outmyinstaller-en-us.msi

Thiswillcauselighttobuildanen-usinstallerusingtheen-usresourcesfromWixUIExtension.

Youcanstillusecultureswhenspecifyinglocalizationfiles:

light.exemyinstaller.wixobj-cultures:en-us-locmystrings_en-US.wxl

-locmystrings_fr-FR.wxl-outmyinstaller-en-us.msi

Thiswillcauselighttobuildanen-usinstallerusingtheen-usresourcesfromthespecifieden-US.wxlfile.Notethatwhenspecifying-culturesanywxlfilesspecifiedwiththe-locswitchthatdonotmapwillbeignored(mystrings_fr-FR.wxlinthiscase.)

Theneutral(invariant)culturecanbespecifiedbyusingneutral:

light.exemyinstaller.wixobj-cultures:netural-locmystrings_en-US.wxl

-locmystrings_fr-FR.wxl-locmystrings.wxl-outmyinstaller.msi

Thiswillcauselighttobuildaneutralinstallerusingtheneutralresourcesfromthemystrings.wxlfile.

Youcanuseculturesandlocalizationfilestogethertospecifyfallbackcultures:

light.exemyinstaller.wixobj-cultures:en-us;en-locmystrings_en-US.wxl

-locmystrings_en.wxl-extWixUIExtension-outmyinstaller-en-us.msi

Thiswillcauselighttobuildanen-usinstallerfirstusinglocalizationvariablesfromtheen-USlocalizationfile(mystrings_en-US.wxl),thentheenlocalizationfile(mystrings_en.wxl),thenfinallyWixUIExtension.

SpecifyingCulturestobuildinVisualStudioDuringthedevelopmentofyourinstalleryoumaywanttotemporarilydisablebuildingsomeofthelanguagestospeedupbuildtime.YoucandothisbygoingtoProject>ProjectnamePropertiesonthemenuandselectingtheBuildtab.IntheCulturestobuildfieldenterthesemicolonlistofculturesorculturegroupsyouwouldlikebuilt.

Culturestobuildmaybeusedtospecifyculturestobuildwhena.wxlfileisnotprovidedforatargetculture.Forexample,tobuildanen-USinstallerandanru-RUinstallerwhenonlyanru-RU.wxlfileisprovided,specifyen-US;ru-RU.Wixlocalizationvariablesfortheru-RUinstallerwillfirstcomefromtheprovided.wxlfile,thenreferencedWiXexstensions(IE:WixUIExtension).Wixlocalizationvariablesfortheen-USinstallerwillonlycomefromreferencedextensions.

Theneutral(invariant)culturecanbespecifiedbyusingneutral.TobuildEnglish(UnitedStates),French(France),andneutralinstallersspecifythefollowing:

en-US;fr-FR;neutral

CulturestobuildmayalsobeusedtospecifyhowtousemultipleWxLfilestobuildasingleinstaller.EachcultureorculturegroupwillbuildanindividualMSI.AculturegroupconsistsofalistofculturesseperatedbycommasandisusefulforspecifyingfallbackculturesusedtolocateWiXlocalizationvariables.Multipleculturegroupsmaybeseperatedbysemi-colonstobuildmultipleoutputs.

primary1,fallback1;primary2,fallback2

Theexamplebelowdemonstratesthesettingsneededtobuildtwoinstallersfromthree.wxlfiles.Bothen-USanden-GBinstallerswillbebuilt,usingthreelocalizationfiles:setupStrings_en-US.wxl,setupStrings_en-GB.wxl,andsetupStrings_en.wxl.ThesampleusestwoculturegroupstosharetheneutralEnglishtranslationsbetweenbothofthefullylocalizedinstallers.

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.

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.

AddingCustomActionsNowthatyou’recomfortablewiththebasicsforcreatingWindowsInstallerpackages,let’stakeittothenextlevelandaddaCustomAction.ThisexamplewillshowhowtoauthorabinaryCustomActioncalled"FooAction".Acommonsamplepeopleuseisadllcustomactionthatlaunchesnotepad.exeorsomeotherapplicationaspartoftheirinstall.Beforeyoustart,youwillneedasampledllthathasanentrypointcalled"FooEntryPoint".

RatherthanputtheCustomActiondefinitioninthesamesourcefileasourproductdefinition,let'sexercisealittlemodularityandcreateanewsourcefiletodefinetheCustomActionscalled"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.Wewouldneedtolinkthissourcefilealongwithasourcefilethatcontained<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.wxs

C:\test>lightproduct.wixobjca.wixobj–outproduct.msi

C:\test>msiexec/iproduct.msi

Nowaspartofyourinstallation,whatever"FooAction"issupposedtoperform,youshouldseehappenaftertheInstallFilesaction.

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

usefulinsomemajorupgradescenarios.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%fullpathto

WixUtilExtension.dll%'4. Run'light.exeyourfile.wixobj-ext%fullpathto

WixUtilExtension.dll%–outyourfile.msiyourfile.wixout'

Now,useOrcatoopenuptheresultingMSIandtakealookattheErrortable,theCustomActiontable,andtheBinarytable.YouwillnoticethatalloftherelevantdataformanagingusershasbeenaddedintotheMSI.Thishappenedbecauseyouhavedonetwokeythings:

1. Youmadeuseofa<User>elementundera<Component>element.Thisindicatesthatauseristobeinstalledaspartof

theMSIpackage,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=MyApplication

symbolfile=PerfCounters.h

[languages]

009=English

004=Chinese

[objects]

PERF_OBJECT_1_009_NAME=Performanceobjectname

PERF_OBJECT_1_004_NAME=PerformanceobjectnameinChinese

[text]

OBJECT_1_009_NAME=Nameofthedevice

OBJECT_1_009_HELP=Displaysperformancestatisticsofthedevice

OBJECT_1_004_NAME=NameofthedeviceinChinese

OBJECT_1_004_HELP=DisplaysperformancestatisticsofthedeviceinChinese

DEVICE_COUNTER_1_009_NAME=Nameoffirstcounter

DEVICE_COUNTER_1_009_HELP=Displaysthecurrentvalueofthefirstcounter

DEVICE_COUNTER_1_004_NAME=NameofthefirstcounterinChinese

DEVICE_COUNTER_1_004_HELP=DisplaysthevalueofthefirstcounterinChinese

DEVICE_COUNTER_2_009_NAME=Nameofthesecondcounter

DEVICE_COUNTER_2_009_HELP=Displaysthecurrentrateofthesecondcounter

DEVICE_COUNTER_2_004_NAME=NameofthesecondcounterinChinese

DEVICE_COUNTER_2_004_HELP=DisplaystherateofthesecondcounterinChinese

PERF_OBJECT_1_009_NAME=Nameofthethirdcounter

PERF_OBJECT_1_009_HELP=Displaysthecurrentrateofthethirdcounter

PERF_OBJECT_1_004_NAME=NameofthethirdcounterinChinese

PERF_OBJECT_1_004_HELP=DisplaystherateofthethirdcounterinChinese

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

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

Add4. 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.NETFrameworkSDKandWindowsSDK:

Propertyname Meaning

NETFRAMEWORK11SDKDIR Thelocationofthe.NETFramework1.1SDKinstallationroot.

NETFRAMEWORK20SDKDIR Thelocationofthe.NETFramework2.0SDKinstallationroot.

WINDOWSSDKCURRENTVERSIONDIR ThelocationofthecurrentlyactiveversionoftheWindowsSDK.

WINDOWSSDKCURRENTVERSION TheversionnumberofthecurrentlyactiveversionoftheWindowsSDK.

WINDOWSSDK60ADIR ThelocationoftheWindowsSDK6.0ainstallationroot.

WINDOWSSDK61DIR ThelocationoftheWindowsSDK6.1installationroot.

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.

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.

UsingWixVSExtensionPropertiesorCustomActionsTousetheWixVSExtensionpropertiesorcustomactionsinanMSI,usethefollowingsteps:

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

<PropertyRefId="VS2005_ROOT_FOLDER"/>

<CustomActionRefId="VS2005Setup"/>

Whenyoureferenceanyoftheabovepropertiesorcustomactions,theWixVSExtensionautomaticallyschedulesthecustomactionsandpullsinpropertiesusedinthecustomactionconditionsandexecutionlogic.

WixUIDialogLibraryThissectioncoversthefollowingtopicsaboutusingtheWixUIdialoglibrary:

UsingBuilt-inWixUIDialogSetsCustomizingBuilt-inWixUIDialogSetsUsingLocalizedVersionsofWixUIWixUIDialogReference

UsingBuilt-inWixUIDialogSets

Built-indialogsetsTheWixUIdialoglibrarycontainsthefollowingbuilt-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. RightclickonyourprojectinSolutionExplorerand

selectAddReference...3. SelecttheWixUIExtension.dllassemblyfromthelist

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

light-extWixUIExtension-cultures:en-usProduct.wixobj-outProduct_en-us.msi

light-extWixUIExtension-cultures:fr-frProduct.wixobj-outProduct_fr-fr.msi

light-extWixUIExtension-cultures:de-deProduct.wixobj-outProduct_de-de.msi

light-extWixUIExtension-cultures:it-itProduct.wixobj-outProduct_it-it.msi

light-extWixUIExtension-cultures:ja-jpProduct.wixobj-outProduct_ja-jp.msi

light-extWixUIExtension-cultures:pl-plProduct.wixobj-outProduct_pl-pl.msi

light-extWixUIExtension-cultures:ru-ruProduct.wixobj-outProduct_ru-ru.msi

light-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.ThispropertysetsthedefaultselectedvalueoftheradiobuttonontheinstallscopedialoginthesetupUIwheretheusercanchoosewhethertoinstalltheproductper-machineorper-user.Forexample:

<PropertyId="WixAppFolder"Value="WixPerMachineFolder"/>

ItispossibletosuppresstheinstallscopedialogintheWixUI_Advanceddialogsetsotheuserwillnotbeabletochooseaper-machineorper-userinstallation.Todothis,youmustsettheWixUISupportPerMachineorWixUISupportPerUserWiXvariablesto0.Thedefaultvalueforeachofthesevariablesis1,andyoushouldnotsetbothofthesevaluesto0inthesame.msi.Forexample,toremovetheinstallscopedialogandsupportonlyaper-machineinstallation,youcansetthefollowing:

<WixVariableId="WixUISupportPerUser"Value="0"/>

TheinstallscopedialogwillautomaticallysettheALLUSERSpropertyfortheinstallationsessionbasedontheuser'sselection.IfyousuppresstheinstallscopedialogbysettingeitheroftheseWiXvariablevalues,youmustmanuallysettheALLUSERSpropertytoanappropriatevaluebasedonwhetheryouwantaper-machineorper-userinstallation.

WixUI_AdvancedDialogsWixUI_Advancedincludesthefollowingdialogs:

AdvancedWelcomeEulaDlgBrowseDlgDiskCostDlgFeaturesDlgInstallDirDlgInstallScopeDlgInvalidDirDlg

Inaddition,WixUI_AdvancedincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:

CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg

SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.

WixUI_FeatureTreeDialogSetWixUI_FeatureTreeisasimplerversionofWixUI_Mondothatomitsthesetuptypedialog.Instead,thewizardproceedsdirectlyfromthelicenseagreementdialogtothefeaturecustomizationdialog.WixUI_FeatureTreeismoreappropriatethanWixUI_Mondowhenyourproductinstallsallfeaturesbydefault.

ThisdialogsetisdefinedinthefileWixUI_FeatureTree.wxsintheWixUIExtensionintheWiXsourcecode.

WixUI_FeatureTreeDialogsWixUI_FeatureTreeincludesthefollowingdialogs:

BrowseDlgCustomizeDlgDiskCostDlgLicenseAgreementDlgWelcomeDlg

Inaddition,WixUI_FeatureTreeincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:

CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg

SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.

WixUI_InstallDirDialogSetWixUI_InstallDirdoesnotallowtheusertochoosewhatfeaturestoinstall,butitaddsadialogtolettheuserchooseadirectorywheretheproductwillbeinstalled.

ThisdialogsetisdefinedinthefileWixUI_InstallDir.wxsintheWixUIExtensionintheWiXsourcecode.

UsingWixUI_InstallDirTouseWixUI_InstallDir,youmustsetapropertynamedWIXUI_INSTALLDIRwithavalueoftheIDofthedirectoryyouwanttheusertobeabletospecifythelocationof.ThedirectoryIDmustbealluppercasecharactersbecauseitmustbepassedfromtheUItotheexecutesequencetotakeeffect.Forexample:

<DirectoryId="TARGETDIR"Name="SourceDir">

<DirectoryId="ProgramFilesFolder"Name="PFiles">

<DirectoryId="TESTFILEPRODUCTDIR"Name="TestFile">

...

</Directory>

</Directory>

</Directory>

...

<PropertyId="WIXUI_INSTALLDIR"Value="TESTFILEPRODUCTDIR"/>

<UIRefId="WixUI_InstallDir"/>

WixUI_InstallDirDialogsWixUI_InstallDirincludesthefollowingdialogs:

BrowseDlgDiskCostDlgInstallDirDlgInvalidDirDlgLicenseAgreementDlgWelcomeDlg

Inaddition,WixUI_InstallDirincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:

CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg

SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.

WixUI_MinimalDialogSetWixUI_Minimalisthesimplestofthebuilt-inWixUIdialogsets.Itssoledialogcombinesthewelcomeandlicenseagreementdialogsandomitsthefeaturecustomizationdialog.WixUI_Minimalisappropriatewhenyourproducthasnooptionalfeaturesanddoesnotsupportchangingtheinstallationdirectory.

ThisdialogsetisdefinedinthefileWixUI_Minimal.wxsintheWixUIExtensionintheWiXsourcecode.

WixUI_MinimalDialogsWixUI_Minimalincludesthefollowingdialog:

WelcomeEulaDlg

Inaddition,WixUI_MinimalincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:

CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg

SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.

WixUI_MondoDialogSetWixUI_Mondoincludesasetdialogsthatallowgranularinstallationcustomizationoptions.WixUI_Mondoisappropriatewhensomeproductfeaturesarenotinstalledbydefaultandthereisameaningfuldifferencebetweentypicalandcompleteinstalls.

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

ThisdialogsetisdefinedinthefileWixUI_Mondo.wxsintheWixUIExtensionintheWiXsourcecode.

WixUI_MondoDialogsWixUI_Mondoincludesthefollowingdialogs:

BrowseDlgCustomizeDlgDiskCostDlgLicenseAgreementDlgSetupTypeDlgWelcomeDlg

Inaddition,WixUI_MondoincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:

CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg

SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.

WixUIDialogsThefollowingtabledescribeseachofthebuilt-indialogsthatisdefinedintheWixUIdialoglibrary.

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

ExtensionsWiXsupportsthefollowingclassesofextensions:

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

ForinformationonhowtouseWiXextensionsonthecommandlineorinsidetheVisualStudioIDE,pleasevisittheUsingWiXextensionstopic.

ForinformationonhowtouselocalizedWiXextensions,pleasevisittheLocalizedextensionstopic.

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.

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

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

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

AuthoringLocalizationFilesTheWiXlocalizationfiles,or.wxlfiles,areacollectionofstrings.Forlibraries,extensiondeveloperscanchoosewhetherornotthosestringscanbeoverwrittenby.wxlfilesspecifiedduringlinkageoftheproduct.Forexample,partoftheWixUIExtension'sen-USresourcesarecopiedbelow.

<?xmlversion="1.0"encoding="utf-8"?>

<WixLocalizationCulture="en-us"xmlns="http://schemas.microsoft.com/wix/2006/localization">

<StringId="WixUIBack"Overridable="yes">&amp;Back</String>

<StringId="WixUINext"Overridable="yes">&amp;Next</String>

<StringId="WixUICancel"Overridable="yes">Cancel</String>

<StringId="WixUIFinish"Overridable="yes">&amp;Finish</String>

<StringId="WixUIRetry"Overridable="yes">&amp;Retry</String>

<StringId="WixUIIgnore"Overridable="yes">&amp;Ignore</String>

<StringId="WixUIYes"Overridable="yes">&amp;Yes</String>

<StringId="WixUINo"Overridable="yes">&amp;No</String>

<StringId="WixUIOK"Overridable="yes">OK</String>

</WixLocalization>

TheseStringelementsareattributedas@Overridable="yes"toallowforproductdeveloperstooverridethesestringswiththeirownvaluesiftheysochoose.Forexample,aproductdevelopermaywishtouse"Previous"insteadof"Back",sotheycandefinethesameString/@Idintheirown.wxlwhilestilllinkingtotheextensionwherethatstringisused.Thisoffersproductdevelopersthebenefitsofthelibrarywhileallowingforcustomizations.Extensiondeveloperscanalsochoosetodisallowoverridingcertainstringsifitmakessensetodoso.

BuildingLibrariesWhenallthefragmentauthoringandlocalizationfilesarecomplete,theycanbecompiledandlinkedtogetherusingcandle.exeandlit.exe.

Firstcompileallthe.wxssources.

candle.exeexample1.wxs-outexample1.wixobj

candle.exeexample2.wxs-outexample2.wixobj

Nowlinktogetherallthe.wixobjfilesan.wxlfilesforeachcultureyouwantavailableintheextensionlibrary.

lit.exeexample1.wixobjexample2.wixobj-locen-us.wxl-locde-de.wxl-outexample.wixlib

Tobeuseful,the.wixlibshouldbeembeddedintoamanagedassemblyandreturnedbyWixExtension.GetLibrary().

UsingtheLibrariesProductdevelopersreferenceelementswithinyour.wixlib,asshownintheWixUIExtensionexample.Whencompilingandlinking,theextensionisspecifiedonthecommandlineusingthe-extswitch.Ifanyadditionallocalizationvariablesareusedintheproductauthoringorwouldoverridelocalizationvariablesinthelibrary,those.wxlfilesarepassedtothe-locswitchasshownintheexamplebelow.

candle.exeexample.wxs-extWixUIExtension-outexample.wixobj

light.exeexample.wixobj-extWixUIExtension-cultures:en-us-locen-us.wxl-outexample.msi

PatchBuildingPatchesareupdatestoaproductorproducts.WiXsupportstwodifferentwaysofcreatingthem:

UsingPatchCreationPropertieswhichrequiresthatyouhavetheWindowsInstaller3.0ornewerSDKinstalledforfullsupportofincludedexamples.UsingPurelyWiXwhichusesfunctionalityprovidedinWiXanddoesnotrequireadditionaltools.

Therearealsorestrictionsonhowpatchesarebuiltinordertoavoidproblemswheninstallingthem.

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

FormoreinformationaboutpatchingwithWindowsInstaller,readPatchingandUpgrades.

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

mdC:\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)authoringinthesample

rootcalledPatch.wxswiththefollowingcontent:

<?xmlversion="1.0"encoding="utf-8"?>

<Wixxmlns="http://schemas.microsoft.com/wix/2006/wi">

<PatchCreation

Id="224C316C-5894-4771-BABF-21A3AC1F75FF"

CleanWorkingFolder="yes"

OutputPath="patch.pcp"

WholeFilesOnly="yes"

>

<PatchInformation

Description="SmallUpdatePatch"

Comments="SmallUpdatePatch"

ShortNames="no"

Languages="1033"

Compressed="yes"

Manufacturer="DynamoCorp"/>

<PatchMetadata

AllowRemoval="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.wxs

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

light.exeproduct.wixobj-out1.1\product.msi

Performanadministrativeinstallationoftheupgradepackage

msiexec.exe/a1.1\product.msi/qbTARGETDIR=C:\sample\1.1\admin

BuildthePatchThePatch.wxsfileiscompiledintoaPCPfilethatisthenprocessedbyMsiMsp.exetoproductthepatchpackage.

candle.exepatch.wxs

light.exepatch.wixobj-outpatch\patch.pcp

msimsp.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.OnWindowsVistaandnewer,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.0

mdC:\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.wxswiththe

followingcontent:

<?xmlversion="1.0"encoding="UTF-8"?>

<Wixxmlns="http://schemas.microsoft.com/wix/2006/wi">

<Patch

AllowRemoval="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:\sample

candle.exe-dVersion=1.0product.wxs

light.exeproduct.wixobj-out1.0\product.msi

Buildtheupgradelayout

candle.exe-dVersion=1.1product.wxs

light.exeproduct.wixobj-out1.1\product.msi

Createthetransformbetweenyourproducts

torch.exe-p-xi1.0\product.wixpdb1.1\product.wixpdb-outpatch\diff.wixmst

Buildthepatch

Thepatch.wxsfileiscompiledandlinkedlikeaproduct,butthenitisprocessedalongwithanynumberoftransformsthatyouwantthepatchtocontain.ThatproducesanMSPfilethattargetsanyoftheproductsfromwhichtransformswerecreatedafterfiltering.

candle.exepatch.wxs

light.exepatch.wixobj-outpatch\patch.wixmsp

pyro.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.OnWindowsVistaandnewer,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.

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.

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.

DevelopingforWiXThissectioncoversthefollowingtopicsfordeveloperswhowanttocontributetotheWiXcodebase:

HowtobeaWindowsInstallerXMLDeveloperBuildingWiXNAntConventionsExtensionDevelopmentDevelopingforVotiveAddingtotheWiXDocumentationTestingWiX

SoyouwanttobeaWindowsInstallerXMLdeveloper?PeoplehavestartedexpressinginterestinjoiningtheWindowsInstallerXMLtoolsetdevelopmentcommunitysoIfiguredIshouldgetsomeadministrativedetailsoutoftheway.IfyouareinterestedincontributingcodetotheWindowsInstallerXMLtoolset,itisveryimportanttoreadthroughallfourofthesetopics.

1)TheWindowsInstallerXMLtoolsetcopyrightisheldbyMicrosoft.

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

Beforejumpingtoanyconspiracytheories,pleasenotethatthiscopyrightassignmentisexactlythesameprocesstheFreeSoftwareFoundationhasyougothroughifyouworkonaprojecttheysponsor.Also,inClause5oftheWindowsInstallerXMLassignmentagreementyourrightstoyourcontributionareexplicitlygrantedbacktoyou.Ifyouwouldlikeacopyoftheassignmentagreement,[email protected].

2)TheWindowsInstallerXMLprojectisabenevolentdictatorship.

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

Tohaveyourcontributionsubmittedtotheproject,pleasesubmitanassignmentagreementasdescribedabove(youonlyneedtodoso

once)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.5and/orVisualStudio2008:

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

HTMLHelpSDK1.4orhigher[installedtoProgramFilesorProgramFiles(x86)]

TobuildSconceandVotive,youmusthavethefollowingSDKsinstalled:

VisualStudio2005SDKVersion4.0VisualStudio2008SDK

MoreinformationabouttheVisualStudioSDKcanbefoundattheVisualStudioExtensibilityCenter.

ToinstallVotiveonVisualStudio2005or2008,youmusthavetheStandardEditionorhigher.

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

<readregistry

property="sdkInstallRoot"

key="SOFTWARE\Microsoft\MicrosoftSDKs\Windows\v6.0a\WinSDKNetFxTools\InstallationFolder"

hive="LocalMachine"

failonerror="false"/>

Replacethiswiththefollowingelement:

<readregistry

property="sdkInstallRoot"

key="SOFTWARE\Microsoft\MicrosoftSDKs\Windows\v6.1\WinSDKNetFxTools\InstallationFolder"

hive="LocalMachine"

failonerror="false"/>

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

TobuildDTFhelpfiles,youneedthefollowingtools:

SandcastleJanuary2008ReleaseSandcastleHelpFileBuilder1.6.0.4

TheDTFhelpbuildlooksfortheminan"external"directoryparalleltotheWiX"src"directory:

SandcastleJanuary2008Release:external\SandcastleSandcastleHelpFileBuilder1.6.0.4:external\SandcastleBuilder

NAntConventions

BuildFileFormatInordertopromoteconsitencyandreadability,the.buildfileswillbelaidoutinthefollowingway.<TODOJRock:addtherestofthecontent>

Properties

Prefixes

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

DevelopingWiXExtensionsThissectioncoversthefollowingtopicsfordeveloperswhowanttocreatetheirownWiXextensions:

IntroductiontoDevelopingWiXExtensionsCreatingaSimpleExtensionCreatingaPreprocessorExtension

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>

CreatingaSimpleWiXExtensionWiXextensionsareusedtoextendandcustomizewhatWiXbuildsandhowitbuildsit.

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

light.exeProduct.wxs-extSampleWixExtension.dll

CreatingaPreprocessorExtensionThepreprocessorinWiXallowsextensibiltyatafewlevels.ThissamplewilldemonstratehowtoaddaPreprocessorExtensiontoyourWixExtensionthatwillhandlevariablesandfunctionsyoudefineinyourownnamespace.

ThissampleassumesyouhavealreadyreviewedtheCreatingaSimpleExtensiontopic.

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.

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

AdditionalResourcesThefollowingtopicscontainadditionalresourcesfortheWiXtoolsetandWindowsInstaller:

GettingStartedLearningWiXUsefulWindowsInstallerInformationGettingHelp

GettingStartedLearningWiXThereareseveraloptionsavailabletogetstartedlearninghowtouseWiX.

HowToGuidesThishelpfileincludesasetofHowToGuidesthatexplainhowtoaccomplishcommonWindowsInstallertasksusingWiX.

TutorialsIfyouprefertolearnfromatutorial,thefollowingoptionsareavailable:

Introductorytutorials:

UsingtheWiXToolsettoIntegrateSetupintoYourDevelopmentProcessAutomateReleasesWithMSBuildAndWindowsInstallerXML

Comprehensivetutorial:

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

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

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

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

1. LinkstodownloadweeklyreleasesoftheWiXtoolset.2. TheWiXbugdatabasewhereyoucanreportnewbugsorcheck

thestatusofexistingbugs.3. Mailingliststoaskquestions,makesuggestionsordiscussthe

WiXtoolsetwithotherusersandtheWiXdevelopers.4. LinkstoblogsmaintainedbytheWiXdevelopers.