Windows Installer XML (WiX) HelpWindows Installer XML, or WiX, provides a schema that describes a...
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.
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
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:
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
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.
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
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"/>
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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.
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.
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
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
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
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.
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
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.
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
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.
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
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
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
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
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
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
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
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
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
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
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.
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
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
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.
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.
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.
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
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
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.
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
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
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.
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
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.
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=""[#MyExecutable.exe]""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=""[#MyExecutable.exe]""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">&Back</String>
<StringId="WixUINext"Overridable="yes">&Next</String>
<StringId="WixUICancel"Overridable="yes">Cancel</String>
<StringId="WixUIFinish"Overridable="yes">&Finish</String>
<StringId="WixUIRetry"Overridable="yes">&Retry</String>
<StringId="WixUIIgnore"Overridable="yes">&Ignore</String>
<StringId="WixUIYes"Overridable="yes">&Yes</String>
<StringId="WixUINo"Overridable="yes">&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.
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.
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
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.
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
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.