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

1427
Introduction to Windows Installer XML (WiX) toolset What is WiX? WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset is based on a declarative XML authoring model. You can use WiX on the command line by using the WiX tools or MSBuild. In addition, there is also a WiX Visual Studio plug-in that supports VS2005, VS2008, and VS2010. The WiX toolset supports building the following types of Windows Installer files: Installer (.msi) Patches (.msp) Merge Modules (.msm) Transforms (.mst) WiX supports a board spectrum of Windows Installer features. In addition, WiX also offers a set of built-in custom actions that can be used and incorporated in Windows Installer packages. The custom actions are offered in a set of WiX extensions. Some common WiX extensions include support for Internet Information System (IIS), Structured Query Language (SQL), the .NET Framework, Visual Studio, and Windows etc.

Upload: others

Post on 13-Jul-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

IntroductiontoWindowsInstallerXML(WiX)toolset

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

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

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

Page 2: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

UsingWiXontheCommandLineUsingWiXinVisualStudioUsingWiXwithMSBuildUsingWiXwithNAntHowToGuidesWiXSchemaReferenceAdvancedWiXTopicsDevelopingforWiXAdditionalResources

Page 3: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

GettingStartedThereareseveraloptionsavailabletogetstartedlearninghowtouseWiX.

Page 4: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

BasicWalkthroughTogetstarted,youcangototheCreatingInstallationPackagessectionwhichincludesastep-by-stepwalkthroughtocreateasimplepackageusingWiX.

Page 5: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HowToGuidesThishelpfileincludesasetofHowToGuidesthatexplainhowtoaccomplishcommonWindowsInstallertasksusingWiX.

Page 6: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

TutorialsIfyouprefertolearnfromatutorial,thefollowingoptionsareavailable:

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

Ifyouprefertolearnfromaudio-visualpresentations,thefollowingoptionsareavailable:

BlogintroductionwithvideoVideoonChannel9MSDNRadiobroadcast

Page 7: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 8: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 9: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 10: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ReadingSourceCodeIfyouprefertolearnbyreadingcode,WiXisanopensourceproject,andyoucanlookatthesourcecodebyreviewingtheHowtobeaWindowsInstallerXMLDevelopertopic.

Page 11: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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.

Page 12: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

1. LinkstodownloadweeklyreleasesoftheWiXtoolset.2. TheWiXbugdatabasewhereyoucanreportnewbugsorcheckthe

statusofexistingbugs.3. Mailingliststoaskquestions,makesuggestionsordiscusstheWiX

toolsetwithotherusersandtheWiXdevelopers.4. LinkstoblogsmaintainedbytheWiXdevelopers.

Page 13: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 14: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WiXFileTypesThereisasetoftoolsthatWiXofferstofulfilltheneedsofbuildingWindowsInstaller-basedpackages.Eachtooloutputsatypeoffilethatcanbeconsumedasinputsofanothertool.Afterprocessingthroughtheappropriatetools,thefinalinstallerisproduced.

TogetfamiliarwiththeWiXfiletypes,seeFileTypes.

Page 15: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WiXToolsOnceyouarefamiliarwiththefiletypes,seehowthefiletypesareproducedbywhatWiXtoolsbyvisitingListofTools.ForagraphicalviewoftheWiXtoolsandhowtheyinteractwitheachother,seeWiXToolsetDiagram.

Page 16: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WiXSchemaThecoreWiXschemaisaclosemirrorwiththeMSItables.ForhelpfulhintsonhowtheWiXschemamapstoMSItables,seeMSITablestoWiXSchema.

Page 17: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

FileTypesTherearemanyfiletypesinWiXthataregeneratedfromdifferenttoolsinthetoolset.Atthehighestlevel,allinputfilesandintermediatefilesforWiXareXMLfiles.ThefinaloutputisintheformofstandardWindowsInstallerdatabasefiles.

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

Page 18: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ListoffiletypesThefollowinglistdescribesthesupportedfiletypesinWiX:

Extension Type Description

.wxi WiXIncludeFile

A.wxifileisanalogousto.hfilesforC++.Therootelementofthisfileis<Include>.Everythingundertherootelementwillbeinsertedinlinewhenthisfileisincludedinanothersourceorincludefile.

.wxl WiXLocalizationFile

A.wxlfilecontainsasetofstringsusedforlocalizingaproductintoaspecifiedculture.Therootelementofthisfileis<WixLocalization>.ThecultureisspecifiedbysettingtheCultureattributeonthe<WixLocalization>element.

.wxs WiXSourceFile

A.wxsfileisanalogoustoa.cppfileforC++.TheRootelementofthisfileis<Wix>.Formoredetail,seeAdditionalInformationbelow.

.wixobj WiXObjectFile

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

.wixout WiXXMLOutputFile

A.wixoutfileiscreatedbythelinkerwhichrepresentstheresultoflinkingasetofobjectfiles.The.wixoutisanXMLrepresentationofthefinaloutput.

.wixlib WiXLibraryFile

A.wixlibfileisalibraryofsetupfunctionalitythatcanbeeasilysharedacrossdifferentWiX-

Page 19: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

basedpackagesbyincludingitwhenlinkingthesetuppackage.

.wixpdb WiXDebugFile

A.wixpdbfileiscreatedbythelinkerforeachfinaloutput.Itcontainsthedebugginginformation.

.wixmsp WiXXMLPatchFile

A.wixmspfileistheXMLoutputgeneratedbylinkingobjectfilesinapatchbuild.

.wixmst WiXTransformFile

A.wixmstfileisanXMLrepresentationofthedifferencebetweenapairoffinaloutputsorXMLoutputs.

.msi WindowsInstallerInstallationPackage

Aninstallationpackagefile(.msi)isthebasicunitofinstallationfortheWindowsInstaller.

.msm WindowsInstallerMergeModule

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

.mst WindowsInstallerTransform

Atransformfile(.mst)isusedtoapplychangestoan.msifile.

.pcp WindowsInstallerPatchCreationProcess

Apatchcreationpropertiesfile(.pcp)isusedasaninputtothepatchbuildingtoolsprovidedintheWindowsInstallerSDK.

Page 20: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AdditionalInformation

Structureof.wxsfiles

All.wxsfilesarewell-formedXMLdocumentsthatcontainasinglerootelementnamed<Wix/>.TherestofthesourcefilemayormaynotadheretotheWiXschemabeforepreprocessing.However,afterbeingpreprocessedallsourcefilesmustconformtotheWiXschemaortheywillfailtocompile.

Theroot<Wix>elementcancontainatmostoneofthefollowingelementsaschildren:<Product>,<Module>,and<Patch>.However,therecanbeanunboundednumber<Fragment>elementsaschildrenoftheroot<Wix>element.Whenasourcefileiscompiledintoanobjectfile,eachinstanceoftheseelementscreatesanewsectionintheobjectfile.Therefore,thesethreeelementsareoftenreferredtoassectionelements.

Itisimportanttonote,thattherecanbeonlyone<Product>or<Module>or<Patch>sectionelementpersourcefilebecausetheyarecompiledintospecialsectionscalledentrysections.Entrysectionsareusedasstartingpointsinthelinkingprocess.Sections,entrysections,andtheentirelinkingprocessaredescribedingreaterdetaillaterinthisdocument.

ThechildrenofthesectionelementsdefinethecontentsoftheWindowsInstallerdatabase.You’llrecognize<Property>elementsthatmaptoentriesinthePropertytableandahierarchyof<Directory>elementsthatbuilduptheDirectorytable.Mostelementscontainan“Id”attributethatwillactastheprimarykeyfortheresultingrowintheWindowsInstallerdatabase.Inmostcases,the“Id”attributealsodefinesasymbolwhenthesourcefileiscompiledintoanobjectfile.

Symbolsandreferences

Everysymbolinanobjectfileiscomposedoftheelementnameplustheuniqueidentifierfromthe“Id”attribute.Symbolsareimportantbecausetheycanbereferencedbyothersectionsfromanysourcefile.For

Page 21: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

example,a<Directory>structurecanbedefinedina<Fragment>inonesourcefileanda<Component>canbedefinedunderadifferentsourcefile’s<Fragment>.Bymakingthe<DirectoryRef>elementaparentofthe<Component>anexplicitreferenceiscreatedthatreferencesthesymboldefinedbya<Directory>inthefirstsourcefile.ThelinkeristhenresponsibleforstitchingthesymbolandthereferencetogetherinasingleWindowsInstallerdatabase.Insomecases,implicitreferencesaregeneratedbythecompilerwhileprocessingasourcefile.Theseimplicitreferencesbehaveidenticallytoexplicitreferences.

Inadditiontothesimplereferencesdescribedabove,WiXsupportsspecificcomplexreferences.Complexreferencesareusedincaseswherethelinkermustgenerateextrainformationtolinkthesymbolandreferencetogether.TheperfectexampleofacomplexreferenceisintheWindowsInstaller’sFeature/Componentrelationship.Whena<Component>isreferencedexplicitlybya<Feature>througha<ComponentRef>element,thelinkermusttakethe<Feature>’ssymbolandthe<Component>’ssymbolandaddanentrytotheFeatureComponentstable.

ThisFeature/Componentrelationshipisevenmorecomplexbecausecertainelementsina<Component>,forexample<Shortcut>,havereferencesbacktotheprimaryFeatureassociatedwiththeComponent.Thesereferencesfromachildelementofa<Component>arecalledreversereferencesorsometimesfeaturebacklinks.Processingcomplexreferencesandreversereferencesisprobablythemostdifficultworkthelinkerhastodo.

Structureofthe.wixobjfile

A.wixobjfileiscreatedbythecompilerforeachsourcefilecompiled.The.wixobjfileisanXMLdocumentthatfollowstheobjects.xsdschemadefinedintheWiXproject.Asstatedabovethe.wixobjfilecontainsoneormoresectionsthat,inturn,containsymbolsandreferencestoothersymbols.

Whilethesymbolsandreferencesarearguablythemostimportantpiecesofdatainthe.wixobjfile,theyarerarelythebulkoftheinformation.Instead,most.wixobjfilesarecomposedof<table>,<row>and<field>elementsthatprovidetherawdatatobeplacedintheWindowsInstallerdatabase.Inmanycases,thelinkerwillnotonly

Page 22: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 23: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ListofToolsToviewtheusageinformationofthetools,run/?onthetoolviathecommandline.

Name Description

Candle PreprocessesandcompilesWiXsourcefilesintoobjectfiles(.wixobj).Formoreinformationoncompiling,seeCompiler.Formoreinformationonpreprocessing,seePreprocessor.

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

Lit Combinesmultiple.wixobjfilesintolibrariesthatcanbeconsumedbyLight.

Dark ConvertsaWindowsInstallerdatabaseintoasetofWiXsourcefiles.ThistoolisveryusefulforgettingallyourauthoringintoaWiXsourcefilewhenyouhaveanexistingWindowsInstallerdatabase.However,youwillthenneedtotweakthisfiletoaccomodatedifferentlanguagesandbreakingthingsintofragments.

Heat GeneratesWiXauthoringfromvariousinputformats.Itisusedforharvestingfiles,VisualStudioprojectsandInternetInformationServerwebsites,"harvesting"thesefilesintocomponentsandgeneratingWindowsInstallerXMLSourcefiles(.wxs).HeatisgoodtousewhenyoubeginauthoringyourfirstWindowsInstallerpackageforaproduct.

Insignia Inscribesaninstallerdatabasewithinformationaboutthedigitalcertificatesitsexternalcabsaresignedwith.Formore

Page 24: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

information,seeInsignia.

Melt Convertsan.msmintoacomponentgroupinaWiXsourcefile.

Torch Performsadifftogenerateatransform(.wixmstor.mst)forXMLoutputs(.wixoutor.wixpdb)or.msifiles.

Smoke Runsvalidationcheckson.msior.msmfiles.

Pyro TakesanXMLoutputpatchfile(.wixmsp)andoneormoreXMLtransformfiles(.wixmst)andproducesan.mspfile.

WixCop EnforcesstandardsonWiXsourcefiles.WixCopcanalsobeusedtoassistinconvertingasetofWiXsourcefilescreatedusinganolderversionofWiXtothelatestversionofWiX.Formoreinformation,seeWixCop.

WixUnit RunsvalidationsonasetofXMLfilesandtheexpectedoutputfile.TakesasetofWiXsourcefilesandanexpectedMSIastheinputandoutputsPass/Fail.

Page 25: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

-nologo-wx1.wxs2.wxs3.wxs

andissueacommandlike:

[email protected]

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

Page 26: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WiXToolsetDiagramBelowisadiagramshowingtherelationshipofalloftheWiXtoolsandtheoutputthattheygenerate.

Page 27: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PreprocessorOftenyouwillneedtoadddifferentpiecesofyoursetupduringbuildtimedependingonmanyfactorssuchastheSKUbeingbuilt.ThisisdonebyusingconditionalstatementsthatwillfilterthexmlbeforeitissenttotheWiXcompiler(candle).Ifthestatementevaluatestotrue,theblockofxmlwillbesenttocandle.Ifthestatementevaluatestofalse,candlewillneverseethatsectionofxml.

TheconditionalstatementsareBooleanexpressionsbasedonenvironmentvariables,variablesdefinedinthexml,literalvalues,andmore.

Example

Let’sstartwithanexample.Sayyouwanttoincludeafileifyou’rebuildingthe“EnterpriseSKU.”Yourbuildusesanenvironmentvariable%MySku%=Enterprisetospecifythissku.

Whenyoubuildtheenterprisesku,thisfilewillbeincludedinthexmlpassedontocandle.Whenyoubuildadifferentsku,thexmlfromEnterpriseFeature.wxswillbeignored.

<?if$(env.MySku)=Enterprise?><?includeEnterpriseFeature.wxs?><?endif?>

Page 28: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Therootelementoftheincludefilemustbe<Include>.Therearenootherrequirementsbeyondtheexpectedwixschema.Forexample,

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

Page 29: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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.

Page 30: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Customvariables<?define?>

Ifyouwanttodefinecustomvariables,youcanusethe<?define?>statement.Youcanalsodefinevariablesonthecommandlineusingcandle.exeusingthe-dswitch.Later,thevariablesarereferredtointhe<?if?>statementswiththesyntax$(var.VarName).Variablenamesarecase-sensitive.

Howtodefinetheexistenceofavariable:<?defineMyVariable?>

Howtodefinethevalueofavariable(note:quotesarerequiredifthevalueortheexpansionofothervariablesinthevaluecontainspaces):<?defineMyVariable=“HelloWorld”?><?defineMyVariable=“$(var.otherVariableContainingSpaces)”?>

Therightsideofthedefinitioncanalsorefertoanothervariable:<?defineMyVariable=$(var.BuildPath)\x86\bin\?>

Howtoundefineavariable:<?undefMyVariable?>

Todefinevariablesonthecommandline,youcantypeacommandsimilartothefollowing:

candle.exe-dMyVariable="HelloWorld"...

Youcanrefertovariablesinyoursourcethataredefinedonlyonthecommandline,butcandle.exewillerrwhenpreprocessingyoursourcecodeifyoudonotdefinethosevariablesonthecommandline.

Page 31: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 32: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 33: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 34: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Anexample:

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

Page 35: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

IterationStatementsThereisasingleiterationstatement,<?foreachvariable-nameinsemi-colon-delimited-list?><?endforeach?>.Whenthisoccursthepreprocessorwill

createaprivatecopyofthevariablecontextsetthevariableintheforeachstatementtoaniterationonthesemicolondelimitedlistgenerateafragmentwiththevariablesubstituted

Theeffectofthisprocessisthatthefragmentisusedasatemplatebythepreprocessorinordertogenerateaseriesoffragments.Thevariablenameinthe?foreachstatementcanbeprecededby"var.".Whenavariableisusedinsidethetextofthefragment,itmustbeprecededby"var."

Anfewexamples:

<?foreachLCIDin"1033;1041;1055"?><FragmentId='Fragment.$(var.LCID)'><DirectoryRefId='TARGETDIR'><ComponentId='MyComponent.$(var.LCID)'/></DirectoryRef></Fragment><?endforeach?>

or

<?defineLcidList=1033;1041;1055?><?foreachLCIDin$(var.LcidList)?><FragmentId='Fragment.$(var.LCID)'><DirectoryRefId='TARGETDIR'><ComponentId='MyComponent.$(var.LCID)'/></DirectoryRef></Fragment><?endforeach?>

Page 36: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

or

filename:ExtentOfLocalization.wxi<Include><?defineLcidList=1033;1041;1055?></Include>

and

<?includeExtentOfLocalization.wxi?><?foreachLCIDin$(var.LcidList)?><FragmentId='Fragment.$(var.LCID)'><DirectoryRefId='TARGETDIR'><ComponentId='MyComponent.$(var.LCID)'/></DirectoryRef></Fragment><?endforeach?>

AnalternativetotheforeachprocesswouldbetowritethetemplateWiXfragmentintoaseparatefileandhaveanotherprocessgeneratetheauthoringthatwillbepassedtoWiX.Thegreatestmeritofthisalternativeisthatit'seasiertodebug.

Page 37: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 38: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 39: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Thecompilationprocessisrelativelystraightforward.TheWiXschemalendsitselftoasimplerecursivedescentparser.Thecompilerprocesseseachelementinturncreatingnewsymbols,calculatingthenecessaryreferencesandgeneratingtherawdataforthe.wixobjfile.

Page 40: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Linker(light)TheWindowsInstallerXMLlinkerisexposedbylight.exe.Lightisresponsibleforprocessingoneormore.wixobjfiles,retrievingmetadatafromvariousexternalfilesandcreatingaWindowsInstallerdatabase(MSIorMSM).Whennecessary,lightwillalsocreatecabinetsandembedstreamsinthecreatedWindowsInstallerdatabase.

Thelinkerbeginsbysearchingthesetofobjectfilesprovidedonthecommandlinetofindtheentrysection.Ifmorethanoneentrysectionisfound,lightfailswithanerror.ThisfailureisnecessarybecausetheentrysectiondefineswhattypeofWindowsInstallerdatabaseisbeingcreated,aMSIorMSM.Itisnotpossibletocreatetwodatabasesfromasinglelinkoperation.

Whilethelinkerwasdeterminingtheentrysection,thesymbolsdefinedineachobjectfilearestoredinasymboltable.Aftertheentrysectionisfound,thelinkerattemptstoresolveallofthereferencesinthesectionbyfindingsymbolsinthesymboltable.Whenasymbolisfoundinadifferentsection,thelinkerrecursivelyattemptstoresolvereferencesinthenewsection.Thisprocessofgatheringthesectionsnecessarytoresolveallofthereferencescontinuesuntilallreferencesaresatisfied.Ifasymbolcannotbefoundinanyoftheprovidedobjectfiles,thelinkerabortsprocessingwithanerrorindicatingtheundefinedsymbol.

Afterallofthesectionshavebeenfound,complexandreversereferencesareprocessed.ThisprocessingiswhereComponentsandMergeModulesarehookedtotheirparentFeaturesor,inthecaseofMergeModules,ComponentsareaddedtotheModuleComponentstable.ThereversereferenceprocessingaddstheappropriateFeatureidentifiertothenecessaryfieldsforelementslike,Shortcut,Class,andTypeLib.

Onceallofthereferencesareresolved,thelinkerprocessesalloftherowsretrievingthelanguage,version,andhashforreferencedfiles,calculatingthemedialayout,andincludingthenecessarystandardactionstoensureasuccessfulinstallationsequence.Thispartoftheprocessingtypicallyendsupgeneratingadditionalrowsthatgetaddedassociatedwiththeentrysectiontoensuretheyareincludedinthefinal

Page 41: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WindowsInstallerdatabase.

Finally,lightworksthroughthemechanicsofgeneratingIDTfilesandimportingthemintotheWindowsInstallerdatabase.Afterthedatabaseisfullycreated,thefinalpostprocessingisdonetomergeinanyMergeModulesandcreateacabinetifnecessary.TheresultisafullyfunctionalWindowsInstallerdatabase.

Page 42: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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)

Page 43: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

(managedonly)

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

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

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

bind.assemblyType.FileID(nativeonly)

!(bind.assemblyType.MyAssembly)

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

LocalizationVariables

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

Localizationvariablesareinthefollowingformat:

!(loc.VariableName)

CustomBinderVariables

YoucancreateyourownbindervariablesusingtheWixVariableelementorbysimplytypingyourownvariablenameinthefollowingformat:

!(bind.VariableName)

Custombindervariablesallowyoutousethesame.wixobjfilesbutspecifydifferentvalueswhenlinking,similartohowlocalizationvariablesareused.Youmightusebindervariablesfordifferentbuilds,likevarying

Page 44: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

thetargetprocessorarchitecture.

Page 45: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InsigniaInsigniaisatoolusedforinscribinganMSIwiththedigitalsignaturesthatitsexternalCABsaresignedwith.

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

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

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

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

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

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

Page 46: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixCopWixCopservestwomainpurposes:

ToupgradeWiXauthoringtothecurrentschemaToformatWiXauthoringaccordingtoasetofcommonformatting

WixCop'scommand-linesyntaxis:

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

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

WixCopreturnsthefollowingexitcodes:

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

WixCopsettingsfiles

WixCopsupportstwosettingsfiles.Generally,theprimarysettingsfileisyour“global”settingsandthealternatesettingsfileletsyouoverridetheglobalsettingsforaparticularproject.

SettingsfilesareXMLwiththefollowingstructure:

<Settings><IgnoreErrors><TestId="testId"/></IgnoreErrors><ErrorsAsWarnings><TestId="testId"/></ErrorsAsWarnings><ExemptFiles><FileName="foo.wxs"/></ExemptFiles>

Page 47: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

</Settings>

TheIgnoreErrorselementliststestIDsthatshouldbeignored.TheErrorsAsWarningselementliststestIDsthatshouldbedemotedfromerrorstowarnings.TheExemptFileselementlistsfilesthatshouldbeskipped.ThefollowingtabledescribestheteststhatWixCopsupports.

WixCoptestID DescriptionUnknown Internalonly:returnedwhen

astringcannotbeconvertedtoanInspectorTestType.

InspectorTestTypeUnknown Internalonly:displayedwhenastringcannotbeconvertedtoanInspectorTestType.

XmlException DisplayedwhenanXMLloadingexceptionhasoccurred.

UnauthorizedAccessException Displayedwhenafilecannotbeaccessed;typicallywhentryingtosavebackafixedfile.

DeclarationEncodingWrong DisplayedwhentheencodingattributeintheXMLdeclarationisnot'UTF-8'.

DeclarationMissing DisplayedwhentheXMLdeclarationismissingfromthesourcefile.

WhitespacePrecedingCDATAWrong DisplayedwhenthewhitespaceprecedingaCDATAnodeiswrong.

WhitespacePrecedingNodeWrong Displayedwhenthewhitespaceprecedinganodeiswrong.

NotEmptyElement Displayedwhenanelementisnotemptyasitshouldbe.

WhitespaceFollowingCDATAWrong Displayedwhenthe

Page 48: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

whitespacefollowingaCDATAnodeiswrong.

WhitespacePrecedingEndElementWrong Displayedwhenthewhitespaceprecedinganendelementiswrong.

XmlnsMissing Displayedwhenthexmlnsattributeismissingfromthedocumentelement.

XmlnsValueWrong Displayedwhenthexmlnsattributeonthedocumentelementiswrong.

CategoryAppDataEmpty DisplayedwhenaCategoryelementhasanemptyAppDataattribute.

COMRegistrationTyper DisplayedwhenaRegistryelementencountersanerrorwhilebeingconvertedtoastrongly-typedWiXCOMelement.

UpgradeVersionRemoveFeaturesEmpty DisplayedwhenanUpgradeVersionelementhasanemptyRemoveFeaturesattribute.

FeatureFollowParentDeprecated DisplayedwhenaFeatureelementcontainsthedeprecatedFollowParentattribute.

RadioButtonMissingValue DisplayedwhenaRadioButtonelementismissingtheValueattribute.

TypeLibDescriptionEmpty DisplayedwhenaTypeLibelementcontainsaDescriptionelementwithanemptystringvalue.

ClassRelativePathMustBeAdvertised DisplayedwhenaRelativePathattributeoccurs

Page 49: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

onanunadvertisedClasselement.

ClassDescriptionEmpty DisplayedwhenaClasselementhasanemptyDescriptionattribute.

ServiceInstallLocalGroupEmpty DisplayedwhenaServiceInstallelementhasanemptyLocalGroupattribute.

ServiceInstallPasswordEmpty DisplayedwhenaServiceInstallelementhasanemptyPasswordattribute.

ShortcutWorkingDirectoryEmpty DisplayedwhenaShortcutelementhasanemptyWorkingDirectoryattribute.

IniFileValueEmpty DisplayedwhenaIniFileelementhasanemptyValueattribute.

FileSearchNamesCombined DisplayedwhenaFileSearchelementhasaNameattributethatcontainsboththeshortandlongversionsofthefilename.

WebApplicationExtensionIdDeprecated DisplayedwhenaWebApplicationExtensionelementhasadeprecatedIdattribute.

WebApplicationExtensionIdEmpty DisplayedwhenaWebApplicationExtensionelementhasanemptyIdattribute.

PropertyValueEmpty DisplayedwhenaPropertyelementhasanemptyValueattribute.

ControlCheckBoxValueEmpty DisplayedwhenaControlelementhasanemptyCheckBoxValueattribute.

Page 50: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RadioGroupDeprecated DisplayedwhenadeprecatedRadioGroupelementisfound.

ProgressTextTemplateEmpty DisplayedwhenaProgresselementhasanemptyTextTemplateattribute.

RegistrySearchTypeRegistryDeprecated DisplayedwhenaRegistrySearchelementhasaTypeattributesetto'registry'.

WebFilterLoadOrderIncorrect DisplayedwhenaWebFilter/@LoadOrderattributehasavaluethatisnotmorestonglytyped.

SrcIsDeprecated Displayedwhenanelementcontainsadeprecatedsrcattribute.

RequireComponentGuid DisplayedwhenaComponentelementismissingtherequiredGuidattribute.

LongNameDeprecated DisplayedwhenaanelementhasaLongNameattribute.

RemoveFileNameRequired DisplayedwhenaRemoveFileelementhasnoNameorLongNameattribute.

DeprecatedLocalizationVariablePrefix Displayedwhenalocalizationvariablebeginswiththedeprecated'$'character.

NamespaceChanged Displayedwhenthenamespaceofanelementhaschanged.

UpgradeVersionPropertyAttributeRequired DisplayedwhenanUpgradeVersionelementismissingtherequiredPropertyattribute.

Page 51: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UpgradePropertyChild DisplayedwhenanUpgradeelementcontainsadeprecatedPropertychildelement.

RegistryElementDeprecated DisplayedwhenadeprecatedRegistryelementisfound.

PatchSequenceSupersedeTypeChanged DisplayedwhenaPatchSequence/@Supersedeattributecontainsadeprecatedintegervalue.

PatchSequenceTargetDeprecated DisplayedwhenadeprecatedPatchSequence/@Targetattributeisfound.

VerbTargetDeprecated DisplayedwhenadeprecatedVerb/@Targetattributeisfound.

ProgIdIconFormatted DisplayedwhenaProgId/@Iconattributevaluecontainsaformattedstring.

IgnoreModularizationDeprecated DisplayedwhenadeprecatedIgnoreModularizationelementisfound.

PackageCompressedIllegal DisplayedwhenaPackage/@CompressedattributeisfoundunderaModuleelement.

PackagePlatformsDeprecated DisplayedwhenaPackage/@Platformsattributeisfound.

ModuleGuidDeprecated DisplayedwhenadeprecatedModule/@Guidattributeisfound.

GuidWildcardDeprecated Displayedwhenadeprecatedguidwildcardvalueisfound.

FragmentRefIllegal DisplayedwhenaFragmentRefElementis

Page 52: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

found.FileRedundantNames Displayedwhena

File/@NamematchesaFile/@ShortName.

Page 53: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

MSITablestoWiXSchemaIntheWiXschema,itsnotalwaysentirelyobvioushowthetablesfromtheWindowsInstallerschemamaptotheWiXschema.Belowaresomehelpfulhintsonhowtofigureouttherelationshipsbetweenthetwoschemas.

Page 54: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DuplicateFileTableThisisauthoredusingaCopyFilenodenestedunderaFilenode.YouonlyneedtosettheId,DestinationFolder,andDestinationNameattributes.

Page 55: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LaunchConditionTableThisisauthoredusingaConditionnodeauthoredunderFragmentorProduct.YouonlyneedtosettheMessageattribute.

Page 56: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LockPermissionsTableThisisauthoredusingPermission.

Page 57: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

MoveFileTableThisisauthoredusingaCopyFilenodenestedunderaComponentnode.YouwillneedtosetallattributesexceptDelete.SetDeleteto'yes'inordertousethemsidbMoveFileOptionsMoveoption.

Page 58: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PublishComponentTableThePublishComponentfunctionalityisavailableinWiXbyusingaCategory.HereisasmallsampleofwhataPublishComponentrecordwouldlooklikeinMSI,theninWiXnotation.

MSI

ComponentId Qualifier Component_ AppData Feature_{11111111-2222-3333-4444-5555555555555}

1033 MyComponent RandomData

MyFeature

WiX

<ComponentId='MyComponent'Guid='87654321-4321-4321-4321-110987654321'><CategoryId='11111111-2222-3333-4444-5555555555555'AppData='RandomData'Qualifier='1033'/></Component>...<FeatureId='MyFeature'Level='1'><ComponentRefId='MyComponent'/></Feature>

Page 59: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 60: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 61: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CodePagesCodepagesmapcharactercodestoactualcharacters,orgraphemes.Codepagesarealsousedtoconvertfromoneencodingtoanother.

Page 62: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

FormoreinformationaboutcodepagesinWindowsInstaller,readCodePageHandling.

Page 63: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SettingtheCodePageusingWiXTop-levelelementslikeProduct,Module,Patch,andPatchCreationsupportaCodepageattribute.YoucansetthistoavalidWindowscodepagebyintegerlike1252,orbywebnamelikeWindows-1252.UTF-7andUTF-8arenotofficiallysupportedbecauseofuserinterfaceissues.Unicodeisnotsupported.

Tosupportauthoringasinglepackagethatcanbelocalizedintomultiplelanguages,youcansetthePackage/@SummaryCodepageorPatchInformation/@SummaryCodepageelementtoanlocalizationexpressionlike!(loc.SummaryCodepage).YouthendefinetheSummaryCodepagevalueinalocalizationfile,typicallyendingina.wxlextension.TherootWixLocalizationelementalsosupportsaCodepageattributethatisusedtoencodetherestofthepackagedatabase.

Youcanalsosetthecodepageto0.Inthiscase,WindowsInstallertreatsstringsasneutral,meaningthatyoucanonlysafelyuseASCIIcharacters-thefirst128ANSIcharacters-butthedatabasewillbesupportedacrossWindowsplatforms.SeeCreatingaDatabasewithaNeutralCodePageformoreinformation.

ForawalkthroughabouthowtoauthorabuildlocalizedpackagesusingWiXseeHowTo:MakeyourinstallerlocalizableandHowTo:Buildalocalizedversionofyourinstaller.

Page 64: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 65: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CreatinganInstallerPackageInthissection,wewillcoverthebasicsofcreatingasimplesetupthatproducesanMSIpackageusingWiXonthecommandline.

CreatingaSimpleSetupCreatingaMergeModuleIncorporatingaMergeModuleAddingaCustomAction

Alternatively,WiXcanalsobeusedonthecommandlineviaMSBuild.Formoreinformation,seeUsingWiXwithMSBuild.

Page 66: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CreatingaSimpleSetupThegoalofthistutorialistohelpyoutogetfamiliarwithWiXandthefundmentalbuildingblocksinordertobuildasimpleinstallable.msipackageusingWiX.WewillstartwiththebasicWiXcodetocreatean.msipackagethatinstallsonefile.

Page 67: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

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

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

Page 68: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'><ProductId='PUT-GUID-HERE'Name='TestPackage'Language='1033'Version='1.0.0.0'Manufacturer='MicrosoftCorporation'UpgradeCode='PUT-GUID-HERE'><PackageDescription='MyfirstWindowsInstallerpackage'Comments='ThisismyfirstattemptatcreatingaWindowsInstallerdatabase'Manufacturer='MicrosoftCorporation'InstallerVersion='200'Compressed='yes'/>

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

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

Page 69: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'><ProductId='PUT-GUID-HERE'Name='TestPackage'Language='1033'Version='1.0.0.0'Manufacturer='MicrosoftCorporation'UpgradeCode='PUT-GUID-HERE'><PackageDescription='MyfirstWindowsInstallerpackage'Comments='ThisismyfirstattemptatcreatingaWindowsInstallerdatabase'Manufacturer='MicrosoftCorporation'InstallerVersion='200'Compressed='yes'/><MediaId='1'Cabinet='product.cab'EmbedCab='yes'/><DirectoryId='TARGETDIR'Name='SourceDir'><DirectoryId='ProgramFilesFolder'Name='PFiles'><DirectoryId='MyDir'Name='TestProgram'><ComponentId='MyComponent'Guid='PUT-GUID-HERE'><FileId='readme'Name='readme.txt'DiskId='1'Source='readme.txt'/></Component></Directory></Directory></Directory><FeatureId='MyFeature'Title='My1stFeature'Level='1'><ComponentRefId='MyComponent'/></Feature></Product></Wix>

Page 70: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step4:BuildthepackageNowlet'sbuildthepackageusingthefollowinginstructions:

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

Page 71: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step5:VerifythepackageWecannowtryinstallingtheresultingpackageandlookattheresult.Notethatmsipackagesrequiresadministrativeprivilegesinordertoinstallcorrectly.IfwillfailsilentlyifyouarenotinstallingasanAdministrator.

C:\test>msiexec/iproduct.msi

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

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

Page 72: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CreatingaMergeModuleCreatingaMergeModuleisverymuchlikecreatingaWindowsInstallerpackage.

Page 73: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step1:CreatetheWiXsourcefileCreateanewtextfilecalled"module.wxs"andputthestandardskeletoninit:

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

Page 74: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step2:AuthorthecontentofthepackageTocreateaMergeModule,weaddthe<Module/>elementandaddtherequiredattributes:

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

</Module></Wix>

ReplacePUT-GUID-HEREwithaGUIDvalue.

Page 75: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step3:AddingafiletothepackageThencreateatextfilecalledreadme2.txtandupdatethesourcecodetoincludethenewfile:

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

ReplacePUT-GUID-HEREwithaGUIDvalue.

Page 76: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step4:BuildthepackageNowlet'sbuildthepackageusingthefollowinginstructions:

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

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

Page 77: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'><ProductId='PUT-GUID-HERE'Name='TestPackage'Language='1033'Version='1.0.0.0'Manufacturer='MicrosoftCorporation'><PackageDescription='MyfirstWindowsInstallerpackage'Comments='ThisismyfirstattemptatcreatingaWindowsInstallerdatabase'Manufacturer='MicrosoftCorporation'InstallerVersion='200'Compressed='yes'/><MediaId='1'Cabinet='product.cab'EmbedCab='yes'/><DirectoryId='TARGETDIR'Name='SourceDir'><DirectoryId='ProgramFilesFolder'Name='PFiles'><DirectoryId='MyDir'Name='TestProgram'><ComponentId='MyComponent'Guid='PUT-GUID-HERE'><FileId='readme'Name='readme.txt'DiskId='1'Source='readme.txt'/></Component><MergeId='MyModule'Language='1033'SourceFile='module.msm'DiskId='1'/></Directory></Directory></Directory><FeatureId='MyFeature'Title='My1stFeature'Level='1'><ComponentRefId='MyComponent'/><MergeRefId='MyModule'/></Feature></Product></Wix>

Page 78: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

NowwhenyoucompileyourWindowsInstallerpackagesourcefile,itwillincludetheinstallationlogicandfilesfromtheMergeModule.

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

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

Page 79: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UsingaCustomActionWiXprovidesasetofbuilt-incustomactionsthatcanbeusedinyourinstallerpackage.Inthisexample,wewillcreateaninstallerthatcreatesashortcuttoanURL.

Page 80: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step1:AddtheextensionnamespaceTobuildontopofthesimplesetupexample,let'sre-usethesamesourcefileandaddthefollowing:

<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'xmlns:util='http://schemas.microsoft.com/wix/UtilExtension'<ProductId='PUT-GUID-HERE'Name='TestPackage'Language='1033'Version='1.0.0.0'Manufacturer='MicrosoftCorporation'><PackageDescription='MyfirstWindowsInstallerpackage'Comments='ThisismyfirstattemptatcreatingaWindowsInstallerdatabase'Manufacturer='MicrosoftCorporation'InstallerVersion='200'Compressed='yes'/><MediaId='1'Cabinet='product.cab'EmbedCab='yes'/><DirectoryId='TARGETDIR'Name='SourceDir'><DirectoryId='ProgramFilesFolder'Name='PFiles'><DirectoryId='MyDir'Name='TestProgram'><ComponentId='MyComponent'Guid='PUT-GUID-HERE'><FileId='readme'Name='readme.txt'DiskId='1'Source='readme.txt'/></Component><MergeId='MyModule'Language='1033'SourceFile='module.msm'DiskId='1'/></Directory></Directory></Directory><FeatureId='MyFeature'Title='My1stFeature'Level='1'><ComponentRefId='MyComponent'/><MergeRefId='MyModule'/></Feature></Product></Wix>

Page 81: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step2:AuthortheelementtocreatetheshortcutAddthefollowingtothesourcefile::

<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'xmlns:util='http://schemas.microsoft.com/wix/UtilExtension<ProductId='PUT-GUID-HERE'Name='TestPackage'Language='1033'Version='1.0.0.0'Manufacturer='MicrosoftCorporation'><PackageDescription='MyfirstWindowsInstallerpackage'Comments='ThisismyfirstattemptatcreatingaWindowsInstallerdatabase'Manufacturer='MicrosoftCorporation'InstallerVersion='200'Compressed='yes'/><MediaId='1'Cabinet='product.cab'EmbedCab='yes'/><DirectoryId='TARGETDIR'Name='SourceDir'><DirectoryId='ProgramFilesFolder'Name='PFiles'><DirectoryId='MyDir'Name='TestProgram'><ComponentId='MyComponent'Guid='PUT-GUID-HERE'><FileId='readme'Name='readme.txt'DiskId='1'Source='readme.txt'/><util:InternetShortcutId='Bing'Name='Bing'Target='http://www.bing.com'/></Component><MergeId='MyModule'Language='1033'SourceFile='module.msm'DiskId='1'/></Directory></Directory></Directory><FeatureId='MyFeature'Title='My1stFeature'Level='1'><ComponentRefId='MyComponent'/><MergeRefId='MyModule'/></Feature></Product></Wix>;;;;

Page 82: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step3:BuildtheinstallerTobuildtheinstaller,youneedtopassintheextensionthatthesourcefileisreferencing:

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

Page 83: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixUIDialogLibraryWiXoffersasetofbuilt-inWindowsInstaller-baseduserinterfaceforinstallationpackages.ThissectioncoversthefollowingtopicsaboutusingtheWixUIdialoglibrary:

UsingBuilt-inWixUIDialogSetsCustomizingBuilt-inWixUIDialogSetsUsingLocalizedVersionsofWixUIWixUIDialogReference

Page 84: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UsingBuilt-inWixUIDialogSetsTheWixUIdialoglibrarycontainsthefollowingbuilt-indialogsetsthatprovideafamiliarwizard-stylesetupuserinterface.

1. WixUI_Advanced2. WixUI_FeatureTree3. WixUI_InstallDir4. WixUI_Minimal5. WixUI_Mondo

Thebuilt-inWixUIdialogsetsarealsocustomizable,fromthebitmapsshownintheUItoaddingandremovingcustomdialogs.SeeCustomizingtheWixUIDialogSetsforadditionalinformation.

Page 85: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Howtoaddabuilt-inWixUIdialogsettoaproductinstallerAssumingyouhaveanexistinginstallerthatisfunctionalbutisjustlackingauserinterface,herearethestepsyouneedtofollowtoincludeabuilt-inWixUIdialogset:

1. AddaUIRefelementtoyoursetupauthoringthathasanIdthatmatchesthenameofoneofthedialogsetsdescribedabove.Forexample:

<Product...><UIRefId="WixUI_InstallDir"/></Product>

2. Passthe-extand-culturesswitchestolight.exetoreferencetheWixUIExtension.Forexample:

light-extWixUIExtension-cultures:en-usProduct.wixobj-outProduct.msi

Note-IfyouareusingWiXinVisualStudioyoucanaddtheWixUIExtensionusingtheAddReferencedialogandthenecessarycommandlineswillautomaticallybeaddedwhenlinkingyour.msi.Todothis,usethefollowingsteps:

1. OpenyourWiXprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd

Reference...3. SelecttheWixUIExtension.dllassemblyfromthelistandclick

Add4. ClosetheAddReferencedialog

Page 86: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CustomizingBuilt-inWixUIDialogSetsThebuilt-inWixUIdialogsetscanbecustomizedinthefollowingways:

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

Page 87: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SpecifyingalicensefileWixUIExtension.dllincludesadefault,placeholderlicenseagreement.Tospecifyyourproduct'slicense,overridethedefaultbyspecifyingaWiXvariablenamedWixUILicenseRtfwiththevalueofanRTFfilethatcontainsyourlicensetext.YoucandefinethevariableinyourWiXauthoring:

<WixVariableId="WixUILicenseRtf"Value="bobpl.rtf"/>

Alternatively,youcandefinethevariableusingthe-dswitchwhenrunninglight:

light-extWixUIExtension-cultures:en-us-dWixUILicenseRtf=bobpl.rtfProduct.wixobj-outProduct.msi

Thefileyouspecifymustbeinadirectorylightislookinginforfiles.Usethe-bswitchtoadddirectories.

Thereisaknownissuewiththerichtextcontrolusedtodisplaythetextofthelicensefilethatcancausethetexttoappearblankuntiltheuserscrollsdowninthecontrol.ThisistypicallycausedbycomplexRTFcontent(suchastheRTFgeneratedwhensavinganRTFfileinMicrosoftWord).IfyourunintothisbehaviorinyoursetupUI,oneofthefollowingworkaroundswillfixitinmostcases:

OpenyourRTFfileinWordPadandsaveitfromthereinordertoremovethecomplexRTFcontentfromthefile.Aftersavingit,rebuildyourMSI.UseadialogsetotherthantheWixUI_Minimalset.Thisproblemtypicallyonlyoccurswhenthelicenseagreementscreenisthefirstonedisplayedduringsetup,whichonlyhappenswiththeWixUI_Minimaldialogset.

Page 88: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ReplacingthedefaultbitmapsTheWixUIdialoglibraryincludesdefaultbitmapsforthebackgroundofthewelcomeandcompletiondialogsandthetopbanneroftheotherdialogs.Youcanreplacethosebitmapswithyourownforproductbrandingpurposes.Toreplacedefaultbitmaps,specifyWiXvariablevalueswiththefilenamesofyourbitmaps,justlikewhenreplacingthedefaultlicensetext.

Variablename Description DimensionsWixUIBannerBmp Topbanner 493×58WixUIDialogBmp Backgroundbitmapusedonthe

welcomeandcompletiondialogs493×312

WixUIExclamationIco ExclamationiconontheWaitForCostingDlg

32×32

WixUIInfoIco Informationicononthecancelanderrordialogs

32×32

WixUINewIco ButtonglyphontheBrowseDlg 16×16WixUIUpIco ButtonglyphontheBrowseDlg 16×16

Page 89: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CustomizingtheExitDlgTheExitDlgisthedialoginthebuilt-inWixUIdialogsetsthatisdisplayedattheendofasuccessfulsetup.TheExitDlgsupportsshowingbothoptional,customizabletextandanoptionalcheckbox.

SeeHowTo:RuntheInstalledApplicationAfterSetupforanexampleofhowtoshowacheckboxontheExitDlg.

ToshowoptionaltextontheExitDlg,settheWIXUI_EXITDIALOGOPTIONALTEXTpropertytothestringyouwanttoshow.Forexample:

<PropertyId="WIXUI_EXITDIALOGOPTIONALTEXT"Value="Thankyouforinstallingthisproduct."/>

Theoptionaltexthasthefollowingbehavior:

Theoptionaltextisdisplayedasliteraltext,sopropertiessurroundedbysquarebracketssuchas[ProductName]willnotberesolved.Ifyouneedtoincludepropertyvaluesintheoptionaltext,youmustscheduleacustomactiontosettheproperty.Forexample:

<CustomActionId="CA_Set_WIXUI_EXITDIALOGOPTIONALTEXT"Property="WIXUI_EXITDIALOGOPTIONALTEXT"Value="Thankyouforinstalling[ProductName]."/><InstallUISequence><CustomAction="CA_Set_WIXUI_EXITDIALOGOPTIONALTEXT"After="FindRelatedProducts">NOTInstalled</Custom></InstallUISequence>

Longstringswillwrapacrossmultiplelines.Theoptionaltextisonlyshownduringinitialinstallation,notduringmaintenancemodeoruninstall.

Page 90: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Forexample,tooverridethedescriptivetextontheWelcomeDlg,youwouldaddthefollowingtoa.wxlfileinyourproject:

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

Page 91: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ChangingtheUIsequenceofabuilt-indialogsetEachoftheWixUIdialogsetscontainsapre-definedsetofdialogsthatwillbedisplayedinaspecificorder.Informationaboutthedialogsincludedineachbuilt-inWixUIdialogsetcanbefoundintheWixUIDialogLibraryReference.

Itispossibletochangethedefaultsequenceofabuilt-indialogset.Todoso,youmustcopythecontentsofthe<Fragment/>thatincludesthedefinitionofthedialogsetthatyouwanttocustomizefromtheWiXsourcecodetoyourproject.Then,youmustmodifythe<Publish/>elementstodefinetheexactdialogsequencethatyouwantinyourinstallationexperience.

Forexample,toremovetheLicenseAgreementDlgfromtheWixUI_InstallDirdialogset,youwoulddothefollowing:

1. Copythefullcontentsofthe<Fragment/>definedinWixUI_InstallDir.wxsintheWiXsourcecodetoyourproject.

2. Removethe<Publish/>elementsthatareusedtoaddBackandNexteventsfortheLicenseAgreementDlg.

3. Changethe<Publish/>elementthatisusedtoaddaNexteventtotheWelcomeDlgtogototheInstallDirDlginsteadoftheLicenseAgreementDlg.Forexample:

<PublishDialog="WelcomeDlg"Control="Next"Event="NewDialog"Value="

4. Changethe<Publish/>elementthatisusedtoaddaBackeventtotheInstallDirDlgtogototheWelcomeDlginsteadoftheLicenseAgreementDlg.Forexample:

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

Page 92: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Insertingacustomdialogintoabuilt-indialogsetYoucanaddcustomdialogstotheUIsequenceinabuilt-inWixUIdialogset.Todoso,youmustdefinea<UI/>elementforyournewdialog.Then,youmustcopythecontentsofthe<Fragment/>thatincludesthedefinitionofthedialogsetthatyouwanttocustomizefromtheWiXsourcecodetoyourproject.Finally,youmustmodifythe<Publish/>elementstodefinetheexactdialogsequencethatyouwantinyourinstallationexperience.

Forexample,toinsertadialognamedSpecialDlgbetweentheWelcomeDlgandtheLicenseAgreementDlgintheWixUI_InstallDirdialogset,youwoulddothefollowing:

1. DefinetheappearanceoftheSpecialDlgina<UI/>elementinyourproject.

2. Copythefullcontentsofthe<Fragment/>definedinWixUI_InstallDir.wxsintheWiXsourcecodetoyourproject.

3. Add<Publish/>elementsthatdefinetheBackandNexteventsfortheSpecialDlg.Forexample:

<PublishDialog="SpecialDlg"Control="Back"Event="NewDialog"Value="WelcomeDlg">1</Publish><PublishDialog="SpecialDlg"Control="Next"Event="NewDialog"Value="LicenseAgreementDlg">1</Publish>

4. Changethe<Publish/>elementthatisusedtoaddaNexteventtotheWelcomeDlgtogototheSpecialDlginsteadoftheLicenseAgreementDlg.Forexample:

<PublishDialog="WelcomeDlg"Control="Next"Event="NewDialog"Value="

5. Changethe<Publish/>elementthatisusedtoaddaBackeventtotheLicenseAgreementDlgtogototheSpecialDlginsteadoftheWelcomeDlg.Forexample:

Page 93: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 94: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 95: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CreatingmultiplesetupswithdifferentsetupUIlanguagesYoucancreateaseriesof.msifilesthateachusedifferentsetupUIlanguagesbycallingcandleonceandthencallinglightmultipletimeswithdifferentculturevalues.Forexample:

candleProduct.wxslight-extWixUIExtension-cultures:en-usProduct.wixobj-outProduct_en-us.msilight-extWixUIExtension-cultures:fr-frProduct.wixobj-outProduct_fr-fr.msilight-extWixUIExtension-cultures:de-deProduct.wixobj-outProduct_de-de.msilight-extWixUIExtension-cultures:it-itProduct.wixobj-outProduct_it-it.msilight-extWixUIExtension-cultures:ja-jpProduct.wixobj-outProduct_ja-jp.msilight-extWixUIExtension-cultures:pl-plProduct.wixobj-outProduct_pl-pl.msilight-extWixUIExtension-cultures:ru-ruProduct.wixobj-outProduct_ru-ru.msilight-extWixUIExtension-cultures:es-esProduct.wixobj-outProduct_es-es.msi

Page 96: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UsingtranslatederrorandprogresstextBydefault,WixUIwillnotincludeanytranslatedErrororProgressTextelements.YoucanincludethembyreferencingtheWixUI_ErrorProgressTextUIelement:

<UIRefId="WixUI_ErrorProgressText"/>

Page 97: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixUIDialogLibraryReferenceThissectionexplainsWixUIdialogsanddialogsetsthatareincludedwiththeWiXtoolset.

WixUI_AdvancedDialogSetWixUI_FeatureTreeDialogSetWixUI_InstallDirDialogSetWixUI_MinimalDialogSetWixUI_MondoDialogSetWixUIDialogs

Page 98: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixUI_AdvancedDialogSetTheWixUI_Advanceddialogsetprovidestheoptionofaone-clickinstalllikeWixUI_Minimal,butitalsoallowsdirectoryandfeatureselectionlikeotherdialogsetsiftheuserchoosestoconfigureadvancedoptions.

ThisdialogsetisdefinedinthefileWixUI_Advanced.wxsintheWixUIExtensionintheWiXsourcecode.

Page 99: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UsingWixUI_AdvancedTouseWixUI_Advanced,youmustincludethefollowinginformationinyoursetupauthoring:

1. AdirectorywithanIdnamedAPPLICATIONFOLDER.Thisdirectorywillbethedefaultinstallationlocationfortheproduct.Forexample:

<DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"Name="PFiles"><DirectoryId="APPLICATIONFOLDER"Name="MyApplicationFolder">...</Directory></Directory></Directory>

2. ApropertywithanIdnamedApplicationFolderNameandavaluesettoastringthatrepresentsthedefaultfoldername.Thispropertyisusedtoformthedefaultinstallationlocation.

Foraper-machineinstallation,thedefaultinstallationlocationwillbe[ProgramFilesFolder][ApplicationFolderName]andtheuserwillbeabletochangeitinthesetupUI.Foraper-userinstallation,thedefaultinstallationlocationwillbe[LocalAppDataFolder]Apps\[ApplicationFolderName]andtheuserwillnotbeabletochangeitinthesetupUI.

Forexample:

<PropertyId="ApplicationFolderName"Value="MyApplicationFolder"/>

3. ApropertywithanIdnamedWixAppFolderandavaluesettoWixPerMachineFolderorWixPerUserFolder.Thispropertysetsthedefaultselectedvalueoftheradiobuttonontheinstallscope

Page 100: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

dialoginthesetupUIwheretheusercanchoosewhethertoinstalltheproductper-machineorper-user.Forexample:

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

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

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

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

Page 101: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixUI_AdvancedDialogsWixUI_Advancedincludesthefollowingdialogs:

AdvancedWelcomeEulaDlgBrowseDlgDiskCostDlgFeaturesDlgInstallDirDlgInstallScopeDlgInvalidDirDlg

Inaddition,WixUI_AdvancedincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:

CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg

SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.

Page 102: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixUI_FeatureTreeDialogSetWixUI_FeatureTreeisasimplerversionofWixUI_Mondothatomitsthesetuptypedialog.Instead,thewizardproceedsdirectlyfromthelicenseagreementdialogtothefeaturecustomizationdialog.WixUI_FeatureTreeismoreappropriatethanWixUI_Mondowhenyourproductinstallsallfeaturesbydefault.

ThisdialogsetisdefinedinthefileWixUI_FeatureTree.wxsintheWixUIExtensionintheWiXsourcecode.

Page 103: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixUI_FeatureTreeDialogsWixUI_FeatureTreeincludesthefollowingdialogs:

BrowseDlgCustomizeDlgDiskCostDlgLicenseAgreementDlgWelcomeDlg

Inaddition,WixUI_FeatureTreeincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:

CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg

SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.

Page 104: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixUI_InstallDirDialogSetWixUI_InstallDirdoesnotallowtheusertochoosewhatfeaturestoinstall,butitaddsadialogtolettheuserchooseadirectorywheretheproductwillbeinstalled.

ThisdialogsetisdefinedinthefileWixUI_InstallDir.wxsintheWixUIExtensionintheWiXsourcecode.

Page 105: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UsingWixUI_InstallDirTouseWixUI_InstallDir,youmustsetapropertynamedWIXUI_INSTALLDIRwithavalueoftheIDofthedirectoryyouwanttheusertobeabletospecifythelocationof.ThedirectoryIDmustbealluppercasecharactersbecauseitmustbepassedfromtheUItotheexecutesequencetotakeeffect.Forexample:

<DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"Name="PFiles"><DirectoryId="TESTFILEPRODUCTDIR"Name="TestFile">...</Directory></Directory></Directory>...<PropertyId="WIXUI_INSTALLDIR"Value="TESTFILEPRODUCTDIR"/><UIRefId="WixUI_InstallDir"/>

Page 106: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixUI_InstallDirDialogsWixUI_InstallDirincludesthefollowingdialogs:

BrowseDlgDiskCostDlgInstallDirDlgInvalidDirDlgLicenseAgreementDlgWelcomeDlg

Inaddition,WixUI_InstallDirincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:

CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg

SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.

Page 107: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixUI_MinimalDialogSetWixUI_Minimalisthesimplestofthebuilt-inWixUIdialogsets.Itssoledialogcombinesthewelcomeandlicenseagreementdialogsandomitsthefeaturecustomizationdialog.WixUI_Minimalisappropriatewhenyourproducthasnooptionalfeaturesanddoesnotsupportchangingtheinstallationdirectory.

ThisdialogsetisdefinedinthefileWixUI_Minimal.wxsintheWixUIExtensionintheWiXsourcecode.

Page 108: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixUI_MinimalDialogsWixUI_Minimalincludesthefollowingdialog:

WelcomeEulaDlg

Inaddition,WixUI_MinimalincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:

CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg

SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.

Page 109: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixUI_MondoDialogSetWixUI_Mondoincludesasetdialogsthatallowgranularinstallationcustomizationoptions.WixUI_Mondoisappropriatewhensomeproductfeaturesarenotinstalledbydefaultandthereisameaningfuldifferencebetweentypicalandcompleteinstalls.

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

ThisdialogsetisdefinedinthefileWixUI_Mondo.wxsintheWixUIExtensionintheWiXsourcecode.

Page 110: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixUI_MondoDialogsWixUI_Mondoincludesthefollowingdialogs:

BrowseDlgCustomizeDlgDiskCostDlgLicenseAgreementDlgSetupTypeDlgWelcomeDlg

Inaddition,WixUI_MondoincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:

CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg

SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.

Page 111: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 112: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 113: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AdvancedWelcomeEulaDlg,thisdialogdoesnotallowtheusertostartadefaultinstallation.

MaintenanceTypeDlg Adialogthatincludesbuttonsthatallowtheusertochangewhichfeaturesareinstalled,repairtheproductorremovetheproduct.Itonlyappearswhentheuserrunssetupafteraproducthasbeeninstalled.

MaintenanceWelcomeDlg Anintroductorydialogthatappearswhenrunningsetupaftertheproducthasbeeninstalled.

MsiRMFilesInUse AdialogthatissimilartotheFilesInUsedialog,butthatinteractswithRestartManager.Itallowstheusertoattempttoautomaticallycloseapplicationsorignorethepromptandresultinthesetuprequiringarebootafteritcompletes.

OutOfDiskDlg Adialogthatinformstheuserthattheyhaveinsufficientdiskspaceontheselecteddriveandadvisesthemtofreeupadditionaldiskspaceorreducethenumberoffeaturestobeinstalledtothedrive.

OutOfRbDiskDlg AdialogthatissimilartotheOutOfDiskDlg,butalsoallowstheusertodisableWindowsInstallerrollbackfunctionalityinordertoconservediskspacerequiredbysetup.

PrepareDlg Asimpleprogressdialogthatappearsduringsetupinitializationbeforethefirstinteractivedialogappears.

ProgressDlg Adialogthatappearsduringinstallationthatdisplaysaprogressbarandmessagesaboutactionsarebeingperformed.

Page 114: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ResumeDlg Anintroductorydialogthatappearswhenresumingasuspendedsetup.

SetupTypeDlg AdialogthatallowstheusertochooseTypical,CustomorCompleteinstallationconfigurations.

UserExit AdialogthatthatissimilartotheFatalErrordialog.Itdisplaysasummarydialogiftheuserchoosestocancelsetup.

VerifyReadyDlg Adialogthatappearsimmediatelybeforestartinginstallation.Itaskstheuserforfinalconfirmationbeforestartingtomakechangestothesystem.

WaitForCostingDlg AdialogthatappearsiftheuseradvancestoofarinthesetupwizardbeforeWindowsInstallerhasfinishedcalculatingdiskcostrequirements.

WelcomeDlg Anintroductorydialogthatappearswhenrunningsetupforaproductthathasnotyetbeeninstalled.

WelcomeEulaDlg Adialogthatdisplaysanenduserlicenseagreementandallowstheusertostartinstallationafteracceptingtheagreement.ItisonlyusedbytheWixUI_Minimaldialogsetandisintendedforsimplesetupprogramsthatdonotofferanyuserconfigurableoptions.

Page 115: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

ForWiXprojecttypes,seeWiXProjectTypes.

ForWiXitemtemplates,seeWiXItemtemplates.

FortheWiXpropertypages,seeWiXProjectpropertypages.

ForhintsonhowtoreadthedefaultWiXprojecttemplate,seeWiXProjectTemplate.

YoucancreateandbuildWindowsInstallerpackagesusingWiXwithintheVisualStudioIDE.Inthissection,wewillcoverthebasicsofcreatingasimplesetupusingVisualStudioandWiX.

CreatingasimplesetupUsingprojectreferencesandvariables

Alternatively,youmayalsouseWiXonthecommandlinebycallingthetoolsdirectlyorusingMSBuild.SeeCreatingInstallationPackagesandUsingWiXwithMSBuild.

Page 116: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ProjectTemplatesTheWiXVisualStudiopackageprovidesthefollowingVisualStudioprojecttemplates:

WiXProject-usedtocreateanewWindowsInstallerpackage(.msi)file.EachnewWiXprojectincludesa.wxsfilethatconsistsofa<Product>elementthatcontainsaskeletonwiththeWiXauthoringrequiredtocreateafullyfunctionalWindowsInstallerpackage.The<Package>elementincludes<Package>,<Media>,<Directory>,<Component>and<Feature>elements.WiXLibraryProject-usedtocreateanewWiXlibrary(.wixlib)file.A.wixlibfileisalibraryofsetupfunctionalitythatcanbeeasilysharedacrossdifferentWiX-basedpackagesbyincludingitwhenlinkingthesetuppackage.EachnewWiXlibraryprojectincludesa.wxsfilethatconsistsofanempty<Fragment>elementthatcanbepopulatedwithWiXauthoringthatcanbesharedbymultiplepackages.WiXMergeModuleProject-usedtocreateanewWindowsInstallermergemodule(.msm)file.AmergemodulecontainsasetofWindowsInstallerresourcesthatcanbesharedbymultipleWindowsInstallerinstallationpackagesbymergingthecontentsofthemoduleintothe.msipackage.EachnewWiXmergemoduleprojectincludesa.wxsfilethatconsistsofa<Module>elementthatcontainsaskeletonwiththeWiXauthoringrequiredtocreateafullyfunctionalmergemodule.The<Module>elementincludes<Package>,<Directory>and<Component>elements.

Tocreateanewproject:

1. ClickonFile|New|ProjectontheVisualStudiomenu.2. NavigatetotheWindowsInstallerXMLnode.3. SelecttheprojecttemplateandpressOK.

Page 117: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ItemTemplatesWiXVisualStudiopackageprovidesthefollowingitemtemplatesforWiXprojects:

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

FormoreinformationaboutWiXfiletypes,pleasevisittheFileListsection.

Toaddanewitem:

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

Page 118: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ProjectPropertyPagesToaccesstheWiXprojectpropertypages,right-clickonaWiXprojectintheVisualStudioSolutionExplorerandchooseProperties.WiXprojectscontainthefollowingpropertypages:

InstallerBuildBuildEventsPathsToolSettings

Page 119: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstallerPropertyPageTheInstallertabcontainsthefollowingconfigurableoptions:

Outputname-atextboxthatcontainsthenameoftheresultant.msi,.msmor.wixlibfilethatwillbecreatedbythebuildprocess.Outputtype-adrop-downlistthatallowsyoutoselecttheoutputtype(a.msi,.msmor.wixlibfile).

Page 120: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

BuildPropertyPageTheBuildtabcontainsthefollowingconfigurableoptions:

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

Page 121: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

BuildEventsPropertyPageTheBuildEventstabcontainsthefollowingconfigurableoptions:

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

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

Page 122: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PathsPropertyPageThePathstabcontainsthefollowingconfigurableoptions:

TheReferencePathssectionallowsyoutodefinepathsyouwanttousewhenlocatingreferences(WiXextensionsandWiXlibraries).TheIncludePathssectionallowsyoutodefinepathsyouwanttousewhenlocatingWiXIncludefiles.

Page 123: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ToolSettingsPropertyPageTheToolSettingstabcontainsthefollowingconfigurableoptions:

TheICEvalidationsectionallowsyoutotoggleICEvalidationsuppressionorspecifywhichICEvalidationtosuppress.TheAdditionalparameterssectionallowsyoutospecifycommandlineargumentstopassdirectlytotheWiXtoolsatbuildtime.

Page 124: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ReadingtheDefaultWiXProjectTemplateOnceaWiXprojectiscreated,itcreatesfilecontainsthebeginningofthesetupcodefortheproject.EverythingneededtocreateanMSIcanbeaddedtothisfile.

Note:IfyouarenotfamiliarwithWindowsInstallersetuppackages,youarestronglyencouragedtoreviewtheMSDNdocumentationabouttheInstallationPackagebeforecontinuing.ItwillprovidealotofvaluablecontextaswedigintothedetailsofaWindowsInstallersetuppackage.

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

Page 125: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

ThedefaulttemplatethatisgeneratedwhenyoucreateanewWiXprojectwillgeneratesabuildwarning.IntheOutputwindow,youmayseethiswarning:

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

BecausetheWiXprojectdoesnotyetreferenceanapplication,thereisnothingtoinstall.Onceafileisaddedtotheinstaller,thiswarningwillgoaway.

Page 126: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CreatingaSimpleSetupInthistutorial,wewillcreateaC#WindowsFormApplicationandthenuseWiXtocreateaninstallerfortheapplication.

Page 127: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

WindowsFormsApplication.3. Nameyourapplication"MyApplication"andpressOK.

Page 128: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step2:Createtheinstallerfortheapplication1. ClickFile,thenclickNew,thenclickProject.2. ChoosetheWindowsInstallerXMLnodeintheProjecttypestree,

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

chooseAddReference....5. NavigatetotheProjectstab,clickontheMyApplicationproject,

andclicktheAddbutton,andthenpressOK.6. BuildtheWiXproject.

That'sit!Nowyouhaveaworkinginstallerthatinstallsanduninstallstheapplication.

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

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

Deletethislineandreplaceitwiththefollowinglinesofcode:

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

Ifyoutypethatcodeintotheeditor(insteadofcopyingandpastingfromthisexample)youwillnoticethatIntelliSensepicksupthevalidelementsandattributes.IntelliSensewithWiXinVisualStudiocansaveyousignificantamountsoftypingandtimewhensearchingforthenameoftheelementsorattributesasyoubecomemorecomfortablewiththeWiXlanguage.

Page 129: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

TheDiskIdattributeinstructstheWiXtoolsettoaddthisfiletotheMediaelementwithmatchingIdattribute.Inthisexample,theMyApplicationexecutableisaddedtotheMySetup.cabcabinetandthatcabinetisembeddedinthesetuppackage.TheKeyPathattributeinstructstheWiXtoolsettousethisfileasthekeypathforthecomponentthatcontainsthefile.

Page 130: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ProjectReferencesandVariablesTheWiXprojectsupportsaddingprojectreferencestootherprojectssuchasVBandC#.Thisensuresthatbuildorderdependenciesaredefinedcorrectlywithinthesolution.Inaddition,itgeneratesasetofWiXpreprocessorvariablesthatcanbereferencedinWiXsourcefilesandpreprocessordefinitionswhicharepassedtothecompileratbuildtime.

ToaddaprojectreferencetoaWiXproject:

1. Right-clickontheReferencesnodeoftheprojectintheSolutionExplorerandchooseAddReference....

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

pressOKtodismissthedialog.

Page 131: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SupportedProjectReferenceVariablesOnceaprojectreferenceisadded,alistofprojectvariablesbecomesavaliabletobereferencedintheWiXsourcecode.Projectreferencevariablesareusefulwhenyoudonotwanttohavehard-codedvalues.Forexample,the$(var.MyProject.ProjectName)variablewillquerythecorrectprojectnameatbuildtimeevenifIchangethenameofthereferencedprojectafterthereferenceisadded.

ThefollowingdemonstrateshowtouseprojectreferencevariablesinWiXsourcecode:

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

TheWiXprojectsupportsthefollowingprojectreferencevariables:

Variablename Exampleusage Examplevalue

var.ProjectName.Configuration $(var.MyProject.Configuration) DebugorRelease

var.ProjectName.FullConfiguration $(var.MyProject.FullConfiguration) Debug|AnyCPU

var.ProjectName.Platform $(var.MyProject.Platform) AnyCPU,Win32,x64oria64

var.ProjectName.ProjectDir $(var.MyProject.ProjectDir) C:\users\myusername\Documents\VisualStudio2005\Projects\MyProject\

var.ProjectName.ProjectExt $(var.MyProject.ProjectExt) .csproj

var.ProjectName.ProjectFileName $(var.MyProject.ProjectFileName) MyProject.csproj

var.ProjectName.ProjectName $(var.MyProject.ProjectName) MyProject

var.ProjectName.ProjectPath $(var.MyProject.ProjectPath) C:\users\myusername\Documents\VisualStudio

Page 132: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

2005\Projects\MyProject\MyApp.csproj

var.ProjectName.TargetDir $(var.MyProject.TargetDir) C:\users\myusername\Documents\VisualStudio2005\Projects\MyProject\obj\Debug\

var.ProjectName.TargetExt $(var.MyProject.TargetExt) .exe

var.ProjectName.TargetFileName $(var.MyProject.TargetFileName) MyProject.exe

var.ProjectName.TargetName $(var.MyProject.TargetName) MyProject

var.ProjectName.TargetPath $(var.MyProject.TargetPath) C:\users\myusername\Documents\VisualStudio2005\Projects\MyProject\obj\Debug\MyProject.exe

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

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

var.SolutionDir $(var.SolutionDir) C:\users\myusername\Documents\VisualStudio2005\Projects\MySolution\

var.SolutionExt $(var.SolutionExt) .sln

var.SolutionFileName $(var.SolutionFileName) MySolution.sln

var.SolutionName $(var.SolutionName) MySolution

var.SolutionPath $(var.SolutionPath) C:\users\myusername\Documents\VisualStudio2005\Projects\MySolution\MySolution.sln

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

Page 133: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UsingWiXWithMSBuildWiXincludesacompletebuildprocess(.targetsfile)forusewithMSBuild-basedbuildsystems.Formoreinformationseethefollowingtopics.

Creatinga.wixprojfileIntegratingWiXProjectsIntoDailyBuildsBuildingWiXProjectsInTeamFoundationBuildWiXMSBuildTaskReferenceWiXMSBuildTargetReference

Page 134: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Creatinga.wixprojFileInordertobuildWiXusingMSBuild,a.wixprojfilemustbecreated.Theeasiestwaytocreateanew.wixprojforyourinstalleristoWiXinVisualStudiobecauseitautomaticallygeneratesstandardmsbuildprojectfilesthatcanbebuiltonthecommandlinebysimplytyping:

msbuild<projectfile>.wixproj

IfyoudonothaveVisualStudioavailable,a.wixprojfilecanbecreatedusinganytexteditor.Thefollowingisasample.wixprojfilethatbuildsaninstallerconsistingofasingleproduct.wxsfile.Ifyouwanttocopyandpastethisexample,remembertochangethe<ProjectGuid>valuetomatchyourown.

<ProjectDefaultTargets="Build"xmlns="http://schemas.microsoft.com/developer/msbuild/2003"><PropertyGroup><ConfigurationCondition="'$(Configuration)'==''">Debug</Configuration><PlatformCondition="'$(Platform)'==''">x86</Platform><ProductVersion>3.0</ProductVersion><ProjectGuid>{c523055d-a9d0-4318-ae85-ec934d33204b}</ProjectGuid><SchemaVersion>2.0</SchemaVersion><OutputName>WixProject1</OutputName><OutputType>Package</OutputType><WixTargetsPathCondition="'$(WixTargetsPath)'==''">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.5\Wix.targets</PropertyGroup><PropertyGroupCondition="'$(Configuration)|$(Platform)'=='Debug|x86'"><OutputPath>bin\$(Configuration)\</OutputPath><IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath><DefineConstants>Debug</DefineConstants></PropertyGroup><PropertyGroupCondition="'$(Configuration)|$(Platform)'=='Release|x86'"><OutputPath>bin\$(Configuration)\</OutputPath><IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath></PropertyGroup><ItemGroup><CompileInclude="Product.wxs"/></ItemGroup><ImportProject="$(WixTargetsPath)"/></Project>

Additional.wxsfilescanbeaddedusingadditional<Compile>elementswithinanItemGroup.Localizationfiles(.wxl)shouldbeaddedusingthe<EmbeddedResource>elementwithinanItemGroup.Includefiles(.wxi)

Page 135: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

shouldbeaddedusingthe<Content>elementwithinanItemGroup.

Page 136: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

IntegratingWiXProjectsIntoDailyBuildsOneofthemostcommonreasonsforusingMSBuildwithWiXprojectfilesistointegratethebuildofaninstallerintoanexistingdailybuildprocess.ThisisoftencoupledwithaneedtobuildWiXprojectswithouthavingtopre-installanyWiXtoolsonthedailybuildmachine.WiXprojectsandtheWiXtoolstobuildthemcanbeaddedtomostdailybuildprocessesthatsupportMSBuildusingafewsimplesteps.

Page 137: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step1:CheckintheWiXToolsToavoidhavingtoinstallWiXonbuildmachinesyoucancheckallthetoolsnecessarytobuildWiXprojectsintoyoursourcecodecontrolsystem.Here'show:

1. InstallWiXonadevelopermachineusingtheWiXinstallerthat'sappropriateforthemachine'sarchitecture(x86orx64).

2. CreateadirectoryinyoursourcecodecontrolsystemtoholdtheWiXtools.It'scommontocreateanumberedsubdirectorymatchingtheversionofWiXthatyou'recheckingin.

3. Copythecontentsofc:\ProgramFiles\WindowsInstallerXMLv3\binintothedirectorycreatedinstep2.

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

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

6. Addandcheckinthefilesfromsteps3through5.

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

Page 138: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

<PropertyGroup><WixToolPath>$(SourceCodeControlRoot)\wix\3.5.1623.0\</WixToolPath><WixTargetsPath>$(WixToolPath)Wix.targets</WixTargetsPath><WixTasksPath>$(WixToolPath)wixtasks.dll</WixTasksPath></PropertyGroup>

TheWixToolPathmustbesettopointtothelocationoftheWiXtoolsdirectorycreatedinStep1.Themethodusedtoreferencethelocationwillvarydependingonyourbuildsystem,butcommonchoicesareanMSBuildpropertythatissetviaanenvironmentvariable(suchas$(BinariesRoot)inaTeamFoundationServerbuild)oracustompropertypassedinonthecommand-line.

Youcanalsousearelativepathtothedirectory(suchas..\..\tools\),butnotethattheWixTargetsPathpropertyvaluemustberelativetothe.wixprojprojectfilethatusesit.TheWixTasksPathpropertyisusedinsidewix.targetstoloadWixTasks.dll;itsvalue,ifarelativepath,mustberelativetothewix.targetsfile.Thosetwofilesusuallylivetogether,sothevaluewouldbeWixTasks.dllwithnoextrapathinformation.

Page 139: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

BuildingWiXProjectsInTeamFoundationBuildOnceyouhavecreatedaWiXprojectfile,youneedtoperformsomeadditionalstepsinordertosuccessfullybuildtheWiXprojectinTeamFoundationBuild.Withouttheseadditionalsteps,theWiXprojectwillbeignoredbydefaultbyTeamFoundationBuildeventhoughitisanMSBuild-compatibleproject.

Page 140: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step1:UpdatetheSolutionBuildConfigurationBydefault,WiXprojectswillnotbebuiltwhenbuildingthe'AnyCPU'platformbecauseWindowsInstallerpackagesareCPU-specific.Asaresult,youneedtousethefollowingstepstoupdatethesolutionbuildconfigurationtoincludeyourWiXprojectanditsdependenciesaspartofaTeamFoundationBuild.

1. Inthesolution,openConfigurationManager(Build|ConfigurationManager).

2. Setthe'Debug'configurationastheactiveconfiguration.3. Selectthe'x86'platformthatyouplantobuildfromthedrop-down

list.4. EnsurethattheWiXprojectischeckedinthe'Build'column.5. EnsurethatanyprojectreferencesthattheWiXprojectusesarealso

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

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

platform.9. CloseConfigurationManagerandsavethesolution.

Page 141: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

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

IfyouhaveanexistingBuildDefinition,youneedtousethefollowingstepstomodifyitsoitwillbuildWiXprojectsalongwiththeotherprojectsinyoursolution.

1. Right-clickontheBuildDefinitionandselectViewConfigurationFolder.

2. CheckoutandopenthefilenamedTFSBuild.proj.3. Addthefollowingbuildconfigurationstothe<ConfigurationToBuild>

sectioniftheydonotalreadyexistthere,orupdatethemiftheydoalreadyexist:

<ConfigurationToBuildInclude="Debug|MixedPlatforms"><FlavorToBuild>Debug</FlavorToBuild><PlatformToBuild>MixedPlatforms</PlatformToBuild></ConfigurationToBuild><ConfigurationToBuildInclude="Release|MixedPlatforms"><FlavorToBuild>Release</FlavorToBuild><PlatformToBuild>MixedPlatforms</PlatformToBuild></ConfigurationToBuild>

4. Close,saveandcheckinthechangestoTFSBuild.proj.

Aftermakingtheabovechangesandqueuingthebuild,youwillseefoldersnamed'Debug'and'Release'inthebuildoutput.Eachofthesefolderswillcontainasub-foldernamed'en-us'(oranotherculture

Page 142: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

dependingonthesettingsintheWiXproject)thatcontainsthebuiltWindowsInstallerpackage.

Page 143: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WiXMSBuildTaskReferenceThissectionexplainsMSBuildtasksthatareincludedwiththeWiXtoolset.

CandleTaskHeatDirectoryTaskHeatFileTaskHeatProjectTaskLightTaskLitTask

Page 144: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CandleTaskTheCandletaskwrapscandle.exe,theWiXcompiler.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.Tocontrolthesesettingsinyour.wixprojfile,youcancreateaPropertyGroupandspecifythesettingsthatyouwanttouseforyourbuildprocess.ThefollowingisasamplePropertyGroupthatcontainssettingsthatwillbeusedbytheCandletask:

<PropertyGroup><CompilerTreatWarningsAsErrors>False</CompilerTreatWarningsAsErrors><CompilerVerboseOutput>True</CompilerVerboseOutput><DefineConstants>Variable1=value1;Variable2=value2</DefineConstants><InstallerPlatform>x86</InstallerPlatform><SuppressSpecificWarnings>1111</SuppressSpecificWarnings><TreatSpecificWarningsAsErrors>2222</TreatSpecificWarningsAsErrors></PropertyGroup>

ThefollowingtabledescribesthecommonWiXMSBuildparametersthatareapplicabletotheCandletask.

Parameter DescriptionSuppressAllWarnings Optionalbooleanparameter.

Specifiesthatallwarningsshouldbesuppressed.Thisisequivalenttothe-swswitch.

SuppressSchemaValidation Optionalbooleanparameter.

Specifiesthatschemavalidationofdocumentsshouldbesuppressed.Thisisequivalenttothe-ssswitch.

SuppressSpecificWarnings Optionalstringparameter.

Specifiesthatcertainwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switch.

TreatSpecificWarningsAsErrors Optionalstringparameter.

Page 145: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switch.

TreatWarningsAsErrors Optionalbooleanparameter.

Specifiesthatallwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitch.

VerboseOutput Optionalbooleanparameter.

Specifiesthatthetoolshouldprovideverboseoutput.Thisisequivalenttothe-vswitch.

ThefollowingtabledescribestheparametersthatarespecifictotheCandletask.

Parameter DescriptionCompilerAdditionalOptions Optionalstringparameter.

Specifiesadditionalcommandlineparameterstoappendwhencallingcandle.exe.

CompilerSuppressAllWarnings Optionalbooleanparameter.

Specifiesthatallcompilerwarningsshouldbesuppressed.Thisisequivalenttothe-swswitchincandle.exe.

CompilerSuppressSchemaValidation Optionalbooleanparameter.

Specifiesthatthecompilershouldsuppressschema

Page 146: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

validationofdocuments.Thisisequivalenttothe-ssswitchincandle.exe.

CompilerSuppressSpecificWarnings Optionalstringparameter.

Specifiesthatcertaincompilerwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switchincandle.exe.

CompilerTreatSpecificWarningsAsErrors Optionalstringparameter.

Specifiesthatcertaincompilerwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switchincandle.exe.

CompilerTreatWarningsAsErrors Optionalbooleanparameter.

Specifiesthatallcompilerwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitchincandle.exe.

CompilerVerboseOutput Optionalbooleanparameter.

Specifiesthatthecompilershouldprovideverboseoutput.Thisisequivalenttothe-vswitchincandle.exe.

DefineConstants Optionalstringparameter.

Specifiesasemicolon-delimitedlistofpreprocessorvariables.

Page 147: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

SuppressFilesVitalByDefault Optionalbooleanparameter.

Specifiesthatthecompilershouldsuppressmarkingfilesasvitalbydefault.Thisisequivalenttothe-sfdvitalswitchincandle.exe.

PreprocessToStdOut Optionalbooleanparameter.

Specifiesthatthecompilershouldoutputpreprocessinginformationtostdout.Thisisequivalenttothe-pswitchincandle.exe.

PreprocessToFile Optionalstringparameter.

Specifiesthatthecompilershouldoutputpreprocessinginformationtoafile.Thisisequivalenttothe-p<file>switchincandle.exe.

IncludeSearchPaths Optionalstringparameter.

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

InstallerPlatform Optionalstringparameter.

Page 148: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Specifiestheprocessorarchitectureforthepackage.Validvaluesarex86,x64,andia64.(Deprecatedvaluesincludeintelforx86andintel64foria64.)Thisisequivalenttothe-archswitchincandle.exe.

Setsthesys.BUILDARCHpreprocessorvariableand,whenthevalueisx64oria64,defaultstheWin64attributeto"yes"onallPackage,Component,CustomAction,andRegistrySearchelementsinthesourcefile.

OnlyValidateDocuments Optionalbooleanparameter.

Specifiesthatthecompilershouldonlyvalidatedocuments.Thisisequivalenttothe-zsswitchincandle.exe.

Pedantic Optionalbooleanparameter.

Specifiesthatthecompilershoulddisplaypedanticmessages.Thisisequivalenttothe-pedanticswitchincandle.exe.

ShowSourceTrace Optionalbooleanparameter.

Page 149: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Specifiesthatthecompilershouldshowsourcetraceinformationforerrors,warningsandverbosemessages.Thisisequivalenttothe-traceswitchincandle.exe.

Page 150: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HeatDirectoryTaskTheHeatDirectorytaskwrapsheat.exe,theWiXharvester,usingthedirharvestingtype.Authoringisgeneratedfortypelibrariesandself-registrationfromDllRegisterServerforanyfilesfoundindirectories.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.Tocontrolthesesettingsinyour.wixprojfile,youcancreateaPropertyGroupandspecifythesettingsthatyouwanttouseforyourbuildprocess.ThefollowingisasamplePropertyGroupthatcontainssettingsthatwillbeusedbytheHeatDirectorytask:

<HeatDirectoryNoLogo="$(HarvestDirectoryNoLogo)"SuppressAllWarnings="$(HarvestDirectorySuppressAllWarnings)"SuppressSpecificWarnings="$(HarvestDirectorySuppressSpecificWarnings)"ToolPath="$(WixToolPath)"TreatWarningsAsErrors="$(HarvestDirectoryTreatWarningsAsErrors)"TreatSpecificWarningsAsErrors="$(HarvestDirectoryTreatSpecificWarningsAsErrors)VerboseOutput="$(HarvestDirectoryVerboseOutput)"AutogenerateGuids="$(HarvestDirectoryAutogenerateGuids)"GenerateGuidsNow="$(HarvestDirectoryGenerateGuidsNow)"OutputFile="$(IntermediateOutputPath)_%(HarvestDirectory.Filename)_dir.wxsSuppressFragments="$(HarvestDirectorySuppressFragments)"SuppressUniqueIds="$(HarvestDirectorySuppressUniqueIds)"Transforms="%(HarvestDirectory.Transforms)"Directory="@(HarvestDirectory)"ComponentGroupName="%(HarvestDirectory.ComponentGroupName)"DirectoryRefId="%(HarvestDirectory.DirectoryRefId)"KeepEmptyDirectories="%(HarvestDirectory.KeepEmptyDirectories)"PreprocessorVariable="%(HarvestDirectory.PreprocessorVariable)"SuppressCom="%(HarvestDirectory.SuppressCom)"SuppressRootDirectory="%(HarvestDirectory.SuppressRootDirectory)"SuppressRegistry="%(HarvestDirectory.SuppressRegistry)"/>

ThefollowingtabledescribesthecommonWiXMSBuildparametersthatareapplicabletotheHeatDirectorytask.

Page 151: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Parameter DescriptionNoLogo Optionalbooleanparameter.

Specifiesthatthetoollogoshouldbesuppressed.Thedefaultisfalse.Thisisequivalenttothe-nologoswitch.

SuppressAllWarnings Optionalbooleanparameter.

Specifiesthatallwarningsshouldbesuppressed.Thedefaultisfalse.Thisisequivalenttothe-swswitch.

SuppressSpecificWarnings Optionalstringparameter.

Specifiesthatcertainwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switch.

TreatSpecificWarningsAsErrors Optionalstringparameter.

Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switch.

TreatWarningsAsErrors Optionalbooleanparameter.

Specifiesthatallwarningsshouldbetreatedaserrors.Thedefaultisfalse.Thisisequivalenttothe-wxswitch.

VerboseOutput Optionalbooleanparameter.

Specifiesthatthetoolshouldprovideverboseoutput.Thedefaultisfalse.Thisisequivalenttothe-vswitch.

ThefollowingtabledescribestheparametersthatarecommontoallheattasksthatareapplicabletotheHeatDirectorytask.

Page 152: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Parameter DescriptionAutogenerateGuids Optionalbooleanparameter.

Whethertogenerateauthoringthatreliesonauto-generationofcomponentGUIDs.Thedefaultis$(HarvestAutogenerateGuids)ifspecified;otherwise,true.

GenerateGuidsNow Optionalbooleanparameter.

WhethertogenerateauthoringthatgeneratesdurableGUIDswhenharvesting.Thedefaultis$(HarvestGenerateGuidsNow)ifspecified;otherwise,false.

OutputFile Requireditemparameter.

Specifiestheoutputfilethatcontainsthegeneratedauthoring.

SuppressFragments Optionalbooleanparameter.

Whethertosuppressgenerationofseparatefragmentswhenharvesting.Thedefaultis$(HarvestSuppressFragments)ifspecified;otherwise,true.

SuppressUniqueIds Optionalbooleanparameter.

WhethertosuppressgenerationofuniquecomponentIDs.Thedefaultis$(HarvestSuppressUniqueIds)ifspecified;otherwise,false.

Transforms Optionalstringparameter.

XSLtransformstoapplytoallgeneratedWiXauthoring.Separatemultipletransformswithsemicolons.Thedefaultis$(HarvestTransforms)ifspecified.

Page 153: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ThefollowingtabledescribestheparametersthatarespecifictotheHeatDirectorytask.

Parameter DescriptionDirectory Requireditemgroupparameter.

Thelistofdirectoriestoharvest.ComponentGroupName Optionalstringparameter.

ThenameoftheComponentGrouptocreateforallthegeneratedauthoring.

DirectoryRefId Optionalstringparameter.

TheIDofthedirectorytoreferenceinsteadofTARGETDIR.

KeepEmptyDirectories Optionalbooleanparameter.

WhethertocreateDirectoryentriesforemptydirectories.

PreprocessorVariable Optionalstringparameter.

SubstituteSourceDirforanothervariablename(ex:var.Dir).

SuppressCom Optionalbooleanparameter.

SuppressgenerationofCOMregistryelements.Thedefaultisfalse.

SuppressRegistry Optionalbooleanparameter.

SuppressgenerationofaDirectoryelementfortheparentdirectoryofthefile.Thedefaultisfalse.

SuppressRootDirectory Optionalbooleanparameter.

Suppressgenerationofanyregistryelements.Thedefaultisfalse.

Page 154: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HeatFileTaskTheHeatFiletaskwrapsheat.exe,theWiXharvester,usingthefileharvestingtype.Authoringisgeneratedfortypelibrariesandself-registrationfromDllRegisterServer.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.Tocontrolthesesettingsinyour.wixprojfile,youcancreateaPropertyGroupandspecifythesettingsthatyouwanttouseforyourbuildprocess.ThefollowingisasamplePropertyGroupthatcontainssettingsthatwillbeusedbytheHeatFiletask:

<HeatFileNoLogo="$(HarvestFileNoLogo)"SuppressAllWarnings="$(HarvestFileSuppressAllWarnings)"SuppressSpecificWarnings="$(HarvestFileSuppressSpecificWarnings)"ToolPath="$(WixToolPath)"TreatWarningsAsErrors="$(HarvestFileTreatWarningsAsErrors)"TreatSpecificWarningsAsErrors="$(HarvestFileTreatSpecificWarningsAsErrors)VerboseOutput="$(HarvestFileVerboseOutput)"AutogenerateGuids="$(HarvestFileAutogenerateGuids)"GenerateGuidsNow="$(HarvestFileGenerateGuidsNow)"OutputFile="$(IntermediateOutputPath)_%(HarvestFile.Filename)_file.wxs"SuppressFragments="$(HarvestFileSuppressFragments)"SuppressUniqueIds="$(HarvestFileSuppressUniqueIds)"Transforms="%(HarvestFile.Transforms)"File="@(HarvestFile)"ComponentGroupName="%(HarvestFile.ComponentGroupName)"DirectoryRefId="%(HarvestFile.DirectoryRefId)"PreprocessorVariable="%(HarvestFile.PreprocessorVariable)"SuppressCom="%(HarvestFile.SuppressCom)"SuppressRegistry="%(HarvestFile.SuppressRegistry)"SuppressRootDirectory="%(HarvestFile.SuppressRootDirectory)"/>

ThefollowingtabledescribesthecommonWiXMSBuildparametersthatareapplicabletotheHeatFiletask.

Parameter Description

Page 155: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

NoLogo Optionalbooleanparameter.

Specifiesthatthetoollogoshouldbesuppressed.Thedefaultisfalse.Thisisequivalenttothe-nologoswitch.

SuppressAllWarnings Optionalbooleanparameter.

Specifiesthatallwarningsshouldbesuppressed.Thedefaultisfalse.Thisisequivalenttothe-swswitch.

SuppressSpecificWarnings Optionalstringparameter.

Specifiesthatcertainwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switch.

TreatSpecificWarningsAsErrors Optionalstringparameter.

Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switch.

TreatWarningsAsErrors Optionalbooleanparameter.

Specifiesthatallwarningsshouldbetreatedaserrors.Thedefaultisfalse.Thisisequivalenttothe-wxswitch.

VerboseOutput Optionalbooleanparameter.

Specifiesthatthetoolshouldprovideverboseoutput.Thedefaultisfalse.Thisisequivalenttothe-vswitch.

ThefollowingtabledescribestheparametersthatarecommontoallheattasksthatareapplicabletotheHeatFiletask.

Page 156: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Parameter DescriptionAutogenerateGuids Optionalbooleanparameter.

Whethertogenerateauthoringthatreliesonauto-generationofcomponentGUIDs.Thedefaultis$(HarvestAutogenerateGuids)ifspecified;otherwise,true.

GenerateGuidsNow Optionalbooleanparameter.

WhethertogenerateauthoringthatgeneratesdurableGUIDswhenharvesting.Thedefaultis$(HarvestGenerateGuidsNow)ifspecified;otherwise,false.

OutputFile Requireditemparameter.

Specifiestheoutputfilethatcontainsthegeneratedauthoring.

SuppressFragments Optionalbooleanparameter.

Whethertosuppressgenerationofseparatefragmentswhenharvesting.Thedefaultis$(HarvestSuppressFragments)ifspecified;otherwise,true.

SuppressUniqueIds Optionalbooleanparameter.

WhethertosuppressgenerationofuniquecomponentIDs.Thedefaultis$(HarvestSuppressUniqueIds)ifspecified;otherwise,false.

Transforms Optionalstringparameter.

XSLtransformstoapplytoallgeneratedWiXauthoring.Separatemultipletransformswithsemicolons.Thedefaultis$(HarvestTransforms)ifspecified.

Page 157: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ThefollowingtabledescribestheparametersthatarespecifictotheHeatFiletask.

Parameter DescriptionFile Requireditemgroupparameter.

Thelistoffilestoharvest.ComponentGroupName Optionalstringparameter.

ThenameoftheComponentGrouptocreateforallthegeneratedauthoring.

DirectoryRefId Optionalstringparameter.

TheIDofthedirectorytoreferenceinsteadofTARGETDIR.

PreprocessorVariable Optionalstringparameter.

SubstituteSourceDirforanothervariablename(ex:var.Dir).

SuppressCom Optionalbooleanparameter.

SuppressgenerationofCOMregistryelements.Thedefaultisfalse.

SuppressRegistry Optionalbooleanparameter.

SuppressgenerationofaDirectoryelementfortheparentdirectoryofthefile.Thedefaultisfalse.

SuppressRootDirectory Optionalbooleanparameter.

Suppressgenerationofanyregistryelements.Thedefaultisfalse.

Page 158: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HeatProjectTaskTheHeatProjecttaskwrapsheat.exe,theWiXharvester,usingtheprojectharvestingtype.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.Tocontrolthesesettingsinyour.wixprojfile,youcancreateaPropertyGroupandspecifythesettingsthatyouwanttouseforyourbuildprocess.ThefollowingisasamplePropertyGroupthatcontainssettingsthatwillbeusedbytheHeatProjecttask:

<HeatProjectNoLogo="$(HarvestProjectsNoLogo)"SuppressAllWarnings="$(HarvestProjectsSuppressAllWarnings)"SuppressSpecificWarnings="$(HarvestProjectsSuppressSpecificWarnings)"ToolPath="$(WixToolPath)"TreatWarningsAsErrors="$(HarvestProjectsTreatWarningsAsErrors)"TreatSpecificWarningsAsErrors="$(HarvestProjectsTreatSpecificWarningsAsErrors)VerboseOutput="$(HarvestProjectsVerboseOutput)"AutogenerateGuids="$(HarvestProjectsAutogenerateGuids)"GenerateGuidsNow="$(HarvestProjectsGenerateGuidsNow)"OutputFile="$(IntermediateOutputPath)_%(_Project.Filename).wxs"SuppressFragments="$(HarvestProjectsSuppressFragments)"SuppressUniqueIds="$(HarvestProjectsSuppressUniqueIds)"Transforms="%(_Project.Transforms)"Project="@(_Project)"ProjectOutputGroups="%(_Project.ProjectOutputGroups)"/>

ThefollowingtabledescribesthecommonWiXMSBuildparametersthatareapplicabletotheHeatProjecttask.

Parameter DescriptionNoLogo Optionalbooleanparameter.

Specifiesthatthetoollogoshouldbesuppressed.Thedefaultisfalse.Thisisequivalenttothe-nologoswitch.

Page 159: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SuppressAllWarnings Optionalbooleanparameter.

Specifiesthatallwarningsshouldbesuppressed.Thedefaultisfalse.Thisisequivalenttothe-swswitch.

SuppressSpecificWarnings Optionalstringparameter.

Specifiesthatcertainwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switch.

TreatSpecificWarningsAsErrors Optionalstringparameter.

Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switch.

TreatWarningsAsErrors Optionalbooleanparameter.

Specifiesthatallwarningsshouldbetreatedaserrors.Thedefaultisfalse.Thisisequivalenttothe-wxswitch.

VerboseOutput Optionalbooleanparameter.

Specifiesthatthetoolshouldprovideverboseoutput.Thedefaultisfalse.Thisisequivalenttothe-vswitch.

ThefollowingtabledescribestheparametersthatarecommontoallheattasksthatareapplicabletotheHeatProjecttask.

Parameter DescriptionAutogenerateGuids Optionalbooleanparameter.

Whethertogenerateauthoringthatreliesonauto-generationofcomponentGUIDs.Thedefaultis$(HarvestAutogenerateGuids)if

Page 160: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

specified;otherwise,true.GenerateGuidsNow Optionalbooleanparameter.

WhethertogenerateauthoringthatgeneratesdurableGUIDswhenharvesting.Thedefaultis$(HarvestGenerateGuidsNow)ifspecified;otherwise,false.

OutputFile Requireditemparameter.

Specifiestheoutputfilethatcontainsthegeneratedauthoring.

SuppressFragments Optionalbooleanparameter.

Whethertosuppressgenerationofseparatefragmentswhenharvesting.Thedefaultis$(HarvestSuppressFragments)ifspecified;otherwise,true.

SuppressUniqueIds Optionalbooleanparameter.

WhethertosuppressgenerationofuniquecomponentIDs.Thedefaultis$(HarvestSuppressUniqueIds)ifspecified;otherwise,false.

Transforms Optionalstringparameter.

XSLtransformstoapplytoallgeneratedWiXauthoring.Separatemultipletransformswithsemicolons.Thedefaultis$(HarvestTransforms)ifspecified.

ThefollowingtabledescribestheparametersthatarespecifictotheHeatProjecttask.

Parameter DescriptionProject Requireditemgroupparameter.

Page 161: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Thelistofprojectstoharvest.ProjectOutputGroups Optionalstringparameter.

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

Page 162: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 163: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

equivalenttothe-bfswitch.

Pedantic Optionalbooleanparameter.

Specifiesthatthetoolshoulddisplaypedanticmessages.Thisisequivalenttothe-pedanticswitch.

SuppressAllWarnings Optionalbooleanparameter.

Specifiesthatallwarningsshouldbesuppressed.Thisisequivalenttothe-swswitch.

SuppressIntermediateFileVersionMatching Optionalbooleanparameter.

Specifiesthatthetoolshouldsuppressintermediatefileversionmismatchchecking.Thisisequivalenttothe-svswitch.

SuppressSchemaValidation Optionalbooleanparameter.

Specifiesthatschemavalidationofdocumentsshouldbesuppressed.Thisisequivalenttothe-ssswitch.

SuppressSpecificWarnings Optionalstringparameter.

Page 164: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 165: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 166: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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.

Page 167: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Specifiesthatthelinkershoulddropunrealtablesfromtheoutputimage.Thisisequivalenttothe-dutswitchinlight.exe.

ExactAssemblyVersions Optionalbooleanparameter.

Specifiesthatthelinkershoulduseexactassemblyversions.Thisisequivalenttothe-eavswitchinlight.exe.

Ices Optionalstringparameter.

Specifiesthatthelinkershouldrunspecificinternalconsistencyevaluators(ICEs).Thisisequivalenttothe-ice:<ICE>switchinlight.exe.

LeaveTemporaryFiles Optionalbooleanparameter.

Specifiesthatthelinkershouldnotdeletetemporaryfiles.Thisisequivalenttothe-notidyswitchinlight.exe.

LinkerAdditionalOptions Optionalstringparameter.

Specifiesadditionalcommandlineparameterstoappendwhencallinglight.exe.

Page 168: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LinkerBaseInputPaths Optionalstringparameter.

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

LinkerBindFiles Optionalbooleanparameter.

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

LinkerPedantic Optionalbooleanparameter.

Specifiesthatthelinkershoulddisplaypedanticmessages.Thisisequivalenttothe-pedanticswitchinlight.exe.

LinkerSuppressAllWarnings Optionalbooleanparameter.

Specifiesthatalllinkerwarningsshouldbesuppressed.Thisisequivalenttothe-swswitchinlight.exe.

LinkerSuppressIntermediateFileVersionMatching Optionalboolean

Page 169: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

parameter.

Specifiesthatthelinkershouldsuppressintermediatefileversionmismatchchecking.Thisisequivalenttothe-svswitchinlight.exe.

LinkerSuppressSchemaValidation Optionalbooleanparameter.

Specifiesthatthelinkershouldsuppressschemavalidationofdocuments.Thisisequivalenttothe-ssswitchinlight.exe.

LinkerSuppressSpecificWarnings Optionalstringparameter.

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

LinkerTreatSpecificWarningsAsErrors Optionalstringparameter.

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

LinkerTreatWarningsAsErrors Optionalbooleanparameter.

Specifiesthatalllinkerwarningsshouldbetreatedaserrors.Thisis

Page 170: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

equivalenttothe-wxswitchinlight.exe.

LinkerVerboseOutput Optionalbooleanparameter.

Specifiesthatthelinkershouldprovideverboseoutput.Thisisequivalenttothe-vswitchinlight.exe.

OutputAsXml Optionalbooleanparameter.

Specifiesthatthelinkershouldoutputa.wixoutfileinsteadofa.msifile.Thisisequivalenttothe-xoswitchinlight.exe.

PdbOutputFile Optionalstringparameter.

Specifiesthatthelinkershouldcreatetheoutput.wixpdbfilewiththeprovidedname.Thisisequivalenttothe-pdbout<output.wixpdb>switchinlight.exe.

ReuseCabinetCache Optionalbooleanparameter.

Specifiesthatthelinkershouldreusecabinetfilesfromthecabinetcache.Thisisequivalenttothe-reusecabswitchinlight.exe.

Page 171: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SetMsiAssemblyNameFileVersion Optionalbooleanparameter.

SpecifiesthatthelinkershouldaddafileVersionentrytotheMsiAssemblyNametableforeachassembly.Thisisequivalenttothe-fvswitchinlight.exe.

SuppressAclReset Optionalbooleanparameter.

SpecifiesthatthelinkershouldsuppressresettingACLs.Thisisusefulwhenlayingoutanimagetoanetworkshare.Thisisequivalenttothe-saclswitchinlight.exe.

SuppressAssemblies Optionalbooleanparameter.

Specifiesthatthelinkershouldnotgetassemblynameinformationforassemblies.Thisisequivalenttothe-saswitchinlight.exe.

SuppressDefaultAdminSequenceActions Optionalbooleanparameter.

Specifiesthatthelinkershouldsuppressdefaultadminsequenceactions.Thisisequivalenttothe-sadminswitchinlight.exe.

SuppressDefaultAdvSequenceActions Optionalboolean

Page 172: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

parameter.

Specifiesthatthelinkershouldsuppressdefaultadvertisedsequenceactions.Thisisequivalenttothe-sadvswitchinlight.exe.

SuppressDefaultUISequenceActions Optionalbooleanparameter.

SpecifiesthatthelinkershouldsuppressdefaultUIsequenceactions.Thisisequivalenttothe-uiswitchinlight.exe.

SuppressFileHashAndInfo Optionalbooleanparameter.

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

SuppressFiles Optionalbooleanparameter.

Specifiesthatthelinkershouldsuppressgatheringallfiledata.ThishasthesameeffectassettingtheSuppressAssembliesadnSuppressFileHashAndInfoparameters.Thisisequivalenttothe-sfswitchinlight.exe.

Page 173: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 174: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

.msmvalidation.Thisisequivalenttothe-svalswitchinlight.exe.

SuppressTagSectionIdAttributeOnTuples Optionalbooleanparameter.

SpecifiesthatthelinkershouldsuppressaddingthesectionIdattributeonrows.Thisisequivalenttothe-stsswitchinlight.exe.

UnreferencedSymbolsFile Optionalstringparameter.

Specifiesanunreferencedsymbolsfilethatthelinkershoulduse.Thisisequivalenttothe-usf<output.xml>switchinlight.exe.

WixVariables Optionalstringparameter.

Specifiesasemicolon-delimitedlistofbind-timeWiXvariables.Thisisequivalenttothe-d<name>[=<value>]switchinlight.exe.

Page 175: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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-

Page 176: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

pedanticswitch.SuppressAllWarnings Optionalboolean

parameter.

Specifiesthatallwarningsshouldbesuppressed.Thisisequivalenttothe-swswitch.

SuppressIntermediateFileVersionMatching Optionalbooleanparameter.

Specifiesthatthetoolshouldsuppressintermediatefileversionmismatchchecking.Thisisequivalenttothe-svswitch.

SuppressSchemaValidation Optionalbooleanparameter.

Specifiesthatschemavalidationofdocumentsshouldbesuppressed.Thisisequivalenttothe-ssswitch.

SuppressSpecificWarnings Optionalstringparameter.

Specifiesthatcertainwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switch.

TreatSpecificWarningsAsErrors Optionalstringparameter.

Page 177: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switch.

TreatWarningsAsErrors Optionalbooleanparameter.

Specifiesthatallwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitch.

VerboseOutput Optionalbooleanparameter.

Specifiesthatthetoolshouldprovideverboseoutput.Thisisequivalenttothe-vswitch.

ThefollowingtabledescribestheparametersthatarespecifictotheLittask.

Parameter DescriptionLibAdditionalOptions Optionalstring

parameter.

Specifiesadditionalcommandlineparameterstoappendwhencallinglit.exe.

LibBindFiles Optionalbooleanparameter.

Specifiesthatthelibrarycreationtoolshouldbindfilesintoa

Page 178: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

.wixoutfile.ThisisonlyvalidwhentheOutputAsXmlparameterisalsoprovided.Thisisequivalenttothe-bfswitchinlit.exe.

LibPedantic Optionalbooleanparameter.

Specifiesthatthelibrarycreationtoolshoulddisplaypedanticmessages.Thisisequivalenttothe-pedanticswitchinlit.exe.

LibSuppressAllWarnings Optionalbooleanparameter.

Specifiesthatalllibrarycreationtoolwarningsshouldbesuppressed.Thisisequivalenttothe-swswitchinlit.exe.

LibSuppressIntermediateFileVersionMatching Optionalbooleanparameter.

Specifiesthatthelibrarycreationtoolshouldsuppressintermediatefileversionmismatchchecking.Thisisequivalenttothe-svswitchinlit.exe.

LibSuppressSchemaValidation Optionalboolean

Page 179: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

parameter.

Specifiesthatthelibrarycreationtoolshouldsuppressschemavalidationofdocuments.Thisisequivalenttothe-ssswitchinlit.exe.

LibSuppressSpecificWarnings Optionalstringparameter.

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

LibTreatSpecificWarningsAsErrors Optionalstringparameter.

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

LibTreatWarningsAsErrors Optionalbooleanparameter.

Specifiesthatalllibrarycreationtoolwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitchinlit.exe.

LibVerboseOutput Optionalboolean

Page 180: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

parameter.

Specifiesthatthelibrarycreationtoolshouldprovideverboseoutput.Thisisequivalenttothe-vswitchinlit.exe.

LinkerBaseInputPaths Optionalstringparameter.

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

Page 181: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WiXMSBuildTargetReferenceThissectionexplainsMSBuildtargetsthatareincludedwiththeWiXtoolset.

HarvestDirectoryTargetHarvestFileTargetHarvestProjectsTarget

Page 182: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HarvestDirectoryTargetTheHarvestDirectorytargetpassesHarvestDirectoryitemstotheHeatDirectorytasktogenerateauthoringfromafile.Authoringisgeneratedfortypelibrariesandself-registrationfromDllRegisterServerforanyfilesfoundindirectories.Thistargetisprocessedbeforecompilation.GeneratedauthoringisautomaticallyaddedtotheCompileitemgrouptobecompiledbytheCandletask.

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

ThefollowingtablesdescribethecommonWiXMSBuildpropertiesanditemsthatareapplicabletotheHarvestDirectorytarget.

Page 183: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ItemsThefollowingitemsanditemmetadataareusedbytheHarvestDirectorytarget.

ItemorMetadata Description@(HarvestDirectory) Requireditemgroup.

Thelistofdirectoriestoharvest.

%(HarvestDirectory.ComponentGroupName)

Optionalstringmetadata.

ThenameoftheComponentGrouptocreateforallthegeneratedauthoring.

%(HarvestDirectory.DirectoryRefId) Optionalstringmetadata.

TheIDofthedirectorytoreferenceinsteadofTARGETDIR.

%(HarvestDirectory.KeepEmptyDirectories)

Optionalbooleanmetadata.

WhethertocreateDirectoryentriesforemptydirectories.Thedefaultisfalse.

%(HarvestDirectory.PreprocessorVariable) Optionalstringmetadata.

SubstituteSourceDirforanothervariablename(ex:var.Dir).

%(HarvestDirectory.SuppressCom) Optionalbooleanmetadata.

Page 184: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SuppressgenerationofCOMregistryelements.Thedefaultisfalse.

%(HarvestDirectory.SuppressRootDirectory)

Optionalbooleanmetadata.

SuppressgenerationofaDirectoryelementfortheparentdirectoryofthefile.Thedefaultisfalse.

%(HarvestDirectory.SuppressRegistry) Optionalbooleanmetadata.

Suppressgenerationofanyregistryelements.Thedefaultisfalse.

%(HarvestDirectory.Transforms) Optionalstringmetadata.

XSLtransformstoapplytothegeneratedWiXauthoring.Separatemultipletransformswithsemicolons.

Page 185: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PropertiesThefollowingpropertiesareusedbytheHarvestDirectorytarget.

Property Description$(HarvestDirectoryAutogenerateGuids) Optionalboolean

Whethertogenerateauthoringthatreliesonauto-generationofcomponentGUIDs.Thedefaultis$(HarvestAutogenerateGuids)ifspecified;otherwise,true.

$(HarvestDirectoryComponentGroupName) Optionalstringproperty.

Thecomponentgroupnamethatwillcontainallgeneratedauthoring.

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

$(HarvestDirectoryDirectoryRefId) Optionalstringproperty.

TheidentifieroftheDirectoryelementthatwillcontainallgeneratedauthoring.

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

$(HarvestDirectoryGenerateGuidsNow) Optionalboolean

WhethertogenerateauthoringthatgeneratesdurableGUIDswhenharvesting.Thedefaultis$(HarvestGenerateGuidsNow)ifspecified;otherwise,

Page 186: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

$(HarvestDirectoryKeepEmptyDirectories) Optionalboolean

WhethertocreateDirectoryentriesforemptydirectorieswhenharvesting.Thedefaultisfalse.

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

$(HarvestDirectoryNoLogo) Optionalboolean

Whethertoshowthelogoforheat.exe.Thedefaultis$(NoLogo)ifspecified;otherwise,false.

$(HarvestDirectoryPreprocessorVariable) Optionalstringproperty.

SubstituteSourceDirforanothervariablename(ex:var.Dir)inallgeneratedauthoring.

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

$(HarvestDirectorySuppressAllWarnings) Optionalboolean

Specifiesthatallwarningsshouldbesuppressed.Thedefaultis$(HarvestSuppressAllWarnings)ifspecified;otherwise,

$(HarvestDirectorySuppressCom) Optionalboolean

WhethertosuppressgenerationofCOMregistryelementswhenharvestingfilesindirectories.Thedefaultis

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

Page 187: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

$(HarvestDirectorySuppressFragments) Optionalboolean

Whethertosuppressgenerationofseparatefragmentswhenharvesting.Thedefaultis$(HarvestSuppressFragments)ifspecified;otherwise,

$(HarvestDirectorySuppressRegistry) Optionalboolean

Whethertosuppressgenerationofallregistryelementswhenharvestingfilesindirectories.Thedefaultis

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

$(HarvestDirectorySuppressRootDirectory) Optionalboolean

WhethertosuppressgenerationofaDirectoryelementforallauthoringwhenharvesting.Thedefaultis

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

$(HarvestDirectorySuppressSpecificWarnings) Optionalstringparameter.

Specifiesthatcertainwarningsshouldbesuppressed.Thedefaultis$(HarvestSuppressSpecificWarnings)ifspecified.

$(HarvestDirectorySuppressUniqueIds) Optionalboolean

WhethertosuppressgenerationofuniquecomponentIDs.Thedefaultis$(HarvestSuppressUniqueIds)specified;otherwise,

$(HarvestDirectoryTransforms) Optionalstringproperty.

Page 188: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

XSLtransformstoapplytoallgeneratedWiXauthoring.Separatemultipletransformswithsemicolons.Thedefaultis$(HarvestTransforms)ifspecified.

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

$(HarvestDirectoryTreatSpecificWarningsAsErrors) Optionalstringparameter.

Specifiesthatcertainwarningsshouldbetreatedaserrors.Thedefaultis$(HarvestTreatSpecificWarningsAsErrors)ifspecified.

$(HarvestDirectoryTreatWarningsAsErrors) Optionalboolean

Specifiesthatallwarningsshouldbetreatedaserrors.Thedefaultis$(HarvestTreatWarningsAsErrors)ifspecified;otherwise,

$(HarvestDirectoryVerboseOutput) Optionalboolean

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

Page 189: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HarvestFileTargetTheHarvestFiletargetpassesHarvestFileitemstotheHeatFiletasktogenerateauthoringfromafile.Authoringisgeneratedfortypelibrariesandself-registrationfromDllRegisterServer.Thistargetisprocessedbeforecompilation.GeneratedauthoringisautomaticallyaddedtotheCompileitemgrouptobecompiledbytheCandletask.

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

ThefollowingtablesdescribethecommonWiXMSBuildpropertiesanditemsthatareapplicabletotheHarvestFiletarget.

Page 190: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ItemsThefollowingitemsanditemmetadataareusedbytheHarvestFiletarget.

ItemorMetadata Description@(HarvestFile) Requireditemgroup.

Thelistoffilestoharvest.%(HarvestFile.ComponentGroupName)

Optionalstringmetadata.

ThenameoftheComponentGrouptocreateforallthegeneratedauthoring.

%(HarvestFile.DirectoryRefId) Optionalstringmetadata.

TheIDofthedirectorytoreferenceinsteadofTARGETDIR.

%(HarvestFile.PreprocessorVariable) Optionalstringmetadata.

SubstituteSourceDirforanothervariablename(ex:var.Dir).

%(HarvestFile.SuppressCom) Optionalbooleanmetadata.

SuppressgenerationofCOMregistryelements.Thedefaultisfalse.

%(HarvestFile.SuppressRootDirectory)

Optionalbooleanmetadata.

SuppressgenerationofaDirectoryelementfortheparentdirectoryofthefile.Thedefaultisfalse.

Page 191: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

%(HarvestFile.SuppressRegistry) Optionalbooleanmetadata.

Suppressgenerationofanyregistryelements.Thedefaultisfalse.

%(HarvestFile.Transforms) Optionalstringmetadata.

XSLtransformstoapplytothegeneratedWiXauthoring.Separatemultipletransformswithsemicolons.

Page 192: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PropertiesThefollowingpropertiesareusedbytheHarvestFiletarget.

Property Description$(HarvestFileAutogenerateGuids) Optionalbooleanproperty.

Whethertogenerateauthoringthatreliesonauto-generationofcomponentGUIDs.Thedefaultis$(HarvestAutogenerateGuids)ifspecified;otherwise,true.

$(HarvestFileComponentGroupName) Optionalstringproperty.

Thecomponentgroupnamethatwillcontainallgeneratedauthoring.

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

$(HarvestFileDirectoryRefId) Optionalstringproperty.

TheidentifieroftheDirectoryelementthatwillcontainallgeneratedauthoring.

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

$(HarvestFileGenerateGuidsNow) Optionalbooleanproperty.

WhethertogenerateauthoringthatgeneratesdurableGUIDswhenharvesting.Thedefaultis$(HarvestGenerateGuidsNow)ifspecified;otherwise,false

Page 193: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

$(HarvestFileNoLogo) Optionalbooleanproperty.

Whethertoshowthelogoforheat.exe.Thedefaultis$(NoLogo)ifspecified;otherwise,false.

$(HarvestFilePreprocessorVariable) Optionalstringproperty.

SubstituteSourceDirforanothervariablename(ex:var.Dir)inallgeneratedauthoring.

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

$(HarvestFileSuppressAllWarnings) Optionalbooleanparameter.

Specifiesthatallwarningsshouldbesuppressed.Thedefaultis$(HarvestSuppressAllWarnings)ifspecified;otherwise,false

$(HarvestFileSuppressCom) Optionalbooleanproperty.

WhethertosuppressgenerationofCOMregistryelementswhenharvesting.Thedefaultisfalse.

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

$(HarvestFileSuppressFragments) Optionalbooleanproperty.

Whethertosuppressgenerationofseparatefragmentswhenharvesting.Thedefaultis$(HarvestSuppressFragments)ifspecified;otherwise,true

$(HarvestFileSuppressRegistry) Optionalbooleanproperty.

Page 194: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Whethertosuppressgenerationofallregistryelementswhenharvesting.Thedefaultisfalse.

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

$(HarvestFileSuppressRootDirectory) Optionalbooleanproperty.

WhethertosuppressgenerationofaDirectoryelementforallauthoringwhenharvesting.Thedefaultis

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

$(HarvestFileSuppressSpecificWarnings) Optionalstringparameter.

Specifiesthatcertainwarningsshouldbesuppressed.Thedefaultis$(HarvestSuppressSpecificWarnings)ifspecified.

$(HarvestFileSuppressUniqueIds) Optionalbooleanproperty.

WhethertosuppressgenerationofuniquecomponentIDs.Thedefaultis$(HarvestSuppressUniqueIds)specified;otherwise,false

$(HarvestFileTransforms) Optionalstringproperty.

XSLtransformstoapplytoallgeneratedWiXauthoring.Separatemultipletransformswithsemicolons.Thedefaultis$(HarvestTransforms)ifspecified.

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

Page 195: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

$(HarvestFileTreatSpecificWarningsAsErrors) Optionalstringparameter.

Specifiesthatcertainwarningsshouldbetreatedaserrors.Thedefaultis$(HarvestTreatSpecificWarningsAsErrors)ifspecified.

$(HarvestFileTreatWarningsAsErrors) Optionalbooleanparameter.

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

$(HarvestFileVerboseOutput) Optionalbooleanparameter.

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

Page 196: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HarvestProjectsTargetTheHarvestProjectstargetpassesHarvestProjectitemstotheHeatProjecttasktogenerateauthoringfromaprojectfile.Thistargetisprocessedbeforecompilation.GeneratedauthoringisautomaticallyaddedtotheCompileitemgrouptobecompiledbytheCandletask.

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

ThefollowingtablesdescribethecommonWiXMSBuildpropertiesanditemsthatareapplicabletotheHarvestProjectstarget.

Page 197: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ItemsThefollowingitemsanditemmetadataareusedbytheHarvestProjectstarget.

ItemorMetadata Description@(HarvestProject) Requireditemgroup.

Thelistofprojectstoharvest.TheHeatProjectitemgroupisprovidedonlyforbackwardcompatibility.

%(HarvestProject.ProjectOutputGroups)

Optionalstringmetadata.

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

%(HarvestProject.Transforms) Optionalstringmetadata.

XSLtransformstoapplytothegeneratedWiXauthoring.Separatemultipletransformswithsemicolons.

Page 198: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PropertiesThefollowingpropertiesareusedbytheHarvestProjectstarget.

Property Description$(HarvestProjectsAutogenerateGuids) Optionalbooleanproperty.

Whethertogenerateauthoringthatreliesonauto-generationofcomponentGUIDs.Thedefaultis$(HarvestAutogenerateGuids)ifspecified;otherwise,true.

$(HarvestProjectsGenerateGuidsNow) Optionalbooleanproperty.

WhethertogenerateauthoringthatgeneratesdurableGUIDswhenharvesting.Thedefaultis$(HarvestGenerateGuidsNow)ifspecified;otherwise,

$(HarvestProjectsNoLogo) Optionalbooleanproperty.

Whethertoshowthelogoforheat.exe.Thedefaultis$(NoLogo)ifspecified;otherwise,false.

$(HarvestProjectsProjectOutputGroups) Optionalstringproperty.

Theprojectoutputgroupstoharvestfromallprojects.Separatemultipleprojectoutputgroupswithsemicolons.

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

$(HarvestProjectsSuppressAllWarnings) Optionalbooleanparameter.

Page 199: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Specifiesthatallwarningsshouldbesuppressed.Thedefaultis$(HarvestSuppressAllWarnings)ifspecified;otherwise,

$(HarvestProjectsSuppressFragments) Optionalbooleanproperty.

Whethertosuppressgenerationofseparatefragmentswhenharvesting.Thedefaultis$(HarvestSuppressFragments)ifspecified;otherwise,

$(HarvestProjectsSuppressSpecificWarnings) Optionalstringparameter.

Specifiesthatcertainwarningsshouldbesuppressed.Thedefaultis$(HarvestSuppressSpecificWarnings)ifspecified.

$(HarvestProjectsSuppressUniqueIds) Optionalbooleanproperty.

WhethertosuppressgenerationofuniquecomponentIDs.Thedefaultis$(HarvestSuppressUniqueIds)specified;otherwise,

$(HarvestProjectsTransforms) Optionalstringproperty.

XSLtransformstoapplytoallgeneratedWiXauthoring.Separatemultipletransformswithsemicolons.Thedefaultis$(HarvestTransforms)ifspecified.

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

$(HarvestProjectsTreatSpecificWarningsAsErrors) Optionalstringparameter.

Specifiesthatcertainwarningsshouldbetreatedaserrors.Thedefaultis$(HarvestTreatSpecificWarningsAsErrors)

Page 200: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ifspecified.$(HarvestProjectsTreatWarningsAsErrors) Optionalbooleanparameter.

Specifiesthatallwarningsshouldbetreatedaserrors.Thedefaultis$(HarvestTreatWarningsAsErrors)ifspecified;otherwise,

$(HarvestProjectsVerboseOutput) Optionalbooleanparameter.

Specifiesthatthetoolshouldprovideverboseoutput.Thedefaultis$(HarvestVerboseOutput)ifspecified.

Page 201: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UsingWiXWithNAntToincludetheNAntbuildtasksinyouNAntprojectincludethefollowingcode:

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

Formoreinformationseethefollowingtopics:

CandletaskLighttaskLitTask

Page 202: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WiXNAntTaskReferenceThissectionexplainsMSBuildtasksthatareincludedwiththeWiXtoolset.

CandleTaskLightTaskLitTask

Page 203: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CandleTaskTheCandletaskwrapscandle.exe,theWiXcompiler.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.ThefollowingisasampleshowsatheNAntcodeusedtoruntheCandletask:

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

ThefollowingtabledescribesthecommonWiXNAntparametersthatareapplicabletotheCandletask.

Parameter Descriptionexedir Optionalstringparameter.

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

out Requiredstringparameter.

Setsthefileordirectorytowritetheoutputto.Thisis

Page 204: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

equivalenttothe-outswitch.extensions Optionalstringparameter.

Semi-colonseparatedlistofWiXextensionstoload.Thisisequivalenttothe-extswitch.

rebuild Optionalbooleanparameter.

InstructsNAnttorecompiletheoutputfileregardlessofthefiletimestamps..

sources RequiredNAntfileset.

Thesetofsourcefilesforcompilation.warningsaserrors Optionalbooleanparameter.

Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitch.

verbose Optionalbooleanparameter.

Specifiesthatthetoolshouldprovideverboseoutput.Thisisequivalenttothe-vswitch.

ThefollowingtabledescribestheparametersthatarespecifictotheCandletask.

Parameter Descriptiondefines OptionalNAntfileset.

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

includedirs OptionalNAntfileset.

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

AdditionaloptionscanbeaddedbyusingthestandardNAnt<arg>elements,e.g.:

Page 205: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

<argline="-pedantic"/>

Page 206: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LightTaskTheLighttaskwrapslight.exe,theWiXlinker.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.ThefollowingisasampleshowsatheNAntcodeusedtoruntheLighttask:

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

ThefollowingtabledescribesthecommonWiXNAntparametersthatareapplicabletotheLighttask.

Parameter Descriptionexedir Optionalstringparameter.

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

out Requiredstringparameter.

Setsthefileordirectorytowritetheoutputto.Thisis

Page 207: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

equivalenttothe-outswitch.extensions Optionalstringparameter.

Semi-colonseparatedlistofWiXextensionstoload.Thisisequivalenttothe-extswitch.

rebuild Optionalbooleanparameter.

InstructsNAnttorecompiletheoutputfileregardlessofthefiletimestamps..

sources RequiredNAntfileset.

Thesetofsourcefilesforcompilation.Thisisequivalenttothe-xxswitch.

warningsaserrors Optionalbooleanparameter.

Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitch.

verbose Optionalbooleanparameter.

Specifiesthatthetoolshouldprovideverboseoutput.Thisisequivalenttothe-vswitch.

ThefollowingtabledescribestheparametersthatarespecifictotheLighttask.

Parameter Descriptioncultures Optionalstringparameter.

Specifiesasemicolon-delimitedlistoflocalizedstringculturesthatthelinkershouldloadfromlibraries.Thisisequivalenttothe-culturesswitchinlight.exe.

localizations OptionalNAntfileset.

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

suppressices Optionalstringparameter.

Page 208: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

suppresspdb Optionalbooleanparameter.

Specifiesthatthelinkershouldsuppressoutputting.wixpdbfiles.Thisisequivalenttothe-spdbswitchinlight.exe.

reusecab Optionalbooleanparameter.

Specifiesthatthelinkershouldreusecabinetfilesfromthecabinetcache.Thisisequivalenttothe-reusecabswitchinlight.exe.

cabcache Optionalstringparameter.

Specifiesapaththatthelinkershouldusetocachebuiltcabinetfiles.Thisisequivalenttothe-ccswitchinlight.exe.

fileversions Optionalbooleanparameter.

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

AdditionaloptionscanbeaddedbyusingthestandardNAnt<arg>elements,e.g.:

<argline="-sacl"/>

Page 209: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LitTaskTheLighttaskwrapslit.exe,theWiXlibrarytool.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.ThefollowingisasampleshowsatheNAntcodeusedtoruntheLittask:

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

ThefollowingtabledescribesthecommonWiXNAntparametersthatareapplicabletotheLittask.

Parameter Descriptionexedir Optionalstringparameter.

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

out Requiredstringparameter.

Setsthefileordirectorytowritetheoutputto.Thisisequivalenttothe-outswitch.

extensions Optionalstringparameter.

Semi-colonseparatedlistofWiXextensionstoload.Thisisequivalenttothe-extswitch.

Page 210: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 211: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HowToGuidesThissectionincludesHowTodocumentationforperformingcommonWiXtasks.

Page 212: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Files,ShortcutsandRegistryAddafiletoyourinstallerChecktheversionnumberofafileduringinstallationWritearegistryentryduringinstallationReadaregistryentryduringinstallationCreateashortcutontheStartMenuCreateashortcuttoawebpageCreateanuninstallshortcutNGenmanagedassembliesduringinstallationReferenceanotherDirectorySearchelementGettheparentdirectoryofafilesearch

Page 213: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RedistributablesandInstallChecksCheckfor.NETFrameworkversionsInstallthe.NETFrameworkusingabootstrapperInstallDirectX9.0withyourinstallerInstalltheVisualC++RedistributablewithyourinstallerBlockinstallationbasedonOSversion

Page 214: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UserInterfaceandLocalizationBuildalocalizedversionofyourinstallerMakeyourinstallerlocalizableRuntheinstalledapplicationaftersetupSetyourinstaller'siconinAdd/RemovePrograms

Page 215: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ProductUpdatesImplementamajorupgradeinyourinstaller

Page 216: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

OthersGetalogofyourinstallationfordebuggingLookinsideyourMSIwithOrcaGenerateaGUIDUseWiXExtensionsOptimizebuildingcabinetfilesSpecifysourcefilelocations

Page 217: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HowTo:Files,ShortcutsandRegistryThissectionincludeshowtoguidesthatdemonstratehowtoworkwithfiles,shortcuts,andtheWindowsregistry.

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

Page 218: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HowTo:AddaFileToYourInstallerInstallingfilesisthemostfundamentalaspectofanyinstaller,andisusuallywhatleadspeopletobuildaninstallerinthefirstplace.LearninghowtoplaceafileondiskusingWindowsInstallerbestpracticesnotonlyensuresmaintainabilitygoingforward,butalsoenablesyoutobuildpatcheslaterifnecessary.

Page 219: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step1:DefinethedirectorystructureInstallersfrequentlyhavemanyfilestoinstallintoafewlocationsondisk.ToimprovethereadabilityoftheWiXfile,itisagoodpracticetodefineyourinstallationdirectoriesfirstbeforelistingthefilesyou'llinstall.Directoriesaredefinedusingthe<Directory>elementanddescribethehierarchyoffoldersyouwouldliketoseeonthetargetmachine.Thefollowingsampledefinesadirectoryfortheinstallationofthemainapplicationexecutable.

<DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"><DirectoryId="APPLICATIONROOTDIRECTORY"Name="MyApplicationName"/></Directory></Directory>

TheelementwiththeidTARGETDIRisrequiredbytheWindowsInstallerandistherootofalldirectorystructuresforyourinstallation.EveryWiXprojectwillhavethisdirectoryelement.Thesecondelement,withtheidProgramFilesFolder,usesapre-definedWindowsInstallerpropertytoreferencetheProgramFilesfolderontheuser'smachine.Inmostcasesthiswillresolvetoc:\ProgramFiles\.Thethirddirectoryelementcreatesyourapplication'sfolderunderProgramFiles,anditisgiventheidAPPLICATIONROOTDIRECTORYforlateruseintheWiXproject.TheidisinallcapitalletterstomakeitapublicpropertythatcanbesetfromUIorviathecommandline.

Theresultofthesetagsisac:\ProgramFiles\MyApplicationNamefolderonthetargetmachine.

Page 220: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step2:AddfilestoyourinstallerpackageAfileisaddedtotheinstallerusingtwoelements:a<Component>elementtospecifyanatomicunitofinstallationanda<File>elementtospecifythefilethatshouldbeinstalled.

Thecomponentelementdescribesasetofresources(usuallyfiles,registryentries,andshortcuts)thatneedtobeinstalledasasingleunit.ThisisseparatefromwhetherthesetofitemsconsistofalogicalfeaturetheusercanselecttoinstallwhichisdiscussedinStep3.Whileitmaynotseemlikeabigdealwhenyouarefirstauthoringyourinstaller,componentsplayacriticalrolewhenyoudecidetobuildpatchesatalaterdate.

Ingeneral,youshouldrestrictyourselftoasinglefilepercomponent.TheWindowsInstallerisdesignedtosupportthousandsofcomponentsinasingleinstaller,sounlessyouhaveaverygoodreason,keeptoonefilepercomponent.EverycomponentmusthaveitsownuniqueGUID.Failuretofollowthesetwobasicrulescanleadtomanyproblemsdowntheroadwhenitcomestoservicing.

ThefollowingsampleusesthedirectorystructuredefinedinStep1toinstalltwofiles:anapplicationexecutableandadocumentationfile.

<DirectoryRefId="APPLICATIONROOTDIRECTORY"><ComponentId="myapplication.exe"Guid="PUT-GUID-HERE"><FileId="myapplication.exe"Source="MySourceFiles\MyApplication.exe"KeyPath="yes"Checksum</Component><ComponentId="documentation.html"Guid="PUT-GUID-HERE"><FileId="documentation.html"Source="MySourceFiles\documentation.html"KeyPath="yes"/></Component></DirectoryRef>

The<DirectoryRef>elementisusedtorefertothedirectorystructurecreatedinstep1.ByreferencingtheAPPLICATIONROOTDIRECTORYdirectory,thefileswillbeinstalledintothec:\programfiles\MyApplicationNamefolder.UnderneaththeDirectoryRefaretwoComponentelements,oneforeachofthetwofilesthatwillbeinstalled.Thisisinkeepingwiththebestpracticeofhavingonecomponentperfile.

Page 221: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

EachComponentelementisgivenanIdandaGuid.TheIdisusedtorefertothecomponentlaterintheWiXproject.TheGuidisusedlaterforpatchesandmustbeuniqueforeachcomponent.ForinformationongeneratingGUIDsseeHowTo:GenerateaGUID.

BeneatheachcomponentisaFileelementthatdoestheactualworkofpackagingyoursourcefilesintotheinstaller.TheIdisusedtorefertothefileelsewhereintheWiXproject.TheSourceattributespecifiesthelocationofthefileonyourmachine,soWiXcanfinditandbuilditintotheinstaller.

TheKeyPathattributeissettoyestotelltheWindowsInstallerthatthisparticularfileshouldbeusedtodeterminewhetherthecomponentisinstalled.WhenyouhaveonefilepercomponentyoushouldalwayssettheKeyPathattributetoyes.TheChecksumattributeshouldbesettoyesforexecutablefilesthathaveachecksumvalueinthefileheader(thisisgenerallytrueforallexecutables),andisusedbytheWindowsInstallertoverifythevalidityofthefileonre-install.

Page 222: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step3:TellWindowsInstallertoinstallthefilesAfterdefiningthedirectorystructureandlistingthefilestopackageintotheinstaller,thelaststepistotellWindowsInstallertoactuallyinstallthefiles.The<Feature>elementisusedtodothis,andiswhereyoubreakupyourinstallerintologicalpiecesthattheusercaninstallindependently.ThefollowingexamplecreatesasinglefeaturethatinstallstheapplicationexecutableanddocumentationfromStep2.

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

TheFeatureisgivenaId.IfyouareusinganinstallerUIsequencethatincludesfeatureselection,theTitleattributecontainsthetextdisplayedintheUIforthefeature.TheLevelattributeshouldbesetto1toenabletheinstallationofthefeaturebydefault.

The<ComponentRef>elementisusedtoreferencethecomponentscreatedinStep2viatheIdattribute.

Page 223: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

TheCompleteSampleThefollowingisacompletesamplethatusestheaboveconcepts.ThisexamplecanbeinsertedintoaWiXprojectandcompiled,orcompiledandlinkedfromthecommandline,togenerateaninstaller.

<?xmlversion="1.0"encoding="UTF-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><ProductId="*"UpgradeCode="PUT-GUID-HERE"Version="1.0.0.0"Language="1033"Name="MyApplicationName"<PackageInstallerVersion="300"Compressed="yes"/><MediaId="1"Cabinet="myapplication.cab"EmbedCab="yes"/>

<!--Step1:Definethedirectorystructure--><DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"><DirectoryId="APPLICATIONROOTDIRECTORY"Name="MyApplicationName"/></Directory></Directory>

<!--Step2:Addfilestoyourinstallerpackage--><DirectoryRefId="APPLICATIONROOTDIRECTORY"><ComponentId="myapplication.exe"Guid="PUT-GUID-HERE"><FileId="myapplication.exe"Source="MySourceFiles\MyApplication.exe"KeyPath="yes"Checksum</Component><ComponentId="documentation.html"Guid="PUT-GUID-HERE"><FileId="documentation.html"Source="MySourceFiles\documentation.html"KeyPath="yes"/></Component></DirectoryRef>

<!--Step3:TellWiXtoinstallthefiles--><FeatureId="MainApplication"Title="MainApplication"Level="1"><ComponentRefId="myapplication.exe"/><ComponentRefId="documentation.html"/></Feature></Product></Wix>

Page 224: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 225: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step1:DeterminetheversionofthefileFileversionsaredeterminedusingthe<Property>,<DirectorySearch>and<FileSearch>elements.Thefollowingsnippetlooksfortheuser32.dllfileinthemachine'sSystem32directoryandcheckstoseeifitisatleastversion6.0.6001.1751.

<PropertyId="USER32VERSION"><DirectorySearchId="SystemFolderDriverVersion"Path="[SystemFolder]"><FileSearchName="user32.dll"MinVersion="6.0.6001.1750"/></DirectorySearch></Property>

Searchingforafileisaccomplishedbydescribingthedirectoriestosearch,andthenspecifyingthefiletolookupinthatdirectory.

ThePropertyelementdefinestheIdfortheresultsofthefilesearch.ThisIdisusedlaterintheWiXproject,forexampleinconditions.TheDirectorySearchelementisusedtobuildthedirectoryhierarchytosearchforthefile.InthiscaseitisgivenauniqueId,andthepathissettotheWindowsInstallerdefinedSystemFolderpropertywhichpointstotheuser'sWindows\System32directory.TheFileSearchelementspecifiesthenameofthefiletolookforintheparentDirectorySearchfolder.TheMinVersionattributespecifiestheminimumversionofthefiletofind.

IfthefileisfoundsuccessfullytheUSER32VERSIONpropertywillbesettothefullpathtotheuser32.dllfile.

Important:Whendoingalocale-neutralsearchforafile,youmustsettheMinVersionpropertytoonerevisionnumberlowerthantheactualversionyouwanttosearchfor.Inthisexample,whilewewanttofindfileversion6.0.6001.1751,theMinVersionissetto6.0.6001.1750.ThisisbecauseofaquirkinhowtheWindowsInstallermatchesfileversions.MoreinformationisavailableintheWindowsInstallerdocumentation.

Page 226: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step2:UsethepropertyinaconditionOnceyouhavedeterminedwhetherthefileexistswiththerequestedversionyoucanusethepropertyinacondition.Thefollowingisasimpleexamplethatpreventsinstallationoftheapplicationiftheuser32.dllfileversionistoolow.

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

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

Page 227: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HowTo:WriteaRegistryEntryDuringInstallationWritingregistryentriesduringinstallationissimilartowritingfilesduringinstallation.Youdescribetheregistryhierarchyyouwanttowriteinto,specifytheregistryvaluestocreate,thenaddthecomponenttoyourfeaturelist.

Page 228: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step1:DescribetheregistrylayoutandvaluesThefollowingexampleillustrateshowtowritetworegistryentries,onetoaspecificvalueandtheothertothedefaultvalue.

<DirectoryRefId="TARGETDIR"><ComponentId="RegistryEntries"Guid="PUT-GUID-HERE"><RegistryKeyRoot="HKCU"Key="Software\Microsoft\MyApplicationName"Action="createAndRemoveOnUninstall"><RegistryValueType="integer"Name="SomeIntegerValue"Value="1"KeyPath="yes"/><RegistryValueType="string"Value="DefaultValue"/></RegistryKey></Component></DirectoryRef>

ThesnippetbeginswithaDirectoryRefthatpointstotheTARGETDIRdirectorydefinedbyWindowsInstaller.Thiseffectivelymeanstheregistryentriesshouldbeinstalledtothetargetuser'smachine.UndertheDirectoryRefisaComponentelementthatgroupstogethertheregistryentriestobeinstalled.ThecomponentisgivenanidforreferencelaterintheWiXprojectandauniqueguid.

Theregistryentriesarecreatedbyfirstusingthe<RegistryKey>elementtospecifywhereintheregistrythevaluesshouldgo.InthisexamplethekeyisunderHKEY_CURRENT_USER\Software\Microsoft\MyApplicationName.TheoptionalActionattributeisusedtotellWindowsInstallerthatthekeyshouldbecreated(ifnecessary)oninstall,andthatthekeyandallitssub-valuesshouldberemovedonuninstall.

UndertheRegistryKeyelementthe<RegistryValue>elementisusedtocreatetheactualregistryvalues.ThefirstistheSomeIntegerValuevalue,whichisoftypeintegerandhasavalueof1.ItisalsomarkedastheKeyPathforthecomponent,whichisusedbytheWindowsInstallertodeterminewhetherthiscomponentisinstalledonthemachine.ThesecondRegistryValueelementsetsthedefaultvalueforthekeytoastringvalueofDefaultValue.

Page 229: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

TheidattributeisomittedontheRegistryKeyandRegistryValueelementsbecausethereisnoneedtorefertotheseitemselsewhereintheWiXprojectfile.WiXwillauto-generateidsfortheelementsbasedontheregistrykey,value,andparentcomponentname.

Page 230: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

<ComponentRefId="RegistryEntries"/>

The<ComponentRef>elementisusedtoreferencethecomponentcreatedinStep1viatheIdattribute.

Page 231: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HowTo:ReadaRegistryEntryDuringInstallationInstallersoftenneedtolookupthevalueofaregistryentryduringtheinstallationprocess.Theresultingregistryvalueisoftenusedinaconditionalstatementlaterininstall,suchastoinstallaspecificcomponentifaregistryentryisnotfound.Thishowtodemonstratesreadinganintegervaluefromtheregistryandverifyingthatitexistsinalaunchcondition.

Page 232: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step1:ReadtheregistryentryintoapropertyRegistryentriesarereadusingthe<RegistrySearch>element.Thefollowingsnippetlooksforthethepresenceofthekeythatidentifiestheinstallationof.NETFramework2.0onthetargetmachine*.

<PropertyId="NETFRAMEWORK20"><RegistrySearchId="NetFramework20"Root="HKLM"Key="Software\Microsoft\NETFrameworkSetup\NDP\v2.0.50727"Name="Install"Type="raw"/></Property>

TheRegistrySearchelementspecifiesauniqueid,therootintheregistrytosearch,andthekeytolookunder.Thenameattributespecifiesthespecificvaluetoquery.Thetypeattributespecifieshowthevalueshouldbetreated.Rawindicatesthatthevalueshouldbeprefixedaccordingtothedatatypeofthevalue.Inthiscase,sinceInstallisaDWORD,theresultingvaluewillbeprependedwitha#.

TheabovesamplewillsettheNETFRAMEWORK20propertyto"#1"iftheregistrykeywasfound,andtonothingifitwasn't.

Page 233: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step2:UsethepropertyinaconditionAfterthepropertyissetyoucanuseitinaconditionanywhereinyourWiXproject.Thefollowingsnippetdemonstrateshowtouseittoblockinstallationif.NETFramework2.0isnotinstalled.

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

InstalledisaWindowsInstallerpropertythatensuresthecheckisonlydonewhentheuserisinstallingtheapplication,ratherthanonarepairorremove.TheNETFRAMEWORK20partoftheconditionwillpassifthepropertywasset.Ifitisnotsettheinstallerwilldisplaytheerrormessagethenaborttheinstallationprocess.

*Thisregistryentryisusedforsamplepurposesonly.Ifyouwanttodetecttheinstalledversionof.NETFrameworkyoucanusethebuilt-inWiXsupport.FormoreinformationseeHowTo:Checkfor.NETFrameworkVersions.

Page 234: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 235: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

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

TheProgramMenuFolderIdisastandardWindowsInstallerpropertythatpointstotheStartMenufolderonthetargetmachine.ThesecondDirectoryelementcreatesasubfolderontheStartMenucalledMyApplicationName,andgivesitanidforuselaterintheWiXproject.

Page 236: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step2:AddtheshortcuttoyourinstallerpackageAshortcutisaddedtotheinstallerusingthreeelements:a<Component>elementtospecifyanatomicunitofinstallation,a<Shortcut>elementtospecifytheshortcutthatshouldbeinstalled,anda<RemoveFolder>elementtoensurepropercleanupwhenyourapplicationisuninstalled.

ThefollowingsampleusesthedirectorystructuredefinedinStep1tocreatetheStartMenushortcut.

<DirectoryRefId="ApplicationProgramsFolder"><ComponentId="ApplicationShortcut"Guid="PUT-GUID-HERE"><ShortcutId="ApplicationStartMenuShortcut"Name="MyApplicationName"Description="MyApplicationDescription"Target="[APPLICATIONROOTDIRECTORY]MyApplication.exe"WorkingDirectory="APPLICATIONROOTDIRECTORY"/><RemoveFolderId="ApplicationProgramsFolder"On="uninstall"/><RegistryValueRoot="HKCU"Key="Software\Microsoft\MyApplicationName"Name="installed"Type</Component></DirectoryRef>

The<DirectoryRef>elementisusedtorefertothedirectorystructurecreatedinstep1.ByreferencingtheApplicationProgramsFolderdirectorytheshortcutwillbeinstalledintotheuser'sStartMenuinsidetheMyApplicationNamefolder.

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

Tosetanoptionaliconfortheshortcutyouneedtofirstincludetheicon

Page 237: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

inyourinstallerusingthe<Icon>element,thenreferenceitusingtheIconattributeontheShortcutelement.

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

Page 238: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

<ComponentRefId="ApplicationShortcut"/>

The<ComponentRef>elementisusedtoreferencethecomponentcreatedinStep2viatheIdattribute.

Page 239: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

TheCompleteSampleThefollowingisacompletesamplethatusestheaboveconcepts.ThisexamplecanbeinsertedintoaWiXprojectandcompiled,orcompiledandlinkedfromthecommandline,togenerateaninstaller.

<?xmlversion="1.0"encoding="UTF-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><ProductId="*"UpgradeCode="PUT-GUID-HERE"Version="1.0.0.0"Language="1033"Name="MyApplicationName"<PackageInstallerVersion="300"Compressed="yes"/><MediaId="1"Cabinet="myapplication.cab"EmbedCab="yes"/>

<DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"><DirectoryId="APPLICATIONROOTDIRECTORY"Name="MyApplicationName"/></Directory><!--Step1:Definethedirectorystructure--><DirectoryId="ProgramMenuFolder"><DirectoryId="ApplicationProgramsFolder"Name="MyApplicationName"/></Directory></Directory>

<DirectoryRefId="APPLICATIONROOTDIRECTORY"><ComponentId="myapplication.exe"Guid="PUT-GUID-HERE"><FileId="myapplication.exe"Source="MySourceFiles\MyApplication.exe"KeyPath="yes"Checksum</Component><ComponentId="documentation.html"Guid="PUT-GUID-HERE"><FileId="documentation.html"Source="MySourceFiles\documentation.html"KeyPath="yes"/></Component></DirectoryRef>

<!--Step2:Addtheshortcuttoyourinstallerpackage--><DirectoryRefId="ApplicationProgramsFolder"><ComponentId="ApplicationShortcut"Guid="PUT-GUID-HERE"><ShortcutId="ApplicationStartMenuShortcut"Name="MyApplicationName"Description="MyApplicationDescription"Target="[APPLICATIONROOTDIRECTORY]MyApplication.exe"WorkingDirectory="APPLICATIONROOTDIRECTORY"/><RemoveFolderId="ApplicationProgramsFolder"On="uninstall"/><RegistryValueRoot="HKCU"Key="Software\Microsoft\MyApplicationName"Name="installed</Component></DirectoryRef>

<FeatureId="MainApplication"Title="MainApplication"Level="1"><ComponentRefId="myapplication.exe"/><ComponentRefId="documentation.html"/><!--Step3:TellWiXtoinstalltheshortcut-->

Page 240: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 241: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HowTo:CreateaShortcuttoaWebpageWiXprovidessupportforcreatingshortcutstoInternetsitesaspartoftheinstallprocess.ThishowtodemonstratesreferencingthenecessaryutilitylibraryandaddinganInternetshortcuttoyourinstaller.ItassumesyouhavealreadyfollowedthestepsintheHowTo:CreateashortcutontheStartMenu.

Page 242: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step1:AddtheWiXUtilityextensionslibrarytoyourprojectTheWiXsupportforInternetshortcutsisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommand-lineyouneedtoaddthefollowingtoyourcandleandlightcommandlines:

-extWiXUtilExtension

IfyouareusingWiXinVisualStudioyoucanaddtheextensionsusingtheAddReferencedialog:

1. OpenyourWiXprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd

Reference...3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog

Page 243: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step2:AddtheWiXUtilityextensionsnamespacetoyourprojectOncethelibraryisaddedtoyourproject,youneedtoaddtheUtilityextensionsnamespacetoyourprojectsoyoucanaccesstheappropriateWiXelements.Todothismodifythetop-level<Wix>elementinyourprojectbyaddingthefollowingattribute:

xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"

AcompleteWixelementwiththestandardnamespaceandtheUtilityextensionsnamespaceaddedlookslikethis:

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

Page 244: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step3:AddtheInternetshortcuttoyourinstallerpackageInternetshortcutsarecreatedusingthe<Util:InternetShortcut>element.ThefollowingexampleaddsanInternetShortcutelementtotheexistingshortcutcreationexamplefromHowTo:CreateashortcutontheStartMenu.

<DirectoryRefId="ApplicationProgramsFolder"><ComponentId="ApplicationShortcut"Guid="PUT-GUID-HERE"><ShortcutId="ApplicationStartMenuShortcut"Name="MyApplicationName"Description="MyApplicationDescription"Target="[APPLICATIONROOTDIRECTORY]MyApplication.exe"WorkingDirectory="APPLICATIONROOTDIRECTORY"/><util:InternetShortcutId="OnlineDocumentationShortcut"Name="MyOnlineDocumentation"Target="http://www.wixwiki.com/"/><RemoveFolderId="ApplicationProgramsFolder"On="uninstall"/><RegistryValueRoot="HKCU"Key="Software\Microsoft\MyApplicationName"Name="installed"Type</Component></DirectoryRef>

TheInternetShortcutisgivenauniqueidwiththeIdattribute.inthiscasetheapplication'sStartMenufolder.TheNameattributespecifiesthenameoftheshortcutontheStartMenu.TheTargetattributespecifiesthedestinationaddressfortheshortcut.The<DirectoryRef>elementisusedtorefertothedirectorystructurealreadydefinedbytheprojectfile.ByreferencingtheApplicationProgramsFolderdirectorytheshortcutwillbeinstalledintotheuser'sStartMenuinsidetheMyApplicationNamefolder.

Page 245: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HowTo:CreateanUninstallShortcutWheninstallinganapplicationitisacommonrequirementtoplaceashortcutontheuser'sStartMenutoprovideamethodofuninstallingtheapplication.ThishowtodemonstratesthestepsrequiredtocreateanuninstallshortcutonthestartmenuthatpassesallICEvalidationchecks.

ThishowtoassumesyouarestartingwiththesampledescribedtheHowTo:CreateaShortcutontheStartMenutopic.

Page 246: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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.

Page 247: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

TheCompleteSampleThefollowingisacompletesamplethatusestheaboveconcepts.ThisexamplecanbeinsertedintoaWiXprojectandcompiled,orcompiledandlinkedfromthecommandline,togenerateaninstaller.

<?xmlversion="1.0"encoding="UTF-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><ProductId="*"UpgradeCode="PUT-GUID-HERE"Version="1.0.0.0"Language="1033"Name="MyApplicationName"<PackageInstallerVersion="300"Compressed="yes"/><MediaId="1"Cabinet="myapplication.cab"EmbedCab="yes"/>

<DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"><DirectoryId="APPLICATIONROOTDIRECTORY"Name="MyApplicationName"/></Directory><DirectoryId="ProgramMenuFolder"><DirectoryId="ApplicationProgramsFolder"Name="MyApplicationName"/></Directory></Directory>

<DirectoryRefId="APPLICATIONROOTDIRECTORY"><ComponentId="myapplication.exe"Guid="PUT-GUID-HERE"><FileId="myapplication.exe"Source="MySourceFiles\MyApplication.exe"KeyPath="yes"Checksum</Component><ComponentId="documentation.html"Guid="PUT-GUID-HERE"><FileId="documentation.html"Source="MySourceFiles\documentation.html"KeyPath="yes"/></Component></DirectoryRef>

<DirectoryRefId="ApplicationProgramsFolder"><ComponentId="ApplicationShortcut"Guid="PUT-GUID-HERE"><ShortcutId="ApplicationStartMenuShortcut"Name="MyApplicationName"Description="MyApplicationDescription"Target="[APPLICATIONROOTDIRECTORY]MyApplication.exe"WorkingDirectory="APPLICATIONROOTDIRECTORY"/><!--Step1:Addtheuninstallshortcuttoyourinstallerpackage--><ShortcutId="UninstallProduct"Name="UninstallMyApplication"Description="UninstallsMyApplication"Target="[System64Folder]msiexec.exe"Arguments="/x[ProductCode]"/><RemoveFolderId="ApplicationProgramsFolder"On="uninstall"/><RegistryValueRoot="HKCU"Key="Software\Microsoft\MyApplicationName"Name="installed</Component></DirectoryRef>

Page 248: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 249: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HowTo:NGenManagedAssembliesDuringInstallationNGenduringinstallationcanimproveyourmanagedapplication'sstartuptimebycreatingnativeimagesofthemanagedassembliesonthetargetmachine.ThishowtodescribesusingtheWiXsupporttoNGenmanagedassembliesatinstalltime.

Page 250: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step1:AddtheWiX.NETextensionslibrarytoyourprojectTheWiXsupportforNGenisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommand-lineyouneedtoaddthefollowingtoyourcandleandlightcommandlines:

-extWixNetFxExtension

IfyouareusingWiXinVisualStudioyoucanaddtheextensionsusingtheAddReferencedialog:

1. OpenyourWiXprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd

Reference...3. SelecttheWixNetFxExtension.dllassemblyfromthelistandclick

Add4. ClosetheAddReferencedialog

Page 251: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step2:AddtheWiX.NETextensionsnamespacetoyourprojectOncethelibraryisaddedtoyourprojectyouneedtoaddthe.NETextensionsnamespacetoyourprojectsoyoucanaccesstheappropriateWiXelements.Todothismodifythetop-level<Wix>elementinyourprojectbyaddingthefollowingattribute:

xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension"

AcompleteWixelementwiththestandardnamespaceandthe.NETextensionsnamespaceaddedlookslikethis:

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

Page 252: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step3:MarkthemanagedfilesforNGenOnceyouhavethe.NETextensionlibraryandnamespaceaddedtoyourprojectyoucanusethe<NetFx:NativeImage>elementtoenableNGenonyourmanagedassemblies.TheNativeImageelementgoesinsideaparentFileelement:

<ComponentId="myapplication.exe"Guid="PUT-GUID-HERE"><FileId="myapplication.exe"Source="MySourceFiles\MyApplication.exe"KeyPath="yes"Checksum=<netfx:NativeImageId="ngen_MyApplication.exe"Platform="32bit"Priority="0"AppBaseDirectory=</File></Component>

TheIdattributeisauniqueidentifierforthenativeimage.ThePlatformattributespecifiestheplatformsforwhichthenativeimageshouldbegenerated,inthiscase32-bit.ThePriorityattributespecifieswhentheimagegenerationshouldoccur,inthiscaseimmediatelyduringthesetupprocess.TheAppBaseDirectoryattributeidentifiesthedirectorytousetosearchfordependentassembliesduringtheimagegeneration.Inthiscaseitissettotheinstalldirectoryfortheapplication.

Page 253: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 254: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step1:DefineaDirectorySearchelementYoufirstneedtodefinetheparentDirectorySearchelement.Thisisexpectedtocontainthedifferentfilesorsubdirectoriesyouwillassigntoseparateproperties.

<PropertyId="SHDOCVW"><DirectorySearchId="WinDir"Path="[WindowsFolder]"><DirectorySearchId="Media"Path="Media"><FileSearchId="Chimes"Name="chimes.wav"/></DirectorySearch></DirectorySearch></Property>

Thiswillsearchforthefile"chimes.wav"undertheMediadirectoryinWindows.Ifthefileisfound,thefullpathwillbeassignedtothepublicproperty"SHDOCVW".

Page 255: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step2:DefineaDirectorySearchRefelementTosearchforanotherfileintheMediadirectory,youneedtoreferenceallthesameId,ParentId,andPathattributes.BecausetheMediaDirectorySearchelementisnestedundertheWinDirDirectorySearchelement,itsParentattributeisautomaticallyassignedtheparentDirectorySearchelement'sIdattributevalue;thus,thatiswhatyoumustspecifyfortheDirectorySearchRefelement'sParentattributevalue.

<PropertyId="USER32"><DirectorySearchRefId="Media"Parent="WinDir"Path="Media"><FileSearchId="Chord"Name="chord.wav"/></DirectorySearchRef></Property>

IfyouwantedtorefertoanotherDirectorySearchelementthatusedtheIdMediabutwasunderadifferentparentpath,youwouldhavetodefineanewDirectorySearchelementunderadifferentparentthaninstep1.

Page 256: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HowTo:GettheparentdirectoryofafilesearchYoucansetapropertytotheparentdirectoryofafile.

Page 257: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

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

Page 258: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step2:DefinetheparentdirectorytofindUnderthesearchroot,definethedirectoryyouwantreturnedandsettheDirectorySearch/@AssignToPropertyattributeto'yes'.YoumustthendefinethefileyouwanttofindusingauniqueFileSearch/@Idattributevalue.

<PropertyId="NGEN2DIR"><DirectorySearchId="Windows"Path="[WindowsFolder]"><DirectorySearchId="MS.NET"Path="Microsoft.NET"><DirectorySearchId="Ngen2Dir"Depth="2"AssignToProperty="yes"><FileSearchId="Ngen_exe"Name="ngen.exe"MinVersion="2.0.0.0"</DirectorySearch></DirectorySearch></DirectorySearch></Property>

Inthisexample,ifngen.exeisnewerthanversion2.0.0.0andisfoundnomorethantwodirectoriesunder[WindowsFolder]Microsoft.NETitsparentdirectoryisreturnedintheNGEN2DIRproperty.

Page 259: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HowTo:RedistributablesandInstallChecksThissectionincludesguidesforcommonredistributableinstallationsandpre-installationchecks.

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

Page 260: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 261: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step1:AddtheWiX.NETextensionslibrarytoyourprojectTheWiXsupportforNGenisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommand-lineyouneedtoaddthefollowingtoyourcandleandlightcommandlines:

-extWiXNetFxExtension

IfyouareusingWiXinVisualStudioyoucanaddtheextensionsusingtheAddReferencedialog:

1. OpenyourWiXprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd

Reference...3. SelecttheWixNetFxExtension.dllassemblyfromthelistandclick

Add4. ClosetheAddReferencedialog

Page 262: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step2:AddtheWiX.NETextensionsnamespacetoyourprojectOncethelibraryisaddedtoyourprojectyouneedtoaddthe.NETextensionsnamespacetoyourprojectsoyoucanaccesstheappropriateWiXelements.Todothismodifythetop-level<Wix>elementinyourprojectbyaddingthefollowingattribute:

xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension"

AcompleteWixelementwiththestandardnamespaceandthe.NETextensionsnamespaceaddedlookslikethis:

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

Page 263: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step3:ReferencetherequiredpropertiesinyourprojectThe.NETFrameworkextensionsforWiXdefinepropertiesforallcurrentversionsofthe.NETFramework,includingservicepacklevels.Tomakethesepropertiesavailabletoyourinstalleryouneedtoreferencethemusingthe<PropertyRef>element.Foreachpropertyyouwanttouse,addthecorrespondingPropertyReftoyourproject.Forexample,ifyouareinterestedindetecting.NETFramework2.0addthefollowing:

<PropertyRefId="NETFRAMEWORK20"/>

Page 264: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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.

Page 265: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

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

Page 266: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step1:Openyour.wixprojfileforeditingToedityour.wixprojfileforeditinginVisualStudio:

1. OpentheprojectinVisualStudio2. InSolutionExplorerrightclickonyourprojectfileandselect

UnloadProject3. InSolutionExplorerrightclickonyourprojectfileandselectEdit

<projectname>

Page 267: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 268: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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.

Page 269: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step4:BuildtheprojectDothefollowingtore-opentheprojectforbuilding:

1. Savethechanges2. InSolutionExplorerrightclickonyourprojectfileandselect

ReloadProject3. IntheresultingconfirmationdialogselectYes

Thenbuildyourproject.Afteryourinstallerisbuiltthebootstrapperwillbuildandbeplacedintheoutputdirectory.

Page 270: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 271: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

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

PriortoredistributingtheDirectXbinariesyoushouldreadandunderstandthelicenseagreementfortheredistributablefiles.ThelicenseagreementcanbefoundintheDocumentation\LicenseAgreements\DirectXRedist.txtfileinyourDirectXSDKinstallation.

Page 272: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step1:AddtheinstallerfilestoyourWiXprojectAddingthefilestotheWiXprojectfollowsthesameprocessasdescribedinHowTo:Addafiletoyourinstaller.Thefollowingexampleillustratesatypicalfragmentthatincludesthenecessaryfiles:

<DirectoryRefId="APPLICATIONROOTDIRECTORY"><DirectoryId="DirectXRedistDirectory"Name="DirectX9.0c"><ComponentId="DirectXRedist"Guid="PUT-GUID-HERE"><FileId="DXSETUPEXE"Source="MySourceFiles\DirectXMinInstall\dxsetup.exe"KeyPath="yes"Checksum="yes"/><FileId="dxupdate.cab"Source="MySourceFiles\DirectXMinInstall\dxupdate.cab"/><FileId="dxdllreg_x86.cab"Source="MySourceFiles\DirectXMinInstall\dxdllreg_x86.cab"/><FileId="dsetup32.dll"Source="MySourceFiles\DirectXMinInstall\dsetup32.dll"/><FileId="dsetup.dll"Source="MySourceFiles\DirectXMinInstall\dsetup.dll"/><FileId="DEC2006_d3dx9_32_x86.cab"Source="MySourceFiles\DirectXMinInstall\DEC2006_d3dx9_32_x86.cab"/></Component></Directory></DirectoryRef>

<FeatureId="DirectXRedist"Title="!(loc.FeatureDirectX)"AllowAdvertise="no"Display="hidden"Level="1"><ComponentRefId="DirectXRedist"/></Feature>

ThefilesincludedaretheminimalsetoffilesrequiredbytheDirectX9.0installprocess,asdescribedintheMSDNdocumentation.Thelastfileinthelist,DEC2006_d3dx9_32_x86.cabcontainsthespecificDirectXcomponentrequiredbytheinstalledapplication.Thesefilesareallincludedinasinglecomponentas,eveninapatchingsituation,allthefilesmustgotogether.AFeatureelementisusedtocreateafeaturespecifictoDirectXinstallation,anditsDisplayattributeissettohiddento

Page 273: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

preventtheuserfromseeingthefeatureinanyUIthatmaybepartofyourinstaller.

Page 274: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step2:AddacustomactiontoinvoketheinstallerToruntheDirectX9.0installeracustomactionisaddedthatrunsbeforetheinstallisfinalized.The<CustomAction>,<InstallExecuteSequence>and<Custom>elementsareusedtocreatethecustomaction,asillustratedinthefollowingsample.

<CustomActionId="InstallDirectX"FileKey="DXSETUPEXE"ExeCommand="/silent"Execute="deferred"Impersonate="no"Return="check"/>

<InstallExecuteSequence><CustomAction="InstallDirectX"Before="InstallFinalize"><![CDATA[NOTREMOVE]]></Custom></InstallExecuteSequence>

TheCustomActionelementcreatesthecustomactionthatrunsthesetup.Itisgivenauniqueid,andtheFileKeyattributeisusedtoreferencetheinstallerapplicationfromStep1.TheExeCommandattributeaddsthe/silentflagtotheinstallertoensuretheuserisnotpresentedwithanyDirectXinstalleruserinterface.TheExecuteattributeissettodeferredandtheImpersonateattributeissettonotoensurethecustomactionwillrunelevated,ifnecessary.TheReturnattributeissettochecktoensurethecustomactionrunssynchronously.

TheCustomelementisusedinsideanInstallExecuteSequencetoaddthecustomactiontotheactualinstallationprocess.TheActionattributereferencestheCustomActionbyitsuniqueid.TheBeforeattributeissettoInstallFinalizetorunthecustomactionbeforetheoverallinstallationiscomplete.TheconditionpreventstheDirectXinstallerfromrunningwhentheuseruninstallsyourapplication,sinceDirectXcomponentscannotbeuninstalled.

Page 275: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

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

TheProgressTextelementusestheActionattributetoreferencethecustomactionbyitsuniqueid.ThevalueoftheProgressTextelementissettothedisplaytextfortheinstallprogress.

Page 276: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 277: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step1:ObtainthecorrectVisualC++runtimemergemodulesTheVisualC++runtimemergemodulesareinstalledwithVisualStudioandarelocatedin\ProgramFiles\CommonFiles\MergeModules.TheVisualC++8.0runtimefileisMicrosoft_VC80_CRT_x86.msm.ThissameMSMisusedfortheVisualC++8.0SP1runtime,howeveritisupdatedinplacebytheVisualStudio2005SP1installer.TheVisualStudio9.0runtimefileisMicrosoft_VC90_CRT_x86.msm.ThereisgenerallynoneedtoincludethepolicyMSMsaspartoftheinstallation.

Page 278: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step2:IncludethemergemoduleinyourinstallerToincludethemergemoduleinyourinstallerusethe<Merge>and<MergeRef>elements.Thefollowingexampleillustrateshowtheseelementsareused.

<DirectoryRefId="TARGETDIR"><MergeId="VCRedist"SourceFile="MySourceFiles\Microsoft_VC80_CRT_x86.msm"DiskId="1"Language</DirectoryRef>

<FeatureId="VCRedist"Title="VisualC++8.0Runtime"AllowAdvertise="no"Display="hidden"Level="<MergeRefId="VCRedist"/></Feature>

TheMergeelementensuresthemergemoduleisincludedinthefinalWindowsInstallerpackage.AuniqueidisassignedusingtheIdattribute.TheSourceFileattributepointstothelocationofthemergemoduleonyourmachine.TheDiskIdattributeshouldmatchtheDiskIdspecifiedinyourproject'sMediaelement.TheLanguageattributeshouldalwaysbe0.

TheMergeRefelementisusedwithinaFeatureelementtoactuallyinstallthemergemodule.IntheexampleaboveafeaturespecifictotheruntimeiscreatedandmarkedashiddentopreventitfromdisplayinginanyUIyourinstallermayuse.TheMergeRefreferstothemergemodulebyitsuniqueid.

Page 279: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AnoteaboutICEwarningsIncludingtheVisualC++RuntimemergemoduleinyourinstallerwillresultinthefollowingICEwarnings:

light.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Component,Column:KeyPath,Key(s):downlevel_manifest.8.0.50727.762.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Component,Column:KeyPath,Key(s):downlevel_manifest.8.0.50727.100.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Component,Column:KeyPath,Key(s):downlevel_manifest.8.0.50727.101.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Component,Column:KeyPath,Key(s):downlevel_manifest.8.0.50727.103.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Component,Column:KeyPath,Key(s):downlevel_manifest.8.0.50727.104.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Component,Column:KeyPath,Key(s):downlevel_manifest.8.0.50727.193.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Registry,Column:Registry,Key(s):reg_downlevel_manifest.8.0.50727.100.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Registry,Column:Registry,Key(s):reg_downlevel_manifest.8.0.50727.101.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Registry,Column:Registry,Key(s):reg_downlevel_manifest.8.0.50727.103.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Registry,Column:Registry,Key(s):reg_downlevel_manifest.8.0.50727.104.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Registry,Column:Registry,Key(s):reg_downlevel_manifest.8.0.50727.193.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Registry,Column:Registry,Key(s):reg_downlevel_manifest.8.0.50727.762.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE25:PossibledependencyfailureaswedonotfindCRT.Policy.63E949F6_03BC_5C40_FF1F_C8B3B9A1E18E@0vinModuleSignaturetablelight.exe(0,0):warningLGHT1076:ICE82:ThisactionSystemFolder.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Ehasduplicatesequencenumber1inthetableInstallExecuteSequencelight.exe(0,0):warningLGHT1076:ICE82:ThisactionSystemFolder.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Ehasduplicatesequencenumber1inthetableInstallUISequencelight.exe(0,0):warningLGHT1076:ICE82:ThisactionSystemFolder.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Ehasduplicatesequencenumber1inthetableAdminExecuteSequencelight.exe(0,0):warningLGHT1076:ICE82:ThisactionSystemFolder.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Ehasduplicatesequencenumber1inthetableAdminUISequencelight.exe(0,0):warningLGHT1076:ICE82:ThisactionSystemFolder.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Ehasduplicatesequencenumber1inthetableAdvtExecuteSequence

ThesewarningsareexpectedandareduetohowtheVisualC++mergemoduleswereauthored.FormoredetailsseeAaronStebner'sblogentry.

Page 280: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HowTo:BlockInstallationBasedonOSVersionWindowsInstallerprovidesthestandardVersionNTpropertythatcanbeusedtodetecttheversionoftheuser'soperatingsystem.Oftenitisdesirabletousethispropertytoblockinstallationofanapplicationonincompatibleversionsofanoperatingsystem.ThefollowingsampledemonstrateshowtousethispropertytoblockinstallationofanapplicationonoperatingsystemspriortoWindowsVista/WindowsServer2008.

<ConditionMessage="ThisapplicationisonlysupportedonWindowsVista,WindowsServer2008,orhigher.<![CDATA[InstalledOR(VersionNT>=600)]]></Condition>

InstalledisaWindowsInstallerpropertythatensuresthecheckisonlydonewhentheuserisinstallingtheapplication,ratherthanonarepairorremove.TheVersionNTpartwillpassiftheproperty'svalueisgreaterthanorequalto600,theversionthatmatchesWindowsVista,theinstallationwillproceed.ThevaluesfordifferentversionsoftheWindowsoperatingsystemareavailableonMSDN.

Tocheckforversionsof64-bitWindowsusetheVersionNT64property.TocheckforversionsofWindowspriortoWindowsNTusetheWindows9Xproperty.

Page 281: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HowTo:UpdatesThissectionincludesguidesforbuildingupdatesforyourinstaller.

HowTo:Implementamajorupgradeinyourinstaller

Page 282: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Youcanusethefollowingstepstoenablemajorupgradesinyour.msi,buildmultipleversionsofyour.msiandtestmajorupgradescenarios.

Page 283: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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.

Page 284: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Scheduletheremovalofoldversionsofthe.msi

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

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

IfyoudonotscheduletheRemoveExistingProductsaction,youwillseeanerrorlikethefollowing:

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

WindowsInstallerlooksforotherinstalled.msifileswiththesameUpgradeCodevalueduringtheFindRelatedProductsaction.IfyoudonotspecificallyscheduletheFindRelatedProductsactioninyoursetupauthoring,WiXwillautomaticallyscheduleitforyouwhenitcreatesyour.msi.

Page 285: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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>

Page 286: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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.

Page 287: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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.

Page 288: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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.

Page 289: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HowTo:GeneralHowTosThissectionincludesguidestogeneraltopicssuchasdebuggingandlogginginstallations.

HowTo:GetalogofyourinstallationfordebuggingHowTo:LookinsideyourMSIwithOrcaHowTo:GenerateaGUID

Page 290: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HowTo:GetaLogofYourInstallationforDebuggingWhenauthoringinstallersitisoftennecessarytogetalogoftheinstallationfordebuggingpurposes.Thisisparticularlyhelpfulwhentryingtodebugfilesearchesandlaunchconditions.Toobtainalogofaninstallationusethecommandlinemsiexectool:

msiexec/iMyApplication.msi/l*vMyLogFile.txt

ThiswillinstallyourapplicationandwriteaverboselogtoMyLogFile.txtinthecurrentdirectory.

IfyouneedtogetalogofyourinstallerwhenitislaunchedfromtheAdd/RemoveProgramsdialogyoucanenableWindowsInstallerloggingviatheregistry.

Page 291: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

OnceOrcaisinstalledyoucanrightclickonanyMSIfilefromWindowsExplorerandselectEditwithOrcatoviewthecontentsoftheMSI.

Page 292: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HowTo:GenerateaGUIDGUIDsareusedextensivelywiththeWindowsInstallertouniquelyidentifyproducts,components,upgrades,andotherkeyelementsoftheinstallationprocess.TogenerateGUIDsusetheguidgentoolthatshipswithVisualStudio,generallylocatedunderTools>CreateGUIDmenu,ortheGuidGen.comsite.GUIDsgeneratedthiswaywillworkfineinWiX,howeversincetheyareinmixedcasetheymaycauseissuesifyousharethemwithusersofother,non-WiXtools.ForcompletecompatibilitybesuretochangethelettersintheGUIDtouppercasepriortouse.

AllexamplesintheHowTodocumentationusethetextPUT-GUID-HEREforGUIDs.EveryPUT-GUID-HEREmustbereplacedwithanewly-generatedGUID.

The<Component>,<Package>,<Patch>,<Product>elementssupportauto-generationofGUIDseverytimeyoubuildyourprojectbyspecifyinga*inplaceoftheGUID.Forexample:

<ProductId="*"Version="1.0.0.0"Language="1033"Name="MyApplicationName"Manufacturer="MyManufacturerName">

FortheComponentelementthegeneratedGUIDisbasedontheinstalldirectoryandfilenameoftheKeyPathforthecomponent.ThisGUIDwillstayconsistentfrombuild-to-buildprovidedthedirectoryandfilenameoftheKeyPathdonotchange.

Page 293: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UsingWiXextensionsTheWiXextensionscanbeusedbothonthecommandlineandwithintheVisualStudioIDE.WhenyouuseWiXextensionsintheVisualStudioIDE,youcanalsoenableIntelliSenseforeachWiXextension.

Page 294: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UsingWiXextensionsonthecommandlineTouseaWiXextensionwhencallingtheWiXtoolsfromthecommandline,usethe-extcommandlineparameterandsupplytheextensionassembly(DLL)neededforyourproject.EachextensionDLLmustbepassedinviaseparate-extparameters.Forexample:

light.exeMySetup.wixobj-extWixUIExtension-extWixUtilExtension-ext"C:\MyWiXExtensions\FooExtension.dll"-outMySetup.msi

ExtensionassembliesinthesamedirectoryastheWiXtoolscanbereferredtowithoutpathor.dllextension.Extensionassembliesinotherdirectoriesmustuseacompletepathname,including.dllextension.

Note:CodeAccessSecuritymanagesthetrustlevelsofassembliesloadedbymanagedcode,includingWiXextensions.Bydefault,CASpreventsaWiXtoolrunningonalocalmachinefromloadingaWiXextensiononanetworkshare.

Page 295: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UsingWiXextensionsinVisualStudioTouseaWiXextensionwhenbuildinginVisualStudiowiththeWiXVisualStudiopackage:

1. Right-clickontheWiXprojectintheVisualStudiosolutionexplorerandselectAddReference...

2. IntheAddWiXLibraryReferencedialog,clickontheBrowsetabandbrowsetotheWiXextensionDLLthatyouwanttoinclude.

3. ClicktheAddbuttontoaddareferencetothechosenextensionDLL.

4. BrowseandaddotherextensionDLLsasneeded.

ToenableIntelliSenseforaWiXextensionintheVisualStudioIDE,youneedtoaddanXMLNSdeclarationtothe<Wix>elementinyour.wxsfile.Forexample,ifyouwanttousetheNativeImagefunctionalityintheWixNetFxExtension,the<Wix>elementwouldlooklikethefollowing:

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

Afteraddingthis,youcanaddanelementnamed<netfx:NativeImage/>andviewIntelliSensefortheattributessupportedbytheNativeImageelement.

Page 296: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

OptimizingbuildsWiXprovidestwowaysofspeedingupthecreationofcabinetsforcompressingfiles:

Multithreadedcabinetcreation.Cabinetreuse.

Page 297: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

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

Youcanusemultiplecabinetsbothexternallyandembeddedinthe.msipackage(usingtheMedia/@EmbedCabattribute).

Page 298: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CabinetreuseIfyoubuildsetupswithfilesthatdon'tchangeoften,youcangeneratecabinetsforthosefilesonce,thenreusethemwithoutspendingtheCPUtimetore-buildandre-compressthem.

TherearetwoLight.exeswitchesinvolvedincabinetreuse:

-cc(CabinetCachePathpropertyin.wixprojprojects)Thevalueisthepathtousetobothwritenewcabinetsand,when-reusecab/ReuseCabinetCacheisspecified,lookforcachedcabinets.

-reusecab(ReuseCabinetCachepropertyin.wixprojprojects)When-cc/CabinetCachePathisalsospecified,WiXreusescabinetsthatdon'tneedtoberebuilt.

WiXautomaticallyvalidatesthatacachedcabinetisstillvalidbyensuringthat:

Thenumberoffilesinthecachedcabinetmatchesthenumberoffilesbeingbuilt.Thenamesofthefilesareallidentical.Theorderoffilesisidentical.Thetimestampsforallfilesallidentical.

Page 299: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SpecifyingsourcefilesWiXprovidestwowaysofidentifyingasetuppackage'spayload-thefilesthatareincludedinthesetupandinstalledontheuser'smachine.

Byfilenameanddirectorytree.Byexplicitsourcefile.

Page 300: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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.

Page 301: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 302: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

treeofyourinstalledimageandyouhaveamoderate-to-deepdirectorytree,usingimplicitpathswillavoidrepetitioninyourauthoring.

Sourcedirectories

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

Page 303: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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.

Page 304: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

StandardCustomActionsTheWiXtoolsetcontainsseveralcustomactionstohandleconfiguringresourcessuchasInternetInformationServiceswebsitesandvirtualdirectories,SQLServerdatabasesandscripts,useraccounts,fileshares,andmore.ThesecustomactionsareprovidedinWiXextensions.

Togetstartedusingstandardcustomactions,seetheUsingStandardCustomActionstopic.

Forinformationaboutspecifictypesofstandardcustomactions,seethefollowingtopics:

FileSharecustomaction(locatedinWixUtilExtension)-createandconfigurefileshares.Internetshortcutcustomaction(locatedinWixUtilExtension)-createshortcutsthatpointtoWebsites.OSInfocustomactions(locatedinWixUtilExtension)-setpropertiesforOSinformationandstandarddirectoriesthatarenotprovidedbydefaultbyWindowsInstaller.PerformanceCountercustomaction(locatedinWixUtilExtension)-installanduninstallperformancecounters.QuietExecutioncustomaction(locatedinWixUtilExtension)-launchconsoleexecutableswithoutdisplayingawindow.SecureObjectscustomaction(locatedinWixUtilExtension)-secure(usingACLs)objectsthattheLockPermissionstablecannot.ServiceConfigurationcustomaction(locatedinWixUtilExtension)-configureattributesofaWindowsservicethattheServiceInstalltablecannot.ShellExecutecustomaction(locatedinWixUtilExtension)-launchdocumentorURLtargetsviatheWindowsshell.Usercustomactions(locatedinWixUtilExtension)-createandconfigurenewusers.WixDirectXExtension-customactionthatcanbeusedtochecktheDirectXcapabilitiesofthevideocardonthesystem.WixExitEarlyWithSuccess(locatedinWixUtilExtension)-customactionthatcanbeusedtoexitsetupwithoutinstallingtheproduct.

Page 305: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Thiscanbeusefulinsomemajorupgradescenarios.WixFailWhenDeferred(locatedinWixUtilExtension)-customactionthatcanbeusedtosimulateinstallationfailurestotestrollbackscenarios.WixFirewallExtension-FirewallcustomactionthatcanbeusedtoaddexceptionstotheWindowsFirewall.WixGamingExtension-GamingcustomactionthatcanbeusedtoaddiconsandtaskstoWindowsGameExplorer.WixIIsExtension-InternetInformationServices(IIS)customactionsthatcanbeusedtocreateandconfigurewebsites,virtualdirectories,webapplications,etc.WixNetFxExtension-customactiontogeneratenativecodefor.NETassemblies;propertiestodetect.NETFrameworkinstallstateandservicepacklevels.WixSqlExtension-SQLServercustomactionsthatcanbeusedtocreatedatabasesandexecuteSQLscriptsandstatements.WixVSExtension-customactiontoregisterhelpcollectionsandVisualStudiopackages;propertiestodetectinstallstateandservicepacklevelsforvariousVisualStudioeditions.XmlFilecustomaction(locatedinWixUtilExtension)-configureandmodifyXMLfilesaspartofyourinstallationpackage.

Page 306: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 307: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ExampleFirst,let'stryanexamplethatcreatesauseraccountwhentheMSIisinstalled.ThisfunctionalityisdefinedinWixUtilExtension.dllandexposedtotheuserasthe<User>element.

<Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'xmlns:util='http://schemas.microsoft.com/wix/UtilExtension'><ProductId='PutGuidHere'Name='TestUserProduct'Language='1033'Version='0.0.0.0'><PackageId='PUT-GUID-HERE'Description='TestUserPackage'InstallerVersion='200'Compressed='yes'/><DirectoryId='TARGETDIR'Name='SourceDir'><ComponentId='TestUserProductComponent'Guid='PutGuidHere'><util:UserId='TEST_USER1'Name='testName1'Password='pa$$$$word'/></Component></Directory>

<FeatureId='TestUserProductFeature'Title='TestUserProductFeature'Level='1'><ComponentRefId='TestUserProductComponent'/></Feature></Product></Wix>

Thisisasimpleexamplethatwillcreateanewuseronthemachinenamed"testName1"withthepassword"pa$$word"(thepreprocessorreplaces$$$$with$$).

TobuildtheMSIfromthisWiXauthoring:

1. Puttheabovecodeinafilenamedyourfile.wxs.2. Replacethe"PUT-GUID-HERE"attributeswithrealGUIDs.3. Run'candle.exeyourfile.wxs-ext%fullpathtoWixUtilExtension.dll%'4. Run'light.exeyourfile.wixobj-ext%fullpathtoWixUtilExtension.dll%

–outyourfile.msiyourfile.wixout'

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

Page 308: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

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

Page 309: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

OSInfocustomactionsTheWixQueryOsInfo,WixQueryOsDirs,andWixQueryOsDriverInfocustomactionsinwixca(partofWixUtilExtension)setpropertiesoverandabovetheMSIsetforOSproduct/suitedetectionandstandarddirectories.TheWixQueryOsWellKnownSIDcustomactionsetspropertiesforthelocalizednamesofsomebuiltinWindowsusersandgroups.

Tousethesecustomactionsyousimplyneedtoadda<PropertyRef>tothepropertyyouwanttouseandthenincludeWixUtilExtensionswhenlinking.Forexample:

<PropertyRefId="WIX_SUITE_SINGLEUSERTS"/><PropertyRefId="WIX_DIR_COMMON_DOCUMENTS"/><PropertyRefId="WIX_ACCOUNT_LOCALSERVICE"/>

WixUtilExtensionwillautomaticallyschedulethecustomactionsasneededaftertheAppSearchstandardaction.ForadditionalinformationaboutstandarddirectorytokensinWindowsandwhichonesaresupporteddirectlybyWindowsInstaller,seethefollowingtopicsintheMSDNdocumentation:

ConstantspecialitemIDlist(CSIDL)valuesWindowsInstallersystemfoldervalues

Page 310: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixQueryOsInfoProperties

WIX_SUITE_BACKOFFICE EquivalenttotheOSVERSIONINFOEXVER_SUITE_BACKOFFICEflag.

WIX_SUITE_BLADE EquivalenttotheOSVERSIONINFOEXVER_SUITE_BLADEflag.

WIX_SUITE_COMMUNICATIONS EquivalenttotheOSVERSIONINFOEXVER_SUITE_COMMUNICATIONSflag.

WIX_SUITE_COMPUTE_SERVER EquivalenttotheOSVERSIONINFOEXVER_SUITE_COMPUTE_SERVERflag.

WIX_SUITE_DATACENTER EquivalenttotheOSVERSIONINFOEXVER_SUITE_DATACENTERflag.

WIX_SUITE_EMBEDDEDNT EquivalenttotheOSVERSIONINFOEXVER_SUITE_EMBEDDEDNTflag.

WIX_SUITE_EMBEDDED_RESTRICTED EquivalenttotheOSVERSIONINFOEXVER_SUITE_EMBEDDED_RESTRICTEDflag.

WIX_SUITE_ENTERPRISE EquivalenttotheOSVERSIONINFOEXVER_SUITE_ENTERPRISEflag.

WIX_SUITE_MEDIACENTER EquivalenttotheGetSystemMetricsSM_SERVERR2flag.

WIX_SUITE_PERSONAL EquivalenttotheOSVERSIONINFOEXVER_SUITE_PERSONALflag.

WIX_SUITE_SECURITY_APPLIANCE EquivalenttotheOSVERSIONINFOEX

Page 311: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VER_SUITE_SECURITY_APPLIANCEflag.

WIX_SUITE_SERVERR2 EquivalenttotheGetSystemMetricsSM_SERVERR2flag.

WIX_SUITE_SINGLEUSERTS EquivalenttotheOSVERSIONINFOEXVER_SUITE_SINGLEUSERTSflag.

WIX_SUITE_SMALLBUSINESS EquivalenttotheOSVERSIONINFOEXVER_SUITE_SMALLBUSINESSflag.

WIX_SUITE_SMALLBUSINESS_RESTRICTED EquivalenttotheOSVERSIONINFOEXVER_SUITE_SMALLBUSINESS_RESTRICTEDflag.

WIX_SUITE_STARTER EquivalenttotheGetSystemMetricsSM_STARTERflag.

WIX_SUITE_STORAGE_SERVER EquivalenttotheOSVERSIONINFOEXVER_SUITE_STORAGE_SERVERflag.

WIX_SUITE_TABLETPC EquivalenttotheGetSystemMetricsSM_TABLETPCflag.

WIX_SUITE_TERMINAL EquivalenttotheOSVERSIONINFOEXVER_SUITE_TERMINALflag.

WIX_SUITE_WH_SERVER WindowsHomeServer.EquivalenttotheOSVERSIONINFOEXVER_SUITE_WH_SERVERflag.

Page 312: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixQueryOsDirsProperties

WIX_DIR_ADMINTOOLS Per-useradministrativetoolsdirectory.EquivalenttotheSHGetFolderPathCSIDL_ADMINTOOLSflag.

WIX_DIR_ALTSTARTUP Per-usernonlocalizedStartupprogramgroup.EquivalenttotheSHGetFolderPathCSIDL_ALTSTARTUPflag.

WIX_DIR_CDBURN_AREA Per-userCDburningstagingdirectory.EquivalenttotheSHGetFolderPathCSIDL_CDBURN_AREAflag.

WIX_DIR_COMMON_ADMINTOOLS All-usersadministrativetoolsdirectory.EquivalenttotheSHGetFolderPathCSIDL_COMMON_ADMINTOOLSflag.

WIX_DIR_COMMON_ALTSTARTUP All-usersnonlocalizedStartupprogramgroup.EquivalenttotheSHGetFolderPathCSIDL_COMMON_ALTSTARTUPflag.

WIX_DIR_COMMON_DOCUMENTS All-usersdocumentsdirectory.EquivalenttotheSHGetFolderPathCSIDL_COMMON_DOCUMENTSflag.

Page 313: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WIX_DIR_COMMON_FAVORITES All-usersfavoriteitemsdirectory.EquivalenttotheSHGetFolderPathCSIDL_COMMON_FAVORITESflag.

WIX_DIR_COMMON_MUSIC All-usersmusicfilesdirectory.EquivalenttotheSHGetFolderPathCSIDL_COMMON_MUSICflag.

WIX_DIR_COMMON_PICTURES All-userspicturefilesdirectory.EquivalenttotheSHGetFolderPathCSIDL_COMMON_PICTURESflag.

WIX_DIR_COMMON_VIDEO All-usersvideofilesdirectory.EquivalenttotheSHGetFolderPathCSIDL_COMMON_VIDEOflag.

WIX_DIR_COOKIES Per-userInternetExplorercookiesdirectory.EquivalenttotheSHGetFolderPathCSIDL_COOKIESflag.

WIX_DIR_DESKTOP Per-userdesktopdirectory.EquivalenttotheSHGetFolderPathCSIDL_DESKTOPflag.

WIX_DIR_HISTORY Per-userInternetExplorerhistorydirectory.EquivalenttotheSHGetFolderPathCSIDL_HISTORYflag.

Page 314: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WIX_DIR_INTERNET_CACHE Per-userInternetExplorercachedirectory.EquivalenttotheSHGetFolderPathCSIDL_INTERNET_CACHEflag.

WIX_DIR_MYMUSIC Per-usermusicfilesdirectory.EquivalenttotheSHGetFolderPathCSIDL_MYMUSICflag.

WIX_DIR_MYPICTURES Per-userpicturefilesdirectory.EquivalenttotheSHGetFolderPathCSIDL_MYPICTURESflag.

WIX_DIR_MYVIDEO Per-uservideofilesdirectory.EquivalenttotheSHGetFolderPathCSIDL_MYVIDEOflag.

WIX_DIR_NETHOOD Per-userMyNetworkPlaceslinkobjectdirectory.EquivalenttotheSHGetFolderPathCSIDL_NETHOODflag.

WIX_DIR_PERSONAL Per-userdocumentsdirectory.EquivalenttotheSHGetFolderPathCSIDL_PERSONALflag.

WIX_DIR_PRINTHOOD Per-userPrinterslinkobjectdirectory.EquivalenttotheSHGetFolderPathCSIDL_PRINTHOODflag.

WIX_DIR_PROFILE Per-userprofiledirectory.Equivalenttothe

Page 315: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SHGetFolderPathCSIDL_PROFILEflag.

WIX_DIR_RECENT Per-usermostrecentlyuseddocumentsshortcutdirectory.EquivalenttotheSHGetFolderPathCSIDL_RECENTflag.

WIX_DIR_RESOURCES All-usersresourcedatadirectory.EquivalenttotheSHGetFolderPathCSIDL_RESOURCESflag.

Page 316: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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.

Page 317: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixQueryOsDriverInfoproperties

WIX_WDDM_DRIVER_PRESENT Setto1ifthevideocarddriveronthetargetmachineisaWDDMdriver.ThispropertyisonlysetonmachinesrunningWindowsVistaorhigher.

WIX_DWM_COMPOSITION_ENABLED Setto1ifthetargetmachinehascompositionenabled.ThispropertyisonlysetonmachinesrunningWindowsVistaorhigher.

Page 318: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PerformanceCounterCustomActionThePerfCounterelement(partofWiXUtilExtension)allowsyoutoregisteryourperformancecounterswiththeWindowsAPI.Thereareseveralpiecesthatallworktogethertosuccessfullyregister:

YourperformanceDLL-TheDLLmustexportOpen,Collect,andClosemethods.SeeMSDNformoredetail.Performanceregistryvalues-TheregistrymustcontainkeyspointingtoyourDLLanditsOpen,Collect,andClosemethods.ThesearecreatedusingtheRegistryelement.PerfmonINIandHtextfiles-ThesecontainthetextdescriptionstodisplayintheUI.SeeMSDNforlodctrdocumentation.ThisMSDNdocumentationisagoodplacetostart.Seebelowforsamplesre-purposedfromMSDN.TheRegisterPerfmoncustomaction-YoucanlinkwiththeWiXUtilExtension.dlltoensurethatthecustomactionsareincludedinyourfinalMSI.SeeUsingStandardCustomActions.Thecustomactioncalls(Un)LoadPerfCounterTextStringstoregisteryourcounterswithWindows�PerfmonAPI.Toinvokethecustomaction,youcreateaPerfCounterelementnestedwithintheFileelementforthePerfmon.INIfile.ThePerfCounterelementcontainsasingleattribute:Name.TheNameattributeshouldmatchthenameintheRegistryandinthe.INIfile.SeebelowforsampleWIXusageofthe<PerfCounter>element.

Page 319: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SampleWIXsourcefragmentandPerfCounter.ini

<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><Fragment><DirectoryRefId="BinDir"><ComponentId="SharedNative"DiskId="1"><RegistryId="Shared_r1"Root="HKLM"Key="SYSTEM\CurrentControlSet\Services\MyApplication\Performance"Name="Open"Value="OpenPerformanceData"Type="string"/><RegistryId="Shared_r2"Root="HKLM"Key="SYSTEM\CurrentControlSet\Services\MyApplication\Performance"Name="Collect"Value="CollectPerformanceData"Type="string"/><RegistryId="Shared_r3"Root="HKLM"Key="SYSTEM\CurrentControlSet\Services\MyApplication\Performance"Name="Close"Value="ClosePerformanceData"Type="string"/><RegistryId="Shared_r4"Root="HKLM"Key="SYSTEM\CurrentControlSet\Services\MyApplication\Performance"Name="Library"Value="[!PERFDLL.DLL]"Type="string"/><FileId="PERFDLL.DLL"Name="MyPerfDll.dll"Source="x86\debug\0\myperfdll.dll"/><FileId="PERFCOUNTERS.H"Name="PerfCounters.h"Source="x86\debug\0\perfcounters.h"/><FileId="PERFCOUNTERS.INI"Name="PerfCounters.ini"Source="x86\debug\0\perfcounters.ini"><PerfCounterName="MyApplication"/></File></Component></DirectoryRef></Fragment></Wix>

SamplePerfCounters.ini:[info]drivername=MyApplicationsymbolfile=PerfCounters.h[languages]009=English004=Chinese

Page 320: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

[objects]PERF_OBJECT_1_009_NAME=PerformanceobjectnamePERF_OBJECT_1_004_NAME=PerformanceobjectnameinChinese[text]OBJECT_1_009_NAME=NameofthedeviceOBJECT_1_009_HELP=DisplaysperformancestatisticsofthedeviceOBJECT_1_004_NAME=NameofthedeviceinChineseOBJECT_1_004_HELP=DisplaysperformancestatisticsofthedeviceinChineseDEVICE_COUNTER_1_009_NAME=NameoffirstcounterDEVICE_COUNTER_1_009_HELP=DisplaysthecurrentvalueofthefirstcounterDEVICE_COUNTER_1_004_NAME=NameofthefirstcounterinChineseDEVICE_COUNTER_1_004_HELP=DisplaysthevalueofthefirstcounterinChineseDEVICE_COUNTER_2_009_NAME=NameofthesecondcounterDEVICE_COUNTER_2_009_HELP=DisplaysthecurrentrateofthesecondcounterDEVICE_COUNTER_2_004_NAME=NameofthesecondcounterinChineseDEVICE_COUNTER_2_004_HELP=DisplaystherateofthesecondcounterinChinesePERF_OBJECT_1_009_NAME=NameofthethirdcounterPERF_OBJECT_1_009_HELP=DisplaysthecurrentrateofthethirdcounterPERF_OBJECT_1_004_NAME=NameofthethirdcounterinChinesePERF_OBJECT_1_004_HELP=DisplaystherateofthethirdcounterinChineseSamplePerfCounters.h:#defineOBJECT_10#defineDEVICE_COUNTER_12#defineDEVICE_COUNTER_24#definePERF_OBJECT_18

Page 321: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

QuietExecutionCustomActionTheQtExeccustomactionallowsyoutorunanarbitrarycommandlineinanMSI-basedsetupinsilentmode.QtExeciscommonlyusedtosuppressconsolewindowsthatwouldotherwiseappearappearwheninvokingtheexecutabledirectly.ThecustomactionislocatedintheWixCAlibrary,whichisapartoftheWixUtilExtension.

Page 322: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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.

Page 323: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DeferredexecutionWhentheQtExecactionisrunasadeferredcustomaction,itwilltrytoexecutethecommandlinestoredinthevalueofthecustomactiondata.FordeferredQtExeccustomactions,thecustomactiondataisapropertythathasthesameIdvalueasthecustomactionId.ThefollowingisanexampleofauthoringadeferredQtExeccustomaction:

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

IfyouneedtosetacommandlinethatusesotherWindowsInstallerproperties,youmustscheduleanimmediatecustomactiontosetthecommandlinepropertyvalueandscheduleadeferredcustomactiontorunQtExec.ThePropertyvalueusedintheimmediatecustomactionmustmatchtheIdvalueusedinthedeferredcustomaction.AcommonuseofthispatternforQtExeccustomactionsistorunanexecutablethatwillbeinstalledasapartofthesetup.ThefollowingisanexampleofauthoringadeferredQtExeccustomactionthatreliesonanotherpropertyvalue:

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

Page 324: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 325: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

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

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

Page 326: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 327: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Forastep-by-stepexampleofhowtousetheShellExecutecustomactiontolaunchaprogramattheendofinstallseetheHowTo:RuntheInstalledApplicationAfterSetuptopic.

Page 328: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixDirectXExtensionTheWixDirectXExtensionincludesacustomactionnamedWixQueryDirectXCapsthatsetspropertiesyoucanusetochecktheDirectXcapabilitiesoftheinstallinguser'svideocard.

WixDirectXExtensionproperties

WIX_DIRECTX_PIXELSHADERVERSION Pixelshaderversioncapability,expressedasmajor*100+minor.Forexample,ashadermodel3.0-compliantsystemwouldhaveaWIX_DIRECTX_PIXELSHADERVERSIONvalueof300.

WIX_DIRECTX_VERTEXSHADERVERSION Vertexshaderversioncapability,expressedasmajor*100+minor.Forexample,ashadermodel3.0-compliantsystemwouldhaveaWIX_DIRECTX_VERTEXSHADERVERSIONvalueof300.

TousetheWixDirectXExtensionpropertiesinanMSI,usethefollowingsteps:

AddPropertyRefelementsforitemslistedabovethatyouwanttouseinyourMSI.Addthe-ext<pathtoWixDirectXExtension.dll>commandlineparameterwhencallinglight.exetoincludetheWixDirectXExtensionintheMSIlinkingprocess.Or,usinganMSBuild-based.wixprojproject,add<pathtoWixDirectXExtension.dll>totheWixExtensionitemgroup.WhenusingVotiveinVisualStudio,thiscanbedonebyright-clickingontheReferencesnodeinaWiXproject,choosingAddReference...thenbrowsingforWixDirectXExtension.dllandaddingareference.

Forexample:

Page 329: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

<PropertyRefId="WIX_DIRECTX_PIXELSHADERVERSION"/>

<CustomActionId="CA_CheckPixelShaderVersion"Error="[ProductName]requirespixelshaderversion3.0orgreater."/>

<InstallExecuteSequence><CustomAction="CA_CheckPixelShaderVersion"After="WixQueryDirectXCaps"><![CDATA[WIX_DIRECTX_PIXELSHADERVERSION<300]]></Custom></InstallExecuteSequence>

<InstallUISequence><CustomAction="CA_CheckPixelShaderVersion"After="WixQueryDirectXCaps"><![CDATA[WIX_DIRECTX_PIXELSHADERVERSION<300]]></Custom></InstallUISequence>

NotethattheWixDirectXExtensionpropertiesaresettothevalueNotSetbydefault.TheWixDirectXExtensioncustomactionisconfiguredtonotfailifitencountersanyerrorswhentryingtodetermineDirectXcapabilities.Inthistypeofscenario,thepropertieswillbesettotheirNotSetdefaultvalues.Inyoursetupauthoring,youcancomparethepropertyvaluestotheNotSetvalueortoaspecificvaluetodeterminewhetherWixDirectXExtensionwasabletoqueryDirectXcapabilitiesandifso,whattheyare.

Page 330: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixExitEarlyWithSuccessCustomActionTheWixExitEarlyWithSuccesscustomactionisanimmediatecustomactionthatdoesnothingexceptreturnthevalueERROR_NO_MORE_ITEMS.ThisreturnvaluecausesWindowsInstallertoskipallremainingactionsinthe.msiandreturnaprocessexitcodethatindicatesasuccessfulinstallation.

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

Thereare3stepsyouneedtotaketousetheWixExitEarlyWithSuccesscustomactioninyourMSI:

Page 331: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step1:AddtheWiXutilitiesextensionslibrarytoyourprojectTheWiXsupportforWixExitEarlyWithSuccessisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommandlineyouneedtoaddthefollowingtoyourlightcommandline:

light.exemyproject.wixobj-extWixUtilExtension

IfyouareusingVotiveyoucanaddtheextensionusingtheAddReferencedialog:

1. OpenyourVotiveprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd

Reference...3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog

Page 332: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step2:AddareferencetotheWixExitEarlyWithSuccesscustomactionToaddareferencetotheWixExitEarlyWithSuccesscustomaction,includethefollowinginyourWiXsetupauthoring:

<CustomActionRefId="WixExitEarlyWithSuccess"/>

ThiswillcauseWiXtoaddtheWixExitEarlyWithSuccesscustomactiontoyourMSI,scheduleitimmediatelyaftertheFindRelatedProductsactionandconditionittoonlyrunifthepropertynamedNEWERVERSIONDETECTEDisset.

Page 333: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step3:AddlogictodefinetheNEWERVERSIONDETECTEDpropertyattheappropriatetimesInordertocausetheWixExitEarlyWithSuccesstorunatthedesiredtimes,youmustaddlogictoyourinstallertocreatetheNEWERVERSIONDETECTEDproperty.Toimplementthemajorupgradeexampledescribedabove,youcanaddanUpgradeelementlikethefollowing:

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

Page 334: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

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

ThefailurecasesareoftendifficulttosimulatebyunittestingthecustomactioncodedirectlybecausedeferredcustomactioncodetypicallydependsonstateinformationprovidedtoitbyWindowsInstallerduringanactiveinstallationsession.Asaresult,thistypeoftestingusuallyrequiresfaultinjectioninordertocausetherollbackcustomactionstobeexecutedatthepropertimesduringrealinstallationscenarios.

WiXincludesasimpledeferredcustomactionnamedWixFailWhenDeferredtohelpmakeiteasiertotestrollbackcustomactionsinanMSI.WixFailWhenDeferredwillalwaysfailwhenitisexecutedduringtheinstallation,repairoruninstallationofanMSI.AddingtheWixFailWhenDeferredcustomactiontoyourMSIallowsyoutoeasilyinjectafailureintoyourMSIinordertotestyourrollbackcustomactions.

Thereare3stepsyouneedtotaketousetheWixFailWhenDeferredcustomactiontotesttherollbackcustomactionsinyourMSI:

Page 335: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step1:AddtheWiXutilitiesextensionslibrarytoyourprojectTheWiXsupportforWixFailWhenDeferredisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommandlineyouneedtoaddthefollowingtoyourlightcommandline:

light.exemyproject.wixobj-extWixUtilExtension

IfyouareusingVotiveyoucanaddtheextensionusingtheAddReferencedialog:

1. OpenyourVotiveprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd

Reference...3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog

Page 336: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step2:AddareferencetotheWixFailWhenDeferredcustomactionToaddareferencetotheWixFailWhenDeferredcustomaction,includethefollowinginyourWiXsetupauthoring:

<CustomActionRefId="WixFailWhenDeferred"/>

ThiswillcauseWiXtoaddtheWixFailWhenDeferredcustomactiontoyourMSI,scheduleitimmediatelybeforetheInstallFinalizeactionandconditionittoonlyrunifthepropertyWIXFAILWHENDEFERRED=1.

Page 337: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step3:BuildyourMSIandtestvariousscenariosTheWixFailWhenDeferredcustomactionisconditionedtorunonlywhentheWindowsInstallerpublicpropertyWIXFAILWHENDEFERRED=1.AfterbuildingyourMSIwithareferencetotheWixFailWhenDeferredcustomaction,youcanusethefollowingsetofcommandlinestosimulateaseriesofstandardinstallandrollbacktestingscenarios:

1. Standardinstall:msiexec.exe/iMyProduct.msi/qb/l*vx%temp%\MyProductInstall.log

2. Installrollback:msiexec.exe/iMyProduct.msi/qb/l*vx%temp%\MyProductInstallFailure.logWIXFAILWHENDEFERRED=1

3. Standardrepair:msiexec.exe/fvecmusMyProduct.msi/qb/l*vx%temp%\MyProductRepair.log

4. Repairrollback:msiexec.exe/fvecmusMyProduct.msi/qb/l*vx%temp%\MyProductRepairFailure.logWIXFAILWHENDEFERRED=1

5. Standarduninstall:msiexec.exe/xMyProduct.msi/qb/l*vx%temp%\MyProductUninstall.log

6. Uninstallrollback:msiexec.exe/xMyProduct.msi/qb/l*vx%temp%\MyProductUninstallFailure.logWIXFAILWHENDEFERRED=1

Page 338: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixGamingExtensionTheWixGamingExtensionletsyouregisteryourapplicationasagameinWindowsVistaandlater,inthreemaincategories:

GameExplorerintegrationwithgamedefinitionfileGameExplorertasksRichsaved-gamepreview

Page 339: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

GameExplorerintegrationForanoverviewofGameExplorer,seeGettingStartedWithGameExplorer.GameExplorerreliesonanembeddedfile(gamedefinitionfileorGDF)tocontrolthedatadisplayedaboutthegame.FordetailsaboutGDFs,seeTheGame-Definition-File(GDF)SchemaandGDFDeliveryandLocalization.UsingWixGamingExtension,youregisteragamewithGameExplorerusingtheGameelementasachildofyourgameexecutable'sFileelement:

<FileId="MyGameExeFile"Name="passenger_simulator.exe"KeyPath="yes"><gaming:GameId="985D5FD3-FC40-4CE9-9EE5-F2AAAB959230">...</File>

TheGame/@IdattributeisusedastheInstanceIDattributediscussedhere,ratherthangeneratingnewGUIDsatinstalltime,whichwouldrequirepersistingthegeneratedGUIDandloadingitforuninstallandmaintenancemode.

Implementationnote:UsingtheGameelementaddsarowtoacustomtableinyour.msipackageandschedulestheGamingcustomaction;atinstalltime,thatcustomactionadds/updates/removesthegameinGameExplorerandforoperatingsystemupgrades.(SeeSupportinganUpgradefromWindowsXPtoWindowsVistafordetails.)

Page 340: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

GameExplorertasksInGameExplorer,agame'scontextmenuincludescustomtasks:

Playtasksstartthegamewithoptionalarguments.Supporttasksstarttheuser'sdefaultbrowsertogotoaspecificURL.

Fordetails,seeGameExplorerTasks.InWixGameExtension,PlayTaskandSupportTaskarechildelementsoftheGameelement:

<FileId="MyGameExeFile"Name="passenger_simulator.exe"KeyPath="yes"><gaming:GameId="985D5FD3-FC40-4CE9-9EE5-F2AAAB959230"><gaming:PlayTaskName="Play"Arguments="-go"/><gaming:SupportTaskName="Help!"Address="http://example.com"/>......</File>

Fordetails,seetheGamingschemadocumentation.

Implementationnote:GameExplorertasksareshortcuts,sotheGamingcompilerextensiontranslatesthePlayTaskintorowsinShortcutsandSupportTaskintoWixUtilExtensionInternetShortcuts.Italsocreatesdirectoriestoholdtheshortcutsandcustomactionstosetthedirectories.

Page 341: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

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

Implementationnote:TheGamingcompilerextensiontranslatestheIsRichSavedGameattributetorowsintheMSIRegistrytable.

Page 342: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixNetfxExtensionTheWixNetfxExtensionincludesasetofcustomactionstocompilenativeimagesusingNgen.exe.Foranexample,seeHowTo:NGenmanagedassembliesduringinstallation.

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

Page 343: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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.

Page 344: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 345: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 346: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 347: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 348: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 349: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 350: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 351: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 352: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 353: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

NETFRAMEWORK35_PT_PT_LANGPACK Setto#1ifthe.NETFramework3.5Portuguese(Portugal)languagepackisinstalled(notsetotherwise).

NETFRAMEWORK35_RU_RU_LANGPACK Setto#1ifthe.NETFramework3.5Russianlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK35_ES_ES_LANGPACK Setto#1ifthe.NETFramework3.5Spanishlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK35_SV_SE_LANGPACK Setto#1ifthe.NETFramework3.5Swedishlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK35_TR_TR_LANGPACK Setto#1ifthe.NETFramework3.5Turkishlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK35_CLIENT Setto#1ifthe.NETFramework3.5clientprofileisinstalled(notsetotherwise).

NETFRAMEWORK35_CLIENT_SP_LEVEL Indicatestheservicepacklevelforthe.NETFramework3.5clientprofile.

Hereisacompletelistofpropertiesforthe.NETFramework4.0productfamily:

Propertyname Meaning

NETFRAMEWORK40FULL Setto#1ifthe.NETFramework4.0fullisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_SERVICING_LEVEL Indicatestheservicepacklevelforthe.NETFramework4.0full.ThispropertyisavailablestartingwithWiXv3.5.

Page 354: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

NETFRAMEWORK40FULLINSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework4.0full(%windir%\Microsoft.NET\Framework\v4.0).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULLINSTALLROOTDIR64 Settotheinstallationdirectoryforthe64-bit.NETFramework4.0full(%windir%\Microsoft.NET\Framework64\v4.0).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_AR_SA_LANGPACK Setto#1ifthe.NETFramework4.0fullArabiclanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_ZH_CN_LANGPACK Setto#1ifthe.NETFramework4.0fullChinese(Simplified)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_ZH_TW_LANGPACK Setto#1ifthe.NETFramework4.0fullChinese(Traditional)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_CS_CZ_LANGPACK Setto#1ifthe.NETFramework4.0fullCzechlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_DA_DK_LANGPACK Setto#1ifthe.NETFramework4.0fullDanishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

Page 355: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

NETFRAMEWORK40FULL_NL_NL_LANGPACK Setto#1ifthe.NETFramework4.0fullDutchlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_FI_FI_LANGPACK Setto#1ifthe.NETFramework4.0fullFinnishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_FR_FR_LANGPACK Setto#1ifthe.NETFramework4.0fullFrenchlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_DE_DE_LANGPACK Setto#1ifthe.NETFramework4.0fullGermanlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_EL_GR_LANGPACK Setto#1ifthe.NETFramework4.0fullGreeklanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_HE_IL_LANGPACK Setto#1ifthe.NETFramework4.0fullHebrewlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_HU_HU_LANGPACK Setto#1ifthe.NETFramework4.0fullHungarianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_IT_IT_LANGPACK Setto#1ifthe.NETFramework4.0fullItalian

Page 356: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_JA_JP_LANGPACK Setto#1ifthe.NETFramework4.0fullJapaneselanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_KO_KR_LANGPACK Setto#1ifthe.NETFramework4.0fullKoreanlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_NB_NO_LANGPACK Setto#1ifthe.NETFramework4.0fullNorwegianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_PL_PL_LANGPACK Setto#1ifthe.NETFramework4.0fullPolishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_PT_BR_LANGPACK Setto#1ifthe.NETFramework4.0fullPortuguese(Brazil)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_PT_PT_LANGPACK Setto#1ifthe.NETFramework4.0fullPortuguese(Portugal)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_RU_RU_LANGPACK Setto#1ifthe.NETFramework4.0fullRussianlanguagepackisinstalled(notsetotherwise).Thispropertyisavailablestarting

Page 357: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

withWiXv3.5.

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

NETFRAMEWORK40FULL_SV_SE_LANGPACK Setto#1ifthe.NETFramework4.0fullSwedishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_TR_TR_LANGPACK Setto#1ifthe.NETFramework4.0fullTurkishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT Setto#1ifthe.NETFramework4.0clientprofileisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_SERVICING_LEVEL Indicatestheservicepacklevelforthe.NETFramework4.0clientprofile.ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENTINSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework4.0full(%windir%\Microsoft.NET\Framework\v4.0).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENTINSTALLROOTDIR64 Settotheinstallationdirectoryforthe64-bit.NETFramework4.0full(%windir%\Microsoft.NET\Framework64\v4.0).ThispropertyisavailablestartingwithWiXv3.5.

Page 358: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

NETFRAMEWORK40CLIENT_AR_SA_LANGPACK Setto#1ifthe.NETFramework4.0clientArabiclanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_ZH_CN_LANGPACK Setto#1ifthe.NETFramework4.0clientChinese(Simplified)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_ZH_TW_LANGPACK Setto#1ifthe.NETFramework4.0clientChinese(Traditional)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_CS_CZ_LANGPACK Setto#1ifthe.NETFramework4.0clientCzechlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_DA_DK_LANGPACK Setto#1ifthe.NETFramework4.0clientDanishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_NL_NL_LANGPACK Setto#1ifthe.NETFramework4.0clientDutchlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_FI_FI_LANGPACK Setto#1ifthe.NETFramework4.0clientFinnishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_FR_FR_LANGPACK Setto#1ifthe.NETFramework4.0client

Page 359: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Frenchlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_DE_DE_LANGPACK Setto#1ifthe.NETFramework4.0clientGermanlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_EL_GR_LANGPACK Setto#1ifthe.NETFramework4.0clientGreeklanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_HE_IL_LANGPACK Setto#1ifthe.NETFramework4.0clientHebrewlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_HU_HU_LANGPACK Setto#1ifthe.NETFramework4.0clientHungarianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_IT_IT_LANGPACK Setto#1ifthe.NETFramework4.0clientItalianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_JA_JP_LANGPACK Setto#1ifthe.NETFramework4.0clientJapaneselanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_KO_KR_LANGPACK Setto#1ifthe.NETFramework4.0clientKoreanlanguagepackisinstalled(notsetotherwise).Thispropertyisavailablestarting

Page 360: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

withWiXv3.5.

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

NETFRAMEWORK40CLIENT_PL_PL_LANGPACK Setto#1ifthe.NETFramework4.0clientPolishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_PT_BR_LANGPACK Setto#1ifthe.NETFramework4.0clientPortuguese(Brazil)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_PT_PT_LANGPACK Setto#1ifthe.NETFramework4.0clientPortuguese(Portugal)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_RU_RU_LANGPACK Setto#1ifthe.NETFramework4.0clientRussianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_ES_ES_LANGPACK Setto#1ifthe.NETFramework4.0clientSpanishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_SV_SE_LANGPACK Setto#1ifthe.NETFramework4.0clientSwedishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

Page 361: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

NETFRAMEWORK40CLIENT_TR_TR_LANGPACK Setto#1ifthe.NETFramework4.0clientTurkishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

Hereisacompletelistofpropertiesforthe.NETFrameworkSDKandWindowsSDK:

Propertyname Meaning

NETFRAMEWORK11SDKDIR Thelocationofthe.NETFramework1.1SDKinstallationroot.

NETFRAMEWORK20SDKDIR Thelocationofthe.NETFramework2.0SDKinstallationroot.

WINDOWSSDKCURRENTVERSIONDIR ThelocationofthecurrentlyactiveversionoftheWindowsSDK.

WINDOWSSDKCURRENTVERSION TheversionnumberofthecurrentlyactiveversionoftheWindowsSDK.

WINDOWSSDK60ADIR ThelocationoftheWindowsSDK6.0ainstallationroot.

WINDOWSSDK61DIR ThelocationoftheWindowsSDK6.1installationroot.

WINDOWSSDK70ADIR ThelocationoftheWindowsSDK7.0ainstallationroot.ThispropertyisavailablestartingwithWiXv3.5.

Page 362: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset
Page 363: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UsingWixNetfxExtensionPropertiesTousetheWixNetfxExtensionpropertiesinanMSI,usethefollowingsteps:

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

Forexample:

<PropertyRefId="NETFRAMEWORK20"/>

Page 364: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixVSExtensionTheWixVSExtensionincludesasetofcustomactionstomanagehelpcollections.ItalsoincludesasetofpropertiesandcustomactionsthatcanbeusedtodetectthepresenceofvariousversionsofVisualStudioandregisteradd-ins,projecttemplatesanditemtemplatesforuseinVisualStudio.

Page 365: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PropertiesHereisacompletelistofpropertiesfortheVisualStudio.NET2003productfamily:

Propertyname Meaning

VS2003DEVENV Fullpathtodevenv.exeforVisualStudio.NET2003ifitisinstalledonthesystem.

JSHARP_REDIST_11_INSTALLED IndicateswhetherornottheJ#redistributablepackage1.1isinstalledonthesystem.

HereisacompletelistofpropertiesfortheVisualStudio2005productfamily:

Propertyname Meaning

VS2005DEVENV Fullpathtodevenv.exeforVisualStudio2005ifitisinstalledonthesystem.

VS2005_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2005itemtemplatesdirectory.

VS2005_PROJECTTEMPLATES_DIR Fullpathtothe

Page 366: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VisualStudio2005projecttemplatesdirectory.

VS2005_SCHEMAS_DIR FullpathtotheVisualStudio2005XMLschemasdirectory.

VS2005PROJECTAGGREGATOR2 IndicateswhetherornottheVisualStudio2005projectaggregatorformanagedcodeadd-insisinstalledonthesystem.

VS2005_ROOT_FOLDER FullpathtotheVisualStudio2005rootinstallationdirectory.

VB2005EXPRESS_IDE Fullpathtovbexpress.exeifVisualBasic2005ExpressEditionisinstalledonthesystem.

VS2005_IDE_VB_PROJECTSYSTEM_INSTALLED Indicates

Page 367: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

whetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualBasicprojectsystemisinstalledforit.

VC2005EXPRESS_IDE Fullpathtovcexpress.exeifVisualC++2005ExpressEditionisinstalledonthesystem.

VS2005_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualC++projectsystemisinstalledforit.

VCSHARP2005EXPRESS_IDE Fullpathtovcsexpress.exeifVisualC#2005ExpressEditionisinstalledonthesystem.

Page 368: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VS2005_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualC#projectsystemisinstalledforit.

VJSHARP2005EXPRESS_IDE Fullpathtovjsexpress.exeifVisualJ#2005ExpressEditionisinstalledonthesystem.

VS2005_IDE_VJSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualJ#projectsystemisinstalledforit.

VWD2005EXPRESS_IDE Fullpathtovwdexpress.exeifVisualWebDeveloper2005ExpressEditionisinstalledonthesystem.

Page 369: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VS2005_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.

VS2005_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudioTeamTestprojectsystemisinstalledonthesystem.

VSEXTENSIONS_FOR_NETFX30_INSTALLED IndicateswhetherornottheVisualStudio2008DevelopmentToolsforthe.NETFramework3.0add-inforVisualStudio2005isinstalledonthesystem.

VS2005_WAP_PROJECT_INSTALLED IndicateswhetherornottheWebApplication

Page 370: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ProjecttemplateforVisualStudio2005isinstalledonthesystem.Thisprojecttemplateisavailableasastandaloneadd-inandasapartofvisualStudio2005SP1.

VS2005_SP_LEVEL IndicatestheservicepacklevelforVisualStudio2005StandardEditionandhigher.

VSTF2005_SP_LEVEL IndicatestheservicepacklevelforVisualStudio2005TeamFoundation.

VB2005EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualBasic2005ExpressEdition.

VC2005EXPRESS_SP_LEVEL Indicatestheservicepack

Page 371: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

levelforVisualC++2005ExpressEdition.

VCSHARP2005EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualC#2005ExpressEdition.

VJSHARP2005EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualJ#2005ExpressEdition.

VWD2005EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualWebDeveloper2005ExpressEdition.

DEXPLORE_2005_INSTALLED IndicateswhetherornottheDocumentExplorer2005runtimecomponentspackageisinstalledonthesystem.

JSHARP_REDIST_20_INSTALLED Indicates

Page 372: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

whetherornottheJ#redistributablepackage2.0isinstalledonthesystem.

JSHARP_REDIST_20SE_INSTALLED IndicateswhetherornottheJ#redistributablepackage2.0secondeditionisinstalledonthesystem.

HereisacompletelistofpropertiesfortheVisualStudio2008productfamily:

Propertyname Meaning

VS90DEVENV Fullpathtodevenv.exeforVisualStudio2008ifitisinstalledonthesystem.

VS90_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2008itemtemplatesdirectory.

VS90_PROJECTTEMPLATES_DIR FullpathtotheVisualStudio2008project

Page 373: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

templatesdirectory.

VS90_SCHEMAS_DIR FullpathtotheVisualStudio2008XMLschemasdirectory.

VS90_ROOT_FOLDER FullpathtotheVisualStudio2008rootinstallationdirectory.

VB90EXPRESS_IDE Fullpathtovbexpress.exeifVisualBasic2008ExpressEditionisinstalledonthesystem.

VS90_IDE_VB_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2008StandardEditionorhigherisinstalledandtheVisualBasicprojectsystemisinstalledforit.

VC90EXPRESS_IDE Fullpathtovcexpress.exeifVisualC++

Page 374: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

2008ExpressEditionisinstalledonthesystem.

VS90_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2008StandardEditionorhigherisinstalledandtheVisualC++projectsystemisinstalledforit.

VCSHARP90EXPRESS_IDE Fullpathtovcsexpress.exeifVisualC#2008ExpressEditionisinstalledonthesystem.

VS90_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2008StandardEditionorhigherisinstalledandtheVisualC#projectsystemisinstalledforit.

VWD90EXPRESS_IDE Fullpathtovwdexpress.exe

Page 375: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ifVisualWebDeveloper2008ExpressEditionisinstalledonthesystem.

VS90_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2008StandardEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.

VS90_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudioTeamTestprojectsystemisinstalledonthesystem.

VS90_BOOTSTRAPPER_PACKAGE_FOLDER ThelocationoftheVisualStudio2008bootstrapperpackagefolder.

VS90_SP1 Indicateswhetherornotservicepack1forVisual

Page 376: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Studio2008StandardEditionandhigherisinstalled.

VS90_SP_LEVEL IndicatestheservicepacklevelforVisualStudio2008StandardEditionandhigher.

VSTF90_SP_LEVEL IndicatestheservicepacklevelforVisualStudio2008TeamFoundation.

VB90EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualBasic2008ExpressEdition.

VB90EXPRESS_SP1 Indicateswhetherornotservicepack1forVisualBasic2008ExpressEditionisinstalled.

VC90EXPRESS_SP_LEVEL Indicatesthe

Page 377: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

servicepacklevelforVisualC++2008ExpressEdition.

VC90EXPRESS_SP1 Indicateswhetherornotservicepack1forVisualC++2008ExpressEditionisinstalled.

VCSHARP90EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualC#2008ExpressEdition.

VCSHARP90EXPRESS_SP1 Indicateswhetherornotservicepack1forVisualC#2008ExpressEditionisinstalled.

VWD90EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualWebDeveloper2008ExpressEdition.

VWD90EXPRESS_SP1 Indicates

Page 378: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

whetherornotservicepack1forVisualWebDeveloper2008ExpressEditionisinstalled.

DEXPLORE_2008_INSTALLED IndicateswhetherornottheDocumentExplorer2008runtimecomponentspackageisinstalledonthesystem.

HereisacompletelistofpropertiesfortheVisualStudio2010productfamily:

Propertyname Meaning

VS2010DEVENV Fullpathtodevenv.exeforVisualStudio2010ifitisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2010itemtemplates

Page 379: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

directory.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_PROJECTTEMPLATES_DIR FullpathtotheVisualStudio2010projecttemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_SCHEMAS_DIR FullpathtotheVisualStudio2010XMLschemasdirectory.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_ROOT_FOLDER FullpathtotheVisualStudio2010rootinstallationdirectory.ThispropertyisavailablestartingwithWiXv3.5.

VB2010EXPRESS_IDE Fullpathto

Page 380: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

vbexpress.exeifVisualBasic2010ExpressEditionisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_VB_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2010StandardEditionorhigherisinstalledandtheVisualBasicprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.5.

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

Page 381: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VS2010_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2010StandardEditionorhigherisinstalledandtheVisualC++projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.5.

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

VS2010_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2010StandardEditionorhigherisinstalledandtheVisualC#projectsystemisinstalledforit.Thispropertyis

Page 382: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

availablestartingwithWiXv3.5.

VWD2010EXPRESS_IDE Fullpathtovwdexpress.exeifVisualWebDeveloper2010ExpressEditionisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2010StandardEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.5.

VPD2010EXPRESS_IDE Fullpathtovpdexpress.exeifVisualStudio2010ExpressforWindowsPhoneis

Page 383: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

installedonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010TeamTestprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_DB_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010Databaseprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_VSD_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010Deployment

Page 384: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

projectsystem(setupproject)isinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_WIX_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010WindowsInstallerXMLprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_MODELING_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010Modelingprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_FSHARP_PROJECTSYSTEM_INSTALLED Indicateswhetherornot

Page 385: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

theVisualStudio2010F#projectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_BOOTSTRAPPER_PACKAGE_FOLDER ThelocationoftheVisualStudio2010bootstrapperpackagefolder.ThispropertyisavailablestartingwithWiXv3.5.

Page 386: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 387: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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.

Page 388: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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.

Page 389: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 390: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

thesystem.IncludingthiscustomactionautomaticallyaddstheVCSHARP90EXPRESS_IDEproperty.

VWD90Setup Runsvwdexpress.exe/setupifVisualWebDeveloper2008ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD90EXPRESS_IDEproperty.

VWD90InstallVSTemplates Runsvwdexpress.exe/InstallVSTemplatesifVisualWebDeveloper2008ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD90EXPRESS_IDEproperty.

VS2010Setup Runsdevenv.exe/setupifVisualStudio2010StandardEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2010DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.5.

VS2010InstallVSTemplates Runsdevenv.exe/InstallVSTemplatesifVisualStudio2010StandardEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2010DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.5.

Page 391: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VB2010Setup Runsvbexpress.exe/setupifVisualBasic2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVB2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.

VB2010InstallVSTemplates Runsvbexpress.exe/InstallVSTemplatesifVisualBasic2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVB2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.

VC2010Setup Runsvcexpress.exe/setupifVisualC++2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVC2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.

VC2010InstallVSTemplates Runsvcexpress.exe/InstallVSTemplatesifVisualC++2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVC2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.

VCSHARP2010Setup Runsvcsexpress.exe/setupifVisualC#2010ExpressEditionisfoundonthesystem.Includingthis

Page 392: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

customactionautomaticallyaddstheVCSHARP2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.

VCSHARP2010InstallVSTemplates Runsvcsexpress.exe/InstallVSTemplatesifVisualC#2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVCSHARP2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.

VWD2010Setup Runsvwdexpress.exe/setupifVisualWebDeveloper2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.

VWD2010InstallVSTemplates Runsvwdexpress.exe/InstallVSTemplatesifVisualWebDeveloper2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.

VPD2010Setup Runsvpdexpress.exe/setupifVisualStudio2010ExpressforWindowsPhoneisfoundonthesystem.Includingthiscustomactionautomaticallyaddsthe

Page 393: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VPD2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.

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

Page 394: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UsingWixVSExtensionPropertiesorCustomActionsTousetheWixVSExtensionpropertiesorcustomactionsinanMSI,usethefollowingsteps:

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

Forexample:

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

Whenyoureferenceanyoftheabovepropertiesorcustomactions,theWixVSExtensionautomaticallyschedulesthecustomactionsandpullsinpropertiesusedinthecustomactionconditionsandexecutionlogic.

Page 395: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PatchBuildingPatchesareupdatestoaproductorproducts.WiXsupportstwodifferentwaysofcreatingthem:

UsingPatchCreationPropertieswhichrequiresthatyouhavetheWindowsInstaller3.0ornewerSDKinstalledforfullsupportofincludedexamples.UsingPurelyWiXwhichusesfunctionalityprovidedinWiXanddoesnotrequireadditionaltools.

Therearealsorestrictionsonhowpatchesarebuiltinordertoavoidproblemswheninstallingthem.

Page 396: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

FormoreinformationaboutpatchingwithWindowsInstaller,readPatchingandUpgrades.

Page 397: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RestrictionsforPatchesTherearedifferentrestrictionsforpatchesbasedonwhattypeofpatchistobeinstalled.Therearethreetypesofpatches:

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

Forinformationaboutrestrictionsforeachtypeofpatch,readChangingtheProductCode.

Page 398: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 399: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 400: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Verb Verb

Majorupgradepatchesarenotuninstallable.

Page 401: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UsingPatchCreationPropertiesApatchcontainsthedifferencesbetweenoneormorepairsofWindowsInstallerpackages.ThetoolPatchWiz.dllintheWindowsSDKcomparespairsofpackagesandproducesapatchusingafilecalledaPatchCreationProperties(PCP)file.

ItisrecommendedthatyoudownloadthelatestWindowsSDKtogetthenewesttoolsforbuildingpatches.

Page 402: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SettingUptheSampleAPatchCreationProperties(PCP)fileinstructsPatchWiz.dlltogenerateapatchfromdifferencesinoneormorepairsofpackages.Apatchcontainsthedifferencesbetweenthetargetandupgradepackages,andwilltransformthetargetpackagetotheupgradepackage.Boththetargetandupgradepackagesarecreatedbelow.

Createadirectorythatwillcontainthesample

Createadirectoryfromwhichyouplanonrunningthesample.Thiswillbethesampleroot.

mdC:\sample

Createtwosubdirectories

Underthesamplerootcreatetwosubdirectoriescalled"1.0"and"1.1".

mdC:\sample\1.0mdC:\sample\1.1

CreateatextfilecalledSample.txtfor1.0

Createatextfileinthe"1.0"directorycalledSample.txtandputsometextinittellingyouthatitisthe1.0versionofthefile.

echoThisisversion1.0>C:\sample\1.0\Sample.txt

CreateatextfilecalledSample.txtfor1.1

Createatextfileinthe"1.1"directorycalledSample.txtandputsometextinittellingyouthatitisthe1.1versionofthefile.

echoThisisversion1.1>C:\sample\1.1\Sample.txt

Page 403: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Createyourproductauthoringinthesamplerootfolder

CreateyourproductauthoringinthesamplerootfoldercalledProduct.wxswiththefollowingcontents:

<?xmlversion="1.0"encoding="UTF-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><ProductId="48C49ACE-90CF-4161-9C6E-9162115A54DD"Name="WiXPatchExampleProduct"Language="1033"Version="1.0.0"Manufacturer="DynamoCorporation"UpgradeCode="48C49ACE-90CF-4161-9C6E-9162115A54DD"><PackageDescription="Installsafilethatwillbepatched."Comments="ThisProductdoesnotinstallanyexecutables"InstallerVersion="200"Compressed="yes"/><MediaId="1"Cabinet="product.cab"EmbedCab="yes"/><FeatureRefId="SampleProductFeature"/></Product><Fragment><FeatureId="SampleProductFeature"Title="SampleProductFeature"Level="1"><ComponentRefId="SampleComponent"/></Feature></Fragment><Fragment><DirectoryRefId="SampleProductFolder"><ComponentId="SampleComponent"Guid="{C28843DA-EF08-41CC-BA75-D2B99D8A1983}"DiskId="1"><FileId="SampleFile"Name="Sample.txt"Source=".\$(var.Version)\Sample.txt"/></Component></DirectoryRef></Fragment><Fragment><DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"Name="PFiles">

Page 404: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

<DirectoryId="SampleProductFolder"Name="PatchSampleDirectory"></Directory></Directory></Directory></Fragment></Wix>

Createyourpatchauthoringinthesampleroot

CreateyourPatchCreationProperties(PCP)authoringinthesamplerootcalledPatch.wxswiththefollowingcontent:

<?xmlversion="1.0"encoding="utf-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><PatchCreationId="224C316C-5894-4771-BABF-21A3AC1F75FF"CleanWorkingFolder="yes"OutputPath="patch.pcp"WholeFilesOnly="yes"><PatchInformationDescription="SmallUpdatePatch"Comments="SmallUpdatePatch"ShortNames="no"Languages="1033"Compressed="yes"Manufacturer="DynamoCorp"/><PatchMetadataAllowRemoval="yes"Description="SmallUpdatePatch"ManufacturerName="DynamoCorp"TargetProductName="Sample"MoreInfoURL="http://www.dynamocorp.com/"Classification="Update"DisplayName="SamplePatch"/><FamilyDiskId="5000"

Page 405: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

MediaSrcProp="Sample"Name="Sample"SequenceStart="5000"><UpgradeImageSourceFile="C:\sample\1.1\admin\product.msi"Id="SampleUpgrade"><TargetImageSourceFile="C:\sample\1.0\admin\product.msi"Order="2"Id="SampleTarget"IgnoreMissingFiles="no"/></UpgradeImage></Family><PatchSequencePatchFamily="SamplePatchFamily"Sequence="1.0.0.0"Supersede="yes"/></PatchCreation></Wix>

NotethatSequenceStartmustbegreaterthanthelastsequenceintheFiletableinthetargetpackageorthepatchwillnotinstall.

Page 406: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

BuildtheTargetandUpgradePackagesOpenacommandpromptandmakesurethefollowingWiXandWindowsInstallerSDKtoolsareinyourPATH.

Candle.exeLight.exeMsiMsp.exePatchWiz.dllMSPatchC.dllMakeCab.exe

Buildthetargetpackage

candle.exe-dVersion=1.0product.wxslight.exeproduct.wixobj-out1.0\product.msi

Performanadministrativeinstallationofthetargetpackage

Msiexec.exeisusedtoperformanadministrativeinstallationbutnothingisactuallyregisteredonyoursystem.Itismainlyfileextraction.

msiexec.exe/a1.0\product.msi/qbTARGETDIR=C:\sample\1.0\admin

Buildtheupgradepackage

candle.exe-dVersion=1.1product.wxslight.exeproduct.wixobj-out1.1\product.msi

Performanadministrativeinstallationoftheupgradepackage

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

Page 407: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

BuildthePatchThePatch.wxsfileiscompiledintoaPCPfilethatisthenprocessedbyMsiMsp.exetoproductthepatchpackage.

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

Page 408: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VerifythePatchToverifythatthepatchworks,installtheproductandthenthepatch.

Installthe1.0product

msiexec.exe/i1.0\product.msi/l*vxinstall.log

Verifyversion1.0

Goto"ProgramFiles\PatchSampleDirectory"andopenSample.txt.Verifythatthisisthe1.0version.CloseSample.txt.

Installthepatch

msiexec.exe/ppatch\patch.msp/l*vxpatch.log

Verifyversion1.1

Goto"ProgramFiles\PatchSampleDirectory"andopenSample.txt.Verifythatthisisnowthe1.1version.CloseSample.txt.

Uninstallthepatch

OnWindowsXPServicePack2andWindowsServer2003,goto"Add/RemovePrograms"intheControlPanelandmakesurethatShowUpdatesischecked.OnWindowsVistaandnewer,goto"Programs"then"Viewinstalledupdates"intheControlpanel.Select"SamplePatch"fromunder"WiXPatchExampleProduct"andclicktheUninstallbutton.

Goto"Programfiles\PatchSampleDirectory"andopenSample.txt.Verifythatthisisagainthe1.0version.CloseSample.txt.

Uninstalltheproduct

OnWindowsXPServicePack2andWindowsServer2003,goto"Add/RemovePrograms"intheControlPanel.OnWindowsVistaand

Page 409: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 410: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RestrictionsPleasereviewrestrictionsonhowpatchesmustbebuilttoavoidproblemduringpatchinstallation.

Page 411: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 412: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SettingUptheSampleAsampleproductiscreatedwhichputsdifferentresourcesintofragments.Youputresourcesintoseparatefragmentssothattheresourcesineachfragmentcanbefilteredoutofapatch.Youmightfiltersomeresourcesoutofapatchifyouwanttolimitthepatchtoupdateonlypartsofyourproductorproducts.

Createadirectorythatwillcontainthesample

Createadirectoryfromwhichyouplantorunthesample.Thiswillbethesampleroot.

mdC:\sample

Createtwosubdirectories

Underthesamplerootcreatetwosubdirectoriescalled"1.0"and"1.1".

mdC:\sample\1.0mdC:\sample\1.1

CreateatextfilecalledSample.txtfor1.0

Createatextfileinthe"1.0"directorycalledSample.txtandputsometextinittellingyouthatitisthe1.0versionofthefile.

echoThisisversion1.0>C:\sample\1.0\Sample.txt

CreateatextfilecalledSample.txtfor1.1

Createatextfileinthe"1.1"directorycalledSample.txtandputsometextinittellingyouthatitisthe1.1versionofthefile.

echoThisisversion1.1>C:\sample\1.1\Sample.txt

Page 413: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Createyourproductauthoringinthesamplerootfolder

CreateyourproductauthoringinthesamplerootfoldercalledProduct.wxswiththefollowingcontents:

<?xmlversion="1.0"encoding="UTF-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><ProductId="48C49ACE-90CF-4161-9C6E-9162115A54DD"Name="WiXPatchExampleProduct"Language="1033"Version="1.0.0"Manufacturer="DynamoCorporation"UpgradeCode="48C49ACE-90CF-4161-9C6E-9162115A54DD"><PackageDescription="Installsafilethatwillbepatched."Comments="ThisProductdoesnotinstallanyexecutables"InstallerVersion="200"Compressed="yes"/><MediaId="1"Cabinet="product.cab"EmbedCab="yes"/><FeatureRefId="SampleProductFeature"/></Product><Fragment><FeatureId="SampleProductFeature"Title="SampleProductFeature"Level="1"><ComponentRefId="SampleComponent"/></Feature></Fragment><Fragment><DirectoryRefId="SampleProductFolder"><ComponentId="SampleComponent"Guid="{C28843DA-EF08-41CC-BA75-D2B99D8A1983}"DiskId="1"><FileId="SampleFile"Name="Sample.txt"Source=".\$(var.Version)\Sample.txt"/></Component></DirectoryRef></Fragment><Fragment><DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"Name="PFiles">

Page 414: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

<DirectoryId="SampleProductFolder"Name="PatchSampleDirectory"></Directory></Directory></Directory></Fragment></Wix>

Createyourpatchauthoringinthesampleroot

CreateyourpatchauthoringinthesamplerootcalledPatch.wxswiththefollowingcontent:

<?xmlversion="1.0"encoding="UTF-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><PatchAllowRemoval="yes"Manufacturer="DynamoCorp"MoreInfoURL="http://www.dynamocorp.com/"DisplayName="SamplePatch"Description="SmallUpdatePatch"Classification="Update"><MediaId="5000"Cabinet="RTM.cab"><PatchBaselineId="RTM"/></Media><PatchFamilyRefId="SamplePatchFamily"/></Patch><Fragment><PatchFamilyId='SamplePatchFamily'Version='1.0.0.0'Supersede='yes'><ComponentRefId="SampleComponent"/></PatchFamily></Fragment></Wix>

Page 415: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

BuildingthePatchSampleOpenacommandpromptandmakesurethatthefollowingWiXtoolsareinyourPATH.

Candle.exeLight.exeTorch.exePyro.exe

YourWiXtoolsetversionshouldbeatleast3.0.3001.0

Buildthetargetlayout

Whileonlythe.wixoutisneeded,thetargetproductlayoutiscreatedtotestinstallingthepatch.Theproductmustalsobeinstalledbeforeoralongwiththepatch.

cdC:\samplecandle.exe-dVersion=1.0product.wxslight.exeproduct.wixobj-out1.0\product.msi

Buildtheupgradelayout

candle.exe-dVersion=1.1product.wxslight.exeproduct.wixobj-out1.1\product.msi

Createthetransformbetweenyourproducts

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

Buildthepatch

Thepatch.wxsfileiscompiledandlinkedlikeaproduct,butthenitisprocessedalongwithanynumberoftransformsthatyouwantthepatchtocontain.ThatproducesanMSPfilethattargetsanyoftheproducts

Page 416: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

fromwhichtransformswerecreatedafterfiltering.

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

Page 417: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VerifythePatchToverifythatthepatchworks,installtheproductandthenthepatch.

Installthe1.0product

msiexec.exe/i1.0\product.msi/l*vxinstall.log

Verifyversion1.0

Goto"ProgramFiles\PatchSampleDirectory"andopenSample.txt.Verifythatthisisthe1.0version.CloseSample.txt.

Installthepatch

msiexec.exe/ppatch\patch.msp/l*vxpatch.log

Verifyversion1.1

Goto"ProgramFiles\PatchSampleDirectory"andopenSample.txt.Verifythatthisisnowthe1.1version.CloseSample.txt.

Uninstallthepatch

OnWindowsXPServicePack2andWindowsServer2003,goto"Add/RemovePrograms"intheControlPanelandmakesurethatShowUpdatesischecked.OnWindowsVistaandnewer,goto"Programs"then"Viewinstalledupdates"intheControlPanel.Select"SamplePatch"fromunder"WiXPatchExampleProduct"andclicktheUninstallbutton.

Goto"Programfiles\PatchSampleDirectory"andopenSample.txt.Verifythatthisisagainthe1.0version.CloseSample.txt.

Uninstalltheproduct

OnWindowsXPServicePack2andWindowsServer2003,goto"Add/RemovePrograms"intheControlPanel.OnWindowsVistaand

Page 418: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 419: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RestrictionsInadditiontorestrictionsaboutwhatcanbeinapatchinorderforittoinstallanduninstallcorrectly,thefollowingrestrictionsensurethatyourpatchworkscorrectly.

Patchfamiliescanonlygrow

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

Notethatinorderforonepatchtosupersedeanyotherpatches,allpatchfamiliesmustbesuperseded.Asinglepatchfamilyisreferencedintheexampleaboveforsimplicity.

Certainelementscannotbeaddedtouninstallablepatches

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

Page 420: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WiXSchemaReferencesThissectioncontainsschemareferenceinformationforWiXandextensions.

WixschemaWixlocschemaDifxappschemaforWixDifxAppExtensionFirewallschemaforWixFirewallExtensionGamingschemaforWixGamingExtensionIisschemaforWixIIsExtensionIsolatedAppschemaforWixIsolatedAppExtensionLuxschemaforWixLuxExtensionNetfxschemaforWixNetFxExtensionOfficeAddinschemaforWixOfficeExtensionPsschemaforWixPSExtensionSqlschemaforWixSqlExtensionUtilschemaforWixUtilExtensionVsschemaforWixVSExtension

Page 421: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixSchema

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

SchemafordescribingWindowsInstallerdatabasefiles(.msi/.msm/.pcp).

RootElementsIncludeWix

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

DocumentShouldLookLike<?xmlversion="1.0"?><Includexmlns="http://schemas.microsoft.com/wix/2006/wi">...</Include><?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi">...</Wix>

Version3.5.1623.0

Page 422: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AdminExecuteSequenceElement

DescriptionNone

WindowsInstallerreferencesAdminExecuteSequenceTable

ParentsFragment,Module,Product

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

CostFinalize(min:0,max:unbounded):EndstheinternalinstallationcostingprocessbegunbytheCostInitializeaction.CostInitialize(min:0,max:unbounded):Initiatestheinternalinstallationcostingprocess.Custom(min:0,max:unbounded):Usetosequenceacustomaction.FileCost(min:0,max:unbounded):Initiatesdynamiccostingofstandardinstallationactions.InstallAdminPackage(min:0,max:unbounded):Copiestheproductdatabasetotheadministrativeinstallationpoint.InstallFiles(min:0,max:unbounded):CopiesfilesspecifiedintheFiletablefromthesourcedirectorytothedestinationdirectory.InstallFinalize(min:0,max:unbounded):Markstheendofasequenceofactionsthatchangethesystem.InstallInitialize(min:0,max:unbounded):Marksthebeginningofasequenceofactionsthatchangethesystem.InstallValidate(min:0,max:unbounded):Verifiesthatallcostedvolumeshaveenoughspacefortheinstallation.

Page 423: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

AttributesNone

SeeAlsoWixSchema

Version3.5.1623.0

Page 424: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AdminUISequenceElement

DescriptionNone

WindowsInstallerreferencesAdminUISequenceTable

ParentsFragment,Module,Product,UI

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

CostFinalize(min:0,max:unbounded):EndstheinternalinstallationcostingprocessbegunbytheCostInitializeaction.CostInitialize(min:0,max:unbounded):Initiatestheinternalinstallationcostingprocess.Custom(min:0,max:unbounded):Usetosequenceacustomaction.ExecuteAction(min:0,max:unbounded):Initiatestheexecutionsequence.FileCost(min:0,max:unbounded):Initiatesdynamiccostingofstandardinstallationactions.InstallAdminPackage(min:0,max:unbounded):Copiestheproductdatabasetotheadministrativeinstallationpoint.InstallFiles(min:0,max:unbounded):CopiesfilesspecifiedintheFiletablefromthesourcedirectorytothedestinationdirectory.InstallFinalize(min:0,max:unbounded):Markstheendofasequenceofactionsthatchangethesystem.InstallInitialize(min:0,max:unbounded):Marksthebeginningofasequenceofactionsthatchangethesystem.

Page 425: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

AttributesNone

SeeAlsoWixSchema

Version3.5.1623.0

Page 426: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AdvertiseExecuteSequenceElement

DescriptionNone

WindowsInstallerreferencesAdvtExecuteSequenceTable

ParentsFragment,Module,Product

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

CostFinalize(min:0,max:unbounded):EndstheinternalinstallationcostingprocessbegunbytheCostInitializeaction.CostInitialize(min:0,max:unbounded):Initiatestheinternalinstallationcostingprocess.CreateShortcuts(min:0,max:unbounded):Managesthecreationofshortcuts.Custom(min:0,max:unbounded):Usetosequenceacustomaction.TheonlycustomactionsthatareallowedintheAdvtExecuteSequencearetype19(0x013)type35(0x023)andtype51(0x033).InstallFinalize(min:0,max:unbounded):Markstheendofasequenceofactionsthatchangethesystem.InstallInitialize(min:0,max:unbounded):Marksthebeginningofasequenceofactionsthatchangethesystem.InstallValidate(min:0,max:unbounded):Verifiesthatallcostedvolumeshaveenoughspacefortheinstallation.MsiPublishAssemblies(min:0,max:unbounded):ManagestheadvertisementofCLRandWin32assemblies.PublishComponents(min:0,max:unbounded):Managesthe

Page 427: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

advertisementofthecomponentsfromthePublishComponenttable.PublishFeatures(min:0,max:unbounded):Writeseachfeature'sstateintothesystemregistry.PublishProduct(min:0,max:unbounded):Managestheadvertisementoftheproductinformationwiththesystem.RegisterClassInfo(min:0,max:unbounded):ManagestheregistrationofCOMclassinformationwiththesystem.RegisterExtensionInfo(min:0,max:unbounded):Managestheregistrationofextensionrelatedinformationwiththesystem.RegisterMIMEInfo(min:0,max:unbounded):RegistersMIME-relatedregistryinformationwiththesystem.RegisterProgIdInfo(min:0,max:unbounded):ManagestheregistrationofOLEProgIdinformationwiththesystem.

AttributesNone

SeeAlsoWixSchema

Version3.5.1623.0

Page 428: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AllocateRegistrySpaceElement

DescriptionEnsurestheneededamountofspaceexistsintheregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesAllocateRegistrySpaceAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 429: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AppDataElement

DescriptionOptionalwayfordefiningAppData,generallyusedforcomplexCDATA.

WindowsInstallerreferencesNone

ParentsCategory

SeeAlsoWixSchema

Version3.5.1623.0

Page 430: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AppIdElement

DescriptionApplicationIDcontainingDCOMinformationfortheassociatedapplicationGUID.IfthiselementisnestedunderaFragment,Module,orProductelement,itmustbeadvertised.

WindowsInstallerreferencesAppIdTable,RegistryTable

ParentsComponent,File,Fragment,Module,Product,TypeLib

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Class(min:0,max:unbounded)

Attributes

Name Type Description Required

Id Guid SetthisvaluetotheAppIDGUIDthatcorrespondstothenamedexecutable.

Yes

ActivateAtStorage YesNoType Setthisvalueto'yes'toconfiguretheclienttoactivateonthesamesystemaspersistentstorage.

Advertise YesNoType Setthisvalueto'yes'inordertocreateanormal

Page 431: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AppIdtablerow.Setthisvalueto'no'inordertogenerateRegistryrowsthatperformsimilarregistration(withouttheoftenproblematicWindowsInstalleradvertisingbehavior).

Description String SetthisvaluetothedescriptionoftheAppId.ItcanonlybespecifiedwhentheAppIdisnotbeingadvertised.

DllSurrogate String SetthisvaluetospecifythattheclassisaDLLthatistobeactivatedinasurrogateEXEprocess,andthesurrogateprocesstobeusedisthepathofasurrogateEXEfilespecifiedbythevalue.

LocalService String SetthisvaluetothenameofaservicetoallowtheobjecttobeinstalledasaWin32service.

RemoteServerName String Setthisvaluetothenameoftheremoteservertoconfigure

Page 432: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

theclienttorequesttheobjectberunataparticularmachinewheneveranactivationfunctioniscalledforwhichaCOSERVERINFOstructureisnotspecified.

RunAsInteractiveUser YesNoType Setthisvalueto'yes'toconfigureaclasstorunundertheidentityoftheusercurrentlyloggedonandconnectedtotheinteractivedesktopwhenactivatedbyaremoteclientwithoutbeingwrittenasaWin32service.

ServiceParameters String SetthisvaluetotheparameterstobepassedtoaLocalServiceoninvocation.

RemarksWhenbeingusedinunadvertisedmode,theattributesintheAppIdelementcorrespondtoregistrykeysasfollows(valuesthatcanbespecifiedinauthoringareinbold):Id

InGeneral[HKCR\AppID\{Id}]

SpecificExample

Page 433: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

[HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]

ActivateAtStorageInGeneral

[HKCR\AppID\{Id}]ActivateAtStorage="ActivateAtStorage"

SpecificExample[HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]ActivateAtStorage="Y"

DescriptionInGeneral

[HKCR\AppID\{Id}]@="Description"

SpecificExample[HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]@="MyAppIdDescription"

DllSurrogateInGeneral

[HKCR\AppID\{Id}]DllSurrogate="DllSurrogate"

SpecificExample[HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]DllSurrogate="C:\surrogate.exe"

LocalServiceInGeneral

[HKCR\AppID\{Id}]LocalService="LocalService"

SpecificExample[HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]LocalService="MyServiceName"

Page 434: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RemoteServerNameInGeneral

[HKCR\AppID\{Id}]RemoteServerName="RemoteServerName"

SpecificExample[HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]RemoteServerName="MyRemoteServer"

RunAsInteractiveUserInGeneral

[HKCR\AppID\{Id}]RunAs="RunAsInteractiveUser"

SpecificExample[HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]RunAs="InteractiveUser"

ServiceParametersInGeneral

[HKCR\AppID\{Id}]ServiceParameters="ServiceParameters"

SpecificExample[HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]ServiceParameters="-param"

SeeAlsoWixSchema

Version3.5.1623.0

Page 435: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AppSearchElement

DescriptionUsesfilesignaturestosearchforexistingversionsofproducts.TheAppSearchactionmayusethisinformationtodeterminewhereupgradesaretobeinstalled.TheAppSearchactioncanalsobeusedtosetapropertytotheexistingvalueofanregistryor.inifileentry.AppSearchshouldbeauthoredintotheInstallUISequencetableandInstallExecuteSequencetable.TheinstallerpreventsTheAppSearchactionfromrunningintheInstallExecuteSequencesequenceiftheactionhasalreadyruninInstallUISequencesequence.TheAppSearchactionsearchesforfilesignaturesusingtheCompLocatortablefirst,theRegLocatortablenext,thentheIniLocatortable,andfinallytheDrLocatortable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesAppSearchTable,AppSearchAction

ParentsInstallExecuteSequence,InstallUISequence

InnerText(xs:string)Textnodespecifiestheconditionoftheaction.

ChildrenNone

Attributes

Name Type Description Required

After String Thenameofanactionthatthisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Page 436: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,ComponentSearch,FileSearch,IniFileSearch,RegistrySearch

Version3.5.1623.0

Page 437: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AssemblyNameElement

DescriptionTheMsiAssemblyNametablespecifiestheschemafortheelementsofastrongassemblycachenamefora.NETFrameworkorWin32assembly.ConsiderusingtheAssemblyattributeonFileelementtohavethetoolsetpopulatetheseentriesautomatically.

WindowsInstallerreferencesMsiAssemblyNameTable

ParentsFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String NameoftheattributeassociatedwiththevaluespecifiedintheValuecolumn.

Yes

Value String ValueassociatedwiththenamespecifiedintheNamecolumn.

SeeAlsoWixSchema

Version3.5.1623.0

Page 438: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

BillboardElement

DescriptionBillboardtodisplayduringinstallofaFeature

WindowsInstallerreferencesBillboardTable,BBControlTable

ParentsBillboardAction

InnerTextNone

ChildrenSequence(min:1,max:1)1. Control(min:0,max:unbounded):Onlycontrolsofstatictype

suchas:Text,Bitmap,Icon,orcustomcontrolcanbeplacedonabillboard.

Attributes

Name Type Description Required

Id String UniqueidentifierfortheBillboard. Yes

Feature String FeaturewhosestatedeterminesiftheBillboardisshown.

SeeAlsoWixSchema

Version3.5.1623.0

Page 439: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

BillboardActionElement

DescriptionBillboardactionduringwhichchildBillboardsaredisplayed

WindowsInstallerreferencesBillboardTable,BBControlTable

ParentsUI

InnerTextNone

ChildrenSequence(min:1,max:1)1. Billboard(min:1,max:unbounded):OrderofBillboardelements

determinesorderofdisplay

Attributes

Name Type Description Required

Id String ActionnamethatdetermineswhentheBillboardshouldbeshown.

Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 440: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

BinaryElement

DescriptionBinarydatausedforCustomActionelementsandUIcontrols.

WindowsInstallerreferencesBinaryTable

ParentsControl,Fragment,Module,Product,UI

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

Attributes

Name Type Description Required

Id String TheIdcannotbylongerthan55characters.InordertopreventerrorsincaseswheretheIdismodularized,itshouldnotbelongerthan18characters.

Yes

SourceFile String Pathtothebinaryfile.

src String Thisattributehas

Page 441: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

beendeprecated;pleaseusetheSourceFileattributeinstead.

SuppressModularization YesNoType UsetosuppressmodularizationofthisBinaryidentifierinmergemodules.

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

SeeAlsoWixSchema

Version3.5.1623.0

Page 442: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

BinaryRefElement

DescriptionUsedonlyforPatchFamiliestoincludeonlyabinarytableentryinapatch.

WindowsInstallerreferencesNone

ParentsPatchFamily

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifieroftheBinaryelementtoreference.

Yes

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

SeeAlsoWixSchema

Version3.5.1623.0

Page 443: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

BindImageElement

DescriptionBindseachexecutableorDLLthatmustbeboundtotheDLLsimportedbyit.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesBindImageTable,BindImageAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 444: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

BundleElement

DescriptionTherootelementforcreatingbundledpackages.

WindowsInstallerreferencesNone

ParentsWix

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

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

ChainComponentSearchContainerContainerRefDirectorySearchFileSearchLayoutDirectoryLayoutDirectoryRef

Page 445: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ProductSearchRegistrySearchUXVariable

AttributesNone

SeeAlsoWixSchema

Version3.5.1623.0

Page 446: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CategoryElement

DescriptionQualifiedpublishedcomponentforparentComponent

WindowsInstallerreferencesPublishComponentTable

ParentsComponent

InnerTextNone

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

Attributes

Name Type Description Required

Id Guid AstringGUIDthatrepresentsthecategoryofcomponentsbeinggroupedtogether.

Yes

AppData String Anoptionallocalizabletextdescribingthecategory.Thestringiscommonlyparsedbytheapplicationandcanbedisplayedtotheuser.Itshoulddescribethecategory.

Feature String Featurethatcontrolstheadvertisementofthecategory.DefaultstotheprimaryFeaturefortheparentComponent.

Qualifier String Atextstringthatqualifiesthevalue Yes

Page 447: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

intheIdattribute.AqualifierisusedtodistinguishmultipleformsofthesameComponent,suchasaComponentthatisimplementedinmultiplelanguages.

SeeAlsoWixSchema

Version3.5.1623.0

Page 448: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CCPSearchElement

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

WindowsInstallerreferencesCCPSearchAction

ParentsInstallExecuteSequence,InstallUISequence

InnerText(xs:string)Textnodespecifiestheconditionoftheaction.

ChildrenNone

Attributes

Name Type Description Required

After String Thenameofanactionthatthisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Page 449: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,RMCCPSearch,ComplianceCheck

Version3.5.1623.0

Page 450: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ChainElement

DescriptionContainsthechainofpackagestoinstall.

WindowsInstallerreferencesNone

ParentsBundle

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

ExePackage(min:0,max:unbounded)MsiPackage(min:0,max:unbounded)MspPackage(min:0,max:unbounded)MsuPackage(min:0,max:unbounded)PackageGroupRef(min:0,max:unbounded)

AttributesNone

SeeAlsoWixSchema

Version3.5.1623.0

Page 451: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ClassElement

DescriptionCOMClassregistrationforparentComponent.

WindowsInstallerreferencesClassTable,ProgIdTable,RegistryTable,AppIdTable

ParentsAppId,Component,File,TypeLib

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

FileTypeMask(min:0,max:unbounded)Interface(min:0,max:unbounded):TheseInterfaceswillberegisteredwiththeparentClassandTypeLib(ifpresent).ProgId(min:0,max:unbounded):AProgIdassociatedwithClassmustbeachildelementoftheClasselement

Attributes

Name Type Description Required

Id Guid TheClassidentifier(CLSID)ofaCOMserver.

Yes

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

Page 452: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

(withouttheoftenproblematicWindowsInstalleradvertisingbehavior).

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

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

Page 453: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

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

Page 454: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

following:LocalServer

A16-bitlocalserverapplication.

LocalServer32A32-bitlocalserverapplication.

InprocServerA16-bitin-processserverDLL.

InprocServer32A32-bitin-processserverDLL.

Control YesNoType Setthisattribute'svalueto'yes'toidentifyanobjectasanActiveXControl.Thedefaultvalueis'no'.

Description String LocalizeddescriptionassociatedwiththeClassIDandProgramID.

ForeignServer String MayonlybespecifiedifthevalueoftheAdvertiseattributeis"no"andServerhasnotbeenspecified.Inaddition,itmayonlybeusedwhentheClasselementisdirectlyundertheComponentelement.

Page 455: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Thevaluecanbethatofanregistrytype(REG_SZ).Thisattributeshouldbeusedtospecifyforeignservers,suchasmscoree.dllifneeded.

Handler String Thedefaultinprochandler.MaybeoptionallyprovidedonlyforContext=LocalServerorLocalServer32.Valueof"1"createsa16-bitInprocHandler(appearingastheInprocHandlervalue).Valueof"2"createsa32-bitInprocHandler(appearingastheInprocHandler32value).Valueof"3"creates16-bitaswellas32-bitInprocHandlers.Anon-numericvalueistreatedasasystemfilethatservesasthe32-bitInprocHandler(appearingastheInprocHandler32value).

Icon String ThefileprovidingtheiconassociatedwiththisCLSID.ReferencetoanIconelement(shouldmatchtheIdattributeofanIcon

Page 456: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

element).ThisiscurrentlynotsupportedifthevalueoftheAdvertiseattributeis"no".

IconIndex Integer Iconindexintotheiconfile.

Insertable YesNoType SpecifiestheCLSIDmaybeinsertable.

Programmable YesNoType SpecifiestheCLSIDmaybeprogrammable.

RelativePath YesNoType Whenthevalueis"yes",thebarefilenamecanbeusedforCOMservers.Theinstallerregistersthefilenameonlyinsteadofthecompletepath.Thisenablestheserverinthecurrentdirectorytotakeprecedenceandallowsmultiplecopiesofthesamecomponent.

SafeForInitializing YesNoType MayonlybespecifiedifthevalueoftheAdvertiseattributeis"no".

SafeForScripting YesNoType MayonlybespecifiedifthevalueoftheAdvertiseattributeis"no".

Server String Mayonlybespecified

Page 457: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ifthevalueoftheAdvertiseattributeis"no"andtheForeignServerattributeisnotspecified.FileIdoftheCOMserverfile.IfthiselementisnestedunderaFileelement,thisvaluedefaultstothevalueoftheparentFile/@Id.

ShortPath YesNoType SpecifieswhetherornottousetheshortpathfortheCOMserver.ThiscanonlyapplywhenAdvertiseissetto'no'.Thedefaultis'no'meaningthatitwillusethelongfilenamefortheCOMserver.

ThreadingModel Enumeration ThreadingmodelfortheCLSID.Thisattribute'svaluemustbeoneofthefollowing:apartment

free

both

neutral

single

rental

Version String VersionfortheCLSID.

Page 458: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RemarksWhenbeingusedinunadvertisedmode,theattributesintheClasselementcorrespondtoregistrykeysasfollows(valuesthatcanbespecifiedinauthoringareinbold):Id/Context/Server

InGeneral[HKCR\CLSID\{Id}\Context1]@="[!Server]"[HKCR\CLSID\{Id}\Context2]@="[!Server]"

SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer]@="[!comserv.dll]"[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]@="[!comserv.dll]"

Id/Context/ForeignServerInGeneral

[HKCR\CLSID\{Id}\Context1]@="ForeignServer"[HKCR\CLSID\{Id}\Context2]@="ForeignServer"

SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer]@="mscoree.dll"[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]@="mscoree.dll"

AppIdInGeneral

[HKCR\CLSID\{Id}]AppId="{AppId}"

SpecificExample

Page 459: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}]AppId="{00000000-89AB-0000-0123-000000000000}"

ArgumentInGeneral

[HKCR\CLSID\{Id}\Context]@="[!Server]Argument"

SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]@="[!comserv.dll]/arg1/arg2/arg3"

ControlInGeneral

Value"yes"specified:[HKCR\CLSID\{Id}\Control]

SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Control]

DescriptionInGeneral

[HKCR\CLSID\{Id}]@="Description"

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

HandlerInGeneral

Value"1"specified:[HKCR\CLSID\{Id}\InprocHandler]@="ole.dll"Value"2"specified:[HKCR\CLSID\{Id}\InprocHandler32]@="ole32.dll"Value"3"specified:

Page 460: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

[HKCR\CLSID\{Id}\InprocHandler]@="ole.dll"[HKCR\CLSID\{Id}\InprocHandler32]@="ole32.dll"Othervaluespecified:[HKCR\CLSID\{Id}\InprocHandler32]@="Handler"

SpecificExample(forothervalue)[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\InprocHandler32]@="handler.dll"

Icon/IconIndexThisisnotcurrentlyhandledproperly.

InsertableInGeneral

Value"no"specified:[HKCR\CLSID\{Id}\NotInsertable]Value"yes"specified:[HKCR\CLSID\{Id}\Insertable]

SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Insertable]

ProgrammableInGeneral

Value"yes"specified:[HKCR\CLSID\{Id}\Programmable]

SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Programmable]

RelativePathUnsupported.PleasecontributethisbacktoWiXifyouknow.

SafeForInitializingInGeneral

Value"yes"specified:

Page 461: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

[HKCR\CLSID\{Id}\ImplementedCategories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}]

SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\ImplementedCategories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}]

SafeForScriptingInGeneral

Value"yes"specified:[HKCR\CLSID\{Id}\ImplementedCategories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}]

SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\ImplementedCategories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}]

ThreadingModelInGeneral

[HKCR\CLSID\{Id}\Context]ThreadingModel="ThreadingModel"

SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]ThreadingModel="Apartment"

TypeLibId(fromparentTypeLib/@Id)InGeneral

[HKCR\CLSID\{Id}\TypeLib]@="{TypeLibId}"

SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\TypeLib]@="{11111111-89AB-1111-0123-111111111111}"

VersionInGeneral

[HKCR\CLSID\{Id}\Version]

Page 462: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

@="Version"

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

SeeAlsoWixSchema,AppId

Version3.5.1623.0

Page 463: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ColumnElement

DescriptionColumndefinitionforaCustomTable

WindowsInstallerreferencesNone

ParentsCustomTable

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Identifierforthecolumn. Yes

Category Enumeration Categoryofthiscolumn.Thisattributemustbespecifiedwithavalueof'Binary'iftheTypeattribute'svalueis'binary'.Thisattribute'svaluemustbeoneofthefollowing:Text

UpperCase

LowerCase

Integer

DoubleInteger

TimeDate

Page 464: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Identifier

Property

Filename

WildCardFilename

Path

Paths

AnyPath

DefaultDir

RegPath

Formatted

FormattedSddl

Template

Condition

Guid

Version

Language

Binary

CustomSource

Cabinet

Shortcut

Description String Descriptionofthiscolumn.

KeyColumn Integer ColumninthetableinKeyTableattribute.

KeyTable String Tableinwhichthiscolumnisanexternalkey.Canbesemicolondelimited.

Page 465: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Localizable YesNoType Whetherthiscolumncanbelocalized.

MaxValue Integer Maximumvalueforanumericvalue,dateorversioninthiscolumn.

MinValue Integer Minimumvalueforanumericvalue,dateorversioninthiscolumn.

Modularize Enumeration Howthiscolumnshouldbemodularized,ifatall.Thisattribute'svaluemustbeoneofthefollowing:None

Columnshouldnotbemodularized.Thisisthedefaultvalue.

ColumnColumnshouldbemodularized.

ConditionColumnisaconditionandshouldbemodularized.

IconWhenthecolumnisanprimaryorforeignkeytotheIcontableitshouldbemodularizedspecial.

PropertyAnyPropertiesinthecolumnshouldbemodularized.

SemicolonDelimited

Page 466: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Semi-colonlistofkeys,allofwhichneedtobemodularized.

Nullable YesNoType Whetherthiscolumncanbeleftnull.

PrimaryKey YesNoType Whetherthiscolumnisaprimarykey.

Set String Semicolondelimitedlistofpermissiblevalues.

Type Enumeration Thetypeofthiscolumn.Thisattribute'svaluemustbeoneofthefollowing:binary

Columncontainsapathtoafilethatwillbeinsertedintothecolumnasabinaryobject.Ifthisvalueisset,theCategoryattributemustalsobesetwithavalueof'Binary'topassICEvalidation.

intColumncontainsanintegerordatetimevalue(theMinValueandMaxValueattributesshouldalsobeset).

stringColumncontainsanon-localizablestringvalue.

Yes

Width Integer Widthofthiscolumn.

Page 467: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SeeAlsoWixSchema

Version3.5.1623.0

Page 468: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComboBoxElement

DescriptionSetofitemsforaparticularComboBoxcontroltiedtoaninstallProperty

WindowsInstallerreferencesComboBoxTable,ControlTable,DialogTable

ParentsControl,UI

InnerTextNone

ChildrenSequence(min:1,max:1)1. ListItem(min:0,max:unbounded):entryforComboBoxtable

Attributes

Name Type Description Required

Property String Propertytiedtothisgroup Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 469: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComplianceCheckElement

DescriptionAddsarowtotheCCPSearchtable.

WindowsInstallerreferencesCCPSearchTable,SignatureTable

ParentsFragment,Product

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Sequence(min:1,max:1)1. ComplianceDrive(min:0,max:1):Startssearchesfromthe

CCP_DRIVE.2. ComponentSearch(min:0,max:unbounded)3. RegistrySearch(min:0,max:unbounded)4. IniFileSearch(min:0,max:unbounded)5. DirectorySearch(min:0,max:unbounded)

AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

AttributesNone

SeeAlsoWixSchema,Property

Version3.5.1623.0

Page 470: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComplianceDriveElement

DescriptionSetstheparentofanestedDirectorySearchelementtoCCP_DRIVE.

WindowsInstallerreferencesNone

ParentsComplianceCheck,Property

InnerTextNone

ChildrenChoiceofelements(min:1,max:1)

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

AttributesNone

SeeAlsoWixSchema

Version3.5.1623.0

Page 471: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComponentElement

DescriptionComponentforparentDirectory

WindowsInstallerreferencesComponentTable,ConditionTable,DirectoryTable

ParentsComponentGroup,Directory,DirectoryRef,Feature,FeatureGroup,FeatureRef,Fragment,Module,Product

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

AppId(min:0,max:unbounded)Category(min:0,max:unbounded)Class(min:0,max:unbounded)Condition(min:0,max:unbounded)CopyFile(min:0,max:unbounded)CreateFolder(min:0,max:unbounded)Environment(min:0,max:unbounded)Extension(min:0,max:unbounded)File(min:0,max:unbounded)IniFile(min:0,max:unbounded)Interface(min:0,max:unbounded)IsolateComponent(min:0,max:unbounded)ODBCDataSource(min:0,max:unbounded)ODBCDriver(min:0,max:unbounded)ODBCTranslator(min:0,max:unbounded)ProgId(min:0,max:unbounded)Registry(min:0,max:unbounded)

Page 472: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegistryKey(min:0,max:unbounded)RegistryValue(min:0,max:unbounded)RemoveFile(min:0,max:unbounded)RemoveFolder(min:0,max:unbounded)RemoveRegistryKey(min:0,max:unbounded)RemoveRegistryValue(min:0,max:unbounded)ReserveCost(min:0,max:unbounded)ServiceConfig(min:0,max:unbounded)ServiceConfigFailureActions(min:0,max:unbounded)ServiceControl(min:0,max:unbounded)ServiceInstall(min:0,max:unbounded)Shortcut(min:0,max:unbounded)SymbolPath(min:0,max:unbounded)TypeLib(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

CertificateComPlusApplicationComPlusApplicationRoleComPlusAssemblyComPlusGroupInApplicationRoleComPlusGroupInPartitionRoleComPlusPartitionComPlusPartitionRoleComPlusPartitionUserComPlusRoleForComponentComPlusRoleForInterfaceComPlusRoleForMethodComPlusSubscriptionComPlusUserInApplicationRoleComPlusUserInPartitionRoleDriver

Page 473: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

EventSourceFileShareFirewallExceptionInternetShortcutMessageQueueMessageQueuePermissionPerformanceCategoryServiceConfigSqlDatabaseSqlScriptSqlStringUserWebAppPoolWebDirWebFilterWebPropertyWebServiceExtensionWebSiteWebVirtualDirXmlConfigXmlFile

Attributes

Name Type Description

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

Directory String SetstheDirectoryofthe

Page 474: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Component.IfthiselementisnestedunderaDirectoryelement,thisvaluedefaultstothevalueoftheparentDirectory/@Id.

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

DiskId Integer ThisattributeprovidesadefaultDiskIdattributeforallchildFileelements.SpecifyingtheDiskIdonaComponentelementwilloverrideanyDiskIdattributessetbyparentDirectoryorDirectoryRefelements.SeetheFileelement'sDiskIdattributeformoreinformationaboutthepurposeoftheDiskId.

Feature String Identifiesafeaturetowhichthiscomponent

Page 475: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

belongs,asashorthandforachildComponentRefelementoftheFeatureelement.ThevalueofthisattributeshouldcorrespondtotheIdattributeofaFeatureelementauthoredelsewhere.Notethatasinglecomponentcanbelongtomultiplefeaturesbutthisattributeallowsyoutospecifyonlyasinglefeature.

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

Page 476: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

repairedbyWindowsInstaller(itisessentiallyanunpatchable,permanentcomponent).Therefore,aguidshouldalwaysbespecifiedforanycomponentwhichcontainsresourcesthatmayneedtobepatchedinthefuture.

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

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

Location Enumeration Optionalvaluethatspecifiesthelocationthatthecomponentcanberunfrom.Thisattribute's

Page 477: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

valuemustbeoneofthefollowing:local

Preventsthecomponentfromrunningfromthesourceorthenetwork(thisisthedefaultbehaviorifthisattributeisnotset).

sourceEnforcesthatthecomponentcanonlyberunfromthesource(itcannotberunfromtheuser'scomputer).

eitherAllowsthecomponenttorunfromsourceorlocally.

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

Page 478: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

componentsregisteredbytheAppId,Class,Extension,ProgId,MIME,andVerbtables.

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

Shared YesNoType Ifthisattribute'svalueissetto'yes',enablesadvancedpatchingsemanticsforComponentsthataresharedacrossmultipleProducts.Specifically,theWindowsInstallerwillcachethesharedfilestoimprovepatchuninstall.ThisfunctionalityisavailableinWindows

Page 479: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Installer4.5andlater.

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

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

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

Page 480: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

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

HowTosandExamplesHowTo:Addafiletoyourinstaller

SeeAlsoWixSchema,ComponentRef,Media

Version3.5.1623.0

Page 481: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComponentGroupElement

DescriptionGroupstogethermultiplecomponentstobeusedinotherlocations.

WindowsInstallerreferencesNone

ParentsFragment,Product

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Component(min:0,max:unbounded)ComponentGroupRef(min:0,max:unbounded)ComponentRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

Attributes

Name Type Description Required

Id String IdentifierfortheComponentGroup. Yes

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

SeeAlsoWixSchema,ComponentGroupRef

Version3.5.1623.0

Page 482: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComponentGroupRefElement

DescriptionCreateareferencetoaComponentGroupinanotherFragment.

WindowsInstallerreferencesNone

ParentsComponentGroup,Feature,FeatureGroup,FeatureRef,Module

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifieroftheComponentGrouptoreference.

Yes

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

Page 483: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

feature,thatfeatureistheprimaryfeatureforthecomponent.Youcannotsetmorethanonefeatureastheprimaryfeatureofagivencomponent.

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

SeeAlsoWixSchema,ComponentGroup

Version3.5.1623.0

Page 484: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComponentRefElement

DescriptionCreateareferencetoaFeatureelementinanotherFragment.

WindowsInstallerreferencesNone

ParentsComponentGroup,Feature,FeatureGroup,FeatureRef,Module,PatchFamily

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifieroftheComponentelementtoreference.

Yes

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

Page 485: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

componentnestsunderonlyonefeature,thatfeatureistheprimaryfeatureforthecomponent.Youcannotsetmorethanonefeatureastheprimaryfeatureofagivencomponent.

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

HowTosandExamplesHowTo:Addafiletoyourinstaller

SeeAlsoWixSchema,Component

Version3.5.1623.0

Page 486: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComponentSearchElement

DescriptionSearchesforfileordirectoryandassignstovalueofparentProperty.

WindowsInstallerreferencesCompLocatorTable,SignatureTable

ParentsComplianceCheck,Property

InnerTextNone

ChildrenChoiceofelements(min:0,max:1)

DirectorySearch(min:0,max:1)DirectorySearchRef(min:0,max:1)FileSearch(min:0,max:1)FileSearchRef(min:0,max:1)

Attributes

Name Type Description Required

Id String Yes

Guid Guid ThecomponentIDofthecomponentwhosekeypathistobeusedforthesearch.

Type Enumeration MustbefileiflastchildisFileSearchelementandmustbedirectoryiflastchildisDirectorySearchelement.Thisattribute'svaluemustbeoneofthefollowing:directory

Page 487: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Thekeypathofthecomponentisadirectory.

fileThekeypathofthecomponentisafile.Thisisthedefaultvalue.

SeeAlsoWixSchema,IniFileSearch,RegistrySearch

Version3.5.1623.0

Page 488: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ConditionElement

DescriptionConditionsforcomponents,controls,features,andproducts.Theconditionisspecifiedintheinnertextoftheelement.

WindowsInstallerreferencesComponentTable,ControlConditionTable,ConditionTable,LaunchConditionTable

ParentsComponent,Control,Feature,Fragment,PermissionEx,Product

InnerText(xs:string)UnderaComponentelement,theconditionbecomestheconditionofthecomponent.UnderaControlelement,theconditionbecomesaControlConditionentry.UnderaFeatureelement,theconditionbecomesaConditionentry.UnderaFragmentorProductelement,theconditionbecomesaLaunchConditionentry.

ChildrenNone

Attributes

Name Type Description Required

Action Enumeration UsedonlyunderControlelementsandisrequired.Allowsspecificactionstobeappliedtoacontrolbasedontheresultofthiscondition.Thisattribute'svaluemustbeoneofthefollowing:default

SettheControlasthedefault.OnlyusedunderControlelements.

Page 489: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

enableEnabletheControl.OnlyusedunderControlelements.

disableDisabletheControl.OnlyusedunderControlelements.

hideHidetheControl.OnlyusedunderControlelements.

showDisplaytheControl.OnlyusedunderControlelements.

Level Integer UsedonlyunderFeatureelementsandisrequired.AllowsmodifyingthelevelofaFeaturebasedontheresultofthiscondition.

Message String UsedonlyunderFragmentorProductelementsandisrequired.Setthevaluetothetexttodisplaywhentheconditionfailsandtheinstallationmustbeterminated.

HowTosandExamplesHowTo:BlockinstallationbasedonOSversionHowTo:Checktheversionnumberofafileduringinstallation

SeeAlsoWixSchema

Version3.5.1623.0

Page 490: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ConfigurationElement

DescriptionDefinestheconfigurableattributesofmergemodule.

WindowsInstallerreferencesNone

ParentsModule

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

ContextData String Specifiesasemanticcontextfortherequesteddata.

DefaultValue String Specifiesadefaultvaluefortheiteminthisrecordifthemergetooldeclinestoprovideavalue.

Description String Descriptionforauthoring.

DisplayName String Displaynameforauthoring.

Format Enumeration Specifiestheformatofthedatabeingchanged.Thisattribute'svaluemustbeoneofthefollowing:Text

Yes

Page 491: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Key

Integer

Bitfield

HelpKeyword String Keywordintochmfileforauthoring.

HelpLocation String Locationofchmfileforauthoring.

KeyNoOrphan YesNoType DoesnotmergeruleaccordingtorulesinMSISDK.

Name String Definesthenameoftheconfigurableitem.

Yes

NonNullable YesNoType Ifyes,nullisnotavalidentry.

Type String Specifiesthetypeofthedatabeingchanged.

SeeAlsoWixSchema

Version3.5.1623.0

Page 492: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ConfigurationDataElement

DescriptionDatatouseasinputtoaconfigurablemergemodule.

WindowsInstallerreferencesNone

ParentsMerge

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Name String KeyintotheModuleConfigurationtable.

Yes

Value String Valuetobepassedtoconfigurablemergemodule.

Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 493: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ContainerElement

DescriptionRepresentationofafilethatcontainsoneormorefiles.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Payload(min:0,max:unbounded)

Attributes

Name Type Description Required

Name String Thedestinationpathandfilenameforthiscontainer.

Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 494: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ContainerRefElement

DescriptionCreateareferencetoanexistingContainerelement.

WindowsInstallerreferencesNone

ParentsBundle

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifierofContainerelementtoreference.

Yes

SeeAlsoWixSchema,Container

Version3.5.1623.0

Page 495: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ControlElement

DescriptionContainsthecontrolsthatappearoneachdialog.

WindowsInstallerreferencesControlTable,ComboBoxTable,DialogTable,ListBoxTable,ListViewTable,RadioButtonTable

ParentsBillboard,Dialog

InnerTextNone

ChildrenSequence(min:1,max:1)1. Text(min:0,max:1):alternativetoTextattributewhenCDATAis

neededtoescapeXMLdelimiters2. ComboBox(min:0,max:1):ComboBoxtablewithListItem

children3. ListBox(min:0,max:1):ListBoxtablewithListItemchildren4. ListView(min:0,max:1):ListViewtablewithListItemchildren5. RadioButtonGroup(min:0,max:1):RadioButtontablewith

RadioButtonchildren6. Property(min:0,max:1):PropertytableentryfortheProperty

tablecolumnassociatedwiththiscontrol7. Binary(min:0,max:1):Iconreferencediniconcolumnofrow8. Choiceofelements(min:0,max:unbounded)

Condition(min:0,max:unbounded):Conditiontospecifyactionsforthiscontrolbasedontheoutcomeofthecondition.Publish(min:0,max:unbounded)Subscribe(min:0,max:unbounded)

Attributes

Page 496: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Name Type Description Required

Id String CombinedwiththeDialogIdtomakeuptheprimarykeyoftheControltable.

Yes

Bitmap YesNoType ThisattributeisonlyvalidforRadioButtonandPushButtonControls.

Cancel YesNoType Setthisattributeto"yes"tocausethisControltobeinvokedbytheescapekey.

CDROM YesNoType ThisattributeisonlyvalidforVolumeandDirectoryControls.

CheckBoxPropertyRef String ThisattributeisonlyvalidforCheckBoxcontrols.ThevalueisthenameofaPropertythatwasalreadyusedasthePropertyforanotherCheckBoxcontrol.ThePropertyattributecannotbespecified.Theattributeexiststosupportmultiplecheckboxesondifferentdialogsbeingtiedtothesameproperty.

CheckBoxValue String Thisattributeisonly

Page 497: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

validforCheckBoxControls.Whenset,thelinkedPropertywillbesettothisvaluewhenthecheckboxischecked.

ComboList YesNoType ThisattributeisonlyvalidforComboBoxControls.

Default YesNoType Setthisattributeto"yes"tocausethisControltobeinvokedbythereturnkey.

Disabled YesNoType Setthisattributeto"yes"tocausetheControltobedisabled.

ElevationShield YesNoType ThisattributeisonlyvalidforPushButtoncontrols.Setthisattributeto"yes"toaddtheUserAccountControl(UAC)elevationicon(shieldicon)tothePushButtoncontrol.Ifthisattribute'svalueis"yes"andtheinstallationisnotyetrunningwithelevatedprivileges,thepushbuttoncontroliscreatedusingtheUser

Page 498: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AccountControl(UAC)elevationicon(shieldicon).Ifthisattribute'svalueis"yes"andtheinstallationisalreadyrunningwithelevatedprivileges,thepushbuttoncontroliscreatedusingtheothericonattributes.Otherwise,thepushbuttoncontroliscreatedusingtheothericonattributes.

Fixed YesNoType ThisattributeisonlyvalidforVolumeandDirectoryControls.

FixedSize YesNoType ThisattributeisonlyvalidforRadioButton,PushButton,andIconControls.

Floppy YesNoType ThisattributeisonlyvalidforVolumeandDirectoryControls.

FormatSize YesNoType ThisattributeisonlyvalidforTextControls.

HasBorder YesNoType ThisattributeisonlyvalidforRadioButtonControls.

Height LocalizableInteger Heightoftherectangular

Yes

Page 499: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

boundaryofthecontrol.Thismustbeanon-negativenumber.

Help String Thisattributeisreservedforfutureuse.ThereisnoneedtousethisuntilWindowsInstallerusesitforsomething.

Hidden YesNoType Setthisattributeto"yes"tocausetheControltobehidden.

Icon YesNoType ThisattributeisonlyvalidforRadioButtonandPushButtonControls.

IconSize Enumeration ThisattributeisonlyvalidforRadioButton,PushButton,andIconControls.Thisattribute'svaluemustbeoneofthefollowing:16

32

48

Image YesNoType ThisattributeisonlyvalidforRadioButton,PushButton,andIconControls.

Page 500: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Indirect YesNoType Specifieswhetherthevaluedisplayedorchangedbythiscontrolisreferencedindirectly.Ifthisbitisset,thecontroldisplaysorchangesthevalueofthepropertythathastheidentifierlistedinthePropertycolumnoftheControltable.

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

LeftScroll YesNoType Setthisattributeto"yes"tocausethescrollbartodisplayontheleftsideoftheControl.

Multiline YesNoType ThisattributeisonlyvalidforEditControls.

NoPrefix YesNoType ThisattributeisonlyvalidforTextControls.

NoWrap YesNoType ThisattributeisonlyvalidforTextControls.

Password YesNoType Thisattributeisonly

Page 501: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

validforEditControls.

ProgressBlocks YesNoType ThisattributeisonlyvalidforProgressBarControls.

Property String Thenameofadefinedpropertytobelinkedtothiscontrol.Thiscolumnisrequiredforactivecontrols.

PushLike YesNoType ThisattributeisonlyvalidforRadioButtonandCheckboxControls.

RAMDisk YesNoType ThisattributeisonlyvalidforVolumeandDirectoryControls.

Remote YesNoType ThisattributeisonlyvalidforVolumeandDirectoryControls.

Removable YesNoType ThisattributeisonlyvalidforVolumeandDirectoryControls.

RightAligned YesNoType Setthisattributeto"yes"tocausetheControltoberightaligned.

RightToLeft YesNoType Setthisattributeto"yes"tocausetheControltodisplayfromrighttoleft.

ShowRollbackCost YesNoType Thisattributeisonlyvalidfor

Page 502: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VolumeCostListControls.

Sorted YesNoType ThisattributeisonlyvalidforListBox,ListView,andComboBoxControls.Setthevalueofthisattributeto"yes"tohaveentriesappearintheorderspecifiedundertheControl.Iftheattributevalueis"no"orabsenttheentriesinthecontrolwillappearinalphabeticalorder.

Sunken YesNoType Setthisattributeto"yes"tocausetheControltobesunken.

TabSkip YesNoType Setthisattributeto"yes"tocausethisControltobeskippedinthetabsequence.

Text String Alocalizablestringusedtosettheinitialtextcontainedinacontrol.Thisattributecancontainaformattedstringthatisprocessedatinstalltimetoinsertthevaluesofpropertiesusing[PropertyName]

Page 503: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

syntax.Alsosupportedareenvironmentvariables,fileinstallationpaths,andcomponentinstallationdirectories;seeFormattedfordetails.

ToolTip String ThestringusedfortheTooltip.

Transparent YesNoType ThisattributeisonlyvalidforTextControls.

Type String Thetypeofthecontrol.Couldbeoneofthefollowing:Billboard,Bitmap,CheckBox,ComboBox,DirectoryCombo,DirectoryList,Edit,GroupBox,Hyperlink,Icon,Line,ListBox,ListView,MaskedEdit,PathEdit,ProgressBar,PushButton,RadioButtonGroup,ScrollableText,SelectionTree,Text,VolumeCostList,VolumeSelectCombo

Yes

UserLanguage YesNoType Thisattributeisonly

Page 504: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

validforTextControls.

Width LocalizableInteger Widthoftherectangularboundaryofthecontrol.Thismustbeanon-negativenumber.

Yes

X LocalizableInteger Horizontalcoordinateoftheupper-leftcorneroftherectangularboundaryofthecontrol.Thismustbeanon-negativenumber.

Yes

Y LocalizableInteger Verticalcoordinateoftheupper-leftcorneroftherectangularboundaryofthecontrol.Thismustbeanon-negativenumber.

Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 505: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CopyFileElement

DescriptionCopyormoveanexistingfileonthetargetmachine,orcopyafilethatisbeinginstalled,toanotherdestination.WhenthiselementisnestedunderaFileelement,theparentfilewillbeinstalled,thencopiedtothespecifieddestinationiftheparentcomponentofthefileisselectedforinstallationorremoval.WhenthiselementisnestedunderaComponentelementandnoFileIdattributeisspecified,thefiletocopyormovemustalreadybeonthetargetmachine.WhenthiselementisnestedunderaComponentelementandtheFileIdattributeisspecified,thespecifiedfileisinstalled,thencopiedtothespecifieddestinationiftheparentcomponentisselectedforinstallationorremoval(usethisoptiontocontrolthecopyofafileinadifferentcomponentbytheparentcomponent'sinstallationstate).Ifthespecifieddestinationdirectoryisthesameasthedirectorycontainingtheoriginalfileandthenamefortheproposedsourcefileisthesameastheoriginal,thennoactiontakesplace.

WindowsInstallerreferencesDuplicateFileTable,MoveFileTable

ParentsComponent,File

InnerTextNone

ChildrenNone

Attributes

Name Type Description

Id String Primarykeyusedtoidentifythisparticularentry.

Page 506: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Delete YesNoType ThisattributecannotbespecifiediftheelementisnestedunderaFileelementortheFileIdattributeisspecified.Inothercases,iftheattributeisnotspecified,thedefaultvalueis"no"andthefileiscopied,notmoved.Setthevalueto"yes"tomovethefile(thusdeletingthesourcefile)insteadofcopyingit.

DestinationDirectory String Setthisvaluetothedestinationdirectorywhereanexistingfileonthetargetmachineshouldbemovedorcopiedto.ThisDirectorymustexistintheinstallerdatabaseatcreationtime.attributecannotbespecifiedinconjunctionwithDestinationProperty.

DestinationLongName LongFileNameType Thisattributehasbeendeprecated;pleaseusetheDestinationNameattributeinstead.

DestinationName LongFileNameType InpriorversionsoftheWiXtoolset,thisattributespecifiedthe

Page 507: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

DestinationProperty String Setthisvaluetoapropertythatwillhaveavaluethatresolves

Page 508: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

DestinationShortName ShortFileNameType Theshortfilenameofthefilein8.3format.Thisattributeshouldonlybesetifthereisaconflictbetweengeneratedshortfilenamesoryouwishtomanuallyspecifytheshortfilename.

FileId String ThisattributecannotbespecifiediftheelementisnestedunderaFileelement.Setthisattribute'svaluetotheidentifierofafilefromadifferentcomponenttocopyitbasedontheinstallstateoftheparentcomponent.

SourceDirectory String Thisattributecannotbespecifiediftheelementisnested

Page 509: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

underaFileelementortheFileIdattributeisspecified.Setvaluetothesourcedirectoryfromwhichtocopyormoveanexistingfileonthetargetmachine.Directorymusttheinstallerdatabaseatcreationtime.attributecannotbespecifiedinconjunctionwithSourceProperty.

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

Page 510: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

SourceProperty String ThisattributecannotbespecifiediftheelementisnestedunderaFileelementortheFileIdattributeisspecified.Setvaluetoapropertythatwillhaveavaluethatresolvestothefullpathofthesourcedirectory(orfullpathincludingfilenameifSourceNameisnotspecified).Thepropertydoesnothavetoexistintheinstallerdatabaseat

Page 511: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

creationtime;itcouldbecreatedatinstallationtimebyacustomaction,onthecommandline,etc.ThisattributebespecifiedinconjunctionwithSourceDirectory.

SeeAlsoWixSchema,RemoveFile

Version3.5.1623.0

Page 512: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CostFinalizeElement

DescriptionEndstheinternalinstallationcostingprocessbegunbytheCostInitializeaction.AnystandardorcustomactionsthataffectcostingshouldbesequencedbeforetheCostInitializeaction.CalltheFileCostactionimmediatelyfollowingtheCostInitializeactionandthencalltheCostFinalizeactiontomakeallfinalcostcalculationsavailabletotheinstallerthroughtheComponenttable.TheCostFinalizeactionmustbeexecutedbeforestartinganyuserinterfacesequencewhichallowstheusertoviewormodifyFeaturetableselectionsordirectories.TheCostFinalizeactionqueriestheConditiontabletodeterminewhichfeaturesarescheduledtobeinstalled.CostingisdoneforeachcomponentintheComponenttable.TheCostFinalizeactionalsoverifiesthatallthetargetdirectoriesarewritablebeforeallowingtheinstallationtocontinue.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesCostFinalizeAction

ParentsAdminExecuteSequence,AdminUISequence,AdvertiseExecuteSequence,InstallExecuteSequence,InstallUISequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethe

Page 513: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,CostInitialize,FileCost

Version3.5.1623.0

Page 514: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CostInitializeElement

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

WindowsInstallerreferencesCostInitializeAction

ParentsAdminExecuteSequence,AdminUISequence,AdvertiseExecuteSequence,InstallExecuteSequence,InstallUISequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,FileCost,CostFinalize

Version3.5.1623.0

Page 515: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CreateFolderElement

DescriptionCreatefolderaspartofparentComponent.

WindowsInstallerreferencesCreateFolderTable

ParentsComponent

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Permission(min:0,max:unbounded):ACLpermissionPermissionEx(min:0,max:unbounded):CanalsoconfiguretheACLsforthisfolder.Shortcut(min:0,max:unbounded):Non-advertisedshortcuttothisfolder,ShortcutTargetispresettothefolderAnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

PermissionEx

Attributes

Name Type Description Required

Directory String IdentifierofDirectorytocreate.DefaultstoDirectoryofparentComponent.

SeeAlsoWixSchema,RemoveFolder

Version3.5.1623.0

Page 516: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CreateFoldersElement

DescriptionCreatesemptyfoldersforcomponentsthataresettobeinstalled.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesCreateFoldersAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 517: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CreateShortcutsElement

DescriptionManagesthecreationofshortcuts.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesCreateShortcutsAction

ParentsAdvertiseExecuteSequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 518: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CustomElement

DescriptionUsetosequenceacustomaction.

WindowsInstallerreferencesNone

ParentsAdminExecuteSequence,AdminUISequence,AdvertiseExecuteSequence,InstallExecuteSequence,InstallUISequence

InnerText(xs:string)Textnodespecifiestheconditionoftheaction.

ChildrenNone

Attributes

Name Type Description Required

Action String TheactiontowhichtheCustomelementapplies.

Yes

After String Thenameofthestandardorcustomactionafterwhichthisactionshouldbeperformed.MutuallyexclusivewithBefore,OnExit,andSequenceattributes

Before String Thenameofthestandardorcustomactionbeforewhichthisactionshouldbeperformed.MutuallyexclusivewithOnExit,After,andSequenceattributes

Page 519: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

OnExit ExitType MutuallyexclusivewithBefore,After,andSequenceattributes

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Thesequencenumberforthisaction.MutuallyexclusivewithBefore,After,andOnExitattributes

SeeAlsoWixSchema,CustomAction

Version3.5.1623.0

Page 520: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CustomActionElement

DescriptionSpecifiesacustomactiontobeaddedtotheMSICustomActiontable.Variouscombinationsoftheattributesforthiselementcorrespondtodifferentcustomactiontypes.FormoreinformationaboutcustomactionsseetheCustomActionTypestopiconMSDN.

WindowsInstallerreferencesCustomActionTable

ParentsFragment,Module,Product

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

ChildrenNone

Attributes

Name Type Description

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

Directory String ThisattributespecifiesareferencetoaDirectory

Page 521: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 522: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

firstSequenceIndicatesthatthecustomactionwillonlyruninthefirstsequencethatrunsit.

immediateIndicatesthatthecustomactionwillrunduringnormalprocessingtimewithuserprivileges.Thisisthedefault.

oncePerProcessIndicatesthatthecustomactionwillonlyruninthefirstsequencethatrunsitinthesameprocess.

rollbackIndicatesthatacustomactionwillrunintherollbacksequencewhenafailureduringinstallation,usuallytoundochangesmadebyadeferredcustomaction.

secondSequenceIndicatesthatacustomactionshouldberunasecondtimeifitwaspreviouslyruninanearliersequence.

FileKey String ThisattributespecifiesareferencetoaFileelementwithmatchingIdattributethatexecutethecustomactioncodeinthefileafterthefileisinstalled.ThisattributeistypicallyusedwiththeExeCommandattributetospecifyatype18customactionthatrunsaninstalledexecutable,withtheDllEntryattributetospecifyaninstalledcustomactionDLLtouseforatype17customaction,orwiththeVBScriptCallorJScriptCallattributestospecifyatype21or22customaction.

HideTarget YesNoType EnsurestheinstallerdoesnotlogtheCustomActionDataforthedeferredcustomaction.

Page 523: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Id String Theidentifierofthecustomaction.

Impersonate YesNoType ThisattributespecifieswhethertheWindowsInstaller,whichexecutesasLocalSystem,shouldimpersonatetheusercontextoftheinstallinguserwhenexecutingthiscustomaction.Typicallythevalueshouldbe'yes',exceptwhenthecustomactionneedselevatedprivilegestoapplychangestothemachine.

JScriptCall String ThisattributespecifiesthenameoftheJScriptfunctiontoexecuteinascript.ThescriptmustbeprovidedinaBinaryelementidentifiedbytheBinaryKeyattributedescribedabove.Inotherwords,thisattributemustbespecifiedinconjunctionwiththeBinaryKeyattribute.

PatchUninstall YesNoType ThisattributespecifiesthattheWindowsInstaller,executethecustomactiononlywhenpatchisbeinguninstalled.ThesecustomactionsshouldalsobeconditionedusingtheMSIPATCHREMOVEpropertytoensureproperdownlevel(lessthanWindowsInstaller4.5)behavior.

Property String ThisattributespecifiesareferencetoaPropertyelementwithmatchingIdattributethatspecifiesthePropertytobeusedorupdatedonexecutionofthiscustomaction.ThisattributeisusedwiththeValueattributetocreateatype51customactionthatparsesthetextinValueandplacesitintothespecifiedProperty.attributeisalsousedwiththeExeCommandattributetocreateatype50customactionthatusesthevalueofthegivenpropertytospecifythepathtotheexecutable.Type51customactionsareoftenusefultopassvaluestoadeferredcustomaction.Seehttp://msdn.microsoft.com/library/aa370543.aspxformoreinformation.

Page 524: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Return Enumeration Setthisattributetosetthereturnbehaviorofthecustomaction.Thisattribute'svaluemustbeoneofthefollowing:asyncNoWait

Indicatesthatthecustomactionwillrunasyncronouslyandexecutionmaycontinueaftertheinstallerterminates.

asyncWaitIndicatesthatthecustomactionwillrunasynchronouslybuttheinstallerwillwaitforthereturncodeatsequenceend.

checkIndicatesthatthecustomactionwillrunsynchronouslyandthereturncodewillbecheckedforsuccess.Thisisthedefault.

ignoreIndicatesthatthecustomactionwillrunsynchronouslyandthereturncodewillnotbechecked.

Script Enumeration Createsatype37or38customaction.oftheelementshouldcontainthescripttobeembeddedinthepackage.Thisattribute'svaluemustbeoneofthefollowing:jscript

vbscript

SuppressModularization YesNoType Usetosuppressmodularizationofthiscustomactionnameinmergemodules.benecessaryfortable-drivencustomactionsbecausethetablenamewhichtheyinteractwithcannotbemodularized,sotherecanonlyoneinstanceofthetable.

TerminalServerAware YesNoType Thisattributespecifiescontrolswhetherthecustomactionwillimpersonatetheuserduringper-machineinstallsonTerminal

Page 525: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Value String Thisattributespecifiesastringvaluetouseinthecustomaction.ThisattributewiththePropertyattributetosetthepropertyaspartofatype51customactionorwiththeDirectoryattributetosetadirectorypathinthattableinatype35customaction.ThevaluecanbealiteralvalueorderivedfromaelementusingtheFormatted

VBScriptCall String ThisattributespecifiesthenameoftheVBScriptSubroutinetoexecuteinascript.ThescriptmustbeprovidedinaBinaryelementidentifiedbytheBinaryKeyattributedescribedabove.Inotherwords,thisattributemustbespecifiedinconjunctionwiththeBinaryKeyattribute.

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

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

SeeAlsoWixSchema,Custom,CustomActionRef

Version3.5.1623.0

Page 526: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CustomActionRefElement

DescriptionThiswillcausetheentirecontentsoftheFragmentcontainingthereferencedCustomActiontobeincludedintheinstallerdatabase.

WindowsInstallerreferencesNone

ParentsFragment,Module,PatchFamily,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifieroftheCustomActiontoreference.

Yes

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

SeeAlsoWixSchema,CustomAction

Version3.5.1623.0

Page 527: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CustomPropertyElement

DescriptionAcustompropertyforthePatchMetadatatable.

WindowsInstallerreferencesNone

ParentsPatchMetadata

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Company String Thenameofthecompany. Yes

Property String Thenameofthemetadataproperty.

Yes

Value String Valueofthemetadataproperty. Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 528: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CustomTableElement

DescriptionDefinesacustomtableforusefromacustomaction.

WindowsInstallerreferencesNone

ParentsFragment,Module,Product

InnerTextNone

ChildrenSequence(min:1,max:1)1. Column(min:0,max:unbounded):Columndefinitionforthe

customtable.2. Row(min:0,max:unbounded):Rowdefinitionforthecustom

table.

Attributes

Name Type Description Required

Id String Identifierforthecustomtable. Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 529: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DataElement

DescriptionUsedforaCustomTable.SpecifiesthedatafortheparentRowandspecifiedColumn.

WindowsInstallerreferencesNone

ParentsRow

InnerText(xs:string)Adatavalue

ChildrenNone

Attributes

Name Type Description Required

Column String Specifiesinwhichcolumntoinsertthisdata.

Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 530: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DeleteServicesElement

DescriptionStopsaserviceandremovesitsregistrationfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesDeleteServicesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 531: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DependencyElement

DescriptionDeclaresadependencyonanothermergemodule.

WindowsInstallerreferencesNone

ParentsModule

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

RequiredId String Identifierofthemergemodulerequiredbythemergemodule.

Yes

RequiredLanguage Integer NumericlanguageIDofthemergemoduleinRequiredID.

Yes

RequiredVersion String VersionofthemergemoduleinRequiredID.

SeeAlsoWixSchema

Version3.5.1623.0

Page 532: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DialogElement

DescriptionDefinesadialogboxintheDialogTable.

WindowsInstallerreferencesControlTable,ComboBoxTable,DialogTable,ListBoxTable,ListViewTable,RadioButtonTable

ParentsUI

InnerTextNone

ChildrenSequence(min:1,max:1)1. Control(min:0,max:unbounded):Controlelementsbelonging

tothisdialog.

Attributes

Name Type Description Required

Id String Uniqueidentifierforthedialog.

Yes

CustomPalette YesNoType Usedtospecifyifpicturesinthedialogboxarerenderedwithacustompalette.

ErrorDialog YesNoType Specifiesthisdialogasanerrordialog.

Height Integer Theheightofthedialogboxindialogunits.

Yes

Hidden YesNoType Usedtohidethedialog.

Page 533: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

KeepModeless YesNoType KeepmodelessdialogsalivewhenthisdialogiscreatedthroughDoAction.

LeftScroll YesNoType Usedtoalignthescrollbarontheleft.

Modeless YesNoType Usedtosetthedialogasmodeless.

NoMinimize YesNoType Usedtospecifyifthedialogcanbeminimized.

RightAligned YesNoType Aligntextontheright.

RightToLeft YesNoType Usedtospecifyifthetextinthedialogshouldbedisplayedinrighttoleftreadingorder.

SystemModal YesNoType Usedtosetthedialogassystemmodal.

Title String Thetitleofthedialogbox.

TrackDiskSpace YesNoType Havethedialogperiodicallycalltheinstallertocheckifavailablediskspacehaschanged.

Width Integer Thewidthofthedialogboxindialogunits.

Yes

X Integer Horizontalplacementofthedialogboxasapercentageofscreenwidth.Thedefaultvalueis50.

Y Integer Verticalplacementofthe

Page 534: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

dialogboxasapercentageofscreenheight.Thedefaultvalueis50.

SeeAlsoWixSchema

Version3.5.1623.0

Page 535: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DialogRefElement

DescriptionReferencetoaDialog.Thiswillcausetheentirereferencedsection'scontentstobeincludedintheinstallerdatabase.

WindowsInstallerreferencesNone

ParentsUI

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifieroftheDialogtoreference.

Yes

SeeAlsoWixSchema,Dialog

Version3.5.1623.0

Page 536: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DigitalCertificateElement

DescriptionAddsadigitalcertificate.

WindowsInstallerreferencesMsiDigitalCertificateTable

ParentsDigitalSignature,PackageCertificates,PatchCertificates

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Identifierforacertificatefile. Yes

SourceFile String Thepathtothecertificatefile. Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 537: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DigitalSignatureElement

DescriptionAddsadigitalsignature.

WindowsInstallerreferencesMsiDigitalSignatureTable

ParentsMedia

InnerTextNone

ChildrenChoiceofelements(min:1,max:1)

DigitalCertificate(min:1,max:1)

Attributes

Name Type Description Required

SourceFile String Thepathtosignature'soptionalhashfile.

SeeAlsoWixSchema

Version3.5.1623.0

Page 538: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DirectoryElement

DescriptionDirectorylayoutfortheproduct.Alsospecifiesthemappingsbetweensourceandtargetdirectories.

WindowsInstallerreferencesDirectoryTable

ParentsDirectory,DirectoryRef,Fragment,Module,Product

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Component(min:0,max:unbounded)Directory(min:0,max:unbounded)Merge(min:0,max:unbounded)SymbolPath(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

Attributes

Name Type Description

Id String Thisvalueistheuniqueidentifierofthedirectoryentry.

ComponentGuidGenerationSeed Guid TheComponentGuidGenerationSeedisaguidthatmustbeusedwhenaComponentwiththegenerateguiddirective("*")rootedinastandardWindows

Page 539: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Installerdirectory(forexample,ProgramFilesFolderorCommonFilesFolder,etc).isrecommendedthatthisattributebeavoidedandthatdevelopersinstalltheirComponentsunderstandarddirectorieswithuniquenamesinstead(forexample,"ProgramFilesFolder\CompanyNameProductNameVersion").ItisnotethatonceadirectoryisassignedaComponentGuidGenerationSeedthevaluemustnotchangeuntildirectorynamechanges.

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

FileSource String Usedtosetthefilesystemsourceforthisdirectory'schildelements.Formoreinformation,seesourcefiles.

LongName LongFileNameType Thisattributehasbeendeprecated;pleaseusetheNameattributeinstead.

LongSource LongFileNameType Thisattributehasbeendeprecated;pleaseusetheSourceNameattributeinstead.

Page 540: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Name LongFileNameType Thenameofthedirectory.

Donotspecifythisattribute(ortheLongNameattribute)ifthisdirectoryrepresentsdirectoryastheparent(seetheWindowsInstallerSDK'sDirectorytableinformationaboutthe"."operator).

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

ShortName ShortFileNameType Theshortnameofthedirectoryin8.3format.attributeshouldonlybesetifthereisaconflictbetween

Page 541: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

generatedshortdirectorynamesortheuserwantstomanuallyspecifytheshortdirectoryname.

ShortSourceName ShortFileNameType Theshortnameofthedirectoryonthesourcemediain8.3format.shouldonlybesetifthereisaconflictbetweengeneratedshortdirectorynamesuserwantstomanuallyspecifytheshortsourcedirectoryname.

SourceName LongFileNameType Thenameofthedirectoryonthesourcemedia.attributeisnotspecified,WindowsInstallerwilldefaulttotheNameattribute.

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

Page 542: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

withanotherdirectoryoryouwishtomanuallyspecifyshortdirectoryname,thentheShortSourceNameattributemaybespecified.

src String Thisattributehasbeendeprecated;pleaseusetheFileSourceattributeinstead.

HowTosandExamplesHowTo:Addafiletoyourinstaller

SeeAlsoWixSchema,DirectoryRef

Version3.5.1623.0

Page 543: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DirectoryRefElement

DescriptionCreateareferencetoaDirectoryelementinanotherFragment.

WindowsInstallerreferencesNone

ParentsFragment,Module,PatchFamily,Product

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Component(min:0,max:unbounded)Directory(min:0,max:unbounded)Merge(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

Attributes

Name Type Description Required

Id String TheidentifieroftheDirectoryelementtoreference.

Yes

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

Page 544: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

FileSource String UsedtosetthefilesystemsourceforthisDirectoryRef'schildelements.Formoreinformation,seeSpecifyingsourcefiles.

src String Thisattributehasbeendeprecated;pleaseusetheFileSourceattributeinstead.

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

HowTosandExamplesHowTo:Addafiletoyourinstaller

SeeAlsoWixSchema,Directory

Version3.5.1623.0

Page 545: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DirectorySearchElement

DescriptionSearchesfordirectoryandassignstovalueofparentProperty.

WindowsInstallerreferencesDrLocatorTable,SignatureTable

ParentsComplianceCheck,ComplianceDrive,ComponentSearch,DirectorySearch,DirectorySearchRef,IniFileSearch,Property,RegistrySearch

InnerTextNone

ChildrenChoiceofelements(min:0,max:1)

DirectorySearch(min:0,max:1)DirectorySearchRef(min:0,max:1)FileSearch(min:0,max:1)FileSearchRef(min:0,max:1)

Attributes

Name Type Description Required

Id String Uniqueidentifierforthedirectorysearch.

Yes

AssignToProperty YesNoType SetthevalueoftheouterPropertytotheresultofthissearch.Seeremarksformoreinformation.

Depth Integer Depthbelowthepaththattheinstaller

Page 546: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

searchesforthefileordirectoryspecifiedbythesearch.Seeremarksformoreinformation.

Path String Pathontheuser'ssystem.Eitherabsolute,orrelativetocontainingdirectories.

Remarks

UsetheAssignToPropertyattributetosearchforafilebutsettheouterpropertytothedirectorycontainingthefile.Whenthisattributeissetto'yes',youmayonlynestaFileSearchelementwithauniqueIdordefinenochildelement.

WhentheparentDirectorySearch/@Depthattributeisgreaterthan1,theFileSearch/@IdattributemustbeabsentorthesameastheparentDirectorySearch/@Idattributevalue,unlesstheparentDirectorySearch/@AssignToPropertyattributevalueis'yes'.

HowTosandExamplesHowTo:ChecktheversionnumberofafileduringinstallationHowTo:ReferenceanotherDirectorySearchelementHowTo:Gettheparentdirectoryofafilesearch

SeeAlsoWixSchema,ComponentSearch,IniFileSearch,RegistrySearch

Version3.5.1623.0

Page 547: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DirectorySearchRefElement

DescriptionReferencesanexistingDirectorySearchelement.

WindowsInstallerreferencesNone

ParentsComplianceDrive,ComponentSearch,DirectorySearch,DirectorySearchRef,IniFileSearch,Property,RegistrySearch

InnerTextNone

ChildrenChoiceofelements(min:0,max:1)

DirectorySearch(min:0,max:1)DirectorySearchRef(min:0,max:1)FileSearch(min:0,max:1)FileSearchRef(min:0,max:1)

Attributes

Name Type Description Required

Id String Idofthesearchbeingreferredto. Yes

Parent String ThisattributeisthesignatureoftheparentdirectoryofthefileordirectoryintheSignature_column.Ifthisfieldisnull,andthePathcolumndoesnotexpandtoafullpath,thenallthefixeddrivesoftheuser'ssystemaresearchedbyusingthePath.Thisfieldisakeyintooneofthefollowingtables:theRegLocator,theIniLocator,the

Page 548: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CompLocator,ortheDrLocatortables.

Path String Pathontheuser'ssystem.Eitherabsolute,orrelativetocontainingdirectories.

Remarks

AreferencetoanotherDirectorySearchelementmustreferencethesameId,thesameParentId,andthesamePath.IfanyoftheseattributevaluesaredifferentyoumustinsteaduseaDirectorySearchelement.

HowTosandExamplesHowTo:ReferenceanotherDirectorySearchelement

SeeAlsoWixSchema,ComponentSearch,IniFileSearch,RegistrySearch

Version3.5.1623.0

Page 549: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DisableRollbackElement

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

WindowsInstallerreferencesDisableRollbackAction

ParentsInstallExecuteSequence

InnerText(xs:string)Textnodespecifiestheconditionoftheaction.

ChildrenNone

Attributes

Name Type Description Required

After String Thenameofanactionthatthisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Page 550: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 551: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DuplicateFilesElement

DescriptionDuplicatesfilesinstalledbytheInstallFilesaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesDuplicateFilesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 552: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

EmbeddedChainerElement

DescriptionNone

WindowsInstallerreferencesMsiEmbeddedChainerTable

ParentsFragment,Module,Product

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

ChildrenNone

Attributes

Name Type Description Required

Id String Uniqueidentifierforembeddedchainer.

Yes

BinarySource String ReferencetotheBinaryelementthatcontainsthechainerexecuteable.MutuallyexclusivewiththeFileSourceandPropertySourceattributes.

CommandLine String Valuetoappendtothetransactionhandleandpassedtothechainer

Page 553: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

executable.

FileSource String ReferencetotheFileelementthatisthechainerexecuteable.MutuallyexclusivewiththeBinarySourceandPropertySourceattributes.

PropertySource String ReferencetoaPropertythatresolvestothefullpathtothechainerexecuteable.MutuallyexclusivewiththeBinarySourceandFileSourceattributes.

SeeAlsoWixSchema,Binary,File,Property,EmbeddedChainerRef

Version3.5.1623.0

Page 554: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

EmbeddedChainerRefElement

DescriptionReferencetoanEmbeddedChainerelement.ThiswillforcetheentirereferencedFragment'scontentstobeincludedintheinstallerdatabase.

WindowsInstallerreferencesNone

ParentsFragment,Module,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

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

SeeAlsoWixSchema,EmbeddedChainer

Version3.5.1623.0

Page 555: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

EmbeddedUIElement

DescriptionElementvalueisthecondition.UseCDATAifmessagecontainsdelimitercharacters.

WindowsInstallerreferencesMsiEmbeddedUITable

ParentsUI

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenSequence(min:1,max:1)1. EmbeddedUIResource(min:0,max:unbounded):Specifies

extrafilestobeextractedforusebytheembeddedUI,suchaslanguageresources.

Attributes

Name Type Description

Id String UniqueidentifierforembeddedUI.IfthisattributeisnotspecifiedtheNameattributeorthefilenameSourceFileattributewillbeused.

IgnoreActionData YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_ACTIONDATAmessages.

IgnoreActionStart YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_ACTIONSTARTmessages.

IgnoreCommonData YesNoType EmbeddedUIwillnotrecieveany

Page 556: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

INSTALLLOGMODE_COMMONDATAmessages.

IgnoreError YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_ERRORmessages.

IgnoreFatalExit YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_FATALEXITmessages.

IgnoreFilesInUse YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_FILESINUSEmessages.

IgnoreInfo YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_INFOmessages.

IgnoreInitialize YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_INITIALIZEmessages.

IgnoreInstallEnd YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_INSTALLENDmessages.

IgnoreInstallStart YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_INSTALLSTARTmessages.

IgnoreOutOfDiskSpace YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_OUTOFDISKSPACEmessages.

IgnoreProgress YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_PROGRESSmessages.

IgnoreResolveSource YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_RESOLVESOURCEmessages.

IgnoreRMFilesInUse YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_RMFILESINUSE

Page 557: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

messages.

IgnoreShowDialog YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_SHOWDIALOGmessages.

IgnoreTerminate YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_TERMINATEmessages.

IgnoreUser YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_USERmessages.

IgnoreWarning YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_WARNINGmessages.

Name LongFileNameType ThenamefortheembeddedUIDLLwhenitisextractedfromtheProductandexecuted.(WindowsInstallersupportthetypicalshortfilenameandlongfilenamecombinationforembeddedUIfilesasitdoesforotherkindsoffiles.)IfthisattributeisnotspecifiedthefilenameportionoftheSourceFileused.

SourceFile String PathtothebinaryfilethatistheembeddedUI.ThismustbeaDLLthatexportsthefollowingthreeentrypoints:InitializeEmbeddedUI,EmbeddedUIHandlerandShutdownEmbeddedUI.

SupportBasicUI YesNoType SetyestoallowtheWindowsInstallertodisplaytheembeddedUIduringbasicUIlevelinstallation.

SeeAlsoWixSchema

Version3.5.1623.0

Page 558: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

EmbeddedUIResourceElement

DescriptionDefinesaresourceforusebytheembeddedUI.

WindowsInstallerreferencesMsiEmbeddedUITable

ParentsEmbeddedUI

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String IdentifierfortheembeddedUIresource.

Yes

Name LongFileNameType ThenamefortheresourcewhenitisextractedfromtheProductforusebytheembeddedUIDLL.(WindowsInstallerdoesnotsupportthetypicalshortfilenameandlongfilenamecombinationforembeddedUIfilesasitdoesforotherkindsoffiles.)IfthisattributeisnotspecifiedtheId

Yes

Page 559: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

attributewillbeused.

SourceFile String PathtothebinaryfilethatistheembeddedUIresource.

Yes

SeeAlsoWixSchema,EmbeddedUI

Version3.5.1623.0

Page 560: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

EnsureTableElement

DescriptionUsethiselementtoensurethatatableappearsintheinstallerdatabase,evenifitsempty.

WindowsInstallerreferencesNone

ParentsFragment,Module,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Thenameofthetable. Yes

RemarksThiselementisparticularlyusefulfortwoproblemsthatmayoccurwhilemergingmergemodules:1. Thefirstlikelyproblemisthatinordertoproperlymergeyou

needtohavecertaintablespresentpriortomerging.Usingthiselementisonewaytoensurethosetablesarepresentpriortothemerging.

2. Theothercommonproblemisthatamergemodulehasincorrectvalidationinformationaboutsometables.Byensuringthesetablespriortomerging,youcanavoidthisproblembecausethecorrectvalidationinformationwillgointotheinstallerdatabasebeforethemergemodulehasachancetosetitincorrectly.

SeeAlso

Page 561: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixSchema

Version3.5.1623.0

Page 562: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

EnvironmentElement

DescriptionEnvironmentvariablesaddedorremovedfortheparentcomponent.

WindowsInstallerreferencesEnvironmentTable

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Uniqueidentifierforenvironmententry.

Yes

Action Enumeration Specfieswhethertheenvironmentalvariableshouldbecreated,setorremovedwhentheparentcomponentisinstalled.Thisattribute'svaluemustbeoneofthefollowing:create

Createstheenvironmentvariableifitdoesnotexist,thensetitduringinstallation.Thishasnoeffectonthevalueoftheenvironmentvariableifitalreadyexists.

Page 563: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

setCreatestheenvironmentvariableifitdoesnotexist,andthensetitduringinstallation.Iftheenvironmentvariableexists,setitduringtheinstallation.

removeRemovestheenvironmentvariableduringaninstallation.TheinstalleronlyremovesanenvironmentvariableduringaninstallationifthenameandvalueofthevariablematchtheentriesintheNameandValueattributes.Ifyouwanttoremoveanenvironmentvariable,regardlessofitsvalue,donotsettheValueattribute.

Name String Nameoftheenvironmentvariable.

Yes

Part Enumeration Thisattribute'svaluemustbeoneofthefollowing:all

Thisvalueistheentireenvironmentalvariable.Thisisthedefault.

firstThisvalueisprefixed.

last

Page 564: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Thisvalueisappended.

Permanent YesNoType Specifiesthattheenvironmentvariableshouldnotberemovedonuninstall.

Separator String Optionalattributetochangetheseparatorusedbetweenvalues.Bydefaultasemicolonisused.

System YesNoType Specifiesthattheenvironmentvariableshouldbeaddedtothesystemenvironmentspace.Thedefaultis'no'whichindicatestheenvironmentvariableisaddedtotheuserenvironmentspace.

Value String Thevaluetosetintotheenvironmentvariable.Ifthisattributeisnotset,theenvironmentvariableisremovedduringinstallationifitexistsonthemachine.

SeeAlsoWixSchema

Version3.5.1623.0

Page 565: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ErrorElement

DescriptionNone

WindowsInstallerreferencesErrorTable

ParentsUI

InnerText(xs:string)ElementvalueisMessage,useCDATAifmessagecontainsdelimitercharacters

ChildrenNone

Attributes

Name Type Description Required

Id Integer Numberoftheerrorforwhichamessageisbeingprovided.SeeMSISDKforerrordefinitions.

SeeAlsoWixSchema

Version3.5.1623.0

Page 566: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ExclusionElement

DescriptionDeclaresamergemodulewithwhichthismergemoduleisincompatible.

WindowsInstallerreferencesNone

ParentsModule

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

ExcludedId String Identifierofthemergemodulethatisincompatible.

Yes

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

ExcludedMinVersion String Minimumversionexcludedfromarange.Ifnotset,allversionsbeforemaxareexcluded.Ifneithermax

Page 567: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

normin,noexclusionbasedonversion.

ExcludeExceptLanguage Integer NumericlanguageIDofthemergemoduleinExcludedID.Allexceptthislanguagewillbeexcluded.OnlyoneofExcludeExceptLanguageandExcludeLanguagemaybespecified.

ExcludeLanguage Integer NumericlanguageIDofthemergemoduleinExcludedID.Thespecifiedlanguagewillbeexcluded.OnlyoneofExcludeExceptLanguageandExcludeLanguagemaybespecified.

SeeAlsoWixSchema

Version3.5.1623.0

Page 568: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ExecuteActionElement

DescriptionInitiatestheexecutionsequence.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesExecuteActionAction

ParentsAdminUISequence,InstallUISequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 569: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ExePackageElement

DescriptionDescribesasingleexepackagetoinstall.

WindowsInstallerreferencesNone

ParentsChain,PackageGroup

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.Theextension'sCompilerExtension.ParseElement()methodwillbecalledwiththepackageidentifierasthefirstvalueincontextValues.

Attributes

Name Type Description Required

After String Theidentifierofanotherpackagethatthisoneshouldbeinstalledafter.

Cache YesNoType Whethertocachethepackage.

CacheId String Theidentifiertousewhencachingthe

Page 570: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

package.

DownloadUrl String TheURLtousetodownloadthepackage.

Id String Identifierforthispackage,fororderingandcross-referencing.

InstallCommand String Thecommand-lineargumentstospecifytoindicateaninstall.

InstallCondition String Aconditiontoevaluatebeforeinstallingthepackage.Thepackagewillonlybeinstallediftheconditionevaluatestotrue.

Name String Thedestinationpathandfilenameforthischainpayload.Thedefaultisthesourcefilename.Usethisattributetorenamethechainentrypointorextractitintoasubfolder.

RepairCommand String Thecommand-lineargumentstospecifytoindicatearepair.

SourceFile String Locationofthepackage.

Yes

UninstallCommand String Thecommand-lineargumentstospecifytoindicatean

Page 571: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

uninstall.

Vital YesNoType Whetherthepackageshouldbeconsidered"vital".

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

SeeAlsoWixSchema

Version3.5.1623.0

Page 572: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ExtensionElement

DescriptionExtensionforaComponent

WindowsInstallerreferencesMIMETable,VerbTable,RegistryTable

ParentsComponent,ProgId

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

MIME(min:0,max:unbounded)Verb(min:0,max:unbounded)

Attributes

Name Type Description

Id String Thisissimplythefileextension,like"doc"or"xml".Donotincludetheprecedingperiod.

Advertise YesNoType Whetherthisextensionistobeadvertised.Thedefaultis"no".

ContentType String TheMIMEtypethatistobewritten.

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

IsRichSavedGame RegistersthisextensionfortherichsavedgamespropertyhandleronWindowsVistaandlater.(http://schemas.microsoft.com/wix/GamingExtension)

SeeAlsoWixSchema

Page 573: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Version3.5.1623.0

Page 574: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ExternalFileElement

DescriptionContainsinformationaboutspecificfilesthatarenotpartofaregulartargetimage.

WindowsInstallerreferencesNone

ParentsFamily

InnerTextNone

ChildrenSequence(min:1,max:1)1. ProtectRange(min:1,max:unbounded)2. SymbolPath(min:1,max:unbounded)3. Choiceofelements(min:0,max:unbounded)

IgnoreRange(min:0,max:unbounded)

Attributes

Name Type Description Required

File String ForeignkeyintotheFiletable. Yes

Order Int Specifiestheorderoftheexternalfilestousewhencreatingthepatch.

Yes

Source String Fullpathoftheexternalfile.

src String Thisattributehasbeendeprecated;pleaseusetheSourceattributeinstead.

SeeAlsoWixSchema

Page 575: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Version3.5.1623.0

Page 576: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

FailureElement

DescriptionFailureactionforaServiceConfigFailureActionselement.

WindowsInstallerreferencesNone

ParentsServiceConfigFailureActions

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Action String Specifiestheactiontotakewhentheservicefails.Validvaluesare"none","restartComputer","restartService","runCommand"oraFormattedpropertythatresolvesto"0"(for"none"),"1"(for"restartService"),"2"(for"restartComputer")or"3"(for"runCommand").

Yes

Delay String SpecifiesthetimeinmillisecondstowaitbeforeperformingthevaluefromtheActionattribute.

Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 577: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

FamilyElement

DescriptionGroupofoneormoreupgradedimagesofaproduct.

WindowsInstallerreferencesNone

ParentsPatchCreation

InnerTextNone

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

ExternalFile(min:0,max:unbounded)ProtectFile(min:0,max:unbounded)

Attributes

Name Type Description Required

DiskId Int EnteredintotheDiskIdfieldofthenewMediatablerecord.

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

MediaSrcProp String EnteredintotheSourcefieldofthenewMediatableentryoftheupgradedimage.

Name String Identifierforthefamily. Yes

Page 578: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SequenceStart Int Sequencenumberforthestartingfile.

VolumeLabel String EnteredintotheVolumeLabelfieldofthenewMediatablerecord.

SeeAlsoWixSchema

Version3.5.1623.0

Page 579: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

FeatureElement

DescriptionAfeaturefortheFeaturetable.Featuresarethesmallestinstallableunit.Seemsi.chmformoredetailedinformationonthemyriadinstallationoptionsforafeature.

WindowsInstallerreferencesFeatureTable

ParentsFeature,FeatureGroup,FeatureRef,Fragment,Product

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Component(min:0,max:unbounded)ComponentGroupRef(min:0,max:unbounded)ComponentRef(min:0,max:unbounded)Condition(min:0,max:unbounded)Feature(min:0,max:unbounded)FeatureGroupRef(min:0,max:unbounded)FeatureRef(min:0,max:unbounded)MergeRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

Attributes

Name Type Description

Id String Uniqueidentifierofthefeature.

Absent Enumeration Thisattributedeterminesifauserwillhavethe

Page 580: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

optiontosetafeaturetoabsentintheuserinterface.Thisattribute'svaluemustbeoneofthefollowing:allow

AllowstheuserinterfacetodisplayanoptiontochangethefeaturestatetoAbsent.

disallowPreventstheuserinterfacefromdisplayinganoptiontochangethefeaturestatesettingthemsidbFeatureAttributesUIDisallowAbsentattribute.Thiswillforcethefeatureinstallationstate,whetherornotthefeatureisvisibleintheUI.

AllowAdvertise Enumeration Thisattributedeterminesthepossibleadvertisestatesforthisfeature.Thisattribute'svaluemustbeoneofthefollowing:no

PreventsthisfeaturefrombeingadvertisedbysettingthemsidbFeatureAttributesDisallowAdvertiseattribute.

systemPreventsadvertisingforthisfeatureiftheoperatingsystemshelldoesnotsupportWindowsInstallerdescriptorsbysettingthemsidbFeatureAttributesNoUnsupportedAdvertiseattribute.

yesAllowsthefeaturetobeadvertised.

ConfigurableDirectory String SpecifytheIdofaDirectorythatcanbeconfiguredbytheuseratinstallationtime.beapublicpropertyandthereforecompletelyuppercase.

Description String Longerstringoftextdescribingthefeature.

Page 581: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

localizablestringisdisplayedbythetheSelectionDialog.

Display String Determinestheinitialdisplayofthisfeatureinthefeaturetree.Thisattribute'svalueshouldbeoneofthefollowing:collapse

Initiallyshowsthefeaturecollapsed.defaultvalue.

expandInitiallyshowsthefeatureexpanded.

hiddenPreventsthefeaturefromdisplayingintheuserinterface.

<anexplicitintegervalue>Foradvancedusersonly,itispossibletodirectlysettheintegervalueofthedisplayvaluethatwillappearintheFeaturerow.

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

Forcesthefeaturetofollowthesameinstallationstateasitsparentfeature.

localFavorsinstallingthisfeaturelocallybysettingthemsidbFeatureAttributesFavorLocalattribute.

sourceFavorsrunningthisfeaturefromsourcebysettingthemsidbFeatureAttributesFavorSource

Page 582: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

attribute.

Level Integer Setstheinstalllevelofthisfeature.disablethefeature.Processingthecanmodifythelevelvalue(thisissetviatheConditionchildelement).

Title String Shortstringoftextidentifyingthefeature.islistedasanitembytheSelectionTreecontroloftheSelectionDialog.

TypicalDefault Enumeration Thisattributedeterminesthedefaultadvertisestateofthefeature.Thisattribute'svaluemustbeoneofthefollowing:advertise

SetsthefeaturetobeadvertisedbysettingthemsidbFeatureAttributesFavorAdvertiseattribute.ThisvaluecannotbesetifthevalueoftheAllowAdvertiseattributeis'no'sincethatwouldasktheinstallertodisallowtheadvertisedstateforthisfeaturewhileatthesametimefavoringit.

installSetsthefeaturetothedefaultnon-advertisedinstallationoption.

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

HowTosandExamplesHowTo:Addafiletoyourinstaller

SeeAlsoWixSchema,FeatureRef

Version3.5.1623.0

Page 583: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

FeatureGroupElement

DescriptionGroupstogethermultiplecomponents,features,andmergestobeusedinotherlocations.

WindowsInstallerreferencesNone

ParentsFeatureRef,Fragment

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Component(min:0,max:unbounded)ComponentGroupRef(min:0,max:unbounded)ComponentRef(min:0,max:unbounded)Feature(min:0,max:unbounded)FeatureGroupRef(min:0,max:unbounded)FeatureRef(min:0,max:unbounded)MergeRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

Attributes

Name Type Description Required

Id String IdentifierfortheFeatureGroup. Yes

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

Page 584: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SeeAlsoWixSchema,FeatureGroupRef

Version3.5.1623.0

Page 585: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

FeatureGroupRefElement

DescriptionCreateareferencetoaFeatureGroupinanotherFragment.

WindowsInstallerreferencesNone

ParentsFeature,FeatureGroup,FeatureRef,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifieroftheFeatureGrouptoreference.

Yes

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

Primary YesNoType Setthisattributeto'yes'in

Page 586: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

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

SeeAlsoWixSchema,FeatureGroup

Version3.5.1623.0

Page 587: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

FeatureRefElement

DescriptionCreateareferencetoaFeatureelementinanotherFragment.

WindowsInstallerreferencesNone

ParentsFeature,FeatureGroup,FeatureRef,Fragment,PatchFamily,Product

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Component(min:0,max:unbounded)ComponentGroupRef(min:0,max:unbounded)ComponentRef(min:0,max:unbounded)Feature(min:0,max:unbounded)FeatureGroup(min:0,max:unbounded)FeatureGroupRef(min:0,max:unbounded)FeatureRef(min:0,max:unbounded)MergeRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

Attributes

Name Type Description Required

Id String TheidentifieroftheFeatureelementtoreference.

Yes

IgnoreParent YesNoType Normallyfeaturereferences

Page 588: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

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

SeeAlsoWixSchema,Feature

Version3.5.1623.0

Page 589: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

FileElement

DescriptionFilespecificationforFiletable,mustbechildnodeofComponent.

WindowsInstallerreferencesFileTable

ParentsComponent

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

AppId(min:0,max:unbounded)AssemblyName(min:0,max:unbounded)Class(min:0,max:unbounded)CopyFile(min:0,max:unbounded):Usedtocreateaduplicateofthisfileelsewhere.ODBCDriver(min:0,max:unbounded)ODBCTranslator(min:0,max:unbounded)Permission(min:0,max:unbounded):UsedtoconfiguretheACLsforthisfile.PermissionEx(min:0,max:unbounded):CanalsoconfiguretheACLsforthisfile.Shortcut(min:0,max:unbounded):Targetoftheshortcutwillbesettothisfile.SymbolPath(min:0,max:unbounded)TypeLib(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

EventManifest

Page 590: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

FirewallExceptionFormatsFileGameHelpCollectionHelpFileNativeImagePerfCounterPerfCounterManifestPermissionExSnapInTypesFile

Attributes

Name Type Description

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

Thefileisa.NETFrameworkassembly.

noThefileisnota.NETFrameworkorWin32assembly.Thisisthedefaultvalue.

Page 591: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

win32ThefileisaWin32assembly.

AssemblyApplication String Specifiesthefileidentifieroftheapplicationfile.Thisassemblywillbeisolatedtothesamedirectoryastheapplicationfile.Ifthisattributeisabsent,theassemblywillbeinstalledtotheGlobalAssemblyCache(GAC).ThisattributemayonlybespecifiediftheAssemblyattributeissetto'.net'or'win32'.

AssemblyManifest String Specifiesthefileidentifierofthemanifestfilethatdescribesthisassembly.Themanifestfileshouldbeinthesamecomponentastheassemblyitdescribes.ThisattributemayonlybespecifiediftheAssemblyattributeissetto'.net'or'win32'.

BindPath String Alistofpaths,separatedbysemicolons,thatrepresentthepathstobesearchedtofindtheimportedDLLs.Thelistisusuallyalistofproperties,witheach

Page 592: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

propertyenclosedinsidesquarebrackets.Thevaluemaybesettoanemptystring.IncludingthisattributewillcauseanentrytobegeneratedforthefileintheBindImagetable.

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

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

Page 593: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

alongwiththisattributesincecompanionfilesarenotinstalledbasedontheirownversion.

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

DefaultLanguage String Thisisthedefaultlanguageofthisfile.linkerwillreplacethisvaluefromthevalueinthefileifthesuppressfilesoptionisnotused.

DefaultSize Integer Thisisthedefaultsizeofthisfile.Thelinkerwillreplacethisvaluefromthevalueinthefileifthesuppressfilesoptionisnotused.

DefaultVersion String Thisisthedefaultversionofthisfile.Thelinkerwillreplacethisvaluefromthevalueinthefileifthesuppressfilesoptionisnotused.

DiskId Integer ThevalueofthisattributeshouldcorrespondtotheIdattributeofaMediaelementauthoredelsewhere.Bycreatingthisconnectionbetweenafileanditsmedia,you

Page 594: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

FontTitle String CausesanentrytobegeneratedforthefileintheFonttablewiththespecifiedFontTitle.Thisattributeisintendedtobeusedtoregisterthefileasanon-TrueTypefont.

Hidden YesNoType Settoyesinordertohavethefile'shiddenattributesetwhenitisinstalledonthetargetmachine.

Id String TheuniqueidentifierforthisFileelement.IfyouomitId,itdefaultstothefilenameportionoftheSourceattribute,if

Page 595: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

specified.MaybereferencedasaPropertybyspecifying[#value].

KeyPath YesNoType Settoyesinordertoforcethisfiletobethekeypathfortheparentcomponent.

LongName LongFileNameType Thisattributehasbeendeprecated;pleaseusetheNameattributeinstead.

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

Page 596: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ShortNameattributemaybespecified.Finally,ifthisattributeisomittedthenitsdefaultvalueisthefilenameportionoftheSourceattribute,ifoneisspecified,orthevalueoftheIdattribute,iftheSourceattributeisomittedordoesn'tcontainafilename.

PatchAllowIgnoreOnError YesNoType Settoindicatethatthepatchisnon-vital.

PatchGroup Integer Thisattributemustbesetforpatch-addedfiles.Eachpatchshouldbeassignedadifferentpatchgroupnumber.Patchgroupsnumbersmustbegreater0andshouldbeassignedconsecutively.Forexample,thefirstpatchshouldusePatchGroup='1',thesecondpatchwillhavePatchGroup='2',etc...

PatchIgnore YesNoType Preventstheupdatingofthefilethatisinfactchangedintheupgradedimagerelativetothetargetimages.

PatchWholeFile YesNoType Setiftheentirefileshouldbeinstalledratherthancreatinga

Page 597: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

binarypatch.

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

Thefileisa.NETFrameworkassemblythatisprocessor-neutral.

x86Thefileisa.NETFrameworkassemblyforthex86processor.

x64Thefileisa.NETFrameworkassemblyforthex64processor.

ia64Thefileisa.NETFrameworkassemblyfortheia64processor.

ReadOnly YesNoType Settoyesinordertohavethefile'sread-onlyattributesetwhenitisinstalledonthetargetmachine.

SelfRegCost Integer Thecostofregistering

Page 598: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

thefileinbytes.Thismustbeanon-negativenumber.IncludingthisattributewillcauseanentrytobegeneratedforthefileintheSelfRegtable.

ShortName ShortFileNameType Theshortfilenameofthefilein8.3format.Thisattributeshouldonlybesetifthereisaconflictbetweengeneratedshortfilenamesortheuserwantstomanuallyspecifytheshortfilename.

Source String SpecifiesthepathtotheFileinthebuildprocess.OverridesdefaultsourcepathsetbyparentdirectoriesandNameattribute.Thisattributemustbesetifnosourceinformationcanbegatheredfromparentdirectories.Formoreinformation,seeSpecifyingsourcefiles

src String Thisattributehasbeendeprecated;pleaseusetheSourceattributeinstead.

System YesNoType Settoyesinordertohavethefile'ssystemattributesetwhenitisinstalledonthetarget

Page 599: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

machine.

TrueType YesNoType CausesanentrytobegeneratedforthefileintheFonttablewithnoFontTitlespecified.ThisattributeisintendedtobeusedtoregisterthefileasaTrueTypefont.

Vital YesNoType Ifafileisvital,theninstallationcannotproceedunlessthefileissuccessfullyinstalled.Theuserwillhavenooptiontoignoreanerrorinstallingthisfile.Ifanerroroccurs,theycanmerelyretrytoinstallthefileoraborttheinstallation.Thedefaultis"yes,"unlessthe-sfdvitalswitch(candle.exe)orSuppressFileDefaultVitalproperty(.wixproj)isused.

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

HowTosandExamplesHowTo:Addafiletoyourinstaller

SeeAlsoWixSchema

Version3.5.1623.0

Page 600: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

FileCostElement

DescriptionInitiatesdynamiccostingofstandardinstallationactions.AnystandardorcustomactionsthataffectcostingshouldsequencedbeforetheCostInitializeaction.CalltheFileCostactionimmediatelyfollowingtheCostInitializeaction.ThencalltheCostFinalizeactionfollowingtheFileCostactiontomakeallfinalcostcalculationsavailabletotheinstallerthroughtheComponenttable.TheCostInitializeactionmustbeexecutedbeforetheFileCostaction.Theinstallerthendeterminesthedisk-spacecostofeveryfileintheFiletable,onaper-componentbasis,takingbothvolumeclusteringandthepresenceofexistingfilesthatmayneedtobeoverwrittenintoaccount.Allactionsthatconsumeorreleasediskspacearealsoconsidered.Ifanexistingfileisfound,afileversioncheckisperformedtodeterminewhetherthenewfileactuallyneedstobeinstalledornot.Iftheexistingfileisofanequalorgreaterversionnumber,theexistingfileisnotoverwrittenandnodisk-spacecostisincurred.Inallcases,theinstallerusestheresultsofversionnumbercheckingtosettheinstallationstateofeachfile.TheFileCostactioninitializescostcalculationwiththeinstaller.ActualdynamiccostingdoesnotoccuruntiltheCostFinalizeactionisexecuted.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesFileCostAction

ParentsAdminExecuteSequence,AdminUISequence,InstallExecuteSequence,InstallUISequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Page 601: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,CostInitialize,CostFinalize

Version3.5.1623.0

Page 602: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

FileSearchElement

DescriptionSearchesforfileandassignstofullpathvalueofparentProperty

WindowsInstallerreferencesDrLocatorTable,SignatureTable

ParentsComponentSearch,DirectorySearch,DirectorySearchRef,IniFileSearch,RegistrySearch

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String UniqueidentifierforthefilesearchandexternalkeyintotheSignaturetable.Ifthisattributevalueisnotsetthentheparentelement's@Idattributeisused.

Languages String Thelanguagessupportedbythefile.

LongName LongFileNameType Thisattributehasbeendeprecated;pleaseusetheNameattributeinstead.

Page 603: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

MaxDate DateTime Themaximummodificationdateandtimeofthefile.FormattedasYYYY-MM-DDTHH:mm:ss,whereYYYYistheyear,MMismonth,DDisday,'T'isliteral,HHishour,mmisminuteandssissecond.

MaxSize Int Themaximumsizeofthefile.

MaxVersion String Themaximumversionofthefile.

MinDate DateTime Theminimummodificationdateandtimeofthefile.FormattedasYYYY-MM-DDTHH:mm:ss,whereYYYYistheyear,MMismonth,DDisday,'T'isliteral,HHishour,mmisminuteandssissecond.

MinSize Int Theminimumsizeofthefile.

MinVersion String Theminimumversionofthefile.

Name LongFileNameType InpriorversionsoftheWiXtoolset,thisattributespecifiedtheshortfilename.Thisattribute'svaluemay

Page 604: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

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

RemarksWhentheparentDirectorySearch/@Depthattributeisgreaterthan1,theFileSearch/@Idattributemustbeabsentorthesameasthe

Page 605: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

HowTosandExamplesHowTo:Checktheversionnumberofafileduringinstallation

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

Version3.5.1623.0

Page 606: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

FileSearchRefElement

DescriptionReferencesanexistingFileSearchelement.

WindowsInstallerreferencesNone

ParentsComponentSearch,DirectorySearch,DirectorySearchRef,IniFileSearch,RegistrySearch

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String SpecifytheIdtotheFileSearchtoreference.

Yes

Remarks

AreferencetoanotherFileSearchelementmustreferencethesameIdandthesameParentId.IfanyoftheseattributevaluesaredifferentyoumustinsteaduseaFileSearchelement.

SeeAlsoWixSchema,FileSearch

Version3.5.1623.0

Page 607: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

FileTypeMaskElement

DescriptionFileTypedataforclassIdregistration.

WindowsInstallerreferencesNone

ParentsClass

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Mask HexType HexvaluethatisAND'dagainstthebytesinthefileatOffset.

Yes

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

Yes

Value HexType IftheresultoftheAND'ingofMaskwiththebytesinthefileisValue,thefileisamatchforthisFileType.

Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 608: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

FindRelatedProductsElement

DescriptionRunsthrougheachrecordoftheUpgradetableinsequenceandcomparestheupgradecode,productversion,andlanguageineachrowtoproductsinstalledonthesystem.WhenFindRelatedProductsdetectsacorrespondencebetweentheupgradeinformationandaninstalledproduct,itappendstheproductcodetothepropertyspecifiedintheActionPropertycolumnoftheUpgradeTable.TheFindRelatedProductsactiononlyrunsthefirsttimetheproductisinstalled.TheFindRelatedProductsactiondoesnotrunduringmaintenancemodeoruninstallation.FindRelatedProductsshouldbeauthoredintotheInstallUISequencetableandInstallExecuteSequencetables.TheinstallerpreventsFindRelatedProductsfromrunninginInstallExecuteSequenceiftheactionhasalreadyruninInstallUISequence.TheFindRelatedProductsactionmustcomebeforetheMigrateFeatureStatesactionandtheRemoveExistingProductsaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesFindRelatedProductsAction

ParentsInstallExecuteSequence,InstallUISequence

InnerText(xs:string)Textnodespecifiestheconditionoftheaction.

ChildrenNone

Attributes

Name Type Description Required

After String Thenameofanactionthat

Page 609: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

thisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,Upgrade

Version3.5.1623.0

Page 610: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ForceRebootElement

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

WindowsInstallerreferencesForceRebootAction

ParentsInstallExecuteSequence

InnerText(xs:string)Textnodespecifiestheconditionoftheaction.

ChildrenNone

Attributes

Name Type Description Required

After String Thenameofanactionthatthisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Page 611: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 612: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

FragmentElement

DescriptionTheFragmentelementisthebuildingblockofcreatinganinstallerdatabaseinWiX.Oncedefined,theFragmentbecomesanimmutable,atomicunitwhichcaneitherbecompletelyincludedorexcludedfromaproduct.ThecontentsofaFragmentelementcanbelinkedintoaproductbyutilizingoneofthemany*Refelements.WhenlinkinginaFragment,itwillbenecessarytolinkinallofitsindividualunits.Forinstance,ifagivenFragmentcontainstwoComponentelements,youmustlinkbothunderfeaturesusingComponentRefforeachlinkedComponent.Otherwise,youwillgetalinkerwarningandhaveafloatingComponentthatdoesnotappearunderanyFeature.

WindowsInstallerreferencesNone

ParentsWix

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

AppId(min:0,max:unbounded)Binary(min:0,max:unbounded)ComplianceCheck(min:0,max:unbounded)Component(min:0,max:unbounded)ComponentGroup(min:0,max:unbounded)Condition(min:0,max:unbounded)Container(min:0,max:unbounded)CustomAction(min:0,max:unbounded)CustomActionRef(min:0,max:unbounded)

Page 613: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CustomTable(min:0,max:unbounded)Directory(min:0,max:unbounded)DirectoryRef(min:0,max:unbounded)EmbeddedChainer(min:0,max:unbounded)EmbeddedChainerRef(min:0,max:unbounded)EnsureTable(min:0,max:unbounded)Feature(min:0,max:unbounded)FeatureGroup(min:0,max:unbounded)FeatureRef(min:0,max:unbounded)Icon(min:0,max:unbounded)IgnoreModularization(min:0,max:unbounded)LayoutDirectory(min:0,max:unbounded)LayoutDirectoryRef(min:0,max:unbounded)Media(min:0,max:unbounded)PackageCertificates(min:0,max:unbounded)PackageGroup(min:0,max:unbounded)PatchCertificates(min:0,max:unbounded)PatchFamily(min:0,max:unbounded)PayloadGroup(min:0,max:unbounded)Property(min:0,max:unbounded)PropertyRef(min:0,max:unbounded)SetDirectory(min:0,max:unbounded)SetProperty(min:0,max:unbounded)SFPCatalog(min:0,max:unbounded)UI(min:0,max:unbounded)UIRef(min:0,max:unbounded)Upgrade(min:0,max:unbounded)WixVariable(min:0,max:unbounded)Sequence(min:1,max:1)1. InstallExecuteSequence(min:0,max:1)2. InstallUISequence(min:0,max:1)3. AdminExecuteSequence(min:0,max:1)4. AdminUISequence(min:0,max:1)

Page 614: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

5. AdvertiseExecuteSequence(min:0,max:1)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

CloseApplicationComPlusApplicationComPlusApplicationRoleComPlusPartitionComPlusPartitionRoleComponentSearchDirectorySearchFileSearchGroupHelpCollectionRefHelpFilterLayoutDirectoryLayoutDirectoryRefMutationPackageGroupPayloadGroupProductSearchRegistrySearchSqlDatabaseUnitTestUnitTestRefUserUXWebApplicationWebAppPoolWebDirPropertiesWebLogWebSite

Attributes

Page 615: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Name Type Description Required

Id String OptionalidentifierforaFragment.Shouldonlybesetbyadvanceduserstotagsections.

SeeAlsoWixSchema

Version3.5.1623.0

Page 616: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

IconElement

DescriptionIconusedforShortcut,ProgId,orClasselements(butnotUIcontrols)

WindowsInstallerreferencesIconTable

ParentsFragment,Module,Product,Shortcut

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheIdcannotbylongerthan55characters.InordertopreventerrorsincaseswheretheIdismodularized,itshouldnotbelongerthan18characters.

Yes

SourceFile String Pathtotheiconfile.

src String Thisattributehasbeendeprecated;pleaseusetheSourceFileattributeinstead.

HowTosandExamplesHowTo:Setyourinstaller'siconinAdd/RemoveProgramsHowTo:CreateashortcutontheStartMenu

SeeAlso

Page 617: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixSchema

Version3.5.1623.0

Page 618: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

IconRefElement

DescriptionUsedonlyforPatchFamiliestoincludeonlyaicontableentryinapatch.

WindowsInstallerreferencesNone

ParentsPatchFamily

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifieroftheIconelementtoreference.

Yes

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

SeeAlsoWixSchema

Version3.5.1623.0

Page 619: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

IgnoreModularizationElement

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

WindowsInstallerreferencesNone

ParentsFragment,Module

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Name String Thenameoftheitemtoignoremodularizationfor.

Yes

Type Enumeration Thetypeoftheitemtoignoremodularizationfor.Thisattribute'svaluemustbeoneofthefollowing:Action

Property

Directory

SeeAlsoWixSchema

Page 620: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Version3.5.1623.0

Page 621: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

IgnoreRangeElement

DescriptionSpecifiespartofafilethatistobeignoredduringpatching.

WindowsInstallerreferencesNone

ParentsExternalFile,TargetFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Length Int Lengthoftherange. Yes

Offset Int Offsetofthestartoftherange. Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 622: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

IgnoreTableElement

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

WindowsInstallerreferencesNone

ParentsModule

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Thenameofthetableinthemergemodulethatisnottobemergedintothe.msifile.

Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 623: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

IncludeElement

DescriptionThisisthetop-levelcontainerelementforeverywxifile.

WindowsInstallerreferencesNone

ParentsNone

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

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

AttributesNone

SeeAlsoWixSchema

Version3.5.1623.0

Page 624: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

IniFileElement

DescriptionAddsorremoves.inifileentries.

WindowsInstallerreferencesIniFileTable,RemoveIniFileTable

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Identifierforinifile. Yes

Action Enumeration Thetypeofmodificationtobemade.Thisattribute'svaluemustbeoneofthefollowing:addLine

Createsorupdatesan.inientry.

addTagCreatesanewentryorappendsanewcomma-separatedvaluetoanexisting

Yes

Page 625: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

entry.

createLineCreatesan.inientryonlyiftheentrydoesnoalreadyexist.

removeLineRemovesan.inientry.

removeTagRemovesatagfroman.inientry.

Directory String Nameofaproperty,thevalueofwhichisthefullpathofthefoldercontainingthe.inifile.CanbenameofadirectoryintheDirectorytable,apropertysetbytheAppSearchtable,oranyotherpropertyrepresentingafullpath.

Key String Thelocalizable.inifilekeywithinthesection.

Yes

LongName LongFileNameType Thisattributehasbeendeprecated;pleaseusetheNameattributeinstead.

Name LongFileNameType InpriorversionsoftheWiXtoolset,thisattributespecifiedthe

Yes

Page 626: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Section String Thelocalizable.inifilesection.

Yes

ShortName ShortFileNameType Theshortnameofthein8.3format.Thisattributeshouldonlybesetifthereisaconflictbetweengeneratedshortnamesortheuserwantstomanuallyspecifytheshortname.

Page 627: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

SeeAlsoWixSchema

Version3.5.1623.0

Page 628: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

IniFileSearchElement

DescriptionSearchesforfile,directoryorregistrykeyandassignstovalueofparentProperty

WindowsInstallerreferencesIniLocatorTable,SignatureTable

ParentsComplianceCheck,Property

InnerTextNone

ChildrenChoiceofelements(min:0,max:1)

DirectorySearch(min:0,max:1)DirectorySearchRef(min:0,max:1)FileSearch(min:0,max:1)FileSearchRef(min:0,max:1)

Attributes

Name Type Description Required

Id String ExternalkeyintotheSignaturetable.

Yes

Field Integer Thefieldinthe.iniline.IffieldisNullor0,theentirelineisread.

Key String Thekeyvaluewithinthesection.

Yes

LongName LongFileNameType Thisattributehasbeendeprecated;

Page 629: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

pleaseusetheNameattributeinstead.

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

Yes

Section String Thelocalizable.inifilesection.

Yes

ShortName ShortFileNameType Theshortnameofthefilein8.3format.Thisattributeshouldonlybesetiftheuserwantstomanually

Page 630: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

specifytheshortname.

Type Enumeration MustbefileiflastchildisFileSearchelementandmustbedirectoryiflastchildisDirectorySearchelement.Thisattribute'svaluemustbeoneofthefollowing:directory

Adirectorylocation.

fileAfilelocation.Thisisthedefaultvalue.

rawAraw.inivalue.

SeeAlsoWixSchema,ComponentSearch,RegistrySearch

Version3.5.1623.0

Page 631: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstallAdminPackageElement

DescriptionCopiestheproductdatabasetotheadministrativeinstallationpoint.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesInstallAdminPackageAction

ParentsAdminExecuteSequence,AdminUISequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 632: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstallExecuteElement

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

WindowsInstallerreferencesInstallExecuteAction

ParentsInstallExecuteSequence

InnerText(xs:string)Textnodespecifiestheconditionoftheaction.

ChildrenNone

Attributes

Name Type Description Required

After String Thenameofanactionthatthisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactionina

Page 633: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

sequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 634: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstallExecuteAgainElement

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

WindowsInstallerreferencesInstallExecuteAgainAction

ParentsInstallExecuteSequence

InnerText(xs:string)Textnodespecifiestheconditionoftheaction.

ChildrenNone

Attributes

Name Type Description Required

After String Thenameofanactionthatthisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethe

Page 635: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 636: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstallExecuteSequenceElement

DescriptionNone

WindowsInstallerreferencesInstallExecuteSequenceTable

ParentsFragment,Module,Product

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

AllocateRegistrySpace(min:0,max:unbounded):Ensurestheneededamountofspaceexistsintheregistry.AppSearch(min:0,max:unbounded):Usesfilesignaturestosearchforexistingversionsofproducts.BindImage(min:0,max:unbounded):BindseachexecutableorDLLthatmustbeboundtotheDLLsimportedbyit.CCPSearch(min:0,max:unbounded):Usesfilesignaturestovalidatethatqualifyingproductsareinstalledonasystembeforeanupgradeinstallationisperformed.CostFinalize(min:0,max:unbounded):EndstheinternalinstallationcostingprocessbegunbytheCostInitializeaction.CostInitialize(min:0,max:unbounded):Initiatestheinternalinstallationcostingprocess.CreateFolders(min:0,max:unbounded):Createsemptyfoldersforcomponentsthataresettobeinstalled.CreateShortcuts(min:0,max:unbounded):Managesthecreationofshortcuts.Custom(min:0,max:unbounded):Usetosequenceacustomaction.

Page 637: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DeleteServices(min:0,max:unbounded):Stopsaserviceandremovesitsregistrationfromthesystem.DisableRollback(min:0,max:unbounded):Disablesrollbackfortheremainderoftheinstallation.DuplicateFiles(min:0,max:unbounded):DuplicatesfilesinstalledbytheInstallFilesaction.FileCost(min:0,max:unbounded):Initiatesdynamiccostingofstandardinstallationactions.FindRelatedProducts(min:0,max:unbounded):RunsthrougheachrecordoftheUpgradetableinsequenceandcomparestheupgradecode,productversion,andlanguageineachrowtoproductsinstalledonthesystem.ForceReboot(min:0,max:unbounded):Promptstheuserforarestartofthesystemduringtheinstallation.Notfixedsequence.InstallExecute(min:0,max:unbounded):RunsascriptcontainingalloperationsspooledsinceeitherthestartoftheinstallationorthelastInstallExecuteaction,orInstallExecuteAgainaction.InstallExecuteAgain(min:0,max:unbounded):RunsascriptcontainingalloperationsspooledsinceeitherthestartoftheinstallationorthelastInstallExecuteaction,orInstallExecuteAgainaction.InstallFiles(min:0,max:unbounded):CopiesfilesspecifiedintheFiletablefromthesourcedirectorytothedestinationdirectory.InstallFinalize(min:0,max:unbounded):Markstheendofasequenceofactionsthatchangethesystem.InstallInitialize(min:0,max:unbounded):Marksthebeginningofasequenceofactionsthatchangethesystem.InstallODBC(min:0,max:unbounded):Installsthedrivers,translators,anddatasourcesintheODBCDrivertable,ODBCTranslatortable,andODBCDataSourcetable.InstallServices(min:0,max:unbounded):Registersaserviceforthesystem.InstallValidate(min:0,max:unbounded):Verifiesthatallcostedvolumeshaveenoughspacefortheinstallation.

Page 638: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

IsolateComponents(min:0,max:unbounded):Installsacopyofacomponent(commonlyasharedDLL)intoaprivatelocationforusebyaspecificapplication(typicallyan.exe).LaunchConditions(min:0,max:unbounded):QueriestheLaunchConditiontableandevaluateseachconditionalstatementrecordedthere.MigrateFeatureStates(min:0,max:unbounded):Usedforupgradingorinstallingoveranexistingapplication.MoveFiles(min:0,max:unbounded):Locatesexistingfilesonthesystemandmovesorcopiesthosefilestoanewlocation.MsiPublishAssemblies(min:0,max:unbounded):ManagestheadvertisementofCLRandWin32assemblies.MsiUnpublishAssemblies(min:0,max:unbounded):ManagestheunadvertisementofCLRandWin32assembliesthatarebeingremoved.PatchFiles(min:0,max:unbounded):QueriesthePatchtabletodeterminewhichpatchesaretobeapplied.ProcessComponents(min:0,max:unbounded):Registersandunregisterscomponents,theirkeypaths,andthecomponentclients.PublishComponents(min:0,max:unbounded):ManagestheadvertisementofthecomponentsfromthePublishComponenttable.PublishFeatures(min:0,max:unbounded):Writeseachfeature'sstateintothesystemregistry.PublishProduct(min:0,max:unbounded):Managestheadvertisementoftheproductinformationwiththesystem.RegisterClassInfo(min:0,max:unbounded):ManagestheregistrationofCOMclassinformationwiththesystem.RegisterComPlus(min:0,max:unbounded):RegistersCOM+applications.RegisterExtensionInfo(min:0,max:unbounded):Managestheregistrationofextensionrelatedinformationwiththesystem.RegisterFonts(min:0,max:unbounded):Registersinstalledfontswiththesystem.RegisterMIMEInfo(min:0,max:unbounded):RegistersMIME-

Page 639: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

relatedregistryinformationwiththesystem.RegisterProduct(min:0,max:unbounded):Registerstheproductinformationwiththeinstaller.RegisterProgIdInfo(min:0,max:unbounded):ManagestheregistrationofOLEProgIdinformationwiththesystem.RegisterTypeLibraries(min:0,max:unbounded):Registerstypelibrarieswiththesystem.RegisterUser(min:0,max:unbounded):Registerstheuserinformationwiththeinstallertoidentifytheuserofaproduct.RemoveDuplicateFiles(min:0,max:unbounded):DeletesfilesinstalledbytheDuplicateFilesaction.RemoveEnvironmentStrings(min:0,max:unbounded):Modifiesthevaluesofenvironmentvariables.RemoveExistingProducts(min:0,max:unbounded):GoesthroughtheproductcodeslistedintheActionPropertycolumnoftheUpgradetableandremovestheproductsinsequence.RemoveFiles(min:0,max:unbounded):RemovesfilespreviouslyinstalledbytheInstallFilesaction.RemoveFolders(min:0,max:unbounded):Removesanyfolderslinkedtocomponentssettoberemovedorrunfromsource.RemoveIniValues(min:0,max:unbounded):Removes.inifileinformationspecifiedforremovalintheRemoveIniFiletableifthecomponentissettobeinstalledlocallyorrunfromsource.RemoveODBC(min:0,max:unbounded):Removesthedatasources,translators,anddriverslistedforremovalduringtheinstallation.RemoveRegistryValues(min:0,max:unbounded):Removesaregistryvaluethathasbeenauthoredintotheregistrytableiftheassociatedcomponentwasinstalledlocallyorasrunfromsource,andisnowsettobeuninstalled.RemoveShortcuts(min:0,max:unbounded):Managestheremovalofanadvertisedshortcutwhosefeatureisselectedforuninstallationoranonadvertisedshortcutwhosecomponentisselectedforuninstallation.ResolveSource(min:0,max:unbounded):Determinesthe

Page 640: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

locationofthesourceandsetstheSourceDirpropertyifthesourcehasnotbeenresolvedyet.Notfixedsequence.RMCCPSearch(min:0,max:unbounded):Usesfilesignaturestovalidatethatqualifyingproductsareinstalledonasystembeforeanupgradeinstallationisperformed.ScheduleReboot(min:0,max:unbounded):Promptstheusertorestartthesystemattheendofinstallation.Notfixedsequence.SelfRegModules(min:0,max:unbounded):ProcessesallmoduleslistedintheSelfRegtableandregistersallinstalledmoduleswiththesystem.SelfUnregModules(min:0,max:unbounded):UnregistersallmoduleslistedintheSelfRegtablethatarescheduledtobeuninstalled.SetODBCFolders(min:0,max:unbounded):ChecksforexistingODBCdriversandsetsthetargetdirectoryforeachnewdrivertothelocationofanexistingdriver.StartServices(min:0,max:unbounded):Startssystemservices.StopServices(min:0,max:unbounded):Stopssystemservices.UnpublishComponents(min:0,max:unbounded):ManagestheunadvertisementofcomponentslistedinthePublishComponenttable.UnpublishFeatures(min:0,max:unbounded):Removesselection-stateandfeature-componentmappinginformationfromtheregistry.UnregisterClassInfo(min:0,max:unbounded):ManagestheremovalofCOMclassinformationfromthesystemregistry.UnregisterComPlus(min:0,max:unbounded):RemovesCOM+applicationsfromtheregistry.UnregisterExtensionInfo(min:0,max:unbounded):Managestheremovalofextension-relatedinformationfromthesystemregistry.UnregisterFonts(min:0,max:unbounded):Removesregistrationinformationaboutinstalledfontsfromthesystem.UnregisterMIMEInfo(min:0,max:unbounded):UnregistersMIME-relatedregistryinformationfromthesystem.UnregisterProgIdInfo(min:0,max:unbounded):Managesthe

Page 641: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

unregistrationofOLEProgIdinformationwiththesystem.UnregisterTypeLibraries(min:0,max:unbounded):Unregisterstypelibrariesfromthesystem.ValidateProductID(min:0,max:unbounded):SetstheProductIDpropertytothefullproductidentifier.WriteEnvironmentStrings(min:0,max:unbounded):Modifiesthevaluesofenvironmentvariables.WriteIniValues(min:0,max:unbounded):Writesthe.inifileinformationthattheapplicationneedswrittentoits.inifiles.WriteRegistryValues(min:0,max:unbounded):Setsupanapplication'sregistryinformation.

AttributesNone

SeeAlsoWixSchema

Version3.5.1623.0

Page 642: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstallFilesElement

DescriptionCopiesfilesspecifiedintheFiletablefromthesourcedirectorytothedestinationdirectory.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesInstallFilesAction

ParentsAdminExecuteSequence,AdminUISequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 643: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstallFinalizeElement

DescriptionMarkstheendofasequenceofactionsthatchangethesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesInstallFinalizeAction

ParentsAdminExecuteSequence,AdminUISequence,AdvertiseExecuteSequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,InstallInitialize

Version3.5.1623.0

Page 644: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstallInitializeElement

DescriptionMarksthebeginningofasequenceofactionsthatchangethesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesInstallInitializeAction

ParentsAdminExecuteSequence,AdminUISequence,AdvertiseExecuteSequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,InstallFinalize

Version3.5.1623.0

Page 645: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstallODBCElement

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

WindowsInstallerreferencesInstallODBCAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 646: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstallServicesElement

DescriptionRegistersaserviceforthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesInstallServicesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 647: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstallUISequenceElement

DescriptionNone

WindowsInstallerreferencesInstallUISequenceTable

ParentsFragment,Module,Product,UI

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

AppSearch(min:0,max:unbounded):Usesfilesignaturestosearchforexistingversionsofproducts.CCPSearch(min:0,max:unbounded):Usesfilesignaturestovalidatethatqualifyingproductsareinstalledonasystembeforeanupgradeinstallationisperformed.CostFinalize(min:0,max:unbounded):EndstheinternalinstallationcostingprocessbegunbytheCostInitializeaction.CostInitialize(min:0,max:unbounded):Initiatestheinternalinstallationcostingprocess.Custom(min:0,max:unbounded):Usetosequenceacustomaction.ExecuteAction(min:0,max:unbounded):Initiatestheexecutionsequence.FileCost(min:0,max:unbounded):Initiatesdynamiccostingofstandardinstallationactions.FindRelatedProducts(min:0,max:unbounded):RunsthrougheachrecordoftheUpgradetableinsequenceandcomparestheupgradecode,productversion,andlanguageineachrowtoproductsinstalledonthesystem.

Page 648: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

IsolateComponents(min:0,max:unbounded):Installsacopyofacomponent(commonlyasharedDLL)intoaprivatelocationforusebyaspecificapplication(typicallyan.exe).LaunchConditions(min:0,max:unbounded):QueriestheLaunchConditiontableandevaluateseachconditionalstatementrecordedthere.MigrateFeatureStates(min:0,max:unbounded):Usedforupgradingorinstallingoveranexistingapplication.ResolveSource(min:0,max:unbounded):DeterminesthelocationofthesourceandsetstheSourceDirpropertyifthesourcehasnotbeenresolvedyet.RMCCPSearch(min:0,max:unbounded):Usesfilesignaturestovalidatethatqualifyingproductsareinstalledonasystembeforeanupgradeinstallationisperformed.ScheduleReboot(min:0,max:unbounded):Promptstheusertorestartthesystemattheendofinstallation.Notfixedsequence.Show(min:0,max:unbounded):DisplaysaDialog.ValidateProductID(min:0,max:unbounded):SetstheProductIDpropertytothefullproductidentifier.

AttributesNone

SeeAlsoWixSchema

Version3.5.1623.0

Page 649: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstallValidateElement

DescriptionVerifiesthatallcostedvolumeshaveenoughspacefortheinstallation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesInstallValidateAction

ParentsAdminExecuteSequence,AdminUISequence,AdvertiseExecuteSequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 650: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstanceElement

DescriptionDefinesaninstancetransformforyourproduct.

WindowsInstallerreferencesNone

ParentsInstanceTransforms

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Theidentityoftheinstancetransform.Thisvaluewilldefinethenamebywhichtheinstanceshouldbereferredtoonthecommandline.Inaddition,thevalueofthethisattributewilldeterminewhatthevalueofthepropertyspecifiedinPropertyattributeonInstanceTransformswillchangetoforeachinstance.

Yes

ProductCode String TheProductCodeforthisinstance.

Yes

ProductName String TheProductNameforthisinstance.

Page 651: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SeeAlsoWixSchema

Version3.5.1623.0

Page 652: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstanceTransformsElement

DescriptionUsethiselementtocontaindefinitionsforinstancetransforms.

WindowsInstallerreferencesNone

ParentsProduct

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Instance(min:0,max:unbounded)

Attributes

Name Type Description Required

Property String TheIdofthePropertywho'svalueshouldchangeforeachinstance.

Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 653: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InterfaceElement

DescriptionCOMInterfaceregistrationforparentTypeLib.

WindowsInstallerreferencesRegistryTable

ParentsClass,Component,TypeLib

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id Guid GUIDidentifierforCOMInterface.

Yes

BaseInterface Guid Identifiestheinterfacefromwhichthecurrentinterfaceisderived.

Name String NameforCOMInterface.

Yes

NumMethods Integer NumberofmethodsimplementedonCOMInterface.

ProxyStubClassId Guid GUIDCLSIDforproxystubtoCOMInterface.

Page 654: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ProxyStubClassId32 Guid GUIDCLSIDfor32-bitproxystubtoCOMInterface.

Versioned YesNoType DetermineswhetheraTypelibversionentryshouldbecreatedwiththeotherCOMInterfaceregistrykeys.Defaultis'yes'.

SeeAlsoWixSchema

Version3.5.1623.0

Page 655: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

IsolateComponentElement

DescriptionSharedComponenttobeprivatelyreplicatedinfolderofparentComponent

WindowsInstallerreferencesIsolateComponentTable

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Shared String SharedComponentforthisapplicationComponent.

Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 656: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

IsolateComponentsElement

DescriptionInstallsacopyofacomponent(commonlyasharedDLL)intoaprivatelocationforusebyaspecificapplication(typicallyan.exe).Thisisolatestheapplicationfromothercopiesofthecomponentthatmaybeinstalledtoasharedlocationonthecomputer.TheactionreferstoeachrecordoftheIsolatedComponenttableandassociatesthefilesofthecomponentlistedintheComponent_SharedfieldwiththecomponentlistedintheComponent_Applicationfield.TheinstallerinstallsthefilesofComponent_SharedintothesamedirectoryasComponent_Application.Theinstallergeneratesafileinthisdirectory,zerobytesinlength,havingtheshortfilenamenameofthekeyfileforComponent_Application(typicallythisisthesamefilenameasthe.exe)appendedwith.local.TheIsolatedComponentactiondoesnotaffecttheinstallationofComponent_Application.UninstallingComponent_ApplicationalsoremovestheComponent_Sharedfilesandthe.localfilefromthedirectory.TheIsolateComponentsactioncanbeusedonlyintheInstallUISequencetableandtheInstallExecuteSequencetable.ThisactionmustcomeaftertheCostInitializeactionandbeforetheCostFinalizeaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesIsolateComponentsAction

ParentsInstallExecuteSequence,InstallUISequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Page 657: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,IsolateComponent

Version3.5.1623.0

Page 658: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LaunchConditionsElement

DescriptionQueriestheLaunchConditiontableandevaluateseachconditionalstatementrecordedthere.Ifanyoftheseconditionalstatementsfail,anerrormessageisdisplayedtotheuserandtheinstallationisterminated.TheLaunchConditionsactionisoptional.Thisactionisnormallythefirstinthesequence,buttheAppSearchActionmaybesequencedbeforetheLaunchConditionsaction.Iftherearelaunchconditionsthatdonotapplytoallinstallationmodes,theappropriateinstallationmodepropertyshouldbeusedinaconditionalexpressionintheappropriatesequencetable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesLaunchConditionsAction

ParentsAdminExecuteSequence,AdminUISequence,InstallExecuteSequence,InstallUISequence

InnerText(xs:string)Textnodespecifiestheconditionoftheaction.

ChildrenNone

Attributes

Name Type Description Required

After String Thenameofanactionthatthisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Overridable YesNoType If"yes",thesequencingof

Page 659: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

thisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,Condition

Version3.5.1623.0

Page 660: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LayoutDirectoryElement

DescriptionRepresentationoflayoutdirectory.

WindowsInstallerreferencesNone

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

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

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

Attributes

Name Type Description Required

Id String IdentifierforLayoutDirectory.OnlyrequiredifthisissharedandisreferencedbyLayoutDirectoryRef.

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

Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 661: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LayoutDirectoryRefElement

DescriptionCreateareferencetoanexistingLayoutDirectoryelement.

WindowsInstallerreferencesNone

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

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

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

Attributes

Name Type Description Required

Id String TheidentifierofLayoutDirectoryelementtoreference.

Yes

SeeAlsoWixSchema,LayoutDirectory

Version3.5.1623.0

Page 662: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LayoutFileElement

DescriptionDescribesthepayloadtoabootstrapper.

WindowsInstallerreferencesNone

ParentsLayoutDirectory,LayoutDirectoryRef

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Name String Thedestinationpathandfilenameforthisfile.Thedefaultisthesourcefilename.

SourceFile String Locationofthesourcefile. Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 663: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ListBoxElement

DescriptionSetofitemsforaparticularListBoxcontroltiedtoaninstallProperty

WindowsInstallerreferencesControlTable,DialogTable,ListViewTable

ParentsControl,UI

InnerTextNone

ChildrenSequence(min:1,max:1)1. ListItem(min:0,max:unbounded):entryforListBoxtable

Attributes

Name Type Description Required

Property String Propertytiedtothisgroup Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 664: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ListItemElement

DescriptionThevalue(andoptionaltext)associatedwithaniteminaComboBox,ListBox,orListView.

WindowsInstallerreferencesComboBoxTable,ListBoxTable,ListViewTable

ParentsComboBox,ListBox,ListView

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Icon String TheidentifieroftheBinary(notIcon)elementcontainingtheicontoassociatewiththisitem.ThisvalueisonlyvalidwhennestedunderaListViewelement.

Text String Thelocalizable,visibletexttobeassignedtotheitem.Ifnotspecified,thiswilldefaulttothevalueoftheValueattribute.

Value String ThevalueassignedtotheassociatedComboBox,ListBox,orListViewpropertyifthisitemisselected.

Yes

SeeAlso

Page 665: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixSchema

Version3.5.1623.0

Page 666: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ListViewElement

DescriptionSetofitemsforaparticularListViewcontroltiedtoaninstallProperty

WindowsInstallerreferencesListViewTable,ControlTable,DialogTable

ParentsControl,UI

InnerTextNone

ChildrenSequence(min:1,max:1)1. ListItem(min:0,max:unbounded):entryforListViewtable

Attributes

Name Type Description Required

Property String Propertytiedtothisgroup Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 667: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

MajorUpgradeElement

DescriptionSimplifiesauthoringformajorupgrades,includingsupportforpreventingdowngrades.

TheparentProductelementmusthavevalidUpgradeCodeandVersionattributes.

WindowsInstallerreferencesNone

ParentsProduct

InnerTextNone

ChildrenNone

Attributes

Name Type Description

AllowDowngrades YesNoType Whensettono(thedefault),productswithlowerversionnumbersareblockedfrominstallingwhenaproductwithahigherversionisinstalled;theDowngradeErrorMessageattributemustalsobespecified.

Whensettoyes,anyversioncanbeinstalledoveranyotherversion.

DowngradeErrorMessage String Themessagedisplayedif

Page 668: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

userstrytoinstallaproductwithalowerversionnumberwhenaproductwithahigherversionisinstalled.UsedonlywhenAllowDowngradesisno(thedefault).

IgnoreRemoveFailure YesNoType Whensettoyes,failuresremovingtheinstalledproductduringtheupgradewillbeignored.

Whensettono(thedefault),failuresremovingtheinstalledproductduringtheupgradewillbeconsideredafailureand,dependingonthescheduling,rollbacktheupgrade.

MigrateFeatures YesNoType Whensettoyes(thedefault),theMigrateFeatureStatesstandardactionwillsetthefeaturestatesoftheupgradeproducttothoseoftheinstalledproduct.

Whensettono,theinstalledfeatureshavenoeffectontheupgradeinstallation.

RemoveFeatures String Aformattedstringthatcontainsthelistoffeaturestoremovefromtheinstalledproduct.Thedefaultistoremoveallfeatures.Notethatifyouuseformattedpropertyvaluesthatevaluatetoanemptystring,nofeatureswillberemoved;onlyomitting

Page 669: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

thisattributedefaultstoremovingallfeatures.

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

Formoreinformation,seeRemoveExistingProducts.Thisattribute'svaluemustbeoneofthefollowing:afterInstallValidate

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

Page 670: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

installed.

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

afterInstallExecuteSchedulesRemoveExistingProductsbetweentheInstallExecuteandInstallFinalizestandardactions.Thisschedulinginstallstheupgradeproduct"ontopof"theinstalledproductthenletsRemoveExistingProductsuninstallanycomponentsthatdon'talsoexistintheupgradeproduct.Notethatthisschedulingrequiresstrictadherencetothecomponentrulesbecauseitreliesoncomponentreferencecountstobeaccurateduringinstallationofthe

Page 671: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

afterInstallExecuteAgainSchedulesRemoveExistingProductsbetweentheInstallExecuteAgainandInstallFinalizestandardactions.ThisisidenticaltotheafterInstallExecuteschedulingbutaftertheInstallExecuteAgainstandardactioninsteadofInstallExecute.

afterInstallFinalizeSchedulesRemoveExistingProductsaftertheInstallFinalizestandardaction.ThisissimilartotheafterInstallExecuteandafterInstallExecuteAgainschedulingsbuttakesplaceoutsidetheinstallationtransactionsoifinstallationoftheupgradeproductfails,

Page 672: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WindowsInstallerdoesnotrollbacktheremovaloftheinstalledproduct,sothemachinewillhavebothversionsinstalled.

SeeAlsoWixSchema

Version3.5.1623.0

Page 673: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

MediaElement

DescriptionMediaelementdescribesadiskthatmakesupthesourcemediafortheinstallation.

WindowsInstallerreferencesMediaTable

ParentsFragment,Patch,Product

InnerTextNone

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

DigitalSignature(min:0,max:unbounded)PatchBaseline(min:0,max:unbounded)SymbolPath(min:0,max:unbounded)

Attributes

Name Type Description Required

Id Integer DiskidentifierforMediatable.Thisnumbermustbeequaltoorgreaterthan1.

Yes

Cabinet String Thenameofthecabinetifsomeorallofthefilesstoredonthemediaareinacabinetfile.Ifnocabinetsareused,thisattributemustnot

Page 674: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

beset.

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

low

medium

mszip

none

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

EmbedCab YesNoType Instructsthebindertoembedthecabinetintheproductif'yes'.

Page 675: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ThisattributecanonlybespecifiedinconjunctionwiththeCabinetattribute.

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

Source String Optionalpropertythatidentifiesthesourceoftheembeddedcabinet.Ifacabinetisspecifiedforapatch,thispropertyshouldbedefinedandunique

Page 676: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

src String Thisattributehasbeendeprecated;pleaseusetheLayoutattributeinstead.

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

Page 677: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SeeAlsoWixSchema

Version3.5.1623.0

Page 678: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

MergeElement

DescriptionMergedirectivetobringinamergemodulethatwillberedirectedtotheparentdirectory.

WindowsInstallerreferencesNone

ParentsDirectory,DirectoryRef

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

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

Attributes

Name Type Description Required

Id String TheuniqueidentifierfortheMergeelementinthesourcecode.ReferencedbytheMergeRef/@Id.

Yes

DiskId String ThevalueofthisattributeshouldcorrespondtotheIdattributeofaMediaelementauthoredelsewhere.By

Page 679: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

FileCompression YesNoType Specifiesifthefilesinthemergemoduleshouldbecompressed.

Language LocalizableInteger SpecifiesthedecimalLCIDorlocalizationtokenforthelanguagetomergetheModuleinas.

Yes

SourceFile String Pathtothesourcelocationofthemergemodule.

src String Thisattributehasbeendeprecated;pleaseusetheSourceFileattributeinstead.

Page 680: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HowTosandExamplesHowTo:InstalltheVisualC++Redistributablewithyourinstaller

SeeAlsoWixSchema,MergeRef

Version3.5.1623.0

Page 681: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

MergeRefElement

DescriptionMergereferencetoconnectaMergeModuletoparentFeature

WindowsInstallerreferencesNone

ParentsFeature,FeatureGroup,FeatureRef

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheuniqueidentifierfortheMergeelementtobereferenced.

Yes

Primary YesNoType SpecifieswhetherthefeaturecontainingthisMergeRefistheprimaryfeatureforadvertisingthemergemodule'scomponents.

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

HowTosandExamplesHowTo:InstalltheVisualC++Redistributablewithyourinstaller

SeeAlsoWixSchema,Merge

Version3.5.1623.0

Page 682: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

MigrateFeatureStatesElement

DescriptionUsedforupgradingorinstallingoveranexistingapplication.Readsfeaturestatesfromexistingapplicationandsetsthesefeaturestatesforthependinginstallation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesMigrateFeatureStatesAction

ParentsInstallExecuteSequence,InstallUISequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 683: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

MIMEElement

DescriptionMIMEcontent-typeforanExtension

WindowsInstallerreferencesMIMETable

ParentsExtension

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Advertise YesNoType WhetherthisMIMEistobeadvertised.Thedefaultistomatchwhatevertheparentextensionelementuses.Iftheparentelementisnotadvertised,thenthiselementcannotbeadvertisedeither.

Class Guid ClassIDfortheCOMserverthatistobeassociatedwiththeMIMEcontent.

ContentType String ThisistheidentifierfortheMIMEcontent.Itiscommonlywrittenintheformoftype/format.

Yes

Default YesNoType If'yes',becomethecontenttypefortheparent

Page 684: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Extension.Thedefaultvalueis'no'.

SeeAlsoWixSchema

Version3.5.1623.0

Page 685: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ModuleElement

DescriptionTheModuleelementisanalogoustothemainfunctioninaCprogram.Whenlinking,onlyoneModulesectioncanbegiventothelinkertoproduceasuccessfulresult.Usingthiselementcreatesanmsmfile.

WindowsInstallerreferencesNone

ParentsWix

InnerTextNone

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

AppId(min:0,max:unbounded)Binary(min:0,max:unbounded)Component(min:0,max:unbounded)ComponentGroupRef(min:0,max:unbounded)ComponentRef(min:0,max:unbounded)Configuration(min:0,max:unbounded)CustomAction(min:0,max:unbounded)CustomActionRef(min:0,max:unbounded)CustomTable(min:0,max:unbounded)Dependency(min:0,max:unbounded)Directory(min:0,max:unbounded)DirectoryRef(min:0,max:unbounded)EmbeddedChainer(min:0,max:unbounded)

Page 686: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

EmbeddedChainerRef(min:0,max:unbounded)EnsureTable(min:0,max:unbounded)Exclusion(min:0,max:unbounded)Icon(min:0,max:unbounded)IgnoreModularization(min:0,max:unbounded)IgnoreTable(min:0,max:unbounded)LayoutDirectory(min:0,max:unbounded)LayoutDirectoryRef(min:0,max:unbounded)Property(min:0,max:unbounded)PropertyRef(min:0,max:unbounded)SetDirectory(min:0,max:unbounded)SetProperty(min:0,max:unbounded)SFPCatalog(min:0,max:unbounded)Substitution(min:0,max:unbounded)UI(min:0,max:unbounded)UIRef(min:0,max:unbounded)WixVariable(min:0,max:unbounded)Sequence(min:1,max:1)1. InstallExecuteSequence(min:0,max:1)2. InstallUISequence(min:0,max:1)3. AdminExecuteSequence(min:0,max:1)4. AdminUISequence(min:0,max:1)5. AdvertiseExecuteSequence(min:0,max:1)

AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

CloseApplicationComPlusApplicationComPlusApplicationRoleComPlusPartitionComPlusPartitionRoleGroup

Page 687: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HelpCollectionRefHelpFilterLayoutDirectoryLayoutDirectoryRefSqlDatabaseUserWebApplicationWebAppPoolWebDirPropertiesWebLogWebSite

Attributes

Name Type Description Required

Id String Thenameofthemergemodule(notthefilename).

Yes

Codepage String ThecodepageintegervalueorwebnamefortheresultingMSM.Seeremarksformoreinformation.

Guid Guid Thisattributeisdeprecated.UsethePackage/@Idattributeinstead.

Language LocalizableInteger ThedecimallanguageID(LCID)ofthemergemodule.

Yes

Version String Themajorandminorversionsofthemergemodule.

Yes

Remarks

Page 688: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.

SeeAlsoWixSchema

Version3.5.1623.0

Page 689: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

MoveFilesElement

DescriptionLocatesexistingfilesonthesystemandmovesorcopiesthosefilestoanewlocation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesMoveFileTable,MoveFilesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 690: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

MsiPackageElement

DescriptionDescribesasinglemsipackagetoinstall.

WindowsInstallerreferencesNone

ParentsChain,PackageGroup

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

MsiProperty(min:0,max:unbounded)Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.Theextension'sCompilerExtension.ParseElement()methodwillbecalledwiththepackageidentifierasthefirstvalueincontextValues.

MsiProperty

Attributes

Name Type Description Required

After String Theidentifierofanotherpackagethatthisoneshouldbeinstalledafter.

Cache YesNoType Whethertocachethepackage.

Page 691: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CacheId String Theidentifiertousewhencachingthepackage.

DownloadUrl String TheURLtousetodownloadthepackage.

Id String Identifierforthispackage,fororderingandcross-referencing.

InstallCondition String Aconditiontoevaluatebeforeinstallingthepackage.Thepackagewillonlybeinstallediftheconditionevaluatestotrue.

Name String Thedestinationpathandfilenameforthischainpayload.Thedefaultisthesourcefilename.Usethisattributetorenamethechainentrypointorextractitintoasubfolder.

SourceFile String Locationofthepackage. Yes

Vital YesNoType Whetherthepackageshouldbeconsidered"vital".

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

SeeAlsoWixSchema

Version3.5.1623.0

Page 692: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

MsiPropertyElement

DescriptionAllowsanMSIpropertytobesetbasedonthevalueofaburnengineexpression.

WindowsInstallerreferencesNone

ParentsMsiPackage

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Name String ThenameoftheMSIpropertytoset.

Yes

Value String Thevaluetosetthepropertyto.Thisstringisevaluatedbytheburnengineandcanbeassimpleasaburnenginevariablereferenceorascomplexasafullexpression.

Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 693: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

MsiPublishAssembliesElement

DescriptionManagestheadvertisementofCLRandWin32assemblies.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesMsiPublishAssembliesAction

ParentsAdvertiseExecuteSequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 694: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

MsiUnpublishAssembliesElement

DescriptionManagestheunadvertisementofCLRandWin32assembliesthatarebeingremoved.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesMsiUnpublishAssembliesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 695: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

MspPackageElement

DescriptionDescribesasinglemsppackagetoinstall.

WindowsInstallerreferencesNone

ParentsChain,PackageGroup

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.Theextension'sCompilerExtension.ParseElement()methodwillbecalledwiththepackageidentifierasthefirstvalueincontextValues.

Attributes

Name Type Description Required

After String Theidentifierofanotherpackagethatthisoneshouldbeinstalledafter.

Cache YesNoType Whethertocachethepackage.

CacheId String Theidentifiertousewhencachingthepackage.

Page 696: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DownloadUrl String TheURLtousetodownloadthepackage.

Id String Identifierforthispackage,fororderingandcross-referencing.

InstallCondition String Aconditiontoevaluatebeforeinstallingthepackage.Thepackagewillonlybeinstallediftheconditionevaluatestotrue.

Name String Thedestinationpathandfilenameforthischainpayload.Thedefaultisthesourcefilename.Usethisattributetorenamethechainentrypointorextractitintoasubfolder.

SourceFile String Locationofthepackage. Yes

Vital YesNoType Whetherthepackageshouldbeconsidered"vital".

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

SeeAlsoWixSchema

Version3.5.1623.0

Page 697: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

MsuPackageElement

DescriptionDescribesasinglemsupackagetoinstall.

WindowsInstallerreferencesNone

ParentsChain,PackageGroup

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.Theextension'sCompilerExtension.ParseElement()methodwillbecalledwiththepackageidentifierasthefirstvalueincontextValues.

Attributes

Name Type Description Required

After String Theidentifierofanotherpackagethatthisoneshouldbeinstalledafter.

Cache YesNoType Whethertocachethepackage.

CacheId String Theidentifiertousewhencachingthepackage.

Page 698: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DownloadUrl String TheURLtousetodownloadthepackage.

Id String Identifierforthispackage,fororderingandcross-referencing.

InstallCondition String Aconditiontoevaluatebeforeinstallingthepackage.Thepackagewillonlybeinstallediftheconditionevaluatestotrue.

Name String Thedestinationpathandfilenameforthischainpayload.Thedefaultisthesourcefilename.Usethisattributetorenamethechainentrypointorextractitintoasubfolder.

SourceFile String Locationofthepackage. Yes

Vital YesNoType Whetherthepackageshouldbeconsidered"vital".

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

SeeAlsoWixSchema

Version3.5.1623.0

Page 699: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

MultiStringValueElement

DescriptionUseseveraloftheseelementstospecifyeachregistryvalueinamultiStringregistryvalue.ThiselementcannotbeusediftheValueattributeisspecifiedunlesstheTypeattributeissetto'multiString'.ThevaluesshouldgointhetextareaoftheMultiStringValueelement.

WindowsInstallerreferencesRegistryTable

ParentsRegistryValue

SeeAlsoWixSchema

Version3.5.1623.0

Page 700: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ODBCDataSourceElement

DescriptionODBCDataSourceforaComponent

WindowsInstallerreferencesODBCDataSourceTable

ParentsComponent,ODBCDriver

InnerTextNone

ChildrenSequence(min:1,max:1)1. Property(min:0,max:unbounded):Translatesinto

ODBCSourceAttributes

Attributes

Name Type Description Required

Id String Identifierofthedatasource. Yes

DriverName String RequiredifnotfoundaschildofODBCDriverelement

KeyPath YesNoType Set'yes'toforcethisfiletobekeypathforparentComponent

Name String Nameforthedatasource. Yes

Registration Enumeration Scopeforwhichthedatasourceshouldberegistered.Thisattribute'svaluemustbeoneofthefollowing:

Yes

Page 701: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

machineDatasourceisregisteredpermachine.

userDatasourceisregisteredperuser.

SeeAlsoWixSchema

Version3.5.1623.0

Page 702: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ODBCDriverElement

DescriptionODBCDriverforaComponent

WindowsInstallerreferencesODBCDriverTable

ParentsComponent,File

InnerTextNone

ChildrenSequence(min:1,max:1)1. Property(min:0,max:unbounded):Translatesinto

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

Attributes

Name Type Description Required

Id String Identifierforthedriver. Yes

File String RequiredifnotfoundaschildofFileelement

Name String Nameforthedriver. Yes

SetupFile String RequiredifnotfoundaschildofFileelementordifferentfromFileattributeabove

SeeAlsoWixSchema

Version3.5.1623.0

Page 703: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ODBCTranslatorElement

DescriptionODBCTranslatorforaComponent

WindowsInstallerreferencesODBCTranslatorTable

ParentsComponent,File

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Identifierforthetranslator. Yes

File String RequiredifnotfoundaschildofFileelement

Name String Nameforthetranslator. Yes

SetupFile String RequiredifnotfoundaschildofFileelementordifferentfromFileattributeabove

SeeAlsoWixSchema

Version3.5.1623.0

Page 704: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

OptimizeCustomActionsElement

DescriptionIndicateswhethercustomactionscanbeskippedwhenapplyingthepatch.

WindowsInstallerreferencesMsiPatchMetadataTable

ParentsPatch,PatchMetadata

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

SkipAssignment YesNoType Skipproperty(type51)anddirectory(type35)assignmentcustomactions.

SkipDeferred YesNoType Skipcustomactionsthatrunwithinthescript.

SkipImmediate YesNoType Skipimmediatecustomactionsthatarenotpropertyordirectoryassignmentcustomactions.

SeeAlsoWixSchema

Version3.5.1623.0

Page 705: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PackageElement

DescriptionPropertiesaboutthepackagetobeplacedintheSummaryInformationStream.ThesearevisiblefromCOMthroughtheIStreaminterface,andthesepropertiescanbeseenonthepackageinExplorer.

WindowsInstallerreferencesNone

ParentsModule,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

AdminImage YesNoType Setto'yes'ifthesourceisanadminimage.

Comments String Optionalcommentsforbrowsing.

Compressed YesNoType Setto'yes'tohavecompressedfilesinthesource.Thisattributecannotbesetformergemodules.

Description String Theproductfullnameor

Page 706: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

description.

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

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

Page 707: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

to200bydefaultasWindowsInstaller2.0wasthefirstversiontosupport64-bitpackages.

InstallPrivileges Enumeration UsethisattributetospecifythepriviligesrequiredtoinstallthepackageonWindowsVistaandabove.Thisattribute'svaluemustbeoneofthefollowing:limited

Setthisvaluetodeclarethatthepackagedoesnotrequireelevatedprivilegestoinstall.

elevatedSetthisvaluetodeclarethatthepackagerequireselevatedprivilegestoinstall.Thisisthedefaultvalue.

InstallScope Enumeration Usethisattributetospecifytheinstallationscopeof

Page 708: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Setthisvaluetodeclarethatthepackageisaper-machineinstallationandrequireselevatedprivilegestoinstall.SetstheALLUSERSpropertyto1.

perUserSetthisvaluetodeclarethatthepackageisaper-userinstallationanddoesnotrequireelevatedprivilegestoinstall.Setsthepackage'sInstallPrivilegesattributeto"limited."

Keywords String Optionalkeywordsforbrowsing.

Languages String ThelistoflanguageIDs(LCIDs)

Page 709: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

supportedinthepackage.

Manufacturer String Thevendorreleasingthepackage.

Platform Enumeration Theplatformsupportedbythepackage.Thisattribute'svaluemustbeoneofthefollowing:x86

Setthisvaluetodeclarethatthepackageisanx86package.

ia64Setthisvaluetodeclarethatthepackageisania64package.ThisvaluerequiresthattheInstallerVersionpropertybesetto200orgreater.

x64Setthisvaluetodeclarethatthepackageisanx64package.Thisvaluerequires

Page 710: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

thattheInstallerVersionpropertybesetto200orgreater.

intelThisvaluehasbeendeprecated.Use"x86"instead.

intel64Thisvaluehasbeendeprecated.Use"ia64"instead.

Platforms String Thisattributehasbeendeprecated;pleaseusethePlatformattributeinstead.

ReadOnly YesNoDefaultType Thevalueofthisattributeconveyswhetherthepackageshouldbeopenedasread-only.Adatabaseeditingtoolshouldnotmodifyaread-onlyenforceddatabaseandshouldissueawarningatattemptstomodifyaread-onlyrecommended

Page 711: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

database.

ShortNames YesNoType Setto'yes'tohaveshortfilenamesinthesource.

SummaryCodepage String Thecodepageintegervalueorwebnameforsummaryinfostringsonly.Seeremarksformoreinformation.

Remarks

YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.

SeeAlsoWixSchema

Version3.5.1623.0

Page 712: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PackageCertificatesElement

DescriptionDigitalsignaturesthatidentifyinstallationpackagesinamulti-producttransaction.

WindowsInstallerreferencesMsiPackageCertificateTable

ParentsFragment,Product

InnerTextNone

ChildrenChoiceofelements(min:1,max:unbounded)

DigitalCertificate(min:1,max:unbounded)

AttributesNone

SeeAlsoWixSchema

Version3.5.1623.0

Page 713: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PackageGroupElement

DescriptionDescribesapackagegrouptoabootstrapper.

WindowsInstallerreferencesNone

ParentsFragment

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

ExePackage(min:0,max:unbounded)MsiPackage(min:0,max:unbounded)MspPackage(min:0,max:unbounded)MsuPackage(min:0,max:unbounded)PackageGroupRef(min:0,max:unbounded)

Attributes

Name Type Description Required

Id String Identifierforpackagegroup. Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 714: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PackageGroupRefElement

DescriptionCreateareferencetoPackageGroupelementthatexistsinsideaBundleorFragmentelement.

WindowsInstallerreferencesNone

ParentsChain,PackageGroup

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifierofthePackageGroupelementtoreference.

Yes

After String Theidentifierofapackagethatthisgroupshouldbeinstalledafter.

SeeAlsoWixSchema,PackageGroup

Version3.5.1623.0

Page 715: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PatchElement

DescriptionThePatchelementisanalogoustothemainfunctioninaCprogram.Whenlinking,onlyonePatchsectioncanbegiventothelinkertoproduceasuccessfulresult.UsingthiselementcreatesanMSPfile.

WindowsInstallerreferencesNone

ParentsWix

InnerTextNone

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

LayoutDirectory(min:0,max:unbounded)LayoutDirectoryRef(min:0,max:unbounded)Media(min:1,max:unbounded)OptimizeCustomActions(min:0,max:1):Indicateswhethercustomactionscanbeskippedwhenapplyingthepatch.PatchFamily(min:1,max:unbounded)PatchFamilyRef(min:0,max:unbounded)PatchInformation(min:0,max:1):Optionalelementthatallowsoverridingsummaryinformationproperties.PatchProperty(min:0,max:unbounded)TargetProductCodes(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

LayoutDirectory

Page 716: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LayoutDirectoryRef

Attributes

Name Type Description

AllowRemoval YesNoType Whetherthisisanuninstallablepatch.

ApiPatchingSymbolNoFailuresFlag YesNoType Flagusedwhencreatingabinaryfilepatch.Defaultis"no".Don'tfailpatchduetoimagehlpfailures.

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

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

Classification String Categoryof

Page 717: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

ClientPatchId String Aneasilyreferencedidentityuniquetoapatchthatcanbeusedinproductauthoring.Seeremarksformoreinformation.

Codepage String ThecodepageintegervalueorwebnamefortheresultingMSP.Seeremarksformoreinformation.

Comments String Optionalcommentsforbrowsing.

Description String Descriptionofthepatch.

DisplayName String Atitleforthe

Page 718: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

patchthatissuitableforpublicdisplay.InAdd/RemoveProgramsfromXPSP2on.

Id AutogenGuid Patchcodeforthispatch.

Manufacturer String Vendorreleasingthepackage

MinorUpdateTargetRTM YesNoType IndicatesthatthepatchtargetstheRTMversionoftheproductorthemostrecentmajorupgradepatch.AuthorthisoptionalpropertyinminorupdatepatchesthatcontainsequencinginformationtoindicatethatthepatchremovesallpatchesuptotheRTMversionoftheproduct,oruptothemostrecentmajor

Page 719: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

upgradepatch.ThispropertyisavailablebeginningwithWindowsInstaller3.1.

MoreInfoURL String AURLthatprovidesinformationspecifictothispatch.InAdd/RemoveProgramsfromXPSP2on.

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

OptimizePatchSizeForLargeFiles YesNoType Whenthisattributeisset,patchesforfilesgreaterthanapproximately4MBinsizemaybemadesmaller.

Page 720: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

TargetProductName String Nameoftheapplicationortargetproductsuite.

Remarks

YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.

TheClientPatchIdattributeallowsyoutospecifyaneasilyreferencedidentitythatyoucanuseinproductauthoring.ThisidentityprefixespropertiesaddedbyWiXtoapatchtransform,suchasClientPatchId.PatchCodeandClientPatchId.AllowRemoval.IfthepatchcodeGUIDisauto-generatedyoucouldnotreferenceanypropertiesusingthisauto-generatedprefix.

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

ThesummaryinformationisautomaticallypopulatedfromattributevaluesofthePatchelementincludingthecodepage.Ifyouwanttooverridesomeofthesesummaryinformationpropertiesoruseadifferentcodepageforthesummaryinformationitself,authorthePatchInformationelement.

SeeAlsoWixSchema

Version3.5.1623.0

Page 721: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PatchBaselineElement

DescriptionIdentifiesasetofproductversions.

WindowsInstallerreferencesNone

ParentsMedia

InnerTextNone

ChildrenChoiceofelements(min:0,max:1)

Validate(min:0,max:1)

Attributes

Name Type Description Required

Id String Identifierforasetofproductversions.

Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 722: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PatchCertificatesElement

DescriptionIdentifiesthepossiblesignercertificatesusedtodigitallysignpatches.

WindowsInstallerreferencesMsiPatchCertificateTable

ParentsFragment,Product

InnerTextNone

ChildrenChoiceofelements(min:1,max:unbounded)

DigitalCertificate(min:1,max:unbounded)

AttributesNone

SeeAlsoWixSchema

Version3.5.1623.0

Page 723: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PatchCreationElement

DescriptionThePatchCreationelementisanalogoustothemainfunctioninaCprogram.Whenlinking,onlyonePatchCreationsectioncanbegiventothelinkertoproduceasuccessfulresult.Usingthiselementcreatesapcpfile.

WindowsInstallerreferencesNone

ParentsWix

InnerTextNone

ChildrenSequence(min:1,max:1)1. PatchInformation(min:1,max:1)2. PatchMetadata(min:0,max:1)3. Family(min:1,max:unbounded)4. Choiceofelements(min:0,max:unbounded)

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

Attributes

Name Type Description

Id Guid PatchCreationidentifier;thisistheprimarykeyforidentifyingpatches.

Page 724: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AllowMajorVersionMismatches YesNoType Usethistosetwhetherthemajorversionsbetweentheupgradeandtargetimagesmatch.SeeAllowProductVersionMajorMismatchesformoreinformation.

AllowProductCodeMismatches YesNoType Usethistosetwhethertheproductcodebetweentheupgradeandtargetimagesmatch.SeeAllowProductCodeMismatchesmoreinformation.

CleanWorkingFolder YesNoType UsethistosetwhetherPatchwizshouldcleanthetempfolderwhenfinished.SeeDontRemoveTempFolderWhenFinishedformoreinformation.

Codepage String ThecodepageintegervalueorwebnamefortheresultingPCP.Seeremarksformoreinformation.

OutputPath String Thefullpath,includingfilename,ofthepatchpackagefilethatistobegenerated.SeePatchOutputPathmoreinformation.

SourceList String Usedtolocatethe.mspfileforthepatchifthecachedcopyisunavailable.SeePatchSourceListformoreinformation.

SymbolFlags Int An8-digithexintegerrepresentingthecombinationofpatchsymbolusageflagstousewhencreatingabinaryfilepatch.SeeApiPatchingSymbolFlagsformoreinformation.

WholeFilesOnly YesNoType Usethistosetwhetherchangingfilesshouldbeincludedintheirentirety.SeeIncludeWholeFilesOnlyformoreinformation.

Page 725: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Remarks

YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.

SeeAlsoWixSchema

Version3.5.1623.0

Page 726: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PatchFamilyElement

DescriptionCollectionofitemsthatshouldbekeptfromthedifferencesbetweentwoproducts.

WindowsInstallerreferencesNone

ParentsFragment,Patch

InnerTextNone

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

BinaryRef(min:0,max:unbounded)ComponentRef(min:0,max:unbounded)CustomActionRef(min:0,max:unbounded)DirectoryRef(min:0,max:unbounded)FeatureRef(min:0,max:unbounded)IconRef(min:0,max:unbounded)PropertyRef(min:0,max:unbounded)UIRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

Attributes

Name Type Description Required

Id String Identifierwhichindicatesasequencefamilytowhich

Yes

Page 727: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

thispatchbelongs.

ProductCode Guid SpecifiestheProductCodeoftheproductthatthisfamilyappliesto.

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

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

Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 728: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PatchFamilyRefElement

DescriptionThiswillcausetheentirecontentsoftheFragmentcontainingthereferencedPatchFamilytobeusedintheprocessofcreatingapatch.

WindowsInstallerreferencesNone

ParentsPatch

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifieroftheCustomActiontoreference.

Yes

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

SeeAlsoWixSchema,PatchFamily

Version3.5.1623.0

Page 729: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PatchFilesElement

DescriptionQueriesthePatchtabletodeterminewhichpatchesaretobeapplied.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesPatchFilesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 730: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PatchInformationElement

DescriptionPropertiesaboutthepatchtobeplacedintheSummaryInformationStream.ThesearevisiblefromCOMthroughtheIStreaminterface,andthesepropertiescanbeseenonthepackageinExplorer.

WindowsInstallerreferencesNone

ParentsPatch,PatchCreation

InnerTextNone

ChildrenNone

Attributes

Name Type Description

AdminImage YesNoType Thisattributehasbeendeprecated.

Comments String Generalpurposeofthepatchpackage.Forexample,"Thispatchcontainsthelogicanddatarequiredtoinstall<product>

Compressed YesNoType Thisattributehasbeendeprecated.

Description String Ashortdescriptionofthepatchthatincludesthenameoftheproduct.

Keywords String Asemicolon-delimitedlistofnetworkorURLlocationsfor

Page 731: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

alternatesourcesofthepatch.Thedefaultis"Installer,Patching,PCP,Database".

Languages String Thisattributehasbeendeprecated.

Manufacturer String Thenameofthemanufacturerofthepatchpackage.

Platforms String Thisattributehasbeendeprecated.

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

ShortNames YesNoType Thisattributehasbeendeprecated.

SummaryCodepage String Thecodepageintegervalueorwebnameforsummaryinfostringsonly.Thedefaultis1252.Seeremarksformoreinformation.

Remarks

YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.

SeeAlsoWixSchema

Version3.5.1623.0

Page 732: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PatchMetadataElement

DescriptionPropertiesaboutthepatchtobeplacedinthePatchMetadatatable.

WindowsInstallerreferencesMsiPatchMetadataTable

ParentsPatchCreation

InnerTextNone

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

CustomProperty(min:0,max:unbounded):Acustompropertythatextendsthestandardset.OptimizeCustomActions(min:0,max:1):Indicateswhethercustomactionscanbeskippedwhenapplyingthepatch.

Attributes

Name Type Description Required

AllowRemoval YesNoType Whetherthisisanuninstallablepatch.

Yes

Classification String Categoryofupdates.RecommendedvaluesareCriticalUpdate,Hotfix,SecurityRollup,SecurityUpdate,Service

Yes

Page 733: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Pack,Update,UpdateRollup.

CreationTimeUTC String Creationtimeofthe.mspfileintheformmm-dd-yyHH:MM(month-day-yearhour:minute).

Description String Descriptionofthepatch.

Yes

DisplayName String Atitleforthepatchthatissuitableforpublicdisplay.InAdd/RemoveProgramsfromXPSP2on.

Yes

ManufacturerName String Nameofthemanufacturer.

Yes

MinorUpdateTargetRTM String IndicatesthatthepatchtargetstheRTMversionoftheproductorthemostrecentmajorupgradepatch.AuthorthisoptionalpropertyinminorupdatepatchesthatcontainsequencinginformationtoindicatethatthepatchremovesallpatchesuptotheRTMversionof

Page 734: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

theproduct,oruptothemostrecentmajorupgradepatch.ThispropertyisavailablebeginningwithWindowsInstaller3.1.

MoreInfoURL String AURLthatprovidesinformationspecifictothispatch.InAdd/RemoveProgramsfromXPSP2on.

Yes

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

TargetProductName String Nameoftheapplicationortargetproductsuite.

Yes

SeeAlso

Page 735: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixSchema

Version3.5.1623.0

Page 736: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PatchPropertyElement

DescriptionApropertyforthispatchdatabase.

WindowsInstallerreferencesMsiPatchMetadataTable

ParentsPatch,PatchCreation

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Company String Nameofthecompanyforacustommetadataproperty.

Name String Nameofthepatchproperty. Yes

Value String Valueofthepatchproperty. Yes

Remarks

WhenauthoredunderthePatchelement,thePatchPropertydefinesentriesintheMsiPatchMetadatatable.

SeeAlsoWixSchema

Version3.5.1623.0

Page 737: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PatchSequenceElement

DescriptionSequenceinformationforthispatchdatabase.Sequenceinformationisgeneratedautomaticallyinmostcases,andrarelyneedstobesetexplicitly.

WindowsInstallerreferencesMsiPatchSequenceTable

ParentsPatchCreation

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

PatchFamily String Identifierwhichindicatesasequencefamilytowhichthispatchbelongs.

Yes

ProductCode Guid SpecifiestheProductCodeoftheproductthatthisfamilyappliesto.ThisattributecannotthespecifiediftheTargetImageattributeisspecified.

Sequence String UsedtopopulatethesequencecolumnoftheMsiPatchSequencetableinthefinalMSPfile.Specifiedinx.x.x.xformat.See

Page 738: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

documentationforSequencecolumnofMsiPatchSequencetableinMSISDK.

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

Target String Thisattributehasbeendeprecated;pleaseusetheTargetImageattributeinstead.

TargetImage String SpecifiestheTargetImagethatthisfamilyappliesto.ThisattributecannotthespecifiediftheProductCodeattributeisspecified.

SeeAlsoWixSchema

Version3.5.1623.0

Page 739: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PayloadElement

DescriptionDescribesapayloadtoabootstrapper.

WindowsInstallerreferencesNone

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

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

DownloadUrl String TheURLtousetodownloadthepackage.

Name String Thedestinationpathandfilenameforthispayload.Thedefaultisthesourcefilename.

SourceFile String Locationofthesourcefile. Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 740: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PayloadGroupElement

DescriptionDescribesapayloadgrouptoabootstrapper.

WindowsInstallerreferencesNone

ParentsFragment

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)

Attributes

Name Type Description Required

Id String Identifierforpayloadgroup. Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 741: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PayloadGroupRefElement

DescriptionCreateareferencetoPayloadGroupelementthatexistsinsideaBundleorFragmentelement.

WindowsInstallerreferencesNone

ParentsExePackage,MsiPackage,MspPackage,MsuPackage,PayloadGroup,UX

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifierofthePayloadGroupelementtoreference.

Yes

SeeAlsoWixSchema,PayloadGroup

Version3.5.1623.0

Page 742: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PermissionElement

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

WindowsInstallerreferencesLockPermissionsTable

ParentsCreateFolder,File,Registry,RegistryKey,RegistryValue

InnerTextNone

ChildrenNone

Attributes

Name Type Description

Append YesNoType

ChangePermission YesNoType

CreateChild YesNoType Foradirectory,therighttocreateasubdirectory.Onlyvalidundera'CreateFolder'parent.

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

CreateLink YesNoType

CreateSubkeys YesNoType

Delete YesNoType

Page 743: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DeleteChild YesNoType Foradirectory,therighttodeleteadirectoryandallthefilesitcontains,includingread-onlyfiles.Onlyvalidundera'CreateFolder'parent.

Domain String

EnumerateSubkeys YesNoType

Execute YesNoType

GenericAll YesNoType

GenericExecute YesNoType

GenericRead YesNoType specifyingthiswillfailtograntreadaccess

GenericWrite YesNoType

Notify YesNoType

Read YesNoType

ReadAttributes YesNoType

ReadExtendedAttributes YesNoType

ReadPermission YesNoType

Synchronize YesNoType

TakeOwnership YesNoType

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

User String

Page 744: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Write YesNoType

WriteAttributes YesNoType

WriteExtendedAttributes YesNoType

SeeAlsoWixSchema

Version3.5.1623.0

Page 745: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PermissionExElement

DescriptionSetsACLsonFile,Registry,orCreateFolder.WhenunderaRegistryelement,thiscannotbeusediftheActionattribute'svalueisremoveorremoveKeyOnInstall.ThiselementisonlyavailablewheninstallingwithMSI5.0.Fordownlevelsupport,seethePermissionExelementfromtheWixUtilExtension.

WindowsInstallerreferencesMsiLockPermissionsExTable

ParentsCreateFolder,File,Registry,RegistryKey,RegistryValue,ServiceInstall

InnerTextNone

ChildrenSequence(min:1,max:1)1. Condition(min:0,max:1):Optionalconditionthatcontrols

whetherthepermissionsareapplied.

Attributes

Name Type Description Required

Id String Primarykeyusedtoidentifythisparticularentry.Ifthisisnotspecifiedtheparentelement'sIdattributewillbeusedinstead.

Sddl String Securitydescriptortoapplytoparentobject.

Yes

SeeAlsoWixSchema

Page 746: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Version3.5.1623.0

Page 747: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ProcessComponentsElement

DescriptionRegistersandunregisterscomponents,theirkeypaths,andthecomponentclients.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesProcessComponentsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 748: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ProductElement

DescriptionTheProductelementisanalogoustothemainfunctioninaCprogram.Whenlinking,onlyoneProductsectioncanbegiventothelinkertoproduceasuccessfulresult.Usingthiselementcreatesanmsifile.

WindowsInstallerreferencesNone

ParentsWix

InnerTextNone

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

AppId(min:0,max:unbounded)Binary(min:0,max:unbounded)ComplianceCheck(min:0,max:unbounded)Component(min:0,max:unbounded)ComponentGroup(min:0,max:unbounded)Condition(min:0,max:unbounded)CustomAction(min:0,max:unbounded)CustomActionRef(min:0,max:unbounded)CustomTable(min:0,max:unbounded)Directory(min:0,max:unbounded)DirectoryRef(min:0,max:unbounded)EmbeddedChainer(min:0,max:unbounded)EmbeddedChainerRef(min:0,max:unbounded)

Page 749: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

EnsureTable(min:0,max:unbounded)Feature(min:0,max:unbounded)FeatureGroupRef(min:0,max:unbounded)FeatureRef(min:0,max:unbounded)Icon(min:0,max:unbounded)InstanceTransforms(min:0,max:unbounded)LayoutDirectory(min:0,max:unbounded)LayoutDirectoryRef(min:0,max:unbounded)MajorUpgrade(min:0,max:unbounded)Media(min:0,max:unbounded)PackageCertificates(min:0,max:unbounded)PatchCertificates(min:0,max:unbounded)Property(min:0,max:unbounded)PropertyRef(min:0,max:unbounded)SetDirectory(min:0,max:unbounded)SetProperty(min:0,max:unbounded)SFPCatalog(min:0,max:unbounded)SymbolPath(min:0,max:unbounded)UI(min:0,max:unbounded)UIRef(min:0,max:unbounded)Upgrade(min:0,max:unbounded)WixVariable(min:0,max:unbounded)Sequence(min:1,max:1)1. InstallExecuteSequence(min:0,max:1)2. InstallUISequence(min:0,max:1)3. AdminExecuteSequence(min:0,max:1)4. AdminUISequence(min:0,max:1)5. AdvertiseExecuteSequence(min:0,max:1)

AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

CloseApplication

Page 750: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComPlusApplicationComPlusApplicationRoleComPlusPartitionComPlusPartitionRoleGroupHelpCollectionRefHelpFilterLayoutDirectoryLayoutDirectoryRefMajorUpgradeSqlDatabaseUnitTestRefUserWebApplicationWebAppPoolWebDirPropertiesWebLogWebSite

Attributes

Name Type Description Required

Id AutogenGuid TheproductcodeGUIDfortheproduct.

Yes

Codepage String ThecodepageintegervalueorwebnamefortheresultingMSI.Seeremarksformoreinformation.

Language LocalizableInteger ThedecimallanguageID(LCID)fortheproduct.

Yes

Page 751: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Manufacturer String Themanufactureroftheproduct.

Yes

Name String Thedescriptivenameoftheproduct.

Yes

UpgradeCode Guid TheupgradecodeGUIDfortheproduct.

Version String Theproduct'sversionstring.

Yes

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

Remarks

YoucanspecifyanyvalidWindowscodebyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.

SeeAlsoWixSchema

Version3.5.1623.0

Page 752: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ProgIdElement

DescriptionProgIdregistrationforparentComponent.IfProgIdhasanassociatedClass,itmustbeachildofthatelement.

WindowsInstallerreferencesProgIdTable,ClassTable,RegistryTable,IconTable

ParentsClass,Component,ProgId

InnerTextNone

ChildrenSequence(min:1,max:1)1. ProgId(min:0,max:unbounded):Theversion-independent

ProgIdmustbethefirstchildelementofactualProgId.NestingotherProgIdelementswithintheVersion-independentProgIdwillcreateCOM+aliases,seehttp://support.microsoft.com/kb/305745formoreinformation.

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

Attributes

Name Type Description Required

Id String Yes

Advertise YesNoType

Description String

Icon String ForanadvertisedProgId,theIdofanIconelement.Foranon-advertisedProgId,thisistheIdofafilecontainingan

Page 753: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

iconresource.

IconIndex Integer

NoOpen String SpecifiesthattheassociatedProgIdshouldnotbeopenedbyusers.Thevalueispresentedasawarningtousers.Anemptystringisalsovalidforthisattribute.

SeeAlsoWixSchema

Version3.5.1623.0

Page 754: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ProgressTextElement

DescriptionNone

WindowsInstallerreferencesActionTextTable

ParentsUI

InnerText(xs:string)Elementvalueisprogressmessagetextforaction

ChildrenNone

Attributes

Name Type Description Required

Action String Yes

Template String usedtoformatActionDatamessagesfromactionprocessing

SeeAlsoWixSchema

Version3.5.1623.0

Page 755: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PropertyElement

DescriptionPropertyvalueforaProductorModule.

WindowsInstallerreferencesPropertyTable

ParentsControl,Fragment,Module,ODBCDataSource,ODBCDriver,Product,UI,Upgrade

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenChoiceofelements(min:0,max:unbounded)

Sequence(min:1,max:1)1. ComplianceDrive(min:0,max:1):Startssearchesfromthe

CCP_DRIVE.2. ComponentSearch(min:0,max:unbounded)3. RegistrySearch(min:0,max:unbounded)4. RegistrySearchRef(min:0,max:unbounded)5. IniFileSearch(min:0,max:unbounded)6. DirectorySearch(min:0,max:unbounded)7. DirectorySearchRef(min:0,max:unbounded)

AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

Attributes

Name Type Description Required

Id String UniqueidentifierforProperty.

Yes

Page 756: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Admin YesNoType DenotesthatthePropertyissavedduringadmininistrativeinstallation.SeetheAdminPropertiesPropertyformoreinformation.

ComplianceCheck YesNoType AddsarowtotheCCPSearchtable.ThisattributeisonlyvalidwhenthisPropertycontainsasearchelement.

Hidden YesNoType DenotesthatthePropertyisnotloggedduringinstallation.SeetheMsiHiddenPropertiesPropertyformoreinformation.

Secure YesNoType DenotesthatthePropertycanbepassedtotheserversidewhendoingamanagedinstallationwithelevatedprivileges.SeetheSecureCustomPropertiesPropertyformoreinformation.

SuppressModularization YesNoType Usetosuppressmodularizationofthispropertyidentifierinmergemodules.Usingthisfunctionalityisstronglydiscouraged;itshouldonlybenecessaryasa

Page 757: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

workaroundoflastresortinrarescenarios.

Value String Setsadefaultvaluefortheproperty.ThevaluewillbeoverwrittenifthePropertyisusedforasearch.

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

HowTosandExamplesHowTo:Checktheversionnumberofafileduringinstallation

SeeAlsoWixSchema,PropertyRef

Version3.5.1623.0

Page 758: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PropertyRefElement

DescriptionReferencetoaPropertyvalue.

WindowsInstallerreferencesNone

ParentsFragment,Module,PatchFamily,Product,UI

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String IdentifierofPropertytoreference. Yes

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

HowTosandExamplesHowTo:Checkfor.NETFrameworkversions

SeeAlsoWixSchema,Property

Version3.5.1623.0

Page 759: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ProtectFileElement

DescriptionSpecifiesafiletobeprotected.

WindowsInstallerreferencesNone

ParentsFamily

InnerTextNone

ChildrenChoiceofelements(min:1,max:unbounded)

ProtectRange(min:1,max:unbounded)

Attributes

Name Type Description Required

File String ForeignkeyintotheFiletable. Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 760: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ProtectRangeElement

DescriptionSpecifiespartofafilethatcannotbeoverwrittenduringpatching.

WindowsInstallerreferencesNone

ParentsExternalFile,ProtectFile,TargetFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Length Int Lengthoftherange. Yes

Offset Int Offsetofthestartoftherange. Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 761: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PublishElement

DescriptionNone

WindowsInstallerreferencesControlEventTable

ParentsControl,UI

InnerText(xs:string)TheelementvalueistheoptionalConditionexpression.

ChildrenNone

Attributes

Name Type Description Required

Control String TheparentControlforthisPublishelement,shouldonlybespecifiedwhenthiselementisachildoftheUIelement.

Dialog String TheparentDialogforthisPublishelement,shouldonlybespecifiedwhenthiselementisachildoftheUIelement.ThisattributewillcreateareferencetothespecifiedDialog,soanadditionalDialogRefisnotnecessary.

Event String Setthisattribute'svaluetooneofthestandardcontroleventstotriggerthatevent.EitherthisattributeorthePropertyattributemustbeset,butnotbothatthe

Page 762: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

sametime.

Order String ThisattributeshouldonlyneedtobesetifthiselementisnestedunderaUIelementinordertocontroltheorderinwhichthispublisheventwillbestarted.IfthiselementisnestedunderaControlelement,thedefaultvaluewillbeonegreaterthananypreviousPublishelement'sorder(thefirstelement'sdefaultvalueis1).IfthiselementisnestedunderaUIelement,thedefaultvalueisalways1(itdoesnotgetadefaultvaluebasedonanypreviousPublishelements).

Property String Setthisattribute'svaluetoapropertynametosetthatproperty.EitherthisattributeortheEventattributemustbeset,butnotbothatthesametime.

Value String IfthePropertyattributeisspecified,setthevalueofthisattributetothenewvaluefortheproperty.Tosetapropertytonull,donotsetthisattribute(theControlEventArgumentcolumnwillbesetto'{}').Otherwise,thisattribute'svalueshouldbetheargumentfortheeventspecifiedintheEventattribute.Iftheeventdoesn'ttakeanattribute,acommonvaluetouseis"0".

SeeAlsoWixSchema

Page 763: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Version3.5.1623.0

Page 764: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PublishComponentsElement

DescriptionManagestheadvertisementofthecomponentsfromthePublishComponenttable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesPublishComponentsAction

ParentsAdvertiseExecuteSequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 765: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PublishFeaturesElement

DescriptionWriteseachfeature'sstateintothesystemregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesPublishFeaturesAction

ParentsAdvertiseExecuteSequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 766: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PublishProductElement

DescriptionManagestheadvertisementoftheproductinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesPublishProductAction

ParentsAdvertiseExecuteSequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 767: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RadioButtonElement

DescriptionTextorIconplusValuethatisassignedtothePropertyoftheparentControl(RadioButtonGroup).

WindowsInstallerreferencesRadioButtonTable,ControlTable,DialogTable

ParentsRadioButtonGroup

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Bitmap String Thisattributedefinesthebitmapdisplayedwiththeradiobutton.ThevalueoftheattributecreatesareferencetoaBinaryelementthatrepresentsthebitmap.ThisattributeismutuallyexclusivewiththeIconandTextattributes.

Height LocalizableInteger Yes

Help String

Icon String Thisattributedefinestheicondisplayedwiththeradiobutton.Thevalueof

Page 768: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

theattributecreatesareferencetoaBinaryelementthatrepresentstheicon.ThisattributeismutuallyexclusivewiththeBitmapandTextattributes.

Text String Textdisplayedwiththeradiobutton.ThisattributeismutuallyexclusivewiththeBitmapandIconattributes.

ToolTip String

Value String ValueassignedtotheassociatedcontrolPropertywhenthisradiobuttonisselected.

Yes

Width LocalizableInteger Yes

X LocalizableInteger Yes

Y LocalizableInteger Yes

SeeAlsoWixSchema,RadioButtonGroup

Version3.5.1623.0

Page 769: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RadioButtonGroupElement

DescriptionSetofradiobuttonstiedtothespecifiedProperty

WindowsInstallerreferencesRadioButtonTable,ControlTable,DialogTable

ParentsControl,UI

InnerTextNone

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

Attributes

Name Type Description Required

Property String Propertytiedtothisgroup. Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 770: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegisterClassInfoElement

DescriptionManagestheregistrationofCOMclassinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterClassInfoAction

ParentsAdvertiseExecuteSequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 771: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegisterComPlusElement

DescriptionRegistersCOM+applications.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterComPlusAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 772: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegisterExtensionInfoElement

DescriptionManagestheregistrationofextensionrelatedinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterExtensionInfoAction

ParentsAdvertiseExecuteSequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 773: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegisterFontsElement

DescriptionRegistersinstalledfontswiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterFontsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 774: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegisterMIMEInfoElement

DescriptionRegistersMIME-relatedregistryinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterMIMEInfoAction

ParentsAdvertiseExecuteSequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 775: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegisterProductElement

DescriptionRegisterstheproductinformationwiththeinstaller.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterProductAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 776: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegisterProgIdInfoElement

DescriptionManagestheregistrationofOLEProgIdinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterProgIdInfoAction

ParentsAdvertiseExecuteSequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 777: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegisterTypeLibrariesElement

DescriptionRegisterstypelibrarieswiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterTypeLibrariesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 778: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegisterUserElement

DescriptionRegisterstheuserinformationwiththeinstallertoidentifytheuserofaproduct.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterUserAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 779: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegistryElement

DescriptionThiselementhasbeendeprecated;pleaseusetheRegistryValueelementinstead.

WindowsInstallerreferencesRegistryTable

ParentsComponent,Registry

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Permission(min:0,max:unbounded)PermissionEx(min:0,max:unbounded):CanalsoconfiguretheACLsforthisregistrykey.Registry(min:0,max:unbounded)RegistryValue(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

PermissionEx

Attributes

Name Type Description

Action Enumeration Thisistheactionthatwillbetakenforthisregistrykey.Thisattribute'svaluemustbeoneofthefollowing:append

Appendsthespecifiedvalue(s)toamultiStringregistrykey.

Page 780: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

createKeyCreatesthekey,ifabsent,whentheparentcomponentisinstalled.

createKeyAndRemoveKeyOnUninstallCreatesthekey,ifabsent,whentheparentcomponentisinstalledthenremovethekeywithallitsvaluesandsubkeyswhentheparentcomponentisuninstalled.

prependPrependsthespecifiedvalue(s)toamultiStringregistrykey.

removeRemovesaregistrynamewhentheparentcomponentisinstalled.

removeKeyOnInstallRemovesakeywithallitsvaluesandsubkeyswhentheparentcomponentisinstalled.

removeKeyOnUninstallRemovesakeywithallitsvaluesandsubkeyswhentheparentcomponentisuninstalled.

writeWritesaregistryvalue.

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

Key String Thelocalizablekeyfortheregistry

Page 781: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

value.

KeyPath YesNoType Setthisattributeto'yes'tomakethisregistrykeytheKeyPathoftheparentcomponent.Onlyoneresource(registry,file,etc)canbetheKeyPathofacomponent.

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

Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.

Type Enumeration Setthisattributetothetypeofthedesiredregistrykey.ThisattributemustbespecifiedwhenevertheValueattributeorachildRegistryValueelementisspecified.ThisattributeshouldonlybesetwhenthevalueoftheActionattributedoesnotincludetheword'remove'.Thisattribute'svaluemustbeoneofthefollowing:string

Thevalueisinterpretedandstoredasastring(REG_SZ).

integerThevalueisinterpretedandstoredasaninteger(REG_DWORD).

binaryThevalueisinterpretedand

Page 782: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

storedasahexadecimalvalue(REG_BINARY).

expandableThevalueisinterpretedandstoredasanexpandablestring(REG_EXPAND_SZ).

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

Value String Setthisattributetothelocalizableregistryvalue.Thisvalueisformatted.TheWindowsInstallerallowsseveralspecialvaluestobesetforthisattribute.YoushouldnotusetheminWiX.InsteaduseappropriatevaluesintheTypeattributetogetthedesiredbehavior.ThisattributecannotbespecifiediftheActionattribute'svaluecontainstheword'remove'.

SeeAlsoWixSchema

Version3.5.1623.0

Page 783: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegistryKeyElement

DescriptionUsedfororganizationofchildRegistryValueelementsortocreatearegistrykey(andoptionallyremoveitduringuninstallation).

WindowsInstallerreferencesRegistryTable

ParentsComponent,RegistryKey

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Permission(min:0,max:unbounded):ACLpermissionPermissionEx(min:0,max:unbounded):CanalsoconfiguretheACLsforthisregistrykey.RegistryKey(min:0,max:unbounded)RegistryValue(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

PermissionEx

Attributes

Name Type Description Required

Action Enumeration Thisistheactionthatwillbetakenforthisregistryvalue.Thisattribute'svaluemustbeoneofthefollowing:create

Createsthekey,if

Page 784: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

absent,whentheparentcomponentisinstalled.

createAndRemoveOnUninstallCreatesthekey,ifabsent,whentheparentcomponentisinstalledthenremovethekeywithallitsvaluesandsubkeyswhentheparentcomponentisuninstalled.

noneDoesnothing;thiselementisusedmerelyinWiXauthoringfororganizationanddoesnothingtothefinaloutput.Thisisthedefaultvalue.

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

Key String Thelocalizablekeyfortheregistryvalue.IftheparentelementisaRegistryKey,thisvaluemaybeomittedtousethepathoftheparent,orifitsspecifieditwillbeappendedtothepathoftheparent.

Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.

HowTosandExamples

Page 785: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HowTo:ReadaregistryentryduringinstallationHowTo:Writearegistryentryduringinstallation

SeeAlsoWixSchema

Version3.5.1623.0

Page 786: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegistrySearchElement

DescriptionSearchesforfile,directoryorregistrykeyandassignstovalueofparentProperty

WindowsInstallerreferencesRegLocatorTable,SignatureTable

ParentsComplianceCheck,Property

InnerTextNone

ChildrenChoiceofelements(min:0,max:1)

DirectorySearch(min:0,max:1)DirectorySearchRef(min:0,max:1)FileSearch(min:0,max:1)FileSearchRef(min:0,max:1)

Attributes

Name Type Description Required

Id String Signaturetobeusedforthefile,directoryorregistrykeybeingsearchedfor.

Yes

Key String Keyfortheregistryvalue. Yes

Name String Registryvaluename.Ifthisvalueisnull,thenthevaluefromthekey'sunnamedordefaultvalue,ifany,isretrieved.

Root Enumeration Rootkeyfortheregistryvalue.Thisattribute'svaluemustbe

Yes

Page 787: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

oneofthefollowing:HKCR

HKEY_CLASSES_ROOT

HKCUHKEY_CURRENT_USER

HKLMHKEY_LOCAL_MACHINE

HKUHKEY_USERS

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

Theregistryvaluecontainsthepathtoadirectory.

fileTheregistryvaluecontainsthepathtoafile.ToreturnthefullfilepathyoumustaddaFileSearchelementasachildofthiselement;otherwise,theparentdirectoryofthefilepathisreturned.

rawSetstherawvaluefromtheregistryvalue.Pleasenotethatthisvaluewillcontainaprefixasfollows:

DWORDStartswith'#'optionally

Yes

Page 788: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

followedby'+'or'-'.

REG_BINARYStartswith'#x'andtheinstallerconvertsandsaveseachhexadecimaldigit(nibble)asanASCIIcharacterprefixedby'#x'.

REG_EXPAND_SZStartswith'#%'.

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

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

Win64 YesNoType Instructsthesearchtolookinthe64-bitregistrywhenthevalueis'yes'.Whenthevalueis'no',thesearchlooksinthe32-bitregistry.ThedefaultvaluedependsonthevalueofthePackage/@Platformattribute:ifthe@Platformattributevalueis'x86',thedefault@Win64attributevalueis'no';otherwise,thedefaultvalueis'yes'.

Remarks

WhentheTypeattributevalueis'directory'theregistryvaluemust

Page 789: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

HowTosandExamplesHowTo:Readaregistryentryduringinstallation

SeeAlsoWixSchema,ComponentSearch,IniFileSearch

Version3.5.1623.0

Page 790: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegistrySearchRefElement

DescriptionReferencesanexistingRegistrySearchelement.

WindowsInstallerreferencesNone

ParentsProperty

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String SpecifytheIdoftheRegistrySearchtoreference.

Yes

SeeAlsoWixSchema,RegistrySearch

Version3.5.1623.0

Page 791: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegistryValueElement

DescriptionUsedtocreatearegistryvalue.Formulti-stringvalues,thiscanbeusedtoprependorappendvalues.

Forlegacyauthoring:UseseveraloftheseelementstospecifyeachregistryvalueinamultiStringregistryvalue.ThiselementcannotbeusediftheValueattributeisspecifiedunlesstheTypeattributeissetto'multiString'.ThevaluesshouldgointhetextareaoftheRegistryValueelement.

WindowsInstallerreferencesRegistryTable

ParentsComponent,Registry,RegistryKey

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenChoiceofelements(min:0,max:unbounded)

MultiStringValue(min:0,max:unbounded)Permission(min:0,max:unbounded)PermissionEx(min:0,max:unbounded):CanalsoconfiguretheACLsforthisregistryvalue.AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

PermissionEx

Attributes

Name Type Description Required

Action Enumeration Thisistheactionthatwill

Page 792: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

betakenforthisregistryvalue.Thisattribute'svaluemustbeoneofthefollowing:append

Appendsthespecifiedvalue(s)toamultiStringregistryvalue.

prependPrependsthespecifiedvalue(s)toamultiStringregistryvalue.

writeWritesaregistryvalue.Thisisthedefaultvalue.

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

Key String Thelocalizablekeyfortheregistryvalue.IftheparentelementisaRegistryKey,thisvaluemaybeomittedtousethepathoftheparent,orifitsspecifieditwillbeappendedtothepathoftheparent.

KeyPath YesNoType Setthisattributeto'yes'to

Page 793: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

makethisregistrykeytheKeyPathoftheparentcomponent.Onlyoneresource(registry,file,etc)canbetheKeyPathofacomponent.

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

Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.

Type Enumeration Setthisattributetothetypeofthedesiredregistrykey.ThisattributemustbespecifiedwhenevertheValueattributeorachildRegistryValueelementisspecified.ThisattributeshouldonlybesetwhenthevalueoftheActionattributedoesnotincludetheword'remove'.Thisattribute'svaluemustbeoneofthefollowing:string

Thevalueis

Page 794: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

interpretedandstoredasastring(REG_SZ).

integerThevalueisinterpretedandstoredasaninteger(REG_DWORD).

binaryThevalueisinterpretedandstoredasahexadecimalvalue(REG_BINARY).

expandableThevalueisinterpretedandstoredasanexpandablestring(REG_EXPAND_SZ).

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

Value String Setthisattributetothe

Page 795: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

localizableregistryvalue.Thisvalueisformatted.TheWindowsInstallerallowsseveralspecialvaluestobesetforthisattribute.YoushouldnotusetheminWiX.InsteaduseappropriatevaluesintheTypeattributetogetthedesiredbehavior.

HowTosandExamplesHowTo:Writearegistryentryduringinstallation

SeeAlsoWixSchema

Version3.5.1623.0

Page 796: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RemoveDuplicateFilesElement

DescriptionDeletesfilesinstalledbytheDuplicateFilesaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveDuplicateFilesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 797: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RemoveEnvironmentStringsElement

DescriptionModifiesthevaluesofenvironmentvariables.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveEnvironmentStringsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 798: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RemoveExistingProductsElement

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

WindowsInstallerreferencesRemoveExistingProductsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Textnodespecifiestheconditionoftheaction.

ChildrenNone

Attributes

Name Type Description Required

After String Thenameofanactionthatthisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactionina

Page 799: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

sequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 800: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RemoveFileElement

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

WindowsInstallerreferencesRemoveFileTable

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description

Id String Primarykeyusedtoidentifythisparticularentry.

Directory String OverridesthedirectoryoftheparentcomponentwithaspecificDirectory.ThisDirectorymustexistintheinstallerdatabaseatcreationtime.This

Page 801: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

attributecannotbespecifiedinconjunctionwiththePropertyattribute.

LongName WildCardLongFileNameType Thisattributehasbeendeprecated;pleaseusetheNameattributeinstead.

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

Page 802: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ShortNameattributemaybeomittedtoallowWiXtoattempttogenerateauniqueshortfilename.However,ifyouwishtomanuallyspecifytheshortfilename,thentheShortNameattributemaybespecified.

On InstallUninstallType Thisvaluedeterminesthetimeatwhichthefile(s)mayberemoved.For'install',thefilewillberemovedonlywhentheparentcomponentisbeinginstalled(msiInstallStateLocalormsiInstallStateSource);for'uninstall',thefilewillberemovedonlywhentheparentcomponentisbeingremoved(msiInstallStateAbsent);for'both',thefilewillberemovedinbothcases.

Property String Overridesthedirectoryoftheparentcomponentwiththevalueofthespecifiedproperty.Thepropertyshouldhaveavaluethatresolvestothefullpathofthesourcedirectory.Thepropertydoesnothavetoexist

Page 803: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

intheinstallerdatabaseatcreationtime;itcouldbecreatedatinstallationtimebyacustomaction,onthecommandline,etc.ThisattributecannotbespecifiedinconjunctionwiththeDirectoryattribute.

ShortName WildCardShortFileNameType Theshortfilenameofthefilein8.3format.Thisattributeshouldonlybesetifyouwanttomanuallyspecifytheshortfilename.

SeeAlsoWixSchema,CopyFile

Version3.5.1623.0

Page 804: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RemoveFilesElement

DescriptionRemovesfilespreviouslyinstalledbytheInstallFilesaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveFilesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 805: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RemoveFolderElement

DescriptionRemoveanemptyfolderiftheparentcomponentisselectedforinstallationorremoval.Bydefault,thefolderisthedirectoryoftheparentcomponent.ThiscanbeoverriddenbyspecifyingtheDirectoryattributewithavaluecorrespondingtotheIdofthedirectory,orbyspecifyingthePropertyattributewithavaluecorrespondingtoapropertythatwillhaveavaluethatresolvestothefullpathofthefolder.

WindowsInstallerreferencesRemoveFileTable

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Primarykeyusedtoidentifythisparticularentry.

Yes

Directory String OverridesthedirectoryoftheparentcomponentwithaspecificDirectory.ThisDirectorymustexistintheinstallerdatabaseatcreationtime.Thisattributecannotbespecifiedinconjunction

Page 806: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

withthePropertyattribute.

On InstallUninstallType Thisvaluedeterminesthetimeatwhichthefoldermayberemoved,basedontheinstall/uninstalloftheparentcomponent.For'install',thefolderwillberemovedonlywhentheparentcomponentisbeinginstalled(msiInstallStateLocalormsiInstallStateSource);for'uninstall',thefolderwillberemovedonlywhentheparentcomponentisbeingremoved(msiInstallStateAbsent);for'both',thefolderwillberemovedinbothcases.

Yes

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

Page 807: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

attributecannotbespecifiedinconjunctionwiththeDirectoryattribute.

SeeAlsoWixSchema,CreateFolder

Version3.5.1623.0

Page 808: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RemoveFoldersElement

DescriptionRemovesanyfolderslinkedtocomponentssettoberemovedorrunfromsource.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveFoldersAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 809: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RemoveIniValuesElement

DescriptionRemoves.inifileinformationspecifiedforremovalintheRemoveIniFiletableifthecomponentissettobeinstalledlocallyorrunfromsource.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveIniValuesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 810: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RemoveODBCElement

DescriptionRemovesthedatasources,translators,anddriverslistedforremovalduringtheinstallation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveODBCAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 811: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RemoveRegistryKeyElement

DescriptionUsedforremovingregistrykeysandallchildkeyseitherduringinstalloruninstall.

WindowsInstallerreferencesRegistryTable,RemoveRegistryTable

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Action Enumeration Thisistheactionthatwillbetakenforthisregistryvalue.Thisattribute'svaluemustbeoneofthefollowing:removeOnInstall

Removesakeywithallitsvaluesandsubkeyswhentheparentcomponentisinstalled.

removeOnUninstallRemovesakeywithallitsvaluesandsubkeyswhentheparentcomponentisuninstalled.

Page 812: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Key String Thelocalizablekeyfortheregistryvalue.

Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.

SeeAlsoWixSchema

Version3.5.1623.0

Page 813: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RemoveRegistryValueElement

DescriptionUsedtoremovearegistryvalueduringinstallation.Thereisnostandardwaytoremoveasingleregistryvalueduringuninstall(butyoucanremoveanentirekeywithRemoveRegistryKey).

WindowsInstallerreferencesRemoveRegistryTable

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

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

Key String Thelocalizablekeyfortheregistryvalue.IftheparentelementisaRegistryKey,thisvaluemaybeomittedtousethepathoftheparent,orifitsspecifieditwillbeappendedtothepathoftheparent.

Page 814: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.

SeeAlsoWixSchema

Version3.5.1623.0

Page 815: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RemoveRegistryValuesElement

DescriptionRemovesaregistryvaluethathasbeenauthoredintotheregistrytableiftheassociatedcomponentwasinstalledlocallyorasrunfromsource,andisnowsettobeuninstalled.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveRegistryValuesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 816: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RemoveShortcutsElement

DescriptionManagestheremovalofanadvertisedshortcutwhosefeatureisselectedforuninstallationoranonadvertisedshortcutwhosecomponentisselectedforuninstallation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveShortcutsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 817: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ReplacePatchElement

DescriptionApatchthatisdeprecatedbythispatch.

WindowsInstallerreferencesNone

ParentsPatchCreation

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id Guid PatchGUIDtobeunregisteredifitexistsonthemachinetargetedbythispatch.

Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 818: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RequiredPrivilegeElement

DescriptionPrivilegerequiredbyserviceconfiguredbyServiceConfigparent.ValidvaluesareaprivilegeconstantoraFormattedpropertythatresolvestoaprivilegeconstant.

WindowsInstallerreferencesMsiServiceConfigTable

ParentsServiceConfig

SeeAlsoWixSchema

Version3.5.1623.0

Page 819: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ReserveCostElement

DescriptionDiskcosttoreserveinafolderforrunninglocallyand/orfromsource.

WindowsInstallerreferencesReserveCostTable

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String AprimarykeythatuniquelyidentifiesthisReserveCostentry.

Yes

Directory String AddstheamountofdiskspacespecifiedinRunFromSourceorRunLocaltothevolumecostofthedevicecontainingthedirectory.Ifthisattributeisnotset,itwilldefaulttothedirectoryofparentcomponent.

RunFromSource Integer Thenumberofbytesofdiskspacetoreserveifthecomponentisinstalledtorunfromsource.

Yes

Page 820: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RunLocal Integer Thenumberofbytesofdiskspacetoreserveifthecomponentisinstalledtorunlocally.

Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 821: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ResolveSourceElement

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

WindowsInstallerreferencesResolveSourceAction

ParentsAdminExecuteSequence,InstallExecuteSequence,InstallUISequence

InnerText(xs:string)Textnodespecifiestheconditionoftheaction.

ChildrenNone

Attributes

Name Type Description Required

After String Thenameofanactionthatthisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethe

Page 822: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 823: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RMCCPSearchElement

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

WindowsInstallerreferencesRMCCPSearchAction

ParentsInstallExecuteSequence,InstallUISequence

InnerText(xs:string)Textnodespecifiestheconditionoftheaction.

ChildrenNone

Attributes

Name Type Description Required

After String Thenameofanactionthatthisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Overridable YesNoType If"yes",thesequencingof

Page 824: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

thisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,CCPSearch,ComplianceCheck

Version3.5.1623.0

Page 825: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RowElement

DescriptionRowdataforaCustomTable

WindowsInstallerreferencesNone

ParentsCustomTable

InnerTextNone

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

AttributesNone

SeeAlsoWixSchema

Version3.5.1623.0

Page 826: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ScheduleRebootElement

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

WindowsInstallerreferencesScheduleRebootAction

ParentsInstallExecuteSequence,InstallUISequence

InnerText(xs:string)Textnodespecifiestheconditionoftheaction.

ChildrenNone

Attributes

Name Type Description Required

After String Thenameofanactionthatthisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Page 827: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 828: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SelfRegModulesElement

DescriptionProcessesallmoduleslistedintheSelfRegtableandregistersallinstalledmoduleswiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesSelfRegModulesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 829: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SelfUnregModulesElement

DescriptionUnregistersallmoduleslistedintheSelfRegtablethatarescheduledtobeuninstalled.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesSelfUnregModulesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 830: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ServiceArgumentElement

DescriptionArgumentusedinServiceControlparent

WindowsInstallerreferencesServiceControlTable

ParentsServiceControl

SeeAlsoWixSchema

Version3.5.1623.0

Page 831: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ServiceConfigElement

DescriptionConfiguresaservicebeinginstalledoronethatalreadyexists.Thiselement'sfunctionalityisavailablestartingwithMSI5.0.

WindowsInstallerreferencesMsiServiceConfigTable

ParentsComponent,ServiceInstall

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

RequiredPrivilege(min:0,max:unbounded):Listofprivilegestoapplytoservice.

Attributes

Name Type Description Required

DelayedAutoStart String Thisattributespecifieswhetheranauto-startserviceshoulddelayitsstartuntilafterallotherauto-startservices.Thisattributeonlyaffectsauto-startservices.Allowedvaluesare"yes","no"oraFormattedpropertythatresolvesto"1"(for"yes")or"0"(for"no").Ifthisattributeisnotpresentthesettingisnotconfigured.

FailureActionsWhen String Thisattributespecifieswhenfailureactionsshouldbeapplied.Allowedvaluesare

Page 832: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

"failedToStop","failedToStopOrReturnedError"oraFormattedpropertythatresolvesto"1"(for"failedToStopOrReturnedError")or"0"(for"failedToStop").Ifthisattributeisnotpresentthesettingisnotconfigured.

Id String Uniqueidentifierforthisserviceconfiguration.ThisvaluewilldefaulttotheServiceNameattributeifnotspecified.

OnInstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisinstalled.ThisattributemaybecombinedwithOnReinstallandOnUninstall.

OnReinstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisreinstalled.ThisattributemaybecombinedwithOnInstallandOnUninstall.

OnUninstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisuninstalled.ThisattributemaybecombinedwithOnInstallandOnReinstall.

PreShutdownDelay String ThisattributespecifiestimeinmillisecondsthattheServiceControlManager(SCM)waitsafternotifyingtheserviceofasystemshutdown.Ifthisattributeisnotpresentthedefaultvalue,3minutes,isused.

Page 833: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ServiceName String Specifiesthenameoftheservicetoconfigure.ThisvaluewilldefaulttotheServiceInstall/@NameattributewhennestedunderaServiceInstallelement.

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

SeeAlsoWixSchema

Version3.5.1623.0

Page 834: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ServiceConfigFailureActionsElement

DescriptionConfiguresthefailureactionsforaservicebeinginstalledoronethatalreadyexists.Thiselement'sfunctionalityisavailablestartingwithMSI5.0.

WindowsInstallerreferencesMsiServiceConfigFailureActionsTable

ParentsComponent,ServiceInstall

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Failure(min:0,max:unbounded):Orderedlistoffailureactionstoapplytoservice.

Attributes

Name Type Description Required

Command String Thisattributespecifiescommandtoexecutewhena"runCommand"failureactionhit.Ifanemptystringisprovideditclearstheexistingcommand.Ifthisattributeisnotpresentthesettingisnotchanged.

Id String Uniqueidentifierforthisserviceconfiguration.

Page 835: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ThisvaluewilldefaulttotheServiceNameattributeifnotspecified.

OnInstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisinstalled.ThisattributemaybecombinedwithOnReinstallandOnUninstall.

OnReinstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisreinstalled.ThisattributemaybecombinedwithOnInstallandOnUninstall.

OnUninstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisuninstalled.ThisattributemaybecombinedwithOnInstallandOnReinstall.

RebootMessage String Specifiesthemessagetoshowforarebootfailureaction.Ifanemptystringisprovideditclearsanyexistingrebootmessage.Ifthisattributeisnotpresentthesettingisnotchanged.

Page 836: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ResetPeriod String Specifiesthetimeinsecondstoresetthefailurecount.Ifthisattributeisnotpresentthefailurecountwillnotbereset.

ServiceName String Specifiesthenameoftheservicetoconfigure.ThisvaluewilldefaulttotheServiceInstall/@NameattributewhennestedunderaServiceInstallelement.

SeeAlsoWixSchema

Version3.5.1623.0

Page 837: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ServiceControlElement

DescriptionStarts,stops,andremovesservicesforparentComponent.ThiselementisusedtocontrolthestateofaserviceinstalledbytheMSIorMSMfilebyusingthestart,stopandremoveattributes.Forexample,Start='install'Stop='both'Remove='uninstall'wouldmean:starttheserviceoninstall,removetheservicewhentheproductisuninstalled,andstoptheservicebothoninstallanduninstall.

WindowsInstallerreferencesServiceControlTable

ParentsComponent

InnerTextNone

ChildrenSequence(min:1,max:1)1. ServiceArgument(min:0,max:unbounded):Orderedlistof

argumentsusedwhenmodifyingservices.

Attributes

Name Type Description Required

Id String Yes

Name String Nameoftheservice. Yes

Remove InstallUninstallType SpecifieswhethertheserviceshouldberemovedbytheDeleteServicesactiononinstall,uninstallorboth.For'install',theservicewillberemovedonly

Page 838: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

whentheparentcomponentisbeinginstalled(msiInstallStateLocalormsiInstallStateSource);for'uninstall',theservicewillberemovedonlywhentheparentcomponentisbeingremoved(msiInstallStateAbsent);for'both',theservicewillberemovedinbothcases.

Start InstallUninstallType SpecifieswhethertheserviceshouldbestartedbytheStartServicesactiononinstall,uninstallorboth.For'install',theservicewillbestartedonlywhentheparentcomponentisbeinginstalled(msiInstallStateLocalormsiInstallStateSource);for'uninstall',theservicewillbestartedonlywhentheparentcomponentisbeingremoved(msiInstallStateAbsent);for'both',theservicewillbestartedinbothcases.

Stop InstallUninstallType SpecifieswhethertheserviceshouldbestoppedbytheStopServicesactiononinstall,uninstallorboth.For'install',theservice

Page 839: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Wait YesNoType Specifieswhetherornottowaitfortheservicetocompletebeforecontinuing.Thedefaultis'yes'.

SeeAlsoWixSchema

Version3.5.1623.0

Page 840: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ServiceDependencyElement

DescriptionServiceorgroupofservicesthatmuststartbeforetheparentservice.

WindowsInstallerreferencesServiceInstallTable

ParentsServiceInstall

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Thevalueofthisattributeshouldbeoneofthefollowing:1. Thename(notthedisplay

name)ofapreviouslyinstalledservice.

2. AforeignkeyreferringtoanotherServiceInstall/@Id.

3. Agroupofservices(inwhichcasetheGroupattributeshouldbesetto'yes').

Yes

Group YesNoType Setto'yes'toindicatethatthevalueintheIdattributeisthenameofagroupofservices.

SeeAlso

Page 841: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixSchema

Version3.5.1623.0

Page 842: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ServiceInstallElement

DescriptionAddsandremovesservicesforparentComponent.

WindowsInstallerreferencesServiceInstallTable

ParentsComponent

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

PermissionEx(min:0,max:unbounded):ConfigurestheACLsforthisservice.ServiceConfig(min:0,max:unbounded)ServiceConfigFailureActions(min:0,max:unbounded)ServiceDependency(min:0,max:unbounded):orderedlistofdependencieswheninstallingservicesAnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

ServiceConfig

Attributes

Name Type Description Required

Account String Theaccountunderwhichtostarttheservice.ValidonlywhenServiceTypeisownProcess.

Arguments String Containsany

Page 843: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

commandlineargumentsorpropertiesrequiredtoruntheservice.

Description String Setsthedescriptionoftheservice.

DisplayName String Thiscolumnisthelocalizablestringthatuserinterfaceprogramsusetoidentifytheservice.

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

ErrorControl Enumeration Determineswhatactionshouldbetakenonanerror.Thisattribute'svaluemustbeoneofthefollowing:ignore

Logstheerrorandcontinueswiththestartupoperation.

normalLogstheerror,displaysamessageboxandcontinuesthestartupoperation.

critical

Yes

Page 844: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Logstheerrorifitispossibleandthesystemisrestartedwiththelastconfigurationknowntobegood.Ifthelast-known-goodconfigurationisbeingstarted,thestartupoperationfails.

Id String Uniqueidentifierforthisserviceconfiguration.ThisvaluewilldefaulttotheNameattributeifnotspecified.

Interactive YesNoType Whetherornottheserviceinteractswiththedesktop.

LoadOrderGroup String Theloadorderinggroupthatthisserviceshouldbeapartof.

Name String Thiscolumnisthestringthatgivestheservicenametoinstall.

Yes

Password String Thepasswordfortheaccount.Validonlywhentheaccounthasapassword.

Start Enumeration Determineswhentheserviceshouldbestarted.TheWindowsInstallerdoesnot

Yes

Page 845: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

supportbootorsystem.Thisattribute'svaluemustbeoneofthefollowing:auto

Theservicewillstartduringstartupofthesystem.

demandTheservicewillstartwhentheservicecontrolmanagercallstheStartServicefunction.

disabledTheservicecannolongerbestarted.

bootTheserviceisadevicedriverthatwillbestartedbytheoperatingsystembootloader.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.

systemTheserviceisadevicedriverthatwillbestartedbytheIoInitSystemfunction.Thisvalueisnot

Page 846: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

currentlysupportedbytheWindowsInstaller.

Type Enumeration TheWindowsInstallerdoesnotcurrentlysupportkernelDriverorsystemDriverThisattribute'svaluemustbeoneofthefollowing:ownProcess

AWin32servicethatrunsitsownprocess.

shareProcessAWin32servicethatsharesaprocess.

kernelDriverAkerneldriverservice.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.

systemDriverAfilesystemdriverservice.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.

Yes

Vital YesNoType Theoverallinstallshouldfailifthisservicefailstoinstall.

Page 847: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RemarksTheserviceexecutableinstalledwillpointtotheKeyPathfortheComponent.Therefore,youmustensurethatthecorrectexecutableiseitherthefirstchildFileelementunderthisComponentorexplicitlymarktheappropriateFileelementasKeyPath='yes'.

SeeAlsoWixSchema

Version3.5.1623.0

Page 848: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SetDirectoryElement

DescriptionSetsaDirectorytoaparticularvalue.ThisisaccomplishedbycreatingaType51customactionthatisappropriatelyscheduledintheInstallUISequenceandInstallExecuteSequence.

WindowsInstallerreferencesCustomActionTable

ParentsFragment,Module,Product

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

ChildrenNone

Attributes

Name Type Description Required

Id String ThisattributespecifiesareferencetoaDirectoryelementwithmatchingIdattribute.ThepathoftheDirectorywillbesettotheValueattribute.

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

Page 849: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstallUISequence.For'both',theassignmentisscheduledinboththeInstallUISequenceandtheInstallExecuteSequence.Thedefaultisboth.

Value String ThisattributespecifiesastringvaluetoassigntotheDirectory.ThevaluecanbealiteralvalueorderivedfromaPropertyelementusingtheFormattedsyntax.

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

SeeAlsoWixSchema,Custom,CustomActionRef,InstallUISequence,InstallExecuteSequence

Version3.5.1623.0

Page 850: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SetODBCFoldersElement

DescriptionChecksforexistingODBCdriversandsetsthetargetdirectoryforeachnewdrivertothelocationofanexistingdriver.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesSetODBCFoldersAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 851: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SetPropertyElement

DescriptionSetsaPropertytoaparticularvalue.ThisisaccomplishedbycreatingaType51customactionthatisappropriatelyscheduledintheInstallUISequenceandInstallExecuteSequence.

WindowsInstallerreferencesCustomActionTable

ParentsFragment,Module,Product

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

ChildrenNone

Attributes

Name Type Description Required

After String Thenameofthestandardorcustomactionafterwhichthisactionshouldbeperformed.MutuallyexclusivewiththeBeforeattribute.ABeforeorAfterattributeisrequiredwhensettingaProperty.

Before String Thenameofthestandardorcustomactionbeforewhichthisactionshouldbeperformed.MutuallyexclusivewiththeAfterattribute.ABeforeorAfter

Page 852: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

attributeisrequiredwhensettingaProperty.

Id String ThisattributespecifiesthePropertytosettotheValue.

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

Value String ThisattributespecifiesastringvaluetoassigntotheProperty.ThevaluecanbealiteralvalueorderivedfromaPropertyelementusingtheFormattedsyntax.

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

SeeAlsoWixSchema,Custom,CustomActionRef,InstallUISequence,InstallExecuteSequence

Version3.5.1623.0

Page 853: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SFPCatalogElement

DescriptionAddsasystemfileprotectionupdatecatalogfile

WindowsInstallerreferencesSFPCatalogTable

ParentsFragment,Module,Product,SFPCatalog

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

SFPCatalog(min:0,max:unbounded)SFPFile(min:0,max:unbounded):PrimaryKeytoFileTable.

Attributes

Name Type Description Required

Dependency String Usedtodefinedependencyoutsideofthepackage.

Name String Filenameforcatalogfilewheninstalled.

SourceFile String Pathtocatalogfileinbinary.

SeeAlsoWixSchema

Version3.5.1623.0

Page 854: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SFPFileElement

DescriptionProvidesamany-to-manymappingfromtheSFPCatalogtabletotheFiletable

WindowsInstallerreferencesFileSFPCatalogTable

ParentsSFPCatalog

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String PrimaryKeytoFileTable. Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 855: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ShortcutElement

DescriptionShortcut,defaulttargetisparentFile,CreateFolder,orComponent'sDirectory

WindowsInstallerreferencesShortcutTable

ParentsComponent,CreateFolder,File

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Icon(min:0,max:unbounded)ShortcutProperty(min:0,max:unbounded)

Attributes

Name Type Description

Id String Uniqueidentifierfortheshortcut.Thisvaluewillserveastheprimarykeyfortherow.

Advertise YesNoType Specifiesiftheshortcutshouldbeadvertisedornot.Notethatadvertisedshortcutsalwayspointataparticularapplication,identifiedbyaProductCode,andshouldnotbesharedbetweenapplications.Advertisedshortcutsonlyworkforthemostrecentlyinstalledapplication,andareremoved

Page 856: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

whenthatapplicationisremoved.Thedefaultvalueis'no'.

Arguments String Thecommand-lineargumentsfortheshortcut.NotethattheresolutionofpropertiesArgumentsfieldislimited.Apropertyformattedas[Property]inthisfieldcanonlyberesolvedifthepropertyalreadyhastheintendedvaluewhenthecomponentowningtheshortcutisinstalled.Forexample,fortheargument"[#MyDoc.doc]"toresolvetothecorrectvalue,thesameprocessmustbeinstallingthefileMyDoc.docandcomponentthatownstheshortcut.

Description String Thelocalizabledescriptionfortheshortcut.

DescriptionResourceDll String TheFormattedstringprovidingthefullpathtothelanguageneutralfilecontainingtheMUIManifest.Generallyauthoredusing[#filekey]form.Whenthisattributeisspecified,theDescriptionResourceIdattributemustalsobeprovided.

ThisattributeisonlyusedonWindowsVistaandabove.thisattributeisnotspecifiedandtheinstallisrunningonVistaandabove,thevalueintheNameattributeisused.thisattributeisprovidedand

Page 857: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

installisrunningonVistaandabove,thevalueintheNameattributeisignored.

DescriptionResourceId Integer Thedescriptionnameindexfortheshortcut.Thismustbeanon-negativenumber.thisattributeisspecified,DescriptionResourceDllattributemustalsobepopulated.

ThisattributeisonlyusedonWindowsVistaandabove.thisattributeisnotspecifiedandtheinstallisrunningonVistaandabove,thevalueintheNameattributeisused.thisattributeispopulatedandtheinstallisrunningonVistaandabove,thevalueintheNameattributeisignored.

Directory String IdentifierreferencetoDirectoryelementwhereshortcutistobecreated.WhennestedunderaComponentelement,thisattribute'svaluewilldefaulttotheparentdirectory.Otherwise,thisattributeisrequired.

DisplayResourceDll String TheFormattedstringprovidingthefullpathtothelanguageneutralfilecontainingtheMUIManifest.Generallyauthoredusing[#filekey]form.Whenthisattributeisspecified,theDisplayResourceIdattributemustalsobeprovided.

Page 858: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ThisattributeisonlyusedonWindowsVistaandabove.thisattributeisnotpopulatedandtheinstallisrunningonVistaandabove,thevalueintheNameattributeisused.thisattributeispopulatedandtheinstallisrunningonVistaandabove,thevalueintheNameattributeisignored.

DisplayResourceId Integer Thedisplaynameindexfortheshortcut.Thismustbeanon-negativenumber.Whenthisattributeisspecified,theDisplayResourceDllattributemustalsobeprovided.

ThisattributeisonlyusedonWindowsVistaandabove.thisattributeisnotspecifiedandtheinstallisrunningonVistaandabove,thevalueintheNameattributeisused.thisattributeisspecifiedandtheinstallisrunningonVistaandabove,thevalueintheNameattributeisignored.

Hotkey Integer Thehotkeyfortheshortcut.Thelow-orderbytecontainsthevirtual-keycodeforthekey,andthehigh-orderbytecontainsmodifierflags.Thismustbeanon-negativenumber.Authorsofinstallationpackagesaregenerallyrecommendnottosetthisoption,becausethiscanaddduplicatehotkeystoausersdesktop.Inaddition,the

Page 859: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

practiceofassigninghotkeystoshortcutscanbeproblematicforusersusinghotkeysforaccessibility.

Icon String IdentifierreferencetoIconelement.TheIconidentifiershouldhavethesameextensionasthefilethatitpointsat.Forexample,ashortcuttoanexecutable(e.g."my.exe")shouldreferenceanIconwithidentifierlike"MyIcon.exe"

IconIndex Integer IdentifierreferencetoIconelement.

LongName LongFileNameType Thisattributehasbeendeprecated;pleaseusetheNameattributeinstead.

Name LongFileNameType InpriorversionsoftheWiXtoolset,thisattributespecifiedtheshortname.Thisattribute'svaluemaynowbeeitherashortorlongname.Ifashortnameisspecified,theShortNameattributemaynotbespecified.alongnameisspecified,theLongNameattributemaynotbespecified.Also,ifthisvalueisalongname,theShortNameattributemaybeomittedtoallowWiXtoattempttogenerateauniqueshortname.However,ifthisnamecollideswithanothershortcutoryouwishtomanuallyspecifyshortname,thenthe

Page 860: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ShortNameattributemaybespecified.

ShortName ShortFileNameType Theshortnameoftheshortcutin8.3format.Thisattributeshouldonlybesetifthereisaconflictbetweengeneratedshortnamesortheuserwantstomanuallyspecifytheshortname.

Show Enumeration Thisattribute'svaluemustbeoneofthefollowing:normal

TheshortcuttargetwillbedisplayedusingtheSW_SHOWNORMALattribute.

minimizedTheshortcuttargetwillbedisplayedusingtheSW_SHOWMINNOACTIVEattribute.

maximizedTheshortcuttargetwillbedisplayedusingtheSW_SHOWMAXIMIZEDattribute.

Target String ThisattributecanonlybesetifthisShortcutelementisnestedunderaComponentelement.WhennestedunderaComponentelement,thisattribute'svaluewilldefaulttotheparentdirectory.Thisattribute'svalueisthetargetforanon-advertisedshortcut.

Page 861: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

WorkingDirectory String Directoryidentifier(orPropertyidentifierthatresolvestoadirectory)thatresolvespathoftheworkingdirectoryfortheshortcut.

HowTosandExamplesHowTo:CreateashortcutontheStartMenu

SeeAlsoWixSchema

Version3.5.1623.0

Page 862: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ShortcutPropertyElement

DescriptionPropertyvaluesforashortcut.Thiselement'sfunctionalityisavailablestartingwithMSI5.0.

WindowsInstallerreferencesMsiShortcutPropertyTable

ParentsShortcut

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Id String UniqueidentifierforMsiShortcutPropertytable.Ifomitted,astableidentifierwillbegeneratedfromtheparentshortcutidentifierandKeyvalue.

Key String Aformattedstringidentifyingthepropertytobeset.

Yes

Value String Aformattedstringsupplyingthevalueoftheproperty.

SeeAlsoWixSchema,Shortcut

Version3.5.1623.0

Page 863: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ShowElement

DescriptionNone

WindowsInstallerreferencesNone

ParentsAdminUISequence,InstallUISequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

After String

Before String

Dialog String Yes

OnExit ExitType mutuallyexclusivewithBefore,After,andSequenceattributes

Overridable YesNoType If"yes",thesequencingofthisdialogmaybeoverriddenbysequencingelsewhere.

Sequence Integer

SeeAlsoWixSchema

Version3.5.1623.0

Page 864: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

StartServicesElement

DescriptionStartssystemservices.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesStartServicesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 865: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

StopServicesElement

DescriptionStopssystemservices.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesStopServicesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 866: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SubscribeElement

DescriptionSetsattributesforeventsintheEventMappingtable

WindowsInstallerreferencesEventMappingTable

ParentsControl

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Attribute String ifnotpresentcanonlyhandleenable,disable,hide,unhideevents

Event String mustbeoneofthestandardcontrolevents'

SeeAlsoWixSchema

Version3.5.1623.0

Page 867: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SubstitutionElement

DescriptionSpecifiestheconfigurablefieldsofamoduledatabaseandprovidesatemplatefortheconfigurationofeachfield.

WindowsInstallerreferencesNone

ParentsModule

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Column String SpecifiesthetargetcolumnintherownamedintheRowcolumn.

Yes

Row String SpecifiestheprimarykeysofthetargetrowinthetablenamedintheTablecolumn.Ifmultiplekeys,separatedbysemicolons.

Yes

Table String Specifiesthenameofthetablebeingmodifiedinthemoduledatabase.

Yes

Value String ProvidesaformattingtemplateforthedatabeingsubstitutedintothetargetfieldspecifiedbyTable,Row,andColumn.

SeeAlso

Page 868: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixSchema

Version3.5.1623.0

Page 869: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SymbolPathElement

DescriptionApathtosymbols.

WindowsInstallerreferencesNone

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

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Path String Thepath. Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 870: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

TargetFileElement

DescriptionInformationaboutspecificfilesinatargetimage.

WindowsInstallerreferencesNone

ParentsTargetImage

InnerTextNone

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

IgnoreRange(min:0,max:unbounded)ProtectRange(min:0,max:unbounded)

Attributes

Name Type Description Required

Id String ForeignkeyintotheFiletable. Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 871: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

TargetImageElement

DescriptionContainsinformationaboutthetargetimagesoftheproduct.

WindowsInstallerreferencesNone

ParentsUpgradeImage

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

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

Attributes

Name Type Description Required

Id String Identifierforthetargetimage.

Yes

IgnoreMissingFiles YesNoType Filesmissingfromthetargetimageareignoredbytheinstaller.

Order Int Relativeorderofthetargetimage.

Yes

SourceFile String Fullpathtothelocationofthemsifileforthetargetimage.

src String Thisattributehasbeendeprecated;please

Page 872: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

usetheSourceFileattributeinstead.

Validation String Productcheckingtoavoidapplyingirrelevanttransforms.

SeeAlsoWixSchema

Version3.5.1623.0

Page 873: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

TargetProductCodeElement

DescriptionAproductcodeforaproductthatcanacceptthepatch.

WindowsInstallerreferencesNone

ParentsPatchCreation,TargetProductCodes

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Theproductcodeforaproductthatcanacceptthepatch.Thiscanbe'*'.Seeremarksformoreinformation.

Yes

Remarks

WhenusingthePatchCreationelement,iftheIdattributevalueis'*'orthiselementisnotauthored,theproductcodesofallproductsreferencedbytheTargetImageselementareused.

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

SeeAlsoWixSchema

Version3.5.1623.0

Page 874: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

TargetProductCodesElement

DescriptionTheproductcodesforproductsthatcanacceptthepatch.

WindowsInstallerreferencesNone

ParentsPatch

InnerTextNone

ChildrenChoiceofelements(min:1,max:unbounded)

TargetProductCode(min:1,max:unbounded)

Attributes

Name Type Description Required

Replace YesNoType Whethertoreplacetheproductcodesthatcanacceptthepatchfromthetargetpackageswiththechildelements.

SeeAlsoWixSchema

Version3.5.1623.0

Page 875: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

TextElement

DescriptionAnalternativetousingtheTextattributewhenthevaluecontainsspecialXMLcharacterslike<,>,or&.

WindowsInstallerreferencesNone

ParentsControl

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

SourceFile String Instructsthetexttobeimportedfromafileinsteadoftheelementvalueduringthebindingprocess.

src String Thisattributehasbeendeprecated;pleaseusetheSourceFileattributeinstead.

SeeAlsoWixSchema

Version3.5.1623.0

Page 876: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

TextStyleElement

DescriptionNone

WindowsInstallerreferencesTextStyleTable

ParentsUI

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

Blue Integer 0to255

Bold YesNoType

FaceName String Yes

Green Integer 0to255

Italic YesNoType

Red Integer 0to255

Size String Yes

Strike YesNoType

Underline YesNoType

SeeAlso

Page 877: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixSchema

Version3.5.1623.0

Page 878: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

TypeLibElement

DescriptionRegisteratypelibrary(TypeLib).Pleasenotethatinordertoproperlyusethisnon-advertised,youwillneedusethiselementwithAdvertise='no'andalsoauthortheappropriatechildInterfaceelementsbyextractingthemfromthetypelibraryitself.

WindowsInstallerreferencesTypeLibTable,RegistryTable

ParentsComponent,File

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

AppId(min:0,max:unbounded)Class(min:0,max:unbounded)Interface(min:0,max:unbounded)

Attributes

Name Type Description Required

Id Guid TheGUIDthatidentifesthetypelibrary.

Yes

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

Control YesNoType Valueof'yes'meansthetypelibrarydescribescontrols,andshouldnotbe

Page 879: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

displayedintypebrowsersintendedfornonvisualobjects.ThisattributecanonlybesetifAdvertise='no'.

Cost Int Thecostassociatedwiththeregistrationofthetypelibraryinbytes.ThisattributecannotbesetifAdvertise='no'.

Description String Thelocalizabledescriptionofthetypelibrary.

HasDiskImage YesNoType Valueof'yes'meansthetypelibraryexistsinapersistedformondisk.ThisattributecanonlybesetifAdvertise='no'.

HelpDirectory String TheidentifieroftheDirectoryelementforthehelpdirectory.

Hidden YesNoType Valueof'yes'meansthetypelibraryshouldnotbedisplayedtousers,althoughitsuseisnotrestricted.Shouldbeusedbycontrols.Hostsshouldcreateanewtypelibrarythatwrapsthecontrolwithextendedproperties.ThisattributecanonlybesetifAdvertise='no'.

Language Integer Thelanguageofthetypelibrary.Thismustbeanon-negativeinteger.

Yes

Page 880: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

MajorVersion Integer Themajorversionofthetypelibrary.Thevalueshouldbeanintegerfrom0-255.

MinorVersion Integer Theminorversionofthetypelibrary.Thevalueshouldbeanintegerfrom0-255.

ResourceId Integer Theresourceidofatypelib.Thevalueisappendedtotheendofthetypelibpathintheregistry.

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

SeeAlsoWixSchema

Version3.5.1623.0

Page 881: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UIElement

DescriptionEnclosingelementtocompartmentalizeUIspecifications.

WindowsInstallerreferencesNone

ParentsFragment,Module,Product

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

BillboardAction(min:0,max:unbounded):BillboardtableitemwithchildControlsBinary(min:0,max:unbounded)ComboBox(min:0,max:unbounded):ComboBoxtablewithListItemchildrenDialog(min:0,max:unbounded):Dialogspecification,calledfromSequenceDialogRef(min:0,max:unbounded):ReferencetoaDialogspecification.EmbeddedUI(min:0,max:unbounded):EmbeddedUIdefinitionwithEmbeddedResourcechildren.Error(min:0,max:unbounded):ErrortextassociatedwithinstallerrorListBox(min:0,max:unbounded):ListBoxtablewithListItemchildrenListView(min:0,max:unbounded):ListViewtablewithListItemchildrenProgressText(min:0,max:unbounded):ActionTextentryassociatedwithanaction

Page 882: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Property(min:0,max:unbounded)PropertyRef(min:0,max:unbounded)Publish(min:0,max:unbounded)RadioButtonGroup(min:0,max:unbounded):RadioButtontablewithRadioButtonchildrenTextStyle(min:0,max:unbounded):TextStyleentryforuseincontroltextUIRef(min:0,max:unbounded)UIText(min:0,max:unbounded):valuesforUITextproperty,notinstallerPropertySequence(min:1,max:1)1. AdminUISequence(min:0,max:1)2. InstallUISequence(min:0,max:1)

Attributes

Name Type Description Required

Id String

SeeAlsoWixSchema,UIRef

Version3.5.1623.0

Page 883: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UIRefElement

DescriptionReferencetoaUIelement.ThiswillforcetheentirereferencedFragment'scontentstobeincludedintheinstallerdatabase.

WindowsInstallerreferencesNone

ParentsFragment,Module,PatchFamily,Product,UI

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

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

SeeAlsoWixSchema,UI

Version3.5.1623.0

Page 884: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UITextElement

DescriptionTextassociatedwithcertaincontrols

WindowsInstallerreferencesUITextTable

ParentsUI

InnerText(xs:string)Elementvalueistext,mayuseCDATAifneededtoescapeXMLdelimiters

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 885: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UnpublishComponentsElement

DescriptionManagestheunadvertisementofcomponentslistedinthePublishComponenttable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnpublishComponentsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 886: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UnpublishFeaturesElement

DescriptionRemovesselection-stateandfeature-componentmappinginformationfromtheregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnpublishFeaturesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 887: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UnregisterClassInfoElement

DescriptionManagestheremovalofCOMclassinformationfromthesystemregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterClassInfoAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 888: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UnregisterComPlusElement

DescriptionRemovesCOM+applicationsfromtheregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterComPlusAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 889: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UnregisterExtensionInfoElement

DescriptionManagestheremovalofextension-relatedinformationfromthesystemregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterExtensionInfoAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 890: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UnregisterFontsElement

DescriptionRemovesregistrationinformationaboutinstalledfontsfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterFontsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 891: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UnregisterMIMEInfoElement

DescriptionUnregistersMIME-relatedregistryinformationfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterMIMEInfoAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 892: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UnregisterProgIdInfoElement

DescriptionManagestheunregistrationofOLEProgIdinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterProgIdInfoAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 893: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UnregisterTypeLibrariesElement

DescriptionUnregisterstypelibrariesfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterTypeLibrariesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 894: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UpgradeElement

DescriptionUpgradeinfoforaparticularUpgradeCode

WindowsInstallerreferencesUpgradeTable

ParentsFragment,Product

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Property(min:0,max:unbounded):NestingaPropertyelementunderanUpgradeelementhasbeendeprecated.PleasenestPropertyelementsinanyoftheothersupportedlocations.UpgradeVersion(min:0,max:unbounded)

Attributes

Name Type Description Required

Id Guid ThisvaluespecifiestheupgradecodefortheproductsthataretobedetectedbytheFindRelatedProductsaction.

Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 895: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UpgradeFileElement

DescriptionSpecifiesfilestoeitherignoreortospecifyoptionaldataaboutafile.

WindowsInstallerreferencesNone

ParentsUpgradeImage

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

SymbolPath(min:0,max:unbounded)

Attributes

Name Type Description Required

AllowIgnoreOnError YesNoType Specifieswhetherpatchingthisfileisvital.

File String ForeignkeyintotheFiletable.

Yes

Ignore YesNoType Ifyes,thefileisignoredduringpatching,andthenexttwoattributesareignored.

Yes

WholeFile YesNoType Whetherthewholefileshouldbeinstalled,ratherthancreatingabinary

Page 896: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

patch.

SeeAlsoWixSchema

Version3.5.1623.0

Page 897: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UpgradeImageElement

DescriptionContainsinformationabouttheupgradedimagesoftheproduct.

WindowsInstallerreferencesNone

ParentsFamily

InnerTextNone

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

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

Attributes

Name Type Description Required

Id String Identifiertoconnecttargetimageswithupgradedimage.

Yes

SourceFile String Fullpathtolocationofmsifileforupgradedimage.

SourcePatch String Modifiedcopyoftheupgradedinstallationdatabasethatcontainsadditionalauthoringspecifictopatching.

src String Thisattributehasbeendeprecated;pleaseusetheSourceFileattributeinstead.

Page 898: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

srcPatch String Thisattributehasbeendeprecated;pleaseusetheSourcePatchattributeinstead.

SeeAlsoWixSchema

Version3.5.1623.0

Page 899: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UpgradeVersionElement

DescriptionNone

WindowsInstallerreferencesUpgradeTable

ParentsUpgrade

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

ExcludeLanguages YesNoType Setto"yes"todetectalllanguages,excludingthelanguageslistedintheLanguageattribute.

IgnoreRemoveFailure YesNoType Setto"yes"tocontinueinstallationuponfailuretoremoveaproductorapplication.

IncludeMaximum YesNoType Setto"yes"tomaketherangeofversionsdetectedincludethevaluespecifiedinMaximum.

IncludeMinimum YesNoType Setto"no"tomaketherangeofversionsdetectedexcludethe

Page 900: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

valuespecifiedinMinimum.Thisattributeis"yes"bydefault.

Language String SpecifiesthesetoflanguagesdetectedbyFindRelatedProducts.Enteralistofnumericlanguageidentifiers(LANGID)separatedbycommas(,).Leavethisvaluenulltospecifyalllanguages.SetExcludeLanguagesto"yes"inorderdetectalllanguages,excludingthelanguageslistedinthisvalue.

Maximum String SpecifiestheupperboundaryoftherangeofproductversionsdetectedbyFindRelatedProducts.

MigrateFeatures YesNoType Setto"yes"tomigratefeaturestatesfromupgradedproductsbyenablingthelogicintheMigrateFeatureStatesaction.

Minimum String SpecifiesthelowerboundontherangeofproductversionstobedetectedbyFindRelatedProducts.

OnlyDetect YesNoType Setto"yes"todetectproductsandapplicationsbutdonot

Page 901: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

uninstall.

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

Yes

RemoveFeatures String TheinstallersetstheREMOVEpropertytofeaturesspecifiedinthiscolumn.Thefeaturestoberemovedcanbe

Page 902: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

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

SeeAlsoWixSchema

Version3.5.1623.0

Page 903: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UXElement

DescriptionContainsalltherelevantinformationaboutthesetupUI.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)

Attributes

Name Type Description Required

Name String ThedestinationpathandfilenameforthisUXpayload.Thedefaultisthesourcefilename.UsethisattributetorenametheUXentrypointorextractitintoasubfolder.

SourceFile String TheentrypointoftheUX.

SeeAlsoWixSchema

Version3.5.1623.0

Page 904: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ValidateElement

DescriptionSetsinformationinthepatchtransformthatdeterminesifthetransformappliestoaninstalledproductandwhaterrorsshouldbeignoredwhenapplyingthepatchtransform.

WindowsInstallerreferencesNone

ParentsPatchBaseline

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

IgnoreAddExistingRow YesNoType Ignoreerrorswhenaddingexistingrows.Thedefaultis'yes'.

IgnoreAddExistingTable YesNoType Ignoreerrorswhenaddingexistingtables.Thedefaultis'yes'.

IgnoreChangingCodePage YesNoType Ignoreerrorswhenchangingthedatabasecodepage.Thedefaultis'no'.

IgnoreDeleteMissingRow YesNoType Ignoreerrorswhen

Page 905: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

deletingmissingrows.Thedefaultis'yes'.

IgnoreDeleteMissingTable YesNoType Ignoreerrorswhendeletingmissingtables.Thedefaultis'yes'.

IgnoreUpdateMissingRow YesNoType Ignoreerrorswhenupdatingmissingrows.Thedefaultis'yes'.

ProductId YesNoType RequiresthattheinstalledProductCodematchthetargetProductCodeusedtocreatethetransform.Thedefaultis'yes'.

ProductLanguage YesNoType RequiresthattheinstalledProductLanguagematchthetargetProductLanguageusedtocreatethetransform.Thedefaultis'no'.

ProductVersion Enumeration DetermineshowmanyfieldsoftheinstalledProductVersiontocompare.Seeremarksformoreinformation.Thedefaultis'Update'.Thisattribute's

Page 906: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

valuemustbeoneofthefollowing:Major

Checksthemajorversion.

MinorChecksthemajorandminorversions.

UpdateChecksthemajor,minor,andupdateversions.

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

InstalledProductVersion<targetProductVersion.

LesserOrEqualInstalledProductVersion

Page 907: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

<=targetProductVersion.

EqualInstalledProductVersion=targetProductVersion.

GreaterOrEqualInstalledProductVersion>=targetProductVersion.

GreaterInstalledProductVersion>targetProductVersion.

UpgradeCode YesNoType RequiresthattheinstalledUpgradeCodematchthetargetUpgradeCodeusedtocreatethetransform.Thedefaultis'yes'.

Remarks

Atransformcontainsthedifferencesbetweenthetargetproductandtheupgradedproduct.Whenatransformorapatch(whichcontainstransforms)isapplied,thefollowingpropertiesoftheinstalledproductarevalidatedagainstthepropertiesofthetargetproductstoredinatransform.

ProductCodeProductLanguageProductVersion

Page 908: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UpgradeCode

WindowsInstallersimplyvalidatesthattheProductCode,ProductLanguage,andUpgradeCodeofaninstalledproductareequivalenttothosepropetiesofthetargetproductusedtocreatethetransform;however,theProductVersioncanbevalidatedwithagreaterrangeofcomparisons.

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

SeeAlsoWixSchema

Version3.5.1623.0

Page 909: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ValidateProductIDElement

DescriptionSetstheProductIDpropertytothefullproductidentifier.ThisactionmustbesequencedbeforetheuserinterfacewizardintheInstallUISequencetableandbeforetheRegisterUseractionintheInstallExecuteSequencetable.Iftheproductidentifierhasalreadybeenvalidatedsuccessfully,theValidateProductIDactiondoesnothing.TheValidateProductIDactionalwaysreturnsasuccess,whetherornottheproductidentifierisvalid,sothattheproductidentifiercanbeenteredonthecommandlinethefirsttimetheproductisrun.TheproductidentifiercanbevalidatedwithouthavingtheuserreenterthisinformationbysettingthePIDKEYpropertyonthecommandlineorbyusingatransform.ThedisplayofthedialogboxrequestingtheusertoentertheproductidentifiercanthenbemadeconditionaluponthepresenceoftheProductIDproperty,whichissetwhenthePIDKEYpropertyisvalidated.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesValidateProductIDAction

ParentsInstallExecuteSequence,InstallUISequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Page 910: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 911: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VariableElement

DescriptionDescribesaburnenginevariabletodefine.

WindowsInstallerreferencesNone

ParentsBundle

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Name String Thenameforthevariable. Yes

Type Enumeration Typeofthevariable,inferredfromthevalueifnotspecified.Thisattribute'svaluemustbeoneofthefollowing:string

numeric

version

Value String Startingvalueforthevariable. Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 912: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VerbElement

DescriptionVerbdefinitionforanExtension.Whenadvertised,thiselementcreatesarowintheVerbtable.Whennotadvertised,thiselementcreatestheappropriaterowsinRegistrytable.

WindowsInstallerreferencesVerbTable,RegistryTable

ParentsExtension

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Theverbforthecommand. Yes

Argument String Valueforthecommandarguments.NotethattheresolutionofpropertiesintheArgumentfieldislimited.Apropertyformattedas[Property]inthisfieldcanonlyberesolvedifthepropertyalreadyhastheintendedvaluewhenthecomponentowningtheverbisinstalled.Forexample,fortheargument"[#MyDoc.doc]"toresolvetothecorrectvalue,thesameprocessmustbeinstallingthe

Page 913: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

fileMyDoc.docandthecomponentthatownstheverb.

Command String Thelocalizedtextdisplayedonthecontextmenu.

Sequence Integer Thesequenceofthecommands.OnlyverbsforwhichtheSequenceisspecifiedareusedtoprepareanorderedlistforthedefaultvalueoftheshellkey.TheVerbwiththelowestvalueinthiscolumnbecomesthedefaultverb.UsedonlyforAdvertisedverbs.

Target String Thisattributehasbeendeprecated;pleaseusetheTargetFileattributeinstead.

TargetFile String EitherthisattributeortheTargetPropertyattributemustbespecifiedforanon-advertisedverb.Thevalueshouldbetheidentifierofthetargetfiletobeexecutedfortheverb.

TargetProperty String EitherthisattributeortheTargetFileattributemustbespecifiedforanon-advertisedverb.Thevalueshouldbetheidentifierofthepropertywhichwillresolvetothepathtothetargetfiletobeexecutedfortheverb.

SeeAlsoWixSchema

Page 914: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Version3.5.1623.0

Page 915: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixElement

DescriptionThisisthetop-levelcontainerelementforeverywxsfile.Amongthepossiblechildren,theBundle,Product,Module,Patch,andPatchCreationelementsareanalogoustothemainfunctioninaCprogram.Therecanonlybeoneofthesepresentwhenlinkingoccurs.Productcompilesintoanmsifile,Modulecompilesintoanmsmfile,PatchCreationcompilesintoapcpfile.TheFragmentelementisanatomicunitwhichultimatelylinksintoeitheraProduct,Module,orPatchCreation.TheFragmentcaneitherbecompletelyincludedorexcludedduringlinking.

WindowsInstallerreferencesNone

ParentsNone

InnerTextNone

ChildrenChoiceofelements(min:0,max:1)

PatchCreation(min:0,max:1)Sequence(min:1,max:1)1. Choiceofelements(min:0,max:1)

Bundle(min:0,max:1)Module(min:0,max:1)Patch(min:0,max:1)Product(min:0,max:1)

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

Attributes

Name Type Description

Page 916: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RequiredVersion VersionType RequiredversionoftheWiXtoolsettocompilethisinputfile.

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

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

SeeAlsoWixSchema

Version3.5.1623.0

Page 917: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixVariableElement

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

WindowsInstallerreferencesNone

ParentsFragment,Module,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Thenameofthevariable. Yes

Overridable YesNoType Setthisvalueto'yes'inordertomakethevariable'svalueoverridableeitherbyanotherWixVariableentryorviathecommand-lineoption-d<name>=<value>forlight.exe.Ifthesamevariableisdeclaredoverridableinmultipleplacesitwillcauseanerror(sinceWiXwon'tknowwhichvalueiscorrect).

Page 918: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Thedefaultvalueis'no'.

Value String Thevalueofthevariable.Thevaluecannotbeanemptystringbecausethatwouldmakeitpossibletoaccidentallysetacolumntonull.

Yes

SeeAlsoWixSchema

Version3.5.1623.0

Page 919: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WriteEnvironmentStringsElement

DescriptionModifiesthevaluesofenvironmentvariables.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesWriteEnvironmentStringsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 920: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WriteIniValuesElement

DescriptionWritesthe.inifileinformationthattheapplicationneedswrittentoits.inifiles.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesWriteIniValuesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 921: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WriteRegistryValuesElement

DescriptionSetsupanapplication'sregistryinformation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesWriteRegistryValuesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Version3.5.1623.0

Page 922: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AutogenGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.

SeeAlsoWixSchema

Page 923: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComponentGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.

SeeAlsoWixSchema

Page 924: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ExitType(SimpleType)

DescriptionTODO:Whatdoesthistypemean?

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoWixSchema

Page 925: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Guid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoWixSchema

Page 926: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

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

SeeAlsoWixSchema

Page 927: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoWixSchema

Page 928: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LocalizableInteger(SimpleType)

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

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

SeeAlsoWixSchema

Page 929: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoWixSchema

Page 930: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoWixSchema

Page 931: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,execute,ui}

SeeAlsoWixSchema

Page 932: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoWixSchema

Page 933: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VersionType(SimpleType)

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

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

SeeAlsoWixSchema

Page 934: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WildCardLongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoWixSchema

Page 935: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WildCardShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoWixSchema

Page 936: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoWixSchema

Page 937: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoWixSchema

Page 938: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixlocSchema

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

SchemafordescribingWindowsInstallerXmlLocalizationfiles(.wxl).

RootElementWixLocalization

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

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

Version3.5.1623.0

Page 939: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

StringElement

DescriptionNone

WindowsInstallerreferencesNone

ParentsWixLocalization

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Id String Identityoftheresource.

Yes

Localizable LocalizationYesNoType Indicateswhetherthestringislocalizabletextoranon-localizablestringthatmustbeuniqueperlocale.NoWiXtoolsareaffectedbythevalueofthisattribute;itusedasdocumentationforlocalizerstoignorethingslikeGUIDsor

Page 940: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

identifiersthatlookliketext.

Overridable LocalizationYesNoType Determinesifthelocalizedstringmaybeoverridden.

HowTosandExamplesHowTo:BuildalocalizedversionofyourinstallerHowTo:Makeyourinstallerlocalizable

SeeAlsoWixlocSchema

Version3.5.1623.0

Page 941: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WixLocalizationElement

DescriptionNone

WindowsInstallerreferencesNone

ParentsNone

InnerTextNone

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

Attributes

Name Type Description Required

Codepage String Thecodepageintegervalueorwebnamefortheresultingdatabase.Youcanalsospecify-1whichwillnotresetthedatabasecodepage.Seeremarksformoreinformation.

Culture String Cultureofthelocalizationstrings. Yes

Remarks

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

HowTosandExamplesHowTo:Buildalocalizedversionofyourinstaller

Page 942: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HowTo:Makeyourinstallerlocalizable

SeeAlsoWixlocSchema

Version3.5.1623.0

Page 943: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LocalizationYesNoType(SimpleType)

DescriptionNone

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoWixlocSchema

Page 944: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComplusSchema

Copyright(c)MicrosoftCorporation.Allrightsreserved.

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

Youmustnotremovethisnotice,oranyother,fromthissoftware.

ThesourcecodeschemafortheWindowsInstallerXMLToolsetCOM+Extension.

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

ChildElementsComPlusApplicationComPlusApplicationRoleComPlusAssemblyComPlusAssemblyDependencyComPlusComponentComPlusGroupInApplicationRoleComPlusGroupInPartitionRoleComPlusInterfaceComPlusMethodComPlusPartitionComPlusPartitionRoleComPlusPartitionUserComPlusRoleForComponentComPlusRoleForInterface

Page 945: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComPlusRoleForMethodComPlusSubscriptionComPlusUserInApplicationRoleComPlusUserInPartitionRole

Version3.5.1623.0

Page 946: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComPlusApplicationElement(ComplusExtension)

DescriptionDefinesaCOM+application.IfthiselementisadescendentofaComponentelement,theapplicationwillbecreatedinassociationwiththiscomponent.IftheelementisachildofanyoftheFragment,ModuleorProductelementsitisconsideredtobealocater,referencinganexistingapplication.

IftheelementisachildofaComPlusPartitionelement,orhaveitsPartitionattributeset,theapplicationwillbeinstalledunderthereferencedpartition.

WindowsInstallerreferencesNone

ParentsComPlusPartition,Component,Fragment,Module,Product

InnerTextNone

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

ComPlusApplicationRole(min:0,max:unbounded)ComPlusAssembly(min:0,max:unbounded)

Attributes

Name Type Description

Id String Identifierfortheelement.

AccessChecksLevel Enumeration Thisattribute'svaluemustbeoneofthefollowing:

Page 947: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

applicationLevel

applicationComponentLevel

Activation Enumeration Thisattribute'svaluemustbeoneofthefollowing:inproc

local

ApplicationAccessChecksEnabled YesNoType

ApplicationDirectory String

ApplicationId String Idfortheapplication.Thisattributecanbeomitted,inwhichcaseanidwillbegeneratedoninstall.Iftheelementisalocater,attributecanbeomittedifavalueisprovidedfortheNameattribute.

Authentication Enumeration Thisattribute'svaluemustbeoneofthefollowing:default

none

connect

call

packet

integrity

privacy

AuthenticationCapability Enumeration Thisattribute'svaluemustbeoneofthefollowing:none

secureReference

Page 948: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

staticCloaking

dynamicCloaking

Changeable YesNoType

CommandLine String

ConcurrentApps Int

CreatedBy String

CRMEnabled YesNoType

CRMLogFile String

Deleteable YesNoType

Description String

DumpEnabled YesNoType

DumpOnException YesNoType

DumpOnFailfast YesNoType

DumpPath String

EventsEnabled YesNoType

Identity String

ImpersonationLevel Enumeration Thisattribute'svaluemustbeoneofthefollowing:anonymous

identify

impersonate

delegate

IsEnabled YesNoType

MaxDumpCount Int

Name String Nameoftheapplication.

Page 949: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Thisattributecanbeomittediftheelementisalocater,andavalueisprovidedforthePartitionIdattribute.

Partition String IftheelementisnotachildofaComPlusPartitionelement,thisattributecanbeprovidedwiththeidofaComPlusPartitionelementrepresentingthepartitiontheapplicationbelongsto.

Password String

QCAuthenticateMsgs Enumeration Thisattribute'svaluemustbeoneofthefollowing:secureApps

off

on

QCListenerMaxThreads Int

QueueListenerEnabled YesNoType

QueuingEnabled YesNoType

RecycleActivationLimit Int

RecycleCallLimit Int

RecycleExpirationTimeout Int

RecycleLifetimeLimit Int

RecycleMemoryLimit Int

Replicable YesNoType

RunForever YesNoType

ShutdownAfter Int

Page 950: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SoapActivated YesNoType

SoapBaseUrl String

SoapMailTo String

SoapVRoot String

SRPEnabled YesNoType

SRPTrustLevel Enumeration Thisattribute'svaluemustbeoneofthefollowing:disallowed

fullyTrusted

ThreeGigSupportEnabled YesNoType

SeeAlsoComplusSchema

Version3.5.1623.0

Page 951: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComPlusApplicationRoleElement(ComplusExtension)

DescriptionDefinesanapplicationrole.IfthiselementisadescendentofaComponentelement,theapplicationrolewillbecreatedinassociationwiththiscomponent.IftheelementisachildofanyoftheFragment,ModuleorProductelementsitisconsideredtobealocater,referencinganexistingapplicationrole.

WindowsInstallerreferencesNone

ParentsComPlusApplication,Component,Fragment,Module,Product

InnerTextNone

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

ComPlusGroupInApplicationRole(min:0,max:unbounded)ComPlusUserInApplicationRole(min:0,max:unbounded)

Attributes

Name Type Description Required

Id String Identifierfortheelement. Yes

Application String IftheelementisnotachildofaComPlusApplicationelement,thisattributeshouldbeprovidedwiththeidofaComPlusApplicationelementrepresentingtheapplicationtherolebelongsto.

Page 952: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Description String

Name String Nameoftheapplicationrole. Yes

SeeAlsoComplusSchema

Version3.5.1623.0

Page 953: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComPlusAssemblyElement(ComplusExtension)

DescriptionRepresentsaDLLorassemblytoberegisteredwithCOM+.IfthiselementisachildofaComPlusApplicationelement,theassemblywillberegisteredinthisapplication.OtherwaystheApplicationattributemustbesettoanapplication.TheelementmustbeadescendentofaComponentelement,itcannotbeachildofaComPlusApplicationlocatorelement.

WindowsInstallerreferencesNone

ParentsComPlusApplication,Component

InnerTextNone

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

ComPlusAssemblyDependency(min:0,max:unbounded)ComPlusComponent(min:0,max:unbounded)

Attributes

Name Type Description Required

Id String Identifierfortheelement.

Yes

Application String IftheelementisnotachildofaComPlusApplicationelement,thisattribute

Page 954: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

shouldbeprovidedwiththeidofaComPlusApplicationelementrepresentingtheapplicationtheassemblyistoberegisteredin.Thisattributecanbeomittedfora.NETassemblyeveniftheapplicationisnotachildofaComPlusApplicationelement.

AssemblyName String ThenameoftheassemblyusedtoidentifytheassemblyintheGAC.ThisattributecanbeprovidedonlyifDllPathFromGACissetto“yes”.

DllPath String ThepathtolocatetheassemblyDLLduringregistration.ThisattributeshouldbeprovidedifDllPathFromGACisnotsetto“yes”.

DllPathFromGAC YesNoType IndicatesthattheDLLpathshouldbeextractedfromtheGACinsteadforbeingprovidedintheDllPathattribute.Ifthisattributeissetto“yes”,thenameofthe

Page 955: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

assemblycanbeprovidedusingtheAssemblyNameattribute.Or,ifthisAssemblyNameattributeismissing,thenamewillbeextractedfromtheMsiAssemblyNametableusingtheidoftheparentComponentelement.

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

PSDllPath String Anoptionalpathtoanexternalproxy/stubDLLfortheassembly.

RegisterInCommit YesNoType Indicatesthattheassemblyshouldbeinstalledinthecommitcustomactioninsteadofthenormaldeferredcustomaction.Thisisnecessarywheninstalling.NETassembliestotheGACinthesameinstallation,asthe

Page 956: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

assembliesarenotvisibleintheGACuntilaftertheInstallFinalizeactionhasrun.

TlbPath String Anoptionalpathtoanexternaltypelibfortheassembly.ThisattributemustbeprovidediftheTypeattributeissetto“.net”.

Type Enumeration Thisattribute'svaluemustbeoneofthefollowing:native

.net

Yes

Remarks

Wheninstallinganativeassembly,allcomponentscontainedintheassemblymustberepresentedasComPlusComponentelementsunderthiselement.Anycomponentnotlistedwillnotberemovedduringuninstall.

ThefieldsDllPath,TlbPathandPSDllPathareformattedfieldsthatshouldcontainfilepathstothererespectivefiletypes.AtypicalvalueforDllPathforexample,shouldbesomethinglike“[#MyAssembly_dll]”,where“MyAssembly_dll”isthekeyofthedllfileintheFiletable.

Warning:TheassemblynameprovidedintheAssemblyNameattributemustbeafullyspecifiedassemblyname,ifapartialnameisprovidedarandomassemblymatchingthepartialnamewillbeselected.

SeeAlsoComplusSchema

Page 957: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Version3.5.1623.0

Page 958: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComPlusAssemblyDependencyElement(ComplusExtension)

DescriptionDefinesadependencybetweentwoassemblies.Thiselementaffectstheorderinwhichassemblesareregistered.Anyassembliesreferencedbythiselementareguarantiedtoberegisteredbefore,andunregisteredafter,theassemblyreferencedbytheparentComPlusAssemblyelement.

WindowsInstallerreferencesNone

ParentsComPlusAssembly

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

RequiredAssembly String ReferencetotheidoftheassemblyrequiredbytheparentComPlusAssemblyelement.

Yes

RemarksItisonlynecessarytoexplicitlyspecifydependenciesbetweenassembliescontainedinthesamepackage(MSIorMSM).Assembliesmergedintoapackagefromamergemodulewillalwaysbeinstalledbeforeanyassembliesspecifiedinthebasepackage.Assembliesmergedinfromdifferentmergemodulesare

Page 959: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

sequencedusingtheModuleDependencyMSItable.Itisnotpossibletohavecrossdependenciesbetweenmergemodulesorhaveanassemblyinamergemoduledependonanassemblyinthebasepackage.

SeeAlsoComplusSchema

Version3.5.1623.0

Page 960: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComPlusComponentElement(ComplusExtension)

DescriptionRepresentsaCOM+componentinanassembly.

WindowsInstallerreferencesNone

ParentsComPlusAssembly

InnerTextNone

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

ComPlusInterface(min:0,max:unbounded)ComPlusRoleForComponent(min:0,max:unbounded)ComPlusSubscription(min:0,max:unbounded)

Attributes

Name Type Description

Id String Identifierfortheelement.

AllowInprocSubscribers YesNoType

CLSID Uuid CLSIDofthecomponent.

ComponentAccessChecksEnabled YesNoType

ComponentTransactionTimeout Int

ComponentTransactionTimeoutEnabled YesNoType

Page 961: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

COMTIIntrinsics YesNoType

ConstructionEnabled YesNoType

ConstructorString String

CreationTimeout Int

Description String

EventTrackingEnabled YesNoType

ExceptionClass String

FireInParallel YesNoType

IISIntrinsics YesNoType

InitializesServerApplication YesNoType

IsEnabled YesNoType

IsPrivateComponent YesNoType

JustInTimeActivation YesNoType

LoadBalancingSupported YesNoType

MaxPoolSize Int

MinPoolSize Int

MultiInterfacePublisherFilterCLSID String

MustRunInClientContext YesNoType

MustRunInDefaultContext YesNoType

ObjectPoolingEnabled YesNoType

PublisherID String

SoapAssemblyName String

SoapTypeName String

Synchronization Enumeration Thisattribute'svaluemustbe

Page 962: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

oneofthefollowing:ignored

none

supported

required

requiresNew

Transaction Enumeration Thisattribute'svaluemustbeoneofthefollowing:ignored

none

supported

required

requiresNew

TxIsolationLevel Enumeration Thisattribute'svaluemustbeoneofthefollowing:any

readUnCommitted

readCommitted

repeatableRead

serializable

SeeAlsoComplusSchema

Version3.5.1623.0

Page 963: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComPlusGroupInApplicationRoleElement(ComplusExtension)

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

WindowsInstallerreferencesNone

ParentsComPlusApplicationRole,Component

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Identifierfortheelement. Yes

ApplicationRole String IftheelementisnotachildofaComPlusApplicationRoleelement,thisattributeshouldbeprovidedwiththeidofaComPlusApplicationRoleelementrepresentingtheapplicationroletheuseristobeaddedto.

Page 964: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Group String ForeignkeyintotheGrouptable.

Yes

SeeAlsoComplusSchema

Version3.5.1623.0

Page 965: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComPlusGroupInPartitionRoleElement(ComplusExtension)

DescriptionThiselementrepresentsasecuritygroupmembershipinapartitionrole.Whentheparentcomponentofthiselementisinstalled,thesecuritygroupwillbeaddedtotheassociatedpartitionrole.

WindowsInstallerreferencesNone

ParentsComPlusPartitionRole,Component

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Identifierfortheelement. Yes

Group String ForeignkeyintotheGrouptable. Yes

PartitionRole String TheidofaComPlusPartitionRoleelementrepresentingthepartitiontheusershouldbeaddedto.

SeeAlsoComplusSchema

Version3.5.1623.0

Page 966: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComPlusInterfaceElement(ComplusExtension)

DescriptionRepresentsaninterfaceforaCOM+component.

WindowsInstallerreferencesNone

ParentsComPlusComponent

InnerTextNone

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

ComPlusMethod(min:0,max:unbounded)ComPlusRoleForInterface(min:0,max:unbounded)

Attributes

Name Type Description Required

Id String Identifierfortheelement. Yes

Description String

IID Uuid IIDoftheinterface. Yes

QueuingEnabled YesNoType

SeeAlsoComplusSchema

Version3.5.1623.0

Page 967: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComPlusMethodElement(ComplusExtension)

DescriptionRepresentsamethodforaninterface.

WindowsInstallerreferencesNone

ParentsComPlusInterface

InnerTextNone

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

Attributes

Name Type Description Required

Id String Identifierfortheelement. Yes

AutoComplete YesNoType

Description String

Index Int Dispatchidofthemethod.IfthisattributeisnotsetavaluemustbeprovidedfortheNameattribute.

Name String Nameofthemethod.IfthisattributeisnotsetavaluemustbeprovidedfortheIndexattribute.

Page 968: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SeeAlsoComplusSchema

Version3.5.1623.0

Page 969: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComPlusPartitionElement(ComplusExtension)

DescriptionDefinesaCOM+partition.IfthiselementisachildofaComponentelement,thepartitionwillbecreatedinassociationwiththiscomponent.IftheelementisachildofanyoftheFragment,ModuleorProductelementsitisconsideredtobealocater,referencinganexistingpartition.

WindowsInstallerreferencesNone

ParentsComponent,Fragment,Module,Product

InnerTextNone

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

ComPlusApplication(min:0,max:unbounded)ComPlusPartitionRole(min:0,max:unbounded)ComPlusPartitionUser(min:0,max:unbounded)

Attributes

Name Type Description Required

Id String Identifierfortheelement. Yes

Changeable YesNoType

Deleteable YesNoType

Description String

Page 970: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Name String Nameofthepartition.Thisattributecanbeomittediftheelementisalocater,andavalueisprovidedforthePartitionIdattribute.

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

SeeAlsoComplusSchema

Version3.5.1623.0

Page 971: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComPlusPartitionRoleElement(ComplusExtension)

DescriptionDefinesaCOM+partitionrole.Partitionrolescannotbecreated;thiselementcanonlybeusedasalocatertoreferenceanexistingrole.

WindowsInstallerreferencesNone

ParentsComPlusPartition,Component,Fragment,Module,Product

InnerTextNone

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

ComPlusGroupInPartitionRole(min:0,max:unbounded)ComPlusUserInPartitionRole(min:0,max:unbounded)

Attributes

Name Type Description Required

Id String Identifierfortheelement. Yes

Name String Nameofthepartitionrole. Yes

Partition String TheidofaComPlusPartitionelementrepresentingthepartitiontherolebelongsto.

SeeAlsoComplusSchema

Page 972: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Version3.5.1623.0

Page 973: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComPlusPartitionUserElement(ComplusExtension)

DescriptionRepresentsadefaultpartitiondefinitionforauser.Whentheparentcomponentofthiselementisinstalled,thedefaultpartitionoftheuserwillbesettothereferencedpartition.

WindowsInstallerreferencesNone

ParentsComPlusPartition,Component

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Identifierfortheelement. Yes

Partition String TheidofaComPlusPartitionelementrepresentingthepartitionthatwillbethedefaultpartitionfortheuser.

User String ForeignkeyintotheUsertable. Yes

SeeAlsoComplusSchema

Version3.5.1623.0

Page 974: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComPlusRoleForComponentElement(ComplusExtension)

DescriptionRepresentsaroleassignmenttoaCOM+component.

WindowsInstallerreferencesNone

ParentsComPlusComponent,Component

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Identifierfortheelement. Yes

ApplicationRole String IdoftheComPlusApplicationRoleelementrepresentingtherolethatshallbegrantedaccesstothecomponent.

Yes

Component String IftheelementisnotachildofaComPlusComponentelement,thisattributeshouldbeprovidedwiththeidofaComPlusComponentelementrepresentingthecomponenttheroleistobeaddedto.

Page 975: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SeeAlsoComplusSchema

Version3.5.1623.0

Page 976: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComPlusRoleForInterfaceElement(ComplusExtension)

DescriptionRepresentsaroleassignmenttoaninterface.

WindowsInstallerreferencesNone

ParentsComPlusInterface,Component

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Identifierfortheelement. Yes

ApplicationRole String IdoftheComPlusApplicationRoleelementrepresentingtherolethatshallbegrantedaccesstotheinterface.

Yes

Interface String IftheelementisnotachildofaComPlusInterfaceelement,thisattributeshouldbeprovidedwiththeidofaComPlusInterfaceelementrepresentingtheinterfacetheroleistobeaddedto.

Page 977: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SeeAlsoComplusSchema

Version3.5.1623.0

Page 978: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComPlusRoleForMethodElement(ComplusExtension)

DescriptionRepresentsaroleassignmenttoaCOM+method.

WindowsInstallerreferencesNone

ParentsComPlusMethod,Component

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Identifierfortheelement. Yes

ApplicationRole String IdoftheComPlusApplicationRoleelementrepresentingtherolethatshallbegrantedaccesstothemethod.

Yes

Method String IftheelementisnotachildofaComPlusMethodelement,thisattributeshouldbeprovidedwiththeidofaComPlusMethodelementrepresentingthemethodtheroleistobeaddedto.

Page 979: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SeeAlsoComplusSchema

Version3.5.1623.0

Page 980: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComPlusSubscriptionElement(ComplusExtension)

DescriptionDefinesaneventsubscriptionforaCOM+component.

WindowsInstallerreferencesNone

ParentsComPlusComponent,Component

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Identifierfortheelement.

Yes

Component String IftheelementisnotachildofaComPlusComponentelement,thisattributeshouldbeprovidedwiththeidofaComPlusComponentelementrepresentingthecomponentthesubscriptionistobecreatedfor.

Page 981: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Description String

Enabled YesNoType

EventClassPartitionID String

EventCLSID String CLSIDoftheeventclassforthesubscription.Ifavalueforthisattributeisnotprovided,avalueforthePublisherIDattributemustbeprovided.

FilterCriteria String

InterfaceID String

MachineName String

MethodName String

Name String Nameofthesubscription.

Yes

PerUser YesNoType

PublisherID String Publisheridforthesubscription.Ifavalueforthisattributeisnotprovided,avaluefortheEventCLSIDattributemustbeprovided.

Queued YesNoType

SubscriberMoniker String

SubscriptionId String Idofthesubscription.Ifa

Page 982: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

valueisnotprovidedforthisattribute,anidwillbegeneratedduringinstallation.

UserName String

SeeAlsoComplusSchema

Version3.5.1623.0

Page 983: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComPlusUserInApplicationRoleElement(ComplusExtension)

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

WindowsInstallerreferencesNone

ParentsComPlusApplicationRole,Component

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Identifierfortheelement. Yes

ApplicationRole String IftheelementisnotachildofaComPlusApplicationRoleelement,thisattributeshouldbeprovidedwiththeidofaComPlusApplicationRoleelementrepresentingtheapplicationroletheuseristobeaddedto.

Page 984: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

User String ForeignkeyintotheUsertable.

Yes

SeeAlsoComplusSchema

Version3.5.1623.0

Page 985: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComPlusUserInPartitionRoleElement(ComplusExtension)

DescriptionThiselementrepresentsausermembershipinapartitionrole.Whentheparentcomponentofthiselementisinstalled,theuserwillbeaddedtotheassociatedpartitionrole.

WindowsInstallerreferencesNone

ParentsComPlusPartitionRole,Component

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Identifierfortheelement. Yes

PartitionRole String TheidofaComPlusPartitionRoleelementrepresentingthepartitiontheusershouldbeaddedto.

User String ForeignkeyintotheUsertable. Yes

SeeAlsoComplusSchema

Version3.5.1623.0

Page 986: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AutogenGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.

SeeAlsoComplusSchema

Page 987: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComponentGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.

SeeAlsoComplusSchema

Page 988: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ExitType(SimpleType)

DescriptionTODO:Whatdoesthistypemean?

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoComplusSchema

Page 989: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Guid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoComplusSchema

Page 990: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

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

SeeAlsoComplusSchema

Page 991: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoComplusSchema

Page 992: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LocalizableInteger(SimpleType)

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

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

SeeAlsoComplusSchema

Page 993: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoComplusSchema

Page 994: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoComplusSchema

Page 995: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,execute,ui}

SeeAlsoComplusSchema

Page 996: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoComplusSchema

Page 997: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

uuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF".

PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}'.

SeeAlsoComplusSchema

Page 998: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VersionType(SimpleType)

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

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

SeeAlsoComplusSchema

Page 999: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WildCardLongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoComplusSchema

Page 1000: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WildCardShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoComplusSchema

Page 1001: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoComplusSchema

Page 1002: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoComplusSchema

Page 1003: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DifxappSchema

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

ThesourcecodeschemafortheWindowsInstallerXMLToolsetDriverInstallFrameworksforApplicationsExtension.

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

ChildElementsDriver

Version3.5.1623.0

Page 1004: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DriverElement(DifxappExtension)

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

WindowsInstallerreferencesNone

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description

AddRemovePrograms YesNoType SpecifiesthattheDIFxAppCustomActionsshouldaddanentryintheAdd/RemoveProgramsControlThedefaultis'yes'.

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

Page 1005: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

isnotpresent,DIFxAppusesadefaultvalueof"no".

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

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

PlugAndPlayPrompt YesNoType SpecifiesthattheDIFxAppCustomActionsshouldprompttheusertoconnectthePlugandPlayconnected.Thedefaultis'yes'.

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

SeeAlso

Page 1006: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DifxappSchema

Version3.5.1623.0

Page 1007: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AutogenGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.

SeeAlsoDifxappSchema

Page 1008: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComponentGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.

SeeAlsoDifxappSchema

Page 1009: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ExitType(SimpleType)

DescriptionTODO:Whatdoesthistypemean?

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoDifxappSchema

Page 1010: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Guid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoDifxappSchema

Page 1011: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

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

SeeAlsoDifxappSchema

Page 1012: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoDifxappSchema

Page 1013: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LocalizableInteger(SimpleType)

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

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

SeeAlsoDifxappSchema

Page 1014: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoDifxappSchema

Page 1015: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoDifxappSchema

Page 1016: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,execute,ui}

SeeAlsoDifxappSchema

Page 1017: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoDifxappSchema

Page 1018: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VersionType(SimpleType)

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

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

SeeAlsoDifxappSchema

Page 1019: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WildCardLongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoDifxappSchema

Page 1020: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WildCardShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoDifxappSchema

Page 1021: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoDifxappSchema

Page 1022: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoDifxappSchema

Page 1023: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

FirewallSchema

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

ThesourcecodeschemafortheWindowsInstallerXMLToolsetFirewallExtension.

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

ChildElementsFirewallExceptionRemoteAddress

Version3.5.1623.0

Page 1024: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

FirewallExceptionElement(FirewallExtension)

DescriptionRegistersanexceptionforaprogramoraspecificportandprotocolintheWindowsFirewallonWindowsXPSP2,WindowsServer2003SP1,andlater.FormoreinformationabouttheWindowsFirewall,seeAboutWindowsFirewallAPI.

WindowsInstallerreferencesNone

ParentsComponent,File

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

RemoteAddress(min:0,max:unbounded)

Attributes

Name Type Description Required

Id String UniqueIDofthisfirewallexception.

Yes

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

IgnoreFailure YesNoType If"yes,"failurestoregisterthisfirewallexceptionwill

Page 1025: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Name String Nameofthisfirewallexception,visibletotheuserinthefirewallcontrolpanel.

Yes

Port String Porttoallowthroughthefirewallforthisexception.IfyouusePort,youcannotalsouseFileorProgram.

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

private

public

all

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

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

Page 1026: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

specifyPortandyoucannotalsouseFileorProgram.Thisattribute'svaluemustbeoneofthefollowing:tcp

udp

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

localSubnet

SeeAlsoFirewallSchema

Version3.5.1623.0

Page 1027: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RemoteAddressElement(FirewallExtension)

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

WindowsInstallerreferencesNone

ParentsFirewallException

InnerText(xs:string)Aremoteaddress.

ChildrenNone

AttributesNone

SeeAlsoFirewallSchema

Version3.5.1623.0

Page 1028: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AutogenGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.

SeeAlsoFirewallSchema

Page 1029: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComponentGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.

SeeAlsoFirewallSchema

Page 1030: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ExitType(SimpleType)

DescriptionTODO:Whatdoesthistypemean?

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoFirewallSchema

Page 1031: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Guid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoFirewallSchema

Page 1032: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

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

SeeAlsoFirewallSchema

Page 1033: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoFirewallSchema

Page 1034: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LocalizableInteger(SimpleType)

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

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

SeeAlsoFirewallSchema

Page 1035: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoFirewallSchema

Page 1036: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoFirewallSchema

Page 1037: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,execute,ui}

SeeAlsoFirewallSchema

Page 1038: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoFirewallSchema

Page 1039: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VersionType(SimpleType)

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

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

SeeAlsoFirewallSchema

Page 1040: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WildCardLongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoFirewallSchema

Page 1041: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WildCardShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoFirewallSchema

Page 1042: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoFirewallSchema

Page 1043: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoFirewallSchema

Page 1044: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

GamingSchema

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

ThesourcecodeschemafortheWindowsInstallerXMLToolsetGamingExtension.

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

ChildElementsGamePlayTaskSupportTask

Version3.5.1623.0

Page 1045: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

GameElement(GamingExtension)

DescriptionRegistersagameinGameExploreronWindowsVistaandlater.TheexecutablemusthaveanembeddedGameDefinitionFile.FormoreinformationaboutGameExplorerandGDFs,seeTheWindowsVistaGameExplorer.Thisregistrationisaccomplishedviacustomaction.

OnWindowsXP,thiselementinsteadrecordsthesameinformationintheregistrysothatlaterupgradestoWindowsVistaregisterthegameinGameExplorer.

WindowsInstallerreferencesNone

ParentsFile

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

PlayTask(min:0,max:unbounded)SupportTask(min:0,max:unbounded)

Attributes

Name Type Description Required

Id Guid Thegame'sinstanceID. Yes

ExecutableFile String Identifierofthefilethatisthegame'sexecutable,ifitisn'ttheparentfile.

GdfResourceFile String Identifierofthefilethatcontainsthegame'sGDF

Page 1046: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

resource,ifitdoesn'texistintheparentfile.

SeeAlsoGamingSchema

Version3.5.1623.0

Page 1047: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PlayTaskElement(GamingExtension)

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

WindowsInstallerreferencesNone

ParentsGame

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Arguments String Command-lineargumentstobepassedtothegameexecutableforthistask.

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

Yes

SeeAlsoGamingSchema

Page 1048: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Version3.5.1623.0

Page 1049: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SupportTaskElement(GamingExtension)

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

WindowsInstallerreferencesNone

ParentsGame

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Address String URIforthistask.

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

Yes

SeeAlsoGamingSchema

Version3.5.1623.0

Page 1050: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

IsRichSavedGameAttribute(GamingExtension)

DescriptionRegistersthisextensionfortherichsavedgamespropertyhandleronWindowsVistaandlater.

WindowsInstallerreferencesNone

ParentsExtension

SeeAlsoGamingSchema

Version3.5.1623.0

Page 1051: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AutogenGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.

SeeAlsoGamingSchema

Page 1052: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComponentGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.

SeeAlsoGamingSchema

Page 1053: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ExitType(SimpleType)

DescriptionTODO:Whatdoesthistypemean?

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoGamingSchema

Page 1054: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Guid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-HERE|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)|!\(wix\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoGamingSchema

Page 1055: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

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

SeeAlsoGamingSchema

Page 1056: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoGamingSchema

Page 1057: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LocalizableInteger(SimpleType)

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

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

SeeAlsoGamingSchema

Page 1058: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoGamingSchema

Page 1059: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoGamingSchema

Page 1060: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,execute,ui}

SeeAlsoGamingSchema

Page 1061: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoGamingSchema

Page 1062: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VersionType(SimpleType)

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

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

SeeAlsoGamingSchema

Page 1063: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WildCardLongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoGamingSchema

Page 1064: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WildCardShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoGamingSchema

Page 1065: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoGamingSchema

Page 1066: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoGamingSchema

Page 1067: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

IisSchema

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

ThesourcecodeschemafortheWindowsInstallerXMLToolsetInternetInformationServicesExtension.

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

ChildElementsCertificateCertificateRefHttpHeaderMimeMapRecycleTimeWebAddressWebApplicationWebApplicationExtensionWebAppPoolWebDirWebDirPropertiesWebErrorWebFilterWebLogWebPropertyWebServiceExtensionWebSite

Page 1068: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WebVirtualDir

Version3.5.1623.0

Page 1069: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CertificateElement(IisExtension)

DescriptionUsedtoinstallanduninstallcertificates.

WindowsInstallerreferencesNone

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Uniqueidentifierforthiscertificateintheinstallationpackage.

Yes

BinaryKey String ReferencetoaBinaryelementthatwillstorethecertificateasastreaminsidethepackage.ThisattributecannotbespecifiedwiththeCertificatePathattribute.

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

Page 1070: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

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

Yes

Overwrite YesNoType

PFXPassword String IftheBinarystreamorpathtothefileoutsideofthepackageisapasswordprotectedPFXfile,thepasswordforthatPFXmustbespecifiedhere.ThisattributemaybesetviaaformattedProperty(e.g.[MyProperty]).

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

StoreLocation Enumeration Thisattribute'svaluemustbeoneofthefollowing:currentUser

Yes

Page 1071: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

localMachine

StoreName Enumeration Thisattribute'svaluemustbeoneofthefollowing:ca

Containsthecertificatesofcertificateauthoritiesthattheusertruststoissuecertificatestoothers.Certificatesinthesestoresarenormallysuppliedwiththeoperatingsystemorbytheuser'snetworkadministrator.

myUsethe"personal"valueinstead.

personalContainspersonalcertificates.Thesecertificateswillusuallyhaveanassociatedprivatekey.Thisstoreisoftenreferredtoasthe"MY"certificatestore.

request

rootContainsthe

Yes

Page 1072: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

certificatesofcertificateauthoritiesthattheusertruststoissuecertificatestoothers.Certificatesinthesestoresarenormallysuppliedwiththeoperatingsystemorbytheuser'snetworkadministrator.Certificatesinthisstorearetypicallyself-signed.

otherPeopleContainsthecertificatesofthosethattheusernormallysendsenvelopedmessagestoorreceivessignedmessagesfrom.SeeMSDNdocumentationformoreinformation.

trustedPeopleContainsthecertificatesofthosedirectlytrustedpeopleandresources.SeeMSDNdocumentationformoreinformation.

trustedPublisher

Page 1073: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Containsthecertificatesofthosepublisherswhoaretrusted.SeeMSDNdocumentationformoreinformation.

SeeAlsoIisSchema,CertificateRef

Version3.5.1623.0

Page 1074: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CertificateRefElement(IisExtension)

DescriptionAssociatesacertificatewiththeparentWebSite.TheCertificateelementshouldbeinthesameComponentastheparentWebSite.

WindowsInstallerreferencesNone

ParentsWebSite

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifierofthereferencedCertificate.

Yes

SeeAlsoIisSchema,Certificate

Version3.5.1623.0

Page 1075: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HttpHeaderElement(IisExtension)

DescriptionCustomHTTPHeaderdefinitionforIISresourcessuchasWebSiteandWebVirtualDir.

WindowsInstallerreferencesNone

ParentsWebSite,WebVirtualDir

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String PrimarykeyforcustomHTTPHeaderentry.ThiswilldefaulttotheNameattribute.

Name String NameofthecustomHTTPHeader. Yes

Value String ValueforthecustomHTTPHeader.Thisattributecancontainaformattedstringthatisprocessedatinstalltimetoinsertthevaluesofpropertiesusing[PropertyName]syntax.Alsosupportedareenvironmentvariables,fileinstallationpaths,andcomponentinstallationdirectories;seeFormattedfordetails.

Page 1076: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SeeAlsoIisSchema

Version3.5.1623.0

Page 1077: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

MimeMapElement(IisExtension)

DescriptionMimeMapdefinitionforIISresources.

WindowsInstallerreferencesNone

ParentsWebSite,WebVirtualDir

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String IdfortheMimeMap. Yes

Extension String ExtensioncoveredbytheMimeMap.Mustbeginwithadot.

Yes

Type String Mime-typecoveredbytheMimeMap.

Yes

SeeAlsoIisSchema

Version3.5.1623.0

Page 1078: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RecycleTimeElement(IisExtension)

DescriptionIIS6ApplicationPoolRecycleTimeson24hourclock.

WindowsInstallerreferencesNone

ParentsWebAppPool

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

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

SeeAlsoIisSchema

Version3.5.1623.0

Page 1079: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WebAddressElement(IisExtension)

DescriptionWebAddressforWebSite

WindowsInstallerreferencesNone

ParentsWebSite

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

Header String

IP String TheIPaddresstolocateanexistingWebSiteorcreateanewWebSite.WhentheWebAddressispartofaWebSiteelementusedtolocateanexistingwebsitethefollowingrulesareused:

Whenthisattributeisnotspecifiedonlythe“AllUnassigned”IPaddresswillbelocated.WhenthisattributeisexplicitlyspecifiedonlythespecifiedIPaddresswillbelocated.

Page 1080: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Whenthisattributehasthevalue“*”thenanyIPaddressincludingthe“AllUnassigned”IPaddresswillbelocated

WhentheWebAddressispartofaWebSiteelementusedtocreateanewwebsitethefollowingrulesareused:

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

TheIPattributecancontainaformattedstringthatisprocessedatinstalltimetoinsertthevaluesofpropertiesusing[PropertyName]syntax.

Port String Yes

Secure YesNoType Determinesifthisaddressrepresentsasecurebinding.Thedefaultis'no'.

SeeAlsoIisSchema

Version3.5.1623.0

Page 1081: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WebApplicationElement(IisExtension)

DescriptionDefinespropertiesforawebapplication.Thesepropertiescanbeusedformorethanoneapplicationdefinedinawebsiteorvroot,bydefiningthiselementinacommonlocationandreferringtoitbysettingtheWebApplicationattributeoftheWebSiteandWebVirtualDirelements.

WindowsInstallerreferencesNone

ParentsFragment,Module,Product,WebSite,WebVirtualDir

InnerTextNone

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

Attributes

Name Type Description Required

Id String Yes

AllowSessions YesNoDefaultType SetstheEnableSessionStateoption.Whenenabled,youcansetthesessiontimeoutusingtheSessionTimeoutattribute.

Page 1082: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Buffer YesNoDefaultType Setstheoptionthatenablesresponsebufferingintheapplication,whichallowsASPscripttosetresponseheadersanywhereinthescript.

ClientDebugging YesNoDefaultType EnableASPclient-sidescriptdebugging.

DefaultScript Enumeration Setsthedefaultscriptlanguageforthesite.Thisattribute'svaluemustbeoneofthefollowing:VBScript

JScript

Isolation Enumeration Setstheapplicationisolationlevelforthisapplicationforpre-IIS6applications.Thisattribute'svaluemustbeoneofthefollowing:low

Meanstheapplication

Page 1083: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

executeswithintheIISprocess.

mediumExecutespooledinaseparateprocess.

highMeansexecutionaloneinaseparateprocess.

Name String Setsthenameofthisapplication.

Yes

ParentPaths YesNoDefaultType Setstheparentpathsoption,whichallowsaclienttouserelativepathstoreachparentdirectoriesfromthisapplication.

ScriptTimeout Integer SetsthetimeoutvalueforexecutingASPscripts.

ServerDebugging YesNoDefaultType EnableASPserver-sidescriptdebugging.

SessionTimeout Integer Setsthetimeoutvaluefor

Page 1084: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

sessionsinminutes.

WebAppPool String ReferencestheIdattributeofaWebAppPoolelementtouseastheapplicationpoolforthisapplicationinIIS6applications.

SeeAlsoIisSchema

Version3.5.1623.0

Page 1085: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WebApplicationExtensionElement(IisExtension)

DescriptionExtensionforWebApplication

WindowsInstallerreferencesNone

ParentsWebApplication

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

CheckPath YesNoType

Executable String usuallyaPropertythatresolvestoshortfilenamepath

Yes

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

Page 1086: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Extensionattributecompletely.

Script YesNoType

Verbs String

SeeAlsoIisSchema

Version3.5.1623.0

Page 1087: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WebAppPoolElement(IisExtension)

DescriptionIIS6ApplicationPool

WindowsInstallerreferencesNone

ParentsComponent,Fragment,Module,Product

InnerTextNone

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

Attributes

Name Type Description Required

Id String IdoftheAppPool. Yes

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

shutdown

Page 1088: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

localService

localSystem

other

IdleTimeout Integer Shutdownworkerprocessafterbeingidlefor(timeinminutes).

MaxCpuUsage PercentType MaximumCPUusage(percent).

MaxWorkerProcesses Integer Maximumnumberofworkerprocesses.

Name String NameoftheAppPooltobeshowninIIs.

Yes

PrivateMemory Integer Specifiestheamountofprivatememory(inKB)thataworkerprocesscanuse

Page 1089: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

beforetheworkerprocessrecycles.Themaximumvaluesupportedforthisattributeis4,294,967KB.

QueueLimit Integer Limitthekernelrequestqueue(numberofrequests).

RecycleMinutes Integer Howoften,inminutes,youwanttheAppPooltoberecycled.

RecycleRequests Integer Howoften,inrequests,youwanttheAppPooltoberecycled.

RefreshCpu Integer RefreshCPUusagenumbers(inminutes).

User String UseraccounttoruntheAppPoolas.Tousethis,youmustsettheIdentityattributeto'other'.

VirtualMemory Integer Specifiestheamountofvirtualmemory(inKB)thataworkerprocesscanusebeforetheworkerprocessrecycles.

Page 1090: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Themaximumvaluesupportedforthisattributeis4,294,967KB.

SeeAlsoIisSchema

Version3.5.1623.0

Page 1091: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WebDirElement(IisExtension)

DescriptionDefinesasubdirectorywithinanIISwebsite.WhenthiselementisachildofWebSite,thewebdirectoryisdefinedwithinthatwebsite.OtherwisethewebdirectorymustreferenceaWebSiteelementviatheWebSiteattribute.

WindowsInstallerreferencesNone

ParentsComponent,WebSite

InnerTextNone

ChildrenChoiceofelements(min:1,max:1)

WebDirProperties(min:0,max:1)

Attributes

Name Type Description Required

Id String Yes

DirProperties String ReferencestheIdattributeforaWebDirPropertieselementthatspecifiesthesecurityandaccesspropertiesforthiswebdirectory.ThisattributemaynotbespecifiedifaWebDirPropertieselementisdirectlynestedinthiselement.

Path String Specifiesthenameofthiswebdirectory.

Yes

Page 1092: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WebSite String ReferencestheIdattributeforaWebSiteelementinwhichthisdirectorybelongs.RequiredwhenthiselementisnotachildofaWebSiteelement.

SeeAlsoIisSchema

Version3.5.1623.0

Page 1093: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WebDirPropertiesElement(IisExtension)

DescriptionWebDirPropertiesusedbyoneormoreWebSites.ListspropertiescommontoIISwebsitesandvroots.CorrespondingpropertiescanbeviewedthroughtheIISManagersnap-in.OnepropertyentrycanbereusedbymultiplesitesorvrootsusingtheIdfieldasareference,usingWebVirtualDir.DirProperties,WebSite.DirProperties,orWebDir.DirProperties.

WindowsInstallerreferencesNone

ParentsFragment,Module,Product,WebDir,WebSite,WebVirtualDir

InnerTextNone

ChildrenNone

Attributes

Name Type Description

Id String

AccessSSL YesNoType AvalueoftrueindicatesthatfileaccessrequiresSSLfilepermissionprocessing,withorwithoutaclientcertificate.ThiscorrespondstoAccessSSLflagforAccessSSLFlagsIIS

Page 1094: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

metabaseproperty.

AccessSSL128 YesNoType AvalueoftrueindicatesthatfileaccessrequiresSSLfilepermissionprocessingwithaminimumkeysizeof128bits,withorwithoutaclientcertificate.ThiscorrespondstoAccessSSL128flagforAccessSSLFlagsIISmetabaseproperty.

AccessSSLMapCert YesNoType ThiscorrespondstoAccessSSLMapCertflagforAccessSSLFlagsIISmetabaseproperty.

AccessSSLNegotiateCert YesNoType ThiscorrespondstoAccessSSLNegotiateCertflagforAccessSSLFlagsIISmetabaseproperty.

AccessSSLRequireCert YesNoType ThiscorrespondstoAccessSSLRequireCertflagforAccessSSLFlagsIISmetabaseproperty.

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

Page 1095: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

IIsControlledPasswordattribute.Defaultsto'no.'

AnonymousUser String ReferencetotheIdattributeontheUserelementtobeusedastheanonymoususerforthedirectory.SeetheUserelementformoreinformation.

AspDetailedError YesNoType SetstheoptionforwhethertosenddetailedASPerrorsbacktotheclientonscripterror.Defaultis'no.'

AuthenticationProviders String Commadelimitedlist,inorderofprecedence,ofWindowsauthenticationprovidersthatIISwillattempttouse:NTLM,Kerberos,Negotiate,andothers.

BasicAuthentication YesNoType SetstheBasicAuthenticationoption,whichallowsclientstoprovidecredentialsinplaintextoverthewire.Defaultsto'no.'

CacheControlCustom String CustomHTTP1.1cachecontroldirectives.

CacheControlMaxAge NonNegativeInteger Integervaluespecifyingthecachecontrolmaximumagevalue.

ClearCustomError YesNoType SpecifieswhetherIIswillreturncustomerrorsforthisdirectory.

Page 1096: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DefaultDocuments String Thelistofdefaultdocumentstosetforthiswebdirectory,incomma-delimitedformat.

DigestAuthentication YesNoType SetstheDigestAuthenticationoption,whichallowsusingdigestauthenticationwithdomainuseraccounts.Defaultsto'no.'

Execute YesNoType

HttpExpires String ValuetosettheHttpExpiresattributetoforaWebDirinthemetabase.

IIsControlledPassword YesNoType SetswhetherIISshouldcontrolthepasswordusedfortheWindowsaccountspecifiedintheAnonymousUserattribute.Defaultsto'no.'

Index YesNoType SetstheIndexResourceoption,whichspecifieswhetherthiswebdirectoryshouldbeindexed.Defaultsto'no.'

LogVisits YesNoType Setswhethervisitstothissiteshouldbelogged.Defaultsto'no.'

PassportAuthentication YesNoType SetsthePassportAuthenticationoption,whichallowsclientstoprovidecredentialsviaa.NetPassportaccount.

Page 1097: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Defaultsto'no.'

Read YesNoType

Script YesNoType

WindowsAuthentication YesNoType SetstheWindowsAuthenticationoption,whichenablesintegratedWindowsauthenticationtobeusedonthesite.Defaultsto'no.'

Write YesNoType

SeeAlsoIisSchema

Version3.5.1623.0

Page 1098: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WebErrorElement(IisExtension)

DescriptionCustomWebErrorsusedbyWebSitesandVirtualDirectories.

WindowsInstallerreferencesNone

ParentsWebSite,WebVirtualDir

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

ErrorCode Integer HTTP1.1errorcode. Yes

File String Filetobesenttotheclientforthiserrorcodeandsubcode.Thiscanbeformatted.Forexample:[#FileId].

SubCode Integer Errorsubcode.Setto0togetthewildcard"*".

Yes

URL String URLtobesenttotheclientforthiserrorcodeandsubcode.Thiscanbeformatted.

RemarksYoucanonlyuseerrorcodeandsubcodecombinationswhicharesupportedbyIIS.AttemptingtosetacustomerrorforanerrorcodeandsubcodecombinationthatisnotsupportedbyIIS(inthedefaultlistoferrorcodes)willresultinaninstallationfailure.

Page 1099: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SeeAlsoIisSchema

Version3.5.1623.0

Page 1100: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WebFilterElement(IisExtension)

DescriptionIIsFilterforaComponent

WindowsInstallerreferencesNone

ParentsComponent,WebSite

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheuniqueIdforthewebfilter. Yes

Description String Descriptionofthefilter.

Flags Integer SetstheMD_FILTER_FLAGSmetabasekeyforthefilter.Thismustbeaninteger.SeeMSDN'FilterFlags'documentationformoredetails.

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

Name String ThenameofthefiltertobeusedinIIS.

Yes

Path String Thepathofthefilterexecutable Yes

Page 1101: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

WebSite String Specifiestheparentwebsiteforthisfilter(ifthereisone).Ifthisisaglobalfilter,thenthisattributeshouldnotbespecified.

SeeAlsoIisSchema

Version3.5.1623.0

Page 1102: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WebLogElement(IisExtension)

DescriptionWebLogdefinition.

WindowsInstallerreferencesNone

ParentsFragment,Module,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String IdentifierfortheWebLog. Yes

Type Enumeration Thisattribute'svaluemustbeoneofthefollowing:IIS

MicrosoftIISLogFileFormat

NCSANCSACommonLogFileFormat

noneDisableslogging.

ODBCODBCLogging

W3CW3CExtendedLogFile

Yes

Page 1103: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Format

SeeAlsoIisSchema

Version3.5.1623.0

Page 1104: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WebPropertyElement(IisExtension)

DescriptionIISProperties

WindowsInstallerreferencesNone

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id Enumeration Thisattribute'svaluemustbeoneofthefollowing:ETagChangeNumber

IIs5IsolationMode

MaxGlobalBandwidth

LogInUTF8

Yes

Value String ThevaluetobeusedfortheWebPropertyspecifiedintheIdattribute.SeetheremarkssectionforinformationonacceptablevaluesforeachId.

RemarksHereisanexplanationoftheacceptablevaluesforeachpropertyandtheirmeaning:

Page 1105: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

SeeAlsoIisSchema

Version3.5.1623.0

Page 1106: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WebServiceExtensionElement(IisExtension)

DescriptionTheWebServiceExtensionpropertyisusedbytheWebservertodeterminewhetheraWebserviceextensionispermittedtorun.

WindowsInstallerreferencesNone

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

Allow YesNoType Indicatesiftheextensionisallowedordenied.

Yes

Description String Descriptionoftheextension.

File String UsuallyaPropertythatresolvestoshortfilenamepath

Yes

Group String Stringusedtoidentifygroupsofextensions.

UIDeletable YesNoType IndicatesiftheUIisallowedtodeletetheextensionfromthelistofnot.Default:Not

Page 1107: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

deletable.

SeeAlsoIisSchema

Version3.5.1623.0

Page 1108: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WebSiteElement(IisExtension)

DescriptionIIsWebSite

WindowsInstallerreferencesNone

ParentsComponent,Fragment,Module,Product

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

CertificateRef(min:0,max:unbounded)HttpHeader(min:0,max:unbounded)MimeMap(min:0,max:unbounded)WebAddress(min:1,max:unbounded)WebApplication(min:0,max:1)WebDir(min:0,max:unbounded)WebDirProperties(min:0,max:1)WebError(min:0,max:unbounded)WebFilter(min:0,max:unbounded)WebVirtualDir(min:0,max:unbounded)

Attributes

Name Type Description Required

Id String IdentifierfortheWebSite.UsedwithintheMSIpackageonly.

Yes

AutoStart YesNoType Specifieswhether

Page 1109: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

toautomaticallystartthewebsite.

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

ConnectionTimeout NonNegativeInteger Setsthetimeoutvalueforconnectionsinseconds.

Description String ThisisthenameofthewebsitethatwillshowupintheIISmanagementconsole.

Yes

Directory String Rootdirectoryofthewebsite.ResolvedtoadirectoryintheDirectorytableatinstalltimebytheservercustomactions.

DirProperties String ReferencestheIdattributeforaWebDirPropertieselementthatspecifiesthesecurityand

Page 1110: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

accesspropertiesforthiswebsiterootdirectory.ThisattributemaynotbespecifiedifaWebDirPropertieselementisdirectlynestedinthiselement.

Sequence Integer Sequencethatthewebsiteistobecreatedin.

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

Page 1111: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

(forthesamebehavioras"*")orapositivenumberorblank.IfthisattributeisabsentthenthewebsitewillbelocatedusingtheWebAddresselementassociatedwiththewebsite.

StartOnInstall YesNoType Specifieswhethertostartthewebsiteoninstall.

WebApplication String ReferencetoaWebApplicationthatistobeinstalledaspartofthiswebsite.

WebLog String ReferencetoWebLogdefinition.

RemarksNestingWebSiteunderaComponentelementwillresultinaWebSitebeinginstalledtothemachineasthepackageisinstalled.

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

Page 1112: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SeeAlsoIisSchema

Version3.5.1623.0

Page 1113: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WebVirtualDirElement(IisExtension)

DescriptionDefinesanIISvirtualdirectory.WhenthiselementisachildofWebSiteelement,thevirtualdirectoryisdefinedwithinthatwebsite.OtherwisethisvirtualdirectorymustreferenceaWebSiteelementviatheWebSiteattribute

WindowsInstallerreferencesNone

ParentsComponent,WebSite,WebVirtualDir

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

HttpHeader(min:0,max:unbounded)MimeMap(min:0,max:unbounded)WebApplication(min:0,max:1)WebDirProperties(min:0,max:1)WebError(min:0,max:unbounded)WebVirtualDir(min:0,max:unbounded)

Attributes

Name Type Description Required

Id String Yes

Alias String Setstheapplicationname,whichistheURLrelativepathusedtoaccessthisvirtualdirectory

Yes

Page 1114: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Directory String ReferencestheIdattributeforaDirectoryelementthatpointstothecontentforthisvirtualdirectory.

Yes

DirProperties String ReferencestheIdattributeforaWebDirPropertieselementthatspecifiesthesecurityandaccesspropertiesforthisvirtualdirectory.ThisattributemaynotbespecifiedifaWebDirPropertieselementisdirectlynestedinthiselement.

WebApplication String ReferencestheIdattributeforaWebApplicationelementthatspecifieswebapplicationsettingsforthisvirtualdirectory.IfaWebApplicationchildisnotspecified,thevirtualdirectorydoesnothostwebapplications.

WebSite String ReferencestheIdattributeforaWebSiteinwhichthisvirtualdirectorybelongs.RequiredwhenthiselementisnotachildofWebSiteelement.

SeeAlsoIisSchema

Version3.5.1623.0

Page 1115: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AutogenGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.

SeeAlsoIisSchema

Page 1116: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComponentGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.

SeeAlsoIisSchema

Page 1117: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ExitType(SimpleType)

DescriptionTODO:Whatdoesthistypemean?

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoIisSchema

Page 1118: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Guid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoIisSchema

Page 1119: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

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

SeeAlsoIisSchema

Page 1120: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoIisSchema

Page 1121: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LocalizableInteger(SimpleType)

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

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

SeeAlsoIisSchema

Page 1122: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoIisSchema

Page 1123: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PercentType(SimpleType)

DescriptionValuesofthistypeareanyintegersbetween0and100,inclusive.

xs:nonNegativeIntegerTypexs:maxInclusivevalue='100'

SeeAlsoIisSchema

Page 1124: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoIisSchema

Page 1125: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,execute,ui}

SeeAlsoIisSchema

Page 1126: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoIisSchema

Page 1127: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VersionType(SimpleType)

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

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

SeeAlsoIisSchema

Page 1128: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WildCardLongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoIisSchema

Page 1129: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WildCardShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoIisSchema

Page 1130: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoIisSchema

Page 1131: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoIisSchema

Page 1132: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

IsolatedAppSchema

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

SchemafordescribingIsolatedApplications.

RootElementIsolatedApp

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

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

Version3.5.1623.0

Page 1133: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ApplicationElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsIsolatedApp

InnerTextNone

ChildrenChoiceofelements(min:0,max:1)

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

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

Page 1134: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DescriptionElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

Page 1135: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DetailsElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

Page 1136: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

EntryPointElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

PackageVersion Boolean

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

Page 1137: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

FeedElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

Page 1138: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

IconElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication,Package

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Index Integer

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

Page 1139: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

IdElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication,Package

InnerText(uuid)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

Page 1140: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

IsolatedAppElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsNone

InnerTextNone

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

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

Page 1141: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ManufacturerElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

Page 1142: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

NameElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

Page 1143: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PackageElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsIsolatedApp

InnerTextNone

ChildrenChoiceofelements(min:0,max:1)

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

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

Page 1144: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PreviousFeedElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsIsolatedApp

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

Page 1145: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SourceElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

Page 1146: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UpdateRateElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(xs:integer)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

Page 1147: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VersionElement(IsolatedAppExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(VersionType)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoIsolatedAppSchema

Version3.5.1623.0

Page 1148: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 1149: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VersionType(SimpleType)

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

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

SeeAlsoIsolatedAppSchema

Page 1150: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LuxSchema

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

ThesourcecodeschemafortheWindowsInstallerXMLToolsetLuxExtension.

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

ChildElementsConditionExpressionMutationUnitTestUnitTestRef

Version3.5.1623.0

Page 1151: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ConditionElement(LuxExtension)

DescriptionConditionsforaunittest.

WindowsInstallerreferencesNone

ParentsUnitTest

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoLuxSchema

Version3.5.1623.0

Page 1152: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ExpressionElement(LuxExtension)

DescriptionAnexpressionthatmustevaluatetotruetosucceed.CannotbespecifiedifPropertyisspecified.

WindowsInstallerreferencesNone

ParentsUnitTest

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoLuxSchema

Version3.5.1623.0

Page 1153: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

MutationElement(LuxExtension)

DescriptionTestmutationsletyouauthorunittestswithdifferentexpectedresults.ThemutationidispassedasthevalueoftheWIXLUX_RUNNING_MUTATIONproperty.Yourcustomaction,typicallyinan'#ifdefDEBUG'block,canretrievetheWIXLUX_RUNNING_MUTATIONpropertyandhard-codedifferentbehaviorbasedonthemutation.Toauthortestmutations,usetheMutationelementwithUnitTestelementsaschildren.

WindowsInstallerreferencesNone

ParentsFragment

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

UnitTest(min:0,max:unbounded)

Attributes

Name Type Description Required

Id String ValueoftheWIXLUX_RUNNING_MUTATIONpropertysetbythemutation.

SeeAlsoLuxSchema

Version3.5.1623.0

Page 1154: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UnitTestElement(LuxExtension)

DescriptionDescribesaunittesttobeexecutedagainstaparticularcustomaction,resultinginaparticularpropertyvalue.Single-valueproperties,multi-valueproperties,andname/value-pairpropertiescanallbetesteddeclaratively.

WindowsInstallerreferencesNone

ParentsFragment,Mutation,UnitTest

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Condition(min:0,max:unbounded)Expression(min:0,max:unbounded)UnitTest(min:0,max:unbounded)

Attributes

Name Type Description Required

CustomAction String Identifierofthecustomactiontobetested.

Id String Identifieroftheunittest.Ifyouomitthisattribute,astableidentifierisgeneratedforyou.

Index String Aformattedstringthatevaluatestoeitheranintegerindexintoamulti-valuepropertyora

Page 1155: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

stringnameofaname/value-pairmulti-valueproperty.

NameValueSeparator String Onecharacterthatisusedtoseparatevaluesinaname/value-pairmulti-valueproperty.

Operator Enumeration Theoperatortoapplytothepropertyandvalue.Defaultis"equal."Thisattribute'svaluemustbeoneofthefollowing:equal

(Default)ComparesPropertytoValueandsucceedsiftheyareequal.

notEqualComparesPropertytoValueandsucceedsiftheyareNOTequal.

caseInsensitiveEqualComparesPropertytoValueandsucceedsiftheyareequal(ignoringcase).

caseInsensitiveNotEqualComparesPropertytoValueandsucceedsiftheyareNOTequal(ignoringcase).

Property String Nameoftheproperty

Page 1156: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

setbythecustomaction.

Value String Thevaluetocomparetotheproperty.

ValueSeparator String Onecharacterthatisusedtoseparatevaluesinamulti-valueproperty.

SeeAlsoLuxSchema

Version3.5.1623.0

Page 1157: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UnitTestRefElement(LuxExtension)

DescriptionIdentifiesaunittesttobelinkedintoaproject.

WindowsInstallerreferencesNone

ParentsFragment,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Identifieroftheunittesttobeincluded.

SeeAlsoLuxSchema

Version3.5.1623.0

Page 1158: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AutogenGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.

SeeAlsoLuxSchema

Page 1159: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComponentGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.

SeeAlsoLuxSchema

Page 1160: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ExitType(SimpleType)

DescriptionTODO:Whatdoesthistypemean?

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoLuxSchema

Page 1161: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Guid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoLuxSchema

Page 1162: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

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

SeeAlsoLuxSchema

Page 1163: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoLuxSchema

Page 1164: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LocalizableInteger(SimpleType)

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

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

SeeAlsoLuxSchema

Page 1165: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoLuxSchema

Page 1166: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoLuxSchema

Page 1167: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,execute,ui}

SeeAlsoLuxSchema

Page 1168: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoLuxSchema

Page 1169: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VersionType(SimpleType)

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

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

SeeAlsoLuxSchema

Page 1170: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WildCardLongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoLuxSchema

Page 1171: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WildCardShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoLuxSchema

Page 1172: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoLuxSchema

Page 1173: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoLuxSchema

Page 1174: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

MsmqSchema

Copyright(c)MicrosoftCorporation.Allrightsreserved.

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

Youmustnotremovethisnotice,oranyother,fromthissoftware.

ThesourcecodeschemafortheWindowsInstallerXMLToolsetMSMQExtension.

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

ChildElementsMessageQueueMessageQueuePermission

Version3.5.1623.0

Page 1175: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

MessageQueueElement(MsmqExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsComponent

InnerTextNone

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

Attributes

Name Type Description Required

Id String Yes

Authenticate YesNoType Default:No.

BasePriority Integer

Journal YesNoType Default:No.

JournalQuota Integer

Label String Yes

MulticastAddress String

PathName String Yes

PrivLevel Enumeration Thisattribute'svaluemustbeoneofthe

Page 1176: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

following:none

optional

body

Quota Integer

ServiceTypeGuid String

Transactional YesNoType Default:No.

SeeAlsoMsmqSchema

Version3.5.1623.0

Page 1177: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

MessageQueuePermissionElement(MsmqExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsComponent,MessageQueue

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

ChangeQueuePermissions YesNoType

DeleteJournalMessage YesNoType

DeleteMessage YesNoType

DeleteQueue YesNoType

GetQueuePermissions YesNoType

GetQueueProperties YesNoType

Group String

MessageQueue String

PeekMessage YesNoType

Page 1178: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

QueueGenericAll YesNoType

QueueGenericExecute YesNoType

QueueGenericRead YesNoType

QueueGenericWrite YesNoType

ReceiveJournalMessage YesNoType

ReceiveMessage YesNoType

SetQueueProperties YesNoType

TakeQueueOwnership YesNoType

User String

WriteMessage YesNoType

SeeAlsoMsmqSchema

Version3.5.1623.0

Page 1179: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AutogenGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.

SeeAlsoMsmqSchema

Page 1180: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComponentGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.

SeeAlsoMsmqSchema

Page 1181: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ExitType(SimpleType)

DescriptionTODO:Whatdoesthistypemean?

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoMsmqSchema

Page 1182: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Guid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoMsmqSchema

Page 1183: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

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

SeeAlsoMsmqSchema

Page 1184: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoMsmqSchema

Page 1185: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LocalizableInteger(SimpleType)

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

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

SeeAlsoMsmqSchema

Page 1186: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoMsmqSchema

Page 1187: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoMsmqSchema

Page 1188: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,execute,ui}

SeeAlsoMsmqSchema

Page 1189: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoMsmqSchema

Page 1190: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VersionType(SimpleType)

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

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

SeeAlsoMsmqSchema

Page 1191: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WildCardLongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoMsmqSchema

Page 1192: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WildCardShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoMsmqSchema

Page 1193: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoMsmqSchema

Page 1194: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoMsmqSchema

Page 1195: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

NetfxSchema

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

ThesourcecodeschemafortheWindowsInstallerXMLToolset.NETFrameworkExtension.

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

ChildElementsNativeImage

Version3.5.1623.0

Page 1196: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

NativeImageElement(NetfxExtension)

DescriptionImprovestheperformanceofmanagedapplicationsbycreatingnativeimages.Requiresthe.NETFramework2.0ornewertobeinstalledonthetargetmachinesinceitrunsNGen.

WindowsInstallerreferencesNone

ParentsFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifierforthisNativeImage.

Yes

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

Page 1197: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

doesnotneedtobesetbecauseNGenwillusethedirectoryoftheassemblyfilebydefault.

AssemblyApplication String Theidentifieroftheapplicationwhichwillloadthisassembly.ForDLLassemblieswhichareloadedviareflection,thisattributeshouldbesettoindicatetheapplicationwhichwillloadthisassembly.Theconfigurationoftheapplication(usuallyspecifiedviaanexe.configfile)willbeusedtodeterminehowtoresolvedependenciesforthisassembly.Whenasharedcomponentisloadedatruntime,usingtheLoadmethod,theapplication'sconfigurationfiledeterminesthedependenciesthatareloadedforthesharedcomponent—forexample,theversionofadependencythatisloaded.Thisattributegivesguidanceonwhichdependencieswouldbeloadedatruntimeinordertofigureoutwhichdependencyassemblieswillalsoneedtohavenativeimagesgenerated

Page 1198: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Debug YesNoType Setto"yes"togeneratenativeimagesthatcanbeusedunderadebugger.Thedefaultvalueis"no".

Dependencies YesNoType Setto"no"togeneratetheminimumnumberofnativeimages.Thedefaultvalueis"yes".

Platform Enumeration Setstheplatform(s)forwhichnativeimageswillbegenerated.Thisattribute'svaluemustbeoneofthefollowing:32bit

Page 1199: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Attempttogeneratenativeimagesonlyforthe32-bitversionofthe.NETFrameworkonthetargetmachine.Ifthe32-bitversionofthe.NETFramework2.0ornewerisnotpresentonthetargetmachine,nativeimagecustomactionswillnotbescheduled.Thisisthedefaultvalue.

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

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

Page 1200: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

architecture,nativeimagecustomactionswillnotbescheduledforthatprocessorarchitecture.

Priority Enumeration Setsthepriorityofgeneratingthenativeimagesforthisassembly.Thisattribute'svaluemustbeoneofthefollowing:0

Thisisthehighestpriority,itmeansthatimagegenerationoccurssyncronouslyduringthesetupprocess.Thisoptionwillslowdownsetupperformance.

1ThiswillqueueimagegenerationtotheNGenservicetooccurimmediately.Thisoptionwillslowdownsetupperformance.

2ThiswillqueueimagegenerationtotheNGenservicetooccurafterallpriority1assemblieshavecompleted.Thisoptionwillslowdownsetupperformance.

3

Page 1201: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Thisisthelowestpriority,itwillqueueimagegenerationtooccurwhenthemachineisidle.Thisoptionshouldnotslowdownsetupperformance.Thisisthedefaultvalue.

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

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

SeeAlsoNetfxSchema

Version3.5.1623.0

Page 1202: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoNetfxSchema

Page 1203: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

OfficeAddinSchema

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

SchemafordescribingOfficeAddins.

RootElementOfficeAddin

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

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

Version3.5.1623.0

Page 1204: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ApplicationElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsOfficeAddin

InnerTextNone

ChildrenChoiceofelements(min:0,max:1)

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

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

Page 1205: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DescriptionElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

Page 1206: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DetailsElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

Page 1207: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

EntryPointElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

Page 1208: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ExtendsApplicationElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(SupportedOfficeApplications)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

Page 1209: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

FeedElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

Page 1210: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

IconElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication,Package

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Index Integer

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

Page 1211: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

IdElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication,Package

InnerText(uuid)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

Page 1212: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ManufacturerElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

Page 1213: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

NameElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

Page 1214: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

OfficeAddinElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsNone

InnerTextNone

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

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

Page 1215: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PackageElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsOfficeAddin

InnerTextNone

ChildrenChoiceofelements(min:0,max:1)

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

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

Page 1216: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PreviousFeedElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsOfficeAddin

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

Page 1217: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SourceElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsApplication

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

Page 1218: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UpdateRateElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(xs:integer)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

Page 1219: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VersionElement(OfficeAddinExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsPackage

InnerText(VersionType)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoOfficeAddinSchema

Version3.5.1623.0

Page 1220: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SupportedOfficeApplications(SimpleType)

DescriptionNone

EnumerationTypePossiblevalues:{Excel2003,Outlook2003,PowerPoint2003,Word2003}

SeeAlsoOfficeAddinSchema

Page 1221: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 1222: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VersionType(SimpleType)

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

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

SeeAlsoOfficeAddinSchema

Page 1223: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PsSchema

Copyright(c)MicrosoftCorporation.Allrightsreserved.

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

Youmustnotremovethisnotice,oranyother,fromthissoftware.

ThesourcecodeschemafortheWindowsInstallerXMLToolsetPowerShellExtension.

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

ChildElementsFormatsFileSnapInTypesFile

Version3.5.1623.0

Page 1224: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

FormatsFileElement(PsExtension)

DescriptionIdentifiestheparentFileasaformatsXMLfileforthereferencedPowerShellsnap-in.

WindowsInstallerreferencesNone

ParentsFile,SnapIn

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

FileId String ReferencetotheformatsFileID.ThisisrequiredwhennestedundertheSnapInelement.

SnapIn String ReferencetothePowerShellsnap-inIDforwhichthisformatsfileisassociated.ThisisrequiredwhennestedundertheFileelement.

RemarksAformatsXMLfilethatdefinesoutputformatsforobjectsonthepipeline.

SeeAlsoPsSchema

Version3.5.1623.0

Page 1225: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SnapInElement(PsExtension)

DescriptionIdentifiestheparentFileasaPowerShellsnap-intoberegisteredonthesystem.

WindowsInstallerreferencesNone

ParentsFile

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

FormatsFile(min:0,max:unbounded)TypesFile(min:0,max:unbounded)

Attributes

Name Type Description Required

Id String TheidentifierforthisPowerShellsnap-in.

Yes

AssemblyName String Thisattributehasbeendeprecated.

CustomSnapInType String Thefulltypenameofaclassthatisusedto

Page 1226: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

registeralistofcmdletsandproviders.

Description String Abriefdescriptionofthesnap-in.

DescriptionIndirect EmbeddedResource Anembeddedresourcethatcontainsabriefdescriptionofthesnap-in.Thisresourcemustbeembeddedinthecurrentsnap-inassembly.

RequiredPowerShellVersion VersionType TherequiredversionofPowerShellthatmustbeinstalledandisassociatedwiththesnap-inregistration.Thedefaultvalueis

Page 1227: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

"1.0".

Vendor String Thenameofthesnap-invendor.

VendorIndirect EmbeddedResource Anembeddedresourcethatcontainsthenameofthesnap-invendor.Thisresourcemustbeembeddedinthecurrentsnap-inassembly.

Version VersionType Theversionofthesnapin.Ifnotspecified,thisistakenfromtheassemblyname.

RemarksPowerShellsnap-insallowdeveloperstoextendthefunctionalityofofthePowerShellengine.AddthiselementtoidentifytheparentFileasaPowerShellsnap-inthatwillgetregisteredonthesystem.

SeeAlsoPsSchema

Version3.5.1623.0

Page 1228: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

TypesFileElement(PsExtension)

DescriptionIdentifiestheparentFileasatypesXMLfileforthereferencedPowerShellsnap-in.

WindowsInstallerreferencesNone

ParentsFile,SnapIn

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

FileId String ReferencetothetypesFileID.ThisisrequiredwhennestedundertheSnapInelement.

SnapIn String ReferencetothePowerShellsnap-inIDforwhichthistypesfileisassociated.ThisisrequiredwhennestedundertheFileelement.

RemarksAtypesXMLfileusedbytheextensibletypesystem.

SeeAlsoPsSchema

Version3.5.1623.0

Page 1229: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RequiredVersionAttribute(PsExtension)

DescriptionTheversionofthisextensionrequiredtocompilethedefiningsource.

WindowsInstallerreferencesNone

ParentsWix

SeeAlsoPsSchema

Version3.5.1623.0

Page 1230: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AutogenGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.

SeeAlsoPsSchema

Page 1231: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComponentGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.

SeeAlsoPsSchema

Page 1232: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

EmbeddedResource(SimpleType)

Description

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

Example:UtilityMshSnapInResources,Description

SeeAlsoPsSchema

Page 1233: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ExitType(SimpleType)

DescriptionTODO:Whatdoesthistypemean?

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoPsSchema

Page 1234: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Guid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoPsSchema

Page 1235: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

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

SeeAlsoPsSchema

Page 1236: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoPsSchema

Page 1237: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LocalizableInteger(SimpleType)

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

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

SeeAlsoPsSchema

Page 1238: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoPsSchema

Page 1239: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoPsSchema

Page 1240: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,execute,ui}

SeeAlsoPsSchema

Page 1241: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoPsSchema

Page 1242: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VersionType(SimpleType)

DescriptionValuesofthistypewilllooklike:"x","x.x","x.x.x",or"x.x.x.x"wherexisanintegerfrom0to65534.

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

SeeAlsoPsSchema

Page 1243: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WildCardLongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoPsSchema

Page 1244: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WildCardShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoPsSchema

Page 1245: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoPsSchema

Page 1246: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoPsSchema

Page 1247: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SqlSchema

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

ThesourcecodeschemafortheWindowsInstallerXMLToolsetSQLServerExtension.

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

ChildElementsSqlDatabaseSqlFileSpecSqlLogFileSpecSqlScriptSqlString

Version3.5.1623.0

Page 1248: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SqlDatabaseElement(SqlExtension)

DescriptionSQLDatabase

WindowsInstallerreferencesNone

ParentsComponent,Fragment,Module,Product

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

SqlScript(min:0,max:unbounded)SqlString(min:0,max:unbounded)Sequence(min:1,max:1)1. SqlFileSpec(min:0,max:1)2. SqlLogFileSpec(min:0,max:1)

Attributes

Name Type Description Required

Id String Yes

ConfirmOverwrite YesNoType

ContinueOnError YesNoType

CreateOnInstall YesNoType

CreateOnReinstall YesNoType Specifieswhethertocreatethedatabasewhentheassociated

Page 1249: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

componentisreinstalled.SettingCreateOnInstalltoyesdoesnotimplyCreateOnReinstallissettoyes.CreateOnReinstallmustbesetinadditiontoCreateOnInstallforittobecreatedduringbothinstallandreinstall.

CreateOnUninstall YesNoType

Database String Thenameofthedatabase.ThevaluecanbealiteralvalueorderivedfromaPropertyelementusingtheFormattedsyntax.

Yes

DropOnInstall YesNoType

DropOnReinstall YesNoType Specifieswhethertodropthedatabasewhentheassociatedcomponentisreinstalled.SettingDropOnInstalltoyesdoesnotimplyDropOnReinstallissettoyes.DropOnReinstallmustbesetinadditiontoDropOnInstallforittobedroppedduringbothinstallandreinstall.

DropOnUninstall YesNoType

Page 1250: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Instance String

Server String Yes

User String

RemarksNestingSqlDatabaseunderaComponentelementwillresultinaSqlDatabasebeinginstalledtothemachineasthepackageisinstalled.

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

TheUserattributereferencescredentialsspecifiedinaUserelement.IfauserisnotspecifiedthenWindowsAuthenticationwillbeusedbydefaultusingthecredentialsoftheuserperformingtheinstalltoexecutesqlstrings,etc.

SeeAlsoSqlSchema,User

Version3.5.1623.0

Page 1251: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SqlFileSpecElement(SqlExtension)

DescriptionFilespecificationforaSqldatabase.

WindowsInstallerreferencesNone

ParentsSqlDatabase

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String IDofthefilespecification. Yes

Filename String Specifiestheoperating-systemfilenameforthedatabasefile.

Yes

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

Page 1252: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

MaxSizesetting.

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

Name String Specifiesthelogicalnameforthedatabasefile.

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

SeeAlsoSqlSchema

Version3.5.1623.0

Page 1253: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SqlLogFileSpecElement(SqlExtension)

DescriptionFilespecificationforaSqldatabase.

WindowsInstallerreferencesNone

ParentsSqlDatabase

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Filename String Specifiestheoperating-systemfilenameforthelogfile.

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

Page 1254: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Id String IDofthelogfilespecification.

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

Name String Specifiesthelogicalnameforthelogfile.

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

SeeAlsoSqlSchema

Version3.5.1623.0

Page 1255: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SqlScriptElement(SqlExtension)

DescriptionSQLScript

WindowsInstallerreferencesNone

ParentsComponent,SqlDatabase

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

BinaryKey String ReferencetoBinarystreamthatcontainstheSQLscripttoexecute.

Yes

ContinueOnError YesNoType Continueexecutingscriptsevenifthisonefails.

ExecuteOnInstall YesNoType Specifiestoexecutethescriptwhentheassociatedcomponentisinstalled.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,

Page 1256: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RollbackOnReinstallandRollbackOnUninstallattributes.

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

ExecuteOnUninstall YesNoType Specifiestoexecutethescriptwhentheassociatedcomponentisuninstalled.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,RollbackOnReinstallandRollbackOnUninstall

Page 1257: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

attributes.

RollbackOnInstall YesNoType Specifieswhethertoexecutethescriptonrollbackifanattemptismadetoinstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.

RollbackOnReinstall YesNoType Specifieswhethertoexecutethescriptonrollbackifanattemptismadetoreinstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.

RollbackOnUninstall YesNoType Specifieswhethertoexecutethescriptonrollbackifanattemptismadetouninstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstall

Page 1258: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

andExecuteOnUninstallattributes.

Sequence Integer SpecifestheordertoruntheSQLScripts.Itisrecommendedthatrollbackscriptsbescheduledbeforetheircomplementaryexecutionscript.ThisorderisalsorelativeacrosstheSqlStringelement.

SqlDb String requiredwhennotchildofSqlDatabase

User String

SeeAlsoSqlSchema

Version3.5.1623.0

Page 1259: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SqlStringElement(SqlExtension)

DescriptionSQLString

WindowsInstallerreferencesNone

ParentsComponent,SqlDatabase

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

ContinueOnError YesNoType Continueexecutingstringsevenifthisonefails.

ExecuteOnInstall YesNoType Specifiestoexecutethestringwhentheassociatedcomponentisinstalled.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,RollbackOnReinstallandRollbackOnUninstallattributes.

Page 1260: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

ExecuteOnUninstall YesNoType Specifiestoexecutethestringwhentheassociatedcomponentisuninstalled.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,RollbackOnReinstallandRollbackOnUninstallattributes.

RollbackOnInstall YesNoType Specifieswhethertoexecutethestringonrollbackifanattempt

Page 1261: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ismadetoinstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.

RollbackOnReinstall YesNoType Specifieswhethertoexecutethestringonrollbackifanattemptismadetoreinstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.

RollbackOnUninstall YesNoType Specifieswhethertoexecutethestringonrollbackifanattemptismadetouninstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.

Sequence Integer Specifestheorderto

Page 1262: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

runtheSQLStrings.Itisrecommendedthatrollbackstringsbescheduledbeforetheircomplementaryexecutionstring.ThisorderisalsorelativeacrosstheSqlScriptelement.

SQL String Yes

SqlDb String

User String

SeeAlsoSqlSchema

Version3.5.1623.0

Page 1263: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AutogenGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.

SeeAlsoSqlSchema

Page 1264: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComponentGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.

SeeAlsoSqlSchema

Page 1265: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ExitType(SimpleType)

DescriptionTODO:Whatdoesthistypemean?

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoSqlSchema

Page 1266: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Guid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoSqlSchema

Page 1267: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

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

SeeAlsoSqlSchema

Page 1268: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoSqlSchema

Page 1269: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LocalizableInteger(SimpleType)

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

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

SeeAlsoSqlSchema

Page 1270: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoSqlSchema

Page 1271: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoSqlSchema

Page 1272: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,execute,ui}

SeeAlsoSqlSchema

Page 1273: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoSqlSchema

Page 1274: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VersionType(SimpleType)

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

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

SeeAlsoSqlSchema

Page 1275: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WildCardLongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoSqlSchema

Page 1276: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WildCardShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoSqlSchema

Page 1277: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoSqlSchema

Page 1278: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoSqlSchema

Page 1279: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UtilSchema

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

ThesourcecodeschemafortheWindowsInstallerXMLToolsetUtilityExtension.

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

ChildElementsCloseApplicationComponentSearchDirectorySearchEventManifestEventSourceFileSearchFileShareFileSharePermissionGroupGroupRefInternetShortcutPerfCounterPerfCounterManifestPerformanceCategoryPerformanceCounterPermissionExProductSearch

Page 1280: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegistrySearchServiceConfigUserXmlConfigXmlFile

Version3.5.1623.0

Page 1281: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CloseApplicationElement(UtilExtension)

DescriptionClosesapplicationsorschedulesarebootifapplicationcannotbeclosed.

WindowsInstallerreferencesNone

ParentsFragment,Module,Product

InnerText(xs:string)Conditionthatdeterminesiftheapplicationshouldbeclosed.Mustbeblankorevaluatetotruefortheapplicationtobescheduledforclosing.

ChildrenNone

Attributes

Name Type Description Required

Id String Identifierforthecloseapplication(primarykey).

Yes

CloseMessage YesNoType Optionallysendsaclosemessagetotheapplication.Defaultisno.

Description String Descriptiontoshowifapplicationisrunningand

Page 1282: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

needstobeclosed.

ElevatedCloseMessage YesNoType Optionallysendsaclosemessagetotheapplicationfromdefferedactionwithoutimpersonation.Defaultisno.

Property String Propertytobesetifapplicationisstillrunning.UsefulforlaunchconditionsortoconditionalizecustomUItoaskusertoshutdownapps.

RebootPrompt YesNoType Optionallypromptsforrebootifapplicationisstillrunning.Defaultisyes.

Sequence Integer Optionallyorderstheapplicationstobeclosed.

Target String Nameoftheexectuabletobeclosed.Thisshouldonlybefilename.

Yes

SeeAlsoUtilSchema

Page 1283: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Version3.5.1623.0

Page 1284: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComponentSearchElement(UtilExtension)

DescriptionDescribesacomponentsearch.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

After String Idofthesearchthatthisoneshouldcomeafter.

Condition String Conditionforevaluatingthesearch.Ifthisevaluatestofalse,thesearchisnotexecutedatall.

Guid String Componenttosearchfor. Yes

Id String Idofthesearchfororderinganddependency.

ProductCode String OptionalProductCodetodetermineifthecomponentisinstalled.

Page 1285: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Result Enumeration Ratherthansavingthematchingkeypathintothevariable,aComponentSearchcansaveanattributeofthecomponentinstead.Thisattribute'svaluemustbeoneofthefollowing:Directory

Savestheparentdirectoryforthecomponent'sfilekeypath;othertypesofkeypatharereturnedunmodified.

StateSavesthestateofthecomponent:absent(2),locallyinstalled(3),willrunfromsource(4),orinstalledindefaultlocation(eitherlocalorfromsource)(5)

KeyPathSavesthekeypathofthecomponentifinstalled.Thisisthedefault.

Variable String Nameofthevariableinwhichtoplacetheresultofthesearch.

Yes

SeeAlsoUtilSchema

Page 1286: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Version3.5.1623.0

Page 1287: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DirectorySearchElement(UtilExtension)

DescriptionDescribesadirectorysearch.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

After String Idofthesearchthatthisoneshouldcomeafter.

Condition String Conditionforevaluatingthesearch.Ifthisevaluatestofalse,thesearchisnotexecutedatall.

Id String Idofthesearchfororderinganddependency.

Path String Directorypathtosearchfor.

Result NMTOKEN Ratherthansavingthematchingdirectorypathintothevariable,aDirectorySearchcansaveanattributeofthematchingdirectoryinstead.Pattern:

Page 1288: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

'Exists'.

Variable String Nameofthevariableinwhichtoplacetheresultofthesearch.

Yes

SeeAlsoUtilSchema

Version3.5.1623.0

Page 1289: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

EventManifestElement(UtilExtension)

DescriptionUsedtoinstallEventManifests.

WindowsInstallerreferencesNone

ParentsFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

MessageFile String Themessagefile(includingpath)ofalltheprovidersintheeventmanifest.Oftenthemessagefilepathcannotbedetermineduntilsetuptime.PutyourMessageFilehereandthemessageFileNameattributeofthealltheprovidersinthemanifestwillbeupdatedwiththepathbeforeitisregistered.

ParameterFile String Theparameterfile(includingpath)ofalltheprovidersintheeventmanifest.Oftentheparameterfilepathcannotbedetermineduntilsetuptime.Put

Page 1290: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

yourParameterFilehereandtheparameterFileNameattributeofthealltheprovidersinthemanifestwillbeupdatedwiththepathbeforeitisregistered.

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

SeeAlsoUtilSchema

Version3.5.1623.0

Page 1291: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

EventSourceElement(UtilExtension)

DescriptionCreatesaneventsource.

WindowsInstallerreferencesNone

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description

CategoryCount Integer ThenumberofcategoriesinCategoryMessageFile.CategoryMessageFilemustbespecifiedtoo.

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

Page 1292: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

EventMessageFile String Nameoftheeventmessagefile.Notethatthisisaformattedfield,soyoucanuse[#fileId]syntaxtotoafilebeinginstalled.ItisalsowrittenasaREG_EXPAND_SZstring,soyoucanuse%environment_variable%syntaxtorefertoafilealreadypresentontheuser'smachine.

KeyPath YesNoType MarkstheEventSourceregistryasthekeypathofthecomponentitbelongsto.

Log String Nameoftheeventsource'slog.

Name String Nameoftheeventsource.

ParameterMessageFile String Nameoftheparametermessagefile.Notethatthisisaformattedfield,soyoucanuse[#fileId]syntaxtorefertoafilebeinginstalled.ItisalsowrittenasaREG_EXPAND_SZstring,soyoucanuse%environment_variable%syntaxtorefertoafilealreadypresentontheuser'smachine.

SupportsErrors YesNoType EquivalenttoEVENTLOG_ERROR_TYPE.

SupportsFailureAudits YesNoType EquivalenttoEVENTLOG_AUDIT_FAILURE.

SupportsInformationals YesNoType EquivalenttoEVENTLOG_INFORMATION_TYPE.

SupportsSuccessAudits YesNoType EquivalenttoEVENTLOG_AUDIT_SUCCESS.

SupportsWarnings YesNoType EquivalenttoEVENTLOG_WARNING_TYPE.

Page 1293: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SeeAlsoUtilSchema

Version3.5.1623.0

Page 1294: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

FileSearchElement(UtilExtension)

DescriptionDescribesafilesearch.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

After String Idofthesearchthatthisoneshouldcomeafter.

Condition String Conditionforevaluatingthesearch.Ifthisevaluatestofalse,thesearchisnotexecutedatall.

Id String Idofthesearchfororderinganddependency.

Path String Filepathtosearchfor.

Result Enumeration Ratherthansavingthematchingfilepathintothevariable,aFileSearchcansaveanattributeofthematchingfileinstead.Thisattribute'svaluemustbeone

Page 1295: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ofthefollowing:Exists

Savestrueifamatchingfileisfound;falseotherwise.

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

Variable String Nameofthevariableinwhichtoplacetheresultofthesearch.

Yes

SeeAlsoUtilSchema

Version3.5.1623.0

Page 1296: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

FileShareElement(UtilExtension)

DescriptionCreatesafileshareoutofthecomponent'sdirectory.

WindowsInstallerreferencesNone

ParentsComponent

InnerTextNone

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

Attributes

Name Type Description Required

Id String Identifierforthefileshare(primarykey).

Yes

Description String Descriptionofthefileshare.

Name String Nameofthefileshare. Yes

SeeAlsoUtilSchema

Version3.5.1623.0

Page 1297: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

FileSharePermissionElement(UtilExtension)

DescriptionSetsACLsonaFileShare.ThiselementhasnoIdattribute.Thetableandkeyaretakenfromtheparentelement.

WindowsInstallerreferencesNone

ParentsFileShare

InnerTextNone

ChildrenNone

Attributes

Name Type Description

ChangePermission YesNoType

CreateChild YesNoType Foradirectory,therighttocreateasubdirectory.Onlyvalidundera'CreateFolder'parent.

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

Delete YesNoType

DeleteChild YesNoType Foradirectory,therighttodeleteadirectoryandallthefilesitcontains,includingread-onlyfiles.Onlyvalidundera'CreateFolder'

Page 1298: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

parent.

GenericAll YesNoType

GenericExecute YesNoType

GenericRead YesNoType specifyingthiswillfailtograntreadaccess

GenericWrite YesNoType

Read YesNoType

ReadAttributes YesNoType

ReadExtendedAttributes YesNoType

ReadPermission YesNoType

Synchronize YesNoType

TakeOwnership YesNoType

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

User String

WriteAttributes YesNoType

WriteExtendedAttributes YesNoType

SeeAlsoUtilSchema

Version3.5.1623.0

Page 1299: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

GroupElement(UtilExtension)

DescriptionFindsusergroupsonthelocalmachineorspecifiedActiveDirectorydomain.ThelocalmachinewillbesearchedforthegroupfirstthenfallbacktolookinginActiveDirectory.Thiselementisnotcapableofcreatingnewgroupsbutcanbeusedtoaddneworexistinguserstoanexistinggroup.

WindowsInstallerreferencesNone

ParentsFragment,Module,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Uniqueidentifierinyourinstallationpackageforthisgroup.

Yes

Domain String AnoptionalFormattedstringthatspecifiesthedomainforthegroup.

Name String AFormattedstringthatcontainsthenameofthegrouptobefound.

Yes

SeeAlsoUtilSchema

Version3.5.1623.0

Page 1300: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

GroupRefElement(UtilExtension)

DescriptionUsedtojoinausertoagroup

WindowsInstallerreferencesNone

ParentsUser

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

SeeAlsoUtilSchema

Version3.5.1623.0

Page 1301: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InternetShortcutElement(UtilExtension)

DescriptionCreatesashortcuttoaURL.

WindowsInstallerreferencesNone

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String UniqueidentifierinyourinstallationpackageforthisInternetshortcut.

Yes

Directory String IdentifierreferencetoDirectoryelementwhereshortcutistobecreated.Thisattribute'svaluedefaultstotheparentComponentdirectory.

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

Yes

Target String URLthatshouldbeopened Yes

Page 1302: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Type Enumeration Whichtypeofshortcutshouldbecreated.Thisattribute'svaluemustbeoneofthefollowing:url

Creates.urlfilesusingIUniformResourceLocatorW.

linkCreates.lnkfilesusingIShellLinkW(default).

HowTosandExamplesHowTo:Createashortcuttoawebpage

SeeAlsoUtilSchema

Version3.5.1623.0

Page 1303: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PerfCounterElement(UtilExtension)

DescriptionThiselementhasbeendeprecated;pleaseusethePerformanceCounterelementinstead.

WindowsInstallerreferencesNone

ParentsFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Name String

SeeAlsoUtilSchema

Version3.5.1623.0

Page 1304: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PerfCounterManifestElement(UtilExtension)

DescriptionUsedtoinstallPerfmonCounterManifests.

WindowsInstallerreferencesNone

ParentsFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

ResourceFileDirectory String Thedirectorythatholdstheresourcefileoftheprovidersintheperfmoncountermanifest.Oftentheresourcefilepathcannotbedetermineduntilsetuptime.Putthedirectoryhereandduringperfmonmanifestregistrtionthepathwillbeupdatedintheregistry.Ifnotspecified,Perfmonwilllookfortheresource

Page 1305: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

fileinthesamedirectoryoftheperfmoncountermanifestfile.

SeeAlsoUtilSchema

Version3.5.1623.0

Page 1306: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PerformanceCategoryElement(UtilExtension)

DescriptionUsedtocreateperformancecategoriesandconfigureperformancecounters.

WindowsInstallerreferencesNone

ParentsComponent

InnerTextNone

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

Attributes

Name Type Description

Close String FunctionentrypointintotheLibraryDLLcalledwhenclosingtheperformancecounter.defaultis"ClosePerformanceData"whichshouldbeusedforallmanagedcodeperformancecounters.

Collect String FunctionentrypointintotheLibraryDLLcalledwhencollectingdatafromtheperformancecounter.

Page 1307: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Thedefaultis"CollectPerformanceData"whichshouldbeusedforallmanagedcodeperformancecounters.

DefaultLanguage PerformanceCounterLanguageType Defaultlanguagefortheperformancecategoryandcontainedcounters'namesandhelptext.

Help String Optionalhelptextfortheperformancecountercategory.

Id String Uniqueidentifierinyourinstallationpackageforthisperformancecountercategory.

Library String DLLthatcontainstheperformancecounter.defaultis"netfxperf.dll"whichshouldbeusedforallmanagedcodeperformancecounters.

MultiInstance YesNoType Flagthatspecifieswhethertheperformancecountercategoryismultiorsingleinstanced.Defaultissingleinstance.

Name String Namefortheperformancecountercategory.IfthisattributeisnotprovidedtheIdattributeisusedasthenameoftheperformancecountercategory.

Open String Functionentrypointinto

Page 1308: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

theLibraryDLLcalledwhenopeningtheperformancecounter.defaultis"OpenPerformanceData"whichshouldbeusedforallmanagedcodeperformancecounters.

SeeAlsoUtilSchema

Version3.5.1623.0

Page 1309: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PerformanceCounterElement(UtilExtension)

DescriptionCreatesaperformancecounterinaperformancecategory.

WindowsInstallerreferencesNone

ParentsPerformanceCategory

InnerTextNone

ChildrenNone

Attributes

Name Type Description

Help String Optionalhelptextfortheperformancecounter.

Language PerformanceCounterLanguageType Languageforthepeformancecounternameandhelp.ThedefaultistousetheparentPerformanceCategoryelement'sDefaultLanguageattribute.

Name String Namefortheperformancecounter.

Page 1310: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Type PerformanceCounterTypesType Typeoftheperformancecounter.

SeeAlsoUtilSchema

Version3.5.1623.0

Page 1311: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PermissionExElement(UtilExtension)

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

WindowsInstallerreferencesNone

ParentsCreateFolder,File,Registry,RegistryKey,RegistryValue

InnerTextNone

ChildrenNone

Attributes

Name Type Description

Append YesNoType

ChangePermission YesNoType

CreateChild YesNoType Foradirectory,therighttocreateasubdirectory.Onlyvalidundera'CreateFolder'parent.

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

Page 1312: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CreateLink YesNoType

CreateSubkeys YesNoType

Delete YesNoType

DeleteChild YesNoType Foradirectory,therighttodeleteadirectoryandallthefilesitcontains,includingread-onlyfiles.Onlyvalidundera'CreateFolder'parent.

Domain String

EnumerateSubkeys YesNoType

Execute YesNoType

GenericAll YesNoType

GenericExecute YesNoType

GenericRead YesNoType specifyingthiswillfailtograntreadaccess

GenericWrite YesNoType

Notify YesNoType

Read YesNoType

ReadAttributes YesNoType

ReadExtendedAttributes YesNoType

ReadPermission YesNoType

ServiceChangeConfig YesNoType RequiredtocalltheChangeServiceConfigorChangeServiceConfig2functiontochangetheserviceconfiguration.Onlyvalidundera'ServiceInstall'parent.

ServiceEnumerateDependents YesNoType RequiredtocalltheEnumDependentServicesfunction

Page 1313: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

toenumeratealltheservicesdependentontheservice.validundera'ServiceInstall'parent.

ServiceInterrogate YesNoType RequiredtocalltheControlServicefunctiontoasktheservicetoreportitsstatusimmediately.Onlyvalidundera'ServiceInstall'parent.

ServicePauseContinue YesNoType RequiredtocalltheControlServicefunctiontopauseorcontinuetheservice.Onlyvalidundera'ServiceInstall'parent.

ServiceQueryConfig YesNoType RequiredtocalltheQueryServiceConfigandQueryServiceConfig2functionstoquerytheserviceconfiguration.Onlyvalidundera'ServiceInstall'parent.

ServiceQueryStatus YesNoType RequiredtocalltheQueryServiceStatusfunctiontoasktheservicecontrolmanageraboutthestatusoftheservice.undera'ServiceInstall'parent.

ServiceStart YesNoType RequiredtocalltheStartServicefunctiontostarttheservice.validundera'ServiceInstall'parent.

ServiceStop YesNoType RequiredtocalltheControlServicefunctiontostoptheservice.validundera'ServiceInstall'parent.

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

Page 1314: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Synchronize YesNoType

TakeOwnership YesNoType

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

User String

Write YesNoType

WriteAttributes YesNoType

WriteExtendedAttributes YesNoType

SeeAlsoUtilSchema

Version3.5.1623.0

Page 1315: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ProductSearchElement(UtilExtension)

DescriptionDescribesaproductsearch.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

After String Idofthesearchthatthisoneshouldcomeafter.

Condition String Conditionforevaluatingthesearch.Ifthisevaluatestofalse,thesearchisnotexecutedatall.

Guid String ProductCodetosearchfor. Yes

Id String Idofthesearchfororderinganddependency.

Result Enumeration Ratherthansavingtheproductversionintothevariable,aProductSearchcansaveanotherattributeofthe

Page 1316: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

matchingproductinstead.Thisattribute'svaluemustbeoneofthefollowing:Version

Savestheversionofamatchingproductiffound;0.0.0.0otherwise.Thisisthedefault.

LanguageSavesthelanguageofamatchingproductiffound;emptyotherwise.

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

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

Variable String Nameofthevariableinwhichtoplacetheresultofthesearch.

Yes

SeeAlsoUtilSchema

Version3.5.1623.0

Page 1317: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegistrySearchElement(UtilExtension)

DescriptionDescribesaregistrysearch.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenNone

Attributes

Name Type Description

After String Idofthesearchthatthisoneshouldcomeafter.

Condition String Conditionforevaluatingthesearch.Ifthisevaluatestofalse,thesearchisnotexecutedatall.

ExpandEnvironmentVariables YesNoType WhethertoexpandanyenvironmentvariablesinREG_SZ,REG_EXPAND_SZ,orREG_MULTI_SZvalues.

Format Enumeration Whatformattoreturnthevaluein.Thisattribute'svaluemustbeoneofthefollowing:Raw

Page 1318: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Returnstheunformattedvaluedirectlyfromtheregistry.Forexample,aREG_DWORDvalueof'1'isreturnedas'1',not'#1'.

CompatibleReturnsthevalueformattedasWindowsInstallerwould.Forexample,aREG_DWORDvalueof'1'isreturnedas'#1',not'1'.

Id String Idofthesearchfororderinganddependency.

Key String Keytosearchfor.

Result NMTOKEN Ratherthansavingthematchingregistryvalueintothevariable,aRegistrySearchcansaveanattributeofthematchingentryinstead.Pattern:'Exists'.

Root Enumeration Registryroothivetosearchunder.Thisattribute'svaluemustbeoneofthefollowing:HKLM

HKEY_LOCAL_MACHINE

HKCUHKEY_CURRENT_USER

HKCRHKEY_CLASSES_ROOT

HKUHKEY_USERS

Value String Optionalvaluetosearchfor

Page 1319: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

underthegivenKey.

Variable String Nameofthevariableinwhichtoplacetheresultofthesearch.

SeeAlsoUtilSchema

Version3.5.1623.0

Page 1320: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ServiceConfigElement(UtilExtension)

DescriptionServiceconfigurationinformationforfailureactions.

WindowsInstallerreferencesNone

ParentsComponent,ServiceInstall

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

FirstFailureActionType Enumeration Actiontotakeonthefirstfailureoftheservice.Thisattribute'svaluemustbeoneofthefollowing:none

reboot

restart

runCommand

Yes

ProgramCommandLine String Ifanyofthethree

Page 1321: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

*ActionTypeattributesis"runCommand",thisspecifiesthecommandtorunwhendoingso.

RebootMessage String Ifanyofthethree*ActionTypeattributesis"reboot",thisspecifiesthemessagetobroadcasttoserverusersbeforedoingso.

ResetPeriodInDays Integer Numberofdaysafterwhichtoresetthefailurecounttozeroiftherearenofailures.

RestartServiceDelayInSeconds Integer Ifanyofthethree*ActionTypeattributesis"restart",thisspecifiesthenumberofsecondstowaitbeforedoingso.

SecondFailureActionType Enumeration Actiontotake Yes

Page 1322: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

onthesecondfailureoftheservice.Thisattribute'svaluemustbeoneofthefollowing:none

reboot

restart

runCommand

ServiceName String RequiredifnotunderaServiceInstallelement.

ThirdFailureActionType Enumeration Actiontotakeonthethirdfailureoftheservice.Thisattribute'svaluemustbeoneofthefollowing:none

reboot

restart

runCommand

Yes

RemarksNestingaServiceConfigelementunderaServiceInstallelementwillresultintheservicebeinginstalledtobeconfigured.

NestingaServiceConfigelementunderacomponentelementwillresultinanalreadyinstalledservicetobeconfigured.IftheservicedoesnotexistpriortotheinstalloftheMSIpackage,theinstallwillfail.

Page 1323: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SeeAlsoUtilSchema

Version3.5.1623.0

Page 1324: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

UserElement(UtilExtension)

DescriptionUserforallkindsofthings.WhenitisnotnestedunderacomponentitisincludedintheMSIsoitcanbereferencedbyotherelementssuchastheUserattributeintheAppPoolelement.WhenitisnestedunderaComponentelement,theUserwillbecreatedoninstallandcanalsobeusedforreference.

WindowsInstallerreferencesNone

ParentsComponent,Fragment,Module,Product

InnerTextNone

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

Attributes

Name Type Description

Id String

CanNotChangePassword YesNoType Theusercannotchangetheaccount'spassword.EquivalenttoUF_PASSWD_CANT_CHANGE.

CreateUser YesNoType Indicateswhetherornottocreatetheuser.Usercreationcanbeskippedifallthatisdesiredistojoinausertogroups.

Page 1325: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Disabled YesNoType Theaccountisdisabled.EquivalenttoUF_ACCOUNTDISABLE.

Domain String AFormattedstringthatcontainsthelocalmachineorActiveDirectorydomainfortheuser.

FailIfExists YesNoType Indicatesiftheinstallshouldfailiftheuseralreadyexists.

LogonAsService YesNoType Indicateswhetherornottheusercanlogonasaserivce.Usercreationcanbeskippedifallthatisdesiredistosetthisaccessrightontheuser.

Name String AFormattedstringthatcontainsthenameoftheuseraccount.

Password String UsuallyaPropertythatispassedinonthecommand-linetokeepitmoresecure.

PasswordExpired YesNoType Indicateswhethertheusermustchangetheirpasswordontheirfirstlogin.

PasswordNeverExpires YesNoType Theaccount'spasswordneverexpires.EquivalenttoUF_DONT_EXPIRE_PASSWD.

RemoveOnUninstall YesNoType Indicateswhethertheuseraccountshouldberemovedorleftbehindonuninstall.

UpdateIfExists YesNoType Indicatesiftheuseraccountpropertiesshouldbeupdatediftheuseralreadyexists.

SeeAlsoUtilSchema,Group,GroupRef

Page 1326: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Version3.5.1623.0

Page 1327: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

XmlConfigElement(UtilExtension)

DescriptionAddsorremoves.xmlfileentries.IfyouusetheXmlConfigelementyoumustreferenceWixUtilExtension.dllasitcontainstheXmlConfigcustomactions.

WindowsInstallerreferencesNone

ParentsComponent,XmlConfig

InnerText(xs:string)Thiselementmayhaveinnertext.

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

Attributes

Name Type Description Required

Id String Identifierforxmlfilemodification.

Yes

Action Enumeration Thisattribute'svaluemustbeoneofthefollowing:create

delete

ElementId String TheIdofanotherXmlConfigtoaddattributesto.Inthiscase,the

Page 1328: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

'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

Page 1329: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

On Enumeration Thisattribute'svaluemustbeoneofthefollowing:install

uninstall

PreserveModifiedDate YesNoType Specifieswheterornotthemodificationshouldpreservethemodifieddate.Preservingthemodifieddatewillallowthefiletobepatchedifnoothermodificationshavebeenmade.

Sequence Integer SpecifiestheorderinwhichthemodificationistobeattemptedontheXMLfile.Itisimportanttoensurethatnewelementsarecreatedbeforeyouattempttoaddanattributetothem.

Value String Thevaluetobewritten.SeetheFormattedtopicforinformationhowtoescapesquarebrackets

Page 1330: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

inthevalue.

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

SeeAlsoUtilSchema

Version3.5.1623.0

Page 1331: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

XmlFileElement(UtilExtension)

DescriptionAddsorremoves.xmlfileentries.IfyouusetheXmlFileelementyoumustreferenceWixUtilExtension.dllasitcontainstheXmlFilecustomactions.

WindowsInstallerreferencesNone

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Identifierforxmlfilemodification.

Yes

Action Enumeration ThetypeofmodificationtobemadetotheXMLfilewhenthecomponentisinstalled.Thisattribute'svaluemustbeoneofthefollowing:createElement

Createsanewelementundertheelement

Yes

Page 1332: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

deleteValueDeletesavaluefromtheelementspecifiedintheElementPath.IfNameisspecified,theattributewiththatnameisdeleted.IfNameisnotspecified,thetextvalueof

Page 1333: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

theelementspecifiedintheElementPathisdeleted.TheValueattributeisignoredifdeleteValueistheactionspecified.

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

bulkSetValueSetsallthevaluesinthe

Page 1334: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

ElementPath String TheXPathoftheelementtobemodified.Notethatthisisaformattedfieldandtherefore,squarebracketsintheXPathmustbeescaped.

Yes

File String Pathofthe.xmlfiletoconfigure.

Yes

Name String NameofXMLnodetoset/addtothespecifiedelement.Notsettingthis

Page 1335: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

attributecausestheelement'stextvaluetobeset.Otherwisethisspecifiedtheattributenamethatisset.

Permanent YesNoType Specifieswhetherornotthemodificationshouldberemovedonuninstall.ThishasnoeffectonuninstalliftheactionwasdeleteValue.

PreserveModifiedDate YesNoType Specifieswheterornotthemodificationshouldpreservethemodifieddate.Preservingthemodifieddatewillallowthefiletobepatchedifnoothermodificationshavebeenmade.

SelectionLanguage Enumeration SpecifywhethertheDOMobjectshoulduseXPathlanguageortheoldXSLPatternlanguage(default)asthequerylanguage.Thisattribute'svalue

Page 1336: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

mustbeoneofthefollowing:XPath

XSLPattern

Sequence Integer SpecifiestheorderinwhichthemodificationistobeattemptedontheXMLfile.Itisimportanttoensurethatnewelementsarecreatedbeforeyouattempttoaddanattributetothem.

Value String Thevaluetobewritten.SeetheFormattedtopicforinformationhowtoescapesquarebracketsinthevalue.

SeeAlsoUtilSchema

Version3.5.1623.0

Page 1337: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AutogenGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.

SeeAlsoUtilSchema

Page 1338: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ComponentGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.

SeeAlsoUtilSchema

Page 1339: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ExitType(SimpleType)

DescriptionTODO:Whatdoesthistypemean?

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoUtilSchema

Page 1340: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Guid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoUtilSchema

Page 1341: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

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

SeeAlsoUtilSchema

Page 1342: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoUtilSchema

Page 1343: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LocalizableInteger(SimpleType)

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

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

SeeAlsoUtilSchema

Page 1344: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoUtilSchema

Page 1345: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PerformanceCounterLanguageType(SimpleType)

DescriptionEnumerationofvalidlanguagesforperformancecounters.

EnumerationTypePossiblevalues:{afrikaans,albanian,arabic,armenian,assamese,azeri,basque,belarusian,bengali,bulgarian,catalan,chinese,croatian,czech,danish,divehi,dutch,english,estonian,faeroese,farsi,finnish,french,galician,georgian,german,greek,gujarati,hebrew,hindi,hungarian,icelandic,indonesian,italian,japanese,kannada,kashmiri,kazak,konkani,korean,kyrgyz,latvian,lithuanian,macedonian,malay,malayalam,manipuri,marathi,mongolian,nepali,norwegian,oriya,polish,portuguese,punjabi,romanian,russian,sanskrit,serbian,sindhi,slovak,slovenian,spanish,swahili,swedish,syriac,tamil,tatar,telugu,thai,turkish,ukrainian,urdu,uzbek,vietnamese}

SeeAlsoUtilSchema

Page 1346: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PerformanceCounterTypesType(SimpleType)

DescriptionEnumerationofvalidtypesforperformancecounters.

EnumerationTypePossiblevalues:{averageBase,averageCount64,averageTimer32,counterDelta32,counterTimerInverse,sampleFraction,timer100Ns,counterTimer,rawFraction,timer100NsInverse,counterMultiTimer,counterMultiTimer100Ns,counterMultiTimerInverse,counterMultiTimer100NsInverse,elapsedTime,sampleBase,rawBase,counterMultiBase,rateOfCountsPerSecond64,rateOfCountsPerSecond32,countPerTimeInterval64,countPerTimeInterval32,sampleCounter,counterDelta64,numberOfItems64,numberOfItems32,numberOfItemsHEX64,numberOfItemsHEX32}

SeeAlsoUtilSchema

Page 1347: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoUtilSchema

Page 1348: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,execute,ui}

SeeAlsoUtilSchema

Page 1349: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoUtilSchema

Page 1350: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VersionType(SimpleType)

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

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

SeeAlsoUtilSchema

Page 1351: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WildCardLongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoUtilSchema

Page 1352: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WildCardShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoUtilSchema

Page 1353: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoUtilSchema

Page 1354: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoUtilSchema

Page 1355: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

VsSchema

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

ThesourcecodeschemafortheWindowsInstallerXMLToolsetVisualStudioExtension.

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

ChildElementsHelpCollectionHelpCollectionRefHelpFileHelpFileRefHelpFilterHelpFilterRefPlugCollectionInto

Version3.5.1623.0

Page 1356: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HelpCollectionElement(VsExtension)

DescriptionHelpNamespaceforahelpcollection.TheparentfileisthekeyfortheHxC(Collection)file.

WindowsInstallerreferencesNone

ParentsFile

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

HelpFileRef(min:0,max:unbounded)HelpFilterRef(min:0,max:unbounded)PlugCollectionInto(min:0,max:unbounded)

Attributes

Name Type Description Required

Id String PrimaryKeyforHelpNamespace.

Yes

Description String FriendlynameforNamespace.

Name String InternalMicrosoftHelpIDforthisNamespace.

Yes

SuppressCustomActions YesNoType SuppresslinkingHelpregistration

Page 1357: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

customactions.Helpredistributablemergemoduleswillberequired.Usethiswhenbuildingamergemodule.

SeeAlsoVsSchema

Version3.5.1623.0

Page 1358: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HelpCollectionRefElement(VsExtension)

DescriptionCreateareferencetoaHelpCollectionelementinanotherFragment.

WindowsInstallerreferencesNone

ParentsFragment,Module,Product

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

HelpFileRef(min:0,max:unbounded)

Attributes

Name Type Description Required

Id String PrimaryKeyforHelpNamespaceTable.

Yes

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

SeeAlsoVsSchema

Version3.5.1623.0

Page 1359: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HelpFileElement(VsExtension)

DescriptionFileforHelpNamespace.TheparentfileisthekeyforHxS(Title)file.

WindowsInstallerreferencesNone

ParentsFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String PrimaryKeyforHelpFileTable.

Yes

AttributeIndex String KeyforHxR(Attributes)file.

Index String KeyforHxI(Index)file.

Language Integer LanguageIDforcontentfile.

Yes

Name String InternalMicrosoftHelpIDforthisHelpFile.

Yes

SampleLocation String Keyforafilethat

Page 1360: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

isinthe"root"ofthesamplesdirectoryforthisHelpFile.

Search String KeyforHxQ(Query)file.

SuppressCustomActions YesNoType SuppresslinkingHelpregistrationcustomactions.Helpredistributablemergemoduleswillberequired.Usethiswhenbuildingamergemodule.

SeeAlsoVsSchema

Version3.5.1623.0

Page 1361: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HelpFileRefElement(VsExtension)

DescriptionCreateareferencetoaHelpFileelementinanotherFragment.

WindowsInstallerreferencesNone

ParentsHelpCollection,HelpCollectionRef

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String PrimaryKeyforHelpFileTable. Yes

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

SeeAlsoVsSchema

Version3.5.1623.0

Page 1362: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HelpFilterElement(VsExtension)

DescriptionFilterforHelpNamespace.

WindowsInstallerreferencesNone

ParentsFragment,Module,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String PrimaryKeyforHelpFilter.

Yes

FilterDefinition String QueryStringforHelpFilter.

Name String FriendlynameforFilter.

Yes

SuppressCustomActions YesNoType SuppresslinkingHelpregistrationcustomactions.Helpredistributablemergemoduleswillberequired.Usethiswhenbuildingamergemodule.

Page 1363: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SeeAlsoVsSchema

Version3.5.1623.0

Page 1364: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

HelpFilterRefElement(VsExtension)

DescriptionCreateareferencetoaHelpFileelementinanotherFragment.

WindowsInstallerreferencesNone

ParentsHelpCollection

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String PrimaryKeyforHelpFilter. Yes

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

SeeAlsoVsSchema

Version3.5.1623.0

Page 1365: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PlugCollectionIntoElement(VsExtension)

DescriptionPluginforHelpNamespace.

WindowsInstallerreferencesNone

ParentsHelpCollection

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Attributes String KeyforHxA(Attributes)fileofchildnamespace.

SuppressExternalNamespaces YesNoType SuppresslinkingVisualStudioHelpnamespaces.Helpredistributablemergemoduleswillberequired.Usethiswhenbuildingamergemodule.

Page 1366: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

TableOfContents String KeyforHxTfileofchildnamespace.

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

Yes

TargetFeature String Keyforthefeatureparentofthishelpcollection.Requiredonlywhenpluggingintoexternalnamespaces.

TargetTableOfContents String KeyforHxTfileofparentnamespacethatnowincludesthenewchildnamespace.

Page 1367: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

SeeAlsoVsSchema

Version3.5.1623.0

Page 1368: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoVsSchema

Page 1369: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DevelopingforWiXThissectioncoversthefollowingtopicsfordeveloperswhowanttocontributetotheWiXcodebase:

HowtobeaWindowsInstallerXMLDeveloperBuildingWiXNAntConventionsExtensionDevelopmentDevelopingforVotiveAddingtotheWiXDocumentationTestingWiX

Page 1370: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 1371: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

3)TheWindowsInstallerXMLcommunityisameritocracy.

ThoseindividualsinthecommunitywhodemonstrateanunderstandingofthecodebasebyactivelyparticipatingontheWindowsInstallerXMLmailinglistsandconsistentlysubmittinghighqualitydiffswillbegivena“Karmaboost”.WithenoughKarmayouwillearntheabilitytocommitchangesdirectlytotheWindowsInstallerXMLproject’sCVStree.

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

4)TheWindowsInstallerXMLdevelopersareallvolunteers.

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

Ifworsecomestoworse,youhaveaccesstothesourcecode.Tryreadingforawhile.:)

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

Page 1372: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

InordertofullybuildWiX,youmusthavethefollowingFrameworksandSDKsinstalled:

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

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

HTMLHelpSDK1.4orhigher[installedtoProgramFilesorProgramFiles(x86)]

TobuildSconceandVotive,youmusthavethefollowingSDKsinstalled:

VisualStudio2005SDKVersion4.0VisualStudio2008SDK

MoreinformationabouttheVisualStudioSDKcanbefoundattheVisualStudioExtensibilityCenter.

ToinstallVotiveonVisualStudio2005,2008,or2010,youmusthavetheStandardEditionorhigher.

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

Page 1373: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Replacethiswiththefollowingelement:

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

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

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

TobuildDTFhelpfiles,youneedthefollowingtools:

SandcastleJanuary2008ReleaseSandcastleHelpFileBuilder1.6.0.4

TheDTFhelpbuildlooksfortheminan"external"directoryparalleltotheWiX"src"directory:

SandcastleJanuary2008Release:external\SandcastleSandcastleHelpFileBuilder1.6.0.4:external\SandcastleBuilder

Page 1374: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

NAntConfiguration

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

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

Page 1375: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 1376: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 1377: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 1378: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

NAntConventions

BuildFileFormatInordertopromoteconsitencyandreadability,the.buildfileswillbelaidoutinthefollowingway.<TODOJRock:addtherestofthecontent>

Page 1379: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Properties

Prefixes

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

Page 1380: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DevelopingforVotiveIfyouwanttocontributecodetotheVotiveprojectordebugVotive,youmustdownloadandinstalltheVisualStudio2005SDK,availableattheVisualStudioExtensibilityDeveloperCenter.TheVisualStudio2005SDKisnon-invasiveandwillcreateanexperimentalhiveintheregistrythatwillleaveyourretailversionofVisualStudio2005unaffected.

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

Page 1381: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AddingtotheWiXDocumentationWiXdocumentationiscompiledintothefileWiX.chmasapartoftheWiXbuildprocess.Thesourcefilesforhelparelocatedinthewix\src\chmdirectory.

Page 1382: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WhattheWiXhelpcompilerdoesTheWiXhelpcompilerdoesthefollowing:

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

Page 1383: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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.

Page 1384: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

TestingWiXThissectioncontainsdocumentsonhowtocreateandexecutetestsfortheWindowsInstallerXMLToolset.

RunningTestsWritingTests

Page 1385: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RunningWiXTestsThereisasuiteofteststhatareincludedwithWiX.Theycanbeusedtoverifythatchangestothetoolsetdonotregressexistingfunctionality.

Page 1386: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 1387: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RunningthetestsThetestscanberunfromwithinVisualStudioorfromthecommandline.Beforethetestsarerun,theenvironmentvariable'WIX_ROOT'mustbesettotheWiXrootdirectory.ItshouldbesetifyouareinaWiXcommandwindow,butifitisnot:

setWIX_ROOT=c:\delivery\dev\wix

TheWIX_ROOTenvironmentvariablerequirementisusedinmanyteststolocatetestdata.

RunningthetestsfromthecommandlinewithMSTest.bat

Thereisabatchfile,test.bat,whichcanbeusedtorunthetests.

c:\delivery\dev\wix\test\test.bat[all|smoke|testname]

RunningthetestsfromthecommandlinewithMSTest.exe

RunMSTestwiththetestbinaries.

mstest.exec:\delivery\Dev\wix\build\debug\x86\wixtests.dll

RunningthetestsfromVisualStudio

Openwixtests.slnfromaWiXcommandwindow.

devenv.exec:\delivery\dev\wix\test\wixtests.sln

RunthetestsfromVisualStudioTestManager.

Page 1388: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

WritingWiXTestsThisdocumentdescribeshowtowritetestsforWiX.

Page 1389: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

LocationoftheTestsTherootdirectoryforthetestsis%WIX_ROOT%\test.Therearethreemainsubdirectories:

data:containstestdata,egwxsfilessrc:containssourcecodeforthetestsWixTestTools:containssourcecodefortheWixTestToolslibrary

Thedataandsrcdirectoriesarefurtherorganizedbyfeaturearea:

Examples:ExampletestsExtensions:TestsforWiXextensionsIntegration:Testsforintegrationoftwoormoretools.Eg.BuildinganMSIfromsourcewithCandleandLight.QTests:TestsmigratedfromtheprevioustestinfrastructureSharedData:TestdatathatissharedacrossmultipletestsTools:Testsforaparticulartool'scommandlineoptionsWixproj:Testsforbuilding.wixproj'swithMSBuild

Page 1390: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset
Page 1391: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

WixTests:ContainsallofthetestsWixTestsTools:Alibraryofwrapperclassesandverificationmethodsusedbythetests

ThesolutionshouldbeopenedfromtheWiXcommandwindowtoensurethatthe%WIX_ROOT%environmentvariableisset.

Page 1392: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 1393: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 1394: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 1395: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

DevelopingWiXExtensionsThissectioncoversthefollowingtopicsfordeveloperswhowanttocreatetheirownWiXextensions:

IntroductiontoDevelopingWiXExtensionsCreatingaSkeletonExtensionCreatingaPreprocessorExtension

Page 1396: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

IntroductiontoDevelopingWiXExtensions

CommonRequirementsInordertounderstandhoweachoftheclassesofextensionswork,oneshouldstartbylookingattheWiXsourcecode.Allextensionshavethefollowingthingsincommon:

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

Page 1397: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ConsiderationsBeforeinvestinginanextension,oneshouldevaluatewhetheranexternaltoolandthe?include?syntax(fromthepreprocessor)willprovidetheneededflexibilityforyourtechnicalneeds.

Multipleextensionsandextensiontypesaresupported,butthereisnoguaranteeoftheorderinwhichaparticularclassofextensionswillbeprocessed.Asaresult,theremustnotbeanysequencingdependenciesbetweenextensionswithinthesameextensionclass.

ExtensiondevelopersmightalsoimplementaRequiredVersionattributeontheWixelement.Thisallowssetupdevelopersusingyourextensiontorequireaspecificversionoftheextensionincaseanewfeatureisintroducedorabreakingchangeismade.YoucanaddanattributetotheWixelementinanextensionasshowninthefollowingexample.

<xs:schemaxmlns:xs="http://www.w3.org/2001/XMLSchema"xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"><xs:attributename="RequiredVersion"type="xs:string"><xs:annotation><xs:documentation>Theversionofthisextensionrequiredtocompilethedefiningsource.</xs:documentation><xs:appinfo><xse:parentnamespace="http://schemas.microsoft.com/wix/2006/wi"ref="Wix"/></xs:appinfo></xs:annotation></xs:attribute></xs:schema>

Page 1398: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ExtensionsWiXsupportsthefollowingclassesofextensions:

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

ForinformationonhowtouseWiXextensionsonthecommandlineorinsidetheVisualStudioIDE,pleasevisittheUsingWiXextensionstopic.

ForinformationonhowtouselocalizedWiXextensions,pleasevisittheLocalizedextensionstopic.

Page 1399: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CreatingaSkeletonWiXExtensionWiXextensionsareusedtoextendandcustomizewhatWiXbuildsandhowitbuildsit.

ThefirststepincreatingaWiXextensionistocreateaclassthatextendstheWixExtensionclass.Thisclasswillbethecontainerforalltheextensionsyouplanonimplementing.Thiscanbedonebyusingthefollowingsteps:

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

2. Addareferencetowix.dlltoyourproject.3. Addausingstatementthatreferstothe

Microsoft.Tools.WindowsInstallerXmlnamespace.

usingMicrosoft.Tools.WindowsInstallerXml;

4. MakeyourSampleWixExtensionclassinheritfromWixExtension.

publicclassSampleWixExtension:WixExtension{}

5. AddtheAssemblyDefaultWixExtensionAttributetoyourAssemblyInfo.cs.

[assembly:AssemblyDefaultWixExtension(typeof(SampleWixExtension.SampleWixExtension))]

6. Buildtheproject.

AlthoughthisWiXextensionwillnotdoanythingyet,youcannowpassthenewlybuiltSampleWixExtension.dllonthecommandlinetotheCandleandLightbyusingthe-extflaglikethefollowing:

candle.exeProduct.wxs-extSampleWixExtension.dlllight.exeProduct.wxs-extSampleWixExtension.dll

Thiscoversthebasicsofcreatingtheskeletonofanextension.Youcan

Page 1400: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 1401: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CreatingaPreprocessorExtensionThepreprocessorinWiXallowsextensibiltyatafewlevels.ThissamplewilldemonstratehowtoaddaPreprocessorExtensiontoyourWixExtensionthatwillhandlevariablesandfunctionsyoudefineinyourownnamespace.

ThissampleassumesyouhavealreadyreviewedtheCreatingaSkeletonExtensiontopic.

1. AddanewclasstoyourprojectcalledSamplePreprocessorExtension.

2. Ifyouaddedanewfileforthisclass,addausingstatementthatreferstotheMicrosoft.Tools.WindowsInstallerXmlnamespace.

usingMicrosoft.Tools.WindowsInstallerXml;

3. MakeyourSamplePreprocessorExtensionclassimplementPreprocessorExtension.

publicclassSamplePreprocessorExtension:PreprocessorExtension

4. AddyourSamplePreprocessorExtensiontoyourpreviouslycreatedSampleWixExtensionclassandoverridethePreprocessorExtensionpropertyfromthebaseclass.ThiswillcauseyourextensiontoknowwhattodowhenWiXasksyourextensionforitspreprocessorextension.

privateSamplePreprocessorExtensionpreprocessorExtension;

publicoverridePreprocessorExtensionPreprocessorExtension{get{if(this.preprocessorExtension==null){this.preprocessorExtension=newSamplePreprocessorExtension();

Page 1402: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

}returnthis.preprocessorExtension;

}}

5. InyourSamplePreprocessorExtensionclass,specifytheprefixesornamespacesthatyourextensionwillhandle.Forexample,ifyouwanttobeabletodefineavariablenamed$(sample.ReplaceMe),thenyouneedtospecifythatyourextensionwillhandlethe"sample"prefix.

privatestaticstring[]prefixes={"sample"};publicoverridestring[]Prefixes{get{returnprefixes;}}

6. Nowthatyouhavespecifiedtheprefixesthatyourextensionwillhandle,youneedtohandlevariablesandfunctionsthatarepassedtoyoufromWiX.YoudothisbyoverridingtheGetVariableandEvaluateFunctionmethodsfromthePreprocessorExtensionbaseclass.

publicoverridestringGetVariableValue(stringprefix,stringname){stringresult=null;//Basedonthenamespaceandname,definetheresultingstring.switch(prefix){case"sample":switch(name){case"ReplaceMe"://Thiscouldbelookedupfromanywhereyoucanaccessfromyourcode.result="replaced";break;}break;}returnresult;

Page 1403: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

}publicoverridestringEvaluateFunction(stringprefix,stringfunction,string[]args){stringresult=null;switch(prefix){case"sample":switch(function){case"ToUpper":if(0<args.Length){result=args[0].ToUpper();}else{result=String.Empty;}break;}break;}returnresult;}

7. Buildtheproject.

YoucannowpassyourextensiononthecommandlinetoCandleandexpectvariablesandfunctionsinyournamespacetobepassedtoyourextensionandbeevaluated.Todemonstratethis,tryaddingthefollowingpropertiestoyourWiXsourcefile:

<PropertyId="VARIABLETEST"Value="$(sample.ReplaceMe)"/><PropertyId="FUNCTIONTEST"Value="$(sample.ToUpper(uppercase))"/>

Theresulting.msifilewillhaveentriesinthePropertytablewiththevalues"replaced"and"UPPERCASE"inthePropertytable.

Page 1404: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 1405: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step1:CreateaFragmentYoucoulddirectlyreferencethecustomactioninthesamesourcefileastheproductdefinition.However,thatwillnotenablethesamecustomactiontobeusedelsewhere.Soratherthanputtingthecustomactiondefinitioninthesamesourcefile,let'sexercisealittlemodularityandcreateanewsourcefiletodefinethecustomactioncalled"ca.wxs".

<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'><Fragment><CustomActionId='FooAction'BinaryKey='FooBinary'DllEntry='FooEntryPoint'Execute='immediate'Return='check'/><BinaryId='FooBinary'SourceFile='foo.dll'/></Fragment></Wix>

Okay,that'sit.We'redonewitheditingthe"ca.wxs"sourcefile.Thatlittlebitofcodeshouldcompilebutitwillnotlink.Rememberlinkingrequiresthatyouhaveanentrysection.A<Fragment/>aloneisnotanentrysection.Gotothenextsteptolinkthesourcefile.

Page 1406: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step2:AddthecustomactionWewouldneedtolinkthissourcefilealongwithasourcefilethatcontained<Product/>or<Module/>tosuccessfullycomplete.

<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'><ProductId='PUT-GUID-HERE'Name='TestPackage'Language='1033'Version='1.0.0.0'Manufacturer='MicrosoftCorporation'><PackageDescription='MyfirstWindowsInstallerpackage'Comments='ThisismyfirstattemptatcreatingaWindowsInstallerdatabase'Manufacturer='MicrosoftCorporation'InstallerVersion='200'Compressed='yes'/><MediaId='1'Cabinet='product.cab'EmbedCab='yes'/><DirectoryId='TARGETDIR'Name='SourceDir'><DirectoryId='ProgramFilesFolder'Name='PFiles'><DirectoryId='MyDir'Name='TestProgram'><ComponentId='MyComponent'Guid='PUT-GUID-HERE'><FileId='readme'Name='readme.txt'DiskId='1'Source='readme.txt'/></Component><MergeId='MyModule'Language='1033'SourceFile='module.msm'DiskId='1'/></Directory></Directory></Directory><FeatureId='MyFeature'Title='My1stFeature'Level='1'><ComponentRefId='MyComponent'/><MergeRefId='MyModule'/></Feature>

<InstallExecuteSequence><CustomAction='FooAction'After='InstallFiles'/></InstallExecuteSequence></Product>

Page 1407: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

</Wix>

ThosethreelinesareallyouneedtoaddtoyourWindowsInstallerpackagesourcefiletocallthe"FooAction"CustomAction.Nowthatwehavetwofilestolinktogetherourcalltolight.exegetsalittlemorecomplicated.Herearethecompile,link,andinstallationsteps.

C:\test>candleproduct.wxsca.wxsC:\test>lightproduct.wixobjca.wixobj–outproduct.msiC:\test>msiexec/iproduct.msi

Nowaspartofyourinstallation,whatever"FooAction"issupposedtoperform,youshouldseehappenaftertheInstallFilesaction.

Page 1408: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

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

Page 1409: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step1:AuthoraWiXFragmentCreatea.wxsfilenamedexample.wxsandaddthefollowingcontent:

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

YouhavejustauthoredaFragmentthatwillbecompiledintoaWiXlibrary.Itcontainsanerrormessagethatreferencesalocalizedstring.

Page 1410: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step2:AuthortheLocalizationFileTheWiXlocalizationfiles,or.wxlfiles,areacollectionofstrings.Forlibraries,extensiondeveloperscanchoosewhetherornotthosestringscanbeoverwrittenby.wxlfilesspecifiedduringlinkageoftheproduct.Createa.wxlfilenameden-us.wxlandaddthefollowingcontent:

<?xmlversion="1.0"encoding="utf-8"?><WixLocalizationCulture="en-us"xmlns="http://schemas.microsoft.com/wix/2006/localization"><StringId="errormsg"Overridable="yes">GeneralFailure</String></WixLocalization>

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

Page 1411: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Step3:BuildthelibraryWhenboththefragmentauthoringandlocalizationfilearecomplete,theycanbecompiledandlinkedtogetherusingcandle.exeandlit.exe.

Firstcompilethe.wxssource.

candle.exeexample.wxs-outexample1.wixobj

Nowlinktogetherthe.wixobjfileandthe.wxlfileintheextensionlibrary.

lit.exeexample.wixobj-locen-us.wxl-outexample.wixlib

Youcanaddmorethanone.wxlfileforeachcultureyouwantavailable.Tobeuseful,the.wixlibshouldbeembeddedintoamanagedassemblyandreturnedbyWixExtension.GetLibrary().

Page 1412: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

candle.exeexample.wxs-extWixUIExtension-outexample.wixobjlight.exeexample.wixobj-extWixUIExtension-cultures:en-us-locen-us.wxl-outexample.msi

Page 1413: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

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

Page 1414: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

CustomactionpatternsWiXcompilerextensionsprovideonewayofimprovingcustomactionquality:Becausecompilerextensionsrunatbuildtimeinsteadofinstalltime,theycanperformallsortsofdatavalidationandconversiononstrongly-typedauthoringbeforeconvertingittorowsandcolumnsofcustomtablesintheMSIpackage.

Immediatecustomactionsthenreadthosecustomtables,checkcurrentstate(forexample,componentactionstate,thestateofthemachineitself),andserializetheresultingdataintoacustomactiondataproperty.Immediatecustomactionsaretheplacetodothelogicthatneedslivestateandcannotbedeterminedatbuildtimebyacompilerextension.Becauseimmediatecustomactionsruninthesecuritycontextoftheinstallinguserandoutsideaninstallationtransaction,theygenerallydonothavepermissionstomodifythemachineandiftheyfail,theinstallationsimplyendswithouttheneedtodoanycleanuporrollback.

Deferredcustomactionsreadthecustomactiondatapropertysetbyimmediatecustomactionstoknowwhattodo.Onewaytoimprovecustomactionreliabilityistomakeasfewdecisionsaspossibleindeferredcustomactions;instead,implementallthelogicincompilerextensionsandimmediatecustomactionsandhavedeferredcustomactionssimplyreadthecustomactiondatapropertyinalooptomodifythemachine.

TheWiXcustomactionsthatmodifythemachineusethispattern.Forexample,XmlConfigauthoringisvalidatedbytheWixUtilExtensioncompilerextensionandtranslatedtorowsandcolumnsintheXmlConfigtable.TheSchedXmlConfigimmediatecustomactionreadstheXmlConfigtable,constructsacustomactiondatapropertybasedontheXmlConfigtableandmachine'sstate(includingcheckingcomponentstateandstoringexistingfiledatatosupportrollback),thenschedulestheExecXmlConfigdeferredcustomactiontoexecutetheXMLchangesandtheExecXmlConfigRollbackrollbackcustomactiontorollbackthechanges.

Page 1415: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

TestingwithLuxLuxisaWiXextension(andassociatedtools)thatletyouwritedata-drivenunittestsforyourcustomactions.Theexecutivesummary:Luxrunsyourimmediatecustomactionsthenvalidatestheysetpropertiestothevaluesyouexpect.

Whileit'sasimpleapproach,ifyourcustomactionsarefactoredasdiscussedabove,validatingthepropertiessetbyimmediatecustomactionscanvalidatealltheinteractionbetweenyourcustomactions,theMSIpackage,andMSIitself.

Ifyourcustomactionsaren'tfactoredasdiscussed--forexample,ifyourdeferredcustomactionsexpectonlyaninstallationdirectoryandhavelogictoconstructfilepathsfromit--thenit'slikelythatyourimmediatecustomactionsdon'thavealotoflogicthat'susefultotest.

Luxdoesnothelpyoutestthecustomactioncodethatactuallymodifiesthemachine;forthat,continuetouseotherunit-testframeworksandautomatedtests.Byworkingonlywithimmediatecustomactions,LuxcanletMSIrunthecustomactionsas-is,eliminatingtheneedtowritecustomtestdoublesfortheMSIAPI.Luxrunsfromaper-userpackagesounlessyourunthetestsfromanelevatedcommandprompt,noneofthecustomactionsgetelevatedprivilegesandthereforecannotmodifythemachine.

Here'showLuxworks:

1. YouwriteyourunittestsusingXMLinWiXsourcefiles.2. TheLuxextensionconvertstheXMLtoatableinatest.msi

package.3. TheLuxcustomactionrunsafterallotherimmediatecustomactions

andevaluatesyourunittests.

Page 1416: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

AuthoringunittestsLuxsupportsthefollowingunittests:

PropertyvaluesExpressionsMulti-valuepropertiesName/value-pairproperties

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

Page 1417: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

PropertyvaluetestsAsimpletestletsyouspecifyapropertytotest,avaluetotestagainst,andtheoperatortocomparewith(whichdefaultsto"equal").

<Fragment><lux:UnitTestCustomAction="TestCustomActionSimple"Property="SIMPLE"Value="[INSTALLLOCATION]"Operator="equal"/></Fragment>

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

equal(Default)ComparesPropertytoValueandsucceedsiftheyareequal.

notEqualComparesPropertytoValueandsucceedsiftheyareNOTequal.

caseInsensitiveEqualComparesPropertytoValueandsucceedsiftheyareequal(ignoringcase).

caseInsensitiveNotEqualComparesPropertytoValueandsucceedsiftheyareNOTequal(ignoringcase).

Page 1418: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

TestconditionsConditionsletyouvalidatecodepathsinyourcustomaction.Forexample,ifyourcustomactionbehavesdifferentlyonWindowsXPthanitdoesonWindowsVistaandlater,youcancreatetwotestswithmutuallyexclusiveconditions:

<Fragment><lux:UnitTestCustomAction="TestCustomActionSimple"Property="SIMPLE"Value="[INSTALLLOCATION]"><lux:Condition><![CDATA[VersionNT<600]]></lux:Condition></lux:UnitTest><lux:UnitTestCustomAction="TestCustomActionSimple"Property="SIMPLE"Value="[INSTALLLOCATION]"><lux:Condition><![CDATA[VersionNT>=600]]></lux:Condition></lux:UnitTest></Fragment>

Ifatesthasacondition,thetestrunsonlyifitsconditionistrue.

Page 1419: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

ExpressiontestsExpressiontestsletyoutestanyvalidMSIexpression.Iftheexpressionistrue,thetestpasses.Iftheexpressionisfalseorinvalid,thetestfails.

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

Page 1420: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Multi-valuepropertytestsBecausedeferredcustomactionscanaccessonlyasinglecustom-actiondataproperty,customactionsthatneedmorethanonepieceofdataencodeitinasinglestring.Onewayistohavetheimmediatecustomactionseparatemultipleelementswithaknownseparatorcharacter,thenhavethedeferredcustomactionsplitthestringatthoseseparatecharacters.LuxsupportssuchseparatorsusingtheValueSeparatorandIndexattributes.

<Fragment><lux:UnitTestCustomAction="TestCustomActionMultiValue"Property="MULTIVALUE"ValueSeparator="*"><lux:Condition>VersionNT</lux:Condition><lux:UnitTestIndex="0"Value="1"/><lux:UnitTestIndex="1"Value="[INSTALLLOCATION]"><lux:Condition>NOTInstalled</lux:Condition></lux:UnitTest><lux:UnitTestIndex="2"Value="WIXEAST"/></lux:UnitTest></Fragment>

AconditionundertheparentUnitTestelementappliestoallindividualunittests.OverrideitwithaConditionchildelement.

Page 1421: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Name/value-pairpropertytestsAnotherwayofprovidingmultiplevaluestoadeferredcustomactionistocombinename/valuepairsintoasinglestring.Luxsupportsname/value-pairpropertiesusingtheNameValueSeparatorandIndexattributes.

<Fragment><lux:UnitTestCustomAction="TestCustomActionNameValuePairs"Property="NAMEVALUEPAIRS"NameValueSeparator="#"><lux:UnitTestIndex="InstallationRoot"Value="[INSTALLLOCATION]"/><lux:UnitTestIndex="Developers"Operator="caseInsensitiveNotEqual"Value="WIXEAST"/></lux:UnitTest></Fragment>

Page 1422: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

TestmutationsImmediatecustomactionsfrequentlyneedtocreatedifferentcustomactiondatadependingonglobalmachinestate.Forexample,ifacomponentisalreadyinstalled,acustomactionmighthavedifferentbehaviortoupgradethecomponent,versusinstallingitforthefirsttime.

BecauseLuxrunsonlyimmediatecustomactions,it'snotpossibletoactuallyupdatetheglobalmachinestate.OneapproachistocreatemultiplecustomactionDLLs,mockingMSIfunctionstoreturnhard-codedvalues.Luxsimplifiesthismodelwithtestmutations.

Testmutationsletyouauthorunittestswithdifferentexpectedresults.ThemutationidispassedasthevalueoftheWIXLUX_RUNNING_MUTATIONproperty.Yourcustomaction,typicallyinan'#ifdefDEBUG'block,retrievestheWIXLUX_RUNNING_MUTATIONpropertyandmockdifferentbehaviorbasedonthemutation.Toauthortestmutations,usetheMutationelementwithUnitTestelementsaschildren.Forexample:

<lux:MutationId="SimulateDiskFull"><lux:UnitTest.../></lux:Mutation>

Nitrunsthetestpackageonceforeachmutation,settingtheWIXLUX_RUNNING_MUTATIONpropertytoonemutationidatatime.Teststhataren'tchildrenofamutationareruneverytime.

Page 1423: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

BuildingtestpackagesLuxunittestsrunfromaminimalpackagethatincludesjustyourunittestsandtheresourcestheyneedtorun.BecauseLuxrunsonlyimmediatecustomactions,itdoesn'tneedafull,per-machinepackagethatincludesallthefilesandotherresourcestobeinstalled.SuchaminimalpackagesavesbuildtimebutdoesrequirethatyourWiXsourcecodebewellmodularizedwithfragments.Forexample,youshouldalwaysauthorunittestsinfragmentsseparatefromanyotherauthoring.Ifyoumixunittestswithotherauthoring,WiXincludestheunit-testdatainyour"real"installers.Likewise,anyotherWiXauthoringincludedinunit-testfragmentsisincludedintestpackages.

Luxcomeswithatoolthatsimplifiesthecreationoftestpackages.Itsnameislux.exe.Touselux.exe:

1. Compilethesourcefilecontainingyourunittests.2. Runlux.exeonthe.wixobjfileandspecifyasourcefileforthetest

package.3. Compilethetestpackagesource.4. Linkthetestpackage.wixobjwiththeunittests.wixobj.

Forexample:

candle-extWixLuxExtensionCustomActions.wxsluxCustomActions.wixobj-outLuxSample1_test.wxscandle-extWixLuxExtensionLuxSample1_test.wxslight-extWixLuxExtensionLuxSample1_test.wixobjCustomActions.wixobj-outLuxSample1_test.msi

LuxalsoincludesanMSBuildtaskand.targetsfiletoletyoubuildtestpackagesfromthesame.wixprojyouusetobuildyourinstallers.Tobuildatestpackage,buildtheBuildTestPackagetargetusingMSBuild3.5:

%WINDIR%\Microsoft.NET\Framework\v3.5\MSBuild.exe/t:BuildTestPackage

Page 1424: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

RunningunittestsAfterbuildingthetestpackage,youcanrunitwithloggingenabledtocapturetestresults:

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

SearchthelogforWixRunImmediateUnitTeststoseetestresultsandotherloggingfromtheLuxcustomaction.

Page 1425: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

Nit:TheLuxtestrunnerLuxalsoincludesNit,aconsoleprogramthatmonitorstheloggingmessagesemittedbyunittestsandreportssuccessorfailure.TouseNitonyourtestpackages,justspecifytheirfilenamesasargumentstonit.exe.Forexample:

nitLuxSample1_test.msi

LuxalsoletsyourunNitonyourtestpackagesfromthesame.wixprojyouusetobuildyourinstallers.TorunatestpackageunderNit,buildtheTesttargetusingMSBuild3.5:

%WINDIR%\Microsoft.NET\Framework\v3.5\MSBuild.exe/t:Test

Thetestpackagewillbebuiltbeforethetestsarerun,ifnecessary.Theoutputlookslikethefollowing,withfailingtestshighlightedinredasbuilderrors:

Test:Microsoft(R)WindowsInstallerXmlUnitTestRunnerversion3.5.1204.0Copyright(C)MicrosoftCorporation.Allrightsreserved.TestluxB21F0D12E0701DBA30FFB92A532A5390passed:Property'SIMPLE'matchedexpectedvalue'[INSTALLLOCATION]'.TestTestConditionBeforeVistapassed:Property'SIMPLE'matchedexpectedvalue'[INSTALLLOCATION]'.TestTestConditionVistaOrLaterpassed:Property'SIMPLE'matchedexpectedvalue'[INSTALLLOCATION]'.TestTestExpressionTruthpassed:Expression'NOTMsiSystemRebootPendingANDSIMPLE'evaluatedtotrue.nit.exe:errorNIT8103:TestluxA6D27EC5903612D7F3786FF71952E314failed:Property'MULTIVALUE'expectedvalue'2'butactualvaluewas'1'.Testlux210257649C16AFA33793F1CDDF575505passed:Property'MULTIVALUE'matchedexpectedvalue'[INSTALLLOCATION]'.nit.exe:errorNIT8103:Testlux402940A90D3ADAD181D599AB8C260FA0failed:Property'MULTIVALUE'expectedvalue'xxxWIXEAST'butactualvaluewas'WIXEAST'.Testlux453EC8DB458A8F66F0D22970CFF2AE99passed:Property'NAMEVALUEPAIRS'matchedexpectedvalue'[INSTALLLOCATION]'.Testlux20CB4F88795F22D15631FD60BA03AFEBpassed:Property'NAMEVALUEPAIRS'matchedexpectedvalue'WIXWEST'.nit.exe:errorNIT8102:2testsfailed.7testspassed.DoneBuildingProject"C:\Delivery\Dev\wix35\src\lux\samples\LuxSample1\LuxSample1.wixproj"(Testtarget(s))--FAILED.

Page 1426: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

BuildFAILED.

"C:\Delivery\Dev\wix35\src\lux\samples\LuxSample1\LuxSample1.wixproj"(Testtarget)(1)->(Testtarget)->nit.exe:errorNIT8103:TestluxA6D27EC5903612D7F3786FF71952E314failed:Property'MULTIVALUE'expectedvalue'2'butactualvaluewas'1'.nit.exe:errorNIT8103:Testlux402940A90D3ADAD181D599AB8C260FA0failed:Property'MULTIVALUE'expectedvalue'xxxWIXEAST'butactualvaluewas'WIXEAST'.nit.exe:errorNIT8102:2testsfailed.7testspassed.

0Warning(s)3Error(s)

TimeElapsed00:00:07.87

Page 1427: Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to create Windows Installer-based deployment packages for your application. The WiX toolset

FAQArethesereallyunittests?TheylookalotlikeFittests.

Fittestsaretabularanddata-driven,sotheyhavealotincommonwithLux'sunittests.Butfittestsarefocusedonhigh-leveloutputs,whereasunittestsarelow-leveldevelopertests.

Usingthecustomactioncodeas-issoundsgood,butarethereanylimitationswiththatapproach?

Yes.Becauseyouarerunningtheactualcustomaction,anycodepathsthatrelyonmachinestatereflectthestateofthemachineyourunthetestson.Forexample,codethathasdifferentbehaviorondifferentversionsofWindowsrunsonlyoneway,justlikeitdoesinanormalinstaller.YoucanadddebugcodethatlooksforthepresenceoftheWIXLUXTESTPACKAGEproperty;it'ssetto1inatestpackage.

Ihaveunitteststhatfailbecausedirectorypropertiesarebeingreturnedasemptystrings.Why?

Themostlikelycauseisthatyourdirectoriesaredefinedaschildrenofyourinstaller'sProductelement.Lux.exebuildsitsownProductelementtoproductaminimaltestpackage,sononeoftheresourcesdefinedinyourProductareavailabletotheunittests.ThesimplestsolutionistomovethoseresourcestotheirownFragment.

DoIhavetowritemycustomactionsinC++?No,Luxworkswithanyimmediatecustomactions,regardlessofthelanguagethey'rewrittenin,includingMSItype51property-settingcustomactions.