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

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

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

Page 1: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

IntroductiontoWindowsInstallerXML(WiX)toolset

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

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

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

Page 2: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Seethefollowingtopicsformoredetailedinformation:

FundamentalToolsandConceptsCreatingInstallationPackageBundlesWorkinginVisualStudioWorkingwithMSBuildHowToGuidesStandardCustomActionsCreatinganInstallationPatchWiXSchemaReferenceDevelopingforWiX

Page 3: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WiXsystemrequirementsWiXsupportsboth.NET3.5and4.0andlater.WiX'sMSBuildsupportsrequires.NET3.5,whichisnotinstalledbydefaultonWindows8andWindowsServer2012andlater.Toinstallthe.NET3.5feature,gotoControlPanel,openProgramsandFeatures,andchooseTurnWindowsfeaturesonoroff.Inthelistoffeatures,choose.NETFramework3.5(includes.NET2.0and3.0)andthenchooseOK.

InthenextversionofWiX(v3.11),.NET4.0willberequired;buildingusing.NET3.5willnolongerbesupported.

Page 4: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WiXToolsetLicenseTheWiXtoolsetisreleasedundertheMicrosoftReciprocalLicense(MS-RL).AreciprocallicenseisusedtoensurethatotherswhobuildontheeffortoftheWiXcommunitygivebacktotheWiXcommunity.SpecificallythelicensechangesandimprovementstotheWiXtoolsetmustbepublishedusingthesamelicense.

ThefulltextoftheMS-RLlicenseisreproducedbelow.ItcanalsobefoundintheLICENSE.TXTfileincludedwiththesourcecode.

MicrosoftReciprocalLicense(MS-RL)

Thislicensegovernsuseoftheaccompanyingsoftware.Ifyouusethesoftware,youacceptthislicense.Ifyoudonotacceptthelicense,donotusethesoftware.

1. Definitions

Theterms"reproduce,""reproduction,""derivativeworks,"and"distribution"havethesamemeaninghereasunderU.S.copyrightlaw.

A"contribution"istheoriginalsoftware,oranyadditionsorchangestothesoftware.

A"contributor"isanypersonthatdistributesitscontributionunderthislicense.

"Licensedpatents"areacontributor'spatentclaimsthatreaddirectlyonitscontribution.

2. GrantofRights

(A)CopyrightGrant-Subjecttothetermsofthislicense,includingthelicenseconditionsandlimitationsinsection3,eachcontributorgrantsyouanon-exclusive,worldwide,royalty-freecopyrightlicensetoreproduceitscontribution,preparederivativeworksofitscontribution,anddistributeitscontributionoranyderivativeworks

Page 5: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

thatyoucreate.

(B)PatentGrant-Subjecttothetermsofthislicense,includingthelicenseconditionsandlimitationsinsection3,eachcontributorgrantsyouanon-exclusive,worldwide,royalty-freelicenseunderitslicensedpatentstomake,havemade,use,sell,offerforsale,import,and/orotherwisedisposeofitscontributioninthesoftwareorderivativeworksofthecontributioninthesoftware.

3. ConditionsandLimitations

(A)ReciprocalGrants-Foranyfileyoudistributethatcontainscodefromthesoftware(insourcecodeorbinaryformat),youmustproviderecipientsthesourcecodetothatfilealongwithacopyofthislicense,whichlicensewillgovernthatfile.Youmaylicenseotherfilesthatareentirelyyourownworkanddonotcontaincodefromthesoftwareunderanytermsyouchoose.

(B)NoTrademarkLicense-Thislicensedoesnotgrantyourightstouseanycontributors'name,logo,ortrademarks.

(C)Ifyoubringapatentclaimagainstanycontributoroverpatentsthatyouclaimareinfringedbythesoftware,yourpatentlicensefromsuchcontributortothesoftwareendsautomatically.

(D)Ifyoudistributeanyportionofthesoftware,youmustretainallcopyright,patent,trademark,andattributionnoticesthatarepresentinthesoftware.

(E)Ifyoudistributeanyportionofthesoftwareinsourcecodeform,youmaydosoonlyunderthislicensebyincludingacompletecopyofthislicensewithyourdistribution.Ifyoudistributeanyportionofthesoftwareincompiledorobjectcodeform,youmayonlydosounderalicensethatcomplieswiththislicense.

(F)Thesoftwareislicensed"as-is."Youbeartheriskofusingit.Thecontributorsgivenoexpresswarranties,guaranteesorconditions.Youmayhaveadditionalconsumerrightsunderyourlocallawswhichthislicensecannotchange.Totheextentpermittedunderyourlocallaws,thecontributorsexcludetheimpliedwarrantiesofmerchantability,fitnessforaparticularpurposeandnon-

Page 6: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

infringement.

Page 7: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

GettingStartedThereareseveraloptionsavailabletogetstartedlearninghowtouseWiX.

Page 8: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HowToGuidesThishelpfileincludesasetofHowToGuidesthatexplainhowtoaccomplishcommonWindowsInstallertasksusingWiX.

Page 10: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CommunityIfyouprefertolearnbyinteractingwiththecommunity,thereisaWiXusersmailinglist.

Page 11: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 12: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 13: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ReadingSourceCodeIfyouprefertolearnbyreadingcode,WiXisanopensourceproject,andyoucanlookatthesourcecodebyreviewingtheHowtobeaWiXDevelopertopic.

Page 14: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

FixaBug,WriteaFeatureIfyouprefertolearnbywritingcode,youcanreviewtheWiXissuetracker.

ForWiXdevelopmentassistance,thereisaWiXdevelopermailinglist.

Page 15: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

1. LinkstodownloadweeklyreleasesoftheWiXtoolset.2. TheWiXbugdatabasewhereyoucanreportnewbugsorcheckthe

statusofexistingbugs.3. Mailingliststoaskquestions,makesuggestionsordiscusstheWiX

toolsetwithotherusersandtheWiXdevelopers.4. LinkstoblogsmaintainedbytheWiXdevelopers.

Page 16: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

FileTypesTherearemanyfiletypesinWiXthataregeneratedfromdifferenttoolsinthetoolset.Atthehighestlevel,allinputfilesandintermediatefilesforWiXareXMLfiles.ThefinaloutputisintheformofstandardWindowsInstallerdatabasefiles.

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

Page 17: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 18: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 19: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 20: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 21: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 22: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ListofToolsToviewtheusageinformationofthetools,run/?onthetoolviathecommandline.

Name Description

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

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

Lit Combinesmultiple.wixobjfilesintolibrariesthatcanbeconsumedbyLight.Formoreinformation,seeLibrarian.

Dark ConvertsaWindowsInstallerdatabaseintoasetofWiXsourcefiles.ThistoolisveryusefulforgettingallyourauthoringintoaWiXsourcefilewhenyouhaveanexistingWindowsInstallerdatabase.However,youwillthenneedtotweakthisfiletoaccomodatedifferentlanguagesandbreakingthingsintofragments.

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

Insignia Inscribesaninstallerdatabasewithinformationaboutthedigitalcertificatesitsexternalcabsaresignedwith.Formore

Page 23: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

information,seeInsignia.

Melt Convertsan.msmintoacomponentgroupinaWiXsourcefile.

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

Smoke Runsvalidationcheckson.msior.msmfiles.

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

WixCop EnforcesstandardsonWiXsourcefiles.WixCopcanalsobeusedtoassistinconvertingasetofWiXsourcefilescreatedusinganolderversionofWiXtothelatestversionofWiX.Formoreinformation,seeWixCop.

WixUnit RunsvalidationsonasetofXMLfilesandtheexpectedoutputfile.TakesasetofWiXsourcefilesandanexpectedMSIastheinputandoutputsPass/Fail.

LuxandNit

Authorandrundeclarativeunittestsforcustomactions.Formoreinformation,seeUnit-testingcustomactionswithLux.

Page 24: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 25: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WiXToolsetDiagramBelowisadiagramshowingtherelationshipofalloftheWiXtoolsandtheoutputthattheygenerate.

Page 26: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

TheconditionalstatementsareBooleanexpressionsbasedonenvironmentvariables,variablesdefinedinthexml,literalvalues,andmore.

Example

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

Whenyoubuildtheenterprisesku,thisfilewillbeincludedinthexmlpassedontocandle.Whenyoubuildadifferentsku,thexmlfromEnterpriseFeature.wxiwillbeignored.

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

Page 27: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Therootelementoftheincludefilemustbe<Include>.Therearenootherrequirementsbeyondtheexpectedwixschema.Forexample,

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

Page 28: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VariablesAnyvariablecanbetestedforitsvalueorsimplyitsexistence.Customvariablescanalsobedefinedinyourxml.

Threetypesofvariablesaresupported:

$(env._NtPostBld)Getstheenvironmentvariable%_NtPostBld%

$(sys.CURRENTDIR)Getsthesystemvariableforthecurrentdirectory

$(var.A)GetsthevariableAthatwasdefinedinthisxml

Thepreprocessorevaluatesvariablesthroughouttheentiredocument,includingin<?if?>expressionsandattributevalues.

EnvironmentVariables

Anyenvironmentvariablecanbereferencedwiththesyntax$(env.VarName).Forexample,ifyouwanttoretrievetheenvironmentvariable%_BuildArch%,youwoulduse$(env._BuildArch).Environmentvariablenamesarecase-insensitive.

SystemVariables

WiXhassomebuilt-invariables.Theyarereferencedwiththesyntax$(sys.VARNAME)andarealwaysinuppercase.

CURRENTDIRThecurrentdirectorywherethebuildprocessisrunning.

SOURCEFILEPATHThefullpathtothefilebeingprocessed.

SOURCEFILEDIRThedirectorycontainingthefilebeingprocessed.

Page 29: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BUILDARCHTheplatform(Intel,x64,Intel64,ARM)thispackageiscompiledfor(setbythe-archswitchtoCandle.exeortheInstallerPlatformMSBuildproperty).

NOTE:Allbuilt-indirectoryvariablesare“\”terminated.

Customvariables<?define?>

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

Howtodefinetheexistenceofavariable:<?defineMyVariable?>

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

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

Howtoundefineavariable:<?undefMyVariable?>

Todefinevariablesonthecommandline,youcantypeacommandsimilartothefollowing:

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

Youcanrefertovariablesinyoursourcethataredefinedonlyonthecommandline,butcandle.exewillerrwhenpreprocessingyoursourcecodeifyoudonotdefinethosevariablesonthecommandline.

Page 30: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ConditionalStatementsThereareseveralconditionalstatements,theyinclude:

<?if?><?ifdef?><?ifndef?><?else?><?elseif?><?endif?>

Thepurposeoftheconditionalstatementistoallowyoutoincludeorexcludeasegmentofxmlatbuildtime.Iftheexpressionevaluatestotrue,itwillbeincluded.Ifitevaluatestofalse,itwillbeignored.

Theconditionalstatementsalwaysbeginwitheitherthe<?if?>,<?ifdef?>,or<?ifndef?>tags.Theyarefollowedbyanxmlblock,anoptional<?else?>or<?elseif?>tag,andmustendwithan<?endif?>tag.

Expressions(usedin<?if?>and<?elseif?>)

Forexample:<?if[expression]?>

Theexpressionfoundinsidethe<?if?>and<?elseif?>tagsisaBooleanexpression.Itadherestoasimplegrammarthatfollowstheserules:

TheexpressionisevaluatedlefttorightExpressionsarecase-sensitivewiththefollowingexceptions:

EnvironmentalvariablenamesThesekeywords:and,or,notThe~=operatoriscase-insensitive.

Allvariablesmustusethe$()syntaxorelsetheywillbeconsideredaliteralvalue.Ifyouwanttousealiteral$(,escapethedollarsignwithasecondone.Forexample,$$(Variablescanbecomparedtoaliteraloranothervariable

Page 31: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Comparisonswith=,!=,and~=arestringcomparisons.Comparisonswithinequalityoperators(<,<=,>,>=)mustbedoneonintegers.Ifthevariabledoesn'texist,evaluationwillfailandanerrorwillberaised.

Theoperatorprecedenceisasfollows.Notethat“and”and“or”havethesameprecedence:

""(),$()<,>,<=,>=,=,!=,~=NotAnd,Or

Nestedparenthesisareallowed.Literalscanbesurroundedbyquotes,althoughquotesarenotrequired.Quotes,leading,andtrailingwhitespacearestrippedoffliteralvalues.Invalidexpressionswillcauseanexceptiontobethrown.

Variables(usedin<ifdef?>and<ifndef?>)

Forexample:<?ifdef[variable]?>

For<ifdef?>,ifthevariablehasbeendefined,thisstatementwillbetrue.<ifndef?>worksintheexactoppositeway.

MoreExamples

Notethattheseexampleswillactuallyeachbeano-opbecausetherearen’tanytagsbetweentheifandendiftags.

<?definemyValue="3"?><?definesystem32=$(env.windir)\system32?><?defineB="goodvar"?><?defineC=3?><?defineIExist?>

<?if$(var.Iexist)?><?endif?><!--true-->

Page 32: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

<?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 33: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Anexample:

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

Page 34: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

createaprivatecopyofthevariablecontextsetthevariableintheforeachstatementtoaniterationonthesemicolondelimitedlistgenerateafragmentwiththevariablesubstituted

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

Anfewexamples:

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

or

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

Page 35: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 36: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 37: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

FunctionsThepreprocessorsupportsthefollowingfunctions:

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

Page 38: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 39: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Thecompilationprocessisrelativelystraightforward.TheWiXschemalendsitselftoasimplerecursivedescentparser.Thecompilerprocesseseachelementinturncreatingnewsymbols,calculatingthenecessaryreferencesandgeneratingtherawdataforthe.wixobjfile.

Page 40: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WindowsInstallerdatabase.

Finally,lightworksthroughthemechanicsofgeneratingIDTfilesandimportingthemintotheWindowsInstallerdatabase.Afterthedatabaseisfullycreated,thefinalpostprocessingisdonetomergeinanyMergeModulesandcreateacabinetifnecessary.TheresultisafullyfunctionalWindowsInstallerdatabase.

Page 42: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UsageInformation

light.exe[-?][-bbasePath][-nologo][-outoutputFile]objectFile[objectFile...][@responseFile]

Lightsupportsthefollowingcommandlineparameters:

Switch Meaning

-ai Allowidenticalrows;identicalrowswillbetreatedasawarning.

-au Allowunresolvedreferences;thiswillcauseinvalidoutputtobecreated.

-b<path> Specifyabasepathtolocateallfiles;thedefaultvalueisthecurrentworkingdirectory.

-bcgg Usebackwardscompatibleguidgenerationalgorithm(rarelyneeded).

-bf Bindfilesintoawixout;thisswitchisonlyvalidwhenalsoprovidingthe-xooption.

-binder<classname>

Specifyaspecificcustombindertouseprovidedbyanextension.

-cc Specifyapathtocachebuiltcabinetfiles;thepathwillnotbedeletedafterlinking.

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

Page 43: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

-cultures:<cultures>

Specifiesasemicolonorcommadelimitedlistoflocalizedstringculturestoloadfrom.wxlfilesandlibraries.Precedenceofculturesisfromlefttoright.FormoreinformationseeSpecifyingculturestobuild.

-cub Providea.cubfilecontainingadditionalinternalconsistencyevaluators(ICEs)torun.

-d<name>=<value>

DefineaWiXvariable.

-dcl:level Setthedefaultcabinetcompressionlevel.Possiblevaluesarelow,medium,high,none,andmszip(default).

-dut Dropunrealtablesfromtheoutputimage.

-eav Exactassemblyversions.Ifthisoptionisnotspecified,theassemblyversionispaddedwithzerosincertaincasestoworkaroundabugthatexistsintheinitialreleaseofthe.NETFramework1.1.Thisbugwassubsequentlyfixedinthe.NETFramework1.1SP1.Usethisoptionifyourequirenon-paddedassemblyversionsintheMsiAssemblyNametable(orinrelevantbindvariables),anddonotmindifyourMSIisincompatiblewiththeinitialreleaseofthe.NETFramework1.1.Formoreinformation,seethisblogpost.

Notethatwhenusingthisoption,yoursetupwillstillbecompatiblewiththe.NETFramework1.0RTM,.NETFramework1.1SP1,.NETFramework2.0,andlaterversionsofthe.NETFramework.

ThispropertyisavailablestartingwithWiXv3.5.

Page 44: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

-ext Specifyanextensionassembly.

-fv AddaFileVersionattributetoeachassemblyintheMsiAssemblyNametable(rarelyneeded).

-ice:<ICE> Specifyaspecificinternalconsistencyevaluator(ICE)torun.

-loc<loc.wxl> Providea.wxlfiletoreadlocalizationstringsfrom.

-nologo SkipprintingLightlogoinformation.

-notidy PreventLightfromdeletingtemporaryfilesafterlinkingiscomplete(usefulfordebugging).

-O1 Optimizesmartcabbingforsmallestcabinets(deprecated).

-O2 Optimizesmartcabbingforfasterinstalltime(deprecated).

-out Specifyanoutputfile;bydefault,Lightwillwritetothecurrentworkingdirectory.

-pdbout<output.wixpdb>

Savethewixpdbtoaspecificfile.Thedefaultisthesamenameastheoutputwiththewixpdbextension.

-pedantic Displaypedanticoutputmessages.

-reusecab Reusecabinetsfromthecabinetcacheinsteadofrebuildingcabinets.

-sa Suppressassemblies:donotgetassemblynameinformationforassemblies.

Page 45: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

-sacl SuppressresettingACLs(usefulwhenlayingoutanimagetoanetworkshare).

-sadmin SuppressaddingdefaultAdminsequenceactions.

-sadv SuppressaddingdefaultAdvtsequenceactions.

-sloc Suppresslocalization.

-sice:<ICE> Suppressrunninginternalconsistencyevaluators(ICEs)withspecificIDs.

-sma SuppressprocessingthedataintheMsiAssemblytable.

-sf Suppressfiles:donotgetanyfileinformation;thisswitchisequivalenttothecombinationofthe-saand-shswitches.

-sh Suppressfileinformation:donotgethash,version,languageandotherfileproperties.

-sl Suppresslayoutcreation.

-spdb Suppressoutputtingthewixpdb.

-ss Suppressschemavalidationfordocuments;thisswitchprovidesaperformanceboostduringlinking.

-sts SuppresstaggingsectionIdattributeonrows.

-sui SuppressaddingdefaultUIsequenceactions.

-sv Suppressintermediatefileversionmismatchchecking.

Page 46: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

-sval SuppressMSI/MSMvalidation.

-sw<N> SuppresswarningswithspecificmessageIDs.

-swall Suppressallwarnings(deprecated).

-usf<output.xml>

Specifyanunreferencedsymbolsfile.

-v Generateverboseoutput.

-wx<N> Treatwarningsaserrors.

-wxall Treatallwarningsaserrors(deprecated).

-xo GenerateXMLoutputinsteadofanMSI.

-? DisplayLighthelpinformation.

Page 47: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BinderVariables

StandardBinderVariables

Somepropertiesarenotavailableuntilthelinkerisabouttogenerate,orbind,thefinaloutput.Thesevariablesarecalledbindervariablesandsupportedbindervariablesarelistedbelow.

AllVersionedFiles

Thefollowingstandardbindervariablesareavailableforallversionedbinaries.

Variablename Exampleusage Examplevalue

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

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

Assemblies

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

Variablename Exampleusage

bind.assemblyCulture.FileID(managedonly)

!(bind.assemblyCulture.MyAssembly)

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

bind.assemblyFullName.FileID !(bind.assemblyFullName.MyAssembly)

Page 48: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

(managedonly)

bind.assemblyFullNamePreservedCase.FileID(managedonly)

!(bind.assemblyFullNamePreservedCase.MyAssembly)

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

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

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

bind.assemblyPublicKeyTokenPreservedCase.FileID(managedonly)

!(bind.assemblyPublicKeyTokenPreservedCase.MyAssembly)

bind.assemblyType.FileID(nativeonly)

!(bind.assemblyType.MyAssembly)

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

Properties

YoucanalsoreferencepropertyvaluesfromthePropertytableatbindtime;however,youcannotreferencepropertiesasbindervariableswithin

Page 49: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

otherproperties,includingtheattributesontheProductelement-manyofwhicharecompiledintothePropertytable.Youcanreferenceotherbindervariableslikefileinformationaboveinproperties,orevenlocalizationandcustombindervariablesdocumentedbelow.

SpecializationsforeachfieldoftheProductVersionpropertyarealsoprovidedasshownbelow.IfyouhavedefinedpropertieslikeProductVersion.Majorinyourpackageauthoringtheywillnotbeoverwritten,butwillbeusedinsteadoftheautomaticbindervariableswiththesamename.

Variablename Exampleusage

bind.property.Property !(bind.property.ProductVersion)

bind.property.ProductVersion.Major !(bind.property.ProductVersion.Major)

bind.property.ProductVersion.Minor !(bind.property.ProductVersion.Minor)

bind.property.ProductVersion.Build !(bind.property.ProductVersion.Build)

bind.property.ProductVersion.Revision !(bind.property.ProductVersion.Revision)

PackageProperties

Youcanreferencethefollowingpropertiesfrompackagesinyourbundle.Thisallowsdeveloperstousepropertyvaluesalreadydefinedintheirpackagestosetattributesintheirbundle.

Variablename Exampleusage

bind.packageDescription.PackageID !(bind.packageDescription.MyProduct)

Page 50: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

bind.packageLanguage.PackageID !(bind.packageLanguage.MyProduct)

bind.packageManufacturer.PackageID !(bind.packageManufacturer.MyProduct)

bind.packageName.PackageID !(bind.packageName.MyProduct)

bind.packageVersion.PackageID !(bind.packageVersion.MyProduct)

LocalizationVariables

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

Localizationvariablesareinthefollowingformat:

!(loc.VariableName)

CustomBinderVariables

YoucancreateyourownbindervariablesusingtheWixVariableelementorbysimplytypingyourownvariablenameinthefollowingformat:

!(bind.VariableName)

Custombindervariablesallowyoutousethesame.wixobjfilesbutspecifydifferentvalueswhenlinking,similartohowlocalizationvariablesareused.Youmightusebindervariablesfordifferentbuilds,likevaryingthetargetprocessorarchitecture.

Page 51: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LibraryTool(lit)LitistheWiXlibrarycreationtool.Itcanbeusedtocombinemultiple.wixobjfilesintolibrariesthatcanbeconsumedbylight.

Page 52: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UsageInformation

lit.exe[-?][-nologo][-outlibraryFile]objectFile[objectFile...][@responseFile]

Litsupportsthefollowingcommandlineparameters:

Switch Meaning

-b Specifyabasepathtolocateallfiles;thedefaultvalueisthecurrentworkingdirectory.

-bf Bindfilesintothelibraryfile.

-ext<extension>

Specifyanextensionassembly.

-loc<loc.wxl>

Providea.wxlfiletoreadlocalizationstringsfrom.

-nologo SkipprintingLitlogoinformation.

-out Specifyanoutputfile;bydefault,Litwillwritetothecurrentworkingdirectory.

-pedantic Showpedanticmessages.

-ss Suppressschemavalidationfordocuments;thisswitchprovidesaperformanceboostduringlinking.

-sv Suppressintermediatefileversionmismatchchecking.

-sw<N> SuppresswarningswithspecificmessageIDs.For

Page 53: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

example,-sw1011-sw1012.

-swall Suppressallwarnings(deprecated).

-v Generateverboseoutput

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

-wxall Treatallwarningsaserrors(deprecated).

-? DisplayLithelpinformation

Page 54: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HarvestTool(Heat)GeneratesWiXauthoringfromvariousinputformats.

Everytimeheatisrunitregeneratestheoutputfileandanychangesarelost.

Page 55: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UsageInformation

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

Heatsupportstheharvestingtypes:

HarvestType Meaning

dir Harvestadirectory.

file Harvestafile.

project HarvestoutputsofaVisualStudioproject.

website HarvestanIISwebsite.

perf Harvestperformancecountersfromacategory.

reg Harvestregistyinformationfromaregfile..

Heatsupportsthefollowingcommandlineparameters:

Switch Meaning

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

-cg<ComponentGroupName> Componentgroupname(cannotcontainspacese.g-cgMyComponentGroup).

-configuration Configurationtosetwhenharvestingtheproject.

Page 56: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

-directoryid Overriddendirectoryidforgenerateddirectoryelements.

-dr<DirectoryName> Directoryreferencetorootdirectories(cannotcontainsspacese.g.-drMyAppDirRef).

-ext<extension> Extensionassemblyor"class,assembly".

-generate Specifywhatelementstogenerate,oneof:components,container,payloadgroup,layout(defaultiscomponents).

-gg Generateguidsnow.Allcomponentsaregivenaguidwhenheatisrun.

-g1 Generatecomponentguidswithoutcurlybraces.

-ke Keepemptydirectories.

-nologo Skipprintingheatlogoinformation.

-out Specifyoutputfile(default:writetocurrentdirectory).

-platform Platformtosetwhenharvestingtheproject.

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

Binaries-primaryoutputoftheproject,e.g.theassemblyexeordll.

Page 57: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

-projectname Overriddenprojectnametouseinvariables.

-scom SuppressCOMelements.

-sfrag Suppressgenerationoffragmentsfordirectoriesandcomponents.

-srd Suppressharvestingtherootdirectoryasanelement.

-sreg Suppressregistryharvesting.

-suid Suppressuniqueidentifiersforfiles,components,&directories.

-svb6 SuppressVB6COMregistrationentries.WhenregisteringaCOMcomponentcreatedinVB6itaddsregistryentriesthatarepartoftheVB6runtimecomponent.ThisflagisrecommendforVB6componentstoavoidbreakingtheVB6runtimeonuninstall.

Thefollowingvaluesareexcluded:

Page 58: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

-swall Suppressallwarnings(deprecated).

-t<xsl> TransformharvestedoutputwithXSLfile.

-indent<n> Indentationmultiple(overridesdefaultof4).

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

-v Verboseoutput.

-var<VariableName> SubstituteFile/@Source="SourceDir"withapreprocessororawixvariable(e.g.-varvar.MySourcewillbecomeFile/@Source="$(var.MySource)\myfile.txt"and-varwix.MySourcewillbecomeFile/@Source="!(wix.MySource)\myfile.txt".

-wixvar Generatebindervariablesinsteadofpreprocessorvariables.

Page 59: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

-wxall Treatallwarningsaserrors(deprecated).

-?|-help Displayheathelpinformation.

Page 60: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Commandlineexamples

Harvestadirectory

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

Thiswillharvestthesubfolder"MyFiles"asasinglefragmenttothefiledirectory.wxs.Itwillgenerateguidsforallthefilesastheyarefound.

Harvestafile

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

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

HarvestaVisualStudioproject

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

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

HarvestaWebsite

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

Thiswillharvestthewebsite"DefaultWebSite"asasinglefragmenttothefilewebsite.wxs.

HarvestaVB6COMcomponent

Page 61: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

ThiswillharvesttheVB6COMcomponent"VB6File.dll"asasinglefragmenttothefilevb6file.wxsandsuppresstheVB6runtimespecificregistyentries.

Harvestperformancecounters

heatperf"MyCategory"-outperf.wxs

Thiswillharvestalltheperformancecountersfromthecategory"MyCategory".

Harvestaregistryfile

heatregregistry.reg-outreg.wxs

Thiswillharvestalltheregistryinformationfromthefileregistry.reg.Theregistryfilecanbeeitherastandard"WindowsRegistryEditorVersion5.00"reigstryfileoralegacyWin9.x/NT4(REGEDIT4)reigstryfile.

Page 62: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

InsigniaInsigniaisatoolusedforinscribinganMSIwiththedigitalsignaturesthatitsexternalCABsaresignedwith.

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

insignia-imsetup.msi

IfyouuseMSBuild,aneasiermethodfordoingthisexists.Inyour.wixprojfile,setthe"SignOutput"propertyto"true".Thenoverridethe"SignCabs"target,usingthe"SignCabs"propertyasalistofcabstosign,tosigntheexternalcabs.Here'sanexamplesigningthosecabsusingsigntool.exe:

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

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

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

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

Insigniacanalsobeusedtodetachandre-attachtheburnenginefroma

Page 63: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

bundle,sothatitcanbesigned.Forexample:

insignia-ibbundle.exe-oengine.exe...signengine.exeinsignia-abengine.exebundle.exe-obundle.exe...signbundle.exe

Again,thereisaneasiermethodwithMSBuild.Setthe"SignOutput"propertyto"true",thenoverridethe"SignBundleEngine"and"SignBundle"targets.Forexample:

<TargetName="SignBundleEngine"><ExecCommand="Signtool.exesign/a&quot;@(SignBundleEngine)&quot;"/></Target><TargetName="SignBundle"><ExecCommand="Signtool.exesign/a&quot;@(SignBundle)&quot;"/></Target>

Page 64: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixCopWixCopservestwomainpurposes:

ToupgradeWiXauthoringtothecurrentschemaToformatWiXauthoringaccordingtoasetofcommonformatting

WixCop'scommand-linesyntaxis:

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

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

WixCopreturnsthefollowingexitcodes:

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

ThefollowingtabledescribestheswitchesthatWixCopsupports.

WixCopswitch

Description

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

effectonlyforsourcefilesthatarewritable.-s Lookforsourcefilesinsubdirectories.-indent:n Overridesthedefaultnumberofspacesperindentation

level(4)tothenumbernyouspecify.-set1filename

Loadsaprimarysettingsfile(seebelow).Notethattherearenocharactersseparating-set1andthesettingsfilename.

-set2filename

Loadsanalternatesettingsfilethatoverridessomeorallofthesettingsintheprimarysettingsfile.Notethatthere

Page 65: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

arenocharactersseparating-set2andthesettingsfilename.

WixCopsettingsfiles

WixCopsupportstwosettingsfiles.Generally,theprimarysettingsfileisyour“global”settingsandthealternatesettingsfileletsyouoverridetheglobalsettingsforaparticularproject.

SettingsfilesareXMLwiththefollowingstructure:

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

TheIgnoreErrorselementliststestIDsthatshouldbeignored.TheErrorsAsWarningselementliststestIDsthatshouldbedemotedfromerrorstowarnings.TheExemptFileselementlistsfilesthatshouldbeskipped.ThefollowingtabledescribestheteststhatWixCopsupports.

WixCoptestID DescriptionUnknown Internalonly:returnedwhen

astringcannotbeconvertedtoanInspectorTestType.

InspectorTestTypeUnknown Internalonly:displayedwhenastringcannotbeconvertedtoanInspectorTestType.

XmlException DisplayedwhenanXMLloadingexceptionhasoccurred.

Page 66: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UnauthorizedAccessException Displayedwhenafilecannotbeaccessed;typicallywhentryingtosavebackafixedfile.

DeclarationEncodingWrong DisplayedwhentheencodingattributeintheXMLdeclarationisnot'UTF-8'.

DeclarationMissing DisplayedwhentheXMLdeclarationismissingfromthesourcefile.

WhitespacePrecedingCDATAWrong DisplayedwhenthewhitespaceprecedingaCDATAnodeiswrong.

WhitespacePrecedingNodeWrong Displayedwhenthewhitespaceprecedinganodeiswrong.

NotEmptyElement Displayedwhenanelementisnotemptyasitshouldbe.

WhitespaceFollowingCDATAWrong DisplayedwhenthewhitespacefollowingaCDATAnodeiswrong.

WhitespacePrecedingEndElementWrong Displayedwhenthewhitespaceprecedinganendelementiswrong.

XmlnsMissing Displayedwhenthexmlnsattributeismissingfromthedocumentelement.

XmlnsValueWrong Displayedwhenthexmlnsattributeonthedocumentelementiswrong.

CategoryAppDataEmpty DisplayedwhenaCategoryelementhasanemptyAppDataattribute.

COMRegistrationTyper DisplayedwhenaRegistryelementencountersanerrorwhilebeingconvertedtoa

Page 67: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

strongly-typedWiXCOMelement.

UpgradeVersionRemoveFeaturesEmpty DisplayedwhenanUpgradeVersionelementhasanemptyRemoveFeaturesattribute.

FeatureFollowParentDeprecated DisplayedwhenaFeatureelementcontainsthedeprecatedFollowParentattribute.

RadioButtonMissingValue DisplayedwhenaRadioButtonelementismissingtheValueattribute.

TypeLibDescriptionEmpty DisplayedwhenaTypeLibelementcontainsaDescriptionelementwithanemptystringvalue.

ClassRelativePathMustBeAdvertised DisplayedwhenaRelativePathattributeoccursonanunadvertisedClasselement.

ClassDescriptionEmpty DisplayedwhenaClasselementhasanemptyDescriptionattribute.

ServiceInstallLocalGroupEmpty DisplayedwhenaServiceInstallelementhasanemptyLocalGroupattribute.

ServiceInstallPasswordEmpty DisplayedwhenaServiceInstallelementhasanemptyPasswordattribute.

ShortcutWorkingDirectoryEmpty DisplayedwhenaShortcutelementhasanemptyWorkingDirectoryattribute.

IniFileValueEmpty DisplayedwhenaIniFileelementhasanemptyValueattribute.

Page 68: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

FileSearchNamesCombined DisplayedwhenaFileSearchelementhasaNameattributethatcontainsboththeshortandlongversionsofthefilename.

WebApplicationExtensionIdDeprecated DisplayedwhenaWebApplicationExtensionelementhasadeprecatedIdattribute.

WebApplicationExtensionIdEmpty DisplayedwhenaWebApplicationExtensionelementhasanemptyIdattribute.

PropertyValueEmpty DisplayedwhenaPropertyelementhasanemptyValueattribute.

ControlCheckBoxValueEmpty DisplayedwhenaControlelementhasanemptyCheckBoxValueattribute.

RadioGroupDeprecated DisplayedwhenadeprecatedRadioGroupelementisfound.

ProgressTextTemplateEmpty DisplayedwhenaProgresselementhasanemptyTextTemplateattribute.

RegistrySearchTypeRegistryDeprecated DisplayedwhenaRegistrySearchelementhasaTypeattributesetto'registry'.

WebFilterLoadOrderIncorrect DisplayedwhenaWebFilter/@LoadOrderattributehasavaluethatisnotmorestonglytyped.

SrcIsDeprecated Displayedwhenanelementcontainsadeprecatedsrcattribute.

Page 69: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RequireComponentGuid DisplayedwhenaComponentelementismissingtherequiredGuidattribute.

LongNameDeprecated DisplayedwhenaanelementhasaLongNameattribute.

RemoveFileNameRequired DisplayedwhenaRemoveFileelementhasnoNameorLongNameattribute.

DeprecatedLocalizationVariablePrefix Displayedwhenalocalizationvariablebeginswiththedeprecated'$'character.

NamespaceChanged Displayedwhenthenamespaceofanelementhaschanged.

UpgradeVersionPropertyAttributeRequired DisplayedwhenanUpgradeVersionelementismissingtherequiredPropertyattribute.

UpgradePropertyChild DisplayedwhenanUpgradeelementcontainsadeprecatedPropertychildelement.

RegistryElementDeprecated DisplayedwhenadeprecatedRegistryelementisfound.

PatchSequenceSupersedeTypeChanged DisplayedwhenaPatchSequence/@Supersedeattributecontainsadeprecatedintegervalue.

PatchSequenceTargetDeprecated DisplayedwhenadeprecatedPatchSequence/@Targetattributeisfound.

VerbTargetDeprecated DisplayedwhenadeprecatedVerb/@Targetattributeisfound.

ProgIdIconFormatted Displayedwhena

Page 70: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ProgId/@Iconattributevaluecontainsaformattedstring.

IgnoreModularizationDeprecated DisplayedwhenadeprecatedIgnoreModularizationelementisfound.

PackageCompressedIllegal DisplayedwhenaPackage/@CompressedattributeisfoundunderaModuleelement.

PackagePlatformsDeprecated DisplayedwhenaPackage/@Platformsattributeisfound.

ModuleGuidDeprecated DisplayedwhenadeprecatedModule/@Guidattributeisfound.

GuidWildcardDeprecated Displayedwhenadeprecatedguidwildcardvalueisfound.

FragmentRefIllegal DisplayedwhenaFragmentRefElementisfound.

FileRedundantNames DisplayedwhenaFile/@NamematchesaFile/@ShortName.

Page 71: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 72: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 73: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 74: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

AuthoringunittestsLuxsupportsthefollowingunittests:

PropertyvaluesExpressionsMulti-valuepropertiesName/value-pairproperties

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

Page 75: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PropertyvaluetestsAsimpletestletsyouspecifyapropertytotest,avaluetotestagainst,andtheoperatortocomparewith(whichdefaultsto"equal").

<Fragment><lux:UnitTestCustomAction="TestCustomActionSimple"Property="SIMPLE"Value="[INSTALLFOLDER]"Operator="equal"/></Fragment>

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

equal(Default)ComparesPropertytoValueandsucceedsiftheyareequal.

notEqualComparesPropertytoValueandsucceedsiftheyareNOTequal.

caseInsensitiveEqualComparesPropertytoValueandsucceedsiftheyareequal(ignoringcase).

caseInsensitiveNotEqualComparesPropertytoValueandsucceedsiftheyareNOTequal(ignoringcase).

Page 76: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

TestconditionsConditionsletyouvalidatecodepathsinyourcustomaction.Forexample,ifyourcustomactionbehavesdifferentlyonWindowsXPthanitdoesonWindowsVistaandlater,youcancreatetwotestswithmutuallyexclusiveconditions:

<Fragment><lux:UnitTestCustomAction="TestCustomActionSimple"Property="SIMPLE"Value="[INSTALLFOLDER]"><lux:Condition><![CDATA[VersionNT<600]]></lux:Condition></lux:UnitTest><lux:UnitTestCustomAction="TestCustomActionSimple"Property="SIMPLE"Value="[INSTALLFOLDER]"><lux:Condition><![CDATA[VersionNT>=600]]></lux:Condition></lux:UnitTest></Fragment>

Ifatesthasacondition,thetestrunsonlyifitsconditionistrue.

Page 77: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ExpressiontestsExpressiontestsletyoutestanyvalidMSIexpression.Iftheexpressionistrue,thetestpasses.Iftheexpressionisfalseorinvalid,thetestfails.

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

Page 78: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Multi-valuepropertytestsBecausedeferredcustomactionscanaccessonlyasinglecustom-actiondataproperty,customactionsthatneedmorethanonepieceofdataencodeitinasinglestring.Onewayistohavetheimmediatecustomactionseparatemultipleelementswithaknownseparatorcharacter,thenhavethedeferredcustomactionsplitthestringatthoseseparatecharacters.LuxsupportssuchseparatorsusingtheValueSeparatorandIndexattributes.

<Fragment><lux:UnitTestCustomAction="TestCustomActionMultiValue"Property="MULTIVALUE"ValueSeparator="*"><lux:Condition>VersionNT</lux:Condition><lux:UnitTestIndex="0"Value="1"/><lux:UnitTestIndex="1"Value="[INSTALLFOLDER]"><lux:Condition>NOTInstalled</lux:Condition></lux:UnitTest><lux:UnitTestIndex="2"Value="WIXEAST"/></lux:UnitTest></Fragment>

AconditionundertheparentUnitTestelementappliestoallindividualunittests.OverrideitwithaConditionchildelement.

Page 79: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Name/value-pairpropertytestsAnotherwayofprovidingmultiplevaluestoadeferredcustomactionistocombinename/valuepairsintoasinglestring.Luxsupportsname/value-pairpropertiesusingtheNameValueSeparatorandIndexattributes.

<Fragment><lux:UnitTestCustomAction="TestCustomActionNameValuePairs"Property="NAMEVALUEPAIRS"NameValueSeparator="#"><lux:UnitTestIndex="InstallationRoot"Value="[INSTALLFOLDER]"/><lux:UnitTestIndex="Developers"Operator="caseInsensitiveNotEqual"Value="WIXEAST"/></lux:UnitTest></Fragment>

Page 80: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 81: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 82: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RunningunittestsAfterbuildingthetestpackage,youcanrunitwithloggingenabledtocapturetestresults:

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

SearchthelogforWixRunImmediateUnitTeststoseetestresultsandotherloggingfromtheLuxcustomaction.

Page 83: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Nit:TheLuxtestrunnerLuxalsoincludesNit,aconsoleprogramthatmonitorstheloggingmessagesemittedbyunittestsandreportssuccessorfailure.TouseNitonyourtestpackages,justspecifytheirfilenamesasargumentstonit.exe.Forexample:

nitLuxSample1_test.msi

LuxalsoletsyourunNitonyourtestpackagesfromthesame.wixprojyouusetobuildyourinstallers.TorunatestpackageunderNit,buildtheTesttargetusingMSBuild3.5:

%WINDIR%\Microsoft.NET\Framework\v3.5\MSBuild.exe/t:Test

Thetestpackagewillbebuiltbeforethetestsarerun,ifnecessary.Theoutputlookslikethefollowing,withfailingtestshighlightedinredasbuilderrors:

Test:TestluxB21F0D12E0701DBA30FFB92A532A5390passed:Property'SIMPLE'matchedexpectedvalue'[INSTALLFOLDER]'.TestTestConditionBeforeVistapassed:Property'SIMPLE'matchedexpectedvalue'[INSTALLFOLDER]'.TestTestConditionVistaOrLaterpassed:Property'SIMPLE'matchedexpectedvalue'[INSTALLFOLDER]'.TestTestExpressionTruthpassed:Expression'NOTMsiSystemRebootPendingANDSIMPLE'evaluatedtotrue.nit.exe:errorNIT8103:TestluxA6D27EC5903612D7F3786FF71952E314failed:Property'MULTIVALUE'expectedvalue'2'butactualvaluewas'1'.Testlux210257649C16AFA33793F1CDDF575505passed:Property'MULTIVALUE'matchedexpectedvalue'[INSTALLFOLDER]'.nit.exe:errorNIT8103:Testlux402940A90D3ADAD181D599AB8C260FA0failed:Property'MULTIVALUE'expectedvalue'xxxWIXEAST'butactualvaluewas'WIXEAST'.Testlux453EC8DB458A8F66F0D22970CFF2AE99passed:Property'NAMEVALUEPAIRS'matchedexpectedvalue'[INSTALLFOLDER]'.Testlux20CB4F88795F22D15631FD60BA03AFEBpassed:Property'NAMEVALUEPAIRS'matchedexpectedvalue'WIXWEST'.nit.exe:errorNIT8102:2testsfailed.7testspassed.DoneBuildingProject"C:\Delivery\Dev\wix35\src\lux\samples\LuxSample1\LuxSample1.wixproj"(Testtarget(s))--FAILED.

BuildFAILED.

"C:\Delivery\Dev\wix35\src\lux\samples\LuxSample1\LuxSample1.wixproj"(Testtarget)(1)->

Page 84: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

(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 85: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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.

Page 86: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

MSITablestoWiXSchemaIntheWiXschema,itsnotalwaysentirelyobvioushowthetablesfromtheWindowsInstallerschemamaptotheWiXschema.Belowaresomehelpfulhintsonhowtofigureouttherelationshipsbetweenthetwoschemas.

Page 87: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DuplicateFileTableThisisauthoredusingaCopyFilenodenestedunderaFilenode.YouonlyneedtosettheId,DestinationFolder,andDestinationNameattributes.

Page 88: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LaunchConditionTableThisisauthoredusingaConditionnodeauthoredunderFragmentorProduct.YouonlyneedtosettheMessageattribute.

Page 89: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LockPermissionsTableThisisauthoredusingPermission.

Page 90: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

MoveFileTableThisisauthoredusingaCopyFilenodenestedunderaComponentnode.YouwillneedtosetallattributesexceptDelete.SetDeleteto'yes'inordertousethemsidbMoveFileOptionsMoveoption.

Page 91: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 92: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 93: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 94: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CodePagesCodepagesmapcharactercodestoactualcharacters,orgraphemes.Codepagesarealsousedtoconvertfromoneencodingtoanother.

Page 95: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

FormoreinformationaboutcodepagesinWindowsInstaller,readCodePageHandling.

Page 96: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 97: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UsefulWindowsInstallerInformationLinktotheWindowsInstaller4.5SDK:http://msdn.microsoft.com/en-us/library/cc185688.aspx

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

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

Page 98: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ProjectTemplatesTheWiXVisualStudiopackageprovidesthefollowingVisualStudioprojecttemplates:

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

Tocreateanewproject:

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

Page 99: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ItemTemplatesWiXVisualStudiopackageprovidesthefollowingitemtemplatesforWiXprojects:

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

FormoreinformationaboutWiXfiletypes,pleasevisittheFileListsection.

Toaddanewitem:

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

Page 100: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ProjectPropertyPagesToaccesstheWiXprojectpropertypages,right-clickonaWiXprojectintheVisualStudioSolutionExplorerandchooseProperties.WiXprojectscontainthefollowingpropertypages:

InstallerBuildBuildEventsPathsToolSettings

Page 101: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

InstallerPropertyPageTheInstallertabcontainsthefollowingconfigurableoptions:

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

Page 102: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BuildPropertyPageTheBuildtabcontainsthefollowingconfigurableoptions:

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

Page 103: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BuildEventsPropertyPageTheBuildEventstabcontainsthefollowingconfigurableoptions:

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

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

Page 104: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PathsPropertyPageThePathstabcontainsthefollowingconfigurableoptions:

TheReferencePathssectionallowsyoutodefinepathsyouwanttousewhenlocatingreferences(WiXextensionsandWiXlibraries).TheIncludePathssectionallowsyoutodefinepathsyouwanttousewhenlocatingWiXIncludefiles.

Page 105: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ToolSettingsPropertyPageTheToolSettingstabcontainsthefollowingconfigurableoptions:

TheICEvalidationsectionallowsyoutotoggleICEvalidationsuppressionorspecifywhichICEvalidationtosuppress.TheAdditionalparameterssectionallowsyoutospecifycommandlineargumentstopassdirectlytotheWiXtoolsatbuildtime.

Page 106: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ReadingtheDefaultWiXProjectTemplateOnceaWiXprojectiscreated,itcreatesafilecontainingthebeginningofthesetupcodefortheproject.EverythingneededtocreateanMSIcanbeaddedtothisfile.

Note:IfyouarenotfamiliarwithWindowsInstallersetuppackages,youarestronglyencouragedtoreviewtheMSDNdocumentationabouttheInstallationPackagebeforecontinuing.ItwillprovidealotofvaluablecontextaswedigintothedetailsofaWindowsInstallersetuppackage.

<?xmlversion="1.0"encoding="UTF-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><ProductId="*"Name="MySetup"Language="1033"Version="1.0.0.0"Manufacturer="MyCompany"UpgradeCode="$guid3$"><PackageInstallerVersion="200"Compressed="yes"InstallScope="perMachine"/>

<MajorUpgradeDowngradeErrorMessage="Anewerversionof[ProductName]isalreadyinstalled."/><MediaTemplate/>

<FeatureId="ProductFeature"Title="MySetup"Level="1"><ComponentGroupRefId="ProductComponents"/></Feature></Product>

<Fragment><DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"><DirectoryId="INSTALLFOLDER"Name="MySetup"/></Directory></Directory></Fragment>

<Fragment><ComponentGroupId="ProductComponents"Directory="INSTALLFOLDER"><!--<ComponentId="ProductComponent">--><!--TODO:Insertfiles,registrykeys,andotherresourceshere.-->

Page 107: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

<!--</Component>--></ComponentGroup></Fragment></Wix>

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

ThedefaulttemplatethatisgeneratedwhenyoucreateanewWiXprojectwillgeneratesabuildwarning.IntheOutputwindow,youmayseethiswarning:

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

BecausetheWiXprojectdoesnotyetreferenceanapplication,thereisnothingtoinstall.Onceafileisaddedtotheinstaller,thiswarningwillgoaway.

Page 108: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CreatingaSimpleSetupInthistutorial,wewillcreateaC#WindowsFormApplicationandthenuseWiXtocreateaninstallerfortheapplication.

Page 109: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

WindowsFormsApplication.3. Nameyourapplication"MyApplication"andpressOK.

Page 110: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

chooseAddReference....5. NavigatetotheProjectstab,clickontheMyApplicationproject,

andclicktheAddbutton,andthenpressOK.

6. Findthecommentthatsays:

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

Deletethatlineandreplaceitwiththefollowinglinesofcode:

<FileSource="$(var.MyApplication.TargetPath)"/>

7. BuildtheWiXproject.

That'sit!Nowyouhaveaworkinginstallerthatinstallsanduninstallstheapplication.

Ifyoutypethatcodeintotheeditor(insteadofcopyingandpastingfromthisexample)youwillnoticethatIntelliSensepicksupthevalidelementsandattributes.IntelliSensewithWiXinVisualStudiocansaveyousignificantamountsoftypingandtimewhensearchingforthenameoftheelementsorattributesasyoubecomemorecomfortablewiththeWiXlanguage.

ThelineofcodeyouaddedinstructstheWiXtoolsettoaddafileresourcetothesetuppackage.TheSourceattributespecifieswheretofindthefileforpackagingduringthebuild.Ratherthanhard-codevaluesfortheseattributesintooursourcecode,weusetheWiXpreprocessorvariablesthatarepassedtotheWiXcompiler.Moreinformationaboutusingpreprocessorvariables,includingatableofallsupportedvalues,

Page 111: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

canbefoundintheAddingProjectReferencestopic.

Page 112: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UsingProjectReferencesandVariablesTheWiXprojectsupportsaddingprojectreferencestootherprojectssuchasVBandC#.Thisensuresthatbuildorderdependenciesaredefinedcorrectlywithinthesolution.Inaddition,itgeneratesasetofWiXpreprocessorvariablesthatcanbereferencedinWiXsourcefilesandpreprocessordefinitionswhicharepassedtothecompileratbuildtime.

ToaddaprojectreferencetoaWiXproject:

1. Right-clickontheReferencesnodeoftheprojectintheSolutionExplorerandchooseAddReference....

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

pressOKtodismissthedialog.

Page 113: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

ThefollowingdemonstrateshowtouseprojectreferencevariablesinWiXsourcecode:

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

TheWiXprojectsupportsthefollowingprojectreferencevariables:

Variablename Exampleusage Examplevalue

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

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

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

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

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

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

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

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

Page 114: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

2010\Projects\MyProject\MyApp.csproj

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

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

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

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

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

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

C:\users\myusername\Documents\VisualStudio2010\Projects\MyProject\bin\Debug\en-US\MyProject.msm

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

var.SolutionExt $(var.SolutionExt) .sln

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

var.SolutionName $(var.SolutionName) MySolution

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

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

Page 115: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

msbuild<projectfile>.wixproj

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

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

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

Page 116: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

shouldbeaddedusingthe<Content>elementwithinanItemGroup.

Page 117: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

IntegratingWiXProjectsIntoDailyBuildsOneofthemostcommonreasonsforusingMSBuildwithWiXprojectfilesistointegratethebuildofaninstallerintoanexistingdailybuildprocess.ThisisoftencoupledwithaneedtobuildWiXprojectswithouthavingtopre-installanyWiXtoolsonthedailybuildmachine.WiXprojectsandtheWiXtoolstobuildthemcanbeaddedtomostdailybuildprocessesthatsupportMSBuildusingafewsimplesteps.

Page 118: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step1:CheckintheWiXToolsToavoidhavingtoinstallWiXonbuildmachinesyoucancheckallthetoolsnecessarytobuildWiXprojectsintoyoursourcecodecontrolsystem.Here'show:

1. CreateadirectoryinyoursourcecodecontrolsystemtoholdtheWiXtools.It'scommontocreateanumberedsubdirectorymatchingtheversionofWiXthatyou'recheckingin.Ex:wix\[[Version]]

2. Unzipthecontentsofwix[[Version.Major]][[Version.Minor]]-binaries.zip\*intothedirectorycreatedinstep1.

3. IfyouuseDeploymentToolsFoundationortheWiXSDKheaderfilesandlibraries,createaparalleldirectorytreetotheoneyoucreatedinstep1andcopythecontentsofwix[[Version.Major]][[Version.Minor]]-binaries.zip\sdk\*intothatdirectory.

4. Addandcheckinthefilesfromsteps1through3.

Page 119: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

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

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

NotethatWixToolPathmustendinabackslash.

Page 120: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BuildingWiXProjectsInTeamFoundationBuildOnceyouhavecreatedaWiXprojectfile,youneedtoperformsomeadditionalstepsinordertosuccessfullybuildtheWiXprojectinTeamFoundationBuild.Withouttheseadditionalsteps,theWiXprojectwillbeignoredbydefaultbyTeamFoundationBuildeventhoughitisanMSBuild-compatibleproject.

Page 121: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 122: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

IfyouhaveanexistingBuildDefinition,youneedtousethefollowingstepstomodifyitsoitwillbuildWiXprojectsalongwiththeotherprojectsinyoursolution.

1. Right-clickontheBuildDefinitionandselectViewConfigurationFolder.

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

sectioniftheydonotalreadyexistthere,orupdatethemiftheydoalreadyexist:

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

4. Close,saveandcheckinthechangestoTFSBuild.proj.

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

Page 123: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WindowsInstallerpackage.

Page 124: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HarvestDirectoryTargetTheHarvestDirectorytargetpassesHarvestDirectoryitemstotheHeatDirectorytasktogenerateauthoringfromafile.Authoringisgeneratedfortypelibrariesandself-registrationfromDllRegisterServerforanyfilesfoundindirectories.Thistargetisprocessedbeforecompilation.GeneratedauthoringisautomaticallyaddedtotheCompileitemgrouptobecompiledbytheCandletask.

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

ThefollowingtablesdescribethecommonWiXMSBuildpropertiesanditemsthatareapplicabletotheHarvestDirectorytarget.

Page 125: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ItemsThefollowingitemsanditemmetadataareusedbytheHarvestDirectorytarget.

ItemorMetadata Description@(HarvestDirectory) Requireditemgroup.

Thelistofdirectoriestoharvest.

%(HarvestDirectory.ComponentGroupName)

Optionalstringmetadata.Ifyouareharvestingmultipledirectoriesinyourproject,youshouldspecifythismetadatatocreateuniquefilenamesforthegeneratedauthoring.

ThenameoftheComponentGrouptocreateforallthegeneratedauthoring.

%(HarvestDirectory.DirectoryRefId) Optionalstringmetadata.

TheIDofthedirectorytoreferenceinsteadofTARGETDIR.

%(HarvestDirectory.KeepEmptyDirectories)

Optionalbooleanmetadata.

WhethertocreateDirectoryentriesforemptydirectories.Thedefaultisfalse.

Page 126: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

%(HarvestDirectory.PreprocessorVariable) Optionalstringmetadata.

SubstituteSourceDirforanothervariablename(ex:var.Dir).

%(HarvestDirectory.SuppressCom) Optionalbooleanmetadata.

SuppressgenerationofCOMregistryelements.Thedefaultisfalse.

%(HarvestDirectory.SuppressRootDirectory)

Optionalbooleanmetadata.

SuppressgenerationofaDirectoryelementfortheparentdirectoryofthefile.Thedefaultisfalse.

%(HarvestDirectory.SuppressRegistry) Optionalbooleanmetadata.

Suppressgenerationofanyregistryelements.Thedefaultisfalse.

%(HarvestDirectory.Transforms) Optionalstringmetadata.

XSLtransformstoapplytothegeneratedWiXauthoring.Separatemultipletransformswithsemicolons.

Page 127: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PropertiesThefollowingpropertiesareusedbytheHarvestDirectorytarget.

Property Description$(HarvestDirectoryAutogenerateGuids) Optionalboolean

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

$(HarvestDirectoryComponentGroupName) Optionalstringproperty.Ifyouareharvestingmultipledirectoriesinyourproject,youshouldspecifythismetadatatocreateuniquefilenamesforthegeneratedauthoring.

Thecomponentgroupnamethatwillcontainallgeneratedauthoring.

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

$(HarvestDirectoryDirectoryRefId) Optionalstringproperty.

TheidentifieroftheDirectoryelementthatwillcontainallgeneratedauthoring.

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

$(HarvestDirectoryGenerateGuidsNow) Optionalboolean

Whethertogenerateauthoringthat

Page 128: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

generatesdurableGUIDswhenharvesting.Thedefaultis$(HarvestGenerateGuidsNow)ifspecified;otherwise,

$(HarvestDirectoryKeepEmptyDirectories) Optionalboolean

WhethertocreateDirectoryentriesforemptydirectorieswhenharvesting.Thedefaultisfalse.

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

$(HarvestDirectoryNoLogo) Optionalboolean

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

$(HarvestDirectoryPreprocessorVariable) Optionalstringproperty.

SubstituteSourceDirforanothervariablename(ex:var.Dir)inallgeneratedauthoring.

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

$(HarvestDirectorySuppressAllWarnings) Optionalboolean

Specifiesthatallwarningsshouldbesuppressed.Thedefaultis$(HarvestSuppressAllWarnings)ifspecified;otherwise,

$(HarvestDirectorySuppressCom) Optionalboolean

WhethertosuppressgenerationofCOMregistryelementswhenharvestingfilesin

Page 129: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

directories.Thedefaultis

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

$(HarvestDirectorySuppressFragments) Optionalboolean

Whethertosuppressgenerationofseparatefragmentswhenharvesting.Thedefaultis$(HarvestSuppressFragments)ifspecified;otherwise,

$(HarvestDirectorySuppressRegistry) Optionalboolean

Whethertosuppressgenerationofallregistryelementswhenharvestingfilesindirectories.Thedefaultis

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

$(HarvestDirectorySuppressRootDirectory) Optionalboolean

WhethertosuppressgenerationofaDirectoryelementforallauthoringwhenharvesting.Thedefaultis

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

$(HarvestDirectorySuppressSpecificWarnings) Optionalstringparameter.

Specifiesthatcertainwarningsshouldbesuppressed.Thedefaultis$(HarvestSuppressSpecificWarnings)ifspecified.

$(HarvestDirectorySuppressUniqueIds) Optionalboolean

Page 130: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WhethertosuppressgenerationofuniquecomponentIDs.Thedefaultis$(HarvestSuppressUniqueIds)specified;otherwise,

$(HarvestDirectoryTransforms) Optionalstringproperty.

XSLtransformstoapplytoallgeneratedWiXauthoring.Separatemultipletransformswithsemicolons.Thedefaultis$(HarvestTransforms)ifspecified.

ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.

$(HarvestDirectoryTreatSpecificWarningsAsErrors) Optionalstringparameter.

Specifiesthatcertainwarningsshouldbetreatedaserrors.Thedefaultis$(HarvestTreatSpecificWarningsAsErrors)ifspecified.

$(HarvestDirectoryTreatWarningsAsErrors) Optionalboolean

Specifiesthatallwarningsshouldbetreatedaserrors.Thedefaultis$(HarvestTreatWarningsAsErrors)ifspecified;otherwise,

$(HarvestDirectoryVerboseOutput) Optionalboolean

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

Page 131: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HarvestFileTargetTheHarvestFiletargetpassesHarvestFileitemstotheHeatFiletasktogenerateauthoringfromafile.Authoringisgeneratedfortypelibrariesandself-registrationfromDllRegisterServer.Thistargetisprocessedbeforecompilation.GeneratedauthoringisautomaticallyaddedtotheCompileitemgrouptobecompiledbytheCandletask

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

ThefollowingtablesdescribethecommonWiXMSBuildpropertiesanditemsthatareapplicabletotheHarvestFiletarget.

Page 132: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 133: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

%(HarvestFile.SuppressRegistry) Optionalbooleanmetadata.

Suppressgenerationofanyregistryelements.Thedefaultisfalse.

%(HarvestFile.Transforms) Optionalstringmetadata.

XSLtransformstoapplytothegeneratedWiXauthoring.Separatemultipletransformswithsemicolons.

Page 134: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 135: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

$(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 136: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 137: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

$(HarvestFileTreatSpecificWarningsAsErrors) Optionalstringparameter.

Specifiesthatcertainwarningsshouldbetreatedaserrors.Thedefaultis$(HarvestTreatSpecificWarningsAsErrors)ifspecified.

$(HarvestFileTreatWarningsAsErrors) Optionalbooleanparameter.

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

$(HarvestFileVerboseOutput) Optionalbooleanparameter.

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

Page 138: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HarvestProjectsTargetTheHarvestProjectstargetpassesHarvestProjectitemstotheHeatProjecttasktogenerateauthoringfromaprojectfile.

Harvestingprojectsisdisabledbydefaultbecauseitmaynotalwaysworkcorrectly,butyoucanenableitbyaddingthefollowingtothetopofyourWiXprojectfile:

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

Ifenabled,thistargetisprocessedbeforecompilation.GeneratedauthoringisautomaticallyaddedtotheCompileitemgrouptobecompiledbytheCandletask.

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

ThefollowingtablesdescribethecommonWiXMSBuildpropertiesanditemsthatareapplicabletotheHarvestProjectstarget.

Page 139: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ItemsThefollowingitemsanditemmetadataareusedbytheHarvestProjectstarget.

ItemorMetadata Description@(HarvestProject) Requireditemgroup.

Thelistofprojectstoharvest.TheHeatProjectitemgroupisprovidedonlyforbackwardcompatibility.

%(HarvestProject.ProjectOutputGroups)

Optionalstringmetadata.

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

%(HarvestProject.Transforms) Optionalstringmetadata.

XSLtransformstoapplytothegeneratedWiXauthoring.Separatemultipletransformswithsemicolons.

Page 140: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 141: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 142: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ifspecified.$(HarvestProjectsTreatWarningsAsErrors) Optionalbooleanparameter.

Specifiesthatallwarningsshouldbetreatedaserrors.Thedefaultis$(HarvestTreatWarningsAsErrors)ifspecified;otherwise,

$(HarvestProjectsVerboseOutput) Optionalbooleanparameter.

Specifiesthatthetoolshouldprovideverboseoutput.Thedefaultis$(HarvestVerboseOutput)ifspecified.

Page 143: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 144: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 145: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 146: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 147: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 148: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Specifiesthatthecompilershouldshowsourcetraceinformationforerrors,warningsandverbosemessages.Thisisequivalenttothe-traceswitchincandle.exe.

Page 149: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 150: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 151: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 152: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ThefollowingtabledescribestheparametersthatarespecifictotheHeatDirectorytask.

Parameter DescriptionDirectory Requireditemgroupparameter.

Thelistofdirectoriestoharvest.ComponentGroupName Optionalstringparameter.Ifyouare

harvestingmultipledirectoriesinyourproject,youshouldspecifythismetadatatocreateuniquefilenamesforthegeneratedauthoring.

ThenameoftheComponentGrouptocreateforallthegeneratedauthoring.

DirectoryRefId Optionalstringparameter.

TheIDofthedirectorytoreferenceinsteadofTARGETDIR.

KeepEmptyDirectories Optionalbooleanparameter.

WhethertocreateDirectoryentriesforemptydirectories.

PreprocessorVariable Optionalstringparameter.

SubstituteSourceDirforanothervariablename(ex:var.Dir).

SuppressCom Optionalbooleanparameter.

SuppressgenerationofCOMregistryelements.Thedefaultisfalse.

SuppressRegistry Optionalbooleanparameter.

Suppressgenerationofanyregistryelements.Thedefaultisfalse.

SuppressRootDirectory Optionalbooleanparameter.

Page 153: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SuppressgenerationofaDirectoryelementfortheparentdirectoryofthefile.Thedefaultisfalse.

Page 154: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Thelistofprojectstoharvest.ProjectOutputGroups Optionalstringparameter.

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

Page 162: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

InsigniaTaskTheInsigniataskwrapsinsignia.exe,theWiXinscribing/signingtool.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.Tocontrolthesesettingsinyour.wixprojfile,youcancreateaPropertyGroupandspecifythesettingsthatyouwanttouseforyourprocess.YoucanrefertotheCandleTaskfordetailsabouthowtosetupaPropertyGroup.

ThefollowingtabledescribesthecommonWiXMSBuildparametersthatareapplicabletotheInsigniatask.

Parameter DescriptionSuppressAllWarnings Optionalbooleanparameter.

Specifiesthatallwarningsshouldbesuppressed.Thisisequivalenttothe-swswitch.

SuppressSpecificWarnings Optionalstringparameter.

Specifiesthatcertainwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switch.

TreatSpecificWarningsAsErrors Optionalstringparameter.

Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switch.

TreatWarningsAsErrors Optionalbooleanparameter.

Specifiesthatallwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitch.

VerboseOutput Optionalbooleanparameter.

Specifiesthatthetoolshouldprovide

Page 163: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

verboseoutput.Thisisequivalenttothe-vswitch.

ThefollowingtabledescribestheparametersthatarespecifictotheInsigniatask.

Parameter DescriptionBundleFile Optionalstringparameter.

Specifythebundlefiletobeusedeithertoextracttheenginefromortosign.

OriginalBundleFile Optionalstringparameter.

Specifytheoriginalbundlefiletobeusedforreattachinganenginebundle.

DatabaseFile Optionalstringparameter.

Specifiesthemsipackagetoinscribe.OutputFile Optionalstringparameter.

Specifiestheoutputfileinallcases.Inthecaseofsingingabundle,itspecifiesthesignedbundle.Inthecaseofdetachingtheengine,itspecifiesthedetachedenginefile.Lastly,whenreattachingtheengine,itspecifiesthenewbundlewiththereattachedengine.

NoLogo Optionalbooleanparameter.

Skipprintinginsignialogoinformation.

Page 164: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LightTaskTheLighttaskwrapslight.exe,theWiXlinker.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.Tocontrolthesesettingsinyour.wixprojfile,youcancreateaPropertyGroupandspecifythesettingsthatyouwanttouseforyourbuildprocess.ThefollowingisasamplePropertyGroupthatcontainssettingsthatwillbeusedbytheLighttask:

<PropertyGroup><LinkerTreatWarningsAsErrors>False</LinkerTreatWarningsAsErrors><LinkerVerboseOutput>True</LinkerVerboseOutput><SuppressIces>ICE18;ICE45;ICE82</SuppressIces><SuppressSpecificWarnings>1111</SuppressSpecificWarnings><TreatSpecificWarningsAsErrors>2222</TreatSpecificWarningsAsErrors><WixVariables>Variable1=value1;Variable2=value2</WixVariables></PropertyGroup>

ThefollowingtabledescribesthecommonWiXMSBuildparametersthatareapplicabletotheLighttask.

Parameter DescriptionBindInputPaths Optionalstring

parameter.

Specifiesabinderpaththatshouldbeusedtolocateallfiles.Thisisequivalenttothe-b<path>switch.NamedBindPathsarecreatedbyprefixingthe2-or-more-characterbucketnamefollowedbyanequalsign("=")tothesuppliedpath.

BindFiles Optionalbooleanparameter.

Page 165: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Specifiesthatthetoolshouldbindfilesintoa.wixoutfile.ThisisonlyvalidwhentheOutputAsXmlparameterisalsoprovided.Thisisequivalenttothe-bfswitch.

Pedantic Optionalbooleanparameter.

Specifiesthatthetoolshoulddisplaypedanticmessages.Thisisequivalenttothe-pedanticswitch.

SuppressAllWarnings Optionalbooleanparameter.

Specifiesthatallwarningsshouldbesuppressed.Thisisequivalenttothe-swswitch.

SuppressIntermediateFileVersionMatching Optionalbooleanparameter.

Specifiesthatthetoolshouldsuppressintermediatefileversionmismatchchecking.Thisisequivalenttothe-svswitch.

SuppressSchemaValidation Optionalbooleanparameter.

Specifiesthatschemavalidationofdocuments

Page 166: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

shouldbesuppressed.Thisisequivalenttothe-ssswitch.

SuppressSpecificWarnings Optionalstringparameter.

Specifiesthatcertainwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switch.

TreatSpecificWarningsAsErrors Optionalstringparameter.

Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switch.

TreatWarningsAsErrors Optionalbooleanparameter.

Specifiesthatallwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitch.

VerboseOutput Optionalbooleanparameter.

Specifiesthatthetoolshouldprovideverboseoutput.Thisisequivalenttothe-vswitch.

ThefollowingtabledescribestheparametersthatarespecifictotheLighttask.

Page 167: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Parameter DescriptionAllowIdenticalRows Optionalboolean

parameter.

Specifiesthatthelinkershouldallowidenticalrows.Identicalrowswillbetreatedaswarnings.Thisisequivalenttothe-aiswitchinlight.exe.

AllowDuplicateDirectoryIds Optionalbooleanparameter.

Specifiesthatthelinkershouldallowduplicatedirectoryidentifiers.Thisallowsduplicatedirectoriesfromdifferentlibrariestobemergedintotheproduct.Thisisequivalenttothe-adswitchinlight.exe.

AllowUnresolvedReferences Optionalbooleanparameter.

Specifiesthatthelinkershouldallowunresolvedreferences.Thiswillnotcreatevalidoutput.Thisisequivalenttothe-auswitchinlight.exe.

AdditionalCub Optionalstringparameter.

Specifiesanadditional.cubfilethatthelinkershouldusewhenrunningICEvalidation.Thisis

Page 168: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

equivalenttothe-cub<file.cub>switchinlight.exe.

BackwardsCompatibleGuidGeneration Optionalbooleanparameter.

SpecifiesthatthelinkershouldusethebackwardcompatibleGUIDgenerationalgorithm.Thisisequivalenttothe-bcggswitchinlight.exe.

CabinetCachePath Optionalstringparameter.

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

CabinetCreationThreadCount Optionalintegerparameter.

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

Cultures Optionalstringparameter.

Specifiesasemicolonorcommadelimitedlistoflocalizedstringculturestoloadfrom.wxlfilesandlibraries.Precedenceofculturesisfromleftto

Page 169: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

right.Thisisequivalenttothe-cultures:<cultures>switchinlight.exe.

DefaultCompressionLevel Optionalstringparameter.

Specifiesthecompressionlevelthatthelinkershouldusewhenbuildingcabinetfiles.Validvaluesarelow,medium,high,noneandmszip.Thisisequivalenttothe-dcl:<level>switchinlight.exe.

DropUnrealTables Optionalbooleanparameter.

Specifiesthatthelinkershoulddropunrealtablesfromtheoutputimage.Thisisequivalenttothe-dutswitchinlight.exe.

ExactAssemblyVersions Optionalbooleanparameter.

Specifiesthatthelinkershoulduseexactassemblyversions.Thisisequivalenttothe-eavswitchinlight.exe.

Ices Optionalstringparameter.

Specifiesthatthelinkershouldrunspecificinternalconsistencyevaluators(ICEs).Thisis

Page 170: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

equivalenttothe-ice:<ICE>switchinlight.exe.

LeaveTemporaryFiles Optionalbooleanparameter.

Specifiesthatthelinkershouldnotdeletetemporaryfiles.Thisisequivalenttothe-notidyswitchinlight.exe.

LinkerAdditionalOptions Optionalstringparameter.

Specifiesadditionalcommandlineparameterstoappendwhencallinglight.exe.

LinkerBindInputPaths Optionalstringparameter.

Specifiesabinderpaththatthelinkershouldusetolocateallfiles.Thisisequivalenttothe-b<path>switchinlight.exe.NamedBindPathsarecreatedbyprefixingthe2-or-more-characterbucketnamefollowedbyanequalsign("=")tothesuppliedpath.

LinkerBindFiles Optionalbooleanparameter.

Specifiesthatthelinkershouldbindfilesintoa.wixoutfile.Thisisonlyvalidwhenthe

Page 171: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

OutputAsXmlparameterisalsoprovided.Thisisequivalenttothe-bfswitchinlight.exe.

LinkerPedantic Optionalbooleanparameter.

Specifiesthatthelinkershoulddisplaypedanticmessages.Thisisequivalenttothe-pedanticswitchinlight.exe.

LinkerSuppressAllWarnings Optionalbooleanparameter.

Specifiesthatalllinkerwarningsshouldbesuppressed.Thisisequivalenttothe-swswitchinlight.exe.

LinkerSuppressIntermediateFileVersionMatching Optionalbooleanparameter.

Specifiesthatthelinkershouldsuppressintermediatefileversionmismatchchecking.Thisisequivalenttothe-svswitchinlight.exe.

LinkerSuppressSchemaValidation Optionalbooleanparameter.

Specifiesthatthelinkershouldsuppressschemavalidationofdocuments.Thisisequivalenttothe-ssswitchinlight.exe.

Page 172: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LinkerSuppressSpecificWarnings Optionalstringparameter.

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

LinkerTreatSpecificWarningsAsErrors Optionalstringparameter.

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

LinkerTreatWarningsAsErrors Optionalbooleanparameter.

Specifiesthatalllinkerwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitchinlight.exe.

LinkerVerboseOutput Optionalbooleanparameter.

Specifiesthatthelinkershouldprovideverboseoutput.Thisisequivalenttothe-vswitchinlight.exe.

OutputAsXml Optionalbooleanparameter.

Specifiesthatthelinkershouldoutputa.wixout

Page 173: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

fileinsteadofa.msifile.Thisisequivalenttothe-xoswitchinlight.exe.

PdbOutputFile Optionalstringparameter.

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

ReuseCabinetCache Optionalbooleanparameter.

Specifiesthatthelinkershouldreusecabinetfilesfromthecabinetcache.Thisisequivalenttothe-reusecabswitchinlight.exe.

SetMsiAssemblyNameFileVersion Optionalbooleanparameter.

SpecifiesthatthelinkershouldaddafileVersionentrytotheMsiAssemblyNametableforeachassembly.Thisisequivalenttothe-fvswitchinlight.exe.

SuppressAclReset Optionalbooleanparameter.

SpecifiesthatthelinkershouldsuppressresettingACLs.Thisisusefulwhen

Page 174: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

layingoutanimagetoanetworkshare.Thisisequivalenttothe-saclswitchinlight.exe.

SuppressAssemblies Optionalbooleanparameter.

Specifiesthatthelinkershouldnotgetassemblynameinformationforassemblies.Thisisequivalenttothe-saswitchinlight.exe.

SuppressDefaultAdminSequenceActions Optionalbooleanparameter.

Specifiesthatthelinkershouldsuppressdefaultadminsequenceactions.Thisisequivalenttothe-sadminswitchinlight.exe.

SuppressDefaultAdvSequenceActions Optionalbooleanparameter.

Specifiesthatthelinkershouldsuppressdefaultadvertisedsequenceactions.Thisisequivalenttothe-sadvswitchinlight.exe.

SuppressDefaultUISequenceActions Optionalbooleanparameter.

SpecifiesthatthelinkershouldsuppressdefaultUIsequenceactions.Thisisequivalenttothe-uiswitchinlight.exe.

Page 175: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SuppressFileHashAndInfo Optionalbooleanparameter.

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

SuppressFiles Optionalbooleanparameter.

Specifiesthatthelinkershouldsuppressgatheringallfiledata.ThishasthesameeffectassettingtheSuppressAssembliesadnSuppressFileHashAndInfoparameters.Thisisequivalenttothe-sfswitchinlight.exe.

SuppressIces Optionalstringparameter.

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

SuppressLayout Optionalbooleanparameter.

Specifiesthatthelinkershouldsuppresslayoutcreation.Thisisequivalenttothe-slswitchinlight.exe.

Page 176: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SuppressMsiAssemblyTableProcessing Optionalbooleanparameter.

SpecifiesthatthelinkershouldsuppressprocessingthedataintheMsiAssemblytable.Thisisequivalenttothe-smaswitchinlight.exe.

SuppressPatchSequenceData Optionalbooleanparameter.

SpecifiesthatthelinkershouldsuppresspatchsequencedatainpatchXMLtodecreasebundlesizeandincreasepatchapplicabilityperformance(patchpackagesthemselvesarenotmodified).

SuppressPdbOutput Optionalbooleanparameter.

Specifiesthatthelinkershouldsuppressoutputting.wixpdbfiles.Thisisequivalenttothe-spdbswitchinlight.exe.

SuppressValidation Optionalbooleanparameter.

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

SuppressTagSectionIdAttributeOnTuples Optionalboolean

Page 177: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

parameter.

SpecifiesthatthelinkershouldsuppressaddingthesectionIdattributeonrows.Thisisequivalenttothe-stsswitchinlight.exe.

UnreferencedSymbolsFile Optionalstringparameter.

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

WixVariables Optionalstringparameter.

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

Page 178: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LitTaskTheLittaskwrapslit.exe,theWiXlibrarycreationtool.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.Tocontrolthesesettingsinyour.wixprojfile,youcancreateaPropertyGroupandspecifythesettingsthatyouwanttouseforyourbuildprocess.ThefollowingisasamplePropertyGroupthatcontainssettingsthatwillbeusedbytheLittask:

<PropertyGroup><LibTreatWarningsAsErrors>False</LibTreatWarningsAsErrors><LibVerboseOutput>True</LibVerboseOutput><SuppressSpecificWarnings>1111</SuppressSpecificWarnings><TreatSpecificWarningsAsErrors>2222</TreatSpecificWarningsAsErrors></PropertyGroup>

ThefollowingtabledescribesthecommonWiXMSBuildparametersthatareapplicabletotheLittask.

Parameter DescriptionBindInputPaths Optionalstring

parameter.

Specifiesabinderpaththatshouldbeusedtolocateallfiles.Thisisequivalenttothe-b<path>switch.NamedBindPathsarecreatedbyprefixingthe2-or-more-characterbucketnamefollowedbyanequalsign("=")tothesuppliedpath.

BindFiles Optionalbooleanparameter.

Specifiesthatthetool

Page 179: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

shouldbindfilesintoa.wixoutfile.ThisisonlyvalidwhentheOutputAsXmlparameterisalsoprovided.Thisisequivalenttothe-bfswitch.

Pedantic Optionalbooleanparameter.

Specifiesthatthetoolshoulddisplaypedanticmessages.Thisisequivalenttothe-pedanticswitch.

SuppressAllWarnings Optionalbooleanparameter.

Specifiesthatallwarningsshouldbesuppressed.Thisisequivalenttothe-swswitch.

SuppressIntermediateFileVersionMatching Optionalbooleanparameter.

Specifiesthatthetoolshouldsuppressintermediatefileversionmismatchchecking.Thisisequivalenttothe-svswitch.

SuppressSchemaValidation Optionalbooleanparameter.

Specifiesthatschemavalidationofdocumentsshouldbesuppressed.

Page 180: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Thisisequivalenttothe-ssswitch.

SuppressSpecificWarnings Optionalstringparameter.

Specifiesthatcertainwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switch.

TreatSpecificWarningsAsErrors Optionalstringparameter.

Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switch.

TreatWarningsAsErrors Optionalbooleanparameter.

Specifiesthatallwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitch.

VerboseOutput Optionalbooleanparameter.

Specifiesthatthetoolshouldprovideverboseoutput.Thisisequivalenttothe-vswitch.

ThefollowingtabledescribestheparametersthatarespecifictotheLittask.

Page 181: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Parameter DescriptionLibAdditionalOptions Optionalstring

parameter.

Specifiesadditionalcommandlineparameterstoappendwhencallinglit.exe.

LibBindFiles Optionalbooleanparameter.

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

LibPedantic Optionalbooleanparameter.

Specifiesthatthelibrarycreationtoolshoulddisplaypedanticmessages.Thisisequivalenttothe-pedanticswitchinlit.exe.

LibSuppressAllWarnings Optionalbooleanparameter.

Specifiesthatalllibrarycreationtoolwarningsshouldbesuppressed.Thisis

Page 182: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

equivalenttothe-swswitchinlit.exe.

LibSuppressIntermediateFileVersionMatching Optionalbooleanparameter.

Specifiesthatthelibrarycreationtoolshouldsuppressintermediatefileversionmismatchchecking.Thisisequivalenttothe-svswitchinlit.exe.

LibSuppressSchemaValidation Optionalbooleanparameter.

Specifiesthatthelibrarycreationtoolshouldsuppressschemavalidationofdocuments.Thisisequivalenttothe-ssswitchinlit.exe.

LibSuppressSpecificWarnings Optionalstringparameter.

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

LibTreatSpecificWarningsAsErrors Optionalstringparameter.

Specifiesthatcertainlibrarycreationtool

Page 183: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

LibTreatWarningsAsErrors Optionalbooleanparameter.

Specifiesthatalllibrarycreationtoolwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitchinlit.exe.

LibVerboseOutput Optionalbooleanparameter.

Specifiesthatthelibrarycreationtoolshouldprovideverboseoutput.Thisisequivalenttothe-vswitchinlit.exe.

LinkerBindInputPaths Optionalstringparameter.

Specifiesabinderpaththatthelibrarycreationtoolshouldusetolocateallfiles.Thisisequivalenttothe-b<path>switchinlit.exe.NamedBindPathsarecreatedbyprefixingthe2-or-more-characterbucketnamefollowedbyan

Page 184: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

equalsign("=")tothesuppliedpath.

Page 185: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UsingBuilt-inWixUIDialogSetsTheWixUIdialoglibrarycontainsthefollowingbuilt-indialogsetsthatprovideafamiliarwizard-stylesetupuserinterface.

1. WixUI_Advanced2. WixUI_FeatureTree3. WixUI_InstallDir4. WixUI_Minimal5. WixUI_Mondo

Thebuilt-inWixUIdialogsetsarealsocustomizable,fromthebitmapsshownintheUItoaddingandremovingcustomdialogs.SeeCustomizingtheWixUIDialogSetsforadditionalinformation.

Page 186: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Howtoaddabuilt-inWixUIdialogsettoaproductinstallerAssumingyouhaveanexistinginstallerthatisfunctionalbutisjustlackingauserinterface,herearethestepsyouneedtofollowtoincludeabuilt-inWixUIdialogset:

1. AddaUIRefelementtoyoursetupauthoringthathasanIdthatmatchesthenameofoneofthedialogsetsdescribedabove.Forexample:

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

2. Passthe-extand-culturesswitchesto[light.exe](../overview/light.html)toreferencetheWixUIExtension.Forexample:

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

Note-IfyouareusingWiXinVisualStudioyoucanaddtheWixUIExtensionusingtheAddReferencedialogandthenecessarycommandlineswillautomaticallybeaddedwhenlinkingyour.msi.Todothis,usethefollowingsteps:

1. OpenyourWiXprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd

Reference...3. SelecttheWixUIExtension.dllassemblyfromthelistandclick

Add4. ClosetheAddReferencedialog

Page 187: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CustomizingBuilt-inWixUIDialogSetsThebuilt-inWixUIdialogsetscanbecustomizedinthefollowingways:

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

Page 188: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 189: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 190: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 191: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Forexample,tooverridethedescriptivetextontheWelcomeDlg,youwouldaddthefollowingtoa.wxlfileinyourproject:

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

Page 192: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 193: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 194: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 195: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UsingLocalizedVersionsofWixUI

UsingtranslatedUIstringsWixUIExtensionincludesasetofWiXlocalization(.wxl)filesthatcontaintranslatedUItext,errorandprogresstextstringsforseverallanguages.TospecifyaUIlanguageforyourinstaller,passthedesiredculturevalueonthecommandlinewhencallinglight.Forexample:

light-extWixUIExtension-cultures:fr-FRProduct.wixobj-outProduct.msi

WixUIExtensionincludestranslatedstringsforthefollowinglanguages:

Language Location Culturecode

WXLfile

Arabic SaudiArabia ar-SA WixUI_ar-SA.wxlBulgarian Bulgaria bg-BG WixUI_bg-BG.wxlCatalan Spain ca-ES WixUI_ca-ES.wxlCroatian Croatia hr-HR WixUI_hr-HR.wxlCzech CzechRepublic cs-CZ WixUI_cs-CZ.wxlDanish Denmark da-DK WixUI_da-DK.wxlDutch Netherlands nl-NL WixUI_nl-NL.wxlEnglish UnitedStates en-US WixUI_en-US.wxlEstonian Estonia et-EE WixUI_et-EE.wxlFinnish Finland fi-FI WixUI_fi-FI.wxlFrench France fr-FR WixUI_fr-FR.wxlGerman Germany de-DE WixUI_de-DE.wxlGreek Greece el-GR WixUI_el-GR.wxlHebrew Israel he-IL WixUI_he-IL.wxlHindi India hi-IN WixUI_hi-IN.wxlHungarian Hungary hu-HU WixUI_hu-HU.wxl

Page 196: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Italian Italy it-IT WixUI_it-IT.wxlJapanese Japan ja-JP WixUI_ja-JP.wxlKazakh Kazakhstan kk-KZ WixUI_kk-KZ.wxlKorean Korea ko-KR WixUI_ko-KR.wxlLatvian Latvia lv-LV WixUI_lv-LV.wxlLithuanian Lithuania lt-LT WixUI_lt-LT.wxlNorwegian(Bokmål)

Norway nb-NO WixUI_nb-NO.wxl

Polish Poland pl-PL WixUI_pl-PL.wxlPortuguese Brazil pt-BR WixUI_pt-BR.wxlPortuguese Portugal pt-PT WixUI_pt-PT.wxlRomanian Romania ro-RO WixUI_ro-RO.wxlRussian Russia ru-RU WixUI_ru-RU.wxlSerbian(Latin) Serbiaand

Montenegrosr-Latn-CS WixUI_sr-Latn-

CS.wxlSimplifiedChinese

China zh-CN WixUI_zh-CN.wxl

Slovak SlovakRepublic sk-SK WixUI_sk-SK.wxlSlovenian Solvenia sl-SI WixUI_sl_SI.wxlSpanish Spain es-ES WixUI_es-ES.wxlSwedish Sweden sv-SE WixUI_sv-SE.wxlThai Thailand th-TH WixUI_th-TH.wxlTraditionalChinese

HongKongSAR zh-HK WixUI_zh-HK.wxl

TraditionalChinese

Taiwan zh-TW WixUI_zh-TW.wxl

Turkish Turkey tr-TR WixUI_tr-TR.wxlUkrainian Ukraine uk-UA WixUI_uk-UA.wxl

Page 197: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 198: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UsingtranslatederrorandprogresstextBydefault,WixUIwillnotincludeanytranslatedErrororProgressTextelements.YoucanincludethembyreferencingtheWixUI_ErrorProgressTextUIelement:

<UIRefId="WixUI_ErrorProgressText"/>

Page 199: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixUI_AdvancedDialogSetTheWixUI_Advanceddialogsetprovidestheoptionofaone-clickinstalllikeWixUI_Minimal,butitalsoallowsdirectoryandfeatureselectionlikeotherdialogsetsiftheuserchoosestoconfigureadvancedoptions.

ThisdialogsetisdefinedinthefileWixUI_Advanced.wxsintheWixUIExtensionintheWiXsourcecode.

Page 200: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UsingWixUI_AdvancedTouseWixUI_Advanced,youmustincludethefollowinginformationinyoursetupauthoring:

1. AdirectorywithanIdnamedAPPLICATIONFOLDER.Thisdirectorywillbethedefaultinstallationlocationfortheproduct.Forexample:

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

2. ApropertywithanIdnamedApplicationFolderNameandavaluesettoastringthatrepresentsthedefaultfoldername.Thispropertyisusedtoformthedefaultinstallationlocation.

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

Forexample:

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

3. ApropertywithanIdnamedWixAppFolderandavaluesettoWixPerMachineFolderorWixPerUserFolder.ThispropertysetsthedefaultselectedvalueoftheradiobuttonontheinstallscopedialoginthesetupUIwheretheusercanchoosewhethertoinstalltheproductper-machineorper-user.Forexample:

Page 201: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

<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 202: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixUI_AdvancedDialogsWixUI_Advancedincludesthefollowingdialogs:

AdvancedWelcomeEulaDlgBrowseDlgDiskCostDlgFeaturesDlgInstallDirDlgInstallScopeDlgInvalidDirDlg

Inaddition,WixUI_AdvancedincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:

CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg

SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.

Page 203: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixUI_FeatureTreeDialogSetWixUI_FeatureTreeisasimplerversionofWixUI_Mondothatomitsthesetuptypedialog.Instead,thewizardproceedsdirectlyfromthelicenseagreementdialogtothefeaturecustomizationdialog.WixUI_FeatureTreeismoreappropriatethanWixUI_Mondowhenyourproductinstallsallfeaturesbydefault.

ThisdialogsetisdefinedinthefileWixUI_FeatureTree.wxsintheWixUIExtensionintheWiXsourcecode.

Page 204: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixUI_FeatureTreeDialogsWixUI_FeatureTreeincludesthefollowingdialogs:

BrowseDlgCustomizeDlgDiskCostDlgLicenseAgreementDlgWelcomeDlg

Inaddition,WixUI_FeatureTreeincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:

CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg

SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.

Page 205: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixUI_InstallDirDialogSetWixUI_InstallDirdoesnotallowtheusertochoosewhatfeaturestoinstall,butitaddsadialogtolettheuserchooseadirectorywheretheproductwillbeinstalled.

ThisdialogsetisdefinedinthefileWixUI_InstallDir.wxsintheWixUIExtensionintheWiXsourcecode.

Page 206: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 207: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixUI_InstallDirDialogsWixUI_InstallDirincludesthefollowingdialogs:

BrowseDlgDiskCostDlgInstallDirDlgInvalidDirDlgLicenseAgreementDlgWelcomeDlg

Inaddition,WixUI_InstallDirincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:

CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg

SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.

Page 208: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixUI_MinimalDialogSetWixUI_Minimalisthesimplestofthebuilt-inWixUIdialogsets.Itssoledialogcombinesthewelcomeandlicenseagreementdialogsandomitsthefeaturecustomizationdialog.WixUI_Minimalisappropriatewhenyourproducthasnooptionalfeaturesanddoesnotsupportchangingtheinstallationdirectory.

ThisdialogsetisdefinedinthefileWixUI_Minimal.wxsintheWixUIExtensionintheWiXsourcecode.

Page 209: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixUI_MinimalDialogsWixUI_Minimalincludesthefollowingdialog:

WelcomeEulaDlg

Inaddition,WixUI_MinimalincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:

CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg

SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.

Page 210: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixUI_MondoDialogSetWixUI_Mondoincludesasetdialogsthatallowgranularinstallationcustomizationoptions.WixUI_Mondoisappropriatewhensomeproductfeaturesarenotinstalledbydefaultandthereisameaningfuldifferencebetweentypicalandcompleteinstalls.

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

ThisdialogsetisdefinedinthefileWixUI_Mondo.wxsintheWixUIExtensionintheWiXsourcecode.

Page 211: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixUI_MondoDialogsWixUI_Mondoincludesthefollowingdialogs:

BrowseDlgCustomizeDlgDiskCostDlgLicenseAgreementDlgSetupTypeDlgWelcomeDlg

Inaddition,WixUI_MondoincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:

CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg

SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.

Page 212: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixUIDialogsThefollowingtabledescribeseachofthebuilt-indialogsthatisdefinedintheWixUIdialoglibrary.

DialogName DescriptionAdvancedWelcomeEulaDlg Adialogthatdisplaystheenduserlicenseagreement.Unlike

theLicenseAgreementDlg,ithasAdvancedandInstallbuttonsinsteadofNextandBackbuttons.ThisdialogisusedbytheWixUI_Advanceddialogsettoprovidetheuserwithaquickwaytoperformadefaultinstallation.

BrowseDlg Adialogthatallowstheusertobrowseforadestinationfolder.CancelDlg AdialogthatappearsaftertheuserclicksaCancelbuttonon

anydialogandconfirmswhetherornottheuserreallywantstocanceltheinstallation.

CustomizeDlg AdialogthatdisplaysafeatureselectiontreewithaBrowsebutton,DiskUsagebutton,andatextboxthatcontainsinformationaboutthecurrentlyselectedfeature.

DiskCostDlg Adialogthatallowstheusertoselectwhichdrivetoinstalltoandthatdisplaysdiskspaceusageinformationforeachdrive.

ErrorDlg Adialogthatdisplaysanerrormessagetotheuserandcanprovideanoptiontoretrythepreviousaction.

ExitDlg Adialogthatdisplaysasummarydialogaftersetupcompletessuccessfully.Itcanalsooptionallydisplayacheckboxandcustomtext.Fordetailsabouthowtoaddacheckboxandcustomtexttothisdialog,see[CustomizingBuilt-inWixUIDialogSets](../../wixui/WixUI_customizations.html)and[HowTo:RuntheInstalledApplicationAfterSetup](../../howtos/ui_and_localization/run_program_after_install.html).

FatalError Adialogthatdisplaysasummaryerrordialogifsetupfails.FeaturesDlg Adialogthatdisplaysafeatureselectiontreewithatextbox

thatcontainsinformationaboutthecurrentlyselectedfeature.UnliketheCustomizeDlg,itdoesnotcontainBrowseorDiskSpacebuttons.

FilesInUse Adialogthatdisplaysalistofapplicationsthatareholdingfiles

Page 213: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

inusethatneedtobeupdatedbythecurrentinstallationprocess.ItincludesRetry,IgnoreandExitbuttons.

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

InstallScopeDlg Adialogthatallowstheusertochoosetoinstalltheproductforallusersorforthecurrentuser.

InvalidDirDlg Adialogthatdisplaysanerroriftheuserselectsaninvalidinstallationdirectory.

LicenseAgreementDlg AdialogthatdisplaystheenduserlicenseagreementandincludesBackandNextbuttons.UnliketheAdvancedWelcomeEulaDlg,thisdialogdoesnotallowtheusertostartadefaultinstallation.

MaintenanceTypeDlg Adialogthatincludesbuttonsthatallowtheusertochangewhichfeaturesareinstalled,repairtheproductorremovetheproduct.Itonlyappearswhentheuserrunssetupafteraproducthasbeeninstalled.

MaintenanceWelcomeDlg Anintroductorydialogthatappearswhenrunningsetupaftertheproducthasbeeninstalled.

MsiRMFilesInUse AdialogthatissimilartotheFilesInUsedialog,butthatinteractswithRestartManager.Itallowstheusertoattempttoautomaticallycloseapplicationsorignorethepromptandresultinthesetuprequiringarebootafteritcompletes.

OutOfDiskDlg Adialogthatinformstheuserthattheyhaveinsufficientdiskspaceontheselecteddriveandadvisesthemtofreeupadditionaldiskspaceorreducethenumberoffeaturestobeinstalledtothedrive.

OutOfRbDiskDlg AdialogthatissimilartotheOutOfDiskDlg,butalsoallowstheusertodisableWindowsInstallerrollbackfunctionalityinordertoconservediskspacerequiredbysetup.

PrepareDlg Asimpleprogressdialogthatappearsduringsetupinitialization

Page 214: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

beforethefirstinteractivedialogappears.ProgressDlg Adialogthatappearsduringinstallationthatdisplaysaprogress

barandmessagesaboutactionsarebeingperformed.ResumeDlg Anintroductorydialogthatappearswhenresuminga

suspendedsetup.SetupTypeDlg AdialogthatallowstheusertochooseTypical,Customor

Completeinstallationconfigurations.UserExit AdialogthatthatissimilartotheFatalErrordialog.Itdisplaysa

summarydialogiftheuserchoosestocancelsetup.VerifyReadyDlg Adialogthatappearsimmediatelybeforestartinginstallation.It

askstheuserforfinalconfirmationbeforestartingtomakechangestothesystem.

WaitForCostingDlg AdialogthatappearsiftheuseradvancestoofarinthesetupwizardbeforeWindowsInstallerhasfinishedcalculatingdiskcostrequirements.

WelcomeDlg Anintroductorydialogthatappearswhenrunningsetupforaproductthathasnotyetbeeninstalled.

WelcomeEulaDlg Adialogthatdisplaysanenduserlicenseagreementandallowstheusertostartinstallationafteracceptingtheagreement.ItisonlyusedbytheWixUI_Minimaldialogsetandisintendedforsimplesetupprogramsthatdonotofferanyuserconfigurableoptions.

Page 215: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CreatetheSkeletonBundleAuthoringTherootelementofabundleis<Bundle>.The<Bundle>elementisachilddirectlyunderthe<Wix>element.Here'sanexampleofanemptybundle:

<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><Bundle><!--Contentsofthebundlegoeshere--></Bundle></Wix>

Inthisexample,youwillbeaddingthefollowingelementstothe<Bundle>element:

<BootstrapperApplicationRef><Chain><Variable>

Asastart,addthetwomostcommonelementsinsidea<Bundle>:

<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><Bundle><BootstrapperApplicationRef/><Chain></Chain></Bundle></Wix>

The<BootstrapperApplicationRef>elementwilleventuallypointtothestandardBootstrapperApplicationprovidedbytheWiXtoolsetandthe<Chain>elementwilleventuallycontaintheorderedlistofpackagesthatmakeupthebundle.

Page 216: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

NowthatyouhavetheskeletonauthoringofaBundle,youcanmoveontoaddinginformationforthe<BootstrapperApplicationRef>element.SeeAuthortheBootstrapperApplicationforaBundle.

Page 217: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

AuthorBootstrapperApplicationforaBundleEverybundlerequiresabootstrapperapplicationtodrivetheBurnengine.The<BootstrapperApplication>elementisusedtodefineanewbootstrapperapplication.The<BootstrapperApplicationRef>elementisusedtorefertoabootstrapperapplicationthatexistsina<Fragment>orWiXextension.

TheWiXStandardBootstrapperApplicationexistsintheWixBalExtension.dll.Thefollowingshowshowtouseitinabundle:

<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><Bundle><BootstrapperApplicationRefId="WixStandardBootstrapperApplication.RtfLicense"/><Chain></Chain></Bundle></Wix>

TheWiXStandardBootstrapperApplicationmaynotprovideallfunctionalityaspecializedbundlerequiressoacustombootstrapperapplicationDLLmaybedeveloped.Thefollowingexamplecreatesabootstrapperapplicationusingafictional"ba.dll":

<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><Bundle><BootstrapperApplicationSourceFile="path\to\ba.dll"/><Chain></Chain></Bundle></Wix>

Insidethe<BootstrapperApplication>elementand

Page 218: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

<BootstrapperApplicationRef>element,youmayaddadditionalpayloadfilessuchasresourcesfilesthatarerequiredbythebootstrapperapplicationDLLasfollows:

<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><Bundle><BootstrapperApplicationSourceFile="path\to\ba.dll"><PayloadSourceFile="path\to\en-us\resources.dll"/><PayloadGroupRefId="ResourceGroupforJapanese"/></BootstrapperApplication><Chain></Chain></Bundle></Wix>

Thisexamplereferencesapayloadfilethatisonthelocalmachinenamedresources.dll,aswellasagroupofpayloadfilesthataredefinedina<PayloadGroup>elementinsidea<Fragment>elsewhere.

Thenextstepistoaddinstallationpackagestothechain.

Page 219: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

AuthoraBundlePackageManifestInorderforanypackagetobeconsumablebyaBundle,apackagedefinitionneedstobeauthoredthatdescribesthepackage.Thisauthoringcaneithergodirectlyunderthe<Chain>elementintheBundleauthoring,orina<Fragment>whichcanthenbeconsumedbyaBundlebyputtinga<PackageGroupRef>insidethe<Chain>.ThelattermethodenablessharingofthesamepackagedefinitionacrossdifferentBundlepackages.

TheWiXschemasupportsthefollowingchainedpackagetypes:

<MsiPackage><ExePackage><MspPackage><MsuPackage>

HereisanexampleofauthoringanExePackageinasharablefragment:

<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><Fragment><PackageGroupId="MyPackage"><ExePackageSourceFile="[sources]\packages\shared\MyPackage.exe"DetectCondition="ExeDetectedVariable"DownloadUrl="http://example.com/?mypackage.exe"InstallCommand="/q/ACTION=Install"RepairCommand="/qACTION=Repair/hideconsole"UninstallCommand="/qACTION=Uninstall/hideconsole"/></PackageGroup></Fragment></Wix>

Nowyoucanaddaninstallconditiontothepackagesothatitonlyinstallsonx86WindowsXPandabove.Therearebuilt-invariablesthatcanbeusedtoconstructtheseconditionstatements.Thehighlightedsectionshowshowtoleveragethebuilt-invariablestocreatethat

Page 220: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

condition:

<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><Fragment><PackageGroupId="MyPackage"><ExePackageSourceFile="[sources]\packages\shared\MyPackage.exe"DetectCondition="ExeDetectedVariable"DownloadUrl="http://example.com/?mypackage.exe"InstallCommand="/q/ACTION=Install"RepairCommand="/qACTION=Repair/hideconsole"UninstallCommand="/qACTION=Uninstall/hideconsole"InstallCondition="NOTVersionNT64ANDVersionNT>=v5.1"/></PackageGroup></Fragment></Wix>

TheVersionNTpropertytakesuptoafour-partversionnumber([Major].[Minor].[Build].[Revision]).ForalistofmajorandminorversionsoftheWindowsoperatingsystem,seeOperatingSystemVersion.

Youcanalsodefineyourownvariablesandstoresearchresultsinthem.SeeDefineSearchesusingVariables.

Page 221: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnBuilt-inVariablesTheBurnengineoffersasetofcommonly-usedvariablessoyoucanusethemwithoutdefiningyourown.Hereisthelistofthebuilt-invariablenames:

AdminToolsFolder-getsthewell-knownfolderforCSIDL_ADMINTOOLS.AppDataFolder-getsthewell-knownfolderforCSIDL_APPDATA.CommonAppDataFolder-getsthewell-knownfolderforCSIDL_COMMON_APPDATA.CommonFilesFolder-getsthewell-knownfolderforCSIDL_PROGRAM_FILES_COMMONX86.CommonFiles64Folder-getsthewell-knownfolderforCSIDL_PROGRAM_FILES_COMMON.CommonFiles6432Folder-getsthewell-knownfolderforCSIDL_PROGRAM_FILES_COMMONon64-bitWindowsandCSIDL_PROGRAM_FILES_COMMONX86on32-bitWindows.CompatibilityMode-non-zeroiftheoperatingsystemlaunchedthebootstrapperincompatibilitymode.ComputerName-nameofthecomputerasreturnedbyGetComputerName()function.Date-getsthecurrentdateusingtheshortdateformatofthecurrentuserlocale.DesktopFolder-getsthewell-knownfolderforCSIDL_DESKTOP.FavoritesFolder-getsthewell-knownfolderforCSIDL_FAVORITES.FontsFolder-getsthewell-knownfolderforCSIDL_FONTS.InstallerName-getsthenameoftheinstallerengine("WiXBurn").InstallerVersion-getstheversionoftheinstallerengine.LocalAppDataFolder-getsthewell-knownfolderforCSIDL_LOCAL_APPDATA.LogonUser-getsthecurrentusername.MyPicturesFolder-getsthewell-knownfolderforCSIDL_MYPICTURES.NTProductType-numericproducttypefromOSversioninformation.

Page 222: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

NTSuiteBackOffice-non-zeroifOSversionsuiteisBackOffice.NTSuiteDataCenter-non-zeroifOSversionsuiteisDatacenter.NTSuiteEnterprise-non-zeroifOSversionsuiteisEnterprise.NTSuitePersonal-non-zeroifOSversionsuiteisPersonal.NTSuiteSmallBusiness-non-zeroifOSversionsuiteisSmallBusiness.NTSuiteSmallBusinessRestricted-non-zeroifOSversionsuiteisRestrictedSmallBusiness.NTSuiteWebServer-non-zeroifOSversionsuiteisWebServer.PersonalFolder-getsthewell-knownfolderforCSIDL_PERSONAL.ProcessorArchitecture-getsthenativeSYSTEM_INFO.wProcessorArchitecture.Privileged-non-zeroiftheprocesscouldrunelevated(onVista+)orisrunningasanAdministrator(onWinXP).ProgramFilesFolder-getsthewell-knownfolderforCSIDL_PROGRAM_FILESX86.ProgramFiles64Folder-getsthewell-knownfolderforCSIDL_PROGRAM_FILES.ProgramFiles6432Folder-getsthewell-knownfolderforCSIDL_PROGRAM_FILESon64-bitWindowsandCSIDL_PROGRAM_FILESX86on32-bitWindows.ProgramMenuFolder-getsthewell-knownfolderforCSIDL_PROGRAMS.RebootPending-non-zeroifthesystemrequiresareboot.Notethatthisvaluewillreflecttherebootstatusofthesystemwhenthevariableisfirstrequested.SendToFolder-getsthewell-knownfolderforCSIDL_SENDTO.ServicePackLevel-numericvaluerepresentingtheinstalledOSservicepack.StartMenuFolder-getsthewell-knownfolderforCSIDL_STARTMENU.StartupFolder-getsthewell-knownfolderforCSIDL_STARTUP.SystemFolder-getsthewell-knownfolderforCSIDL_SYSTEMX86on64-bitWindowsandCSIDL_SYSTEMon32-bitWindows.System64Folder-getsthewell-knownfolderforCSIDL_SYSTEMon

Page 223: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

64-bitWindowsandundefinedon32-bitWindows.SystemLanguageID-getsthelanguageIDforthesystemlocale.TempFolder-getsthewell-knownfolderfortemplocation.TemplateFolder-getsthewell-knownfolderforCSIDL_TEMPLATES.TerminalServer-non-zeroifthesystemisrunninginapplicationservermodeofRemoteDesktopServices.UserUILanguageID-getstheselectionlanguageIDforthecurrentuserlocale.UserLanguageID-getstheformattinglanguageIDforthecurrentuserlocale.VersionMsi-versionvaluerepresentingtheWindowsInstallerengineversion.VersionNT-versionvaluerepresentingtheOSversion.Theresultisaversionvariable(v#.#.#.#)whichdiffersfromtheMSIProperty'VersionNT'whichisaninteger.Forexample,tousethisvariableinaBundleconditiontry:"VersionNT>v6.1".VersionNT64-versionvaluerepresentingtheOSversionif64-bit.Undefinedifrunninga32-bitoperatingsystem.Theresultisaversionvariable(v#.#.#.#)whichdiffersfromtheMSIProperty'VersionNT64'whichisaninteger.Forexample,tousethisvariableinaBundleconditiontry:"VersionNT64>v6.1".WindowsFolder-getsthewell-knownfolderforCSIDL_WINDOWS.WindowsVolume-getsthewell-knownfolderforthewindowsvolume.WixBundleAction-settothenumericvalueofBOOTSTRAPPER_ACTIONfromthecommand-lineandupdatedduringthecalltoIBootstrapperEngine::Plan().WixBundleDirectoryLayout-settothefolderprovidedtothe-layoutswitch(defaultisthedirectorycontainingthebundleexecutable).Thisvariablecanalsobesetbythebootstrapperapplicationtomodifywherefileswillbelaidout.WixBundleElevated-getswhetherthebundlewaslaunchedelevatedandwillbesetto1oncethebundleiselevated.Forexample,usethisvariabletoshoworhidetheelevationshieldinthebootstrapperapplicationUI.

Page 224: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixBundleExecutePackageCacheFolder-getstheabsolutepathtothecurrentlyexecutingpackage'scachefolder.Thisvariableisonlyavailablewhilethepackageisexecuting.WixBundleForcedRestartPackage-getstheIDofthepackagethatcausedaforcerestartduringapply.Thisvalueisresetonthenextcalltoapply.WixBundleInstalled-getswhetherthebundlewasalreadyinstalled.Thisvalueisonlysetwhentheengineinitializes.WixBundleLastUsedSource-getsthepathofthelastsuccessfulsourceresolutionforacontainerorpayload.WixBundleName-getsthenameofthebundle(fromBundle/@Name).Thisvariablecanalsobesetbythebootstrapperapplicationtomodifythebundlenameatruntime.WixBundleManufacturer-getsthemanufacturerofthebundle(fromBundle/@Manufacturer).WixBundleOriginalSource-getsthesourcepathfromwherethebundleoriginallyran.WixBundleOriginalSourceFolder-getsthefolderfromwherethebundleoriginallyran.WixBundleSourceProcessPath-getsthesourcepathofthebundlewhereoriginallyexecuted.Willonlybesetwhenbundleisexecutinginthecleanroom.WixBundleSourceProcessFolder-getsthesourcefolderofthebundlewhereoriginallyexecuted.Willonlybesetwhenbundleisexecutinginthecleanroom.WixBundleProviderKey-getsthebundledependencyproviderkey.WixBundleTag-getsthedeveloper-definedtagstringforthisbundle(fromBundle/@Tag).WixBundleUILevel-getstheleveloftheuserinterface(thevalueBOOTSTRAPPER_DISPLAYenum).WixBundleVersion-getstheversionforthisbundle(fromBundle/@Version).

Page 225: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DefineSearchesUsingVariablesSearchesareusedtodetectifthetargetmachinemeetscertainconditions.Theresultofasearchisstoredintoavariable.Variablesarethenusedtoconstructinstallconditions.ThesearchschemasareintheWixUtilExtension.Hereisthelistofsupportedsearches:

<FileSearch><RegistrySearch><DirectorySearch><ComponentSearch><ProductSearch>

Asearchcanbedependentontheresultofanothersearch.KeepinmindthatallsearchesareintheWiXUtilExtension.SoremembertoaddtheWiXUtilExtensionnamespaceintheauthoring.Hereisanexample:

<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"><Fragment><util:RegistrySearchId="Path"Variable="UniqueId"Root="HKLM,SOFTWARE\Microsoft\MyProduct\UniqueId\"Key="Product"Result="Value"/><util:RegistrySearchVariable="patchLevel"Root="HKLM,SOFTWARE\Microsoft\MyProduct\[UniqueId]\Setup"Key="PatchLevel"Result="Exists"After="Path"/></Fragment></Wix>

Afterthesearchesaredefinedandstoredintovariables,thevariablescanthenbeusedininstallconditions.Forexample,youcanusethe

Page 226: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

resultoftheregistrysearchesintheinstallconditionofyourpackagebyaddingboththesearchesandtheinstallconditions.Here'sanexampleofacompletefragmentthatcontainsapackagedefinitionwithconditionsandsearches:

<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"><Fragment><util:RegistrySearchId="Path"Variable="UniqueId"Root="HKLM,SOFTWARE\Microsoft\MyProduct\UniqueId\"Key="Product"Result="Value"/><util:RegistrySearchVariable="patchLevel"Root="HKLM,SOFTWARE\Microsoft\MyProduct\[UniqueId]\Setup"Key="PatchLevel"Result="Exists"After="Path"/>

<PackageGroupId="MyPackage"><ExePackageSourceFile="[sources]\packages\shared\MyPackage.exe"DownloadURL="http://mywebdomain.com/?mypackage.exe"InstallCommand="/q/ACTION=Install"RepairCommand="/qACTION=Repair/hideconsole"UninstallCommand="/qACTION=Uninstall/hideconsole"InstallCondition="x86=1ANDOSVersion>=v5.0.5121.0ANDpatchLevel=0</PackageGroup></Fragment></Wix>

Nowyouhaveafully-definedfragmentthatcanbesharedtobeconsumedbyotherBurnpackages.ToseehowtochainthispackageintoaBurnpackage,seeChainPackagesintoaBundle.

Page 227: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ChainPackagesintoaBundleTochainapackage,youcaneitherputthepackagedefinitiondirectlyunderthe<Chain>elementorputa<PackageGroupRef>insidethe<Chain>toreferenceasharedpackagedefinition.

Here'sanexampleofhavingthedefinitiondirectlyunder<Chain>:

<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><Bundle><BootstrapperApplicationRefId="WixStandardBootstrapperApplication.RtfLicense"/>

<Chain><ExePackageSourceFile="path\to\MyPackage.exe"DownloadUrl="http://example.com/?mypackage.exe"InstallCommand="/q/ACTION=Install"RepairCommand="/qACTION=Repair/hideconsole"/></Chain></Bundle></Wix>

Here'sanexampleofreferencingasharedpackagedefinition:

<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><Bundle><BootstrapperApplicationRefId="WixStandardBootstrapperApplication.RtfLicense"/>

<Chain><PackageGroupRefId="MyPackage"/></Chain></Bundle></Wix>

Page 228: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SpecifyingtheWiXStandardBootstrapperApplicationLicenseTheWiXStandardBootstrapperApplication(WixStdBA)supportsdisplayingalicenseinRTFformatand/orlinkingtoalicensefilethateitherexistslocallyorontheweb.ThelicensefileisspecifiedintheelementusingtheLicenseFileorLicenseUrlattribute,dependingonwhichWixStdBAthemeisused.

WhenusingaWixStdBAthemethatdisplaystheRTFlicense,itishighlyrecommendedthatthelicenseisoverriddenbecausethedefaultuses"Loremipsum"placeholdertext.Thefollowingexampleusesalicense.rtffilefoundinthe"path\to"folderrelativetothelinkerbindpaths.

<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"><Bundle><BootstrapperApplicationRefId="WixStandardBootstrapperApplication.RtfLicense"><bal:WixStandardBootstrapperApplicationLicenseFile="path\to\license.rtf"LogoFile="path\to\customlogo.png"/></BootstrapperApplicationRef>

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

Thefollowingexamplelinkstoalicensepageontheinternet.

<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"><Bundle><BootstrapperApplicationRefId="WixStandardBootstrapperApplication.HyperlinkLicense">

Page 229: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

<bal:WixStandardBootstrapperApplicationLicenseUrl="http://example.com/license.html"LogoFile="path\to\customlogo.png"/></BootstrapperApplicationRef>

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

WhenusingaWixStdBAthemethatdisplaysthelicenseasahyperlink,thelicenseisoptional.ProvideanemptystringforWixStandardBootstrapperApplication/@LicenseUrl---thehyperlinkandacceptlicensecheckboxarenotdisplayed,providingan"unlicensed"installationexperience.

IfyougetanerrorindicatingTheWindowsInstallerXMLvariable!(wix.WixStdbaLicenseUrl)isunknown,provideavalueforWixStandardBootstrapperApplication/@LicenseUrl,evenifit'sanemptystring.

Page 230: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ChangingtheWiXStandardBootstrapperApplicationBrandingTheWiXStandardBootstrapperApplicationdisplaysagenericlogointhebottomleftcorneroftheuserinterface.ItispossibletochangetheimagedisplayedusingtheWixStandardBootstrapperApplicationelementprovidedbyWixBalExtension.Thefollowingexampleusesa"customlogo.png"filefoundinthe"path\to"folderrelativetothelinkerbindpaths.

<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"><Bundle><BootstrapperApplicationRefId="WixStandardBootstrapperApplication.RtfLicense"><bal:WixStandardBootstrapperApplicationLicenseFile="path\to\license.rtf"LogoFile="path\to\customlogo.png"/></BootstrapperApplicationRef>

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

FortheHyperlinkSidebarLicenseUI,therearetwologosandtheycanbeconfiguredasfollows:

<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"><Bundle><BootstrapperApplicationRefId="WixStandardBootstrapperApplication.HyperlinkSidebarLicense"><bal:WixStandardBootstrapperApplication

Page 231: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

Page 232: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CustomizetheWiXStandardBootstrapperApplicationLayoutTheWiXStandardBootstrapperApplicationcontainsapredefineduserinterfacelayout.ItispossibletocustomizethelayoutusingtheWixStandardBootstrapperApplicationelementprovidedbyWixBalExtension.Thefollowingexampleusesa"customtheme.xml"filefoundinthe"path\to"folderrelativetothelinkerbindpaths.

<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"><Bundle><BootstrapperApplicationRefId="WixStandardBootstrapperApplication.RtfLicense"><bal:WixStandardBootstrapperApplicationLicenseFile="path\to\license.rtf"ThemeFile="path\to\customtheme.xml"/></BootstrapperApplicationRef>

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

TheprogresspageofthebootstrapperapplicationcanbecustomizedtoincludeWindowsInstallerActionDatamessagesbyaddingaTextcontrolwiththenameExecuteProgressActionDataText.

<PageName="Progress"><TextX="11"Y="80"Width="-11"Height="30"FontId="2"DisablePrefix="yes">#(loc.ProgressHeader)</Text><TextX="11"Y="121"Width="70"Height="17"FontId="3"DisablePrefix="yes">#(loc.ProgressLabel)</Text><TextName="OverallProgressPackageText"X="85"Y="121"Width="-11"Height="17"FontId="3"DisablePrefix="yes">#(loc.OverallProgressPackageText)</Text><ProgressbarName="OverallCalculatedProgressbar"X="11"Y="143"Width="-11"Height="15"/><TextName="ExecuteProgressActionDataText"X="11"Y="163"Width="-11"Height="17"FontId="3"DisablePrefix="yes"/>

Page 233: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

<ButtonName="ProgressCancelButton"X="-11"Y="-11"Width="75"Height="23"TabStop="yes"FontId="0">#(loc.ProgressCancelButton)</Button></Page>

TheoverallsizeofthebootstrapperapplicationwindowcanbecustomizedbychangingtheWidthandHeightattributesoftheWindowelementwithinthethemealongwithmodifyingthesizeand/orpositionofallthecontrols.

<Themexmlns="http://wixtoolset.org/schemas/thmutil/2010"><WindowWidth="485"Height="300"HexStyle="100a0000"FontId="0">#(loc.Caption)</Window>

Toviewathemefilewithouthavingtobuildabundle,youcanusetheThmViewer.exewhichislocatedin%WIX%\bin\.

Page 234: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UsingWiXStandardBootstrapperApplicationVariablesTheWiXStandardBootstrapperApplicationoffersasetofvariables:

WixBundleFileVersion-getsthefileversionofthebundle.exe.WixStdBALanguageId-getsthelanguageineffectfortheWixStdBAuserinterface.

Page 235: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BootstrapperApplicationInterfaceTheenginecommunicateswiththebootstrapperapplicationthroughcallbackstotheIBootstrapperApplicationinterface.ThefirstcallfromtheengineisIBootstrapperApplication::OnStartup():

//IBootstrapperApplication::OnStartupSTDMETHOD(OnStartup)()=0;

Typically,theBAusesthiscallbacktostartanewthreadanddisplayauserinterface.AftertheBAreturnsfromOnStartup,theengineentersitsidleloopandwaitsforcommandsfromtheBAviaIBootstrapperEngine.

ThefirstactiontheBAshouldtakeisdetection.TheBAdoesthisbyacalltoIBootstrapperEngine::Detect:

//IBootstrapperEngine::DetectSTDMETHOD(Detect)()=0;

Afterdetection,theBAshoulddeterminewhatoperationtheuserwantstotake.Historicallythishappensasawizardsequence,promptingtheuserforinstallationlocation,featureselection,etc.Whenthedecisionsaremade,theBAplanstheoperationbycallingIBootstrapperEngine::Plan:

//IBootstrapperEngine::PlanSTDMETHOD(Plan)(__inBOOTSTRAPPER_ACTIONaction)=0;

TheBOOTSTRAPPER_ACTIONisanenumerationthatspecifiestheoverallaction.Themostcommonactionsareinstall,uninstall,andrepair.Aftertheplaniscomplete,theBAcanapplythechangesbycallingIBootstrapperEngine::Apply:

//IBootstrapperEngine::ApplySTDMETHOD(Apply)(

Page 236: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

__in_optHWNDhwndParent)=0;

TheBAshouldprovideawindowhandletoensurethattheelevationprompt,ifoneisrequired,isactiveanddisplayedaboveotherwindows.ThebulkoftheBAtimewillbespenthandlingcallbacksfromtheApplyaction.

WhentheBAisdone,itshouldnotifytheenginebycallingIBootstrapperEngine::Shutdown:

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

TheenginewillthencalltheBAonelasttimeviaIBootstrapperApplication::OnShutdown:

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

Page 237: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HowTo:AddaFileToYourInstallerInstallingfilesisthemostfundamentalaspectofanyinstaller,andisusuallywhatleadspeopletobuildaninstallerinthefirstplace.LearninghowtoplaceafileondiskusingWindowsInstallerbestpracticesnotonlyensuresmaintainabilitygoingforward,butalsoenablesyoutobuildpatcheslaterifnecessary.

Page 238: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 239: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 240: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

EachComponentelementisgivenanIdandaGuid.TheIdisusedtorefertothecomponentlaterintheWiXproject.TheGuidisusedlaterforpatchesandmustbeuniqueforeachcomponent.ForinformationongeneratingGUIDsseeHowTo:GenerateaGUID.

BeneatheachcomponentisaFileelementthatdoestheactualworkofpackagingyoursourcefilesintotheinstaller.TheIdisusedtorefertothefileelsewhereintheWiXproject.TheSourceattributespecifiesthelocationofthefileonyourmachine,soWiXcanfinditandbuilditintotheinstaller.

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

TheChecksumattributeshouldbesettoyesforexecutablefilesthathaveachecksumvalueinthefileheader(thisisgenerallytrueforallexecutables),andisusedbytheWindowsInstallertoverifythevalidityofthefileonre-install.

Page 241: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 242: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 243: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 244: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 245: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step2:UsethepropertyinaconditionOnceyouhavedeterminedwhetherthefileexistswiththerequestedversionyoucanusethepropertyinacondition.Thefollowingisasimpleexamplethatpreventsinstallationoftheapplicationiftheuser32.dllfileversionistoolow.

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

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

Page 246: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 247: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

TheProgramMenuFolderIdisastandardWindowsInstallerpropertythatpointstotheStartMenufolderonthetargetmachine.ThesecondDirectoryelementcreatesasubfolderontheStartMenucalledMyApplicationName,andgivesitanidforuselaterintheWiXproject.

Page 248: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

ThefollowingsampleusesthedirectorystructuredefinedinStep1tocreatetheStartMenushortcut.

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

The<DirectoryRef>elementisusedtorefertothedirectorystructurecreatedinstep1.ByreferencingtheApplicationProgramsFolderdirectorytheshortcutwillbeinstalledintotheuser'sStartMenuinsidetheMyApplicationNamefolder.

UnderneaththeDirectoryRefisasingleComponenttogrouptheelementsusedtoinstalltheShortcut.ThefirstelementisShortcutanditcreatestheactualshortcutintheStartMenu.TheIdattributeisauniqueidfortheshortcut.TheNameattributeisthetextthatwillbedisplayedintheStartMenu.Thedescriptionisanoptionalattributeforanadditionalapplicationdescription.TheTargetattributepointstotheexecutabletolaunchondisk.Noticehowitreferencesthefullpathusingthe[#FileId]syntaxwheremyapplication.exewaspreviouslydefined.TheWorkingDirectoryattributesetstheworkingdirectoryfortheshortcut.

Tosetanoptionaliconfortheshortcutyouneedtofirstincludetheicon

Page 249: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

inyourinstallerusingthe<Icon>element,thenreferenceitusingtheIconattributeontheShortcutelement.

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

Page 250: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

<ComponentRefId="ApplicationShortcut"/>

The<ComponentRef>elementisusedtoreferencethecomponentcreatedinStep2viatheIdattribute.

Page 251: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

TheCompleteSampleThefollowingisacompletesamplethatusestheaboveconcepts.ThisexamplecanbeinsertedintoaWiXprojectandcompiled,orcompiledandlinkedfromthecommandline,togenerateaninstaller.

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

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

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

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

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

Page 252: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 253: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HowTo:CreateaShortcuttoaWebpageWiXprovidessupportforcreatingshortcutstoInternetsitesaspartoftheinstallprocess.ThishowtodemonstratesreferencingthenecessaryutilitylibraryandaddinganInternetshortcuttoyourinstaller.ItassumesyouhavealreadyfollowedthestepsintheHowTo:CreateashortcutontheStartMenu.

Page 254: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step1:AddtheWiXUtilityextensionslibrarytoyourprojectTheWiXsupportforInternetshortcutsisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommand-lineyouneedtoaddthefollowingtoyourcandleandlightcommandlines:

-extWiXUtilExtension

IfyouareusingWiXinVisualStudioyoucanaddtheextensionsusingtheAddReferencedialog:

1. OpenyourWiXprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd

Reference...3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog

Page 255: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 256: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

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

Page 257: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HowTo:CreateanUninstallShortcutWheninstallinganapplicationitisacommonrequirementtoplaceashortcutontheuser'sStartMenutoprovideamethodofuninstallingtheapplication.ThishowtodemonstratesthestepsrequiredtocreateanuninstallshortcutonthestartmenuthatpassesallICEvalidationchecks.

ThishowtoassumesyouarestartingwiththesampledescribedtheHowTo:CreateaShortcutontheStartMenutopic.

Page 258: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step1:AddtheUninstallShortcutThe<Shortcut>elementisusedtoaddtheuninstallshortcuttothestartmenu,andtheshortcutpointstomsiexec.exe(theWindowsInstallerexecutableusedtoactuallyinvoketheuninstallprocess).AnywherewithintheexistingApplicationShortcutcomponentaddthefollowing:

<ShortcutId="UninstallProduct"Name="UninstallMyApplication"Target="[SystemFolder]msiexec.exe"Arguments="/x[ProductCode]"Description="UninstallsMyApplication"/>

TheTargetattributepointstothelocationofmsiexec.exe.TheWindowsInstallerSystemFolderpropertywillresolvetotheSystem32directorywheremsiexec.exeresides.TheArgumentsattributeisusedtoletmsiexec.exeknowwhichproducttouninstallbypassingintheProductCodefortheinstallpackage.

ToavoidICEvalidationerrorsatbuilditisimportanttocoupletheShortcutelementwitharegistryentryandaRemoteFolderelement.BothofthesearedescribedinmoredetailintheHowTo:CreateaShortcutontheStartMenutopic,andareshowninthecompletesamplebelow.

Page 259: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

TheCompleteSampleThefollowingisacompletesamplethatusestheaboveconcepts.ThisexamplecanbeinsertedintoaWiXprojectandcompiled,orcompiledandlinkedfromthecommandline,togenerateaninstaller.

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

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

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

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

Page 260: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 261: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HowTo:NGenManagedAssembliesDuringInstallationNGenduringinstallationcanimproveyourmanagedapplication'sstartuptimebycreatingnativeimagesofthemanagedassembliesonthetargetmachine.ThishowtodescribesusingtheWiXsupporttoNGenmanagedassembliesatinstalltime.

Page 262: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step1:AddtheWiX.NETextensionslibrarytoyourprojectTheWiXsupportforNGenisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommand-lineyouneedtoaddthefollowingtoyourcandleandlightcommandlines:

-extWixNetFxExtension

IfyouareusingWiXinVisualStudioyoucanaddtheextensionsusingtheAddReferencedialog:

1. OpenyourWiXprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd

Reference...3. SelecttheWixNetFxExtension.dllassemblyfromthelistandclick

Add4. ClosetheAddReferencedialog

Page 263: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 264: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 265: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 266: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 267: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 268: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HowTo:GettheparentdirectoryofafilesearchYoucansetapropertytotheparentdirectoryofafile.

Page 269: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

Page 270: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 271: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HowTo:ReadaRegistryEntryDuringInstallationInstallersoftenneedtolookupthevalueofaregistryentryduringtheinstallationprocess.Theresultingregistryvalueisoftenusedinaconditionalstatementlaterininstall,suchastoinstallaspecificcomponentifaregistryentryisnotfound.Thishowtodemonstratesreadinganintegervaluefromtheregistryandverifyingthatitexistsinalaunchcondition.

Page 272: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 273: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 274: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HowTo:WriteaRegistryEntryDuringInstallationWritingregistryentriesduringinstallationissimilartowritingfilesduringinstallation.Youdescribetheregistryhierarchyyouwanttowriteinto,specifytheregistryvaluestocreate,thenaddthecomponenttoyourfeaturelist.

Page 275: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 276: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

TheidattributeisomittedontheRegistryKeyandRegistryValueelementsbecausethereisnoneedtorefertotheseitemselsewhereintheWiXprojectfile.WiXwillauto-generateidsfortheelementsbasedontheregistrykey,value,andparentcomponentname.

Page 277: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

<ComponentRefId="RegistryEntries"/>

The<ComponentRef>elementisusedtoreferencethecomponentcreatedinStep1viatheIdattribute.

Page 278: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 279: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HowTo:BlockBootstrapperInstallationBasedonRegistryKeyInthisexample,thebootstrapperwillinstall.NETFramework4.0,ifnecessary,andthenthespecificapplication.However,theapplicationdependsonapreviousinstallationofthird-partysoftware.Ideally,theuserwantstoaborttheinstallationandavoidatime-consuming.NETFrameworkinstallifthesoftwarecan'tbeused.Anexistencecheckforaregistrykey,inthisexample,allowstheinstalltoabortifit'snotfound.Here'showit'sdone:

TheprocessrequiresboththeWiXUtilandtheWiXBalextensions.Referencetheextensionsfromthebootstrapperproject,andaddtheschematotheWixelement.(The.NETFrameworkextensionisincludedmerelyaspartoftheexample.)TheWixelementshouldlooklikethis:

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

Theutil:RegistrySearchelementdefinesaWiXvariable,ThirdPartyCOMLibraryInstalled,thatwillbeTruewhenthekeyexists.

<util:RegistrySearchId='SearchForThirdParty'Variable="ThirdPartyCOMLibraryInstalled"Result="exists"Root="HKLM"Key="SOFTWARE\Classes\ThirdPartyId.Server\CLSID"/>

TheWiXvariable,ThirdPartyCOMLibraryInstalled,isusedasthebal:Conditioncheckexpression.IfFalse,thevalueofthe'Message'attributeisdisplayed,andtheinstallationisaborted.

<bal:ConditionMessage="ThirdPartyApplicationCOMLibraryRequired.">

Page 280: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ThirdPartyCOMLibraryInstalled</bal:Condition>

IfthecodeisorganizedinaFragment,asinthisexample,anelementmustbereferencedfromtheBundletoincludeit.Theutil:RegistrySearchelementisreferenced:

<util:RegistrySearchRefId='SearchForThirdParty'/>

ThecompleteBundleillustratestherequiredelementsincontext.

<?xmlversion="1.0"encoding="UTF-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension"xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"><BundleName="!(bind.packageName.MyApp)"Version="!(bind.packageVersion.MyApp)"Manufacturer="!(bind.packageManufacturer.MyApp)"UpgradeCode="a07ce1d5-a7ed-4d89-a7ee-fb13a5dd69ba"Copyright="Copyright(c)2013[Bundle/@Manufacturer].Allrightsreserved."IconSourceFile="$(var.My_Application1.ProjectDir)MyCo.ico"><VariableName="InstallFolder"Type="string"Value="[ProgramFilesFolder]MyCoSystems\My_Application\"/><util:RegistrySearchRefId='SearchForThirdParty'/><BootstrapperApplicationRefId="WixStandardBootstrapperApplication.HyperlinkLicense"><bal:WixStandardBootstrapperApplicationLaunchTarget="[InstallFolder]My_Application.exe"SuppressRepair="yes"SuppressOptionsUI="yes"LicenseUrl=""LogoFile="Resources/MyCoLogoWt64.png"/></BootstrapperApplicationRef><Chain>

Page 281: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

<PackageGroupRefId="NetFx40Redist"/><MsiPackageId="MyApp"Vital="yes"Name="MyApplication"SourceFile="$(var.MyApp_Install.TargetDir)MyApp_Install.msi"><MsiPropertyName="INSTALLLOCATION"Value="[InstallFolder]"/></MsiPackage></Chain></Bundle><Fragment><util:RegistrySearchId='SearchForThirdParty'Variable="ThirdPartyCOMLibraryInstalled"Result="exists"Root="HKLM"Key="SOFTWARE\Classes\ThirdPartyId.Server\CLSID"/><bal:ConditionMessage="ThirdPartyApplicationCOMLibraryRequired.">ThirdPartyCOMLibraryInstalled</bal:Condition></Fragment></Wix>

Page 282: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 283: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step1:AddWixNetFxExtensiontoyourprojectYoumustaddtheWixNetFxExtensiontoyourprojectpriortouse.IfyouareusingWiXonthecommandline,youneedtoaddthefollowingtoyourcandleandlightcommandlines:

-extWixNetFxExtension

IfyouareusingWiXinVisualStudio,youcanaddtheextensionusingtheAddReferencedialog:

1. OpenyourWiXprojectinVisualStudio.2. RightclickonyourprojectinSolutionExplorerandselectAdd

Reference....3. SelecttheWixNetFxExtension.dllassemblyfromthelistandclick

Add.4. ClosetheAddReferencedialog.

Page 284: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step2:AddWixNetFxExtension'snamespacetoyourprojectOncetheextensionisaddedtoyourproject,youneedtoadditsnamespacetoyourprojectsoyoucanaccesstheappropriateWiXelements.Todothis,modifythetop-level<Wix>elementinyourprojectbyaddingthefollowingattribute:

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

AcompleteWixelementwiththestandardnamespaceandWixNetFxExtension'snamespaceaddedlookslikethis:

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

Page 285: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

<PropertyRefId="NETFRAMEWORK20"/>

Page 286: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step4:Usethepre-definedpropertiesinaconditionOncethepropertyisreferenced,youcanuseitinanyWiXconditionstatement.Forexample,thefollowingconditionblocksinstallationif.NETFramework2.0isnotinstalled.

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

InstalledisaWindowsInstallerpropertythatensuresthecheckisonlydonewhentheuserisinstallingtheapplication,ratherthanonarepairorremove.TheNETFRAMEWORK20partoftheconditionwillpassif.NETFramework2.0isinstalled.Ifitisnotset,theinstallerwilldisplaytheerrormessagethenaborttheinstallationprocess.

Tocheckagainsttheservicepackleveloftheframework,usethe*_SP_LEVELproperties.Thefollowingconditionblocksinstallationif.NETFramework3.0SP1isnotpresentonthemachine.

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

Aswiththepreviousexample,Installedpreventsthecheckfromrunningwhentheuserisdoingarepairorremove.TheNETFRAMEWORK30_SP_LEVELpropertyissetto"#1"ifServicePack1ispresent.Sincethereisnowaytodoanumericalcomparisonagainstavaluewitha#infrontofit,theconditionfirstcheckstoseeiftheNETFRAMEWORK30_SP_LEVELissetandthenconfirmsthatitissettoanumber.Thiswillcorrectlyindicatewhetheranyservicepackfor.NET3.0isinstalled.

Page 287: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

PriortoredistributingtheDirectXbinariesyoushouldreadandunderstandthelicenseagreementfortheredistributablefiles.ThelicenseagreementcanbefoundintheDocumentation\LicenseAgreements\DirectXRedist.txtfileinyourDirectXSDKinstallation.

Page 288: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 289: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

preventtheuserfromseeingthefeatureinanyUIthatmaybepartofyourinstaller.

Page 290: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 291: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

TheProgressTextelementusestheActionattributetoreferencethecustomactionbyitsuniqueid.ThevalueoftheProgressTextelementissettothedisplaytextfortheinstallprogress.

Page 292: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 293: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step1:CreateabundleforyourapplicationFollowtheinstructionsinBuildingInstallationPackageBundles.

Page 294: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step2:Addareferencetooneofthe.NETPackageGroups1. AddareferencetoWixNetFxExtensiontoyourbundleproject.2. AddaPackageGroupRefelementtoyourbundle'schainthat

referencesthe.NETpackagerequiredbyyourapplication.Forafulllist,see[WixNetfxExtension](../../customactions/wixnetfxextension.html).EnsurethatthePayloadGroupRefisplacedbeforeanyotherpackagesthatrequire.NET.

<Chain><PackageGroupRefId="NetFx45Web"/><MsiPackageId="MyApplication"SourceFile="$(var.MyApplicationSetup.TargetPath)"/></Chain>

Page 295: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step3:Optionallypackagethe.NETFrameworkredistributableThe.NETPackageGroupsuseremotepayloadstodownloadthe.NETredistributablewhenrequired.IfyouwanttocreateabundlethatdoesnotrequireInternetconnectivity,youcanpackagethe.NETredistributablewithyourbundle.Doingsorequiresyouhavealocalcopyoftheredistributable,suchascheckedintoyoursource-controlsystem.

<Bundle><PayloadGroupId="NetFx452RedistPayload"><PayloadName="redist\NDP452-KB2901907-x86-x64-AllOS-ENU.exe"SourceFile="X:\path\to\redists\in\repo\NDP452-KB2901907-x86-x64-AllOS-ENU.exe"/></PayloadGroup></Bundle>

NotethatthePackageGroupRefinthebundle'schainisstillrequired.

Page 296: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CustomizingyourbootstrapperapplicationAnynativebootstrapperapplication,includingtheWiXStandardBootstrapperApplication,willworkwellwithbundlesthatinclude.NET.

Managedbootstrapperapplicationsmusttakecarewhenincluding.NETtoensurethattheydonotunnecessarilydependonthe.NETframeworkversionbeinginstalled.

1. Referencethemanagedbootstrapperapplicationhostfromyourbundle.

<BootstrapperApplicationRefId="ManagedBootstrapperApplicationHost"><PayloadName="BootstrapperCore.config"SourceFile="$(var.MyMBA.TargetDir)\TestUX.BootstrapperCore.config<PayloadSourceFile="$(var.MyMBA.TargetPath)"/></BootstrapperApplicationRef>

2. Targetyourbootstrapperapplicationtotheversionof.NETbuiltintotheoperatingsystem.ForWindows7,thisis.NET3.5.

3. Supportusingthenewerversionsof.NETiftheolderversionsarenotavailable.ThefollowingexampleshowsthecontentoftheBootstrapperCore.configfile.

<configuration><configSections><sectionGroupname="wix.bootstrapper"type="Microsoft.Tools.WindowsInstallerXml.Bootstrapper.BootstrapperSectionGroup,BootstrapperCore<sectionname="host"type="Microsoft.Tools.WindowsInstallerXml.Bootstrapper.HostSection,BootstrapperCore</sectionGroup></configSections><startupuseLegacyV2RuntimeActivationPolicy="true"><supportedRuntimeversion="v2.0.50727"/><supportedRuntimeversion="v4.0"/>

Page 297: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 298: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 299: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 300: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 301: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 302: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 303: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Option1:BuildinglocalizedinstallersfromthecommandlineThefirststepinbuildingalocalizedinstalleristocompileyourWiXsourcesusingcandle.exe:

candle.exemyinstaller.wxs-outmyinstaller.wixobj

Aftertheintermediateoutputfileisgeneratedyoucanthenuselight.exetogeneratemultiplelocalizedMSIs:

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

The-locflagisusedtospecifythelanguagefiletouse.Itisimportanttoincludethe-culturesflagonthecommandlinetoensurethecorrectlocalizedstringsareincludedforextensionssuchasWiXUIExtension.

Page 304: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Formoreinformation,seeSpecifyingculturestobuild

Page 305: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SpecifyingCulturestoBuild

SpecifyingCulturestobuildontheCommandLineYoucanspecifyaspecificcultureforlight.exetobuildusingthecultureswitch:

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

Thiswillcauselighttobuildanen-usinstallerusingtheen-usresourcesfromWixUIExtension.

Youcanstillusecultureswhenspecifyinglocalizationfiles:

light.exemyinstaller.wixobj-cultures:en-us-locmystrings_en-US.wxl-locmystrings_fr-FR.wxl-outmyinstaller-en-us.msi

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

Theneutral(invariant)culturecanbespecifiedbyusingneutral:

light.exemyinstaller.wixobj-cultures:neutral-locmystrings_en-US.wxl-locmystrings_fr-FR.wxl-locmystrings.wxl-outmyinstaller.msi

Thiswillcauselighttobuildaneutralinstallerusingtheneutralresourcesfromthemystrings.wxlfile.

Youcanuseculturesandlocalizationfilestogethertospecifyfallbackcultures:

Page 306: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

Page 307: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SpecifyingCulturestobuildinVisualStudioDuringthedevelopmentofyourinstalleryoumaywanttotemporarilydisablebuildingsomeofthelanguagestospeedupbuildtime.YoucandothisbygoingtoProject>ProjectnamePropertiesonthemenuandselectingtheBuildtab.IntheCulturestobuildfieldenterthesemicolonlistofculturesorculturegroupsyouwouldlikebuilt.

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

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

en-US;fr-FR;neutral

CulturestobuildmayalsobeusedtospecifyhowtousemultipleWxLfilestobuildasingleinstaller.EachcultureorculturegroupwillbuildanindividualMSI.AculturegroupconsistsofalistofculturesseparatedbycommasandisusefulforspecifyingfallbackculturesusedtolocateWiXlocalizationvariables.Multipleculturegroupsmaybeseparatedbysemi-colonstobuildmultipleoutputs.

primary1,fallback1;primary2,fallback2

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

Page 308: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

thefullylocalizedinstallers.

Page 309: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HowTo:MakeyourinstallerlocalizableWiXsupportsbuildinglocalizedinstallersthroughtheuseoflanguagefilesthatincludelocalizedstrings.Itisagoodpracticetoputallyourstringsinalanguagefileasyoucreateyoursetup,evenifyoudonotcurrentlyplanonshippinglocalizedversionsofyourinstaller.ThishowtodescribeshowtocreatealanguagefileanduseitsstringsinyourWiXproject.

Page 310: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

<?xmlversion="1.0"encoding="utf-8"?><WixLocalizationCulture="en-us"xmlns="http://schemas.microsoft.com/wix/2006/localization"></WixLocalization>

IfyouareusingVisualStudioyoucanaddanewlanguagefiletoyourprojectbydoingthefollowing:

1. RightclickonyourprojectinSolutionExplorerandselectAdd>NewItem...

2. SelectWiXLocalizationFile,givethefileanappropriatename,andselectAdd

BydefaultVisualStudiocreateslanguagefilesintheen-usculture.TocreatealanguagefileforadifferentculturechangetheCultureattributetotheappropriateculturestring.

Page 311: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

TheStringelementgoesinsidetheWixLocalizationelement,andyoushouldaddoneStringelementforeachpieceoftextyouneedtolocalize.

Page 312: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step3:UsethelocalizedstringsinyourprojectOnceyouhavedefinedthestringsyoucanusetheminyourprojectwhereveryouwouldnormallyusetext.Forexample,tosetyourproduct'sNameandManufacturertothelocalizedstringsdothefollowing:

<ProductId="*"UpgradeCode="PUT-GUID-HERE"Version="1.0.0.0"Language="1033"Name="!(loc.ApplicationName)"Manufacturer="!(loc.ManufacturerName)">

Localizationstringsarereferencedusingthe!(loc.stringname)syntax.Thesereferenceswillbereplacedwiththeactualstringsfortheappropriatelocaleatbuildtime.

ForinformationonhowtocompilelocalizedversionsofyourinstalleronceyouhavethenecessarylanguagefilesseeHowTo:Buildalocalizedversionofyourinstaller.

Page 313: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HowTo:SetYourInstaller'sIconinAdd/RemoveProgramsWindowsInstallersupportsastandardproperty,ARPPRODUCTICON,thatcontrolstheicondisplayedinAdd/RemoveProgramsforyourapplication.TosetthispropertyyoufirstneedtoincludetheiconinyourinstallerusingtheIconelement,thensetthepropertyusingthePropertyelement.

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

ThesetwoelementscanbeplacedanywhereinyourWiXprojectundertheProductelement.TheIconelementspecifiesthelocationoftheicononyoursourcemachine,andgivesitauniqueidforuselaterintheWiXproject.ThePropertyelementsetstheARPPRODUCTIONpropertytotheidoftheicontouse.

Page 314: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HowTo:RuntheInstalledApplicationAfterSetupOftenwhencompletingtheinstallationofanapplicationitisdesirabletooffertheusertheoptionofimmediatelylaunchingtheinstalledprogramwhensetupiscomplete.ThishowtodescribescustomizingthedefaultWiXUIexperiencetoincludeacheckboxandaWiXcustomactiontolaunchtheapplicationifthecheckboxischecked.

ThishowtoassumesyouhavealreadycreatedabasicWiXprojectusingthestepsoutlinedinHowTo:Addafiletoyourinstaller.

Page 315: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step1:AddtheextensionlibrariestoyourprojectThiswalkthroughrequiresWiXextensionsforUIcomponentsandcustomactions.Theseextensionlibrariesmustmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommand-lineyouneedtoaddthefollowingtoyourcandleandlightcommandlines:

-extWixUIExtension-extWixUtilExtension

IfyouareusingVisualStudioyoucanaddtheextensionsusingtheAddReferencedialog:

1. RightclickonyourprojectinSolutionExplorerandselectAddReference...

2. SelecttheWixUIExtension.dllassemblyfromthelistandclickAdd3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog

Page 316: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step2:AddUItoyourinstallerTheWiXMinimalUIsequenceincludesabasicsetofdialogsthatincludesafinisheddialogwithoptionalcheckbox.Toincludethesequenceinyourprojectaddthefollowingsnippetanywhereinsidethe<Product>element.

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

Todisplaythecheckboxonthelastscreenoftheinstallerincludethefollowingsnippetanywhereinsidethe<Product>element:

<PropertyId="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT"Value="LaunchMyApplicationName

TheWIXUI_EXITDIALOGOPTIONALCHECKBOXTEXTpropertyisprovidedbythestandardUIsequencethat,whenset,displaysthecheckboxandusesthespecifiedvalueasthecheckboxlabel.

Page 317: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

<PropertyId="WixShellExecTarget"Value="[#myapplication.exe]"/><CustomActionId="LaunchApplication"BinaryKey="WixCA"DllEntry="WixShellExec"Impersonate="yes

ThePropertyelementsetstheWixShellExecTargettothelocationoftheinstalledapplication.WixShellExecTargetisthepropertyIdtheWixShellExeccustomactionexpectswillbesettothelocationofthefiletorun.TheValuepropertyusesthespecial#charactertotellWiXtolookupthefullinstalledpathofthefilewiththeidmyapplication.exe.

TheCustomActionelementincludestheactionintheinstaller.ItisgivenauniqueId,andtheBinaryKeyandDllEntrypropertiesindicatetheassemblyandentrypointforthecustomaction.TheImpersonatepropertytellsWindowsInstallertorunthecustomactionastheinstallinguser.

Page 318: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

<PublishDialog="ExitDialog"Control="Finish"Event="DoAction"Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX=1andNOTInstalled</

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

Page 319: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

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

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

<!--Step2:AddUItoyourinstaller/Step4:Triggerthecustomaction--><UI><UIRefId="WixUI_Minimal"/><PublishDialog="ExitDialog"Control="Finish"Event="DoAction"Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX=1andNOTInstalled</UI><PropertyId="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT"Value="LaunchMyApplicationName

<!--Step3:Includethecustomaction--><PropertyId="WixShellExecTarget"Value="[#myapplication.exe]"/><CustomActionId="LaunchApplication"

Page 320: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 321: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Youcanusethefollowingstepstoenablemajorupgradesinyour.msi,buildmultipleversionsofyour.msiandtestmajorupgradescenarios.

Page 322: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step1:AddupgradeinformationneededtocausenewversionstoupgradeolderversionsInordertoallowmajorupgrades,youmustincludethefollowinginformationinyour.msi:

AddauniqueIDtoidentifythattheproductcanbeupgraded

Toaccomplishthis,youmustincludeanUpgradeCodeattributeinyourProductelement.Thislookslikethefollowing:

<ProductId="*"UpgradeCode="PUT-GUID-HERE"Name="MyApplicationName"Language="1033"Version="1.0.1"Manufacturer="MyManufacturerName"/>

Scheduletheremovalofoldversionsandhandleout-of-orderinstallations

TheMajorUpgradeelementupgradesallolderversionsofthe.msi.Bydefault,itpreventsout-of-orderinstallations:installinganolderversionafterinstallinganewerversion.

<MajorUpgradeDowngradeErrorMessage="Alaterversionof[ProductName]isalreadyinstalled.Setupwillnowexit."

ThereareseveraloptionsforwhereyoucanscheduletheRemoveExistingProductsactiontoremoveoldversionsofthe.msi.Youneedtoreviewtheoptionsandchoosetheonethatmakesthemostsenseforyourscenarios.YoucanfindasummaryoftheoptionsintheRemoveExistingProductsdocumentation.

Bydefault,MajorUpgradeschedulesRemoveExistingProductsafterInstallValidate.YoucanchangetheschedulingusingtheSchedule

Page 323: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

attribute.Forexample,IfyouchoosetoscheduleitafterInstallInitialize,itwilllooklikethefollowing:

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

WindowsInstallerlooksforotherinstalled.msifileswiththesameUpgradeCodevalueduringtheFindRelatedProductsaction.IfyoudonotspecificallyscheduletheFindRelatedProductsactioninyoursetupauthoring,WiXwillautomaticallyscheduleitforyouwhenitcreatesyour.msi.

Page 324: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step2:Buildversion1andversion2ofyour.msiCreatingversion1ofyour.msiisassimpleasrunningyourstandardbuildprocess-thismeansyoucompileandlinkitwiththeWiXtoolset.Inordertocreateversion2ofyour.msi,youmustmakethefollowingchangestoyoursetupauthoring,thenre-runyourbuildprocesstocreateanew.msi:

IncrementtheVersionvalueinyourProductelementtobehigherthananypreviousversionsthatyouhaveshipped.WindowsInstalleronlyusesthefirst3partsoftheversioninupgradescenarios,somakesuretoincrementyourversionsuchthatoneofthefirst3partsishigherthananypreviouslyshippedversion.Forexample,ifyourversion1usesVersionvalue1.0.1.0,thenversion2shouldhaveaVersionvalueof1.0.2.0orhigher(1.0.1.1willnotworkhere).GenerateanewIdvalueintheProductelementofthenewversionofthe.msi.

Page 325: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step3:Testupgradescenariosbeforeyoushipversion1Thisstepisveryimportantandistoooftenignored.Inordertomakesurethatupgradescenarioswillbehavethewayyouexpect,youshouldtestupgradesbeforeyoushipthefirstversionofyour.msi.Therearesomeupgrade-relatedbugsthatcanbefixedpurelybymakingfixesinversion2orhigherofyour.msi,buttherearesomebugsthataffecttheuninstallofversion1thatmustbefixedbeforeyoushipversion1.Onceversion1ships,youareessentiallylockedintotheuninstallbehaviorthatyoushipwithversion1,andthatimpactsmajorupgradescenariosbecauseWindowsInstallerperformsanuninstallofversion1behindthescenesduringversion2installation.

Herearesomeinterestingscenariostotest:

Installversion1,theninstallversion2.Makesurethatversion1iscorrectlyremovedandversion2functionscorrectly.Makesureversion2cleanlyuninstallsafterwards.Installversion2,thentrytoinstallversion1.Makesurethatversion1correctlydetectsthatversion2isalreadyinstalledandeitherblocksorsilentlyexits,dependingonwhatbehavioryouchoosetoimplementforyourout-of-orderinstallationscenarios.

Whentestingmajorupgradescenarios,makesuretopayparticularattentiontotheconditionsoncustomactionsinyour.msibecauseyoumayrunintoissuescausedbycustomactionsrunningduringamajorupgradeuninstallandleavingyourproductinapartiallyinstalledstate.TheUPGRADINGPRODUCTCODEpropertycanbeusefultopreventactionsfromrunningduringanuninstallthatisinvokedbytheRemoveExistingProductsaction.

Inaddition,payattentiontoassembliesthatneedtobeinstalledtotheGACortheWin32WinSxSstore.ThereissomeinformationaboutasequenceofeventsthatcanremoveassembliesfromtheGACandtheWinSxSstoreduringsomemajorupgradesinthisknowledgebasearticle.

Page 326: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Howto:AuthorproductdependenciesTODO

Page 327: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HowTo:UseWiXExtensionsTheWiXextensionscanbeusedbothonthecommandlineandwithintheVisualStudioIDE.WhenyouuseWiXextensionsintheVisualStudioIDE,youcanalsoenableIntelliSenseforeachWiXextension.

Page 328: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 329: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 330: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 331: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HowTo:GetaLogofYourInstallationforDebuggingWhenauthoringinstallersitisoftennecessarytogetalogoftheinstallationfordebuggingpurposes.Thisisparticularlyhelpfulwhentryingtodebugfilesearchesandlaunchconditions.Toobtainalogofaninstallationusethecommandlinemsiexectool:

msiexec/iMyApplication.msi/l*vMyLogFile.txt

ThiswillinstallyourapplicationandwriteaverboselogtoMyLogFile.txtinthecurrentdirectory.

IfyouneedtogetalogofyourinstallerwhenitislaunchedfromtheAdd/RemoveProgramsdialogyoucanenableWindowsInstallerloggingviatheregistry.

Page 332: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HowTo:LookInsideYourMSIWithOrcaWhenbuildinginstallersitcanoftenbeusefultolookinsideyourinstallertoseetheactualtablesandvaluesthatwerecreatedbytheWiXbuildprocess.MicrosoftprovidesatoolwiththeWindowsSDK,calledOrca,thatcanbeusedforthispurpose.ToinstallOrca,downloadandinstalltheWindowsSDK.AftertheSDKinstallationiscompletenavigatetotheinstalldirectory(typicallyC:\ProgramFiles\MicrosoftSDKs\Windows\v7.0)andopentheToolsfolder.InsidetheToolsfolderrunOrca.msitocompletetheinstallation.(IftheWindows8.1SDKisinstalled,thenOrca-x86.msicantypicallybefoundinc:\ProgramFiles\WindowsKits\8.1\bin\x86)

OnceOrcaisinstalledyoucanrightclickonanyMSIfilefromWindowsExplorerandselectEditwithOrcatoviewthecontentsoftheMSI.

Page 333: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HowTo:OptimizebuildspeedWiXprovidestwowaysofspeedingupthecreationofcabinetsforcompressingfiles:

Multithreadedcabinetcreation.Cabinetreuse.

Page 334: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

Youcanusemultiplecabinetsbothexternallyandembeddedinthe.msipackage(usingtheMedia/@EmbedCabattribute).

Page 335: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 336: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HowTo:SpecifysourcefilesWiXprovidesthreewaysofidentifyingasetuppackage'spayload-thefilesthatareincludedinthesetupandinstalledontheuser'smachine.

Byfilenameanddirectorytree.Byexplicitsourcefile.Vianamedbinderpaths.

Page 337: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

ThoughWiXsourceauthoringreferstopayloadfiles,thecompilerneverlooksatthem;instead,onlythebinderdoes,whenitcreatescabinetscontainingthemorcopiesthemtoanuncompressedlayout.

Youcanprovidethebinderwithoneormorebinderinputpathsitusestolookforfiles.Italsolooksforfilesrelativetothecurrentworkingdirectory.Light.exe's-bswitchandtheBindInputPaths.wixprojpropertyletyouspecifyoneormorebinderinputpaths.

Binderinputpathscanalsobeprefixedwithanamewhichwillappendthatpathtotheidentifiedbinderinputpathbucket(unprefixedpathswillbeaddedtotheunnamedbinderpathsbucket).Thebucketnamemustbemorethantwocharacterslongandbefollowedbyanequalsign("=").SeeanexampleintheIdentifyingpayloadvianamedbinderpathssection

Page 338: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

thebinderlooksforafilefoo\bar\baz.txtintheunnamedbinderinputpaths.

Overridingimplicitpayloaddirectories

TheFileSourceattributefortheDirectoryandDirectoryRefelementssetsanewdirectoryforfilesinthatdirectoryoranychilddirectories.Forexample,giventhepartialauthoring

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

thebinderlooksforafilebuild\retail\x86\bar\baz.txtintheunnamedbinderinputpaths.

TheFileSourceattributecanusepreprocessorvariablesorenvironmentvariables.Ifthevalueisanabsolutepath,thebinder'sunnamedinputpathsaren'tused.

Preferreduse

Page 339: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Ifthebuildtreeservingasyourpayloadsourceisalmostidenticaltothetreeofyourinstalledimageandyouhaveamoderate-to-deepdirectorytree,usingimplicitpathswillavoidrepetitioninyourauthoring.

Sourcedirectories

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

Page 340: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

IfyouspecifyFile/@Source,youcanomitFile/@Namebecausethecompilerautomaticallysetsittothefilenameportionofthesourcepath.

Preferreduse

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

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

SeetheWiXauthoringinsrc\Setup\*.wxsforexamples.

Page 341: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

IdentifyingpayloadvianamedbinderpathsThisissimilarinauthoringstyleto"Identifyingpayloadbysourcefiles"whilesearchingmultiplepathslike"Identifyingfilesbynameanddirectorytree".Assuch,itissortofahybridbetweenthetwo.

NamedbindpathsusestheFile/@Sourcepathprefixedwithabindpathvariablelike!(bindpath.bucketname).AswiththeunnamedbinderpathsusedwhentheFile/@Sourceisnotpresenteachpathtaggedwiththesamebucketnamewillbetesteduntilamatchingfileisfound.Iftheresultingpathisnotanabsolutefilepath,theunnamedbinderfilepathswillbesearchedforeachstringinthebucket.

<FileSource="!(bindpath.foo)bar\baz.txt"/><FileSource="!(bindpath.bar)baz\foo.txt"/>

light-bfoo=C:\foo\-bbar=C:\bar\-bfoo=D:\

willlookforthebaz.txtfilefirstatC:\foo\bar\baz.txtandthenatD:\bar\baz.txt,usingthefirstonefound,whilelookingforthefoo.txtfileatC:\bar\baz\foo.txt;while

<FileSource="!(bindpath.foo)bar\baz.txt"/><FileSource="!(bindpath.bar)baz\foo.txt"/>

light-bfoo=foo\-bbar=bar\-bfoo=baz\

willsearchforthebaz.txtfileasiflookingfortwofileshavingFile/@Sourcevaluesoffoo\bar\baz.txtandbaz\bar\baz.txtandwillsearchforthefoo.txtfileasiftheFile/@Sourcewasbar\baz\foo.txt.

Preferreduse

Ifthebuildtreeservingasyourpayloadsourceplacesthesamecategory

Page 342: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Forexample,apartialbuildsystemmayseparatebinaryandnon-binaryfilestodifferentpathsstoredonanetworksharewhilethelocaloverridebuildmaynothavethemseparated.ByprefixingtheFile/@Sourcevalueswiththeappropriatebindpathvariableuniquefilenamescanbereferredtowithjusttheirfilenameswhilefileswiththesamenameacrossplatformsuserelativepaths.

Page 343: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 344: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

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

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

TobuildtheMSIfromthisWiXauthoring:

1. Puttheabovecodeinafilenamedyourfile.wxs.2. Replacethe"PUT-GUID-HERE"attributeswithrealGUIDs.3. Runcandle.exeyourfile.wxs-ext%fullpathtoWixUtilExtension.dll%4. Runlight.exeyourfile.wixobj-ext%fullpathtoWixUtilExtension.dll%-

outyourfile.msiyourfile.wixout

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

Page 345: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

Page 346: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 347: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 348: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 349: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 350: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 351: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 352: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SHGetFolderPathCSIDL_PROFILEflag.

WIX_DIR_RECENT Per-usermostrecentlyuseddocumentsshortcutdirectory.EquivalenttotheSHGetFolderPathCSIDL_RECENTflag.

WIX_DIR_RESOURCES All-usersresourcedatadirectory.EquivalenttotheSHGetFolderPathCSIDL_RESOURCESflag.

Page 353: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixQueryOsWellKnownSIDproperties

WIX_ACCOUNT_LOCALSYSTEM LocalizedqualifiednameoftheLocalSystemaccount(WinLocalSystemSid).

WIX_ACCOUNT_LOCALSERVICE LocalizedqualifiednameoftheLocalServiceaccount(WinLocalServiceSid).

WIX_ACCOUNT_NETWORKSERVICE LocalizedqualifiednameoftheNetworkServiceaccount(WinNetworkServiceSid).

WIX_ACCOUNT_ADMINISTRATORS LocalizedqualifiednameoftheAdministratorsgroup(WinBuiltinAdministratorsSid).

WIX_ACCOUNT_USERS LocalizedqualifiednameoftheUsersgroup(WinBuiltinUsersSid).

WIX_ACCOUNT_GUESTS LocalizedqualifiednameoftheUsersgroup(WinBuiltinGuestsSid).

WIX_ACCOUNT_PERFLOGUSERS,WIX_ACCOUNT_PERFLOGUSERS_NODOMAIN

LocalizedqualifiednameofthePerformanceLogUsersgroup(WinBuiltinPerfLoggingUsersSid).

Page 354: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixQueryOsDriverInfoproperties

WIX_WDDM_DRIVER_PRESENT Setto1ifthevideocarddriveronthetargetmachineisaWDDMdriver.ThispropertyisonlysetonmachinesrunningWindowsVistaorhigher.

WIX_DWM_COMPOSITION_ENABLED Setto1ifthetargetmachinehascompositionenabled.ThispropertyisonlysetonmachinesrunningWindowsVistaorhigher.

Page 355: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 356: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SampleWIXsourcefragmentandPerfCounter.ini

<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><Fragment><DirectoryRefId="BinDir"><ComponentId="SharedNative"DiskId="1">

<RegistryId="Shared_r1"Root="HKLM"Key="SYSTEM\CurrentControlSet\Services\MyApplication\Performance"Name="Open"Value="OpenPerformanceData"Type="string"/><RegistryId="Shared_r2"Root="HKLM"Key="SYSTEM\CurrentControlSet\Services\MyApplication\Performance"Name="Collect"Value="CollectPerformanceData"Type="string"/><RegistryId="Shared_r3"Root="HKLM"Key="SYSTEM\CurrentControlSet\Services\MyApplication\Performance"Name="Close"Value="ClosePerformanceData"Type="string"/><RegistryId="Shared_r4"Root="HKLM"Key="SYSTEM\CurrentControlSet\Services\MyApplication\Performance"Name="Library"Value="[!PERFDLL.DLL]"Type="string"/>

<FileId="PERFDLL.DLL"Name="MyPerfDll.dll"Source="x86\debug\0\myperfdll.dll"/>

<FileId="PERFCOUNTERS.H"Name="PerfCounters.h"Source="x86\debug\0\perfcounters.h"/><FileId="PERFCOUNTERS.INI"Name="PerfCounters.ini"Source="x86\debug\0\perfcounters.ini"><PerfCounterName="MyApplication"/></File>

</Component></DirectoryRef></Fragment></Wix>

SamplePerfCounters.ini:[info]drivername=MyApplicationsymbolfile=PerfCounters.h

[languages]009=English

Page 357: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

004=Chinese

[objects]PERF_OBJECT_1_009_NAME=PerformanceobjectnamePERF_OBJECT_1_004_NAME=PerformanceobjectnameinChinese

[text]OBJECT_1_009_NAME=NameofthedeviceOBJECT_1_009_HELP=DisplaysperformancestatisticsofthedeviceOBJECT_1_004_NAME=NameofthedeviceinChineseOBJECT_1_004_HELP=DisplaysperformancestatisticsofthedeviceinChinese

DEVICE_COUNTER_1_009_NAME=NameoffirstcounterDEVICE_COUNTER_1_009_HELP=DisplaysthecurrentvalueofthefirstcounterDEVICE_COUNTER_1_004_NAME=NameofthefirstcounterinChineseDEVICE_COUNTER_1_004_HELP=DisplaysthevalueofthefirstcounterinChinese

DEVICE_COUNTER_2_009_NAME=NameofthesecondcounterDEVICE_COUNTER_2_009_HELP=DisplaysthecurrentrateofthesecondcounterDEVICE_COUNTER_2_004_NAME=NameofthesecondcounterinChineseDEVICE_COUNTER_2_004_HELP=DisplaystherateofthesecondcounterinChinese

PERF_OBJECT_1_009_NAME=NameofthethirdcounterPERF_OBJECT_1_009_HELP=DisplaysthecurrentrateofthethirdcounterPERF_OBJECT_1_004_NAME=NameofthethirdcounterinChinesePERF_OBJECT_1_004_HELP=DisplaystherateofthethirdcounterinChineseSamplePerfCounters.h:#defineOBJECT_10#defineDEVICE_COUNTER_12#defineDEVICE_COUNTER_24#definePERF_OBJECT_18

Page 358: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

QuietExecutionCustomActionTheQtExeccustomactionallowsyoutorunanarbitrarycommandlineinanMSI-basedsetupinsilentmode.QtExeciscommonlyusedtosuppressconsolewindowsthatwouldotherwiseappearappearwheninvokingtheexecutabledirectly.ThecustomactionislocatedintheWixCAlibrary,whichisapartoftheWixUtilExtension.

Page 359: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

InWiXv4.0,onlytheWixQuietExecnameswillbesupported.

TheWixSilentExecactionsintroducedinWiXv3.10alreadysupportthenewnamingscheme.

Page 360: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ImmediateexecutionWhentheQtExecactionisrunasanimmediatecustomaction,itwilltrytoexecutethecommandstoredintheWixQuietExecCmdLineproperty.ThefollowingisanexampleofauthoringanimmediateQtExeccustomaction:

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

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

IfyouwanttorunmorethanonecommandlineintheimmediatesequencethenyouwillneedtoschedulemultipleQtExeccustomactionsandsettheWixQuietExecCmdLinepropertytoanewvaluebyschedulingaproperty-settingcustomactionimmediatelybeforeeachinstanceoftheQtExeccustomaction.

Page 361: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SilentexecutionIfyouneedtorunaprogramwithoutlogginganyoftheinputparametersoroutputoftheexecutableforexample,forsecurityorprivacyreasons,youwantWixSilentExec:

<PropertyId="WixSilentExecCmdLine"Value="commandlinetorun"Hidden="yes"/><CustomActionId="SilentExecExample"BinaryKey="WixCA"DllEntry="WixSilentExec"Execute="immediate"Return="check"/>...<InstallExecuteSequence><CustomAction="SilentExecExample"After="TheActionYouWantItAfter"/></InstallExecuteSequence>

TheonlydifferenceinbehaviorbetweenWixQuietExecandWixSilentExecisthatWixSilentExecneverlogstheinputoroutputofthecommandline.TakespecialnotetomarktheinputpropertyandotherpropertiesashiddenifyoudonotwantthemloggedautomaticallybyMSI.

Page 362: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DeferredexecutionWhentheWixQuietExec(orWixSilentExec)actionisrunasadeferredcustomaction,itwilltrytoexecutethecommandlinestoredinthevalueofthecustomactiondata.FordeferredQtExeccustomactions,thecustomactiondataisapropertythathasthesameIdvalueasthecustomactionId.ThefollowingisanexampleofauthoringadeferredQtExeccustomaction:

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

IfyouneedtosetacommandlinethatusesotherWindowsInstallerproperties,youmustscheduleanimmediatecustomactiontosetthecommandlinepropertyvalueandscheduleadeferredcustomactiontorunQtExec.ThepropertyIdusedintheSetPropertycustomactionmustmatchtheIdvalueusedinthedeferredcustomaction.AcommonuseofthispatternforQtExeccustomactionsistorunanexecutablethatwillbeinstalledasapartofthesetup.ThefollowingisanexampleofauthoringadeferredQtExeccustomactionthatreliesonanotherpropertyvalue:

<SetPropertyId="QtExecDeferredExampleWithProperty"Value="&quot;[#MyExecutable.exe]&quot;"Before="QtExecDeferredExampleWithProperty"/><CustomActionId="QtExecDeferredExampleWithProperty"BinaryKey="WixCA"DllEntry="WixQuietExec"Execute="deferred"Return="check"Impersonate="no"/>...<InstallExecuteSequence>

Page 363: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 364: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Running64-bitexecutablesIfyouneedtoruna64-bitexecutable,usethe64-bitawareQtExec.Tousethe64-bitQtExec(orWixSilentExec)changetheCustomActionelement'sDllEntryattributeto"WixQuietExec64"(or"WixSilentExec64")andforimmediateexecutionusethe"WixQuietExec64CmdLine"(or"WixSilentExec64CmdLine")property.Thefollowingexamplecombinestheexamplesabovethe64-bitawareQtExecforboth.NoticethattheCustomActionelement'sIdattributesdonotneedtochange:

<PropertyId="WixQuietExec64CmdLine"Value="64-bitcommandlinetorun"/><CustomActionId="QtExecExample"BinaryKey="WixCA"DllEntry="WixQuietExec64"Execute="immediate"Return="check"/>...<SetPropertyId="QtExecDeferredExampleWithProperty"Value="&quot;[#MyExecutable.exe]&quot;"Before="QtExecDeferredExampleWithProperty"/><CustomActionId="QtExecDeferredExampleWithProperty"BinaryKey="WixCA"DllEntry="WixQuietExec64"Execute="deferred"Return="check"Impersonate="no"/>...<InstallExecuteSequence><CustomAction="QtExecExample"After="TheImmediateActionYouWantItAfter"/><CustomAction="QtExecDeferredExampleWithProperty"After="TheDeferredActionYouWantItAfter"/></InstallExecuteSequence>

Page 365: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 366: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Forastep-by-stepexampleofhowtousetheShellExecutecustomactiontolaunchaprogramattheendofinstallseetheHowTo:RuntheInstalledApplicationAfterSetuptopic.

Page 367: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 368: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

<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 369: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixExitEarlyWithSuccessCustomActionTheWixExitEarlyWithSuccesscustomactionisanimmediatecustomactionthatdoesnothingexceptreturnthevalueERROR_NO_MORE_ITEMS.ThisreturnvaluecausesWindowsInstallertoskipallremainingactionsinthe.msiandreturnaprocessexitcodethatindicatesasuccessfulinstallation.

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

Thereare3stepsyouneedtotaketousetheWixExitEarlyWithSuccesscustomactioninyourMSI:

Page 370: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step1:AddtheWiXutilitiesextensionslibrarytoyourprojectTheWiXsupportforWixExitEarlyWithSuccessisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommandlineyouneedtoaddthefollowingtoyourlightcommandline:

light.exemyproject.wixobj-extWixUtilExtension

IfyouareusingVotiveyoucanaddtheextensionusingtheAddReferencedialog:

1. OpenyourVotiveprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd

Reference...3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog

Page 371: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step2:AddareferencetotheWixExitEarlyWithSuccesscustomactionToaddareferencetotheWixExitEarlyWithSuccesscustomaction,includethefollowinginyourWiXsetupauthoring:

<CustomActionRefId="WixExitEarlyWithSuccess"/>

ThiswillcauseWiXtoaddtheWixExitEarlyWithSuccesscustomactiontoyourMSI,scheduleitimmediatelyaftertheFindRelatedProductsactionandconditionittoonlyrunifthepropertynamedNEWERVERSIONDETECTEDisset.

Page 372: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step3:AddlogictodefinetheNEWERVERSIONDETECTEDpropertyattheappropriatetimesInordertocausetheWixExitEarlyWithSuccesstorunatthedesiredtimes,youmustaddlogictoyourinstallertocreatetheNEWERVERSIONDETECTEDproperty.Toimplementthemajorupgradeexampledescribedabove,youcanaddanUpgradeelementlikethefollowing:

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

Page 373: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

ThefailurecasesareoftendifficulttosimulatebyunittestingthecustomactioncodedirectlybecausedeferredcustomactioncodetypicallydependsonstateinformationprovidedtoitbyWindowsInstallerduringanactiveinstallationsession.Asaresult,thistypeoftestingusuallyrequiresfaultinjectioninordertocausetherollbackcustomactionstobeexecutedatthepropertimesduringrealinstallationscenarios.

WiXincludesasimpledeferredcustomactionnamedWixFailWhenDeferredtohelpmakeiteasiertotestrollbackcustomactionsinanMSI.WixFailWhenDeferredwillalwaysfailwhenitisexecutedduringtheinstallation,repairoruninstallationofanMSI.AddingtheWixFailWhenDeferredcustomactiontoyourMSIallowsyoutoeasilyinjectafailureintoyourMSIinordertotestyourrollbackcustomactions.

Thereare3stepsyouneedtotaketousetheWixFailWhenDeferredcustomactiontotesttherollbackcustomactionsinyourMSI:

Page 374: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step1:AddtheWiXutilitiesextensionslibrarytoyourprojectTheWiXsupportforWixFailWhenDeferredisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommandlineyouneedtoaddthefollowingtoyourlightcommandline:

light.exemyproject.wixobj-extWixUtilExtension

IfyouareusingVotiveyoucanaddtheextensionusingtheAddReferencedialog:

1. OpenyourVotiveprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd

Reference...3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog

Page 375: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step2:AddareferencetotheWixFailWhenDeferredcustomactionToaddareferencetotheWixFailWhenDeferredcustomaction,includethefollowinginyourWiXsetupauthoring:

<CustomActionRefId="WixFailWhenDeferred"/>

ThiswillcauseWiXtoaddtheWixFailWhenDeferredcustomactiontoyourMSI,scheduleitimmediatelybeforetheInstallFinalizeactionandconditionittoonlyrunifthepropertyWIXFAILWHENDEFERRED=1.

Page 376: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 377: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixGamingExtensionTheWixGamingExtensionletsyouregisteryourapplicationasagameinWindowsVistaandlater,inthreemaincategories:

GameExplorerintegrationwithgamedefinitionfileGameExplorertasksRichsaved-gamepreview

Page 378: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 379: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 380: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

Implementationnote:TheGamingcompilerextensiontranslatestheIsRichSavedGameattributetorowsintheMSIRegistrytable.

Page 381: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixNetfxExtensionTheWixNetfxExtensionincludesasetofcustomactionstocompilenativeimagesusingNgen.exe.Foranexample,seeHowTo:NGenmanagedassembliesduringinstallation.

Page 382: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PackageGroupsTheWixNetfxExtensionincludespackagegroupsthatmakeiteasiertoinclude.NETinyourbundles.

PackageGroupID Description

NetFx40Web .NetFramework4.0Fullwebsetup.

NetFx40Redist .NetFramework4.0Fullstandalonesetup.

NetFx40ClientWeb .NetFramework4.0ClientProfilewebsetup.

NetFx40ClientRedist .NetFramework4.0ClientProfilestandalonesetup.

NetFx45Web .NetFramework4.5websetup.

NetFx45Redist .NetFramework4.5standalonesetup.

NetFx451Web .NetFramework4.5.1websetup.

NetFx451Redist .NetFramework4.5.1standalonesetup.

NetFx452Web .NetFramework4.5.2websetup.

NetFx452Redist .NetFramework4.5.2standalonesetup.

NetFx46Web .NetFramework4.6websetup.

NetFx46Redist .NetFramework4.6standalonesetup.

Page 383: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

NetFx461Web .NetFramework4.6.1websetup.

NetFx461Redist .NetFramework4.6.1standalonesetup.

NetFx462Web .NetFramework4.6.2websetup.

NetFx462Redist .NetFramework4.6.2standalonesetup.

Page 384: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Thefollowingproperties(availablestartinginWiXv3.10)letyoudetectaparticularminimumversionof.NETFramework4.Xreleasesthatarein-placeupdates(ratherthanthatareinstalledside-by-sidewithotherreleases):

Propertyname Meaning

WIX_IS_NETFRAMEWORK_40_OR_LATER_INSTALLED Setto1if.NETFramework4.0orlaterisinstalled.

WIX_IS_NETFRAMEWORK_45_OR_LATER_INSTALLED Setto1if.NETFramework4.5orlaterisinstalled.

WIX_IS_NETFRAMEWORK_451_OR_LATER_INSTALLED Setto1if.NETFramework4.5.1orlaterisinstalled.

WIX_IS_NETFRAMEWORK_452_OR_LATER_INSTALLED Setto1if

Page 385: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

.NETFramework4.5.2orlaterisinstalled.

WIX_IS_NETFRAMEWORK_46_OR_LATER_INSTALLED Setto1if.NETFramework4.6orlaterisinstalled.

WIX_IS_NETFRAMEWORK_461_OR_LATER_INSTALLED Setto1if.NETFramework4.6.1orlaterisinstalled.AvailablestartinginWiXv3.11.

WIX_IS_NETFRAMEWORK_462_OR_LATER_INSTALLED Setto1if.NETFramework4.6.2orlaterisinstalled.AvailablestartinginWiXv3.11.

Thefollowingpropertyisapplicabletoallversionsofthe.NETFramework:

Propertyname Meaning

Page 386: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

NETFRAMEWORKINSTALLROOTDIR Settotherootinstallationdirectoryforallversionsofthe.NETFramework(%windir%\Microsoft.NET\Framework\).

Hereisacompletelistofpropertiesforthe.NETFramework1.0productfamily:

Propertyname Meaning

NETFRAMEWORK10 Setto3321-3705ifthe.NETFramework1.0isinstalled(notsetotherwise).

NETFRAMEWORK10INSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework1.0(%windir%\Microsoft.NET\Framework\v1.0.3705).

Hereisacompletelistofpropertiesforthe.NETFramework1.1productfamily:

Propertyname Meaning

NETFRAMEWORK11 Setto#1ifthe.NETFramework1.1isinstalled(notsetotherwise).

NETFRAMEWORK11_SP_LEVEL Indicatestheservicepacklevelforthe.NETFramework1.1.

NETFRAMEWORK11INSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework1.1(%windir%\Microsoft.NET\Framework\v1.1.4322).

NETFRAMEWORK11_ZH_CN_LANGPACK Setto#1ifthe.NETFramework1.1Chinese(Simplified)languagepackisinstalled(notsetotherwise).

Page 387: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

NETFRAMEWORK11_ZH_TW_LANGPACK Setto#1ifthe.NETFramework1.1Chinese(Traditional)languagepackisinstalled(notsetotherwise).

NETFRAMEWORK11_CS_CZ_LANGPACK Setto#1ifthe.NETFramework1.1Czechlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK11_DA_DK_LANGPACK Setto#1ifthe.NETFramework1.1Danishlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK11_NL_NL_LANGPACK Setto#1ifthe.NETFramework1.1Dutchlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK11_FI_FI_LANGPACK Setto#1ifthe.NETFramework1.1Finnishlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK11_FR_FR_LANGPACK Setto#1ifthe.NETFramework1.1Frenchlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK11_DE_DE_LANGPACK Setto#1ifthe.NETFramework1.1Germanlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK11_EL_GR_LANGPACK Setto#1ifthe.NETFramework1.1Greeklanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK11_HU_HU_LANGPACK Setto#1ifthe.NETFramework1.1Hungarianlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK11_IT_IT_LANGPACK Setto#1ifthe.NETFramework1.1Italianlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK11_JA_JP_LANGPACK Setto#1ifthe.NETFramework1.1Japaneselanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK11_KO_KR_LANGPACK Setto#1ifthe.NETFramework1.1Korean

Page 388: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

languagepackisinstalled(notsetotherwise).

NETFRAMEWORK11_NB_NO_LANGPACK Setto#1ifthe.NETFramework1.1Norwegianlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK11_PL_PL_LANGPACK Setto#1ifthe.NETFramework1.1Polishlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK11_PT_BR_LANGPACK Setto#1ifthe.NETFramework1.1Portuguese(Brazil)languagepackisinstalled(notsetotherwise).

NETFRAMEWORK11_PT_PT_LANGPACK Setto#1ifthe.NETFramework1.1Portuguese(Portugal)languagepackisinstalled(notsetotherwise).

NETFRAMEWORK11_RU_RU_LANGPACK Setto#1ifthe.NETFramework1.1Russianlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK11_ES_ES_LANGPACK Setto#1ifthe.NETFramework1.1Spanishlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK11_SV_SE_LANGPACK Setto#1ifthe.NETFramework1.1Swedishlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK11_TR_TR_LANGPACK Setto#1ifthe.NETFramework1.1Turkishlanguagepackisinstalled(notsetotherwise).

Hereisacompletelistofpropertiesforthe.NETFramework2.0productfamily:

Propertyname Meaning

NETFRAMEWORK20 Setto#1ifthe.NETFramework2.0isinstalled(notsetotherwise).

Page 389: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

NETFRAMEWORK20_SP_LEVEL Indicatestheservicepacklevelforthe.NETFramework2.0.

NETFRAMEWORK20INSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework2.0(%windir%\Microsoft.NET\Framework\v2.0.50727).

NETFRAMEWORK20INSTALLROOTDIR64 Settotheinstallationdirectoryforthe64-bit.NETFramework2.0(%windir%\Microsoft.NET\Framework64\v2.0.50727).

NETFRAMEWORK20_ZH_CN_LANGPACK Setto#1ifthe.NETFramework2.0Chinese(Simplified)languagepackisinstalled(notsetotherwise).

NETFRAMEWORK20_ZH_TW_LANGPACK Setto#1ifthe.NETFramework2.0Chinese(Traditional)languagepackisinstalled(notsetotherwise).

NETFRAMEWORK20_CS_CZ_LANGPACK Setto#1ifthe.NETFramework2.0Czechlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK20_DA_DK_LANGPACK Setto#1ifthe.NETFramework2.0Danishlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK20_NL_NL_LANGPACK Setto#1ifthe.NETFramework2.0Dutchlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK20_FI_FI_LANGPACK Setto#1ifthe.NETFramework2.0Finnishlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK20_FR_FR_LANGPACK Setto#1ifthe.NETFramework2.0Frenchlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK20_DE_DE_LANGPACK Setto#1ifthe.NETFramework2.0German

Page 390: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

languagepackisinstalled(notsetotherwise).

NETFRAMEWORK20_EL_GR_LANGPACK Setto#1ifthe.NETFramework2.0Greeklanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK20_HU_HU_LANGPACK Setto#1ifthe.NETFramework2.0Hungarianlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK20_IT_IT_LANGPACK Setto#1ifthe.NETFramework2.0Italianlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK20_JA_JP_LANGPACK Setto#1ifthe.NETFramework2.0Japaneselanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK20_KO_KR_LANGPACK Setto#1ifthe.NETFramework2.0Koreanlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK20_NB_NO_LANGPACK Setto#1ifthe.NETFramework2.0Norwegianlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK20_PL_PL_LANGPACK Setto#1ifthe.NETFramework2.0Polishlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK20_PT_BR_LANGPACK Setto#1ifthe.NETFramework2.0Portuguese(Brazil)languagepackisinstalled(notsetotherwise).

NETFRAMEWORK20_PT_PT_LANGPACK Setto#1ifthe.NETFramework2.0Portuguese(Portugal)languagepackisinstalled(notsetotherwise).

NETFRAMEWORK20_RU_RU_LANGPACK Setto#1ifthe.NETFramework2.0Russianlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK20_ES_ES_LANGPACK Setto#1ifthe.NETFramework2.0Spanish

Page 391: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

languagepackisinstalled(notsetotherwise).

NETFRAMEWORK20_SV_SE_LANGPACK Setto#1ifthe.NETFramework2.0Swedishlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK20_TR_TR_LANGPACK Setto#1ifthe.NETFramework2.0Turkishlanguagepackisinstalled(notsetotherwise).

Hereisacompletelistofpropertiesforthe.NETFramework3.0productfamily:

Propertyname Meaning

NETFRAMEWORK30 Setto#1ifthe.NETFramework3.0isinstalled(notsetotherwise).

NETFRAMEWORK30_SP_LEVEL Indicatestheservicepacklevelforthe.NETFramework3.0.Thisvaluewillnotexistuntilaservicepackisinstalled.

NETFRAMEWORK30INSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework3.0(%windir%\Microsoft.NET\Framework\v3.0).

NETFRAMEWORK30INSTALLROOTDIR64 Settotheinstallationdirectoryforthe64-bit.NETFramework3.0(%windir%\Microsoft.NET\Framework64\v3.0).

NETFRAMEWORK30_ZH_CN_LANGPACK Setto#1ifthe.NETFramework3.0Chinese(Simplified)languagepackisinstalled(notsetotherwise).

NETFRAMEWORK30_ZH_TW_LANGPACK Setto#1ifthe.NETFramework3.0Chinese(Traditional)languagepackisinstalled(notsetotherwise).

Page 392: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

NETFRAMEWORK30_CS_CZ_LANGPACK Setto#1ifthe.NETFramework3.0Czechlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK30_DA_DK_LANGPACK Setto#1ifthe.NETFramework3.0Danishlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK30_NL_NL_LANGPACK Setto#1ifthe.NETFramework3.0Dutchlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK30_FI_FI_LANGPACK Setto#1ifthe.NETFramework3.0Finnishlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK30_FR_FR_LANGPACK Setto#1ifthe.NETFramework3.0Frenchlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK30_DE_DE_LANGPACK Setto#1ifthe.NETFramework3.0Germanlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK30_EL_GR_LANGPACK Setto#1ifthe.NETFramework3.0Greeklanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK30_HU_HU_LANGPACK Setto#1ifthe.NETFramework3.0Hungarianlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK30_IT_IT_LANGPACK Setto#1ifthe.NETFramework3.0Italianlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK30_JA_JP_LANGPACK Setto#1ifthe.NETFramework3.0Japaneselanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK30_KO_KR_LANGPACK Setto#1ifthe.NETFramework3.0Koreanlanguagepackisinstalled(notsetotherwise).

Page 393: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

NETFRAMEWORK30_NB_NO_LANGPACK Setto#1ifthe.NETFramework3.0Norwegianlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK30_PL_PL_LANGPACK Setto#1ifthe.NETFramework3.0Polishlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK30_PT_BR_LANGPACK Setto#1ifthe.NETFramework3.0Portuguese(Brazil)languagepackisinstalled(notsetotherwise).

NETFRAMEWORK30_PT_PT_LANGPACK Setto#1ifthe.NETFramework3.0Portuguese(Portugal)languagepackisinstalled(notsetotherwise).

NETFRAMEWORK30_RU_RU_LANGPACK Setto#1ifthe.NETFramework3.0Russianlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK30_ES_ES_LANGPACK Setto#1ifthe.NETFramework3.0Spanishlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK30_SV_SE_LANGPACK Setto#1ifthe.NETFramework3.0Swedishlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK30_TR_TR_LANGPACK Setto#1ifthe.NETFramework3.0Turkishlanguagepackisinstalled(notsetotherwise).

Hereisacompletelistofpropertiesforthe.NETFramework3.5productfamily:

Propertyname Meaning

NETFRAMEWORK35 Setto#1ifthe.NETFramework3.5isinstalled(notsetotherwise).

Page 394: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

NETFRAMEWORK35_SP_LEVEL Indicatestheservicepacklevelforthe.NETFramework3.5.

NETFRAMEWORK35INSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework3.5(%windir%\Microsoft.NET\Framework\v3.5).

NETFRAMEWORK35INSTALLROOTDIR64 Settotheinstallationdirectoryforthe64-bit.NETFramework3.5(%windir%\Microsoft.NET\Framework64\v3.5).

NETFRAMEWORK35_ZH_CN_LANGPACK Setto#1ifthe.NETFramework3.5Chinese(Simplified)languagepackisinstalled(notsetotherwise).

NETFRAMEWORK35_ZH_TW_LANGPACK Setto#1ifthe.NETFramework3.5Chinese(Traditional)languagepackisinstalled(notsetotherwise).

NETFRAMEWORK35_CS_CZ_LANGPACK Setto#1ifthe.NETFramework3.5Czechlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK35_DA_DK_LANGPACK Setto#1ifthe.NETFramework3.5Danishlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK35_NL_NL_LANGPACK Setto#1ifthe.NETFramework3.5Dutchlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK35_FI_FI_LANGPACK Setto#1ifthe.NETFramework3.5Finnishlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK35_FR_FR_LANGPACK Setto#1ifthe.NETFramework3.5Frenchlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK35_DE_DE_LANGPACK Setto#1ifthe.NETFramework3.5Germanlanguagepackisinstalled(notsetotherwise).

Page 395: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

NETFRAMEWORK35_EL_GR_LANGPACK Setto#1ifthe.NETFramework3.5Greeklanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK35_HU_HU_LANGPACK Setto#1ifthe.NETFramework3.5Hungarianlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK35_IT_IT_LANGPACK Setto#1ifthe.NETFramework3.5Italianlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK35_JA_JP_LANGPACK Setto#1ifthe.NETFramework3.5Japaneselanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK35_KO_KR_LANGPACK Setto#1ifthe.NETFramework3.5Koreanlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK35_NB_NO_LANGPACK Setto#1ifthe.NETFramework3.5Norwegianlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK35_PL_PL_LANGPACK Setto#1ifthe.NETFramework3.5Polishlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK35_PT_BR_LANGPACK Setto#1ifthe.NETFramework3.5Portuguese(Brazil)languagepackisinstalled(notsetotherwise).

NETFRAMEWORK35_PT_PT_LANGPACK Setto#1ifthe.NETFramework3.5Portuguese(Portugal)languagepackisinstalled(notsetotherwise).

NETFRAMEWORK35_RU_RU_LANGPACK Setto#1ifthe.NETFramework3.5Russianlanguagepackisinstalled(notsetotherwise).

Page 396: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

NETFRAMEWORK35_ES_ES_LANGPACK Setto#1ifthe.NETFramework3.5Spanishlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK35_SV_SE_LANGPACK Setto#1ifthe.NETFramework3.5Swedishlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK35_TR_TR_LANGPACK Setto#1ifthe.NETFramework3.5Turkishlanguagepackisinstalled(notsetotherwise).

NETFRAMEWORK35_CLIENT Setto#1ifthe.NETFramework3.5clientprofileisinstalled(notsetotherwise).

NETFRAMEWORK35_CLIENT_SP_LEVEL Indicatestheservicepacklevelforthe.NETFramework3.5clientprofile.

Hereisacompletelistofpropertiesforthe.NETFramework4.0productfamily:

Propertyname Meaning

NETFRAMEWORK40FULL Setto#1ifthe.NETFramework4.0fullisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_SERVICING_LEVEL Indicatestheservicepacklevelforthe.NETFramework4.0full.ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULLINSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework4.0full(%windir%\Microsoft.NET\Framework\v4.0).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULLINSTALLROOTDIR64 Settotheinstallationdirectoryforthe64-bit.NETFramework4.0full

Page 397: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

(%windir%\Microsoft.NET\Framework64\v4.0).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_AR_SA_LANGPACK Setto#1ifthe.NETFramework4.0fullArabiclanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_ZH_CN_LANGPACK Setto#1ifthe.NETFramework4.0fullChinese(Simplified)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_ZH_TW_LANGPACK Setto#1ifthe.NETFramework4.0fullChinese(Traditional)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_CS_CZ_LANGPACK Setto#1ifthe.NETFramework4.0fullCzechlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_DA_DK_LANGPACK Setto#1ifthe.NETFramework4.0fullDanishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_NL_NL_LANGPACK Setto#1ifthe.NETFramework4.0fullDutchlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_FI_FI_LANGPACK Setto#1ifthe.NETFramework4.0fullFinnishlanguagepackisinstalled(notsetotherwise).Thispropertyisavailablestarting

Page 398: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

withWiXv3.5.

NETFRAMEWORK40FULL_FR_FR_LANGPACK Setto#1ifthe.NETFramework4.0fullFrenchlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_DE_DE_LANGPACK Setto#1ifthe.NETFramework4.0fullGermanlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_EL_GR_LANGPACK Setto#1ifthe.NETFramework4.0fullGreeklanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_HE_IL_LANGPACK Setto#1ifthe.NETFramework4.0fullHebrewlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_HU_HU_LANGPACK Setto#1ifthe.NETFramework4.0fullHungarianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_IT_IT_LANGPACK Setto#1ifthe.NETFramework4.0fullItalianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_JA_JP_LANGPACK Setto#1ifthe.NETFramework4.0fullJapaneselanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

Page 399: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

NETFRAMEWORK40FULL_KO_KR_LANGPACK Setto#1ifthe.NETFramework4.0fullKoreanlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_NB_NO_LANGPACK Setto#1ifthe.NETFramework4.0fullNorwegianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_PL_PL_LANGPACK Setto#1ifthe.NETFramework4.0fullPolishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_PT_BR_LANGPACK Setto#1ifthe.NETFramework4.0fullPortuguese(Brazil)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_PT_PT_LANGPACK Setto#1ifthe.NETFramework4.0fullPortuguese(Portugal)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_RU_RU_LANGPACK Setto#1ifthe.NETFramework4.0fullRussianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

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

NETFRAMEWORK40FULL_SV_SE_LANGPACK Setto#1ifthe.NETFramework4.0full

Page 400: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Swedishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40FULL_TR_TR_LANGPACK Setto#1ifthe.NETFramework4.0fullTurkishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT Setto#1ifthe.NETFramework4.0clientprofileisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_SERVICING_LEVEL Indicatestheservicepacklevelforthe.NETFramework4.0clientprofile.ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENTINSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework4.0full(%windir%\Microsoft.NET\Framework\v4.0).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENTINSTALLROOTDIR64 Settotheinstallationdirectoryforthe64-bit.NETFramework4.0full(%windir%\Microsoft.NET\Framework64\v4.0).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_AR_SA_LANGPACK Setto#1ifthe.NETFramework4.0clientArabiclanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_ZH_CN_LANGPACK Setto#1ifthe.NETFramework4.0clientChinese(Simplified)languagepackisinstalled(notsetotherwise).Thispropertyis

Page 401: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

availablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_ZH_TW_LANGPACK Setto#1ifthe.NETFramework4.0clientChinese(Traditional)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_CS_CZ_LANGPACK Setto#1ifthe.NETFramework4.0clientCzechlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_DA_DK_LANGPACK Setto#1ifthe.NETFramework4.0clientDanishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_NL_NL_LANGPACK Setto#1ifthe.NETFramework4.0clientDutchlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_FI_FI_LANGPACK Setto#1ifthe.NETFramework4.0clientFinnishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_FR_FR_LANGPACK Setto#1ifthe.NETFramework4.0clientFrenchlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_DE_DE_LANGPACK Setto#1ifthe.NETFramework4.0clientGermanlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

Page 402: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

NETFRAMEWORK40CLIENT_EL_GR_LANGPACK Setto#1ifthe.NETFramework4.0clientGreeklanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_HE_IL_LANGPACK Setto#1ifthe.NETFramework4.0clientHebrewlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_HU_HU_LANGPACK Setto#1ifthe.NETFramework4.0clientHungarianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_IT_IT_LANGPACK Setto#1ifthe.NETFramework4.0clientItalianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_JA_JP_LANGPACK Setto#1ifthe.NETFramework4.0clientJapaneselanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_KO_KR_LANGPACK Setto#1ifthe.NETFramework4.0clientKoreanlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

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

NETFRAMEWORK40CLIENT_PL_PL_LANGPACK Setto#1ifthe.NETFramework4.0client

Page 403: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Polishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_PT_BR_LANGPACK Setto#1ifthe.NETFramework4.0clientPortuguese(Brazil)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_PT_PT_LANGPACK Setto#1ifthe.NETFramework4.0clientPortuguese(Portugal)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_RU_RU_LANGPACK Setto#1ifthe.NETFramework4.0clientRussianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_ES_ES_LANGPACK Setto#1ifthe.NETFramework4.0clientSpanishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_SV_SE_LANGPACK Setto#1ifthe.NETFramework4.0clientSwedishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

NETFRAMEWORK40CLIENT_TR_TR_LANGPACK Setto#1ifthe.NETFramework4.0clientTurkishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.

Hereisacompletelistofpropertiesforthe.NETFramework4.5and.NETFramework4.5.1productfamilies.Notethatbecausev4.5.1isanin-placeupgradetov4.5,thesamepropertiesareusedforbothversions.

Page 404: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Todifferentiate,youmustchecktheactualpropertyvalue,whichcontainsthe.NETFrameworkReleasevalue.Formoreinformation,see.NETFrameworkDeploymentGuideforDevelopers.

Propertyname Meaning

NETFRAMEWORK45 SettoReleasenumberofthe.NETFramework4.5ifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.

NETFRAMEWORK45_AR_SA_LANGPACK settoReleasenumberofthe.NETFramework4.5Arabiclanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.

NETFRAMEWORK45ZH_CN_LANGPACK SettoReleasenumberofthe.NETFramework4.5Chinese(Simplified)languagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.

NETFRAMEWORK45ZH_TW_LANGPACK SettoReleasenumberofthe.NETFramework4.5Chinese(Traditional)languagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.

Page 405: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

NETFRAMEWORK45CS_CZ_LANGPACK SettoReleasenumberofthe.NETFramework4.5Czechlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.

NETFRAMEWORK45DA_DK_LANGPACK SettoReleasenumberofthe.NETFramework4.5Danishlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.

NETFRAMEWORK45NL_NL_LANGPACK SettoReleasenumberofthe.NETFramework4.5Dutchlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.

NETFRAMEWORK45FI_FI_LANGPACK SettoReleasenumberofthe.NETFramework4.5Finnishlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.

NETFRAMEWORK45FR_FR_LANGPACK SettoReleasenumberofthe.NETFramework4.5Frenchlanguagepackifinstalled(notsetotherwise).Thispropertyis

Page 406: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

availablestartingwithWiXv3.6.

NETFRAMEWORK45DE_DE_LANGPACK SettoReleasenumberofthe.NETFramework4.5Germanlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.

NETFRAMEWORK45EL_GR_LANGPACK SettoReleasenumberofthe.NETFramework4.5Greeklanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.

NETFRAMEWORK45HE_IL_LANGPACK SettoReleasenumberofthe.NETFramework4.5Hebrewlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.

NETFRAMEWORK45HU_HU_LANGPACK SettoReleasenumberofthe.NETFramework4.5Hungarianlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.

NETFRAMEWORK45IT_IT_LANGPACK SettoReleasenumberofthe.NETFramework4.5

Page 407: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Italianlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.

NETFRAMEWORK45JA_JP_LANGPACK SettoReleasenumberofthe.NETFramework4.5Japaneselanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.

NETFRAMEWORK45KO_KR_LANGPACK SettoReleasenumberofthe.NETFramework4.5Koreanlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.

NETFRAMEWORK45NB_NO_LANGPACK SettoReleasenumberofthe.NETFramework4.5Norwegianlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.

NETFRAMEWORK45PL_PL_LANGPACK SettoReleasenumberofthe.NETFramework4.5Polishlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.

Page 408: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

NETFRAMEWORK45PT_BR_LANGPACK SettoReleasenumberofthe.NETFramework4.5Portuguese(Brazil)languagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.

NETFRAMEWORK45PT_PT_LANGPACK SettoReleasenumberofthe.NETFramework4.5Portuguese(Portugal)languagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.

NETFRAMEWORK45RU_RU_LANGPACK SettoReleasenumberofthe.NETFramework4.5Russianlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.

NETFRAMEWORK45ES_ES_LANGPACK SettoReleasenumberofthe.NETFramework4.5Spanishlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.

NETFRAMEWORK45SV_SE_LANGPACK SettoReleasenumberofthe.NETFramework4.5Swedishlanguagepackifinstalled(notset

Page 409: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

otherwise).ThispropertyisavailablestartingwithWiXv3.6.

NETFRAMEWORK45TR_TR_LANGPACK SettoReleasenumberofthe.NETFramework4.5Turkishlanguagepackifinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.6.

Hereisacompletelistofpropertiesforthe.NETFrameworkSDKandWindowsSDK:

Propertyname Meaning

NETFRAMEWORK11SDKDIR Thelocationofthe.NETFramework1.1SDKinstallationroot.

NETFRAMEWORK20SDKDIR Thelocationofthe.NETFramework2.0SDKinstallationroot.

WINDOWSSDKCURRENTVERSIONDIR ThelocationofthecurrentlyactiveversionoftheWindowsSDK.

WINDOWSSDKCURRENTVERSION TheversionnumberofthecurrentlyactiveversionoftheWindowsSDK.

WINDOWSSDK60ADIR ThelocationoftheWindowsSDK6.0ainstallationroot.

Page 410: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WINDOWSSDK61DIR ThelocationoftheWindowsSDK6.1installationroot.

WINDOWSSDK70ADIR ThelocationoftheWindowsSDK7.0ainstallationroot.ThispropertyisavailablestartingwithWiXv3.5.

Page 411: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UsingWixNetfxExtensionPropertiesTousetheWixNetfxExtensionpropertiesinanMSI,usethefollowingsteps:

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

Forexample:

<PropertyRefId="NETFRAMEWORK20"/>

Page 412: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixBroadcastSettingChangeandWixBroadcastEnvironmentChangeCustomActionsTheWixBroadcastSettingChangeandWixBroadcastEnvironmentChangecustomactionsareimmediatecustomactionsthatsendaWM_SETTINGCHANGEmessagetoalltop-levelwindowsindicatingthatsettingshavechanged.WixBroadcastSettingChangeindicatesthatunspecifiedsettingshavechanged.WixBroadcastEnvironmentChangeindicatesthatenvironmentvariableshavechanged.

OtherprogramscanlistenforWM_SETTINGCHANGEandupdateanyinternalstatewiththenewsetting.

WindowsInstalleritselfsendstheWM_SETTINGCHANGEmessageforsettingsitchangeswhileprocessinganMSIpackagebutcannotdosoforchangesapackagemakesviacustomaction.Also,WindowsInstallerdoesnotsendWM_SETTINGCHANGEforenvironmentvariablechangeswhenarebootispending.

TherearetwostepsyouneedtotaketousetheWixBroadcastSettingChangeorWixBroadcastEnvironmentChangecustomactionsinyourMSIpackage:

Page 413: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step1:AddtheWiXutilitiesextensionslibrarytoyourprojectWixBroadcastSettingChangeandWixBroadcastEnvironmentChangeareincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommandlineyouneedtoaddthefollowingtoyourlightcommandline:

light.exemyproject.wixobj-extWixUtilExtension

IfyouareusingVotiveyoucanaddtheextensionusingtheAddReferencedialog:

1. OpenyourVotiveprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd

Reference...3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog

Page 414: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step2:AddareferencetotheWixBroadcastSettingChangeorWixBroadcastEnvironmentChangecustomactionsToaddareferencetotheWixBroadcastSettingChangeorWixBroadcastEnvironmentChangecustomactions,includeoneofthefollowingelementsinyourWiXsetupauthoring:

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

ThiswillcauseWiXtoaddthecustomactiontoyourMSIandscheduleitimmediatelyaftertheInstallFinalizestandardaction.

Page 415: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixVSExtensionTheWixVSExtensionincludesasetofcustomactionstomanagehelpcollections.ItalsoincludesasetofpropertiesandcustomactionsthatcanbeusedtodetectthepresenceofvariousversionsofVisualStudioandregisteradd-ins,projecttemplatesanditemtemplatesforuseinVisualStudio.

PropertiesVisualStudio.NET2003VisualStudio2005VisualStudio2008VisualStudio2010VisualStudio2012VisualStudio2013VisualStudio2015VisualStudio2017

CustomActions

Page 416: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 417: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VisualStudio2005projecttemplatesdirectory.

VS2005_SCHEMAS_DIR FullpathtotheVisualStudio2005XMLschemasdirectory.

VS2005PROJECTAGGREGATOR2 IndicateswhetherornottheVisualStudio2005projectaggregatorformanagedcodeadd-insisinstalledonthesystem.

VS2005_ROOT_FOLDER FullpathtotheVisualStudio2005rootinstallationdirectory.

VB2005EXPRESS_IDE Fullpathtovbexpress.exeifVisualBasic2005ExpressEditionisinstalledonthesystem.

VS2005_IDE_VB_PROJECTSYSTEM_INSTALLED Indicates

Page 418: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

whetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualBasicprojectsystemisinstalledforit.

VC2005EXPRESS_IDE Fullpathtovcexpress.exeifVisualC++2005ExpressEditionisinstalledonthesystem.

VS2005_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualC++projectsystemisinstalledforit.

VCSHARP2005EXPRESS_IDE Fullpathtovcsexpress.exeifVisualC#2005ExpressEditionisinstalledonthesystem.

Page 419: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VS2005_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualC#projectsystemisinstalledforit.

VJSHARP2005EXPRESS_IDE Fullpathtovjsexpress.exeifVisualJ#2005ExpressEditionisinstalledonthesystem.

VS2005_IDE_VJSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualJ#projectsystemisinstalledforit.

VWD2005EXPRESS_IDE Fullpathtovwdexpress.exeifVisualWebDeveloper2005ExpressEditionisinstalledonthesystem.

Page 420: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 421: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ProjecttemplateforVisualStudio2005isinstalledonthesystem.Thisprojecttemplateisavailableasastandaloneadd-inandasapartofvisualStudio2005SP1.

VS2005_SP_LEVEL IndicatestheservicepacklevelforVisualStudio2005StandardEditionandhigher.

VSTF2005_SP_LEVEL IndicatestheservicepacklevelforVisualStudio2005TeamFoundation.

VB2005EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualBasic2005ExpressEdition.

VC2005EXPRESS_SP_LEVEL Indicatestheservicepack

Page 422: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 423: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 424: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

templatesdirectory.

VS90_SCHEMAS_DIR FullpathtotheVisualStudio2008XMLschemasdirectory.

VS90_ROOT_FOLDER FullpathtotheVisualStudio2008rootinstallationdirectory.

VB90EXPRESS_IDE Fullpathtovbexpress.exeifVisualBasic2008ExpressEditionisinstalledonthesystem.

VS90_IDE_VB_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2008StandardEditionorhigherisinstalledandtheVisualBasicprojectsystemisinstalledforit.

VC90EXPRESS_IDE Fullpathtovcexpress.exeifVisualC++

Page 425: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 426: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ifVisualWebDeveloper2008ExpressEditionisinstalledonthesystem.

VS90_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2008StandardEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.

VS90_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudioTeamTestprojectsystemisinstalledonthesystem.

VS90_BOOTSTRAPPER_PACKAGE_FOLDER ThelocationoftheVisualStudio2008bootstrapperpackagefolder.

VS90_SP1 Indicateswhetherornotservicepack1forVisual

Page 427: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Studio2008StandardEditionandhigherisinstalled.

VB90EXPRESS_SP1 Indicateswhetherornotservicepack1forVisualBasic2008ExpressEditionisinstalled.

VC90EXPRESS_SP1 Indicateswhetherornotservicepack1forVisualC++2008ExpressEditionisinstalled.

VCSHARP90EXPRESS_SP1 Indicateswhetherornotservicepack1forVisualC#2008ExpressEditionisinstalled.

VWD90EXPRESS_SP1 Indicateswhetherornotservicepack1forVisualWebDeveloper2008ExpressEditionisinstalled.

Page 428: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DEXPLORE_2008_INSTALLED IndicateswhetherornottheDocumentExplorer2008runtimecomponentspackageisinstalledonthesystem.

HereisacompletelistofpropertiesfortheVisualStudio2010productfamily:

Propertyname Meaning

VS2010DEVENV Fullpathtodevenv.exeforVisualStudio2010ifitisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2010itemtemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_PROJECTTEMPLATES_DIR Fullpathtothe

Page 429: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VisualStudio2010projecttemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_SCHEMAS_DIR FullpathtotheVisualStudio2010XMLschemasdirectory.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_ROOT_FOLDER FullpathtotheVisualStudio2010rootinstallationdirectory.ThispropertyisavailablestartingwithWiXv3.5.

VB2010EXPRESS_IDE Fullpathtovbexpress.exeifVisualBasic2010ExpressEditionisinstalledonthesystem.Thispropertyisavailable

Page 430: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

startingwithWiXv3.5.

VS2010_IDE_VB_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2010StandardEditionorhigherisinstalledandtheVisualBasicprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.5.

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

VS2010_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2010StandardEditionorhigherisinstalledandtheVisualC++

Page 431: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.5.

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

VS2010_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2010StandardEditionorhigherisinstalledandtheVisualC#projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.5.

VWD2010EXPRESS_IDE Fullpathtovwdexpress.exeifVisualWebDeveloper2010

Page 432: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ExpressEditionisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2010StandardEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.5.

VPD2010EXPRESS_IDE Fullpathtovpdexpress.exeifVisualStudio2010ExpressforWindowsPhoneisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_VSTS_TESTSYSTEM_INSTALLED Indicates

Page 433: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

whetherornottheVisualStudio2010TeamTestprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_DB_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010Databaseprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_VSD_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010Deploymentprojectsystem(setupproject)isinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

Page 434: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VS2010_IDE_WIX_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010WindowsInstallerXMLprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_MODELING_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010Modelingprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.

VS2010_IDE_FSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010F#projectsystemisinstalledonthesystem.Thispropertyisavailablestartingwith

Page 435: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WiXv3.5.

VS2010_BOOTSTRAPPER_PACKAGE_FOLDER ThelocationoftheVisualStudio2010bootstrapperpackagefolder.ThispropertyisavailablestartingwithWiXv3.5.

HereisacompletelistofpropertiesfortheVisualStudio2012productfamily:

Propertyname Meaning

VS2012DEVENV Fullpathtodevenv.exeforVisualStudio2012ifitisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.

VS2012_EXTENSIONS_DIR FullpathtotheVisualStudio2012extensionsdirectory.ThispropertyisavailablestartingwithWiXv3.6.

Page 436: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VS2012_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2012itemtemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.6.

VS2012_PROJECTTEMPLATES_DIR FullpathtotheVisualStudio2012projecttemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.6.

VS2012_SCHEMAS_DIR FullpathtotheVisualStudio2012XMLschemasdirectory.ThispropertyisavailablestartingwithWiXv3.6.

VS2012_ROOT_FOLDER FullpathtotheVisualStudio2012rootinstallationdirectory.Thispropertyisavailable

Page 437: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

startingwithWiXv3.6.

VS2012_IDE_VB_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2012ProfessionalEditionorhigherisinstalledandtheVisualBasicprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.6.

VS2012_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2012ProfessionalEditionorhigherisinstalledandtheVisualC++projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.6.

VS2012_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2012ProfessionalEditionor

Page 438: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

higherisinstalledandtheVisualC#projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.6.

VWD2012EXPRESS_IDE Fullpathtovwdexpress.exeifVisualStudioExpress2012forWebisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.

VPD2012EXPRESS_IDE Fullpathtovpdexpress.exeifVisualStudio2012ExpressforWindowsPhoneisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.

VS2012_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2012

Page 439: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ProfessionalEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.6.

VS2012_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2012TeamTestprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.

VS2012_IDE_DB_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2012Databaseprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.

Page 440: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VS2012_IDE_WIX_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheWindowsInstallerXMLprojectsystemisinstalledonthesystemforVisualStudio2012.ThispropertyisavailablestartingwithWiXv3.6.

VS2012_IDE_MODELING_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2012Modelingprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.

VS2012_IDE_FSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2012F#projectsystemisinstalledonthesystem.Thispropertyisavailablestartingwith

Page 441: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WiXv3.6.

VS2012_BOOTSTRAPPER_PACKAGE_FOLDER ThelocationoftheVisualStudio2012bootstrapperpackagefolder.ThispropertyisavailablestartingwithWiXv3.6.

HereisacompletelistofpropertiesfortheVisualStudio2013productfamily:

Propertyname Meaning

VS2013DEVENV Fullpathtodevenv.exeforVisualStudio2013ifitisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.8.

VS2013_EXTENSIONS_DIR FullpathtotheVisualStudio2013extensionsdirectory.ThispropertyisavailablestartingwithWiXv3.8.

VS2013_ITEMTEMPLATES_DIR FullpathtotheVisualStudio

Page 442: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

2013itemtemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.8.

VS2013_PROJECTTEMPLATES_DIR FullpathtotheVisualStudio2013projecttemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.8.

VS2013_SCHEMAS_DIR FullpathtotheVisualStudio2013XMLschemasdirectory.ThispropertyisavailablestartingwithWiXv3.8.

VS2013_ROOT_FOLDER FullpathtotheVisualStudio2013rootinstallationdirectory.ThispropertyisavailablestartingwithWiXv3.8.

VS2013_IDE_VB_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2013

Page 443: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ProfessionalEditionorhigherisinstalledandtheVisualBasicprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.8.

VS2013_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2013ProfessionalEditionorhigherisinstalledandtheVisualC++projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.8.

VS2013_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2013ProfessionalEditionorhigherisinstalledandtheVisualC#projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.8.

VWD2013EXPRESS_IDE Fullpathtovwdexpress.exe

Page 444: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ifVisualStudioExpress2013forWebisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.8.

VS2013WINEXPRESS_IDE Fullpathtovswinexpress.exeifVisualStudioExpress2013forWindowsisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.8.

VS2013WDEXPRESS_IDE Fullpathtowdexpress.exeifVisualStudioExpress2013forWindowsDesktopisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.8.

VPD2013EXPRESS_IDE Fullpathtovpdexpress.exeifVisualStudio2013ExpressforWindowsPhoneisinstalledonthesystem.This

Page 445: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

propertyisavailablestartingwithWiXv3.8.

VS2013_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2013ProfessionalEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.8.

VS2013_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2013TeamTestprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.8.

VS2013_IDE_WIX_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheWindowsInstallerXMLprojectsystemisinstalledonthesystemforVisualStudio2013.Thispropertyis

Page 446: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

availablestartingwithWiXv3.8.

VS2013_IDE_MODELING_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2013Modelingprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.8.

VS2013_IDE_FSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2013F#projectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.

VS2013_BOOTSTRAPPER_PACKAGE_FOLDER ThelocationoftheVisualStudio2013bootstrapperpackagefolder.ThispropertyisavailablestartingwithWiXv3.8.

HereisacompletelistofpropertiesfortheVisualStudio2015productfamily:

Propertyname Meaning

Page 447: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VS2015DEVENV Fullpathtodevenv.exeforVisualStudio2015ifitisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.10.

VS2015_EXTENSIONS_DIR FullpathtotheVisualStudio2015extensionsdirectory.ThispropertyisavailablestartingwithWiXv3.10.

VS2015_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2015itemtemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.10.

VS2015_PROJECTTEMPLATES_DIR Fullpathto

Page 448: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

theVisualStudio2015projecttemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.10.

VS2015_SCHEMAS_DIR FullpathtotheVisualStudio2015XMLschemasdirectory.ThispropertyisavailablestartingwithWiXv3.10.

VS2015_ROOT_FOLDER FullpathtotheVisualStudio2015rootinstallationdirectory.ThispropertyisavailablestartingwithWiXv3.10.

VS2015_IDE_VB_PROJECTSYSTEM_INSTALLED IndicateswhetherVisual

Page 449: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Studio2015ProfessionalEditionorhigherisinstalledandtheVisualBasicprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.10.

VS2015_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2015ProfessionalEditionorhigherisinstalledandtheVisualC++projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.10.

VS2015_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2015

Page 450: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ProfessionalEditionorhigherisinstalledandtheVisualC#projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.10.

VS2015_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2015ProfessionalEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.10.

VS2015_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisual

Page 451: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Studio2015TeamTestprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.10.

VS2015_IDE_MODELING_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2015Modelingprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.10.

VS2015_IDE_FSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2015F#projectsystemisinstalledonthesystem.This

Page 452: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

propertyisavailablestartingwithWiXv3.10.

VS2015_BOOTSTRAPPER_PACKAGE_FOLDER ThelocationoftheVisualStudio2015bootstrapperpackagefolder.ThispropertyisavailablestartingwithWiXv3.10.

HereisacompletelistofpropertiesfortheVisualStudio2017productfamily:

Propertyname Meaning

VS2017DEVENV Fullpathtodevenv.exeforVisualStudio2017ifitisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.11.

VS2017_EXTENSIONS_DIR FullpathtotheVisualStudio2017

Page 453: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

extensionsdirectory.ThispropertyisavailablestartingwithWiXv3.11.

VS2017_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2017itemtemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.11.

VS2017_PROJECTTEMPLATES_DIR FullpathtotheVisualStudio2017projecttemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.11.

VS2017_SCHEMAS_DIR FullpathtotheVisualStudio2017XMLschemasdirectory.

Page 454: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ThispropertyisavailablestartingwithWiXv3.11.

VS2017_ROOT_FOLDER FullpathtotheVisualStudio2017rootinstallationdirectory.ThispropertyisavailablestartingwithWiXv3.11.

VS2017_IDE_DIR FullpathtotheVisualStudio2017directorycontainingdevenv.exe.ThispropertyisavailablestartingwithWiXv3.11.

VS2017_IDE_VB_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2017ProfessionalEditionorhigherisinstalledand

Page 455: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

theVisualBasicprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.11.

VS2017_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2017ProfessionalEditionorhigherisinstalledandtheVisualC++projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.11.

VS2017_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2017ProfessionalEditionorhigherisinstalledandtheVisual

Page 456: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

C#projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.11.

VS2017_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2017ProfessionalEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.11.

VS2017_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2017TeamTestprojectsystemisinstalledon

Page 457: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

thesystem.ThispropertyisavailablestartingwithWiXv3.11.

VS2017_IDE_MODELING_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2017Modelingprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.11.

VS2017_IDE_FSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2017F#projectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.11.

Page 458: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VS2017_BOOTSTRAPPER_PACKAGE_FOLDER ThelocationoftheVisualStudio2017bootstrapperpackagefolder.ThispropertyisavailablestartingwithWiXv3.11.

Page 459: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 460: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

/InstallVSTemplatesifVisualBasic2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVB2005EXPRESS_IDEproperty.

VC2005Setup Runsvcexpress.exe/setupifVisualC++2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVC2005EXPRESS_IDEproperty.

VC2005InstallVSTemplates Runsvcexpress.exe/InstallVSTemplatesifVisualC++2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVC2005EXPRESS_IDEproperty.

VCSHARP2005Setup Runsvcsexpress.exe/setupifVisualC#2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVCSHARP2005EXPRESS_IDEproperty.

VCSHARP2005InstallVSTemplates Runsvcsexpress.exe/InstallVSTemplatesifVisualC#2005ExpressEditionisfoundonthesystem.Includingthis

Page 461: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

customactionautomaticallyaddstheVCSHARP2005EXPRESS_IDEproperty.

VJSHARP2005Setup Runsvjsexpress.exe/setupifVisualJ#2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVJSHARP2005EXPRESS_IDEproperty.

VJSHARP2005InstallVSTemplates Runsvjsexpress.exe/InstallVSTemplatesifVisualJ#2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVJSHARP2005EXPRESS_IDEproperty.

VWD2005Setup Runsvwdexpress.exe/setupifVisualWebDeveloper2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD2005EXPRESS_IDEproperty.

VWD2005InstallVSTemplates Runsvwdexpress.exe/InstallVSTemplatesifVisualWebDeveloper2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD2005EXPRESS_IDE

Page 462: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

property.

VS90Setup Runsdevenv.exe/setupifVisualStudio2008StandardEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS90DEVENVproperty.

VS90InstallVSTemplates Runsdevenv.exe/InstallVSTemplatesifVisualStudio2008StandardEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS90DEVENVproperty.

VB90Setup Runsvbexpress.exe/setupifVisualBasic2008ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVB90EXPRESS_IDEproperty.

VB90InstallVSTemplates Runsvbexpress.exe/InstallVSTemplatesifVisualBasic2008ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVB90EXPRESS_IDEproperty.

VC90Setup Runsvcexpress.exe/setupifVisualC++2008ExpressEditionisfoundonthesystem.Includingthiscustomactionautomaticallyaddsthe

Page 463: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VC90EXPRESS_IDEproperty.

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

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

VCSHARP90InstallVSTemplates Runsvcsexpress.exe/InstallVSTemplatesifVisualC#2008ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVCSHARP90EXPRESS_IDEproperty.

VWD90Setup Runsvwdexpress.exe/setupifVisualWebDeveloper2008ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD90EXPRESS_IDEproperty.

VWD90InstallVSTemplates Runsvwdexpress.exe/InstallVSTemplatesifVisual

Page 464: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WebDeveloper2008ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD90EXPRESS_IDEproperty.

VS2010Setup Runsdevenv.exe/setupifVisualStudio2010StandardEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2010DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.5.

VS2010InstallVSTemplates Runsdevenv.exe/InstallVSTemplatesifVisualStudio2010StandardEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2010DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.5.

VB2010Setup Runsvbexpress.exe/setupifVisualBasic2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVB2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.

VB2010InstallVSTemplates Runsvbexpress.exe/InstallVSTemplatesifVisual

Page 465: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Basic2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVB2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.

VC2010Setup Runsvcexpress.exe/setupifVisualC++2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVC2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.

VC2010InstallVSTemplates Runsvcexpress.exe/InstallVSTemplatesifVisualC++2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVC2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.

VCSHARP2010Setup Runsvcsexpress.exe/setupifVisualC#2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVCSHARP2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.

VCSHARP2010InstallVSTemplates Runsvcsexpress.exe

Page 466: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

/InstallVSTemplatesifVisualC#2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVCSHARP2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.

VWD2010Setup Runsvwdexpress.exe/setupifVisualWebDeveloper2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.

VWD2010InstallVSTemplates Runsvwdexpress.exe/InstallVSTemplatesifVisualWebDeveloper2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.

VPD2010Setup Runsvpdexpress.exe/setupifVisualStudio2010ExpressforWindowsPhoneisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVPD2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.

Page 467: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

VS2012Setup Runsdevenv.exe/setupifVisualStudio2012ProfessionalEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2012DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.6.

VS2012InstallVSTemplates Runsdevenv.exe/InstallVSTemplatesifVisualStudio2012ProfessionalEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2012DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.6.

VWD2012Setup Runsvwdexpress.exe/setupifVisualStudioExpress2012forWebisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD2012EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.6.

Page 468: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VWD2012InstallVSTemplates Runsvwdexpress.exe/InstallVSTemplatesifVisualStudioExpress2012forWebisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD2012EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.6.

VS2012WinExpressSetup Runsvswinexpress.exe/setupifVisualStudioExpress2012forWindows8isfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2012WINEXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.6.

VS2012WinExpressInstallVSTemplates Runsvswinexpress.exe/InstallVSTemplatesifVisualStudioExpress2012forWindows8isfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2012WINEXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.8.

VPD2012Setup Runsvpdexpress.exe/setupifVisualStudio2012ExpressforWindowsPhoneisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVPD2012EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.6.

Page 469: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VPD2012InstallVSTemplates Runsvpdexpress.exe/InstallVSTemplatesifVisualStudio2012ExpressforWindowsPhoneisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVPD2012EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.6.

VS2013Setup Runsdevenv.exe/setupifVisualStudio2013ProfessionalEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2013DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.8.

VS2013InstallVSTemplates Runsdevenv.exe/InstallVSTemplatesifVisualStudio2013ProfessionalEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2013DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.8.

VWD2013Setup Runsvwdexpress.exe/setupifVisualStudioExpress2013forWebisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD2013EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.8.

Page 470: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VWD2013InstallVSTemplates Runsvwdexpress.exe/InstallVSTemplatesifVisualStudioExpress2013forWebisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD2013EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.8.

VS2013WinExpressSetup Runsvswinexpress.exe/setupifVisualStudioExpress2013forWindows8isfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2013WINEXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.8.

VS2013WinExpressInstallVSTemplates Runsvswinexpress.exe/InstallVSTemplatesifVisualStudioExpress2013forWindows8isfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2013WINEXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.6.

VS2013WDExpressSetup RunsWDExpress.exe/setupifVisualStudioExpress2013forWindowsDesktopisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2013WDEXPRESS_IDEproperty.Thiscustomactionis

Page 471: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

availablestartingwithWiXv3.8.

VS2013WDExpressInstallVSTemplates RunsWDExpress.exe/InstallVSTemplatesifVisualStudioExpress2013forWindowsDesktopisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2013WDEXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.8.

VPD2013Setup Runsvpdexpress.exe/setupifVisualStudio2013ExpressforWindowsPhoneisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVPD2013EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.8.

VPD2013InstallVSTemplates Runsvpdexpress.exe/InstallVSTemplatesifVisualStudio2013ExpressforWindowsPhoneisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVPD2013EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.8.

VS2015Setup Runsdevenv.exe/setupifVisualStudio2015ProfessionalEditionorhigherisfoundonthesystem.Includingthiscustomactionautomaticallyaddsthe

Page 472: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VS2013DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.10.

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

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

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

Page 473: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UsingWixVSExtensionPropertiesorCustomActionsTousetheWixVSExtensionpropertiesorcustomactionsinanMSI,usethefollowingsteps:

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

Forexample:

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

Whenyoureferenceanyoftheabovepropertiesorcustomactions,theWixVSExtensionautomaticallyschedulesthecustomactionsandpullsinpropertiesusedinthecustomactionconditionsandexecutionlogic.

Page 474: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixWaitForEventCustomActionIfyouhavescenariosyouwanttotestwhereapackageorbundletakesawhiletoinstall,youcanwriteasimpleMSIpackagethatincludestheWixWaitForEventcustomactiontosimulatethisbehavior.ThiscustomactionwaitsforeitherofthegloballynamedautomaticreseteventsdocumentedbelowandwilleitherreturnERROR_INSTALL_FAILUREorERROR_SUCCESSdependingonwhicheventyousignal.

Global\WixWaitForEventFail-whensignaled,thecustomactionreturnsERROR_INSTALL_FAILURE.Global\WixWaitForEventSucceed-whensignaled,thecustomactionreturnsERROR_SUCCESS.

Thisisespeciallyusefulintestcaseswhenyoudon'twantorneedtobuildyourentireproductandonlywantsmalltestpackages.

YoucanalsotestMSPpackagesusingthiscustomaction.IftheWixWaitForEventcustomactionisauthoredintothetargetMSI,dependingonwhatconditionyouauthorthecustomactionswillstillrun.YoucanalsoaddthiscustomactiontoyourupgradeMSIpackageusedforbuildingyourMSPpackage,butthenthecustomactionswillnotrunduringMSPuninstallunlessyouexplicitlyauthorthemaspatchuninstallcustomactions.

FollowthestepsbelowtoincludethiscustomactioninyourMSIpackageandscheduleitwheneverinyoursequenceyouprefer.YoucanusetheWixWaitForEventimmediatecustomactionortheWixWaitForEventDeferreddeferredcustomaction.Ifyouwanttoauthorthecustomactioninadditionalplacesthroughoutyoursequence,youwillhavetoauthortheCustomActionelementsyourselfusingdifferentCustomAction/@Idattributevalues.ThebinaryisWixCAandtheentrypointisWixWaitForEvent.

Page 475: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step1:AddtheWiXutilitiesextensionslibrarytoyourprojectTheWiXsupportforWixWaitForEventisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommandlineyouneedtoaddthefollowingtoyourlightcommandline:

light.exemyproject.wixobj-extWixUtilExtension

IfyouareusingVotiveyoucanaddtheextensionusingtheAddReferencedialog:

1. OpenyourVotiveprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd

Reference...3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog

Page 476: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step2:AddareferencetotheWixWaitForEventcustomactionToaddareferencetotheWixWaitForEventimmediatecustomaction,includethefollowinginyourWiXsetupauthoring:

<CustomActionRefId="WixWaitForEvent"/>

ThiswillcauseWiXtoaddtheWaitWaitForEventcustomactiontoyourMSIasanimmediatecustomactionscheduledimmediatelybeforeInstallFinalize.Thiswillblocktheinstallationafterscriptgeneration.Youcanscheduleitanywhereelseinyoursequence.

ToaddareferencetotheWixWaitForEventDeferreddeferredcustomaction,includethefollowinginyourWiXsetupauthoring:

<CustomActionRefId="WixWaitForEventDeferred"/>

ThisdeferredcustomactionisscheduledimmediatelyafterInstallInitializesoitwillblockafterstartingscriptexecution.Youcanschedulethiscustomactionanywhereelseinyoursequenceaswell.

Youcanschedulebothcustomactionsinthesamepackage,butyouwillneedtosignaleitherofthenamedautomaticreseteventsdocumentedabovebothtimes.

Page 477: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 478: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UsingPatchCreationPropertiesApatchcontainsthedifferencesbetweenoneormorepairsofWindowsInstallerpackages.ThetoolPatchWiz.dllintheWindowsSDKcomparespairsofpackagesandproducesapatchusingafilecalledaPatchCreationProperties(PCP)file.

ItisrecommendedthatyoudownloadthelatestWindowsSDKtogetthenewesttoolsforbuildingpatches.

Page 479: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 480: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 481: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

<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 482: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 483: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 484: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BuildthePatchThePatch.wxsfileiscompiledintoaPCPfilethatisthenprocessedbyMsiMsp.exetoproductthepatchpackage.

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

Page 485: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 486: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 487: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RestrictionsPleasereviewrestrictionsonhowpatchesmustbebuilttoavoidproblemduringpatchinstallation.

Page 488: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RestrictionsforPatchesTherearedifferentrestrictionsforpatchesbasedonwhattypeofpatchistobeinstalled.Therearethreetypesofpatches:

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

Forinformationaboutrestrictionsforeachtypeofpatch,readChangingtheProductCode.

Page 489: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UninstallablePatchesForapatchtobeuninstallable,theMsiPatchMetadatatablemustexistinthepatchpackageandmustcontaintheAllowRemovalpropertysetto1.ThiscanbeauthoredintothePatchCreationPropertiesfileusingthePatchMetadata/@AllowRemovalattributeorintothepatchXMLfileusingthePatch/@AllowRemovalattribute.

Besidethat,certaintablescannotbemodifiedintheupgradepackagefromwhichapatchisbuilt.ReadUninstallablePatchesforthecurrentlistoftables.Pyro.exewillerrorifoneofthesetableswouldbemodifiedwhenbuildingapatchXMLfile.

ThefollowingtableliststablesandcorrespondingelementsorattributesinWiX.

Table ElementorAttribute

BindImage [File](../xsd/wix/file.html)/@BindPath

Class [Class](../xsd/wix/class.html)

Complus [Component](../xsd/wix/component.html)/@ComPlusFlags

CreateFolder [CreateFolder](../xsd/wix/createfolder.html)

DuplicateFile [CopyFile](../xsd/wix/copyfile.html)

Environment [Environment](../xsd/wix/environment.html)

Extension [Extension](../xsd/wix/extension.html)

Font [File](../xsd/wix/file.html)/@FontTitle

Page 490: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

IniFile [IniFile](../xsd/wix/inifile.html)

IsolatedComponent [IsolatedComponent](../xsd/wix/isolatecomponent.html)

LockPermissions [Permission](../xsd/wix/permission.html)

MIME [MIME](../xsd/wix/mime.html)

MoveFile [CopyFile](../xsd/wix/copyfile.html)

ODBCAttribute [ODBCDriver](../xsd/wix/odbcdriver.html)/[Property](../xsd/wix/property.html)

ODBCDataSource [ODBCDataSource](../xsd/wix/odbcdatasource.html)

ODBCDriver [ODBCDriver](../xsd/wix/odbcdriver.html)

ODBCSourceAttribute [ODBCDataSource](../xsd/wix/odbcdatasource.html)/[Property](../xsd/wix/property.html)

ODBCTranslator [ODBCTranslator](../xsd/wix/odbctranslator.html)

ProgId [ProgId](../xsd/wix/progid.html)

PublishComponent [Category](../xsd/wix/category.html)

RemoveIniFile [IniFile](../xsd/wix/inifile.html)

SelfReg [File](../xsd/wix/file.html)/@SelfRegCost

Page 491: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ServiceControl [ServiceControl](../xsd/wix/servicecontrol.html)

ServiceInstall [ServiceInstall](../xsd/wix/serviceinstall.html)

TypeLib [TypeLib](../xsd/wix/typelib.html)

Verb [Verb](../xsd/wix/verb.html)

Majorupgradepatchesarenotuninstallable.

Page 492: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 493: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 494: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 495: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

<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 496: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 497: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

fromwhichtransformswerecreatedafterfiltering.

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

Page 498: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 499: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 500: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RestrictionsInadditiontorestrictionsaboutwhatcanbeinapatchinorderforittoinstallanduninstallcorrectly,thefollowingrestrictionsensurethatyourpatchworkscorrectly.

Patchfamiliescanonlygrow

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

Notethatinorderforonepatchtosupersedeanyotherpatches,allpatchfamiliesmustbesuperseded.Asinglepatchfamilyisreferencedintheexampleaboveforsimplicity.

Certainelementscannotbeaddedtouninstallablepatches

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

Page 501: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ConditionElement(BalExtension)

DescriptionConditionsforabundle.Theconditionisspecifiedintheinnertextoftheelement.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerText(xs:string)Theconditionthatmustevaluatetotruefortheinstallationtocontinue.

ChildrenNone

Attributes

Name Type Description Required

Message String Setthevaluetothetexttodisplaywhentheconditionfailsandtheinstallationmustbeterminated.

Yes

SeeAlsoBalSchema

Page 502: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

OverridableAttribute(BalExtension)

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

WindowsInstallerreferencesNone

ParentsVariable

SeeAlsoBalSchema

Page 503: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PrereqSupportPackageAttribute(BalExtension)

DescriptionWhensetto"yes",thePrereqBAwillplanthepackagetobeinstalledifitsInstallConditionis"true"orempty.

WindowsInstallerreferencesNone

ParentsExePackage,MsiPackage,MspPackage,MsuPackage

SeeAlsoBalSchema

Page 504: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

AutogenGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.

SeeAlsoBalSchema

Page 505: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoBalSchema

Page 506: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoBalSchema

Page 507: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ComponentGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.

SeeAlsoBalSchema

Page 508: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

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

SeeAlsoBalSchema

Page 509: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DiskIdType(SimpleType)

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

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

SeeAlsoBalSchema

Page 510: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoBalSchema

Page 511: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Guid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoBalSchema

Page 512: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

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

SeeAlsoBalSchema

Page 513: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoBalSchema

Page 514: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LocalizableInteger(SimpleType)

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

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

SeeAlsoBalSchema

Page 515: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoBalSchema

Page 516: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

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

SeeAlsoBalSchema

Page 517: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoBalSchema

Page 518: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoBalSchema

Page 519: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoBalSchema

Page 520: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VersionType(SimpleType)

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

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

SeeAlsoBalSchema

Page 521: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WildCardLongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoBalSchema

Page 522: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WildCardShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoBalSchema

Page 523: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoAlwaysType(SimpleType)

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

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoBalSchema

Page 524: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoButtonType(SimpleType)

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

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoBalSchema

Page 525: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoBalSchema

Page 526: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoBalSchema

Page 527: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UseUILanguagesAttribute(BalExtension)

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

WindowsInstallerreferencesNone

ParentsBootstrapperApplication,BootstrapperApplicationRef

SeeAlsoBalSchema

Page 528: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixManagedBootstrapperApplicationHostElement(BalExtension)

DescriptionConfigurestheManagedBootstrapperApplicationHostforaBundle.

WindowsInstallerreferencesNone

ParentsBootstrapperApplicationRef

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

LicenseFile String SourcefileoftheRTFlicensefile.CannotbeusedsimultaneouslywithLicenseUrl.

LicenseUrl String URLtargetofthelicenselink.CannotbeusedsimultaneouslywithLicenseFile.

LocalizationFile String Sourcefileofthethemelocalization.wxlfile.

LogoFile String Sourcefileofthelogographic.

NetFxPackageId String Identifierofthebundlepackagethatcontainsthe.NETFramework.ManagedBootstrapperApplicationHostusesthisidentifiertodetermine

Page 529: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

whether.NETneedstobeinstalledbeforethemanagedbootstrapperapplicationcanbelaunched.

ThemeFile String SourcefileofthethemeXML.

SeeAlsoBalSchema

Page 530: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixStandardBootstrapperApplicationElement(BalExtension)

DescriptionConfiguresWixStandardBootstrapperApplicationforaBundle.

WindowsInstallerreferencesNone

ParentsBootstrapperApplicationRef

InnerTextNone

ChildrenNone

Attributes

Name Type Description

LaunchArguments String Ifset,WixStdBAwillsupplytheseargumentswhenlaunchingtheapplicationspecifiedbytheLaunchTargetattribute.ThestringvaluecanbeformattedusingBurnvariablesenclosedinbrackets,torefertoinstallationdirectoriesandsoforth.

LaunchHidden YesNoType Ifsetto"yes",WixStdBAwilllaunchtheapplicationspecifiedbytheLaunchTargetattribute

Page 531: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

withtheSW_HIDEflag.ThisattributeisignoredwhentheLaunchTargetElevatedIdattributeisspecified.

LaunchTarget String Ifset,thesuccesspagewillshowaLaunchbuttontheusercanusetolaunchtheapplicationbeinginstalled.ThestringvaluecanbeformattedusingBurnvariablesenclosedinbrackets,torefertoinstallationdirectoriesandsoforth.

LaunchTargetElevatedId String IdofthetargetApprovedExeForElevationelement.IfsetwithLaunchTarget,WixStdBAwilllaunchtheapplicationthroughtheEngine'sLaunchApprovedExemethodinsteadofthroughShellExecute.

LaunchWorkingFolder String WixStdBAwillusethisworkingfolderwhenlaunchingthespecifiedapplication.ThestringvaluecanbeformattedusingBurnvariablesenclosedinbrackets,torefertoinstallationdirectoriesandsoforth.ThisattributeisignoredwhentheLaunchTargetElevatedIdattributeisspecified.

Page 532: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LicenseFile String SourcefileoftheRTFlicensefile.CannotbeusedsimultaneouslywithLicenseUrl.

LicenseUrl String URLtargetofthelicenselink.CannotbeusedsimultaneouslywithLicenseFile.Thisattributecanbeemptytohidethelicenselinkcompletely.

LocalizationFile String Sourcefileofthethemelocalization.wxlfile.

LogoFile String Sourcefileofthelogographic.

LogoSideFile String Sourcefileofthesidelogographic.

ShowFilesInUse YesNoType Ifsetto"yes",WixStdBAwillshowapageallowingtheusertorestartapplicationswhenfilesareinuse.

ShowVersion YesNoType Ifsetto"yes",theapplicationversionwillbedisplayedontheUI.

SupportCacheOnly YesNoType Ifsetto"yes",thebundlecanbepre-cachedusingthe/cachecommandlineargument.

SuppressDowngradeFailure YesNoType Ifsetto"yes",attemptingtoinstalleradowngradedversionofabundlewillbetreatedasasuccessfuldo-nothingoperation.Thedefaultbehavior(orwhen

Page 533: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

explicitlysetto"no")istotreatdowngradeattemptsasfailures.

SuppressOptionsUI YesNoType Ifsetto"yes",theOptionsbuttonwillnotbeshownandtheuserwillnotbeabletochooseaninstallationdirectory.

SuppressRepair YesNoType Ifsetto"yes",theRepairbuttonwillnotbeshowninthemaintenance-modeUI.

ThemeFile String SourcefileofthethemeXML.

SeeAlsoBalSchema

Page 534: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 535: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 536: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 537: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 538: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SoapActivated YesNoType

SoapBaseUrl String

SoapMailTo String

SoapVRoot String

SRPEnabled YesNoType

SRPTrustLevel Enumeration Thisattribute'svaluemustbeoneofthefollowing:disallowed

fullyTrusted

ThreeGigSupportEnabled YesNoType

SeeAlsoComplusSchema

Page 539: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 540: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Description String

Name String Nameoftheapplicationrole. Yes

SeeAlsoComplusSchema

Page 541: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 542: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

shouldbeprovidedwiththeidofaComPlusApplicationelementrepresentingtheapplicationtheassemblyistoberegisteredin.Thisattributecanbeomittedfora.NETassemblyeveniftheapplicationisnotachildofaComPlusApplicationelement.

AssemblyName String ThenameoftheassemblyusedtoidentifytheassemblyintheGAC.ThisattributecanbeprovidedonlyifDllPathFromGACissetto“yes”.

DllPath String ThepathtolocatetheassemblyDLLduringregistration.ThisattributeshouldbeprovidedifDllPathFromGACisnotsetto“yes”.

DllPathFromGAC YesNoType IndicatesthattheDLLpathshouldbeextractedfromtheGACinsteadforbeingprovidedintheDllPathattribute.Ifthisattributeissetto“yes”,thenameofthe

Page 543: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

assemblycanbeprovidedusingtheAssemblyNameattribute.Or,ifthisAssemblyNameattributeismissing,thenamewillbeextractedfromtheMsiAssemblyNametableusingtheidoftheparentComponentelement.

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

PSDllPath String Anoptionalpathtoanexternalproxy/stubDLLfortheassembly.

RegisterInCommit YesNoType Indicatesthattheassemblyshouldbeinstalledinthecommitcustomactioninsteadofthenormaldeferredcustomaction.Thisisnecessarywheninstalling.NETassembliestotheGACinthesameinstallation,asthe

Page 544: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 545: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 546: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

sequencedusingtheModuleDependencyMSItable.Itisnotpossibletohavecrossdependenciesbetweenmergemodulesorhaveanassemblyinamergemoduledependonanassemblyinthebasepackage.

SeeAlsoComplusSchema

Page 547: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 548: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 549: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 550: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 551: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Group String ForeignkeyintotheGrouptable.

Yes

SeeAlsoComplusSchema

Page 552: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 553: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 554: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 555: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SeeAlsoComplusSchema

Page 556: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 557: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Name String Nameofthepartition.Thisattributecanbeomittediftheelementisalocater,andavalueisprovidedforthePartitionIdattribute.

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

SeeAlsoComplusSchema

Page 558: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 559: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 560: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 561: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SeeAlsoComplusSchema

Page 562: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 563: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SeeAlsoComplusSchema

Page 564: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 565: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SeeAlsoComplusSchema

Page 566: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ComPlusSubscriptionElement(ComplusExtension)

DescriptionDefinesaneventsubscriptionforaCOM+component.

WindowsInstallerreferencesNone

ParentsComPlusComponent,Component

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Identifierfortheelement.

Yes

Component String IftheelementisnotachildofaComPlusComponentelement,thisattributeshouldbeprovidedwiththeidofaComPlusComponentelementrepresentingthecomponentthesubscriptionistobecreatedfor.

Page 567: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 568: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

valueisnotprovidedforthisattribute,anidwillbegeneratedduringinstallation.

UserName String

SeeAlsoComplusSchema

Page 569: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 570: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

User String ForeignkeyintotheUsertable.

Yes

SeeAlsoComplusSchema

Page 571: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 572: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 573: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoComplusSchema

Page 574: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoComplusSchema

Page 575: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 576: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

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

SeeAlsoComplusSchema

Page 577: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DiskIdType(SimpleType)

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

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

SeeAlsoComplusSchema

Page 578: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoComplusSchema

Page 579: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 580: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

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

SeeAlsoComplusSchema

Page 581: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoComplusSchema

Page 582: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LocalizableInteger(SimpleType)

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

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

SeeAlsoComplusSchema

Page 583: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 584: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

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

SeeAlsoComplusSchema

Page 585: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoComplusSchema

Page 586: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoComplusSchema

Page 587: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 588: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 589: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VersionType(SimpleType)

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

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

SeeAlsoComplusSchema

Page 590: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 591: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 592: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoAlwaysType(SimpleType)

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

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoComplusSchema

Page 593: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoButtonType(SimpleType)

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

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoComplusSchema

Page 594: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoComplusSchema

Page 595: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoComplusSchema

Page 596: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ProviderKeyAttribute(DependencyExtension)

DescriptionOptionalattributetoexplicitlyauthortheproviderkeyfortheentirebundle.

WindowsInstallerreferencesNone

ParentsBundle

Remarks

Thisproviderkeyisdesignedtopersistthroughoutcompatibleupgradessothatdependentbundlesdonothavetobereinstalledandwillnotpreventyourproductfrombeingupgraded.Ifthisattributeisnotauthored,thevalueistheautomatically-generatedbundleIDandwillnotautomaticallysupportupgrades.

Onlyasingleproviderkeyissupportedforbundles.Toauthorthatyourbundleprovidesadditionalfeaturesviapackages,authordifferentproviderkeysforyourpackages.

SeeAlsoDependencySchema,Provides

Page 597: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ProvidesElement(DependencyExtension)

DescriptionDescribestheinformationforthisproductorfeaturethatservesasadependencyofotherproductsorfeatures.

WindowsInstallerreferencesNone

ParentsComponent,ExePackage,MsiPackage,MspPackage,MsuPackage

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Requires(min:0,max:unbounded)RequiresRef(min:0,max:unbounded)

Attributes

Name Type Description Required

DisplayName String Optionaldisplaynameofthepackage.ForMSIpackages,theProductNamewillbeusedbydefault.

Id String Dependencyprovideridentity.Ifthisattributeisnotspecified,anidentifierwillbegeneratedautomatically.

Key String Optionaluniqueregistry

Page 598: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

keynamethatidentifiesaproductversionrangeonwhichotherproductscandepend.Thisattributeisrequiredinpackageauthoring,butoptionalforcomponents.

Version VersionType Theversionofthepackage.ForMSIpackages,theProductVersionwillbeusedbydefaultandthisattributeshouldnotbespecified.

Remarks

Thiselementisrequiredforanyproduct,feature,orbundlethatwillusetheDependencyfeaturetoproperlyreferencecountotherproductsorfeatures.Itshouldbeauthoredintoacomponentthatisalwaysinstalledandremovedwiththeproductorfeaturesthatcontainit.Thisguaranteesthatproductdependenciesarenotremovedbeforethoseproductsthatdependonthem.

The@Keyattributeshouldidentifyaversionrangeforyourproductthatyouguaranteewillbebackwardcompatible.Thiskeyisdesignedtopersistthroughoutcompatibleupgradessothatdependentproductsdonothavetobereinstalledandwillnotpreventyourproductfrombeingupgraded.Ifthisattributeisnotauthored,thevalueistheProductCodeandwillnotautomaticallysupportupgrades.

BydefaultthisusestheProduct/@Idattributevalue,whichmaybeautomaticallygenerated.

HowTosandExamplesHowTo:Authorproductdependencies

SeeAlsoDependencySchema

Page 599: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RequiresElement(DependencyExtension)

DescriptionDescribesadependencyonaproviderforthecurrentcomponentorpackage.

WindowsInstallerreferencesNone

ParentsBundle,Fragment,Module,Product,Provides

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Dependencyrequirementidentity.Ifthisattributeisnotspecified,anidentifierwillbegeneratedautomatically.IfthiselementisnotauthoredunderaProvideselement,thisattributeisrequired.

IncludeMaximum YesNoType Setto"yes"tomaketherangeofdependencyproviderversionsrequired

Page 600: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

includethevaluespecifiedinMaximum.

IncludeMinimum YesNoType Setto"yes"tomaketherangeofdependencyproviderversionsrequiredincludethevaluespecifiedinMinimum.

Maximum VersionType Themaximumversionofthedependencyproviderrequiredtobeinstalled.Thedefaultisunbound.

Minimum VersionType Theminimumversionofthedependencyproviderrequiredtobeinstalled.Thedefaultisunbound.

ProviderKey String Theuniqueregistrykeynameforthedependencyprovidertorequireduringinstallationofthisproduct.

Yes

Remarks

ThiselementdeclaresadependencyonanyproductthatusestheProvideselement.Ifthatproductisuninstalledbeforeaproductthatrequiresit,theuninstallwillerrorwarntheuserthatotherproductsareinstalledwhichdependonthatproduct.ThisbehaviorcanbemodifiedbychangingtheattributevaluesontheRequireselement.

IfyoudonotnestthiselementunderaProvideselement,youmustspecifythe@IdattributesothatitcanbereferencedbyaRequiresRefelementnestedunderaProvideselement.

HowTosandExamples

Page 601: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HowTo:Authorproductdependencies

SeeAlsoDependencySchema,RequiresRef

Page 602: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RequiresRefElement(DependencyExtension)

DescriptionReferencesexistingauthoringforadependencyonaproviderforthecurrentcomponentorpackage.

WindowsInstallerreferencesNone

ParentsProvides

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifieroftheRequireselementtoreference.

Yes

Remarks

ThiselementreferencesadependencyonanyproductthatusestheProvideselement.Ifthatproductisuninstalledbeforeaproductthatrequiresit,theuninstallwillerrorwarntheuserthatotherproductsareinstalledwhichdependonthatproduct.ThisbehaviorcanbemodifiedbychangingtheattributevaluesontheRequireselement.

HowTosandExamplesHowTo:Authorproductdependencies

SeeAlsoDependencySchema,Requires

Page 603: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VersionType(SimpleType)

DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.Thiscanalsobeapreprocessor,binder,orWiXvariable.

PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}|[!$]\((var|bind|wix)\.[_A-Za-z][\w\.]*\)'.

SeeAlsoDependencySchema

Page 604: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoDependencySchema

Page 605: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DriverElement(DifxappExtension)

DescriptionInstallsadriver.Tousethiselement,youneedtoreferencetheWixDifxAppExtensionextensionandaddthe.wixlibappropriateforthetargetplatform(difxapp_x86.wixlibordifxapp_x64.wixlib)toyourproject.

WindowsInstallerreferencesNone

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description

AddRemovePrograms YesNoType SpecifiesthattheDIFxAppCustomActionsshouldaddanentryintheAdd/RemoveProgramsControlThedefaultis'yes'.

DeleteFiles YesNoType Ifsetto"yes",configuresDIFxApptodeletebinaryfilesthatwerecopiedtothesystemfromthedriveradriverpackagewasinstalled.Ifthisattributeissetto"no"ornotpresent,DIFxAppdoesnotfromasystem.NotethatconfiguringDIFxApptodeletethesefilesiscontrolledbytheFlagsentryvalueofthecomponentthatrepresentsthedriverpackageintheMsiDriverPackagescustomtable."yes"setsthecorrespondingbitintheFlagsentryvalue.SettingDeleteFilesto"no"clearsthecorrespondingbitintheFlagsentryvalue.Ifthisattributeisnotpresent,

Page 606: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DIFxAppusesadefaultvalueof"no".

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

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

PlugAndPlayPrompt YesNoType SpecifiesthattheDIFxAppCustomActionsshouldprompttheusertoconnectthePlugandPlayconnected.Thedefaultis'yes'.

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

SeeAlso

Page 607: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DifxappSchema

Page 608: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 609: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoDifxappSchema

Page 610: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoDifxappSchema

Page 611: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 612: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

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

SeeAlsoDifxappSchema

Page 613: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DiskIdType(SimpleType)

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

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

SeeAlsoDifxappSchema

Page 614: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoDifxappSchema

Page 615: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 616: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

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

SeeAlsoDifxappSchema

Page 617: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoDifxappSchema

Page 618: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LocalizableInteger(SimpleType)

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

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

SeeAlsoDifxappSchema

Page 619: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 620: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

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

SeeAlsoDifxappSchema

Page 621: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoDifxappSchema

Page 622: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoDifxappSchema

Page 623: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 624: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VersionType(SimpleType)

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

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

SeeAlsoDifxappSchema

Page 625: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 626: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 627: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoAlwaysType(SimpleType)

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

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoDifxappSchema

Page 628: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoButtonType(SimpleType)

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

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoDifxappSchema

Page 629: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoDifxappSchema

Page 630: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoDifxappSchema

Page 631: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

FirewallExceptionElement(FirewallExtension)

DescriptionRegistersanexceptionforaprogramoraspecificportandprotocolintheWindowsFirewallonWindowsXPSP2,WindowsServer2003SP1,andlater.FormoreinformationabouttheWindowsFirewall,seeAboutWindowsFirewallAPI.

WindowsInstallerreferencesNone

ParentsComponent,File

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

RemoteAddress(min:0,max:unbounded)

Attributes

Name Type Description Required

Id String UniqueIDofthisfirewallexception.

Yes

Description String DescriptionforthisfirewallruledisplayedinWindowsFirewallmanagerinWindowsVistaandlater.

File String Identifierofafiletobegrantedaccesstoallincomingportsandprotocols.IfyouuseFile,

Page 632: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

youcannotalsouseProgram.

IfyouuseFileandalsoPortorProtocolinthesameFirewallExceptionelement,theexceptionwillfailtoinstallonWindowsXPandWindowsServer2003.IgnoreFailure="yes"canbeusedtoignoretheresultingfailure,buttheexceptionwillnotbeadded.

IgnoreFailure YesNoType If"yes,"failurestoregisterthisfirewallexceptionwillbesilentlyignored.If"no"(thedefault),failureswillcauserollback.

Name String Nameofthisfirewallexception,visibletotheuserinthefirewallcontrolpanel.

Yes

Port String Porttoallowthroughthefirewallforthisexception.

IfyouusePortandalsoFileorPrograminthesameFirewallExceptionelement,theexceptionwillfailtoinstallonWindowsXPandWindowsServer2003.IgnoreFailure="yes"canbeusedtoignoretheresultingfailure,buttheexceptionwillnotbeadded.

Page 633: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

private

public

all

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

IfyouuseProgramandalsoPortorProtocolinthesameFirewallExceptionelement,theexceptionwillfailtoinstallonWindowsXPandWindowsServer2003.IgnoreFailure="yes"canbeusedtoignoretheresultingfailure,buttheexceptionwillnotbeadded.

Protocol Enumeration IPprotocolusedforthisfirewallexception.IfPortisdefined,"tcp"isassumediftheprotocolisnot

Page 634: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

specified.

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

udp

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

localSubnet

Page 635: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SeeAlsoFirewallSchema

Page 636: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RemoteAddressElement(FirewallExtension)

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

WindowsInstallerreferencesNone

ParentsFirewallException

InnerText(xs:string)Aremoteaddress.

ChildrenNone

AttributesNone

SeeAlsoFirewallSchema

Page 637: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 638: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoFirewallSchema

Page 639: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoFirewallSchema

Page 640: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 641: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

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

SeeAlsoFirewallSchema

Page 642: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DiskIdType(SimpleType)

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

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

SeeAlsoFirewallSchema

Page 643: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoFirewallSchema

Page 644: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 645: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

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

SeeAlsoFirewallSchema

Page 646: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoFirewallSchema

Page 647: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LocalizableInteger(SimpleType)

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

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

SeeAlsoFirewallSchema

Page 648: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 649: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

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

SeeAlsoFirewallSchema

Page 650: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoFirewallSchema

Page 651: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoFirewallSchema

Page 652: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 653: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VersionType(SimpleType)

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

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

SeeAlsoFirewallSchema

Page 654: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 655: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 656: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoAlwaysType(SimpleType)

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

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoFirewallSchema

Page 657: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoButtonType(SimpleType)

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

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoFirewallSchema

Page 658: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoFirewallSchema

Page 659: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoFirewallSchema

Page 660: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 661: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

resource,ifitdoesn'texistintheparentfile.

SeeAlsoGamingSchema

Page 662: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

IsRichSavedGameAttribute(GamingExtension)

DescriptionRegistersthisextensionfortherichsavedgamespropertyhandleronWindowsVistaandlater.

WindowsInstallerreferencesNone

ParentsExtension

SeeAlsoGamingSchema

Page 663: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 664: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 665: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoGamingSchema

Page 666: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoGamingSchema

Page 667: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 668: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

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

SeeAlsoGamingSchema

Page 669: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DiskIdType(SimpleType)

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

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

SeeAlsoGamingSchema

Page 670: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoGamingSchema

Page 671: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 672: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

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

SeeAlsoGamingSchema

Page 673: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoGamingSchema

Page 674: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LocalizableInteger(SimpleType)

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

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

SeeAlsoGamingSchema

Page 675: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 676: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

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

SeeAlsoGamingSchema

Page 677: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoGamingSchema

Page 678: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoGamingSchema

Page 679: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 680: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VersionType(SimpleType)

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

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

SeeAlsoGamingSchema

Page 681: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 682: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 683: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoAlwaysType(SimpleType)

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

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoGamingSchema

Page 684: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoButtonType(SimpleType)

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

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoGamingSchema

Page 685: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoGamingSchema

Page 686: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoGamingSchema

Page 687: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 688: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

AutogenGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.

SeeAlsoHttpSchema

Page 689: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoHttpSchema

Page 690: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoHttpSchema

Page 691: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ComponentGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.

SeeAlsoHttpSchema

Page 692: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

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

SeeAlsoHttpSchema

Page 693: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DiskIdType(SimpleType)

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

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

SeeAlsoHttpSchema

Page 694: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoHttpSchema

Page 695: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Guid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoHttpSchema

Page 696: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

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

SeeAlsoHttpSchema

Page 697: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoHttpSchema

Page 698: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LocalizableInteger(SimpleType)

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

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

SeeAlsoHttpSchema

Page 699: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoHttpSchema

Page 700: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

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

SeeAlsoHttpSchema

Page 701: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoHttpSchema

Page 702: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoHttpSchema

Page 703: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoHttpSchema

Page 704: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VersionType(SimpleType)

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

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

SeeAlsoHttpSchema

Page 705: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WildCardLongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoHttpSchema

Page 706: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WildCardShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoHttpSchema

Page 707: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoAlwaysType(SimpleType)

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

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoHttpSchema

Page 708: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoButtonType(SimpleType)

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

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoHttpSchema

Page 709: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoHttpSchema

Page 710: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoHttpSchema

Page 711: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UrlAceElement(HttpExtension)

DescriptionThesecurityprincipalandwhichrightstoassigntothemfortheURLreservation.

WindowsInstallerreferencesNone

ParentsUrlReservation

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String UniqueIDofthisURLACE.Ifthisattributeisnotspecified,anidentifierwillbegeneratedautomatically.

Rights Enumeration RightsforthisACE.Defaultis"all".Thisattribute'svaluemustbeoneofthefollowing:register

delegate

all

SecurityPrincipal String ThesecurityprincipalforthisACE.WhentheUrlReservationisunderaServiceInstallelement,thisdefaultsto"NT

Page 712: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

SeeAlsoHttpSchema

Page 713: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UrlReservationElement(HttpExtension)

DescriptionMakesareservationrecordfortheHTTPServerAPIconfigurationstoreonWindowsXPSP2,WindowsServer2003,andlater.FormoreinformationabouttheHTTPServerAPI,seeHTTPServerAPI.

WindowsInstallerreferencesNone

ParentsComponent,ServiceInstall

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

UrlAce(min:0,max:unbounded)

Attributes

Name Type Description Required

HandleExisting Enumeration SpecifiesthebehaviorwhentryingtoinstallaURLreservationanditalreadyexists.Thisattribute'svaluemustbeoneofthefollowing:replace

ReplacestheexistingURLreservation(thedefault).

Page 714: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ignoreKeepstheexistingURLreservation.

failTheinstallationfails.

Id String UniqueIDofthisURLreservation.Ifthisattributeisnotspecified,anidentifierwillbegeneratedautomatically.

Sddl String SecuritydescriptortoapplytotheURLreservation.Can'tbespecifiedwhenusingchildrenUrlAceelements.

Url String TheUrlPrefixstringthatdefinestheportionoftheURLnamespacetowhichthisreservationpertains.

Yes

SeeAlsoHttpSchema

Page 715: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 716: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 717: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

localMachine

StoreName Enumeration Thisattribute'svaluemustbeoneofthefollowing:ca

Containsthecertificatesofcertificateauthoritiesthattheusertruststoissuecertificatestoothers.Certificatesinthesestoresarenormallysuppliedwiththeoperatingsystemorbytheuser'snetworkadministrator.

myUsethe"personal"valueinstead.

personalContainspersonalcertificates.Thesecertificateswillusuallyhaveanassociatedprivatekey.Thisstoreisoftenreferredtoasthe"MY"certificatestore.

request

rootContainsthe

Yes

Page 718: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

certificatesofcertificateauthoritiesthattheusertruststoissuecertificatestoothers.Certificatesinthesestoresarenormallysuppliedwiththeoperatingsystemorbytheuser'snetworkadministrator.Certificatesinthisstorearetypicallyself-signed.

otherPeopleContainsthecertificatesofthosethattheusernormallysendsenvelopedmessagestoorreceivessignedmessagesfrom.SeeMSDNdocumentationformoreinformation.

trustedPeopleContainsthecertificatesofthosedirectlytrustedpeopleandresources.SeeMSDNdocumentationformoreinformation.

trustedPublisher

Page 719: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Containsthecertificatesofthosepublisherswhoaretrusted.SeeMSDNdocumentationformoreinformation.

SeeAlsoIisSchema,CertificateRef

Page 720: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CertificateRefElement(IisExtension)

DescriptionAssociatesacertificatewiththeparentWebSite.TheCertificateelementshouldbeinthesameComponentastheparentWebSite.

WindowsInstallerreferencesNone

ParentsWebSite

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifierofthereferencedCertificate.

Yes

SeeAlsoIisSchema,Certificate

Page 721: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 722: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SeeAlsoIisSchema

Page 723: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 724: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RecycleTimeElement(IisExtension)

DescriptionIIS6ApplicationPoolRecycleTimeson24hourclock.

WindowsInstallerreferencesNone

ParentsWebAppPool

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

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

SeeAlsoIisSchema

Page 725: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 726: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoIisSchema

Page 727: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoIisSchema

Page 728: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 729: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

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

SeeAlsoIisSchema

Page 730: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DiskIdType(SimpleType)

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

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

SeeAlsoIisSchema

Page 731: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoIisSchema

Page 732: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 733: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

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

SeeAlsoIisSchema

Page 734: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoIisSchema

Page 735: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LocalizableInteger(SimpleType)

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

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

SeeAlsoIisSchema

Page 736: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 737: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PercentType(SimpleType)

DescriptionValuesofthistypeareanyintegersbetween0and100,inclusive.

xs:nonNegativeIntegerTypexs:maxInclusivevalue='100'

SeeAlsoIisSchema

Page 738: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

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

SeeAlsoIisSchema

Page 739: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoIisSchema

Page 740: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoIisSchema

Page 741: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 742: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VersionType(SimpleType)

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

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

SeeAlsoIisSchema

Page 743: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 744: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 745: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoAlwaysType(SimpleType)

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

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoIisSchema

Page 746: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoButtonType(SimpleType)

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

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoIisSchema

Page 747: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoIisSchema

Page 748: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoIisSchema

Page 749: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 750: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Whenthisattributehasthevalue"*"thenanyIPaddressincludingthe"AllUnassigned"IPaddresswillbelocated

WhentheWebAddressispartofaWebSiteelementusedtocreateanewwebsitethefollowingrulesareused:

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

TheIPattributecancontainaformattedstringthatisprocessedatinstalltimetoinsertthevaluesofpropertiesusing[PropertyName]syntax.

Port String Yes

Secure YesNoType Determinesifthisaddressrepresentsasecurebinding.Thedefaultis'no'.

SeeAlsoIisSchema

Page 751: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WebApplicationElement(IisExtension)

DescriptionDefinespropertiesforawebapplication.Thesepropertiescanbeusedformorethanoneapplicationdefinedinawebsiteorvroot,bydefiningthiselementinacommonlocationandreferringtoitbysettingtheWebApplicationattributeoftheWebSiteandWebVirtualDirelements.

WindowsInstallerreferencesNone

ParentsFragment,Module,Product,WebDir,WebSite,WebVirtualDir

InnerTextNone

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

Attributes

Name Type Description Required

Id String Yes

AllowSessions YesNoDefaultType SetstheEnableSessionStateoption.Whenenabled,youcansetthesessiontimeoutusingtheSessionTimeoutattribute.

Page 752: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Buffer YesNoDefaultType Setstheoptionthatenablesresponsebufferingintheapplication,whichallowsASPscripttosetresponseheadersanywhereinthescript.

ClientDebugging YesNoDefaultType EnableASPclient-sidescriptdebugging.

DefaultScript Enumeration Setsthedefaultscriptlanguageforthesite.Thisattribute'svaluemustbeoneofthefollowing:VBScript

JScript

Isolation Enumeration Setstheapplicationisolationlevelforthisapplicationforpre-IIS6applications.Thisattribute'svaluemustbeoneofthefollowing:low

Meanstheapplication

Page 753: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

executeswithintheIISprocess.

mediumExecutespooledinaseparateprocess.

highMeansexecutionaloneinaseparateprocess.

Name String Setsthenameofthisapplication.

Yes

ParentPaths YesNoDefaultType Setstheparentpathsoption,whichallowsaclienttouserelativepathstoreachparentdirectoriesfromthisapplication.

ScriptTimeout Integer SetsthetimeoutvalueinsecondsforexecutingASPscripts.

ServerDebugging YesNoDefaultType EnableASPserver-sidescriptdebugging.

SessionTimeout Integer Setsthetimeoutvaluefor

Page 754: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

sessionsinminutes.

WebAppPool String ReferencestheIdattributeofaWebAppPoolelementtouseastheapplicationpoolforthisapplicationinIIS6applications.

SeeAlsoIisSchema

Page 755: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 756: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Extensionattributecompletely.

Script YesNoType

Verbs String

SeeAlsoIisSchema

Page 757: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WebAppPoolElement(IisExtension)

DescriptionIIS6ApplicationPool

WindowsInstallerreferencesNone

ParentsComponent,Fragment,Module,Product

InnerTextNone

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

Attributes

Name Type Description

Id String IdoftheAppPool.

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

shutdown

Identity Enumeration IdentityyouwanttheAppPooltorununder(applicationPoolIdentityisonlyavailableonIIS7).Usethe'other'valueinconjunctionwiththeUserattributetospecifynon-standarduser.valuemustbeoneofthefollowing:networkService

localService

localSystem

other

Page 758: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

applicationPoolIdentity

IdleTimeout Integer Shutdownworkerprocessafterbeingidlefor(timeinminutes).

ManagedPipelineMode String Specifiestherequest-processingmodethatisusedtoprocessrequestsformanagedcontent.availableonIIS7,ignoredonIIS6.http://www.iis.net/ConfigReference/system.applicationHost/applicationPools/applicationPoolDefaultsforvalidvalues.ThisattributemaybesetviaaformattedProperty(e.g.[MyProperty]).

ManagedRuntimeVersion String Specifiesthe.NETFrameworkversiontobeusedbytheapplicationpool.ignoredonIIS6.Seehttp://www.iis.net/ConfigReference/system.applicationHost/applicationPools/applicationPoolDefaultsforvalidvalues.ThisattributemaybesetviaaformattedProperty(e.g.[MyProperty]).

MaxCpuUsage PercentType MaximumCPUusage(percent).

MaxWorkerProcesses Integer Maximumnumberofworkerprocesses.

Name String NameoftheAppPooltobeshowninIIs.

PrivateMemory Integer Specifiestheamountofprivatememory(inKB)thataworkerprocesscanusebeforetheworkerprocessrecycles.Themaximumvaluesupportedforthisattributeis4,294,967KB.

QueueLimit Integer Limitthekernelrequestqueue(numberofrequests).

RecycleMinutes Integer Howoften,inminutes,youwanttheAppPooltoberecycled.

RecycleRequests Integer Howoften,inrequests,youwanttheAppPooltoberecycled.

RefreshCpu Integer RefreshCPUusagenumbers(inminutes).

User String UseraccounttoruntheAppPoolas.

VirtualMemory Integer Specifiestheamountofvirtualmemory(inKB)thataworkerprocesscanusebeforetheworkerprocessrecycles.Themaximumvaluesupportedforthisattributeis4,294,967KB.

SeeAlsoIisSchema

Page 759: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WebDirElement(IisExtension)

DescriptionDefinesasubdirectorywithinanIISwebsite.WhenthiselementisachildofWebSite,thewebdirectoryisdefinedwithinthatwebsite.OtherwisethewebdirectorymustreferenceaWebSiteelementviatheWebSiteattribute.

WindowsInstallerreferencesNone

ParentsComponent,WebSite

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

WebApplication(min:0,max:1)WebDirProperties(min:0,max:1)

Attributes

Name Type Description Required

Id String Yes

DirProperties String ReferencestheIdattributeforaWebDirPropertieselementthatspecifiesthesecurityandaccesspropertiesforthiswebdirectory.ThisattributemaynotbespecifiedifaWebDirPropertieselementisdirectlynestedinthiselement.

Path String Specifiesthenameofthiswebdirectory.

Yes

Page 760: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WebSite String ReferencestheIdattributeforaWebSiteelementinwhichthisdirectorybelongs.RequiredwhenthiselementisnotachildofaWebSiteelement.

SeeAlsoIisSchema

Page 761: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 762: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

metabaseproperty.

AccessSSL128 YesNoType AvalueoftrueindicatesthatfileaccessrequiresSSLfilepermissionprocessingwithaminimumkeysizeof128bits,withorwithoutaclientcertificate.ThiscorrespondstoAccessSSL128flagforAccessSSLFlagsIISmetabaseproperty.

AccessSSLMapCert YesNoType ThiscorrespondstoAccessSSLMapCertflagforAccessSSLFlagsIISmetabaseproperty.

AccessSSLNegotiateCert YesNoType ThiscorrespondstoAccessSSLNegotiateCertflagforAccessSSLFlagsIISmetabaseproperty.

AccessSSLRequireCert YesNoType ThiscorrespondstoAccessSSLRequireCertflagforAccessSSLFlagsIISmetabaseproperty.

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

Page 763: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 764: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 765: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Defaultsto'no.'

Read YesNoType

Script YesNoType

WindowsAuthentication YesNoType SetstheWindowsAuthenticationoption,whichenablesintegratedWindowsauthenticationtobeusedonthesite.Defaultsto'no.'

Write YesNoType

SeeAlsoIisSchema

Page 766: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 767: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SeeAlsoIisSchema

Page 768: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 769: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

WebSite String Specifiestheparentwebsiteforthisfilter(ifthereisone).Ifthisisaglobalfilter,thenthisattributeshouldnotbespecified.

SeeAlsoIisSchema

Page 770: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 771: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Format

SeeAlsoIisSchema

Page 772: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 773: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

SeeAlsoIisSchema

Page 774: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 775: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

deletable.

SeeAlsoIisSchema

Page 776: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 777: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

toautomaticallystartthewebsite.

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

ConnectionTimeout NonNegativeInteger Setsthetimeoutvalueforconnectionsinseconds.

Description String ThisisthenameofthewebsitethatwillshowupintheIISmanagementconsole.

Yes

Directory String Rootdirectoryofthewebsite.ResolvedtoadirectoryintheDirectorytableatinstalltimebytheservercustomactions.

DirProperties String ReferencestheIdattributeforaWebDirPropertieselementthatspecifiesthesecurityand

Page 778: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

accesspropertiesforthiswebsiterootdirectory.ThisattributemaynotbespecifiedifaWebDirPropertieselementisdirectlynestedinthiselement.

Sequence Integer Sequencethatthewebsiteistobecreatedin.

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

Page 779: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

(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 780: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SeeAlsoIisSchema

Page 781: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 782: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Directory String ReferencestheIdattributeforaDirectoryelementthatpointstothecontentforthisvirtualdirectory.

Yes

DirProperties String ReferencestheIdattributeforaWebDirPropertieselementthatspecifiesthesecurityandaccesspropertiesforthisvirtualdirectory.ThisattributemaynotbespecifiedifaWebDirPropertieselementisdirectlynestedinthiselement.

WebApplication String ReferencestheIdattributeforaWebApplicationelementthatspecifieswebapplicationsettingsforthisvirtualdirectory.IfaWebApplicationchildisnotspecified,thevirtualdirectorydoesnothostwebapplications.

WebSite String ReferencestheIdattributeforaWebSiteinwhichthisvirtualdirectorybelongs.RequiredwhenthiselementisnotachildofWebSiteelement.

SeeAlsoIisSchema

Page 783: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ConditionElement(LuxExtension)

DescriptionConditionsforaunittest.

WindowsInstallerreferencesNone

ParentsUnitTest

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoLuxSchema

Page 784: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ExpressionElement(LuxExtension)

DescriptionAnexpressionthatmustevaluatetotruetosucceed.CannotbespecifiedifPropertyisspecified.

WindowsInstallerreferencesNone

ParentsUnitTest

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

AttributesNone

SeeAlsoLuxSchema

Page 785: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 786: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 787: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoLuxSchema

Page 788: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoLuxSchema

Page 789: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 790: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

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

SeeAlsoLuxSchema

Page 791: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DiskIdType(SimpleType)

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

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

SeeAlsoLuxSchema

Page 792: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoLuxSchema

Page 793: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 794: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

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

SeeAlsoLuxSchema

Page 795: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoLuxSchema

Page 796: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LocalizableInteger(SimpleType)

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

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

SeeAlsoLuxSchema

Page 797: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 798: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

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

SeeAlsoLuxSchema

Page 799: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoLuxSchema

Page 800: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoLuxSchema

Page 801: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 802: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VersionType(SimpleType)

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

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

SeeAlsoLuxSchema

Page 803: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 804: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 805: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoAlwaysType(SimpleType)

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

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoLuxSchema

Page 806: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoButtonType(SimpleType)

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

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoLuxSchema

Page 807: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoLuxSchema

Page 808: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoLuxSchema

Page 809: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 810: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 811: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

setbythecustomaction.

Value String Thevaluetocomparetotheproperty.

ValueSeparator String Onecharacterthatisusedtoseparatevaluesinamulti-valueproperty.

SeeAlsoLuxSchema

Page 812: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UnitTestRefElement(LuxExtension)

DescriptionIdentifiesaunittesttobelinkedintoaproject.

WindowsInstallerreferencesNone

ParentsFragment,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Identifieroftheunittesttobeincluded.

SeeAlsoLuxSchema

Page 813: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 814: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

following:none

optional

body

Quota Integer

ServiceTypeGuid String

Transactional YesNoType Default:No.

SeeAlsoMsmqSchema

Page 815: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 816: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

QueueGenericAll YesNoType

QueueGenericExecute YesNoType

QueueGenericRead YesNoType

QueueGenericWrite YesNoType

ReceiveJournalMessage YesNoType

ReceiveMessage YesNoType

SetQueueProperties YesNoType

TakeQueueOwnership YesNoType

User String

WriteMessage YesNoType

SeeAlsoMsmqSchema

Page 817: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 818: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoMsmqSchema

Page 819: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoMsmqSchema

Page 820: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 821: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

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

SeeAlsoMsmqSchema

Page 822: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DiskIdType(SimpleType)

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

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

SeeAlsoMsmqSchema

Page 823: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoMsmqSchema

Page 824: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 825: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

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

SeeAlsoMsmqSchema

Page 826: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoMsmqSchema

Page 827: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LocalizableInteger(SimpleType)

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

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

SeeAlsoMsmqSchema

Page 828: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 829: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

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

SeeAlsoMsmqSchema

Page 830: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoMsmqSchema

Page 831: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoMsmqSchema

Page 832: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 833: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VersionType(SimpleType)

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

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

SeeAlsoMsmqSchema

Page 834: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 835: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 836: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoAlwaysType(SimpleType)

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

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoMsmqSchema

Page 837: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoButtonType(SimpleType)

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

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoMsmqSchema

Page 838: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoMsmqSchema

Page 839: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoMsmqSchema

Page 840: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

NativeImageElement(NetfxExtension)

DescriptionImprovestheperformanceofmanagedapplicationsbycreatingnativeimages.Requiresthe.NETFramework2.0ornewertobeinstalledonthetargetmachinesinceitrunsNGen.

WindowsInstallerreferencesNone

ParentsFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifierforthisNativeImage.

Yes

AppBaseDirectory String Thedirectorytouseforlocatingdependentassemblies.ForDLLassembliesandassembliesinstalledtotheGlobalAssemblyCache(GAC),thisattributeshouldbesettothedirectoryoftheapplicationwhichloadsthisassembly.ForEXE

Page 841: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

assemblies,thisattributedoesnotneedtobesetbecauseNGenwillusethedirectoryoftheassemblyfilebydefault.

Thevaluecanbeintheformofadirectoryidentifier,oraformattedstringthatresolvestoeitheradirectoryidentifierorafullpathtoadirectory.

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

Thevaluecanbeintheformofafileidentifier,oraformattedstringthatresolvestoeitherafileidentifierorafullpathtoafile.

Whenasharedcomponentisloadedatruntime,usingtheLoadmethod,the

Page 842: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

Page 843: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Debug YesNoType Setto"yes"togeneratenativeimagesthatcanbeusedunderadebugger.Thedefaultvalueis"no".

Dependencies YesNoType Setto"no"togeneratetheminimumnumberofnativeimages.Thedefaultvalueis"yes".

Platform Enumeration Setstheplatform(s)forwhichnativeimageswillbegenerated.Thisattribute'svaluemustbeoneofthefollowing:32bit

Attempttogeneratenativeimagesonlyforthe32-bitversionofthe.NETFrameworkonthetargetmachine.Ifthe32-bitversionofthe.NETFramework2.0ornewerisnotpresentonthetargetmachine,nativeimagecustomactionswillnotbescheduled.Thisisthedefaultvalue.

64bitAttempttogeneratenativeimagesonlyforthe64-bitversionofthe.NETFrameworkonthetargetmachine.Ifa64-bitversionofthe.NETFramework2.0ornewerisnotpresentonthetarget

Page 844: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

machine,nativeimagecustomactionswillnotbescheduled.

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

Priority Enumeration Setsthepriorityofgeneratingthenativeimagesforthisassembly.Thisattribute'svaluemustbeoneofthefollowing:0

Thisisthehighestpriority,itmeansthatimagegenerationoccurssyncronouslyduringthesetupprocess.Thisoptionwillslowdownsetupperformance.

1Thiswillqueueimagegenerationtothe

Page 845: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

NGenservicetooccurimmediately.Thisoptionwillslowdownsetupperformance.

2ThiswillqueueimagegenerationtotheNGenservicetooccurafterallpriority1assemblieshavecompleted.Thisoptionwillslowdownsetupperformance.

3Thisisthelowestpriority,itwillqueueimagegenerationtooccurwhenthemachineisidle.Thisoptionshouldnotslowdownsetupperformance.Thisisthedefaultvalue.

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

Remarks

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

Thenativeimagecustomactionsareconfiguredtoignorefailuressothatfailingtogenerateorremoveanativeimagewillnotcausesetup

Page 846: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

tofailandrollback.

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

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

SeeAlsoNetfxSchema

Page 847: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoNetfxSchema

Page 848: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 849: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RequiredVersionAttribute(PsExtension)

DescriptionTheversionofthisextensionrequiredtocompilethedefiningsource.

WindowsInstallerreferencesNone

ParentsWix

SeeAlsoPsSchema

Page 850: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 851: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoPsSchema

Page 852: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoPsSchema

Page 853: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 854: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

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

SeeAlsoPsSchema

Page 855: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DiskIdType(SimpleType)

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

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

SeeAlsoPsSchema

Page 856: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

EmbeddedResource(SimpleType)

Description

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

Example:UtilityMshSnapInResources,Description

SeeAlsoPsSchema

Page 857: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoPsSchema

Page 858: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 859: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

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

SeeAlsoPsSchema

Page 860: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoPsSchema

Page 861: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LocalizableInteger(SimpleType)

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

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

SeeAlsoPsSchema

Page 862: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 863: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

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

SeeAlsoPsSchema

Page 864: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoPsSchema

Page 865: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoPsSchema

Page 866: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 867: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 868: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 869: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 870: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoAlwaysType(SimpleType)

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

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoPsSchema

Page 871: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoButtonType(SimpleType)

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

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoPsSchema

Page 872: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoPsSchema

Page 873: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoPsSchema

Page 874: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 875: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

registeralistofcmdletsandproviders.

Description String Abriefdescriptionofthesnap-in.

DescriptionIndirect EmbeddedResource Anembeddedresourcethatcontainsabriefdescriptionofthesnap-in.Thisresourcemustbeembeddedinthecurrentsnap-inassembly.

RequiredPowerShellVersion VersionType TherequiredversionofPowerShellthatmustbeinstalledandisassociatedwiththesnap-inregistration.Thedefaultvalueis

Page 876: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

"1.0".

Vendor String Thenameofthesnap-invendor.

VendorIndirect EmbeddedResource Anembeddedresourcethatcontainsthenameofthesnap-invendor.Thisresourcemustbeembeddedinthecurrentsnap-inassembly.

Version VersionType Theversionofthesnapin.Ifnotspecified,thisistakenfromtheassemblyname.

RemarksPowerShellsnap-insallowdeveloperstoextendthefunctionalityofofthePowerShellengine.AddthiselementtoidentifytheparentFileasaPowerShellsnap-inthatwillgetregisteredonthesystem.

SeeAlsoPsSchema

Page 877: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 878: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 879: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoSqlSchema

Page 880: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoSqlSchema

Page 881: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 882: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

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

SeeAlsoSqlSchema

Page 883: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DiskIdType(SimpleType)

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

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

SeeAlsoSqlSchema

Page 884: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoSqlSchema

Page 885: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 886: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

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

SeeAlsoSqlSchema

Page 887: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoSqlSchema

Page 888: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LocalizableInteger(SimpleType)

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

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

SeeAlsoSqlSchema

Page 889: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 890: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

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

SeeAlsoSqlSchema

Page 891: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoSqlSchema

Page 892: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoSqlSchema

Page 893: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 894: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VersionType(SimpleType)

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

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

SeeAlsoSqlSchema

Page 895: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 896: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 897: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoAlwaysType(SimpleType)

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

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoSqlSchema

Page 898: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoButtonType(SimpleType)

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

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoSqlSchema

Page 899: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoSqlSchema

Page 900: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoSqlSchema

Page 901: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 902: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

componentisreinstalled.SettingCreateOnInstalltoyesdoesnotimplyCreateOnReinstallissettoyes.CreateOnReinstallmustbesetinadditiontoCreateOnInstallforittobecreatedduringbothinstallandreinstall.

CreateOnUninstall YesNoType

Database String Thenameofthedatabase.ThevaluecanbealiteralvalueorderivedfromaPropertyelementusingtheFormattedsyntax.

Yes

DropOnInstall YesNoType

DropOnReinstall YesNoType Specifieswhethertodropthedatabasewhentheassociatedcomponentisreinstalled.SettingDropOnInstalltoyesdoesnotimplyDropOnReinstallissettoyes.DropOnReinstallmustbesetinadditiontoDropOnInstallforittobedroppedduringbothinstallandreinstall.

DropOnUninstall YesNoType

Page 903: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Instance String

Server String Yes

User String

RemarksNestingSqlDatabaseunderaComponentelementwillresultinaSqlDatabasebeinginstalledtothemachineasthepackageisinstalled.

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

TheUserattributereferencescredentialsspecifiedinaUserelement.IfauserisnotspecifiedthenWindowsAuthenticationwillbeusedbydefaultusingthecredentialsoftheuserperformingtheinstalltoexecutesqlstrings,etc.

SeeAlsoSqlSchema,User

Page 904: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 905: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

MaxSizesetting.

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

Name String Specifiesthelogicalnameforthedatabasefile.

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

SeeAlsoSqlSchema

Page 906: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 907: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 908: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 909: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RollbackOnReinstallandRollbackOnUninstallattributes.

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

ExecuteOnUninstall YesNoType Specifiestoexecutethescriptwhentheassociatedcomponentisuninstalled.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,RollbackOnReinstallandRollbackOnUninstall

Page 910: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

attributes.

RollbackOnInstall YesNoType Specifieswhethertoexecutethescriptonrollbackifanattemptismadetoinstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.

RollbackOnReinstall YesNoType Specifieswhethertoexecutethescriptonrollbackifanattemptismadetoreinstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.

RollbackOnUninstall YesNoType Specifieswhethertoexecutethescriptonrollbackifanattemptismadetouninstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstall

Page 911: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

andExecuteOnUninstallattributes.

Sequence Integer SpecifestheordertoruntheSQLScripts.Itisrecommendedthatrollbackscriptsbescheduledbeforetheircomplementaryexecutionscript.ThisorderisalsorelativeacrosstheSqlStringelement.

SqlDb String requiredwhennotchildofSqlDatabase

User String

SeeAlsoSqlSchema

Page 912: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 913: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

ExecuteOnUninstall YesNoType Specifiestoexecutethestringwhentheassociatedcomponentisuninstalled.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,RollbackOnReinstallandRollbackOnUninstallattributes.

RollbackOnInstall YesNoType Specifieswhethertoexecutethestringonrollbackifanattempt

Page 914: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ismadetoinstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.

RollbackOnReinstall YesNoType Specifieswhethertoexecutethestringonrollbackifanattemptismadetoreinstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.

RollbackOnUninstall YesNoType Specifieswhethertoexecutethestringonrollbackifanattemptismadetouninstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.

Sequence Integer Specifestheorderto

Page 915: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

runtheSQLStrings.Itisrecommendedthatrollbackstringsbescheduledbeforetheircomplementaryexecutionstring.ThisorderisalsorelativeacrosstheSqlScriptelement.

SQL String Yes

SqlDb String

User String

SeeAlsoSqlSchema

Page 916: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

AutogenGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.

SeeAlsoTagSchema

Page 917: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoTagSchema

Page 918: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoTagSchema

Page 919: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ComponentGuid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.

SeeAlsoTagSchema

Page 920: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

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

SeeAlsoTagSchema

Page 921: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DiskIdType(SimpleType)

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

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

SeeAlsoTagSchema

Page 922: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoTagSchema

Page 923: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Guid(SimpleType)

DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.

PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoTagSchema

Page 924: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

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

SeeAlsoTagSchema

Page 925: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoTagSchema

Page 926: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LocalizableInteger(SimpleType)

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

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

SeeAlsoTagSchema

Page 927: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoTagSchema

Page 928: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

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

SeeAlsoTagSchema

Page 929: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoTagSchema

Page 930: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoTagSchema

Page 931: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoTagSchema

Page 932: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VersionType(SimpleType)

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

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

SeeAlsoTagSchema

Page 933: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WildCardLongFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoTagSchema

Page 934: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WildCardShortFileNameType(SimpleType)

DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).

PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.

SeeAlsoTagSchema

Page 935: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoAlwaysType(SimpleType)

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

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoTagSchema

Page 936: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoButtonType(SimpleType)

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

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoTagSchema

Page 937: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoTagSchema

Page 938: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoTagSchema

Page 939: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

TagElement(TagExtension)

DescriptionThisextensionimplementstheISO/IEC19770-2:2015specification.ASWIDtagfilewillbegeneratedaninsertedintotheProductorBundle.

WindowsInstallerreferencesNone

ParentsBundle,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description

Feature String OptionalattributetoexplicitlysettheFeaturewhendefiningthesoftwareidtaginaProduct.Bydefaultthesoftwareidtagwillalwaysbeinstalledbyatop-levelhiddenfeature.Itisrecommendedtonotsetthisattribute.

InstallDirectory String AreferencetoanexistingDirectory/@Idwherethesoftwareisinstalled.TheSWIDtagfilewillbeinstalledina"swidtag"folderunderthatdirectoryasperthespecification.ThisattributeisrequiredonaTagelementfoundunderaProductelement.

InstallPath String Thepathwherethesoftwareisinstalled.TheSWIDtagfilewillbeinstalledina"swidtag"

Page 940: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

folder.ThisisaformattedattributesoitispossibletouseVariablesastheInstallPathbysettingthevalueto,forexample,"[ProgramFilesFolder]CompanyName\ProductName".ThisattributeisrequiredonaTagelementfoundunderaBundleelement.

Licensed String Thisattributehasbeendeprecated.

Name String Nametouseinthefilenameforthesoftwareidtag.BydefaultthefilenameusestheBundle/@NameorProduct/@Name.Ifthebundlenameorproductnamecontainsinvalidfilenamecharacterssuchas":"or"?",usethisattributetoprovideavalidfilename.

Regid String Theregidforthesoftwaremanufacturer.AregidisaURIsimplifiedforthecommoncase.Namely,iftheschemeis"http://",itcanberemoved.Additionally,thedomainshouldbeminimizedasmuchaspossible(forexample,remove"www."prefixifunnecessary).

Forexample,theWiXtoolsetregidis"wixtoolset.org".

Type String Thisattributehasbeendeprecated.

Win64 YesNoType Thisattributefacilitatestheinstallationofpackagesthatinstallboth32-bitand64-bitfiles.Setthisattributeto'no'toindicatethesoftwareidtagisinstalledtoa32-bitlocation(suchas"ProgramFilesFolder")or'yes'whenthetagisinstalledtoa64-bitlocation(suchas"ProgramFiles64Folder").Thedefaultdefaultvalueisbasedontheplatformsetbythe-archswitchtocandle.exeortheInstallerPlatformpropertyina.wixprojMSBuildproject:Forx86andARM,thedefaultvalueis'no'.Forx64andIA64,the

Page 941: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

defaultvalueis'yes'.

ThisattributeisonlyallowedonaTagelementfoundunderaProductelement.

SeeAlsoTagSchema

Page 942: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

TagRefElement(TagExtension)

DescriptionAllowsanISO/IEC19770-2:2015SWIDtagfiletobereferencedinaPatch.

WindowsInstallerreferencesNone

ParentsPatchFamily

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Regid String Theregidforthesoftwaremanufacturer.AregidisaURIsimplifiedforthecommoncase.Namely,iftheschemeis"http://",itcanberemoved.Additionally,thedomainshouldbeminimizedasmuchaspossible(forexample,remove"www."prefixifunnecessary).

Forexample,theWiXtoolsetregidis"wixtoolset.org".

Yes

SeeAlsoTagSchema

Page 943: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BillboardElement(ThmutilExtension)

DescriptionDefinesacontrolthatrotatesthroughasetofimagesonaspecifiedinterval.

WindowsInstallerreferencesNone

ParentsPage,Theme

InnerTextNone

ChildrenSequence(min:1,max:1)1. Image(min:1,max:1)

Attributes

Name Type Description Required

Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindowminusthevalue.

Yes

HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.

HideWhenDisabled YesNoType Specifieswhetherthecontrolshould

Page 944: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

behiddenwhendisabled.

Interval PositiveInteger .

Loop YesNoType Specifieswhetherthebillboardshouldloopthroughtheimagesinfinitely.

Name String Optionalnameforthecontrol.

TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.

Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.

Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.

Yes

X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.

Yes

Page 945: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

Yes

SeeAlsoThmutilSchema

Page 946: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ButtonElement(ThmutilExtension)

DescriptionDefinesabutton.

WindowsInstallerreferencesNone

ParentsPage,Theme

InnerText(xs:string)Texttodisplayinthebutton.

ChildrenNone

Attributes

Name Type Description Required

FontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontforthecontrol.

Yes

Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindowminusthevalue.

Yes

HexStyle HexBinary Hexadecimalwindowstyle

Page 947: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

forthecontrol.

HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.

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

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

Page 948: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

MutuallyexclusivewithImageFileandSourceXandSourceYattributes.

Name String Optionalnameforthecontrol.

TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.

Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.

Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.

Yes

X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidth

Yes

Page 949: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ofthecontrol.

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

Yes

SeeAlsoThmutilSchema

Page 950: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CheckboxElement(ThmutilExtension)

DescriptionDefinesacheckbox.

WindowsInstallerreferencesNone

ParentsPage,Theme

InnerText(xs:string)Texttodisplaybesidethecheckbox.

ChildrenNone

Attributes

Name Type Description Required

FontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontforthecontrol.

Yes

Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindow

Yes

Page 951: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

minusthevalue.

HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.

HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.

Name String Optionalnameforthecontrol.

TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.

Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.

Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthe

Yes

Page 952: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

value.

X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.

Yes

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

Yes

SeeAlsoThmutilSchema

Page 953: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ColumnElement(ThmutilExtension)

DescriptionAcolumnofalist.

WindowsInstallerreferencesNone

ParentsListView

InnerText(xs:string)Textforthecolumnheader.

ChildrenNone

Attributes

Name Type Description Required

Expands YesNoType Whetherornotthiscolumncangrowtofillavailablewidthofthelistview.Morethanonecolumncanbemarkedwithyes-allexpandablecolumnswillshareavailableextraspace.ThisisespeciallyusefuliftheWindow/@AutoResizeisyes.

Width Int Widthofthecolumn.

SeeAlsoThmutilSchema

Page 954: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ComboboxElement(ThmutilExtension)

DescriptionDefinesacombobox.

WindowsInstallerreferencesNone

ParentsPage,Theme

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

FontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontforthecontrol.

Yes

Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindow

Yes

Page 955: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

minusthevalue.

HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.

HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.

Name String Optionalnameforthecontrol.

TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.

Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.

Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthe

Yes

Page 956: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

value.

X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.

Yes

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

Yes

SeeAlsoThmutilSchema

Page 957: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

EditboxElement(ThmutilExtension)

DescriptionDefinesaneditbox.

WindowsInstallerreferencesNone

ParentsPage,Theme

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

FileSystemAutoComplete YesNoType Specifieswhethertheeditboxshouldauto-completewithfilesystempaths.

FontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontforthecontrol.

Yes

Height Int Heightofthe Yes

Page 958: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

control.Non-positivevaluesextendthecontroltothebottomofthewindowminusthevalue.

HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.

HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.

Name String Optionalnameforthecontrol.

TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.

Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.

Width Int Widthofthe Yes

Page 959: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

control.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.

X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.

Yes

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

Yes

Page 960: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SeeAlsoThmutilSchema

Page 961: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

FontElement(ThmutilExtension)

DescriptionDefinesafontincludingthesizeandcolor.

WindowsInstallerreferencesNone

ParentsTheme

InnerText(xs:string)Nameofthefontface.

ChildrenNone

Attributes

Name Type Description Required

Background HexBinary HexadecimalvaluerepresentingBGRbackgroundcolorofthefont."ffffff"iswhite,"ff0000"ispureblue,"00ff00"ispuregreen,"0000ff"ispureredand"000000"isblack.Ifthisvalueisabsentthebackgroundwillbetransparent.

Foreground HexBinary HexadecimalvaluerepresentingBGRforegroundcolorofthefont."ffffff"iswhite,"ff0000"is

Page 962: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

pureblue,"00ff00"ispuregreen,"0000ff"ispureredand"000000"isblack.Ifthisvalueisabsenttheforegroundwillbetransparent.

Height Int Fontsize.Usenegativenumberstospecifythefontinpixels.

Id NonNegativeInteger Numericidentifierforthefont.DuetolimitationsinthmutilthefirstFontmuststartwith"0"andeachsubsequentFontmustincrementtheIdby1.FailuretoensuretheFontidentifiersfollowthisstrictorderingwillcreateunexpectedbehaviororcrashes.

Underline YesNoType Specifieswhetherthefontisunderlined.

Weight NonNegativeInteger Fontweight.

SeeAlsoThmutilSchema

Page 963: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HyperlinkElement(ThmutilExtension)

DescriptionDefinesahyperlink.

WindowsInstallerreferencesNone

ParentsPage,Theme

InnerText(xs:string)Texttodisplayasthelink.

ChildrenNone

Attributes

Name Type Description Required

FontId NonNegativeInteger NumericidentifiertotheFontelementthatservesastheunselectedfont.

Yes

Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindow

Yes

Page 964: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

minusthevalue.

HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.

HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.

HoverFontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontwhenthecontrolishoveredover.

Yes

Name String Optionalnameforthecontrol.

SelectedFontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontwhenthecontrolisselected.

Yes

TabStop YesNoType Specifieswhetherthecontrolispartofthetab

Page 965: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

sequenceofcontrols.

Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.

Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.

Yes

X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.

Yes

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negative

Yes

Page 966: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

valuesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

SeeAlsoThmutilSchema

Page 967: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HypertextElement(ThmutilExtension)

DescriptionDefinesatextblockwithsupportforHTML<a>tags.

WindowsInstallerreferencesNone

ParentsPage,Theme

InnerText(xs:string)Texttodisplayasthelink.UseHTML<ahref="URL">tocreatealink.

ChildrenNone

Attributes

Name Type Description Required

FontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontforthecontrol.

Yes

Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthe

Yes

Page 968: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

windowminusthevalue.

HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.

HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.

Name String Optionalnameforthecontrol.

TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.

Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.

Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindow

Yes

Page 969: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

minusthevalue.

X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.

Yes

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

Yes

SeeAlsoThmutilSchema

Page 970: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ImageElement(ThmutilExtension)

DescriptionDefinesanimage.

WindowsInstallerreferencesNone

ParentsBillboard,ImageList,Page,Theme

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindowminusthevalue.

Yes

HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.

HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.

ImageFile String Relativepathtoanimagefile.MutuallyexclusivewithImageResourceandSourceXandSourceY

Page 971: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

attributes.

ImageResource String Identifierthatreferencesanimageresourceinthemodule.MutuallyexclusivewithImageFileandSourceXandSourceYattributes.

Name String Optionalnameforthecontrol.

TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.

Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.

Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.

Yes

X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.

Yes

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negative

Yes

Page 972: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

valuesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

SeeAlsoThmutilSchema

Page 973: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ImageListElement(ThmutilExtension)

DescriptionListofimageswhichcanbesharedbetweenmultiplecontrols.

WindowsInstallerreferencesNone

ParentsTheme

InnerTextNone

ChildrenChoiceofelements(min:1,max:unbounded)

Image(min:1,max:unbounded)

Attributes

Name Type Description Required

Name String NameoftheImageList,tobereferencedbyothercontrols.

SeeAlsoThmutilSchema

Page 974: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ListViewElement(ThmutilExtension)

DescriptionDefinesalistview.

WindowsInstallerreferencesNone

ParentsPage,Theme

InnerTextNone

ChildrenChoiceofelements(min:1,max:unbounded)

Column(min:1,max:unbounded)

Attributes

Name Type Description

FontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthedefaultfontfortheListView.

Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindowminusthevalue.

HexExtendedStyle HexBinary Hexadecimalextendedwindowstyle.

HexStyle HexBinary Hexadecimalwindow

Page 975: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

styleforthecontrol.

HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.

ImageList String ThenameoftheImageListtoassigntothislistviewwithtypeLVSIL_NORMAL.

ImageListGroupHeader String ThenameoftheImageListtoassigntothislistviewwithtypeLVSIL_GROUPHEADER.

ImageListSmall String ThenameoftheImageListtoassigntothislistviewwithtypeLVSIL_SMALL.

ImageListState String ThenameoftheImageListtoassigntothislistviewwithtypeLVSIL_STATE.

Name String Optionalnameforthecontrol.

TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.

Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.

Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.

X Int Xcoordinateforthe

Page 976: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

controlfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

SeeAlsoThmutilSchema

Page 977: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PageElement(ThmutilExtension)

DescriptionNamedsetofcontrolsthatcanbeshownandhiddencollectively.

WindowsInstallerreferencesNone

ParentsTheme

InnerTextNone

ChildrenChoiceofelements(min:1,max:unbounded)

Billboard(min:1,max:unbounded)Button(min:1,max:unbounded)Checkbox(min:1,max:unbounded)Combobox(min:1,max:unbounded)Editbox(min:1,max:unbounded)Hyperlink(min:1,max:unbounded)Hypertext(min:1,max:unbounded)Image(min:1,max:unbounded)ListView(min:1,max:unbounded)Progressbar(min:1,max:unbounded)Richedit(min:1,max:unbounded)Static(min:1,max:unbounded)Tab(min:1,max:unbounded)Text(min:1,max:unbounded)TreeView(min:1,max:unbounded)

Attributes

Name Type Description Required

Page 978: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Name String Optionalnameforthepage.

SeeAlsoThmutilSchema

Page 979: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ProgressbarElement(ThmutilExtension)

DescriptionDefinesaprogressbar.

WindowsInstallerreferencesNone

ParentsPage,Theme

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindowminusthevalue.

Yes

HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.

HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.

ImageFile String Relativepathtoanimagefileforthecontrol.Theimage

Page 980: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

Name String Optionalnameforthecontrol.

TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.

Page 981: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.

Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.

Yes

X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.

Yes

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

Yes

SeeAlsoThmutilSchema

Page 982: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RicheditElement(ThmutilExtension)

DescriptionDefinesaricheditcontrol.

WindowsInstallerreferencesNone

ParentsPage,Theme

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

FontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontforthecontrol.

Yes

Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindow

Yes

Page 983: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

minusthevalue.

HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.

HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.

Name String Optionalnameforthecontrol.

TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.

Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.

Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthe

Yes

Page 984: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

value.

X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.

Yes

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

Yes

SeeAlsoThmutilSchema

Page 985: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoThmutilSchema

Page 986: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

StaticElement(ThmutilExtension)

DescriptionDefinesastraightline.

WindowsInstallerreferencesNone

ParentsPage,Theme

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindowminusthevalue.

Yes

HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.

HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.

Name String Optionalnameforthecontrol.

TabStop YesNoType Specifieswhetherthecontrolispartofthe

Page 987: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

tabsequenceofcontrols.

Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.

Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.

Yes

X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.

Yes

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

Yes

SeeAlsoThmutilSchema

Page 988: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

TabElement(ThmutilExtension)

DescriptionDefinesatab.

WindowsInstallerreferencesNone

ParentsPage,Theme

InnerText(xs:string)Captionofthetab.

ChildrenNone

AttributesNone

SeeAlsoThmutilSchema

Page 989: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

TextElement(ThmutilExtension)

DescriptionDefinestext.

WindowsInstallerreferencesNone

ParentsPage,Theme

InnerText(xs:string)Texttodisplay.

ChildrenNone

Attributes

Name Type Description Required

Center YesNoType Specifieswhetherthetextshouldbecenteredhorizontallyinthewidthofthecontrol.Defaultis"no".

DisablePrefix YesNoType Bydefaultampersands(&)inthetextwillunderlinethenextcharacterandtreatitasanaccelerator

Page 990: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

key.Setthisattributeto"yes"todisablethatbehavior.Defaultis"no".

FontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontforthecontrol.

Yes

Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindowminusthevalue.

Yes

HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.

HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.

Name String Optionalnameforthe

Page 991: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

control.

TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.

Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.

Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.

Yes

X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.

Yes

Page 992: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

Yes

SeeAlsoThmutilSchema

Page 993: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ThemeElement(ThmutilExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsNone

InnerTextNone

ChildrenChoiceofelements(min:1,max:unbounded)

Font(min:1,max:unbounded)ImageList(min:1,max:unbounded)Page(min:1,max:unbounded)Window(min:1,max:unbounded)Choiceofelements(min:1,max:unbounded)

Billboard(min:1,max:unbounded)Button(min:1,max:unbounded)Checkbox(min:1,max:unbounded)Combobox(min:1,max:unbounded)Editbox(min:1,max:unbounded)Hyperlink(min:1,max:unbounded)Hypertext(min:1,max:unbounded)Image(min:1,max:unbounded)ListView(min:1,max:unbounded)Progressbar(min:1,max:unbounded)Richedit(min:1,max:unbounded)Static(min:1,max:unbounded)Tab(min:1,max:unbounded)

Page 994: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Attributes

Name Type Description Required

ImageFile String Relativepathtoanimagefilethatcanserveasasinglesourceforimagesintherestofthetheme.ThisimageisreferencedbycontrolsusingtheSourceXandSourceYattributes.

SeeAlsoThmutilSchema

Page 995: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

TreeViewElement(ThmutilExtension)

DescriptionDefinesatreeview.

WindowsInstallerreferencesNone

ParentsPage,Theme

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

AlwaysShowSelect Specifieswhethertherowalwaysappearsselectedevenwhenthetreeviewhaslostfocus.

asButtons Specifieswhetherthetreeviewwillshowbuttons.

EnableDragDrop Specifieswhetherdraganddropisenabledforthetreeview.

FullRowSelect Specifieswhetheranentirerowisselected

Page 996: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

forthetreeview.

HasLines Specifieswhetherlinesappearforalltreeviewitems.

Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindowminusthevalue.

Yes

HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.

HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.

LinesAtRoot Specifieswhethertherootnodeshavelinesbesidethem.

Name String Optionalnameforthecontrol.

TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.

Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.

Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.

Yes

Page 997: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.

Yes

Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.

Yes

SeeAlsoThmutilSchema

Page 998: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WindowElement(ThmutilExtension)

DescriptionDefinestheoveralllookofthemainwindow.

WindowsInstallerreferencesNone

ParentsTheme

InnerText(xs:string)Captionforthewindow.

ChildrenNone

Attributes

Name Type Description Required

AutoResize YesNoType SpecifieswhethertheThmUtildefaultwindowprocshouldprocessWM_SIZEandWM_SIZINGevents.

FontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthedefaultfontforthewindow.

Height PositiveInteger Heightofthewindow.

HexStyle HexBinary Hexadecimal

Page 999: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

windowstyle.Ifthisisnotspecifiedthedefaultvalueis:WS_OVERLAPPED|WS_VISIBLE|WS_MINIMIZEBOX|WS_SYSMENU.IfSourceXandSourceYaregreaterthan0,thenWS_OVERLAPPEDisreplacedwithWS_POPUP.

IconFile String Relativepathtoaniconfileforthewindow.MutuallyexclusivewithIconResourceandSourceXandSourceYattributes.

IconResource String Identifierthatreferencesiconresourceinthemoduleforthewindow.MutuallyexclusivewithIconFileandSourceXandSourceYattributes.

MinimumHeight PositiveInteger Minimumheightofthewindow.OnlyfunctionsifAutoResizeisenabled.

MinimumWidth PositiveInteger Minimumwidthofthewindow.Only

Page 1000: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

functionsifAutoResizeisenabled.

SourceX NonNegativeInteger XoffsetofthewindowbackgroundintheTheme/@ImageFile.MutuallyexclusivewithIconFileandIconResource.

SourceY NonNegativeInteger YoffsetofthewindowbackgroundintheTheme/@ImageFile.MutuallyexclusivewithIconFileandIconResource.

Width PositiveInteger Widthofthewindow.

SeeAlsoThmutilSchema

Page 1001: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CloseApplicationElement(UtilExtension)

DescriptionClosesapplicationsorschedulesarebootifapplicationcannotbeclosed.

WindowsInstallerreferencesNone

ParentsFragment,Module,Product

InnerText(xs:string)Conditionthatdeterminesiftheapplicationshouldbeclosed.Mustbeblankorevaluatetotruefortheapplicationtobescheduledforclosing.

ChildrenNone

Attributes

Name Type Description

CloseMessage YesNoType Optionallysendsaclosemessagetotheapplication.Defaultisno.

Description String Descriptiontoshowifapplicationisrunningandneedstobeclosed.

ElevatedCloseMessage YesNoType Optionallysendsaclosemessagetotheapplicationfromdefferedactionwithoutimpersonation.Defaultisno.

Page 1002: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ElevatedEndSessionMessage YesNoType SendsWM_QUERYENDSESSIONthenWM_ENDSESSIONmessagestotheapplicationfromadefferedactionwithoutimpersonation.Defaultis"no".

EndSessionMessage YesNoType SendsWM_QUERYENDSESSIONthenWM_ENDSESSIONmessagestotheapplication.Defaultis"no".

Id String Identifierforthecloseapplication(primarykey).IftheIdisnotspecified,onewillbegenerated.

PromptToContinue YesNoType Whenthisattributeissetto"yes",theuserwillbepromptedwhentheapplicationisstillrunning.TheDescriptionattributemustcontainthemessagetodisplayintheprompt.Thepromptoccursbeforeexecutinganyoftheotheroptionsandgivestheoptionsto"Abort","Retry",or"Ignore".Abortwillcanceltheinstall.Retrywillattemptthecheckagainandiftheapplicationisstillrunning,promptagain."Ignore"willcontinueandexecuteanyotheroptionssetontheCloseApplicationelement.Thedefaultis"no".

Page 1003: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Property String Propertytobesetifapplicationisstillrunning.UsefulforlaunchconditionsortoconditionalizecustomUItoaskusertoshutdownapps.

RebootPrompt YesNoType Optionallypromptsforrebootifapplicationisstillrunning.Thedefaultis"yes".TheTerminateProcessattributemustbe"no"ornotspecifiedifthisattributeis"yes".

Sequence Integer Optionallyorderstheapplicationstobeclosed.

Target String Nameoftheexectuabletobeclosed.Thisshouldonlybethefilename.

TerminateProcess Integer Attemptstoterminatesprocessandreturnthespecifiedexitcodeifapplicationisstillrunningaftersendinganyrequestedcloseand/orendsessionmessages.Ifthisattributeisspecified,theRebootPromptattributemustbe"no".Thedefaultis"no".

Timeout Integer Optionaltimeinsecondstowaitfortheapplicationtoexitafterthecloseand/orendsessionmessages.Iftheapplicationisstillrunningafterthetimeout

Page 1004: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

thentheRebootPromptorTerminateProcessattributeswillbeconsidered.Thedefaultvalueis"5"seconds.

SeeAlsoUtilSchema

Page 1005: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1006: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1007: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ComponentSearchRefElement(UtilExtension)

DescriptionReferencesaComponentSearch.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

SeeAlsoUtilSchema

Page 1008: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1009: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

'exists'.

Variable String Nameofthevariableinwhichtoplacetheresultofthesearch.

Yes

SeeAlsoUtilSchema

Page 1010: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DirectorySearchRefElement(UtilExtension)

DescriptionReferencesaDirectorySearch.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

SeeAlsoUtilSchema

Page 1011: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1012: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

yourParameterFilehereandtheparameterFileNameattributeofthealltheprovidersinthemanifestwillbeupdatedwiththepathbeforeitisregistered.

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

SeeAlsoUtilSchema

Page 1013: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1014: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1015: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SeeAlsoUtilSchema

Page 1016: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1017: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ofthefollowing:exists

Savestrueifamatchingfileisfound;falseotherwise.

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

Variable String Nameofthevariableinwhichtoplacetheresultofthesearch.

Yes

SeeAlsoUtilSchema

Page 1018: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

FileSearchRefElement(UtilExtension)

DescriptionReferencesaFileSearch.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

SeeAlsoUtilSchema

Page 1019: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1020: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1021: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1022: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1023: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

GroupRefElement(UtilExtension)

DescriptionUsedtojoinausertoagroup

WindowsInstallerreferencesNone

ParentsUser

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

SeeAlsoUtilSchema

Page 1024: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

InternetShortcutElement(UtilExtension)

DescriptionCreatesashortcuttoaURL.

WindowsInstallerreferencesNone

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String UniqueidentifierinyourinstallationpackageforthisInternetshortcut.

Yes

Directory String IdentifierreferencetoDirectoryelementwhereshortcutistobecreated.Thisattribute'svaluedefaultstotheparentComponentdirectory.

IconFile String Iconfilethatshouldbedisplayed.Notethatthisisaformattedfield,soyoucanuse[#fileId]syntaxtorefertoafilebeinginstalled(usingthefile:protocol).

Page 1025: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

IconIndex Integer Indexoftheiconbeingreferenced

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

Yes

Target String URLthatshouldbeopenedwhentheuserselectstheshortcut.WindowsopenstheURLintheappropriatehandlerfortheprotocolspecifiedintheURL.Notethatthisisaformattedfield,soyoucanuse[#fileId]syntaxtorefertoafilebeinginstalled(usingthefile:protocol).

Yes

Type Enumeration Whichtypeofshortcutshouldbecreated.Thisattribute'svaluemustbeoneofthefollowing:url

Creates.urlfilesusingIUniformResourceLocatorW.

linkCreates.lnkfilesusingIShellLinkW(default).

HowTosandExamplesHowTo:Createashortcuttoawebpage

SeeAlsoUtilSchema

Page 1026: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PerfCounterElement(UtilExtension)

DescriptionThiselementhasbeendeprecated;pleaseusethePerformanceCounterelementinstead.

WindowsInstallerreferencesNone

ParentsFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Name String

SeeAlsoUtilSchema

Page 1027: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PerfCounterManifestElement(UtilExtension)

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

WindowsInstallerreferencesNone

ParentsFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

ResourceFileDirectory String Thedirectorythatholdstheresourcefileoftheprovidersintheperfmoncountermanifest.Oftentheresourcefilepathcannotbedetermineduntilsetuptime.Putthedirectoryhereandduringperfmonmanifestregistrtionthe

Page 1028: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

pathwillbeupdatedintheregistry.Ifnotspecified,Perfmonwilllookfortheresourcefileinthesamedirectoryoftheperfmoncountermanifestfile.

SeeAlsoUtilSchema

Page 1029: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1030: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1031: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

theLibraryDLLcalledwhenopeningtheperformancecounter.defaultis"OpenPerformanceData"whichshouldbeusedforallmanagedcodeperformancecounters.

SeeAlsoUtilSchema

Page 1032: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PerformanceCounterElement(UtilExtension)

DescriptionCreatesaperformancecounterinaperformancecategory.

WindowsInstallerreferencesNone

ParentsPerformanceCategory

InnerTextNone

ChildrenNone

Attributes

Name Type Description

Help String Optionalhelptextfortheperformancecounter.

Language PerformanceCounterLanguageType Languageforthepeformancecounternameandhelp.ThedefaultistousetheparentPerformanceCategoryelement'sDefaultLanguageattribute.

Name String Namefortheperformancecounter.

Page 1033: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Type PerformanceCounterTypesType Typeoftheperformancecounter.

SeeAlsoUtilSchema

Page 1034: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PermissionExElement(UtilExtension)

DescriptionSetsACLsonFile,Registry,CreateFolder,orServiceInstall.WhenunderaRegistryelement,thiscannotbeusediftheActionattribute'svalueisremoveorremoveKeyOnInstall.ThiselementhasnoIdattribute.Thetableandkeyaretakenfromtheparentelement.

WindowsInstallerreferencesNone

ParentsCreateFolder,File,Registry,RegistryKey,RegistryValue

InnerTextNone

ChildrenNone

Attributes

Name Type Description

Append YesNoType

ChangePermission YesNoType

CreateChild YesNoType Foradirectory,therighttocreateasubdirectory.Onlyvalidundera'CreateFolder'parent.

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

CreateLink YesNoType

CreateSubkeys YesNoType

Page 1035: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Delete YesNoType

DeleteChild YesNoType Foradirectory,therighttodeleteadirectoryandallthefilesitcontains,includingread-onlyfiles.Onlyvalidundera'CreateFolder'parent.

Domain String

EnumerateSubkeys YesNoType

Execute YesNoType

GenericAll YesNoType

GenericExecute YesNoType

GenericRead YesNoType specifyingthiswillfailtograntreadaccess

GenericWrite YesNoType

Notify YesNoType

Read YesNoType

ReadAttributes YesNoType

ReadExtendedAttributes YesNoType

ReadPermission YesNoType

ServiceChangeConfig YesNoType RequiredtocalltheChangeServiceConfigorChangeServiceConfig2functiontochangetheserviceconfiguration.Onlyvalidundera'ServiceInstall'parent.

ServiceEnumerateDependents YesNoType RequiredtocalltheEnumDependentServicesfunctiontoenumeratealltheservicesdependentontheservice.validundera'ServiceInstall'

Page 1036: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

parent.

ServiceInterrogate YesNoType RequiredtocalltheControlServicefunctiontoasktheservicetoreportitsstatusimmediately.Onlyvalidundera'ServiceInstall'parent.

ServicePauseContinue YesNoType RequiredtocalltheControlServicefunctiontopauseorcontinuetheservice.Onlyvalidundera'ServiceInstall'parent.

ServiceQueryConfig YesNoType RequiredtocalltheQueryServiceConfigandQueryServiceConfig2functionstoquerytheserviceconfiguration.Onlyvalidundera'ServiceInstall'parent.

ServiceQueryStatus YesNoType RequiredtocalltheQueryServiceStatusfunctiontoasktheservicecontrolmanageraboutthestatusoftheservice.undera'ServiceInstall'parent.

ServiceStart YesNoType RequiredtocalltheStartServicefunctiontostarttheservice.validundera'ServiceInstall'parent.

ServiceStop YesNoType RequiredtocalltheControlServicefunctiontostoptheservice.validundera'ServiceInstall'parent.

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

Synchronize YesNoType

TakeOwnership YesNoType

Page 1037: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

User String

Write YesNoType

WriteAttributes YesNoType

WriteExtendedAttributes YesNoType

SeeAlsoUtilSchema

Page 1038: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ProductSearchElement(UtilExtension)

DescriptionDescribesaproductsearch.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

After String Idofthesearchthatthisoneshouldcomeafter.

Condition String Conditionforevaluatingthesearch.Ifthisevaluatestofalse,thesearchisnotexecutedatall.

Guid String TheGuidattributehasbeendeprecated;usetheProductCodeorUpgradeCodeattributeinstead.Ifthisattributeisused,itisassumedtobeaProductCode.

Page 1039: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Id String Idofthesearchfororderinganddependency.

ProductCode String TheProductCodetouseforthesearch.ThisattributemustbeomittedifUpgradeCodeisspecified.

Result Enumeration Ratherthansavingtheproductversionintothevariable,aProductSearchcansaveanotherattributeofthematchingproductinstead.Thisattribute'svaluemustbeoneofthefollowing:version

Savestheversionofamatchingproductiffound;0.0.0.0otherwise.Thisisthedefault.

languageSavesthelanguageofamatchingproductiffound;emptyotherwise.

stateSavesthestateoftheproduct:advertised(1),absent(2),orlocallyinstalled(5).

assignmentSavestheassignmenttypeoftheproduct:per-user(0),orper-machine

Page 1040: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

(1).

UpgradeCode String TheUpgradeCodetouseforthesearch.ThisattributemustbeomittedifProductCodeisspecified.Notethatifmultipleproductsarefound,thehighestversionedproductwillbeusedfortheresult.

Variable String Nameofthevariableinwhichtoplacetheresultofthesearch.

Yes

SeeAlsoUtilSchema

Page 1041: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ProductSearchRefElement(UtilExtension)

DescriptionReferencesaProductSearch.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

SeeAlsoUtilSchema

Page 1042: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1043: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Returnstheunformattedvaluedirectlyfromtheregistry.Forexample,aREG_DWORDvalueof'1'isreturnedas'1',not'#1'.

compatibleReturnsthevalueformattedasWindowsInstallerwould.Forexample,aREG_DWORDvalueof'1'isreturnedas'#1',not'1'.

Id String Idofthesearchfororderinganddependency.

Key String Keytosearchfor.

Result Enumeration Ratherthansavingthematchingregistryvalueintothevariable,aRegistrySearchcansaveanattributeofthematchingentryinstead.attribute'svaluemustbeoneofthefollowing:exists

Savestrueifamatchingregistryentryisfound;falseotherwise.

valueSavesthevalueoftheregistrykeyinthevariable.Thisisthedefault.

Root Enumeration Registryroothivetosearchunder.Thisattribute'svaluemustbeoneofthefollowing:

Page 1044: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HKLMHKEY_LOCAL_MACHINE

HKCUHKEY_CURRENT_USER

HKCRHKEY_CLASSES_ROOT

HKUHKEY_USERS

Value String OptionalvaluetosearchforunderthegivenKey.

Variable String Nameofthevariableinwhichtoplacetheresultofthesearch.

Win64 YesNoType Instructsthesearchtolookinthe64-bitregistrywhenthevalueis'yes'.Whenthevalueis'no',thesearchlooksinthe32-bitregistry.Thedefaultvalueis'no'.

SeeAlsoUtilSchema

Page 1045: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RegistrySearchRefElement(UtilExtension)

DescriptionReferencesaRegistrySearch.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

SeeAlsoUtilSchema

Page 1046: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RemoveFolderExElement(UtilExtension)

DescriptionRemoveafolderandallcontainedfilesandfoldersiftheparentcomponentisselectedforinstallationorremoval.ThefoldermustbespecifiedinthePropertyattributeasthenameofapropertythatwillhaveavaluethatresolvestothefullpathofthefolderbeforetheCostInitializeaction.NotethatDirectoryidscannotbeused.Formoredetails,seetheRemarks.

WindowsInstallerreferencesRemoveFileTable

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Primarykeyusedtoidentifythisparticularentry.Ifthisisnotspecified,astableidentifierwillbegeneratedatcompiletimebasedontheotherattributes.

On Enumeration Thisvaluedetermineswhenthefoldermayberemoved.Thisattribute'svaluemustbeoneofthefollowing:install

Page 1047: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Removesthefolderonlywhentheparentcomponentisbeinginstalled(msiInstallStateLocalormsiInstallStateSource).

uninstallDefault:Removesthefolderonlywhentheparentcomponentisbeingremoved(msiInstallStateAbsent).

bothRemovesthefolderwhentheparentcomponentisbeinginstalledorremoved.

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

Remarks

ThecustomactionthatimplementsRemoveFolderExdoessobywritingtemporaryrowstotheRemoveFiletableforeachsubfolderof

Page 1048: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Aneasyworkaroundforatypicalusecaseofremovingafolderduringuninstallistowritethedirectorypathtotheregistryandtoloaditduringuninstall.SeeTheWiXtoolset's"RememberProperty"patternforanexample.

Ifyouusecustomactionstosetproperties,ensurethattheyarescheduledbeforetheWixRemoveFoldersExcustomaction.

SeeAlsoUtilSchema

Page 1049: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RestartResourceElement(UtilExtension)

DescriptionRegistersaresourcewiththeRestartManager.

WindowsInstallerreferencesNone

ParentsComponent,Fragment,Module,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Theuniqueidentifierforthisresource.Auniqueidentifierwillbegeneratedautomaticallyifnotspecified.

Path String ThefullpathtotheprocessmoduletoregisterwiththeRestartManager.Thiscanbeaformattedvaluethatresolvestoafullpath.

ProcessName String ThenameofaprocesstoregisterwiththeRestartManager.Thiscanbeaformattedvaluethatresolvestoaprocessname.

Page 1050: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ServiceName String ThenameofaWindowsservicetoregisterwiththeRestartManager.Thiscanbeaformattedvaluethatresolvestoaservicename.

SeeAlsoUtilSchema

Page 1051: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1052: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

*ActionTypeattributesis"runCommand",thisspecifiesthecommandtorunwhendoingso.Thisvalueisformatted.

RebootMessage String Ifanyofthethree*ActionTypeattributesis"reboot",thisspecifiesthemessagetobroadcasttoserverusersbeforedoingso.

ResetPeriodInDays Integer Numberofdaysafterwhichtoresetthefailurecounttozeroiftherearenofailures.

RestartServiceDelayInSeconds Integer Ifanyofthethree*ActionTypeattributesis"restart",thisspecifiesthenumberofsecondstowaitbeforedoingso.

Page 1053: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SecondFailureActionType Enumeration Actiontotakeonthesecondfailureoftheservice.Thisattribute'svaluemustbeoneofthefollowing:none

reboot

restart

runCommand

Yes

ServiceName String RequiredifnotunderaServiceInstallelement.

ThirdFailureActionType Enumeration Actiontotakeonthethirdfailureoftheservice.Thisattribute'svaluemustbeoneofthefollowing:none

reboot

restart

runCommand

Yes

RemarksNestingaServiceConfigelementunderaServiceInstallelementwillresultintheservicebeinginstalledtobeconfigured.

NestingaServiceConfigelementunderacomponentelementwillresultinanalreadyinstalledservicetobeconfigured.IftheservicedoesnotexistpriortotheinstalloftheMSIpackage,the

Page 1054: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

installwillfail.

SeeAlsoUtilSchema

Page 1055: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1056: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoUtilSchema

Page 1057: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoUtilSchema

Page 1058: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1059: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

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

SeeAlsoUtilSchema

Page 1060: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DiskIdType(SimpleType)

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

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

SeeAlsoUtilSchema

Page 1061: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoUtilSchema

Page 1062: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1063: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

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

SeeAlsoUtilSchema

Page 1064: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoUtilSchema

Page 1065: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LocalizableInteger(SimpleType)

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

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

SeeAlsoUtilSchema

Page 1066: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1067: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1068: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1069: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

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

SeeAlsoUtilSchema

Page 1070: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoUtilSchema

Page 1071: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoUtilSchema

Page 1072: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1073: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VersionType(SimpleType)

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

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

SeeAlsoUtilSchema

Page 1074: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1075: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1076: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoAlwaysType(SimpleType)

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

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoUtilSchema

Page 1077: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoButtonType(SimpleType)

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

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoUtilSchema

Page 1078: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoUtilSchema

Page 1079: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoUtilSchema

Page 1080: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1081: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Disabled YesNoType Theaccountisdisabled.EquivalenttoUF_ACCOUNTDISABLE.

Domain String AFormattedstringthatcontainsthelocalmachineorActiveDirectorydomainfortheuser.

FailIfExists YesNoType Indicatesiftheinstallshouldfailiftheuseralreadyexists.

LogonAsBatchJob YesNoType Indicateswhetherornottheusercanlogonasabatchjob.Usercreationcanbeskippedifallthatisdesiredistosetthisaccessrightontheuser.

LogonAsService YesNoType Indicateswhetherornottheusercanlogonasaserivce.Usercreationcanbeskippedifallthatisdesiredistosetthisaccessrightontheuser.

Name String AFormattedstringthatcontainsthenameoftheuseraccount.

Password String UsuallyaPropertythatispassedinonthecommand-linetokeepitmoresecure.

PasswordExpired YesNoType Indicateswhethertheusermustchangetheirpasswordontheirfirstlogin.

PasswordNeverExpires YesNoType Theaccount'spasswordneverexpires.EquivalenttoUF_DONT_EXPIRE_PASSWD.

RemoveOnUninstall YesNoType Indicateswhethertheuseraccountshouldberemovedorleftbehindonuninstall.

UpdateIfExists YesNoType Indicatesiftheuseraccount

Page 1082: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

propertiesshouldbeupdatediftheuseralreadyexists.

Vital YesNoType Indicateswhetherfailuretocreatetheuseroraddtheusertoagroupfailstheinstallation.Thedefaultvalueis"yes".

SeeAlsoUtilSchema,Group,GroupRef

Page 1083: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1084: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

'ElementPath','Action','Node',and'On'attributesmustbeomitted.

ElementPath String TheXPathoftheparentelementbeingmodified.Notethatthisisaformattedfieldandtherefore,squarebracketsintheXPathmustbeescaped.Inaddition,XPathsallowbackslashestobeusedtoescapecharacters,soifyouintendtoincludeliteralbackslashes,youmustescapethemaswellbydoublingtheminthisattribute.ThestringisformattedbyMSIfirst,andtheresultisconsumedastheXPath.

File String Pathofthe.xmlfiletoconfigure.

Yes

Name String NameofXMLnodetoset/addtothespecifiedelement.Notsettingthis

Page 1085: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

attributecausestheelement'stextvaluetobeset.Otherwisethisspecifiedtheattributenamethatisset.

Node Enumeration Thisattribute'svaluemustbeoneofthefollowing:element

value

document

On Enumeration Thisattribute'svaluemustbeoneofthefollowing:install

uninstall

PreserveModifiedDate YesNoType Specifieswheterornotthemodificationshouldpreservethemodifieddate.Preservingthemodifieddatewillallowthefiletobepatchedifnoothermodificationshavebeenmade.

Sequence Integer Specifiesthe

Page 1086: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

orderinwhichthemodificationistobeattemptedontheXMLfile.Itisimportanttoensurethatnewelementsarecreatedbeforeyouattempttoaddanattributetothem.

Value String Thevaluetobewritten.SeetheFormattedtopicforinformationhowtoescapesquarebracketsinthevalue.

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

Page 1087: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

usedtoescapecharacters,soifyouintendtoincludeliteralbackslashes,youmustescapethemaswellbydoublingtheminthisattribute.ThestringisformattedbyMSIfirst,andtheresultisconsumedastheXPath.

SeeAlsoUtilSchema

Page 1088: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1089: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

deleteValueDeletesavaluefromtheelementspecifiedintheElementPath.IfNameisspecified,theattributewiththatnameisdeleted.IfNameisnotspecified,thetextvalueof

Page 1090: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

theelementspecifiedintheElementPathisdeleted.TheValueattributeisignoredifdeleteValueistheactionspecified.

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

bulkSetValueSetsallthevaluesinthe

Page 1091: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

Yes

Page 1092: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

theminthisattribute.ThestringisformattedbyMSIfirst,andtheresultisconsumedastheXPath.

File String Pathofthe.xmlfiletoconfigure.

Yes

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

Permanent YesNoType Specifieswhetherornotthemodificationshouldberemovedonuninstall.ThishasnoeffectonuninstalliftheactionwasdeleteValue.

PreserveModifiedDate YesNoType Specifieswheterornotthemodificationshouldpreservethemodifieddate.

Page 1093: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Preservingthemodifieddatewillallowthefiletobepatchedifnoothermodificationshavebeenmade.

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

XSLPattern

Sequence Integer SpecifiestheorderinwhichthemodificationistobeattemptedontheXMLfile.Itisimportanttoensurethatnewelementsarecreatedbeforeyouattempttoaddanattributetothem.

Value String Thevaluetobewritten.SeetheFormattedtopicforinformationhowtoescapesquarebracketsinthe

Page 1094: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

value.

SeeAlsoUtilSchema

Page 1095: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1096: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

customactions.Helpredistributablemergemoduleswillberequired.Usethiswhenbuildingamergemodule.

SeeAlsoVsSchema

Page 1097: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1098: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1099: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

isinthe"root"ofthesamplesdirectoryforthisHelpFile.

Search String KeyforHxQ(Query)file.

SuppressCustomActions YesNoType SuppresslinkingHelpregistrationcustomactions.Helpredistributablemergemoduleswillberequired.Usethiswhenbuildingamergemodule.

SeeAlsoVsSchema

Page 1100: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1101: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1102: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SeeAlsoVsSchema

Page 1103: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HelpFilterRefElement(VsExtension)

DescriptionCreateareferencetoaHelpFileelementinanotherFragment.

WindowsInstallerreferencesNone

ParentsHelpCollection

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String PrimaryKeyforHelpFilter. Yes

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

SeeAlsoVsSchema

Page 1104: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PlugCollectionIntoElement(VsExtension)

DescriptionPluginforHelpNamespace.

WindowsInstallerreferencesNone

ParentsHelpCollection

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Attributes String KeyforHxA(Attributes)fileofchildnamespace.

SuppressExternalNamespaces YesNoType SuppresslinkingVisualStudioHelpnamespaces.Helpredistributablemergemoduleswillberequired.Usethiswhenbuildingamergemodule.

Page 1105: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

TableOfContents String KeyforHxTfileofchildnamespace.

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

Yes

TargetFeature String Keyforthefeatureparentofthishelpcollection.Requiredonlywhenpluggingintoexternalnamespaces.

TargetTableOfContents String KeyforHxTfileofparentnamespacethatnowincludesthenewchildnamespace.

Page 1106: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SeeAlsoVsSchema

Page 1107: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VersionType(SimpleType)

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

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

SeeAlsoVsSchema

Page 1108: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoVsSchema

Page 1109: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VsixPackageElement(VsExtension)

DescriptionThiselementprovidesthemetdatarequiredtoinstall/uninstallafileasaVSIXPackage.TheVSIXpackagefilewillbeinstalledaspartoftheMSIthenpassedtotheVSIXinstallertoinstalltheVSIXpackage.Toavoidtheduplication,simplyusetheMSItoinstalltheVSIXpackageitself.

WindowsInstallerreferencesNone

ParentsComponent,File

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

File String Referencetofileidentifer.ThisattributeisrequiredwhentheelementisnotachildofaFileelementandisinvalidwhentheelementisachildoftheFileelement.

PackageId String IdentityoftheVSIXpackage

Yes

Page 1110: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

peritsinternalmanifest.IfthisvalueisnotcorrecttheVSIXpackagewillnotcorrectlyuninstall.

Permanent YesNoType IndicateswhethertheVSIXpackageisuninstalledwhentheparentComponentisuninstalled.Thedefaultis'no'.

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

Page 1111: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ultimate,vbExpress,vcExpress,vcsExpress,vwdExpress

TargetVersion VersionType SpecifiestheversionofVisualStudioinwhichtoregistertheextension.ThisattributeisrequirediftheTargetattributeisspecified.

Vital YesNoType IndicateswhetherfailuretoinstalltheVSIXpackagecausestheinstallationtorollback.Thedefaultis'yes'.

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

Page 1112: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

recommendedthatthisattributeis*not*used.

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

SeeAlsoVsSchema

Page 1113: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1114: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

AttributesNone

SeeAlsoWixSchema

Page 1115: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1116: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

AttributesNone

SeeAlsoWixSchema

Page 1117: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1118: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1119: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

AllElement

DescriptionUsedonlyforPatchFamiliestoincludeallchangesbetweenthebaselineandupgradedpackagesinapatch.

WindowsInstallerreferencesNone

ParentsPatchFamily

Remarks

Warning:thisisintendedfortestingpurposesonly.Shippingapatchwithallchangesnegatesthebenefitsofusingpatchfamiliesforincludingonlyspecificchanges.

BecausechangingtheProductCodeisnotsupportedinapatch,theProductCodepropertyisautomaticallyremovedfromthetransform.

SeeAlsoWixSchema

Page 1120: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

AllocateRegistrySpaceElement

DescriptionEnsurestheneededamountofspaceexistsintheregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesAllocateRegistrySpaceAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1121: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

AppDataElement

DescriptionOptionalwayfordefiningAppData,generallyusedforcomplexCDATA.

WindowsInstallerreferencesNone

ParentsCategory

SeeAlsoWixSchema

Page 1122: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1123: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

AppIdtablerow.Setthisvalueto'no'inordertogenerateRegistryrowsthatperformsimilarregistration(withouttheoftenproblematicWindowsInstalleradvertisingbehavior).

Description String SetthisvaluetothedescriptionoftheAppId.ItcanonlybespecifiedwhentheAppIdisnotbeingadvertised.

DllSurrogate String SetthisvaluetospecifythattheclassisaDLLthatistobeactivatedinasurrogateEXEprocess,andthesurrogateprocesstobeusedisthepathofasurrogateEXEfilespecifiedbythevalue.

LocalService String SetthisvaluetothenameofaservicetoallowtheobjecttobeinstalledasaWin32service.

RemoteServerName String Setthisvaluetothenameoftheremoteservertoconfigure

Page 1124: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

theclienttorequesttheobjectberunataparticularmachinewheneveranactivationfunctioniscalledforwhichaCOSERVERINFOstructureisnotspecified.

RunAsInteractiveUser YesNoType Setthisvalueto'yes'toconfigureaclasstorunundertheidentityoftheusercurrentlyloggedonandconnectedtotheinteractivedesktopwhenactivatedbyaremoteclientwithoutbeingwrittenasaWin32service.

ServiceParameters String SetthisvaluetotheparameterstobepassedtoaLocalServiceoninvocation.

RemarksWhenbeingusedinunadvertisedmode,theattributesintheAppIdelementcorrespondtoregistrykeysasfollows(valuesthatcanbespecifiedinauthoringareinbold):Id

InGeneral[HKCR\AppID\{Id}]

SpecificExample

Page 1125: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

[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 1126: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1127: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ApprovedExeForElevationElement

DescriptionProvidesinformationaboutan.exesothattheBAcanrequesttheenginetorunitelevatedfromanysecurelocation.

WindowsInstallerreferencesNone

ParentsBundle

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifieroftheApprovedExeForElevationelement.

Yes

Key String Thekeypath.Forsecuritypurposes,therootkeywillbeHKLMandVariablesarenotsupported.

Yes

Value String Thevaluename.Forsecuritypurposes,Variablesarenotsupported.

Win64 YesNoType Instructsthesearchtolookinthe64-bitregistrywhenthevalueis'yes'.Whenthevalueis'no',thesearchlooksinthe32-bitregistry.Thedefaultvalueis'no'.

Page 1128: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SeeAlsoWixSchema

Page 1129: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1130: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,ComponentSearch,FileSearch,IniFileSearch,RegistrySearch

Page 1131: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

AssemblyNameElement

DescriptionTheMsiAssemblyNametablespecifiestheschemafortheelementsofastrongassemblycachenamefora.NETFrameworkorWin32assembly.ConsiderusingtheAssemblyattributeonFileelementtohavethetoolsetpopulatetheseentriesautomatically.

WindowsInstallerreferencesMsiAssemblyNameTable

ParentsFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String NameoftheattributeassociatedwiththevaluespecifiedintheValuecolumn.

Yes

Value String ValueassociatedwiththenamespecifiedintheNamecolumn.

SeeAlsoWixSchema

Page 1132: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1133: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1134: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BinaryElement

DescriptionBinarydatausedforCustomActionelementsandUIcontrols.

WindowsInstallerreferencesBinaryTable

ParentsControl,Fragment,Module,Product,UI

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

Attributes

Name Type Description Required

Id String TheIdcannotbelongerthan55characters.InordertopreventerrorsincaseswheretheIdismodularized,itshouldnotbelongerthan18characters.

Yes

SourceFile String Pathtothebinaryfile.

src String Thisattributehas

Page 1135: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

beendeprecated;pleaseusetheSourceFileattributeinstead.

SuppressModularization YesNoType UsetosuppressmodularizationofthisBinaryidentifierinmergemodules.

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

SeeAlsoWixSchema

Page 1136: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BinaryRefElement

DescriptionUsedonlyforPatchFamiliestoincludeonlyabinarytableentryinapatch.

WindowsInstallerreferencesNone

ParentsPatchFamily

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifieroftheBinaryelementtoreference.

Yes

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

SeeAlsoWixSchema

Page 1137: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1138: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BootstrapperApplicationElement

DescriptionContainsalltherelevantinformationaboutthesetupUI.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

PayloadPayloadGroupRef

Attributes

Name Type Description

Id String TheidentifieroftheBootstrapperApplicationelement.OnlyrequiredifyouwanttoreferencethiselementusingaBootstrapperApplicationRefelement.

Name String TherelativedestinationpathandfilenameforthebootstrapperapplicationDLL.Thedefaultisthesourcefilename.UsethisattributetorenamethebootstrapperapplicationDLLorextractitintoasubfolder.Theuseof'..'

Page 1139: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

directoriesisnotallowed.

SourceFile String TheDLLwiththebootstrapperapplicationentryfunction.

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

UseUILanguages YesNoType Whensetto"yes",causesWixStdBA/PrereqBAtousetheuser'scontrolpanellanguagesettings.Otherwise,thepreviousAPI(whichuseslocaleinsteadoflanguage)isusedtomaintaincompatiblitywithpreviousversionsofWiX.OnVistaandnewerplatforms,thisvaluesetto"yes"willsearchallspecifieduserlanguages,includingfallbacklanguages,inorder.(http://schemas.microsoft.com/wix/BalExtension)

SeeAlsoWixSchema

Page 1140: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BootstrapperApplicationRefElement

DescriptionUsedtoreferenceaBootstrapperApplicationelementandoptionallyaddadditionalpayloadstothebootstrapperapplication.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

WixManagedBootstrapperApplicationHostWixStandardBootstrapperApplication

Attributes

Name Type Description

Id String TheidentifieroftheBootstrapperApplicationelementtoreference.

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

UseUILanguages YesNoType Whensetto"yes",causesWixStdBA/PrereqBAtousetheuser'scontrolpanellanguage

Page 1141: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

SeeAlsoWixSchema

Page 1142: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BundleElement

DescriptionTherootelementforcreatingbundledpackages.

WindowsInstallerreferencesNone

ParentsWix

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

ApprovedExeForElevation(min:0,max:unbounded)BootstrapperApplication(min:0,max:1)BootstrapperApplicationRef(min:0,max:1)Catalog(min:0,max:unbounded)Chain(min:1,max:1)Container(min:0,max:unbounded)ContainerRef(min:0,max:unbounded)Log(min:0,max:1)OptionalUpdateRegistration(min:0,max:1)PayloadGroup(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)RelatedBundle(min:0,max:unbounded)Update(min:0,max:unbounded)Variable(min:0,max:unbounded)WixVariable(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

Page 1143: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ApprovedExeForElevationBootstrapperApplicationBootstrapperApplicationRefCatalogChainComponentSearchComponentSearchRefConditionContainerContainerRefDirectorySearchDirectorySearchRefFileSearchFileSearchRefLogProductSearchProductSearchRefRegistrySearchRegistrySearchRefRelatedBundleRequiresTagUpdateUXVariable

Attributes

Name Type Description

AboutUrl String AURLformoreinformationaboutthebundletodisplayinProgramsandFeatures(alsoPrograms).

Compressed YesNoDefaultType WhetherPackagesandPayloadsnotassignedtoacontainershouldbeaddedtothedefaultattached

Page 1144: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

containeroriftheyshouldbeexternal.Thedefaultisyes.

Condition String Theconditionofthebundle.Iftheconditionisnotmet,thebundlewillrefusetorun.Conditionsarecheckedbeforethebootstrapperapplicationisloadedthuscanonlyreferencebuilt-invariablessuchasvariableswhichindicatetheversionoftheOS.

Copyright String Thelegalcopyrightfoundintheversionresourcesoffinalbundleexecutable.Ifthisattributeisnotprovidedthecopyrightwillbesetto"Copyright(c)[Bundle/@Manufacturer].Allrightsreserved.".

DisableModify YesNoButtonType DetermineswhetherthebundlecanbemodifiedviatheProgramsandFeatures(alsoknownasPrograms).Ifthevalueis"button"thenProgramsandFeatureswillshowasinglethevalueis"yes"thenProgramsandFeatureswillonlyshowthe"Uninstall"button".Ifthevalueis"no",thedefault,thena"Change"buttonisshown.DisableRemoveattributeforinformationhowtonotdisplaythebundleinPrograms

DisableRemove YesNoType DetermineswhetherthebundlecanberemovedviatheProgramsandFeatures(alsoPrograms).Ifthevalueis"yes"thenthe"Uninstall"buttonwillnotbedisplayed.Thedefaultis"no"whichensuresthereisan"Uninstall"buttonto"DisableModify"attributeisalso"yes"or"button"thenthebundlewillnotbedisplayedinProgamsandFeaturesandanothermechanism(suchasbundleaddon)mustbeusedtoensurethebundlecanberemoved.

DisableRepair YesNoType Thisattributehasbeendeprecated.

HelpTelephone String AtelephonenumberforhelptodisplayinProgramsandFeatures(alsoknownas

HelpUrl String AURLtothehelpforthebundletodisplayinProgramsandFeatures(alsoknownas

Page 1145: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

IconSourceFile String PathtoaniconthatwillreplacethedefaulticoninthefinalBundleexecutable.ProgramsandFeatures(alsoknownasAdd/RemovePrograms).

Manufacturer String ThepublisherofthebundletodisplayinProgramsandFeatures(alsoknownas

Name String ThenameofthebundletodisplayinProgramsandFeatures(alsoknownasAdd/RemovenamecanbeaccessedandoverwrittenbyaBootstrapperApplicationbundlevariable.

ParentName String ThenameoftheparentbundletodisplayinInstalledUpdates(alsoknownasAdd/Removenameisusedtonestorgroupbundlesthatwillappearasupdates.Iftheparentnamedoesnotactuallyexist,avirtualparentiscreatedautomatically.

SplashScreenSourceFile String Pathtoabitmapthatwillbeshownasthebootstrapperapplicationisbeingloaded.Ifthisattributeisnotspecified,nosplashscreenwillbedisplayed.

Tag String SetthisstringtouniquelyidentifythisbundletoitsownBA,andtorelatedbundles.ThevalueofthisstringonlymatterstotheBA,anditsvaluehasnodirecteffectonenginefunctionality.

UpdateUrl String AURLforupdatesofthebundletodisplayinProgramsandFeatures(alsoknownasAdd/RemovePrograms).

UpgradeCode Guid Uniqueidentifierforafamilyofbundles.IftwobundleshavethesameUpgradeCodetheversionwillbeinstalled.

Version String Theversionofthebundle.NewerversionsupgradeearlierversionsofthebundlesUpgradeCodes.IfthebundleisregisteredinProgramsandFeaturesthenthisattributewillbedisplayedintheProgramsandFeaturesuserinterface.

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

Page 1146: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

extensionscanregisteradditionalattributesatthispointintheschema.

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

SeeAlsoWixSchema

Page 1147: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CatalogElement

DescriptionSpecifyoneormorecatalogfilesthatwillbeusedtoverifythecontentsofthebundle.

WindowsInstallerreferencesNone

ParentsBundle

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Theidentifierofthecatalogelement.

SourceFile String Thecatalogfile

SeeAlsoWixSchema

Page 1148: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1149: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

intheIdattribute.AqualifierisusedtodistinguishmultipleformsofthesameComponent,suchasaComponentthatisimplementedinmultiplelanguages.

SeeAlsoWixSchema

Page 1150: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1151: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,RMCCPSearch,ComplianceCheck

Page 1152: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ChainElement

DescriptionContainsthechainofpackagestoinstall.

WindowsInstallerreferencesNone

ParentsBundle

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

ExePackage(min:0,max:unbounded)MsiPackage(min:0,max:unbounded)MspPackage(min:0,max:unbounded)MsuPackage(min:0,max:unbounded)PackageGroupRef(min:0,max:unbounded)RollbackBoundary(min:0,max:unbounded)

Attributes

Name Type Description Required

DisableRollback YesNoType Specifieswhetherthebundlewillattempttorollbackpackagesexecutedinthechain.If"yes"isspecifiedthenwhenavitalpackagefailstoinstallonlythat

Page 1153: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

packagewillrollbackandthechainwillstopwiththeerror.Thedefaultis"no"whichindicatesallpackagesexecutedduringthechainwillberolledbacktotheirpreviousstatewhenavitalpackagefails.

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

Page 1154: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

SeeAlsoWixSchema

Page 1155: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1156: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

(withouttheoftenproblematicWindowsInstalleradvertisingbehavior).

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

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

Page 1157: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

Page 1158: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1159: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1160: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1161: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1162: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1163: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

[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 1164: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

[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 1165: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

[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 1166: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

@="Version"

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

SeeAlsoWixSchema,AppId

Page 1167: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1168: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1169: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1170: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1171: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SeeAlsoWixSchema

Page 1172: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1173: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CommandLineElement

DescriptionDescribesadditional,conditionalcommand-lineargumentsforanExePackage.

WindowsInstallerreferencesNone

ParentsExePackage

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

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

Page 1174: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

valueisappendedtothecommandlinewhentheExePackageisexecuted.

InstallArgument String Additionalcommand-lineargumentstoapplyduringpackageinstallationifConditionistrue.

RepairArgument String Additionalcommand-lineargumentstoapplyduringpackagerepairifConditionistrue.

UninstallArgument String Additionalcommand-lineargumentstoapplyduringpackageuninstallationifConditionistrue.

SeeAlsoWixSchema

Page 1175: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1176: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ComplianceDriveElement

DescriptionSetstheparentofanestedDirectorySearchelementtoCCP_DRIVE.

WindowsInstallerreferencesNone

ParentsComplianceCheck,Property

InnerTextNone

ChildrenChoiceofelements(min:1,max:1)

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

AttributesNone

SeeAlsoWixSchema

Page 1177: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1178: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1179: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

EventSourceFileShareFirewallExceptionInternetShortcutMessageQueueMessageQueuePermissionPerformanceCategoryProvidesRemoveFolderExRestartResourceServiceConfigSqlDatabaseSqlScriptSqlStringUrlReservationUserVsixPackageWebAppPoolWebDirWebFilterWebPropertyWebServiceExtensionWebSiteWebVirtualDirXmlConfigXmlFile

Attributes

Name Type Description

ComPlusFlags Integer SetthisattributetocreateaComPlusentry.Thevalueshouldbetheexportflagsusedduringthegenerationofthe.msi

Page 1180: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

file.FormoreinformationseetheCOM+documentationinthePlatformSDK.

Directory String SetstheDirectoryoftheComponent.IfthiselementisnestedunderaDirectoryelement,thisvaluedefaultstothevalueoftheparentDirectory/@Id.

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

DiskId DiskIdType ThisattributeprovidesadefaultDiskIdattributeforallchildFileelements.SpecifyingtheDiskIdonaComponentelementwilloverrideanyDiskIdattributessetbyparentDirectoryorDirectoryRefelements.SeetheFileelement'sDiskIdattribute

Page 1181: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

formoreinformationaboutthepurposeoftheDiskId.

Feature String Identifiesafeaturetowhichthiscomponentbelongs,asashorthandforachildComponentRefelementoftheFeatureelement.ThevalueofthisattributeshouldcorrespondtotheIdattributeofaFeatureelementauthoredelsewhere.Notethatasinglecomponentcanbelongtomultiplefeaturesbutthisattributeallowsyoutospecifyonlyasinglefeature.

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

Page 1182: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

component.UnmanagedcomponentsareasecurityvulnerabilitybecausethecomponentcannotberemovedorrepairedbyWindowsInstaller(itisessentiallyanunpatchable,permanentcomponent).Therefore,aguidshouldalwaysbespecifiedforanycomponentwhichcontainsresourcesthatmayneedtobepatchedinthefuture.

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

KeyPath YesNoType Ifthisattribute'svalueissetto'yes',thentheDirectoryofthisComponentisusedastheKeyPath.TosetaRegistryvalueorFileastheKeyPathofacomponent,settheKeyPathattributeto'yes'ononeofthosechildelements.IfKeyPathis

Page 1183: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Location Enumeration Optionalvaluethatspecifiesthelocationthatthecomponentcanberunfrom.Thisattribute'svaluemustbeoneofthefollowing:local

Preventsthecomponentfromrunningfromthesourceorthenetwork(thisisthedefaultbehaviorifthisattributeisnotset).

sourceEnforcesthatthecomponentcanonly

Page 1184: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

berunfromthesource(itcannotberunfromtheuser'scomputer).

eitherAllowsthecomponenttorunfromsourceorlocally.

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

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

Page 1185: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

theRegistrytable.DonotusethisflagforcomponentsregisteredbytheAppId,Class,Extension,ProgId,MIME,andVerbtables.

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

Shared YesNoType Ifthisattribute'svalueissetto'yes',enablesadvancedpatchingsemanticsforComponentsthataresharedacrossmultipleProducts.Specifically,theWindowsInstallerwillcachethesharedfilestoimprovepatchuninstall.

Page 1186: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ThisfunctionalityisavailableinWindowsInstaller4.5andlater.

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

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

UninstallWhenSuperseded YesNoType Ifthisattributeissetto'yes',theinstallerwilluninstalltheComponent'sfilesandregistrykeyswhenitissupersededbyapatch.Thisfunctionalityis

Page 1187: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

availableinWindowsInstaller4.5andlater.

Win64 YesNoType Setthisattributeto'yes'tomarkthisasa64-bitcomponent.Thisattributefacilitatestheinstallationofpackagesthatincludeboth32-bitand64-bitcomponents.Ifthisisa64-bitcomponentreplacinga32-bitcomponent,setthisattributeto'yes'andassignanewGUIDintheGuidattribute.Thedefaultvalueisbasedontheplatformsetbythe-archswitchtocandle.exeortheInstallerPlatformpropertyina.wixprojMSBuildproject:Forx86andARM,thedefaultvalueis'no'.Forx64andIA64,thedefaultvalueis'yes'.

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

HowTosandExamplesHowTo:Addafiletoyourinstaller

SeeAlsoWixSchema,ComponentRef,Media

Page 1188: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ComponentGroupElement

DescriptionGroupstogethermultiplecomponentstobeusedinotherlocations.

WindowsInstallerreferencesNone

ParentsFragment,Product

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Component(min:0,max:unbounded)ComponentGroupRef(min:0,max:unbounded)ComponentRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

Attributes

Name Type Description Required

Id String IdentifierfortheComponentGroup. Yes

Directory String SetsthedefaultdirectoryidentifierforchildComponentelements.

Source String UsedtosetthedefaultfilesystemsourceforchildComponentelements.Formoreinformation,seeSpecifyingsourcefiles.

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

Page 1189: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

canregisteradditionalattributesatthispointintheschema.

SeeAlsoWixSchema,ComponentGroupRef

Page 1190: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1191: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

feature,thatfeatureistheprimaryfeatureforthecomponent.Youcannotsetmorethanonefeatureastheprimaryfeatureofagivencomponent.

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

SeeAlsoWixSchema,ComponentGroup

Page 1192: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1193: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

componentnestsunderonlyonefeature,thatfeatureistheprimaryfeatureforthecomponent.Youcannotsetmorethanonefeatureastheprimaryfeatureofagivencomponent.

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

HowTosandExamplesHowTo:Addafiletoyourinstaller

SeeAlsoWixSchema,Component

Page 1194: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1195: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Thekeypathofthecomponentisadirectory.

fileThekeypathofthecomponentisafile.Thisisthedefaultvalue.

SeeAlsoWixSchema,IniFileSearch,RegistrySearch

Page 1196: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1197: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

enableEnabletheControl.OnlyusedunderControlelements.

disableDisabletheControl.OnlyusedunderControlelements.

hideHidetheControl.OnlyusedunderControlelements.

showDisplaytheControl.OnlyusedunderControlelements.

Level Integer UsedonlyunderFeatureelementsandisrequired.AllowsmodifyingthelevelofaFeaturebasedontheresultofthiscondition.

Message String UsedonlyunderFragmentorProductelementsandisrequired.Setthevaluetothetexttodisplaywhentheconditionfailsandtheinstallationmustbeterminated.

HowTosandExamplesHowTo:BlockinstallationbasedonOSversionHowTo:Checktheversionnumberofafileduringinstallation

SeeAlsoWixSchema

Page 1198: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1199: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Key

Integer

Bitfield

HelpKeyword String Keywordintochmfileforauthoring.

HelpLocation String Locationofchmfileforauthoring.

KeyNoOrphan YesNoType DoesnotmergeruleaccordingtorulesinMSISDK.

Name String Definesthenameoftheconfigurableitem.

Yes

NonNullable YesNoType Ifyes,nullisnotavalidentry.

Type String Specifiesthetypeofthedatabeingchanged.

SeeAlsoWixSchema

Page 1200: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ConfigurationDataElement

DescriptionDatatouseasinputtoaconfigurablemergemodule.

WindowsInstallerreferencesNone

ParentsMerge

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Name String NameoftheitemintheModuleConfigurationtable.

Yes

Value String Valuetobepassedtoconfigurablemergemodule.

Yes

SeeAlsoWixSchema

Page 1201: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ContainerElement

DescriptionRepresentationofafilethatcontainsoneormorefiles.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

PackageGroupRef(min:0,max:unbounded)

Attributes

Name Type Description Required

DownloadUrl String TheURLtousetodownloadthecontainer.Thisattributeisonlyvalidwhenthecontainerisdetached.Thefollowingsubstitutionsaresupported:

{0}isalwaysnull.{1}isreplacedbythecontainerId.{2}isreplaced

Page 1202: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

bythecontainerfilename.

Id String Theuniqueidentifierforthecontainer.IfthisattributeisnotspecifiedtheNameattributewillbeused.

Name String Thefilenameforthiscontainer.Arelativepathmaybeprovidedtoplacethecontainerinasub-folderofthebundle.

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

SeeAlsoWixSchema

Page 1203: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ContainerRefElement

DescriptionCreateareferencetoanexistingContainerelement.

WindowsInstallerreferencesNone

ParentsBundle

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifierofContainerelementtoreference.

Yes

SeeAlsoWixSchema,Container

Page 1204: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1205: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1206: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1207: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1208: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1209: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1210: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1211: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1212: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1213: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

validforTextControls.

Width LocalizableInteger Widthoftherectangularboundaryofthecontrol.Thismustbeanon-negativenumber.

Yes

X LocalizableInteger Horizontalcoordinateoftheupper-leftcorneroftherectangularboundaryofthecontrol.Thismustbeanon-negativenumber.

Yes

Y LocalizableInteger Verticalcoordinateoftheupper-leftcorneroftherectangularboundaryofthecontrol.Thismustbeanon-negativenumber.

Yes

SeeAlsoWixSchema

Page 1214: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1215: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1216: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

DestinationProperty String Setthisvaluetoapropertythatwillhaveavaluethatresolves

Page 1217: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

DestinationShortName ShortFileNameType Theshortfilenameofthefilein8.3format.Thisattributeshouldonlybesetifthereisaconflictbetweengeneratedshortfilenamesoryouwishtomanuallyspecifytheshortfilename.

FileId String ThisattributecannotbespecifiediftheelementisnestedunderaFileelement.Setthisattribute'svaluetotheidentifierofafilefromadifferentcomponenttocopyitbasedontheinstallstateoftheparentcomponent.

SourceDirectory String Thisattributecannotbespecifiediftheelementisnested

Page 1218: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

underaFileelementortheFileIdattributeisspecified.Setvaluetothesourcedirectoryfromwhichtocopyormoveanexistingfileonthetargetmachine.Directorymusttheinstallerdatabaseatcreationtime.attributecannotbespecifiedinconjunctionwithSourceProperty.

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

Page 1219: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

SourceProperty String ThisattributecannotbespecifiediftheelementisnestedunderaFileelementortheFileIdattributeisspecified.Setvaluetoapropertythatwillhaveavaluethatresolvestothefullpathofthesourcedirectory(orfullpathincludingfilenameifSourceNameisnotspecified).Thepropertydoesnothavetoexistintheinstallerdatabaseat

Page 1220: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

creationtime;itcouldbecreatedatinstallationtimebyacustomaction,onthecommandline,etc.ThisattributebespecifiedinconjunctionwithSourceDirectory.

SeeAlsoWixSchema,RemoveFile

Page 1221: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1222: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,CostInitialize,FileCost

Page 1223: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1224: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1225: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CreateFoldersElement

DescriptionCreatesemptyfoldersforcomponentsthataresettobeinstalled.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesCreateFoldersAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1226: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1227: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1228: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

OnExit ExitType MutuallyexclusivewithBefore,After,andSequenceattributes

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Thesequencenumberforthisaction.MutuallyexclusivewithBefore,After,andOnExitattributes

SeeAlsoWixSchema,CustomAction

Page 1229: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CustomActionElement

DescriptionSpecifiesacustomactiontobeaddedtotheMSICustomActiontable.Variouscombinationsoftheattributesforthiselementcorrespondtodifferentcustomactiontypes.FormoreinformationaboutcustomactionsseetheCustomActionTypestopiconMSDN.

WindowsInstallerreferencesCustomActionTable

ParentsFragment,Module,Product

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

ChildrenNone

Attributes

Name Type Description

Id String Theidentifierofthecustomaction.

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

Page 1230: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Directory String ThisattributespecifiesareferencetoaDirectoryelementwithmatchingIdattributecontainingadirectorypath.ThisattributeistypicallyusedwiththeExeCommandattributetospecifythesourceexecutableforatype34orwiththeValueattributetospecifyaformattedstringtoplaceinthespecifiedDirectoryentryinatype35customaction.

DllEntry String Thisattributespecifiesthenameofafunctioninacustomactiontoexecute.ThisattributeisusedwiththeBinaryKeyattributetocreateatype1customaction,orwiththeFileKeyattributetocreateatype17customaction.

Error String ThisattributespecifiesanindexintheMSIErrortabletouseasanerrormessageforacustomactionthatdisplaystheerrormessageandabortsaproduct'sinstallation.

ExeCommand String Thisattributespecifiesthecommandlineparameterstosupplytoanexternallyexecutable.ThisattributeistypicallyusedwiththeBinaryKeyattributeforatype2customaction,theFileKeyattributeforatype18customaction,thePropertyattributeforatype50customaction,ortheDirectoryattributeforatype34customactionthatspecifytheexecutabletorun.

Execute Enumeration Thisattributeindicatestheschedulingofthecustomaction.Thisattribute'svaluemustbeoneofthefollowing:commit

Indicatesthatthecustomactionwillrunaftersuccessfulcompletionoftheinstallationscript(attheendoftheinstallation).

deferred

Page 1231: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Indicatesthatthecustomactionrunsin-script(possiblywithelevatedprivileges).

firstSequenceIndicatesthatthecustomactionwillonlyruninthefirstsequencethatrunsit.

immediateIndicatesthatthecustomactionwillrunduringnormalprocessingtimewithuserprivileges.Thisisthedefault.

oncePerProcessIndicatesthatthecustomactionwillonlyruninthefirstsequencethatrunsitinthesameprocess.

rollbackIndicatesthatacustomactionwillrunintherollbacksequencewhenafailureduringinstallation,usuallytoundochangesmadebyadeferredcustomaction.

secondSequenceIndicatesthatacustomactionshouldberunasecondtimeifitwaspreviouslyruninanearliersequence.

FileKey String ThisattributespecifiesareferencetoaFileelementwithmatchingIdattributethatexecutethecustomactioncodeinthefileafterthefileisinstalled.ThisattributeistypicallyusedwiththeExeCommandattributetospecifyatype18customactionthatrunsaninstalledexecutable,withtheDllEntryattributetospecifyaninstalledcustomactionDLLtouseforatype17customaction,orwiththeVBScriptCallorJScriptCallattributestospecifyatype21or22customaction.

HideTarget YesNoType Ensurestheinstallerdoesnotlogthe

Page 1232: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CustomActionDataforthedeferredcustomaction.

Impersonate YesNoType ThisattributespecifieswhethertheWindowsInstaller,whichexecutesasLocalSystem,shouldimpersonatetheusercontextoftheinstallinguserwhenexecutingthiscustomaction.Typicallythevalueshouldbe'yes',exceptwhenthecustomactionneedselevatedprivilegestoapplychangestothemachine.

JScriptCall String ThisattributespecifiesthenameoftheJScriptfunctiontoexecuteinascript.ThescriptmustbeprovidedinaBinaryelementidentifiedbytheBinaryKeyattributedescribedabove.Inotherwords,thisattributemustbespecifiedinconjunctionwiththeBinaryKeyattribute.

PatchUninstall YesNoType ThisattributespecifiesthattheWindowsInstaller,executethecustomactiononlywhenpatchisbeinguninstalled.ThesecustomactionsshouldalsobeconditionedusingtheMSIPATCHREMOVEpropertytoensureproperdownlevel(lessthanWindowsInstaller4.5)behavior.

Property String ThisattributespecifiesareferencetoaPropertyelementwithmatchingIdattributethatspecifiesthePropertytobeusedorupdatedonexecutionofthiscustomaction.ThisattributeisusedwiththeValueattributetocreateatype51customactionthatparsesthetextinValueandplacesitintothespecifiedProperty.attributeisalsousedwiththeExeCommandattributetocreateatype50customactionthatusesthevalueofthegivenpropertytospecifythepathtotheexecutable.Type51customactionsareoftenusefultopassvaluestoadeferredcustomaction.Seehttp://msdn.microsoft.com/library/aa370543.aspx

Page 1233: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

formoreinformation.

Return Enumeration Setthisattributetosetthereturnbehaviorofthecustomaction.Thisattribute'svaluemustbeoneofthefollowing:asyncNoWait

Indicatesthatthecustomactionwillrunasyncronouslyandexecutionmaycontinueaftertheinstallerterminates.

asyncWaitIndicatesthatthecustomactionwillrunasynchronouslybuttheinstallerwillwaitforthereturncodeatsequenceend.

checkIndicatesthatthecustomactionwillrunsynchronouslyandthereturncodewillbecheckedforsuccess.Thisisthedefault.

ignoreIndicatesthatthecustomactionwillrunsynchronouslyandthereturncodewillnotbechecked.

Script Enumeration Createsatype37or38customaction.oftheelementshouldcontainthescripttobeembeddedinthepackage.Thisattribute'svaluemustbeoneofthefollowing:jscript

vbscript

SuppressModularization YesNoType Usetosuppressmodularizationofthiscustomactionnameinmergemodules.benecessaryfortable-drivencustomactionsbecausethetablenamewhichtheyinteractwithcannotbemodularized,sotherecanonlyoneinstanceofthetable.

TerminalServerAware YesNoType Thisattributespecifiescontrolswhetherthe

Page 1234: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

customactionwillimpersonatetheuserduringper-machineinstallsonTerminalServermachines.Deferredexecutioncustomactionsthatdonotspecifythisattribute,orexplicitlysetit'no',willrunwithnouserimpersonationonTerminalServermachinesduringper-machineinstallations.onlyapplicablewheninstallingontheServer2003family.

Value String Thisattributespecifiesastringvaluetouseinthecustomaction.ThisattributewiththePropertyattributetosetthepropertyaspartofatype51customactionorwiththeDirectoryattributetosetadirectorypathinthattableinatype35customaction.ThevaluecanbealiteralvalueorderivedfromaelementusingtheFormatted

VBScriptCall String ThisattributespecifiesthenameoftheVBScriptSubroutinetoexecuteinascript.ThescriptmustbeprovidedinaBinaryelementidentifiedbytheBinaryKeyattributedescribedabove.Inotherwords,thisattributemustbespecifiedinconjunctionwiththeBinaryKeyattribute.

Win64 YesNoType Specifiesthatascriptcustomactiontargetsa64-bitplatform.ValidonlywhenusedwithScript,VBScriptCall,andJScriptCallattributes.Thedefaultvalueisbasedontheplatformsetbythe-archswitchtocandle.exeInstallerPlatformpropertyina.wixprojMSBuildproject:Forx86andARM,thedefaultvalueis'no'.Forx64andIA64,thedefaultvalueis'yes'.

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

SeeAlsoWixSchema,Custom,CustomActionRef

Page 1235: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1236: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CustomPropertyElement

DescriptionAcustompropertyforthePatchMetadatatable.

WindowsInstallerreferencesNone

ParentsPatchMetadata

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Company String Thenameofthecompany. Yes

Property String Thenameofthemetadataproperty.

Yes

Value String Valueofthemetadataproperty. Yes

SeeAlsoWixSchema

Page 1237: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CustomTableElement

DescriptionDefinesacustomtableforusefromacustomaction.

WindowsInstallerreferencesNone

ParentsFragment,Module,Product

InnerTextNone

ChildrenSequence(min:1,max:1)1. Column(min:0,max:unbounded):Columndefinitionforthe

customtable.2. Row(min:0,max:unbounded):Rowdefinitionforthecustom

table.

Attributes

Name Type Description Required

Id String Identifierforthecustomtable.

Yes

BootstrapperApplicationData YesNoType Indicatesthetabledataistransformedintothebootstrapperapplicationdatamanifest.

Page 1238: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SeeAlsoWixSchema

Page 1239: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DataElement

DescriptionUsedforaCustomTable.SpecifiesthedatafortheparentRowandspecifiedColumn.

WindowsInstallerreferencesNone

ParentsRow

InnerText(xs:string)Adatavalue

ChildrenNone

Attributes

Name Type Description Required

Column String Specifiesinwhichcolumntoinsertthisdata.

Yes

SeeAlsoWixSchema

Page 1240: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DeleteServicesElement

DescriptionStopsaserviceandremovesitsregistrationfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesDeleteServicesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1241: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DependencyElement

DescriptionDeclaresadependencyonanothermergemodule.

WindowsInstallerreferencesNone

ParentsModule

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

RequiredId String Identifierofthemergemodulerequiredbythemergemodule.

Yes

RequiredLanguage Integer NumericlanguageIDofthemergemoduleinRequiredID.

Yes

RequiredVersion String VersionofthemergemoduleinRequiredID.

SeeAlsoWixSchema

Page 1242: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1243: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1244: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

dialogboxasapercentageofscreenheight.Thedefaultvalueis50.

SeeAlsoWixSchema

Page 1245: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DialogRefElement

DescriptionReferencetoaDialog.Thiswillcausetheentirereferencedsection'scontentstobeincludedintheinstallerdatabase.

WindowsInstallerreferencesNone

ParentsUI

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifieroftheDialogtoreference.

Yes

SeeAlsoWixSchema,Dialog

Page 1246: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DigitalCertificateElement

DescriptionAddsadigitalcertificate.

WindowsInstallerreferencesMsiDigitalCertificateTable

ParentsDigitalSignature,PackageCertificates,PatchCertificates

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Identifierforacertificatefile. Yes

SourceFile String Thepathtothecertificatefile. Yes

SeeAlsoWixSchema

Page 1247: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DigitalCertificateRefElement

DescriptionReferencetoaDigitalCertificateelement.ThiswillforcetheentirereferencedFragment'scontentstobeincludedintheinstallerdatabase.Thisisonlyusedforreferenceswhenpatching.

WindowsInstallerreferencesNone

ParentsPatchFamily

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

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

SeeAlsoWixSchema

Page 1248: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1249: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1250: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Installerdirectory(forexample,ProgramFilesFolderorCommonFilesFolder).recommendedthatthisattributebeavoidedandthatdevelopersinstalltheirComponentsunderstandarddirectorieswithuniquenamesinstead(forexample,"ProgramFilesFolder\CompanyNameProductNameVersion").ItisnotethatonceadirectoryisassignedaComponentGuidGenerationSeedthevaluemustnotchangeuntilmustbechangedwhen)thepathtothatdirectory,includingitselfandallparentdirectories,changes.

DiskId DiskIdType Setsthedefaultdiskidentifierforthefilescontainedinthisdirectory.Thisattribute'svaluemaybeoverriddenbyachildComponent,Directory,orFileelement.SeetheFileorMergeelements'DiskIdattributeformoreinformation.

FileSource String Usedtosetthefilesystemsourceforthisdirectory'schildelements.Formoreinformation,seesourcefiles.

LongName LongFileNameType Thisattributehasbeendeprecated;pleaseusetheNameattributeinstead.

Page 1251: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LongSource LongFileNameType Thisattributehasbeendeprecated;pleaseusetheSourceNameattributeinstead.

Name LongFileNameType Thenameofthedirectory.

Donotspecifythisattribute(ortheLongNameattribute)ifthisdirectoryrepresentsdirectoryastheparent(seetheWindowsInstallerSDK'sDirectorytableinformationaboutthe"."operator).

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

ShortName ShortFileNameType Theshortnameofthe

Page 1252: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

directoryin8.3format.attributeshouldonlybesetifthereisaconflictbetweengeneratedshortdirectorynamesortheuserwantstomanuallyspecifytheshortdirectoryname.

ShortSourceName ShortFileNameType Theshortnameofthedirectoryonthesourcemediain8.3format.shouldonlybesetifthereisaconflictbetweengeneratedshortdirectorynamesuserwantstomanuallyspecifytheshortsourcedirectoryname.

SourceName LongFileNameType Thenameofthedirectoryonthesourcemedia.attributeisnotspecified,WindowsInstallerwilldefaulttotheNameattribute.

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

Page 1253: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

toattempttogenerateauniqueshortdirectoryname.However,ifthisnamecollideswithanotherdirectoryoryouwishtomanuallyspecifyshortdirectoryname,thentheShortSourceNameattributemaybespecified.

src String Thisattributehasbeendeprecated;pleaseusetheFileSourceattributeinstead.

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

HowTosandExamplesHowTo:Addafiletoyourinstaller

SeeAlsoWixSchema,DirectoryRef

Page 1254: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DirectoryRefElement

DescriptionCreateareferencetoaDirectoryelementinanotherFragment.

WindowsInstallerreferencesNone

ParentsFragment,Module,PatchFamily,Product

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Component(min:0,max:unbounded)Directory(min:0,max:unbounded)Merge(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

Attributes

Name Type Description Required

Id String TheidentifieroftheDirectoryelementtoreference.

Yes

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

Page 1255: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

FileSource String UsedtosetthefilesystemsourceforthisDirectoryRef'schildelements.Formoreinformation,seeSpecifyingsourcefiles.

src String Thisattributehasbeendeprecated;pleaseusetheFileSourceattributeinstead.

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

HowTosandExamplesHowTo:Addafiletoyourinstaller

SeeAlsoWixSchema,Directory

Page 1256: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1257: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

searchesforthefileordirectoryspecifiedbythesearch.Seeremarksformoreinformation.

Path String Pathontheuser'ssystem.Eitherabsolute,orrelativetocontainingdirectories.

Remarks

UsetheAssignToPropertyattributetosearchforafilebutsettheouterpropertytothedirectorycontainingthefile.Whenthisattributeissetto'yes',youmayonlynestaFileSearchelementwithauniqueIdordefinenochildelement.

WhentheparentDirectorySearch/@Depthattributeisgreaterthan0,theFileSearch/@IdattributemustbeabsentorthesameastheparentDirectorySearch/@Idattributevalue,unlesstheparentDirectorySearch/@AssignToPropertyattributevalueis'yes'.

HowTosandExamplesHowTo:ChecktheversionnumberofafileduringinstallationHowTo:ReferenceanotherDirectorySearchelementHowTo:Gettheparentdirectoryofafilesearch

SeeAlsoWixSchema,ComponentSearch,IniFileSearch,RegistrySearch

Page 1258: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1259: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CompLocator,ortheDrLocatortables.

Path String Pathontheuser'ssystem.Eitherabsolute,orrelativetocontainingdirectories.

Remarks

AreferencetoanotherDirectorySearchelementmustreferencethesameId,thesameParentId,andthesamePath.IfanyoftheseattributevaluesaredifferentyoumustinsteaduseaDirectorySearchelement.

HowTosandExamplesHowTo:ReferenceanotherDirectorySearchelement

SeeAlsoWixSchema,ComponentSearch,IniFileSearch,RegistrySearch

Page 1260: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1261: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1262: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DuplicateFilesElement

DescriptionDuplicatesfilesinstalledbytheInstallFilesaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesDuplicateFilesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1263: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

EmbeddedChainerElement

DescriptionNone

WindowsInstallerreferencesMsiEmbeddedChainerTable

ParentsFragment,Module,Product

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

ChildrenNone

Attributes

Name Type Description Required

Id String Uniqueidentifierforembeddedchainer.

Yes

BinarySource String ReferencetotheBinaryelementthatcontainsthechainerexecutable.MutuallyexclusivewiththeFileSourceandPropertySourceattributes.

CommandLine String Valuetoappendtothetransactionhandleandpassedtothechainer

Page 1264: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

executable.

FileSource String ReferencetotheFileelementthatisthechainerexecutable.MutuallyexclusivewiththeBinarySourceandPropertySourceattributes.

PropertySource String ReferencetoaPropertythatresolvestothefullpathtothechainerexecutable.MutuallyexclusivewiththeBinarySourceandFileSourceattributes.

SeeAlsoWixSchema,Binary,File,Property,EmbeddedChainerRef

Page 1265: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1266: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1267: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1268: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1269: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

EmbeddedUIResourceElement

DescriptionDefinesaresourceforusebytheembeddedUI.

WindowsInstallerreferencesMsiEmbeddedUITable

ParentsEmbeddedUI

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String IdentifierfortheembeddedUIresource.

Yes

Name LongFileNameType ThenamefortheresourcewhenitisextractedfromtheProductforusebytheembeddedUIDLL.(WindowsInstallerdoesnotsupportthetypicalshortfilenameandlongfilenamecombinationforembeddedUIfilesasitdoesforotherkindsoffiles.)IfthisattributeisnotspecifiedtheId

Yes

Page 1270: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

attributewillbeused.

SourceFile String PathtothebinaryfilethatistheembeddedUIresource.

Yes

SeeAlsoWixSchema,EmbeddedUI

Page 1271: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1272: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixSchema

Page 1273: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1274: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

setCreatestheenvironmentvariableifitdoesnotexist,andthensetitduringinstallation.Iftheenvironmentvariableexists,setitduringtheinstallation.

removeRemovestheenvironmentvariableduringaninstallation.TheinstalleronlyremovesanenvironmentvariableduringaninstallationifthenameandvalueofthevariablematchtheentriesintheNameandValueattributes.Ifyouwanttoremoveanenvironmentvariable,regardlessofitsvalue,donotsettheValueattribute.

Name String Nameoftheenvironmentvariable.

Yes

Part Enumeration Thisattribute'svaluemustbeoneofthefollowing:all

Thisvalueistheentireenvironmentalvariable.Thisisthedefault.

firstThisvalueisprefixed.

last

Page 1275: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Thisvalueisappended.

Permanent YesNoType Specifiesthattheenvironmentvariableshouldnotberemovedonuninstall.

Separator String Optionalattributetochangetheseparatorusedbetweenvalues.Bydefaultasemicolonisused.

System YesNoType Specifiesthattheenvironmentvariableshouldbeaddedtothesystemenvironmentspace.Thedefaultis'no'whichindicatestheenvironmentvariableisaddedtotheuserenvironmentspace.

Value String Thevaluetosetintotheenvironmentvariable.Ifthisattributeisnotset,theenvironmentvariableisremovedduringinstallationifitexistsonthemachine.

SeeAlsoWixSchema

Page 1276: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ErrorElement

DescriptionNone

WindowsInstallerreferencesErrorTable

ParentsUI

InnerText(xs:string)ElementvalueisMessage,useCDATAifmessagecontainsdelimitercharacters

ChildrenNone

Attributes

Name Type Description Required

Id Integer Numberoftheerrorforwhichamessageisbeingprovided.SeeMSISDKforerrordefinitions.

SeeAlsoWixSchema

Page 1277: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1278: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

normin,noexclusionbasedonversion.

ExcludeExceptLanguage Integer NumericlanguageIDofthemergemoduleinExcludedID.Allexceptthislanguagewillbeexcluded.OnlyoneofExcludeExceptLanguageandExcludeLanguagemaybespecified.

ExcludeLanguage Integer NumericlanguageIDofthemergemoduleinExcludedID.Thespecifiedlanguagewillbeexcluded.OnlyoneofExcludeExceptLanguageandExcludeLanguagemaybespecified.

SeeAlsoWixSchema

Page 1279: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1280: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ExePackageElement

DescriptionDescribesasingleexepackagetoinstall.

WindowsInstallerreferencesNone

ParentsChain,PackageGroup

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

CommandLine(min:0,max:unbounded)ExitCode(min:0,max:unbounded)Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)RemotePayload(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.Theextension'sCompilerExtension.ParseElement()methodwillbecalledwiththepackageidentifierasthefirstvalueincontextValues.

ExitCodePayloadProvidesRemotePayload

Attributes

Name Type Description

After String Theidentifierofanotherpackagethatthisone

Page 1281: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

shouldbeinstalledafter.BydefaulttheAfterattributeissettotheprevioussiblingpackageintheChainorPackageGroupelement.Ifthisattributeisspecifiedensurethatacycleisnotcreatedexplicitlyorimplicitly.

Cache YesNoAlwaysType Whethertocachethepackage.Thedefaultis"yes".

CacheId String Theidentifiertousewhencachingthepackage.

Compressed YesNoDefaultType Whetherthepackagepayloadshouldbeembeddedinacontainerorleftasanexternalpayload.

Description String Specifiesthedescriptiontoplaceinthebootstrapperapplicationdatamanifestforthepackage.Bydefault,ExePackagesFileNamefieldfromtheversioninformation,MsiPackagesusetheARPCOMMENTSproperty,andMspPackagesusepatchmetadataproperty.Otherpackagetypesmustusethisattributetodefineadescriptioninthebootstrapperapplicationdatamanifest.

DetectCondition String Aconditionthatdeterminesifthepackageispresentonthetargetsystem.Thisconditioncanusebuilt-invariablesandvariablesreturnedbysearches.ThisconditionisnecessarybecauseWindowsdoesn'tprovideapresenceofanExePackage.Burnusesthisconditiontodeterminehowtotreatthisduringabundleaction;forexample,ifthisconditionisfalseoromittedandthebundleisbeinginstalled,Burnwillinstallthispackage.

DisplayName String Specifiesthedisplaynametoplaceinthebootstrapperapplicationdatamanifestforthepackage.Bydefault,ExePackagesProductNamefieldfromtheversioninformation,MsiPackagesusetheProductNameproperty,

Page 1282: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

andMspPackagesusemetadataproperty.Otherpackagetypesmustusethisattributetodefineadisplaynameinthebootstrapperapplicationdatamanifest.

DownloadUrl String TheURLtousetodownloadthepackage.Thefollowingsubstitutionsaresupported:

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

Id String Identifierforthispackage,fororderingandcross-referencing.ThedefaultistheNameattributemodifiedtobesuitableasanidentifier(i.e.invalidcharactersarereplacedwithunderscores).

InstallCommand String Thecommand-lineargumentsprovidedtotheExePackageduringinstall.Ifthisattributeisabsenttheexecutablewillbelaunchedwithnocommand-linearguments.

InstallCondition String Aconditiontoevaluatebeforeinstallingthepackage.Thepackagewillonlybeinstallediftheconditionevaluatestotrue.Iftheconditionevaluatestofalseandthebundleisbeinginstalled,repaired,ormodified,thepackagewillbeuninstalled.

InstallSize String Thesizethispackagewilltakeondiskinbytesafteritisinstalled.Bydefault,thebinderwillcalculatetheinstallsizebyscanningthepackage(FiletableforMSIs,PayloadsforEXEs)andusethetotalfortheinstallsizeofthepackage.

LogPathVariable String NameofaVariablethatwillholdthepathtothelogfile.Anemptyvaluewillcausethevariabletonotbeset.Thedefaultis"WixBundleLog_[PackageId]"exceptforMSU

Page 1283: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

packageswhichdefaulttonologging.

Name String Thedestinationpathandfilenameforthischainpayload.Usethisattributetorenametheentrypointorextractitintoasubfolder.ThedefaultvalueisthefilenamefromtheSourceFileattribute,ifprovided.Ataminimum,theNameorSourceFileattributemustbespecified.Theuseof'..'directoriesisnotallowed.

PerMachine YesNoDefaultType Indicatesthepackagemustbeexecutedelevated.Thedefaultis"no".

Permanent YesNoType Specifieswhetherthepackagecanbeuninstalled.Thedefaultis"no".

Protocol BurnExeProtocolType Indicatesthecommunicationprotocolthepackagesupportsforextendedprogressanderrorreporting.Thedefaultis"none".

RepairCommand String Thecommand-lineargumentstospecifytoindicatearepair.Iftheexecutablepackagecanberepairedbutcommand-lineargumentstodosothensettheattribute'svaluetoblank.Topackagedoesnotsupportrepair,omitthisattribute.

RollbackLogPathVariable String NameofaVariablethatwillholdthepathtothelogfileusedduringrollback.Anemptyvaluewillcausethevariabletonotbeset.Thedefaultis"WixBundleRollbackLog_[PackageId]"exceptforMSUpackageswhich

SourceFile String Locationofthepackagetoaddtothebundle.ThedefaultvalueistheNameattribute,ifprovided.Ataminimum,theSourceFileorNameattributemustbespecified.

SuppressSignatureVerification YesNoType Bydefault,aBundlewillusethehashofapackagetoverifyitscontents.Ifthisattributeis

Page 1284: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

explicitlysetto"no"withanAuthenticodesignaturetheBundlewillverifythecontentsofthepackageusingthesignatureinstead.Therefore,thedefaultforthisattributecouldbeconsideredtobe"yes".Itisunusualfor"yes"toattribute.Inthiscase,thedefaultwaschangedinWiXv3.9afterexperiencingrealworldissueswithWindowsverifyingAuthenticodesignatures.SincetheAuthenticodesignaturesarenomoresecurethanhashingthedefaultwaschanged.

UninstallCommand String Thecommand-lineargumentsprovidedtotheExePackageduringuninstall.Ifthisattributeisabsenttheexecutablewillbelaunchedwithnocommand-linearguments.TopreventanExePackagefrombeinguninstalledsetthePermanentattributeto"yes".

Vital YesNoType Specifieswhetherthepackagemustsucceedforthechaintocontinue.Thedefault"yes"indicatesthatifthepackagefailsthenthechainwillfailandrollbackorstop.Ifthenthechainwillcontinueevenifthepackagereportsfailure.

AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.extensionscanregisteradditionalattributesatthispointintheschema.CompilerExtension.ParseAttribute()methodwillbecalledwiththepackageidentifierin

PrereqSupportPackage YesNoType Whensetto"yes",thePrereqBAwillplanthepackagetobeinstalledifitsInstallConditionis"true"orempty.(http://schemas.microsoft.com/wix/BalExtension)

SeeAlsoWixSchema

Page 1285: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ExitCodeElement

DescriptionDescribesmapofexitcodereturnedfromexecutablepackagetoabootstrapperbehavior.

WindowsInstallerreferencesNone

ParentsExePackage

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Behavior Enumeration Chooseoneofthesupportedbehaviorserrorcodes:success,error,scheduleReboot,forceReboot.Thisattribute'svaluemustbeoneofthefollowing:success

error

scheduleReboot

forceReboot

Yes

Value Integer Exitcodereturnedfromexecutablepackage.Ifnovalueisprovideditmeansallvaluesnotexplicitlysetdefault

Page 1286: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

tothisbehavior.

SeeAlsoWixSchema

Page 1287: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1288: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1289: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1290: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

FamilyElement

DescriptionGroupofoneormoreupgradedimagesofaproduct.

WindowsInstallerreferencesNone

ParentsPatchCreation

InnerTextNone

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

ExternalFile(min:0,max:unbounded)ProtectFile(min:0,max:unbounded)

Attributes

Name Type Description Required

DiskId DiskIdType EnteredintotheDiskIdfieldofthenewMediatablerecord.

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

MediaSrcProp String EnteredintotheSourcefieldofthenewMedia

Page 1291: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

tableentryoftheupgradedimage.

Name String Identifierforthefamily. Yes

SequenceStart Int Sequencenumberforthestartingfile.

VolumeLabel String EnteredintotheVolumeLabelfieldofthenewMediatablerecord.

SeeAlsoWixSchema

Page 1292: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1293: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1294: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1295: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

attribute.

Level Integer Setstheinstalllevelofthisfeature.disablethefeature.Processingthecanmodifythelevelvalue(thisissetviatheConditionchildelement).Thedefaultvalueis"1".

Title String Shortstringoftextidentifyingthefeature.islistedasanitembytheSelectionTreecontroloftheSelectionDialog.

TypicalDefault Enumeration Thisattributedeterminesthedefaultadvertisestateofthefeature.Thisattribute'svaluemustbeoneofthefollowing:advertise

SetsthefeaturetobeadvertisedbysettingthemsidbFeatureAttributesFavorAdvertiseattribute.ThisvaluecannotbesetifthevalueoftheAllowAdvertiseattributeis'no'sincethatwouldasktheinstallertodisallowtheadvertisedstateforthisfeaturewhileatthesametimefavoringit.

installSetsthefeaturetothedefaultnon-advertisedinstallationoption.

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

HowTosandExamplesHowTo:Addafiletoyourinstaller

SeeAlsoWixSchema,FeatureRef

Page 1296: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1297: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SeeAlsoWixSchema,FeatureGroupRef

Page 1298: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1299: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

SeeAlsoWixSchema,FeatureGroup

Page 1300: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1301: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

SeeAlsoWixSchema,Feature

Page 1302: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1303: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

FirewallExceptionFormatsFileGameHelpCollectionHelpFileNativeImagePerfCounterPerfCounterManifestPermissionExSnapInTypesFileVsixPackage

Attributes

Name Type Description

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

Thefileisa.NETFrameworkassembly.

noThefileisnota.NETFrameworkorWin32assembly.

Page 1304: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Thisisthedefaultvalue.

win32ThefileisaWin32assembly.

AssemblyApplication String Specifiesthefileidentifieroftheapplicationfile.Thisassemblywillbeisolatedtothesamedirectoryastheapplicationfile.Ifthisattributeisabsent,theassemblywillbeinstalledtotheGlobalAssemblyCache(GAC).ThisattributemayonlybespecifiediftheAssemblyattributeissetto'.net'or'win32'.

AssemblyManifest String Specifiesthefileidentifierofthemanifestfilethatdescribesthisassembly.Themanifestfileshouldbeinthesamecomponentastheassemblyitdescribes.ThisattributemayonlybespecifiediftheAssemblyattributeissetto'.net'or'win32'.

BindPath String Alistofpaths,separatedbysemicolons,thatrepresentthepathstobesearchedtofindtheimportedDLLs.Thelist

Page 1305: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

isusuallyalistofproperties,witheachpropertyenclosedinsidesquarebrackets.Thevaluemaybesettoanemptystring.IncludingthisattributewillcauseanentrytobegeneratedforthefileintheBindImagetable.

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

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

Page 1306: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

file).TheVersionattributecannotbesetalongwiththisattributesincecompanionfilesarenotinstalledbasedontheirownversion.

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

DefaultLanguage String Thisisthedefaultlanguageofthisfile.linkerwillreplacethisvaluefromthevalueinthefileifthesuppressfilesoptionisnotused.

DefaultSize Integer Thisisthedefaultsizeofthisfile.Thelinkerwillreplacethisvaluefromthevalueinthefileifthesuppressfilesoptionisnotused.

DefaultVersion String Thisisthedefaultversionofthisfile.Thelinkerwillreplacethisvaluefromthevalueinthefileifthesuppressfilesoptionisnotused.

DiskId DiskIdType ThevalueofthisattributeshouldcorrespondtotheIdattributeofaMediaelementauthoredelsewhere.Bycreating

Page 1307: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

FontTitle String CausesanentrytobegeneratedforthefileintheFonttablewiththespecifiedFontTitle.Thisattributeisintendedtobeusedtoregisterthefileasanon-TrueTypefont.

Hidden YesNoType Settoyesinordertohavethefile'shiddenattributesetwhenitisinstalledonthetargetmachine.

Id String TheuniqueidentifierforthisFileelement.IfyouomitId,itdefaultstothe

Page 1308: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

filenameportionoftheSourceattribute,ifspecified.MaybereferencedasaPropertybyspecifying[#value].

KeyPath YesNoType Settoyesinordertoforcethisfiletobethekeypathfortheparentcomponent.

LongName LongFileNameType Thisattributehasbeendeprecated;pleaseusetheNameattributeinstead.

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

Page 1309: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

specifytheshortfilename,thentheShortNameattributemaybespecified.Finally,ifthisattributeisomittedthenitsdefaultvalueisthefilenameportionoftheSourceattribute,ifoneisspecified,orthevalueoftheIdattribute,iftheSourceattributeisomittedordoesn'tcontainafilename.

PatchAllowIgnoreOnError YesNoType Settoindicatethatthepatchisnon-vital.

PatchGroup Integer Thisattributemustbesetforpatch-addedfiles.Eachpatchshouldbeassignedadifferentpatchgroupnumber.Patchgroupsnumbersmustbegreater0andshouldbeassignedconsecutively.Forexample,thefirstpatchshouldusePatchGroup='1',thesecondpatchwillhavePatchGroup='2',etc...

PatchIgnore YesNoType Preventstheupdatingofthefilethatisinfactchangedintheupgradedimagerelativetothetargetimages.

PatchWholeFile YesNoType Setiftheentirefile

Page 1310: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

shouldbeinstalledratherthancreatingabinarypatch.

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

Thefileisa.NETFrameworkassemblythatisprocessor-neutral.

x86Thefileisa.NETFrameworkassemblyforthex86processor.

x64Thefileisa.NETFrameworkassemblyforthex64processor.

ia64Thefileisa.NETFrameworkassemblyfortheia64processor.

ReadOnly YesNoType Settoyesinordertohavethefile'sread-onlyattributesetwhenitisinstalledonthetarget

Page 1311: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

machine.

SelfRegCost Integer Thecostofregisteringthefileinbytes.Thismustbeanon-negativenumber.IncludingthisattributewillcauseanentrytobegeneratedforthefileintheSelfRegtable.

ShortName ShortFileNameType Theshortfilenameofthefilein8.3format.Thisattributeshouldonlybesetifthereisaconflictbetweengeneratedshortfilenamesortheuserwantstomanuallyspecifytheshortfilename.

Source String SpecifiesthepathtotheFileinthebuildprocess.OverridesdefaultsourcepathsetbyparentdirectoriesandNameattribute.Thisattributemustbesetifnosourceinformationcanbegatheredfromparentdirectories.Formoreinformation,seeSpecifyingsourcefiles

src String Thisattributehasbeendeprecated;pleaseusetheSourceattributeinstead.

System YesNoType Settoyesinordertohavethefile'ssystem

Page 1312: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

attributesetwhenitisinstalledonthetargetmachine.

TrueType YesNoType CausesanentrytobegeneratedforthefileintheFonttablewithnoFontTitlespecified.ThisattributeisintendedtobeusedtoregisterthefileasaTrueTypefont.

Vital YesNoType Ifafileisvital,theninstallationcannotproceedunlessthefileissuccessfullyinstalled.Theuserwillhavenooptiontoignoreanerrorinstallingthisfile.Ifanerroroccurs,theycanmerelyretrytoinstallthefileoraborttheinstallation.Thedefaultis"yes,"unlessthe-sfdvitalswitch(candle.exe)orSuppressFileDefaultVitalproperty(.wixproj)isused.

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

HowTosandExamplesHowTo:Addafiletoyourinstaller

SeeAlsoWixSchema

Page 1313: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1314: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,CostInitialize,CostFinalize

Page 1315: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1316: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1317: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

RemarksWhentheparentDirectorySearch/@Depthattributeisgreaterthan0,theFileSearch/@Idattributemustbeabsentorthesameasthe

Page 1318: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

HowTosandExamplesHowTo:Checktheversionnumberofafileduringinstallation

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

Page 1319: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

FileSearchRefElement

DescriptionReferencesanexistingFileSearchelement.

WindowsInstallerreferencesNone

ParentsComponentSearch,DirectorySearch,DirectorySearchRef,IniFileSearch,RegistrySearch

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String SpecifytheIdtotheFileSearchtoreference.

Yes

Remarks

AreferencetoanotherFileSearchelementmustreferencethesameIdandthesameParentId.IfanyoftheseattributevaluesaredifferentyoumustinsteaduseaFileSearchelement.

SeeAlsoWixSchema,FileSearch

Page 1320: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1321: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1322: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

thisactionshouldcomeafter.

Before String Thenameofanactionthatthisactionshouldcomebefore.

Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,Upgrade

Page 1323: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1324: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1325: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

FragmentElement

DescriptionTheFragmentelementisthebuildingblockofcreatinganinstallerdatabaseinWiX.Oncedefined,theFragmentbecomesanimmutable,atomicunitwhichcaneitherbecompletelyincludedorexcludedfromaproduct.ThecontentsofaFragmentelementcanbelinkedintoaproductbyutilizingoneofthemany*Refelements.WhenlinkinginaFragment,itwillbenecessarytolinkinallofitsindividualunits.Forinstance,ifagivenFragmentcontainstwoComponentelements,youmustlinkbothunderfeaturesusingComponentRefforeachlinkedComponent.Otherwise,youwillgetalinkerwarningandhaveafloatingComponentthatdoesnotappearunderanyFeature.

WindowsInstallerreferencesNone

ParentsWix

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

AppId(min:0,max:unbounded)Binary(min:0,max:unbounded)BootstrapperApplication(min:0,max:unbounded)BootstrapperApplicationRef(min:0,max:unbounded)ComplianceCheck(min:0,max:unbounded)Component(min:0,max:unbounded)ComponentGroup(min:0,max:unbounded)Condition(min:0,max:unbounded)Container(min:0,max:unbounded)

Page 1326: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CustomAction(min:0,max:unbounded)CustomActionRef(min:0,max:unbounded)CustomTable(min:0,max:unbounded)Directory(min:0,max:unbounded)DirectoryRef(min:0,max:unbounded)EmbeddedChainer(min:0,max:unbounded)EmbeddedChainerRef(min:0,max:unbounded)EnsureTable(min:0,max:unbounded)Feature(min:0,max:unbounded)FeatureGroup(min:0,max:unbounded)FeatureRef(min:0,max:unbounded)Icon(min:0,max:unbounded)IgnoreModularization(min:0,max:unbounded)Media(min:0,max:unbounded)MediaTemplate(min:0,max:unbounded)PackageCertificates(min:0,max:unbounded)PackageGroup(min:0,max:unbounded)PatchCertificates(min:0,max:unbounded)PatchFamily(min:0,max:unbounded)PatchFamilyGroup(min:0,max:unbounded)PayloadGroup(min:0,max:unbounded)Property(min:0,max:unbounded)PropertyRef(min:0,max:unbounded)RelatedBundle(min:0,max:unbounded)SetDirectory(min:0,max:unbounded)SetProperty(min:0,max:unbounded)SFPCatalog(min:0,max:unbounded)UI(min:0,max:unbounded)UIRef(min:0,max:unbounded)Upgrade(min:0,max:unbounded)Variable(min:0,max:unbounded)WixVariable(min:0,max:unbounded)Sequence(min:1,max:1)

Page 1327: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

1. InstallExecuteSequence(min:0,max:1)2. InstallUISequence(min:0,max:1)3. AdminExecuteSequence(min:0,max:1)4. AdminUISequence(min:0,max:1)5. AdvertiseExecuteSequence(min:0,max:1)

AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

BootstrapperApplicationBootstrapperApplicationRefCloseApplicationComPlusApplicationComPlusApplicationRoleComPlusPartitionComPlusPartitionRoleComponentSearchComponentSearchRefConditionDirectorySearchDirectorySearchRefFileSearchFileSearchRefGroupHelpCollectionRefHelpFilterMutationPackageGroupPayloadGroupProductSearchProductSearchRefRegistrySearchRegistrySearchRefRelatedBundle

Page 1328: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RequiresRestartResourceSqlDatabaseUnitTestUnitTestRefUpdateUserUXVariableWebApplicationWebAppPoolWebDirPropertiesWebLogWebSite

Attributes

Name Type Description Required

Id String OptionalidentifierforaFragment.Shouldonlybesetbyadvanceduserstotagsections.

SeeAlsoWixSchema

Page 1329: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

IconElement

DescriptionIconusedforShortcut,ProgId,orClasselements(butnotUIcontrols)

WindowsInstallerreferencesIconTable

ParentsFragment,Module,Product,Shortcut

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheIdcannotbelongerthan55characters.InordertopreventerrorsincaseswheretheIdismodularized,itshouldnotbelongerthan18characters.

Yes

SourceFile String Pathtotheiconfile.

src String Thisattributehasbeendeprecated;pleaseusetheSourceFileattributeinstead.

HowTosandExamplesHowTo:Setyourinstaller'siconinAdd/RemoveProgramsHowTo:CreateashortcutontheStartMenu

SeeAlso

Page 1330: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixSchema

Page 1331: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

IconRefElement

DescriptionUsedonlyforPatchFamiliestoincludeonlyaicontableentryinapatch.

WindowsInstallerreferencesNone

ParentsPatchFamily

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifieroftheIconelementtoreference.

Yes

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

SeeAlsoWixSchema

Page 1332: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1333: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

IgnoreRangeElement

DescriptionSpecifiespartofafilethatistobeignoredduringpatching.

WindowsInstallerreferencesNone

ParentsExternalFile,TargetFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Length Int Lengthoftherange. Yes

Offset Int Offsetofthestartoftherange. Yes

SeeAlsoWixSchema

Page 1334: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1335: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

IncludeElement

DescriptionThisisthetop-levelcontainerelementforeverywxifile.

WindowsInstallerreferencesNone

ParentsNone

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

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

AttributesNone

SeeAlsoWixSchema

Page 1336: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1337: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1338: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Section String Thelocalizable.inifilesection.

Yes

ShortName ShortFileNameType Theshortnameofthein8.3format.Thisattributeshouldonlybesetifthereisaconflictbetweengeneratedshortnamesortheuserwantstomanuallyspecifytheshortname.

Page 1339: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

SeeAlsoWixSchema

Page 1340: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1341: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1342: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

specifytheshortname.

Type Enumeration MustbefileiflastchildisFileSearchelementandmustbedirectoryiflastchildisDirectorySearchelement.Thisattribute'svaluemustbeoneofthefollowing:directory

Adirectorylocation.

fileAfilelocation.Thisisthedefaultvalue.

rawAraw.inivalue.

SeeAlsoWixSchema,ComponentSearch,RegistrySearch

Page 1343: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1344: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1345: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

sequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1346: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1347: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1348: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1349: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1350: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1351: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1352: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1353: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1354: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1355: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1356: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1357: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1358: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

InstallServicesElement

DescriptionRegistersaserviceforthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesInstallServicesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1359: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1360: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1361: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1362: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

InstanceElement

DescriptionDefinesaninstancetransformforyourproduct.

WindowsInstallerreferencesNone

ParentsInstanceTransforms

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Theidentityoftheinstancetransform.Thisvaluewilldefinethenamebywhichtheinstanceshouldbereferredtoonthecommandline.Inaddition,thevalueofthethisattributewilldeterminewhatthevalueofthepropertyspecifiedinPropertyattributeonInstanceTransformswillchangetoforeachinstance.

Yes

ProductCode AutogenGuid TheProductCodeforthisinstance.

Yes

Page 1363: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ProductName String TheProductNameforthisinstance.

UpgradeCode Guid TheUpgradeCodeforthisinstance.

SeeAlsoWixSchema

Page 1364: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1365: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1366: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ProxyStubClassId32 Guid GUIDCLSIDfor32-bitproxystubtoCOMInterface.

Versioned YesNoType DetermineswhetheraTypelibversionentryshouldbecreatedwiththeotherCOMInterfaceregistrykeys.Defaultis'yes'.

SeeAlsoWixSchema

Page 1367: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

IsolateComponentElement

DescriptionSharedComponenttobeprivatelyreplicatedinfolderofparentComponent

WindowsInstallerreferencesIsolateComponentTable

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Shared String SharedComponentforthisapplicationComponent.

Yes

SeeAlsoWixSchema

Page 1368: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1369: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,IsolateComponent

Page 1370: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1371: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

thisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,Condition

Page 1372: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1373: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1374: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixSchema

Page 1375: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1376: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LogElement

DescriptionOverridesthedefaultlogsettingsforabundle.

WindowsInstallerreferencesNone

ParentsBundle

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Disable YesNoType DisablesthedefaultloggingintheBundle.Theendusercanstillgeneratealogfilebyspecifyingthe"-l"command-lineargumentwheninstallingtheBundle.

Extension String Theextensiontouseforthelog.Thedefaultis".log".

PathVariable String NameofaVariablethatwillholdthepathtothelogfile.Anemptyvaluewillcausethevariabletonotbeset.Thedefaultis"WixBundleLog".

Prefix String Filenameandoptionallyarelativepathtouseasthe

Page 1377: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

SeeAlsoWixSchema

Page 1378: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

MajorUpgradeElement

DescriptionSimplifiesauthoringformajorupgrades,includingsupportforpreventingdowngrades.

TheparentProductelementmusthavevalidUpgradeCodeandVersionattributes.

WhentheFindRelatedProductsactiondetectsarelatedproductinstalledonthesystem,itappendstheproductcodetothepropertynamedWIX_UPGRADE_DETECTED.AftertheFindRelatedProductsactionisrun,thevalueoftheWIX_UPGRADE_DETECTEDpropertyisalistofproductcodes,separatedbysemicolons(;),detectedonthesystem.

WindowsInstallerreferencesNone

ParentsProduct

InnerTextNone

ChildrenNone

Attributes

Name Type Description

AllowDowngrades YesNoType Whensettono(thedefault),productswithlowerversionnumbersareblockedfrominstallingwhenaproductwithahigherversionisinstalled;theDowngradeErrorMessagebespecified.

Page 1379: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Whensettoyes,anyversioncanbeinstalledoveranyotherversion.

AllowSameVersionUpgrades YesNoType Whensettono(thedefault),installingaproductwiththesameversionandupgradecode(butdifferentproductcode)isallowedandtreatedbyMSIastwoproducts.Whensettoyes,WiXsetsthemsidbUpgradeAttributesVersionMaxInclusiveattribute,whichtellsMSItotreatwiththesameversionasamajorupgrade.

Thisisusefulwhentwoproductversionsdifferonlyinthefourthversionfield.MSIspecificallyignoresthatfieldwhencomparingproductversions,sotwoproductsthatdifferonlyinthefourthversionfieldarethesameproductandneedthisattributesettoyestobedetected.

NotethatbecauseMSIignoresthefourthproductversionfield,settingthisattributetoyesalsoallowsdowngradeswhenthefirstthreeproductversionfieldsareidentical.example,productversion1.0.0.1will"upgrade"1.0.0.2998becausethey'reseenasthesameversion(1.0.0).Thatcouldreintroduceseriousbugssothesafestchoiceistochangethefirstthreeversionfieldsandomitthisattributetogetthedefaultofno.

Thisattributecannotbe"yes"whenAllowDowngradesisalso"yes"--AllowDowngradesalreadyallowstwoproductswiththesameversionnumbertoupgradeeachother.

Disallow YesNoType Whensettoyes,productswithhigerversion

Page 1380: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

numbersareblockedfromproductwithalowerversionisinstalled;theUpgradeErrorMessagebespecified.

Whensettono(thedefault),anyversioncanbeinstalledoveranylowerversion.

DisallowUpgradeErrorMessage String Themessagedisplayedifuserstrytoinstallaproductwithahigerversionnumberaproductwithalowerversionisinstalled.UsedonlywhenDisallow

DowngradeErrorMessage String Themessagedisplayedifuserstrytoinstallaproductwithalowerversionnumberaproductwithahigherversionisinstalled.UsedonlywhenAllowDowngradesdefault).

IgnoreRemoveFailure YesNoType Whensettoyes,failuresremovingtheinstalledproductduringtheupgradewillbeignored.

Whensettono(thedefault),failuresremovingtheinstalledproductduringtheupgradewillbeconsideredafailureand,dependingonthescheduling,rollbacktheupgrade.

MigrateFeatures YesNoType Whensettoyes(thedefault),theMigrateFeatureStatesstandardactionwillsetthefeaturestatesoftheupgradeproducttothoseoftheinstalledproduct.

Whensettono,theinstalledfeatureshavenoeffectontheupgradeinstallation.

RemoveFeatures String Aformattedstringthatcontainsthelistoffeaturestoremovefromtheinstalledproduct.Thedefaultistoremoveallfeatures.Notethatifyouuseformatted

Page 1381: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

propertyvaluesthatevaluatetoanemptystring,nofeatureswillberemoved;onlyomittingthisattributedefaultstoremovingallfeatures.

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

Formoreinformation,seeRemoveExistingProductsvaluemustbeoneofthefollowing:afterInstallValidate

(Default)SchedulesRemoveExistingProductsaftertheInstallValidatestandardschedulingremovestheinstalledproductentirelybeforeinstallingupgradeproduct.It'sslowestbutgivesthemostflexibilityinchangingcomponentsandfeaturesintheupgradeproduct.Notethatiftheinstallationoftheupgradeproductfails,themachinewillhaveneitherversioninstalled.

afterInstallInitializeSchedulesRemoveExistingProductsaftertheInstallInitializestandardaction.ThisissimilartotheafterInstallValidatescheduling,butiftheinstallationupgradeproductfails,WindowsInstalleralsorollsbacktheremovalofinstalledproduct--inotherwords,

Page 1382: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

reinstallsit.

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

afterInstallExecuteAgainSchedulesRemoveExistingProductsbetweentheInstallExecuteAgainandInstallFinalizestandardactions.identicaltotheafterInstallExecuteschedulingbutaftertheInstallExecuteAgainstandardinsteadofInstallExecute.

afterInstallFinalizeSchedulesRemoveExistingProductsaftertheInstallFinalizestandardaction.ThisissimilartotheandafterInstallExecuteAgainschedulingsbuttakesplaceoutsidetheinstallationtransactionsoifinstallation

Page 1383: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

oftheupgradeproductfails,WindowsInstallerdoesnotrollbacktheremovaloftheinstalledproduct,sothemachinewillhavebothversions

SeeAlsoWixSchema

Page 1384: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

MediaElement

DescriptionMediaelementdescribesadiskthatmakesupthesourcemediafortheinstallation.

WindowsInstallerreferencesMediaTable

ParentsFragment,Patch,Product

InnerTextNone

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

DigitalSignature(min:0,max:unbounded)PatchBaseline(min:0,max:unbounded)SymbolPath(min:0,max:unbounded)

Attributes

Name Type Description

Id DiskIdType DiskidentifierforMediatable.Thisnumbermustbeequaltoorgreaterthan1.

Cabinet String Thenameofthecabinetifsomeorallofthefilesstoredonthemediaareinacabinetfile.Ifnocabinetsareused,thisattributemustnot

Page 1385: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

beset.

CompressionLevel CompressionLevelType IndicatesthecompressionlevelfortheMedia'scabinet.ThisattributecanonlybeusedinconjunctionwiththeCabinetattribute.Thedefaultis'mszip'.

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

EmbedCab YesNoType Instructsthebindertoembedthecabinetintheproductif'yes'.ThisattributecanonlybespecifiedinconjunctionwiththeCabinetattribute.

Layout String ThisattributespecifiestherootdirectoryfortheuncompressedfilesthatareapartofthisMediaelement.Bydefault,thesrcwill

Page 1386: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

Page 1387: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

directoryreferencedinthiscolumn.Ifempty,theexternalcabinetmustbelocatedintheSourceDirdirectory.

src String Thisattributehasbeendeprecated;pleaseusetheLayoutattributeinstead.

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

SeeAlsoWixSchema

Page 1388: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

MediaTemplateElement

DescriptionMediaTeplateelementdescribesinformationtoautomaticallyassignfilestocabinets.Amaximumumnumberofcabinetscreatedis999.

WindowsInstallerreferencesNone

ParentsFragment,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description

CabinetTemplate String Templatednameofthecabinetifsomeorallofthefilesstoredonthemediaareinnamemustbeginwitheitheraletteroranunderscore,containmaximumoffivecharactersand{0}inthecabinetnamepartandmustendthreecharacterextension.defaultiscab{0}.cab.

CompressionLevel Enumeration IndicatesthecompressionlevelfortheMedia'scabinet.canonlybeusedinconjunctionwiththeCabinetattribute.defaultis'mszip'.valuemustbeoneofthefollowing:high

Page 1389: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

low

medium

mszip

none

DiskPrompt String Thediskname,whichisusuallythevisibletextprintedonthedisk.Thislocalizabletextisusedtheuserwhenthisdiskneedstobeinserted.Thisvaluewillbeusedinthe"[1]"oftheProperty.UsingthisattributewillrequireyoutodefineaDiskPromptProperty.

EmbedCab YesNoType Instructsthebindertoembedthecabinetsintheproductif'yes'.

MaximumCabinetSizeForLargeFileSplitting Int Maximumsizeofcabinetfilesinmegabytesforlargefiles.ThisattributeisusedforpackagingthatarelargerthanMaximumUncompressedMediaSizeintosmallercabinets.Ifcabinetsizeexceedthisvalue,thensettingthisattributewillcausethefiletobesplitintomultiplemaximumsize.ForsimplycontrollingcabinetsizewithoutfilesplittinguseMaximumUncompressedMediaSizeattribute.SettingthisattributewilldisablesmartcabbingfeaturethisFragment/Product.SettingWIX_MCSLFSenvironmentvariablecanbeusedtooverridethisvalue.Minimumallowedvalueofthisattributeis20MB.Maximum

Page 1390: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

allowedvalueandtheDefaultvalueofthisattributeis2048MB(2GB).

MaximumUncompressedMediaSize Int Sizeofuncompressedfilesineachcabinet,inmegabytes.WIX_MUMSenvironmentvariablecanbeusedtooverridethisvalue.Defaultvalueis200MB.

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

SeeAlsoWixSchema

Page 1391: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

MergeElement

DescriptionMergedirectivetobringinamergemodulethatwillberedirectedtotheparentdirectory.

WindowsInstallerreferencesNone

ParentsDirectory,DirectoryRef

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

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

Attributes

Name Type Description Required

Id String TheuniqueidentifierfortheMergeelementinthesourcecode.ReferencedbytheMergeRef/@Id.

Yes

DiskId DiskIdType ThevalueofthisattributeshouldcorrespondtotheIdattributeofaMediaelementauthoredelsewhere.By

Page 1392: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

FileCompression YesNoType Specifiesifthefilesinthemergemoduleshouldbecompressed.

Language LocalizableInteger SpecifiesthedecimalLCIDorlocalizationtokenforthelanguagetomergetheModuleinas.

Yes

SourceFile String Pathtothesourcelocationofthemergemodule.

src String Thisattributehasbeendeprecated;pleaseusetheSourceFileattributeinstead.

Page 1393: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HowTosandExamplesHowTo:InstalltheVisualC++Redistributablewithyourinstaller

SeeAlsoWixSchema,MergeRef

Page 1394: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1395: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1396: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1397: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Extension.Thedefaultvalueis'no'.

SeeAlsoWixSchema

Page 1398: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1399: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

EmbeddedChainerRef(min:0,max:unbounded)EnsureTable(min:0,max:unbounded)Exclusion(min:0,max:unbounded)Icon(min:0,max:unbounded)IgnoreModularization(min:0,max:unbounded)IgnoreTable(min:0,max:unbounded)Property(min:0,max:unbounded)PropertyRef(min:0,max:unbounded)SetDirectory(min:0,max:unbounded)SetProperty(min:0,max:unbounded)SFPCatalog(min:0,max:unbounded)Substitution(min:0,max:unbounded)UI(min:0,max:unbounded)UIRef(min:0,max:unbounded)WixVariable(min:0,max:unbounded)Sequence(min:1,max:1)1. InstallExecuteSequence(min:0,max:1)2. InstallUISequence(min:0,max:1)3. AdminExecuteSequence(min:0,max:1)4. AdminUISequence(min:0,max:1)5. AdvertiseExecuteSequence(min:0,max:1)

AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

CloseApplicationComPlusApplicationComPlusApplicationRoleComPlusPartitionComPlusPartitionRoleGroupHelpCollectionRefHelpFilter

Page 1400: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RequiresRestartResourceSqlDatabaseUserWebApplicationWebAppPoolWebDirPropertiesWebLogWebSite

Attributes

Name Type Description Required

Id String Thenameofthemergemodule(notthefilename).

Yes

Codepage String ThecodepageintegervalueorwebnamefortheresultingMSM.Seeremarksformoreinformation.

Guid Guid Thisattributeisdeprecated.UsethePackage/@Idattributeinstead.

Language LocalizableInteger ThedecimallanguageID(LCID)ofthemergemodule.

Yes

Version String Themajorandminorversionsofthemergemodule.

Yes

Remarks

YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformore

Page 1401: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

information.

SeeAlsoWixSchema

Page 1402: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1403: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

MsiPackageElement

DescriptionDescribesasinglemsipackagetoinstall.

WindowsInstallerreferencesNone

ParentsChain,PackageGroup

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

MsiProperty(min:0,max:unbounded)Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)SlipstreamMsp(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.Theextension'sCompilerExtension.ParseElement()methodwillbecalledwiththepackageidentifierasthefirstvalueincontextValues.

MsiPropertyPayloadProvidesSlipstreamMsp

Attributes

Name Type Description

After String Theidentifierofanotherpackagethatthisoneshouldbeinstalledafter.BydefaulttheAfter

Page 1404: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

attributeissettotheprevioussiblingpackageintheChainorPackageGroupelement.Ifthisattributeisspecifiedensurethatacycleisnotcreatedexplicitlyorimplicitly.

Cache YesNoAlwaysType Whethertocachethepackage.Thedefaultis"yes".

CacheId String Theidentifiertousewhencachingthepackage.

Compressed YesNoDefaultType Whetherthepackagepayloadshouldbeembeddedinacontainerorleftasanexternalpayload.

Description String Specifiesthedescriptiontoplaceinthebootstrapperapplicationdatamanifestforthepackage.Bydefault,ExePackagesFileNamefieldfromtheversioninformation,MsiPackagesusetheARPCOMMENTSproperty,andMspPackagesusepatchmetadataproperty.Otherpackagetypesmustusethisattributetodefineadescriptioninthebootstrapperapplicationdatamanifest.

DisplayInternalUI YesNoType SpecifieswhetherthebundlewillshowtheUIauthoredintothemsipackage.Thedefaultis"no"whichmeansallinformationisroutedtothebootstrapperapplicationtoprovideaunifiedinstallationUIauthoredintothemsipackagewillbedisplayedontopofUI.

DisplayName String Specifiesthedisplaynametoplaceinthebootstrapperapplicationdatamanifestforthepackage.Bydefault,ExePackagesProductNamefieldfromtheversioninformation,MsiPackagesusetheProductNameproperty,andMspPackagesusemetadataproperty.Otherpackagetypesmustusethisattributetodefineadisplaynameinthe

Page 1405: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

bootstrapperapplicationdatamanifest.

DownloadUrl String TheURLtousetodownloadthepackage.Thefollowingsubstitutionsaresupported:

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

EnableFeatureSelection YesNoType SpecifieswhetherthebundlewillallowindividualcontrolovertheinstallationstateofFeaturesinsidethemsipackage.Managingfeatureselectionrequiresspecialcaretoensuretheinstall,modify,updateandthepackageisalwayscorrect.Thedefaultis"no".

ForcePerMachine YesNoType Overridetheautomaticper-machinedetectionofMSIpackagesandforcethepackagetobeper-machine.toolstodetecttheexpectedvalue.

Id String Identifierforthispackage,fororderingandcross-referencing.ThedefaultistheNameattribute(i.e.invalidcharactersarereplacedwithunderscores).

InstallCondition String Aconditiontoevaluatebeforeinstallingthepackage.Thepackagewillonlybeinstallediftheconditionevaluatestotrue.Iftheconditionevaluatestofalseandthebundleisbeinginstalled,repaired,ormodified,thepackagewillbeuninstalled.

InstallSize String Thesizethispackagewilltakeondiskinbytesafteritisinstalled.Bydefault,thebinderwillcalculatetheinstallsizebyscanningthepackage(FiletableforMSIs,PayloadsforEXEs)andusethetotalfortheinstallsizeofthepackage.

Page 1406: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LogPathVariable String NameofaVariablethatwillholdthepathtothelogfile.Anemptyvaluewillcausethevariabletonotbeset.Thedefaultis"WixBundleLog_[PackageId]"exceptforMSUpackageswhichdefaulttonologging.

Name String Thedestinationpathandfilenameforthischainpayload.Usethisattributetorenametheentrypointorextractitintoasubfolder.ThedefaultvalueisthefilenamefromtheSourceFileattribute,ifprovided.Ataminimum,theNameorSourceFileattributemustbespecified.allowed.

Permanent YesNoType Specifieswhetherthepackagecanbeuninstalled.Thedefaultis"no".

RollbackLogPathVariable String NameofaVariablethatwillholdthepathtothelogfileusedduringrollback.Anemptyvaluewillcausethevariabletonotbeset.Thedefaultis"WixBundleRollbackLog_[PackageId]"exceptforMSUpackageswhich

SourceFile String Locationofthepackagetoaddtothebundle.ThedefaultvalueistheNameattribute,ifprovided.Nameattributemustbespecified.

SuppressLooseFilePayloadGeneration YesNoType Thisattributehasbeendeprecated.Whenthevalueis"yes",theBinderwillnotreadtheMSIpackagewouldotherwisebeautomaticallyincludedintheBundleasPayloads.notbeabletoinstalltheMSIpackagecorrectly.Thedefaultis"no".

SuppressSignatureVerification YesNoType Bydefault,aBundlewillusethehashofapackagetoverifyitscontents.Ifthisattributeisexplicitlysetto"no"withanAuthenticodesignaturetheBundlewill

Page 1407: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

verifythecontentsofthepackageusingthesignatureinstead.Therefore,thedefaultforthisattributecouldbeconsideredtobe"yes".Itisunusualfor"yes"toattribute.Inthiscase,thedefaultwaschangedinWiXv3.9afterexperiencingrealworldissueswithWindowsverifyingAuthenticodesignatures.SincetheAuthenticodesignaturesarenomoresecurethanhashingthedefaultwaschanged.

Visible YesNoType SpecifieswhethertheMSIwillbedisplayedinProgramsandFeatures(alsoknownasAdd/RemovePrograms).If"yes"isMSIpackageinformationwillbedisplayedinProgramsandFeatures.Thedefault"no"indicatestheMSI

Vital YesNoType Specifieswhetherthepackagemustsucceedforthechaintocontinue.Thedefault"yes"indicatesthatifthepackagefailsthenthechainwillfailandrollbackorstop.Ifthenthechainwillcontinueevenifthepackagereportsfailure.

AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.extensionscanregisteradditionalattributesatthispointintheschema.CompilerExtension.ParseAttribute()methodwillbecalledwiththepackageidentifierin

PrereqSupportPackage YesNoType Whensetto"yes",thePrereqBAwillplanthepackagetobeinstalledifitsInstallConditionis"true"orempty.(http://schemas.microsoft.com/wix/BalExtension)

SeeAlsoWixSchema

Page 1408: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

MsiPropertyElement

DescriptionAllowsanMSIpropertytobesetbasedonthevalueofaburnengineexpression.

WindowsInstallerreferencesNone

ParentsMsiPackage,MspPackage

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Name String ThenameoftheMSIpropertytoset.BurncontrolsthefollowMSIpropertiessotheycannotbesetwithMsiProperty:ACTION,ALLUSERS,REBOOT,REINSTALL,REINSTALLMODE

Yes

Value String Thevaluetosetthepropertyto.Thisstringisevaluatedbytheburnengineandcanbeassimpleasaburnenginevariablereferenceorascomplexasafullexpression.

Yes

SeeAlsoWixSchema

Page 1409: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1410: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

MsiUnpublishAssembliesElement

DescriptionManagestheunadvertisementofCLRandWin32assembliesthatarebeingremoved.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesMsiUnpublishAssembliesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1411: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

MspPackageElement

DescriptionDescribesasinglemsppackagetoinstall.

WindowsInstallerreferencesNone

ParentsChain,PackageGroup

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

MsiProperty(min:0,max:unbounded)Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.Theextension'sCompilerExtension.ParseElement()methodwillbecalledwiththepackageidentifierasthefirstvalueincontextValues.

PayloadProvides

Attributes

Name Type Description

After String Theidentifierofanotherpackagethatthisoneshouldbeinstalledafter.BydefaulttheAfterattributeissettotheprevioussiblingpackageintheChainorPackageGroupelement.Ifthisattributeisspecifiedensurethatacycleisnot

Page 1412: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

createdexplicitlyorimplicitly.

Cache YesNoAlwaysType Whethertocachethepackage.Thedefaultis"yes".

CacheId String Theidentifiertousewhencachingthepackage.

Compressed YesNoDefaultType Whetherthepackagepayloadshouldbeembeddedinacontainerorleftasanexternalpayload.

Description String Specifiesthedescriptiontoplaceinthebootstrapperapplicationdatamanifestforthepackage.Bydefault,ExePackagesFileNamefieldfromtheversioninformation,MsiPackagesusetheARPCOMMENTSproperty,andMspPackagesusepatchmetadataproperty.Otherpackagetypesmustusethisattributetodefineadescriptioninthebootstrapperapplicationdatamanifest.

DisplayInternalUI YesNoType SpecifieswhetherthebundlewillshowtheUIauthoredintothemsppackage.Thedefaultis"no"whichmeansallinformationisroutedtothebootstrapperapplicationtoprovideaunifiedinstallationexperience.If"yes"isspecifiedtheUIauthoredintothemsppackagewillbedisplayedontopofUI.

DisplayName String Specifiesthedisplaynametoplaceinthebootstrapperapplicationdatamanifestforthepackage.Bydefault,ExePackagesProductNamefieldfromtheversioninformation,MsiPackagesusetheProductNameproperty,andMspPackagesusemetadataproperty.Otherpackagetypesmustusethisattributetodefineadisplaynameinthebootstrapperapplicationdatamanifest.

DownloadUrl String TheURLtousetodownloadthepackage.The

Page 1413: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

followingsubstitutionsaresupported:

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

Id String Identifierforthispackage,fororderingandcross-referencing.ThedefaultistheNameattributemodifiedtobesuitableasanidentifier(i.e.invalidcharactersarereplacedwithunderscores).

InstallCondition String Aconditiontoevaluatebeforeinstallingthepackage.Thepackagewillonlybeinstallediftheconditionevaluatestotrue.Iftheconditionevaluatestofalseandthebundleisbeinginstalled,repaired,ormodified,thepackagewillbeuninstalled.

InstallSize String Thesizethispackagewilltakeondiskinbytesafteritisinstalled.Bydefault,thebinderwillcalculatetheinstallsizebyscanningthepackage(FiletableforMSIs,PayloadsforEXEs)andusethetotalfortheinstallsizeofthepackage.

LogPathVariable String NameofaVariablethatwillholdthepathtothelogfile.Anemptyvaluewillcausethevariabletonotbeset.Thedefaultis"WixBundleLog_[PackageId]"exceptforMSUpackageswhichdefaulttonologging.

Name String Thedestinationpathandfilenameforthischainpayload.Usethisattributetorenametheentrypointorextractitintoasubfolder.ThedefaultvalueisthefilenamefromtheSourceFileattribute,ifprovided.Ataminimum,theNameorSourceFileattributemustbespecified.Theuseof'..'directoriesisnotallowed.

Page 1414: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PerMachine YesNoDefaultType Indicatesthepackagemustbeexecutedelevated.Thedefaultis"no".

Permanent YesNoType Specifieswhetherthepackagecanbeuninstalled.Thedefaultis"no".

RollbackLogPathVariable String NameofaVariablethatwillholdthepathtothelogfileusedduringrollback.Anemptyvaluewillcausethevariabletonotbeset.Thedefaultis"WixBundleRollbackLog_[PackageId]"exceptforMSUpackageswhich

Slipstream YesNoType Specifieswhethertoautomaticallyslipstreamthepatchforanytargetmsipackagesinthechain.Thedefaultis"no".is"no",youcanstillauthortheSlipstreamMspelementunderMsiPackageelementsasdesired.

SourceFile String Locationofthepackagetoaddtothebundle.ThedefaultvalueistheNameattribute,ifprovided.Ataminimum,theSourceFileorNameattributemustbespecified.

SuppressSignatureVerification YesNoType Bydefault,aBundlewillusethehashofapackagetoverifyitscontents.Ifthisattributeisexplicitlysetto"no"withanAuthenticodesignaturetheBundlewillverifythecontentsofthepackageusingthesignatureinstead.Therefore,thedefaultforthisattributecouldbeconsideredtobe"yes".Itisunusualfor"yes"toattribute.Inthiscase,thedefaultwaschangedinWiXv3.9afterexperiencingrealworldissueswithWindowsverifyingAuthenticodesignatures.SincetheAuthenticodesignaturesarenomoresecurethanhashingthedefaultwaschanged.

Vital YesNoType Specifieswhetherthepackagemustsucceedforthechaintocontinue.Thedefault"yes"

Page 1415: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

indicatesthatifthepackagefailsthenthechainwillfailandrollbackorstop.Ifthenthechainwillcontinueevenifthepackagereportsfailure.

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

PrereqSupportPackage YesNoType Whensetto"yes",thePrereqBAwillplanthepackagetobeinstalledifitsInstallConditionis"true"orempty.(http://schemas.microsoft.com/wix/BalExtension)

SeeAlsoWixSchema,SlipstreamMsp

Page 1416: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

MsuPackageElement

DescriptionDescribesasinglemsupackagetoinstall.

WindowsInstallerreferencesNone

ParentsChain,PackageGroup

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)RemotePayload(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.Theextension'sCompilerExtension.ParseElement()methodwillbecalledwiththepackageidentifierasthefirstvalueincontextValues.

PayloadProvidesRemotePayload

Attributes

Name Type Description

After String Theidentifierofanotherpackagethatthisoneshouldbeinstalledafter.BydefaulttheAfterattributeissettotheprevioussiblingpackageintheChainorPackageGroupelement.Ifthis

Page 1417: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

attributeisspecifiedensurethatacycleisnotcreatedexplicitlyorimplicitly.

Cache YesNoAlwaysType Whethertocachethepackage.Thedefaultis"yes".

CacheId String Theidentifiertousewhencachingthepackage.

Compressed YesNoDefaultType Whetherthepackagepayloadshouldbeembeddedinacontainerorleftasanexternalpayload.

Description String Specifiesthedescriptiontoplaceinthebootstrapperapplicationdatamanifestforthepackage.Bydefault,ExePackagesFileNamefieldfromtheversioninformation,MsiPackagesusetheARPCOMMENTSproperty,andMspPackagesusepatchmetadataproperty.Otherpackagetypesmustusethisattributetodefineadescriptioninthebootstrapperapplicationdatamanifest.

DetectCondition String Aconditionthatdeterminesifthepackageispresentonthetargetsystem.Thisconditioncanusebuilt-invariablesandvariablesreturnedbysearches.ThisconditionisnecessarybecauseWindowsdoesn'tprovideapresenceofanMsuPackage.Burnusesthisconditiontodeterminehowtotreatthisduringabundleaction;forexample,ifthisconditionisfalseoromittedandthebundleisbeinginstalled,Burnwillinstallthispackage.

DisplayName String Specifiesthedisplaynametoplaceinthebootstrapperapplicationdatamanifestforthepackage.Bydefault,ExePackagesProductNamefieldfromtheversioninformation,MsiPackagesusetheProductNameproperty,andMspPackagesusemetadataproperty.Otherpackagetypesmustusethisattributetodefineadisplaynameinthe

Page 1418: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

bootstrapperapplicationdatamanifest.

DownloadUrl String TheURLtousetodownloadthepackage.Thefollowingsubstitutionsaresupported:

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

Id String Identifierforthispackage,fororderingandcross-referencing.ThedefaultistheNameattributemodifiedtobesuitableasanidentifier(i.e.invalidcharactersarereplacedwithunderscores).

InstallCondition String Aconditiontoevaluatebeforeinstallingthepackage.Thepackagewillonlybeinstallediftheconditionevaluatestotrue.Iftheconditionevaluatestofalseandthebundleisbeinginstalled,repaired,ormodified,thepackagewillbeuninstalled.

InstallSize String Thesizethispackagewilltakeondiskinbytesafteritisinstalled.Bydefault,thebinderwillcalculatetheinstallsizebyscanningthepackage(FiletableforMSIs,PayloadsforEXEs)andusethetotalfortheinstallsizeofthepackage.

KB String TheknowledgebaseidentifierfortheMSU.TheKBattributemustbespecifiedtoenabletheMSUpackagetouninstallationisonlysupportedonWindows7andlater.WhentheKBattributePermanentattributewillthecontrolwhetherthepackageisuninstalled.

LogPathVariable String NameofaVariablethatwillholdthepathtothelogfile.Anemptyvaluewillcausethevariabletonotbeset.Thedefaultis"WixBundleLog_[PackageId]"exceptforMSU

Page 1419: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

packageswhichdefaulttonologging.

Name String Thedestinationpathandfilenameforthischainpayload.Usethisattributetorenametheentrypointorextractitintoasubfolder.ThedefaultvalueisthefilenamefromtheSourceFileattribute,ifprovided.Ataminimum,theNameorSourceFileattributemustbespecified.Theuseof'..'directoriesisnotallowed.

Permanent YesNoType Specifieswhetherthepackagecanbeuninstalled.Thedefaultis"no".

RollbackLogPathVariable String NameofaVariablethatwillholdthepathtothelogfileusedduringrollback.Anemptyvaluewillcausethevariabletonotbeset.Thedefaultis"WixBundleRollbackLog_[PackageId]"exceptforMSUpackageswhich

SourceFile String Locationofthepackagetoaddtothebundle.ThedefaultvalueistheNameattribute,ifprovided.Ataminimum,theSourceFileorNameattributemustbespecified.

SuppressSignatureVerification YesNoType Bydefault,aBundlewillusethehashofapackagetoverifyitscontents.Ifthisattributeisexplicitlysetto"no"withanAuthenticodesignaturetheBundlewillverifythecontentsofthepackageusingthesignatureinstead.Therefore,thedefaultforthisattributecouldbeconsideredtobe"yes".Itisunusualfor"yes"toattribute.Inthiscase,thedefaultwaschangedinWiXv3.9afterexperiencingrealworldissueswithWindowsverifyingAuthenticodesignatures.SincetheAuthenticodesignaturesarenomoresecurethanhashingthedefaultwaschanged.

Vital YesNoType Specifieswhetherthepackagemustsucceedfor

Page 1420: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

thechaintocontinue.Thedefault"yes"indicatesthatifthepackagefailsthenthechainwillfailandrollbackorstop.Ifthenthechainwillcontinueevenifthepackagereportsfailure.

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

PrereqSupportPackage YesNoType Whensetto"yes",thePrereqBAwillplanthepackagetobeinstalledifitsInstallConditionis"true"orempty.(http://schemas.microsoft.com/wix/BalExtension)

SeeAlsoWixSchema

Page 1421: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

MultiStringValueElement

DescriptionUseseveraloftheseelementstospecifyeachregistryvalueinamultiStringregistryvalue.ThiselementcannotbeusediftheValueattributeisspecifiedunlesstheTypeattributeissetto'multiString'.ThevaluesshouldgointhetextareaoftheMultiStringValueelement.

WindowsInstallerreferencesRegistryTable

ParentsRegistryValue

SeeAlsoWixSchema

Page 1422: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1423: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

machineDatasourceisregisteredpermachine.

userDatasourceisregisteredperuser.

SeeAlsoWixSchema

Page 1424: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1425: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1426: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1427: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

OptionalUpdateRegistrationElement

DescriptionWritesadditionalinformationtotheWindowsregistrythatcanbeusedtodetectthebundle.Thisregistrationisintendedprimarilyforupdatetoanexistingproduct.

WindowsInstallerreferencesNone

ParentsBundle

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Classification String Thereleasetypeoftheupdatebundle,suchasUpdate,SecurityUpdate,ServicePack,etc.ThedefaultvalueisUpdate.

Department String Thenameofthedepartmentordivisionpublishingtheupdatebundle.ThePublishingGroupregistryvalueisnotwrittenifthisattributeisnotspecified.

Manufacturer String Thenameofthemanufacturer.ThedefaultistheBundle/@Manufacturerattribute,butmayalsobea

Page 1428: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

shortform,ex:WiXinsteadofWindowsInstallerXML.Anerrorisgeneratedatbuildtimeifneitherattributeisspecified.

Name String Thenameofthebundle.ThedefaultistheBundle/@Nameattribute,butmayalsobeashortform,ex:KB12345insteadofUpdatetoProduct(KB12345).Anerrorisgeneratedatbuildtimeifneitherattributeisspecified.

ProductFamily String Thenameofthefamilyofproductsbeingupdated.ThedefaultistheBundle/@ParentNameattribute.Thecorrespondingregistrykeyisnotcreatedifneitherattributeisspecified.

Remarks

Theattributesareusedtowritethefollowingregistryvaluestothekey:SOFTWARE\[Manufacturer]\Updates\[ProductFamily]\[Name]

ThisVersionInstalled:YPackageName:>bundlename<PackageVersion:>bundleversion<Publisher:[Manufacturer]PublishingGroup:[Department]ReleaseType:[Classification]InstalledBy:[LogonUser]InstalledDate:[Date]InstallerName:>installername<InstallerVersion:>installerversion<

SeeAlsoWixSchema

Page 1429: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1430: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

description.

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

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

Page 1431: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

to200bydefaultasWindowsInstaller2.0wasthefirstversiontosupport64-bitpackages.

InstallPrivileges Enumeration UsethisattributetospecifythepriviligesrequiredtoinstallthepackageonWindowsVistaandabove.Thisattribute'svaluemustbeoneofthefollowing:limited

Setthisvaluetodeclarethatthepackagedoesnotrequireelevatedprivilegestoinstall.

elevatedSetthisvaluetodeclarethatthepackagerequireselevatedprivilegestoinstall.Thisisthedefaultvalue.

InstallScope Enumeration Usethisattributetospecifytheinstallationscopeof

Page 1432: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Setthisvaluetodeclarethatthepackageisaper-machineinstallationandrequireselevatedprivilegestoinstall.SetstheALLUSERSpropertyto1.

perUserSetthisvaluetodeclarethatthepackageisaper-userinstallationanddoesnotrequireelevatedprivilegestoinstall.Setsthepackage'sInstallPrivilegesattributeto"limited."

Keywords String Optionalkeywordsforbrowsing.

Languages String ThelistoflanguageIDs(LCIDs)

Page 1433: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

supportedinthepackage.

Manufacturer String Thevendorreleasingthepackage.

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

Setthisvaluetodeclarethatthepackageisanx86package.

ia64Setthisvaluetodeclarethatthepackageisania64package.ThisvaluerequiresthattheInstallerVersionpropertybeset

Page 1434: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

to200orgreater.

x64Setthisvaluetodeclarethatthepackageisanx64package.ThisvaluerequiresthattheInstallerVersionpropertybesetto200orgreater.

armSetthisvaluetodeclarethatthepackageisanarmpackage.ThisvaluerequiresthattheInstallerVersionpropertybesetto500orgreater.

intelThisvaluehasbeendeprecated.Use"x86"instead.

intel64Thisvaluehasbeendeprecated.Use"ia64"

Page 1435: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

instead.

Platforms String Thelistofplatformssupportedbythepackage.Thisattributehasbeendeprecated.Specifythe-archswitchatthecandle.execommandlineortheInstallerPlatformpropertyina.wixprojMSBuildproject.

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

ShortNames YesNoType Setto'yes'tohaveshortfilenamesinthesource.

SummaryCodepage String Thecodepageintegervalueorwebnameforsummaryinfostringsonly.See

Page 1436: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

remarksformoreinformation.

Remarks

YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.

SeeAlsoWixSchema

Page 1437: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PackageCertificatesElement

DescriptionDigitalsignaturesthatidentifyinstallationpackagesinamulti-producttransaction.

WindowsInstallerreferencesMsiPackageCertificateTable

ParentsFragment,Product

InnerTextNone

ChildrenChoiceofelements(min:1,max:unbounded)

DigitalCertificate(min:1,max:unbounded)

AttributesNone

SeeAlsoWixSchema

Page 1438: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PackageGroupElement

DescriptionDescribesapackagegrouptoabootstrapper.

WindowsInstallerreferencesNone

ParentsFragment

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

ExePackage(min:0,max:unbounded)MsiPackage(min:0,max:unbounded)MspPackage(min:0,max:unbounded)MsuPackage(min:0,max:unbounded)PackageGroupRef(min:0,max:unbounded)RollbackBoundary(min:0,max:unbounded)

Attributes

Name Type Description Required

Id String Identifierforpackagegroup. Yes

SeeAlsoWixSchema

Page 1439: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PackageGroupRefElement

DescriptionCreateareferencetoPackageGroupelementthatexistsinsideaBundleorFragmentelement.

WindowsInstallerreferencesNone

ParentsChain,Container,PackageGroup

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifierofthePackageGroupelementtoreference.

Yes

After String Theidentifierofapackagethatthisgroupshouldbeinstalledafter.

SeeAlsoWixSchema,PackageGroup

Page 1440: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PatchElement

DescriptionThePatchelementisanalogoustothemainfunctioninaCprogram.Whenlinking,onlyonePatchsectioncanbegiventothelinkertoproduceasuccessfulresult.UsingthiselementcreatesanMSPfile.

WindowsInstallerreferencesNone

ParentsWix

InnerTextNone

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

Media(min:1,max:unbounded)OptimizeCustomActions(min:0,max:1):Indicateswhethercustomactionscanbeskippedwhenapplyingthepatch.PatchFamily(min:1,max:unbounded)PatchFamilyGroup(min:1,max:unbounded)PatchFamilyGroupRef(min:0,max:unbounded)PatchFamilyRef(min:0,max:unbounded)PatchInformation(min:0,max:1):Optionalelementthatallowsoverridingsummaryinformationproperties.PatchProperty(min:0,max:unbounded)TargetProductCodes(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

Attributes

Page 1441: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Name Type Description

AllowRemoval YesNoType Whetherthisisanuninstallablepatch.

ApiPatchingSymbolNoFailuresFlag YesNoType Flagusedwhencreatingabinaryfilepatch.Defaultis"no".Don'tfailpatchduetoimagehlpfailures.

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

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

Classification String Categoryofupdates.Recommendedvaluesare

Page 1442: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

ClientPatchId String Aneasilyreferencedidentityuniquetoapatchthatcanbeusedinproductauthoring.Seeremarksformoreinformation.

Codepage String ThecodepageintegervalueorwebnamefortheresultingMSP.Seeremarksformoreinformation.

Comments String Optionalcommentsforbrowsing.

Description String Descriptionofthepatch.

DisplayName String Atitleforthepatchthatissuitableforpublicdisplay.

Page 1443: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

InAdd/RemoveProgramsfromXPSP2on.

Id AutogenGuid Patchcodeforthispatch.

Manufacturer String Vendorreleasingthepackage

MinorUpdateTargetRTM YesNoType IndicatesthatthepatchtargetstheRTMversionoftheproductorthemostrecentmajorupgradepatch.AuthorthisoptionalpropertyinminorupdatepatchesthatcontainsequencinginformationtoindicatethatthepatchremovesallpatchesuptotheRTMversionoftheproduct,oruptothemostrecentmajorupgradepatch.Thispropertyisavailable

Page 1444: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

beginningwithWindowsInstaller3.1.

MoreInfoURL String AURLthatprovidesinformationspecifictothispatch.InAdd/RemoveProgramsfromXPSP2on.

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

OptimizePatchSizeForLargeFiles YesNoType Whenthisattributeisset,patchesforfilesgreaterthanapproximately4MBinsizemaybemadesmaller.

TargetProductName String Nameoftheapplicationortargetproduct

Page 1445: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

suite.

Remarks

YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.

TheClientPatchIdattributeallowsyoutospecifyaneasilyreferencedidentitythatyoucanuseinproductauthoring.ThisidentityprefixespropertiesaddedbyWiXtoapatchtransform,suchasClientPatchId.PatchCodeandClientPatchId.AllowRemoval.IfthepatchcodeGUIDisauto-generatedyoucouldnotreferenceanypropertiesusingthisauto-generatedprefix.

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

ThesummaryinformationisautomaticallypopulatedfromattributevaluesofthePatchelementincludingthecodepage.Ifyouwanttooverridesomeofthesesummaryinformationpropertiesoruseadifferentcodepageforthesummaryinformationitself,authorthePatchInformationelement.

SeeAlsoWixSchema

Page 1446: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1447: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PatchCertificatesElement

DescriptionIdentifiesthepossiblesignercertificatesusedtodigitallysignpatches.

WindowsInstallerreferencesMsiPatchCertificateTable

ParentsFragment,Product

InnerTextNone

ChildrenChoiceofelements(min:1,max:unbounded)

DigitalCertificate(min:1,max:unbounded)

AttributesNone

SeeAlsoWixSchema

Page 1448: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PatchCreationElement

DescriptionThePatchCreationelementisanalogoustothemainfunctioninaCprogram.Whenlinking,onlyonePatchCreationsectioncanbegiventothelinkertoproduceasuccessfulresult.Usingthiselementcreatesapcpfile.

WindowsInstallerreferencesNone

ParentsWix

InnerTextNone

ChildrenSequence(min:1,max:1)1. PatchInformation(min:1,max:1)2. PatchMetadata(min:0,max:1)3. Family(min:1,max:unbounded)4. Choiceofelements(min:0,max:unbounded)

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

Attributes

Name Type Description

Id Guid PatchCreationidentifier;thisistheprimarykeyforidentifyingpatches.

AllowMajorVersionMismatches YesNoType Usethistosetwhetherthemajorversionsbetweentheupgradeand

Page 1449: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

targetimagesmatch.SeeAllowProductVersionMajorMismatchesformoreinformation.

AllowProductCodeMismatches YesNoType Usethistosetwhethertheproductcodebetweentheupgradeandtargetimagesmatch.SeeAllowProductCodeMismatchesmoreinformation.

CleanWorkingFolder YesNoType UsethistosetwhetherPatchwizshouldcleanthetempfolderwhenfinished.SeeDontRemoveTempFolderWhenFinishedformoreinformation.

Codepage String ThecodepageintegervalueorwebnamefortheresultingPCP.Seeremarksformoreinformation.

OutputPath String Thefullpath,includingfilename,ofthepatchpackagefilethatistobegenerated.SeePatchOutputPathmoreinformation.

SourceList String Usedtolocatethe.mspfileforthepatchifthecachedcopyisunavailable.SeePatchSourceListformoreinformation.

SymbolFlags Int An8-digithexintegerrepresentingthecombinationofpatchsymbolusageflagstousewhencreatingabinaryfilepatch.SeeApiPatchingSymbolFlagsformoreinformation.

WholeFilesOnly YesNoType Usethistosetwhetherchangingfilesshouldbeincludedintheirentirety.SeeIncludeWholeFilesOnlyformoreinformation.

Remarks

Page 1450: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.

SeeAlsoWixSchema

Page 1451: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PatchFamilyElement

DescriptionCollectionofitemsthatshouldbekeptfromthedifferencesbetweentwoproducts.

WindowsInstallerreferencesNone

ParentsFragment,Patch,PatchFamilyGroup

InnerTextNone

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

All(min:0,max:unbounded)BinaryRef(min:0,max:unbounded)ComponentRef(min:0,max:unbounded)CustomActionRef(min:0,max:unbounded)DigitalCertificateRef(min:0,max:unbounded)DirectoryRef(min:0,max:unbounded)FeatureRef(min:0,max:unbounded)IconRef(min:0,max:unbounded)PropertyRef(min:0,max:unbounded)UIRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

TagRef

Attributes

Page 1452: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Name Type Description Required

Id String Identifierwhichindicatesasequencefamilytowhichthispatchbelongs.

Yes

ProductCode Guid SpecifiestheProductCodeoftheproductthatthisfamilyappliesto.

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

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

Yes

SeeAlsoWixSchema

Page 1453: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PatchFamilyGroupElement

DescriptionGroupstogethermultiplepatchfamiliestobeusedinotherlocations.

WindowsInstallerreferencesNone

ParentsFragment,Patch

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

PatchFamily(min:0,max:unbounded)PatchFamilyGroupRef(min:0,max:unbounded)PatchFamilyRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

Attributes

Name Type Description Required

Id String IdentifierforthePatchFamilyGroup. Yes

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

SeeAlsoWixSchema,PatchFamilyGroupRef

Page 1454: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PatchFamilyGroupRefElement

DescriptionCreateareferencetoaPatchFamilyGroupinanotherFragment.

WindowsInstallerreferencesNone

ParentsPatch,PatchFamilyGroup

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifierofthePatchFamilyGrouptoreference.

Yes

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

SeeAlsoWixSchema,PatchFamilyGroupRef

Page 1455: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PatchFamilyRefElement

DescriptionThiswillcausetheentirecontentsoftheFragmentcontainingthereferencedPatchFamilytobeusedintheprocessofcreatingapatch.

WindowsInstallerreferencesNone

ParentsPatch,PatchFamilyGroup

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifierofthePatchFamilytoreference.

Yes

ProductCode Guid SpecifiestheProductCodeoftheproductthatthisfamilyappliesto.

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

SeeAlsoWixSchema,PatchFamily

Page 1456: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PatchFilesElement

DescriptionQueriesthePatchtabletodeterminewhichpatchesaretobeapplied.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesPatchFilesAction

ParentsAdminExecuteSequence,InstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1457: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1458: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1459: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1460: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1461: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

theproduct,oruptothemostrecentmajorupgradepatch.ThispropertyisavailablebeginningwithWindowsInstaller3.1.

MoreInfoURL String AURLthatprovidesinformationspecifictothispatch.InAdd/RemoveProgramsfromXPSP2on.

Yes

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

TargetProductName String Nameoftheapplicationortargetproductsuite.

Yes

SeeAlso

Page 1462: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixSchema

Page 1463: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1464: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1465: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

documentationforSequencecolumnofMsiPatchSequencetableinMSISDK.

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

Target String Thisattributehasbeendeprecated;pleaseusetheTargetImageattributeinstead.

TargetImage String SpecifiestheTargetImagethatthisfamilyappliesto.ThisattributecannotthespecifiediftheProductCodeattributeisspecified.

SeeAlsoWixSchema

Page 1466: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PayloadElement

DescriptionDescribesapayloadtoabootstrapper.

WindowsInstallerreferencesNone

ParentsBootstrapperApplication,BootstrapperApplicationRef,ExePackage,MsiPackage,MspPackage,MsuPackage,PayloadGroup,UX

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Compressed YesNoDefaultType Whetherthepayloadshouldbeembeddedinacontainerorleftasanexternalpayload.

DownloadUrl String TheURLtousetodownloadthepackage.Thefollowingsubstitutions

Page 1467: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

aresupported:

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

Id String TheidentifierofPayloadelement.

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

SourceFile String Locationofthesourcefile.

Yes

Page 1468: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

SeeAlsoWixSchema

Page 1469: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PayloadGroupElement

DescriptionDescribesapayloadgrouptoabootstrapper.PayloadGroupsreferencedfromwithinaBundlearetiedtotheBundle.PayloadGroupsreferencedfromaFragmentaretiedtothecontextofwhateverreferencesthemsuchasanExePackageorMsiPackage.ItispossibletoshareaPayloadGroupbetweenmultiplePackagesand/oraBundlebycreatingmultiplereferencestoit.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)

Attributes

Name Type Description Required

Id String Identifierforpayloadgroup. Yes

SeeAlsoWixSchema

Page 1470: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PayloadGroupRefElement

DescriptionCreateareferencetoPayloadGroupelementthatexistsinsideaBundleorFragmentelement.

WindowsInstallerreferencesNone

ParentsBootstrapperApplication,BootstrapperApplicationRef,Bundle,ExePackage,MsiPackage,MspPackage,MsuPackage,PayloadGroup,UX

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifierofthePayloadGroupelementtoreference.

Yes

SeeAlsoWixSchema,PayloadGroup

Page 1471: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1472: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DeleteChild YesNoType Foradirectory,therighttodeleteadirectoryandallthefilesitcontains,includingread-onlyfiles.Onlyvalidundera'CreateFolder'parent.

Domain String

EnumerateSubkeys YesNoType

Execute YesNoType

FileAllRights YesNoType BitmaskforFILE_ALL_ACCESSfromWinNT.h(0x001F01FF).

GenericAll YesNoType

GenericExecute YesNoType

GenericRead YesNoType specifyingthiswillfailtograntreadaccess

GenericWrite YesNoType

Notify YesNoType

Read YesNoType

ReadAttributes YesNoType

ReadExtendedAttributes YesNoType

ReadPermission YesNoType

SpecificRightsAll YesNoType BitmaskforSPECIFIC_RIGHTS_ALLfromWinNT.h(0x0000FFFF).

Synchronize YesNoType

TakeOwnership YesNoType

Traverse YesNoType Foradirectory,therighttotraversethedirectory.Bydefault,usersareassignedtheBYPASS_TRAVERSE_CHECKING

Page 1473: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

privilege,whichignorestheFILE_TRAVERSEaccessright.Onlyvalidundera'CreateFolder'parent.

User String

Write YesNoType

WriteAttributes YesNoType

WriteExtendedAttributes YesNoType

SeeAlsoWixSchema

Page 1474: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1475: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1476: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1477: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

EnsureTable(min:0,max:unbounded)Feature(min:0,max:unbounded)FeatureGroupRef(min:0,max:unbounded)FeatureRef(min:0,max:unbounded)Icon(min:0,max:unbounded)InstanceTransforms(min:0,max:unbounded)MajorUpgrade(min:0,max:unbounded)Media(min:0,max:unbounded)MediaTemplate(min:0,max:unbounded)PackageCertificates(min:0,max:unbounded)PatchCertificates(min:0,max:unbounded)Property(min:0,max:unbounded)PropertyRef(min:0,max:unbounded)SetDirectory(min:0,max:unbounded)SetProperty(min:0,max:unbounded)SFPCatalog(min:0,max:unbounded)SymbolPath(min:0,max:unbounded)UI(min:0,max:unbounded)UIRef(min:0,max:unbounded)Upgrade(min:0,max:unbounded)WixVariable(min:0,max:unbounded)Sequence(min:1,max:1)1. InstallExecuteSequence(min:0,max:1)2. InstallUISequence(min:0,max:1)3. AdminExecuteSequence(min:0,max:1)4. AdminUISequence(min:0,max:1)5. AdvertiseExecuteSequence(min:0,max:1)

AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

CloseApplicationComPlusApplication

Page 1478: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ComPlusApplicationRoleComPlusPartitionComPlusPartitionRoleGroupHelpCollectionRefHelpFilterMajorUpgradeRequiresRestartResourceSqlDatabaseTagUnitTestRefUserWebApplicationWebAppPoolWebDirPropertiesWebLogWebSite

Attributes

Name Type Description Required

Id AutogenGuid TheproductcodeGUIDfortheproduct.

Yes

Codepage String ThecodepageintegervalueorwebnamefortheresultingMSI.Seeremarksformoreinformation.

Language LocalizableInteger ThedecimallanguageID(LCID)fortheproduct.

Yes

Page 1479: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Manufacturer String Themanufactureroftheproduct.

Yes

Name String Thedescriptivenameoftheproduct.

Yes

UpgradeCode Guid TheupgradecodeGUIDfortheproduct.

Version String Theproduct'sversionstring.

Yes

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

Remarks

YoucanspecifyanyvalidWindowscodepagebyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.

SeeAlsoWixSchema

Page 1480: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ProductSearchElement

DescriptionNone

WindowsInstallerreferencesUpgradeTable

ParentsProperty

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

ExcludeLanguages YesNoType Setto"yes"todetectalllanguages,excludingthelanguageslistedintheLanguageattribute.

IncludeMaximum YesNoType Setto"yes"tomaketherangeofversionsdetectedincludethevaluespecifiedinMaximum.

IncludeMinimum YesNoType Setto"no"tomaketherangeofversionsdetectedexcludethevaluespecifiedinMinimum.Thisattributeis"yes"by

Page 1481: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

default.

Language String SpecifiesthesetoflanguagesdetectedbyFindRelatedProducts.Enteralistofnumericlanguageidentifiers(LANGID)separatedbycommas(,).Leavethisvaluenulltospecifyalllanguages.SetExcludeLanguagesto"yes"inorderdetectalllanguages,excludingthelanguageslistedinthisvalue.

Maximum String SpecifiestheupperboundaryoftherangeofproductversionsdetectedbyFindRelatedProducts.

Minimum String SpecifiesthelowerboundontherangeofproductversionstobedetectedbyFindRelatedProducts.

UpgradeCode Guid ThisvaluespecifiestheupgradecodefortheproductsthataretobedetectedbytheFindRelatedProductsaction.

Yes

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

Page 1482: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

canregisteradditionalattributesatthispointintheschema.

SeeAlsoWixSchema

Page 1483: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1484: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

iconresource.

IconIndex Integer

NoOpen String SpecifiesthattheassociatedProgIdshouldnotbeopenedbyusers.Thevalueispresentedasawarningtousers.Anemptystringisalsovalidforthisattribute.

SeeAlsoWixSchema

Page 1485: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ProgressTextElement

DescriptionNone

WindowsInstallerreferencesActionTextTable

ParentsUI

InnerText(xs:string)Elementvalueisprogressmessagetextforaction

ChildrenNone

Attributes

Name Type Description Required

Action String Yes

Template String usedtoformatActionDatamessagesfromactionprocessing

SeeAlsoWixSchema

Page 1486: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PropertyElement

DescriptionPropertyvalueforaProductorModule.

WindowsInstallerreferencesPropertyTable

ParentsControl,Fragment,Module,ODBCDataSource,ODBCDriver,Product,UI,Upgrade

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenChoiceofelements(min:0,max:unbounded)

Sequence(min:1,max:1)1. ComplianceDrive(min:0,max:1):Startssearchesfromthe

CCP_DRIVE.2. ComponentSearch(min:0,max:unbounded)3. RegistrySearch(min:0,max:unbounded)4. RegistrySearchRef(min:0,max:unbounded)5. IniFileSearch(min:0,max:unbounded)6. DirectorySearch(min:0,max:unbounded)7. DirectorySearchRef(min:0,max:unbounded)8. ProductSearch(min:0,max:unbounded)

AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

Attributes

Name Type Description Required

Id String UniqueidentifierforProperty.

Yes

Page 1487: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Admin YesNoType DenotesthatthePropertyissavedduringadmininistrativeinstallation.SeetheAdminPropertiesPropertyformoreinformation.

ComplianceCheck YesNoType AddsarowtotheCCPSearchtable.ThisattributeisonlyvalidwhenthisPropertycontainsasearchelement.

Hidden YesNoType DenotesthatthePropertyisnotloggedduringinstallation.SeetheMsiHiddenPropertiesPropertyformoreinformation.

Secure YesNoType DenotesthatthePropertycanbepassedtotheserversidewhendoingamanagedinstallationwithelevatedprivileges.SeetheSecureCustomPropertiesPropertyformoreinformation.

SuppressModularization YesNoType Usetosuppressmodularizationofthispropertyidentifierinmergemodules.Usingthisfunctionalityisstronglydiscouraged;itshouldonlybenecessaryasa

Page 1488: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

workaroundoflastresortinrarescenarios.

Value String Setsadefaultvaluefortheproperty.ThevaluewillbeoverwrittenifthePropertyisusedforasearch.

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

HowTosandExamplesHowTo:Checktheversionnumberofafileduringinstallation

SeeAlsoWixSchema,PropertyRef

Page 1489: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1490: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1491: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ProtectRangeElement

DescriptionSpecifiespartofafilethatcannotbeoverwrittenduringpatching.

WindowsInstallerreferencesNone

ParentsExternalFile,ProtectFile,TargetFile

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Length Int Lengthoftherange. Yes

Offset Int Offsetofthestartoftherange. Yes

SeeAlsoWixSchema

Page 1492: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1493: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1494: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1495: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1496: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1497: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1498: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

theattributecreatesareferencetoaBinaryelementthatrepresentstheicon.ThisattributeismutuallyexclusivewiththeBitmapandTextattributes.

Text String Textdisplayedwiththeradiobutton.ThisattributeismutuallyexclusivewiththeBitmapandIconattributes.

ToolTip String

Value String ValueassignedtotheassociatedcontrolPropertywhenthisradiobuttonisselected.

Yes

Width LocalizableInteger Yes

X LocalizableInteger Yes

Y LocalizableInteger Yes

SeeAlsoWixSchema,RadioButtonGroup

Page 1499: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1500: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1501: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1502: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1503: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RegisterFontsElement

DescriptionRegistersinstalledfontswiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterFontsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1504: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1505: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RegisterProductElement

DescriptionRegisterstheproductinformationwiththeinstaller.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterProductAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1506: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1507: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RegisterTypeLibrariesElement

DescriptionRegisterstypelibrarieswiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterTypeLibrariesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1508: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RegisterUserElement

DescriptionRegisterstheuserinformationwiththeinstallertoidentifytheuserofaproduct.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRegisterUserAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1509: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1510: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1511: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1512: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1513: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RegistryKeyElement

DescriptionUsedfororganizationofchildRegistryValueelementsortocreatearegistrykey(andoptionallyremoveitduringuninstallation).

WindowsInstallerreferencesRegistryTable

ParentsComponent,RegistryKey

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Permission(min:0,max:unbounded):ACLpermissionPermissionEx(min:0,max:unbounded):CanalsoconfiguretheACLsforthisregistrykey.RegistryKey(min:0,max:unbounded)RegistryValue(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

PermissionEx

Attributes

Name Type Description

Action Enumeration TheActionattributehasbeendeprecated.Inmostcases,youcansimplyomit@Action.IfyouneedtoforceWindowsInstallertocreateanemptykeyorrecursivelydeletethe

Page 1514: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

key,usetheForceCreateOnInstallorForceDeleteOnUninstallattributesinstead.Thisattribute'svaluemustbeoneofthefollowing:create

Createsthekey,ifabsent,whentheparentcomponentisinstalled.

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

noneDoesnothing;thiselementisusedmerelyinWiXauthoringfororganizationanddoesnothingtothefinaloutput.Thisisthedefaultvalue.

Page 1515: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ForceCreateOnInstall YesNoType Setthisattributeto'yes'tocreateanemptykey,ifabsent,whentheparentcomponentisinstalled.valueisneededonlytocreateanemptykeywithnosubkeysorvalues.WindowsInstallercreateskeysasneededtostoresubkeysandvalues.Thedefaultis"no".

ForceDeleteOnUninstall YesNoType Setthisattributeto'yes'toremovethekeywithallitsvaluesandsubkeyswhentheparentcomponentisuninstalled.Notethatthisvalueisusefulonlyifyourprogramcreatesadditionalvaluesorsubkeysunderthiskeyandyouwantanuninstalltoremovethem.MSIalreadyremovesallvaluesandsubkeysthatitcreates,sothisoptionjustaddsadditionaloverheadtouninstall.Thedefaultis"no".

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

Key String Thelocalizablekeyfortheregistryvalue.IftheparentelementisaRegistryKey,thisvaluemaybeomittedtouse

Page 1516: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

thepathoftheparent,orifitsspecifieditwillbeappendedtothepathoftheparent.

Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.

HowTosandExamplesHowTo:ReadaregistryentryduringinstallationHowTo:Writearegistryentryduringinstallation

SeeAlsoWixSchema

Page 1517: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1518: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1519: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

followedby'+'or'-'.

REG_BINARYStartswith'#x'andtheinstallerconvertsandsaveseachhexadecimaldigit(nibble)asanASCIIcharacterprefixedby'#x'.

REG_EXPAND_SZStartswith'#%'.

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

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

Win64 YesNoType Instructsthesearchtolookinthe64-bitregistrywhenthevalueis'yes'.Whenthevalueis'no',thesearchlooksinthe32-bitregistry.Thedefaultvalueisbasedontheplatformsetbythe-archswitchtocandle.exeortheInstallerPlatformpropertyina.wixprojMSBuildproject:Forx86andARM,thedefaultvalueis'no'.Forx64andIA64,thedefaultvalueis'yes'.

Remarks

Page 1520: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

HowTosandExamplesHowTo:Readaregistryentryduringinstallation

SeeAlsoWixSchema,ComponentSearch,IniFileSearch

Page 1521: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RegistrySearchRefElement

DescriptionReferencesanexistingRegistrySearchelement.

WindowsInstallerreferencesNone

ParentsProperty

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String SpecifytheIdoftheRegistrySearchtoreference.

Yes

SeeAlsoWixSchema,RegistrySearch

Page 1522: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1523: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1524: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1525: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1526: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

localizableregistryvalue.Thisvalueisformatted.TheWindowsInstallerallowsseveralspecialvaluestobesetforthisattribute.YoushouldnotusetheminWiX.InsteaduseappropriatevaluesintheTypeattributetogetthedesiredbehavior.

HowTosandExamplesHowTo:Writearegistryentryduringinstallation

SeeAlsoWixSchema

Page 1527: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RelatedBundleElement

DescriptionCreateaRelatedBundleelement.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id Guid TheidentifieroftheRelatedBundlegroup.

Yes

Action Enumeration Theactiontotakeonbundlesrelatedtothisone.Detectisthedefault.Thisattribute'svaluemustbeoneofthefollowing:Detect

Upgrade

Addon

Patch

SeeAlsoWixSchema

Page 1528: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RemotePayloadElement

DescriptionDescribesinformationaboutaremotefilepayloadthatisnotavailableatthetimeofbuildingthebundle.TheparentmustspecifyDownloadUrlandmustnotspecifySourceFilewhenusingthiselement.

WindowsInstallerreferencesNone

ParentsExePackage,MsuPackage

InnerTextNone

ChildrenNone

Attributes

Name Type Description

CertificatePublicKey HexType PublickeyoftheauthenticodecertificateusedtosigntheRemotePayload.Includethisattributeiftheremotefileissigned.

CertificateThumbprint HexType ThumbprintoftheauthenticodecertificateusedtosigntheRemotePayload.Includethisattributeiftheremotefileissigned.

Description String Descriptionofthefilefromversionresources.

Hash HexType SHA-1hashofthe

Page 1529: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RemotePayload.IncludethisattributeiftheremotefileisunsignedorSuppressSignatureVerificationissettoYes.

ProductName String Productnameofthefilefromversionresouces.

Size Integer Sizeoftheremotefileinbytes.

Version VersionType Versionoftheremotefile

SeeAlsoWixSchema

Page 1530: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RemoveDuplicateFilesElement

DescriptionDeletesfilesinstalledbytheDuplicateFilesaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveDuplicateFilesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1531: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RemoveEnvironmentStringsElement

DescriptionModifiesthevaluesofenvironmentvariables.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveEnvironmentStringsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1532: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1533: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

sequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1534: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1535: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1536: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1537: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

intheinstallerdatabaseatcreationtime;itcouldbecreatedatinstallationtimebyacustomaction,onthecommandline,etc.ThisattributecannotbespecifiedinconjunctionwiththeDirectoryattribute.

ShortName WildCardShortFileNameType Theshortfilenameofthefilein8.3format.Thisattributeshouldonlybesetifyouwanttomanuallyspecifytheshortfilename.

SeeAlsoWixSchema,CopyFile

Page 1538: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RemoveFilesElement

DescriptionRemovesfilespreviouslyinstalledbytheInstallFilesaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveFilesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1539: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1540: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1541: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

attributecannotbespecifiedinconjunctionwiththeDirectoryattribute.

SeeAlsoWixSchema,CreateFolder

Page 1542: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RemoveFoldersElement

DescriptionRemovesanyfolderslinkedtocomponentssettoberemovedorrunfromsource.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveFoldersAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1543: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1544: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1545: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RemoveRegistryKeyElement

DescriptionUsedforremovingregistrykeysandallchildkeyseitherduringinstalloruninstall.

WindowsInstallerreferencesRegistryTable,RemoveRegistryTable

ParentsComponent

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Action Enumeration Thisistheactionthatwillbetakenforthisregistryvalue.Thisattribute'svaluemustbeoneofthefollowing:removeOnInstall

Removesakeywithallitsvaluesandsubkeyswhentheparentcomponentisinstalled.

removeOnUninstallRemovesakeywithallitsvaluesandsubkeyswhentheparentcomponentisuninstalled.

Page 1546: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Key String Thelocalizablekeyfortheregistryvalue.

Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.

SeeAlsoWixSchema

Page 1547: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1548: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.

SeeAlsoWixSchema

Page 1549: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1550: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RemoveShortcutsElement

DescriptionManagestheremovalofanadvertisedshortcutwhosefeatureisselectedforuninstallationoranonadvertisedshortcutwhosecomponentisselectedforuninstallation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesRemoveShortcutsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1551: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ReplacePatchElement

DescriptionApatchthatisdeprecatedbythispatch.

WindowsInstallerreferencesNone

ParentsPatchCreation

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id Guid PatchGUIDtobeunregisteredifitexistsonthemachinetargetedbythispatch.

Yes

SeeAlsoWixSchema

Page 1552: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RequiredPrivilegeElement

DescriptionPrivilegerequiredbyserviceconfiguredbyServiceConfigparent.ValidvaluesareaprivilegeconstantoraFormattedpropertythatresolvestoaprivilegeconstant.

WindowsInstallerreferencesMsiServiceConfigTable

ParentsServiceConfig

SeeAlsoWixSchema

Page 1553: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1554: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RunLocal Integer Thenumberofbytesofdiskspacetoreserveifthecomponentisinstalledtorunlocally.

Yes

SeeAlsoWixSchema

Page 1555: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1556: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

positionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1557: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1558: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

thisactionmaybeoverriddenbysequencingelsewhere.

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema,CCPSearch,ComplianceCheck

Page 1559: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RollbackBoundaryElement

DescriptionDescribesarollbackboundaryinthechain.

WindowsInstallerreferencesNone

ParentsChain,PackageGroup

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.Theextension'sCompilerExtension.ParseElement()methodwillbecalledwiththerollbackboundaryidentifierasthe'RollbackBoundaryId'keyincontextValues.

Attributes

Name Type Description Required

Id String Identifierforthisrollbackboundary,fororderingandcross-referencing.Ifthisattributeisnotprovidedastableidentifierwillbegenerated.

Vital YesNoType Specifieswhethertherollbackboundaryabortsthechain.Thedefault"yes"indicatesthatiftherollbackboundaryisencounteredthenthechainwillfailandrollbackorstop.If"no"is

Page 1560: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

specifiedthenthechainshouldcontinuesuccessfulyatthenextrollbackboundary.

SeeAlsoWixSchema

Page 1561: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RowElement

DescriptionRowdataforaCustomTable

WindowsInstallerreferencesNone

ParentsCustomTable

InnerTextNone

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

AttributesNone

SeeAlsoWixSchema

Page 1562: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1563: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1564: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SelfRegModulesElement

DescriptionProcessesallmoduleslistedintheSelfRegtableandregistersallinstalledmoduleswiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesSelfRegModulesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1565: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SelfUnregModulesElement

DescriptionUnregistersallmoduleslistedintheSelfRegtablethatarescheduledtobeuninstalled.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesSelfUnregModulesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1566: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ServiceArgumentElement

DescriptionArgumentusedinServiceControlparent

WindowsInstallerreferencesServiceControlTable

ParentsServiceControl

SeeAlsoWixSchema

Page 1567: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1568: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

"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 1569: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1570: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1571: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ThisvaluewilldefaulttotheServiceNameattributeifnotspecified.

OnInstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisinstalled.ThisattributemaybecombinedwithOnReinstallandOnUninstall.

OnReinstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisreinstalled.ThisattributemaybecombinedwithOnInstallandOnUninstall.

OnUninstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisuninstalled.ThisattributemaybecombinedwithOnInstallandOnReinstall.

RebootMessage String Specifiesthemessagetoshowforarebootfailureaction.Ifanemptystringisprovideditclearsanyexistingrebootmessage.Ifthisattributeisnotpresentthesettingisnotchanged.

Page 1572: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ResetPeriod String Specifiesthetimeinsecondstoresetthefailurecount.Ifthisattributeisnotpresentthefailurecountwillnotbereset.

ServiceName String Specifiesthenameoftheservicetoconfigure.ThisvaluewilldefaulttotheServiceInstall/@NameattributewhennestedunderaServiceInstallelement.

SeeAlsoWixSchema

Page 1573: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1574: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1575: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Wait YesNoType Specifieswhetherornottowaitfortheservicetocompletebeforecontinuing.Thedefaultis'yes'.

SeeAlsoWixSchema

Page 1576: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ServiceDependencyElement

DescriptionServiceorgroupofservicesthatmuststartbeforetheparentservice.

WindowsInstallerreferencesServiceInstallTable

ParentsServiceInstall

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Thevalueofthisattributeshouldbeoneofthefollowing:1. Thename(notthedisplay

name)ofapreviouslyinstalledservice.

2. Thenameofaservicegroup(inwhichcasetheGroupattributemustbesetto'yes').

Yes

Group YesNoType Setto'yes'toindicatethatthevalueintheIdattributeisthenameofagroupofservices.

SeeAlsoWixSchema

Page 1577: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ServiceInstallElement

DescriptionAddsservicesforparentComponent.UsetheServiceControlelementtoremoveservices.

WindowsInstallerreferencesServiceInstallTable

ParentsComponent

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

PermissionEx(min:0,max:unbounded):ConfigurestheACLsforthisservice.ServiceConfig(min:0,max:unbounded)ServiceConfigFailureActions(min:0,max:unbounded)ServiceDependency(min:0,max:unbounded):Orderedlistofdependencieswheninstallingservices.AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.

ServiceConfigUrlReservation

Attributes

Name Type Description Required

Account String Fullyqualifiednamesmustbeusedevenforlocalaccounts,e.g.:".\LOCAL_ACCOUNT".

Page 1578: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ValidonlywhenServiceTypeisownProcess.

Arguments String Containsanycommandlineargumentsorpropertiesrequiredtoruntheservice.

Description String Setsthedescriptionoftheservice.

DisplayName String Thiscolumnisthelocalizablestringthatuserinterfaceprogramsusetoidentifytheservice.

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

ErrorControl Enumeration Determineswhatactionshouldbetakenonanerror.Thisattribute'svaluemustbeoneofthefollowing:ignore

Logstheerrorandcontinueswiththestartupoperation.

normalLogstheerror,displaysa

Yes

Page 1579: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

messageboxandcontinuesthestartupoperation.

criticalLogstheerrorifitispossibleandthesystemisrestartedwiththelastconfigurationknowntobegood.Ifthelast-known-goodconfigurationisbeingstarted,thestartupoperationfails.

Id String Uniqueidentifierforthisserviceconfiguration.ThisvaluewilldefaulttotheNameattributeifnotspecified.

Interactive YesNoType Whetherornottheserviceinteractswiththedesktop.

LoadOrderGroup String Theloadorderinggroupthatthisserviceshouldbeapartof.

Name String Thiscolumnisthestringthatgivestheservicenametoinstall.

Yes

Password String Thepasswordfortheaccount.Validonlywhentheaccounthasapassword.

Page 1580: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Start Enumeration Determineswhentheserviceshouldbestarted.TheWindowsInstallerdoesnotsupportbootorsystem.Thisattribute'svaluemustbeoneofthefollowing:auto

Theservicewillstartduringstartupofthesystem.

demandTheservicewillstartwhentheservicecontrolmanagercallstheStartServicefunction.

disabledTheservicecannolongerbestarted.

bootTheserviceisadevicedriverthatwillbestartedbytheoperatingsystembootloader.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.

systemTheserviceisadevicedriverthatwillbestartedby

Yes

Page 1581: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

theIoInitSystemfunction.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.

Type Enumeration TheWindowsInstallerdoesnotcurrentlysupportkernelDriverorsystemDriver.Thisattribute'svaluemustbeoneofthefollowing:ownProcess

AWin32servicethatrunsitsownprocess.

shareProcessAWin32servicethatsharesaprocess.

kernelDriverAkerneldriverservice.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.

systemDriverAfilesystemdriverservice.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.

Yes

Vital YesNoType Theoverallinstallshouldfailifthis

Page 1582: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

servicefailstoinstall.

RemarksTheserviceexecutableinstalledwillpointtotheKeyPathfortheComponent.Therefore,youmustensurethatthecorrectexecutableiseitherthefirstchildFileelementunderthisComponentorexplicitlymarktheappropriateFileelementasKeyPath='yes'.

SeeAlsoWixSchema

Page 1583: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SetDirectoryElement

DescriptionSetsaDirectorytoaparticularvalue.ThisisaccomplishedbycreatingaType51customactionthatisappropriatelyscheduledintheInstallUISequenceandInstallExecuteSequence.

WindowsInstallerreferencesCustomActionTable

ParentsFragment,Module,Product

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

ChildrenNone

Attributes

Name Type Description Required

Action String Bydefaulttheactionis"Set"+Idattribute'svalue.ThisoptionalattributecanoverridetheactionnameinthecasewheremultipleSetDirectoryelementstargetthesameId(probablywithmutuallyexclusiveconditions).

Id String ThisattributespecifiesareferencetoaDirectoryelementwithmatchingIdattribute.ThepathoftheDirectorywillbesettothe

Page 1584: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Valueattribute.

Sequence SequenceType ControlswhichsequencestheDirectoryassignmentissequencedin.For'execute',theassignmentisscheduledintheInstallExecuteSequence.For'ui',theassignmentisscheduledintheInstallUISequence.For'first',theassignmentisscheduledintheInstallUISequenceortheInstallExecuteSequenceiftheInstallUISequenceisskippedatinstalltime.For'both',theassignmentisscheduledinboththeInstallUISequenceandtheInstallExecuteSequence.Thedefaultis'both'.

Value String ThisattributespecifiesastringvaluetoassigntotheDirectory.ThevaluecanbealiteralvalueorderivedfromaPropertyelementusingtheFormattedsyntax.

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

SeeAlsoWixSchema,Custom,CustomActionRef,InstallUISequence,InstallExecuteSequence

Page 1585: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SetODBCFoldersElement

DescriptionChecksforexistingODBCdriversandsetsthetargetdirectoryforeachnewdrivertothelocationofanexistingdriver.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesSetODBCFoldersAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1586: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SetPropertyElement

DescriptionSetsaPropertytoaparticularvalue.ThisisaccomplishedbycreatingaType51customactionthatisappropriatelyscheduledintheInstallUISequenceandInstallExecuteSequence.

WindowsInstallerreferencesCustomActionTable

ParentsFragment,Module,Product

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

ChildrenNone

Attributes

Name Type Description Required

Action String Bydefaulttheactionis"Set"+Idattribute'svalue.ThisoptionalattributecanoverridetheactionnameinthecasewheremultipleSetPropertyelementstargetthesameId(probablywithmutuallyexclusiveconditions).

After String Thenameofthestandardorcustomactionafterwhichthisactionshouldbeperformed.MutuallyexclusivewiththeBefore

Page 1587: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

attribute.ABeforeorAfterattributeisrequiredwhensettingaProperty.

Before String Thenameofthestandardorcustomactionbeforewhichthisactionshouldbeperformed.MutuallyexclusivewiththeAfterattribute.ABeforeorAfterattributeisrequiredwhensettingaProperty.

Id String ThisattributespecifiesthePropertytosettotheValue.

Sequence SequenceType ControlswhichsequencesthePropertyassignmentissequencedin.For'execute',theassignmentisscheduledintheInstallExecuteSequence.For'ui',theassignmentisscheduledintheInstallUISequence.For'first',theassignmentisscheduledintheInstallUISequenceortheInstallExecuteSequenceiftheInstallUISequenceisskippedatinstalltime.For'both',theassignmentisscheduledinboththeInstallUISequenceandtheInstallExecuteSequence.Thedefaultis'both'.

Value String ThisattributespecifiesastringvaluetoassigntotheProperty.Thevaluecanbe

Page 1588: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

aliteralvalueorderivedfromaPropertyelementusingtheFormattedsyntax.

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

SeeAlsoWixSchema,Custom,CustomActionRef,InstallUISequence,InstallExecuteSequence

Page 1589: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1590: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SFPFileElement

DescriptionProvidesamany-to-manymappingfromtheSFPCatalogtabletotheFiletable

WindowsInstallerreferencesFileSFPCatalogTable

ParentsSFPCatalog

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String PrimaryKeytoFileTable. Yes

SeeAlsoWixSchema

Page 1591: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1592: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1593: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1594: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1595: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1596: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1597: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

WorkingDirectory String Directoryidentifier(orPropertyidentifierthatresolvestoadirectory)thatresolvespathoftheworkingdirectoryfortheshortcut.

HowTosandExamplesHowTo:CreateashortcutontheStartMenu

SeeAlsoWixSchema

Page 1598: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1599: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1600: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1601: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnContainerType(SimpleType)

DescriptionValuesofthistypewilleitherbe"attached"or"detached".

EnumerationTypePossiblevalues:{attached,detached}

SeeAlsoWixSchema

Page 1602: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BurnExeProtocolType(SimpleType)

DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.

EnumerationTypePossiblevalues:{none,burn,netfx4}

SeeAlsoWixSchema

Page 1603: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1604: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CompressionLevelType(SimpleType)

DescriptionIndicatesthecompressionlevelforacabinet.

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

SeeAlsoWixSchema

Page 1605: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DiskIdType(SimpleType)

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

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

SeeAlsoWixSchema

Page 1606: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ExitType(SimpleType)

DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.

EnumerationTypePossiblevalues:{success,cancel,error,suspend}

SeeAlsoWixSchema

Page 1607: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1608: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HexType(SimpleType)

DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".

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

SeeAlsoWixSchema

Page 1609: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

InstallUninstallType(SimpleType)

DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.

EnumerationTypePossiblevalues:{install,uninstall,both}

SeeAlsoWixSchema

Page 1610: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LocalizableInteger(SimpleType)

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

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

SeeAlsoWixSchema

Page 1611: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1612: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PreprocessorVariables(SimpleType)

DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).

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

SeeAlsoWixSchema

Page 1613: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RegistryRootType(SimpleType)

DescriptionValuesofthistyperepresentpossibleregistryroots.

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

SeeAlsoWixSchema

Page 1614: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SequenceType(SimpleType)

DescriptionControlswhichsequencestheitemassignmentissequencedin.

EnumerationTypePossiblevalues:{both,first,execute,ui}

SeeAlsoWixSchema

Page 1615: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1616: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VersionType(SimpleType)

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

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

SeeAlsoWixSchema

Page 1617: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1618: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1619: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoAlwaysType(SimpleType)

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

EnumerationTypePossiblevalues:{always,no,yes}

SeeAlsoWixSchema

Page 1620: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoButtonType(SimpleType)

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

EnumerationTypePossiblevalues:{no,yes,button}

SeeAlsoWixSchema

Page 1621: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoDefaultType(SimpleType)

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

EnumerationTypePossiblevalues:{default,no,yes}

SeeAlsoWixSchema

Page 1622: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

YesNoType(SimpleType)

DescriptionValuesofthistypewilleitherbe"yes"or"no".

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoWixSchema

Page 1623: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SlipstreamMspElement

DescriptionSpecifiesapatchincludedinthesamebundlethatisinstalledwhentheparentMSIpackageisinstalled.

WindowsInstallerreferencesNone

ParentsMsiPackage

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String TheidentifierforaMspPackageinthebundle.

Yes

Remarks

YoucanalsospecifythatanyMspPackageelementsinthechainareautomaticallyslipstreamedbysettingtheSlipstreamattributeofanMspPackageto"yes".Thiswillreducetheamountofauthoringyouneedtowriteandwilldeterminewhichmsipackagescanslipstreampatcheswhenbuildingabundle.

SeeAlsoWixSchema,MspPackage

Page 1624: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

StartServicesElement

DescriptionStartssystemservices.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesStartServicesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1625: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

StopServicesElement

DescriptionStopssystemservices.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesStopServicesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1626: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SubscribeElement

DescriptionSetsattributesforeventsintheEventMappingtable

WindowsInstallerreferencesEventMappingTable

ParentsControl

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Attribute String ifnotpresentcanonlyhandleenable,disable,hide,unhideevents

Event String mustbeoneofthestandardcontrolevents'

SeeAlsoWixSchema

Page 1627: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1628: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixSchema

Page 1629: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1630: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1631: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1632: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

usetheSourceFileattributeinstead.

Validation String Productcheckingtoavoidapplyingirrelevanttransforms.

SeeAlsoWixSchema

Page 1633: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1634: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

TargetProductCodesElement

DescriptionTheproductcodesforproductsthatcanacceptthepatch.

WindowsInstallerreferencesNone

ParentsPatch

InnerTextNone

ChildrenChoiceofelements(min:1,max:unbounded)

TargetProductCode(min:1,max:unbounded)

Attributes

Name Type Description Required

Replace YesNoType Whethertoreplacetheproductcodesthatcanacceptthepatchfromthetargetpackageswiththechildelements.

SeeAlsoWixSchema

Page 1635: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

TextElement

DescriptionAnalternativetousingtheTextattributewhenthevaluecontainsspecialXMLcharacterslike<,>,or&.

WindowsInstallerreferencesNone

ParentsControl

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

SourceFile String Instructsthetexttobeimportedfromafileinsteadoftheelementvalueduringthebindingprocess.

src String Thisattributehasbeendeprecated;pleaseusetheSourceFileattributeinstead.

SeeAlsoWixSchema

Page 1636: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1637: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixSchema

Page 1638: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1639: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1640: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

MajorVersion Integer Themajorversionofthetypelibrary.Thevalueshouldbeanintegerfrom0-255.

MinorVersion Integer Theminorversionofthetypelibrary.Thevalueshouldbeanintegerfrom0-255.

ResourceId Integer Theresourceidofatypelib.Thevalueisappendedtotheendofthetypelibpathintheregistry.

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

SeeAlsoWixSchema

Page 1641: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1642: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1643: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1644: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UITextElement

DescriptionTextassociatedwithcertaincontrols

WindowsInstallerreferencesUITextTable

ParentsUI

InnerText(xs:string)Elementvalueistext,mayuseCDATAifneededtoescapeXMLdelimiters

ChildrenNone

Attributes

Name Type Description Required

Id String Yes

SeeAlsoWixSchema

Page 1645: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UnpublishComponentsElement

DescriptionManagestheunadvertisementofcomponentslistedinthePublishComponenttable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnpublishComponentsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1646: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1647: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UnregisterClassInfoElement

DescriptionManagestheremovalofCOMclassinformationfromthesystemregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterClassInfoAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1648: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1649: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1650: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UnregisterFontsElement

DescriptionRemovesregistrationinformationaboutinstalledfontsfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterFontsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1651: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1652: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UnregisterProgIdInfoElement

DescriptionManagestheunregistrationofOLEProgIdinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterProgIdInfoAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1653: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UnregisterTypeLibrariesElement

DescriptionUnregisterstypelibrariesfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesUnregisterTypeLibrariesAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1654: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UpdateElement

DescriptionDefinestheupdateforaBundle.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenNone

Attributes

Name Type Description

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

SeeAlsoWixSchema

Page 1655: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1656: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1657: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

patch.

SeeAlsoWixSchema

Page 1658: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1659: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

srcPatch String Thisattributehasbeendeprecated;pleaseusetheSourcePatchattributeinstead.

SeeAlsoWixSchema

Page 1660: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1661: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1662: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

uninstall.

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

Yes

RemoveFeatures String TheinstallersetstheREMOVEpropertytofeaturesspecifiedinthiscolumn.Thefeaturestoberemovedcanbe

Page 1663: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

SeeAlsoWixSchema

Page 1664: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UXElement

DescriptionThiselementhasbeendeprecated;pleaseusetheBootstrapperApplicationelementinstead.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)

Attributes

Name Type Description Required

Name String SeetheBootstrapperApplicationinstead.

SourceFile String SeetheBootstrapperApplicationinstead.

SplashScreenSourceFile String SeetheBootstrapperApplicationinstead.

SeeAlsoWixSchema

Page 1665: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1666: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1667: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

valuemustbeoneofthefollowing:Major

Checksthemajorversion.

MinorChecksthemajorandminorversions.

UpdateChecksthemajor,minor,andupdateversions.

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

InstalledProductVersion<targetProductVersion.

LesserOrEqualInstalledProductVersion

Page 1668: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

<=targetProductVersion.

EqualInstalledProductVersion=targetProductVersion.

GreaterOrEqualInstalledProductVersion>=targetProductVersion.

GreaterInstalledProductVersion>targetProductVersion.

UpgradeCode YesNoType RequiresthattheinstalledUpgradeCodematchthetargetUpgradeCodeusedtocreatethetransform.Thedefaultis'yes'.

Remarks

Atransformcontainsthedifferencesbetweenthetargetproductandtheupgradedproduct.Whenatransformorapatch(whichcontainstransforms)isapplied,thefollowingpropertiesoftheinstalledproductarevalidatedagainstthepropertiesofthetargetproductstoredinatransform.

ProductCodeProductLanguageProductVersion

Page 1669: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UpgradeCode

WindowsInstallersimplyvalidatesthattheProductCode,ProductLanguage,andUpgradeCodeofaninstalledproductareequivalenttothosepropetiesofthetargetproductusedtocreatethetransform;however,theProductVersioncanbevalidatedwithagreaterrangeofcomparisons.

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

SeeAlsoWixSchema

Page 1670: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1671: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1672: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VariableElement

DescriptionDescribesaburnenginevariabletodefine.

WindowsInstallerreferencesNone

ParentsBundle,Fragment

InnerTextNone

ChildrenNone

Attributes

Name Type Description

Hidden YesNoType Whetherthevalueofthevariableshouldbehidden.

Name String Thenameforthevariable.

Persisted YesNoType Whetherthevariableshouldbepersisted.

Type Enumeration Typeofthevariable,inferredfromthevalueifnotspecified.Thisattribute'svaluemustbeoneofthefollowing:string

numeric

version

Value String Startingvalueforthevariable.

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

Page 1673: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

theschema.

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

SeeAlsoWixSchema

Page 1674: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1675: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1676: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1677: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RequiredVersion VersionType RequiredversionoftheWiXtoolsettocompilethisinputfile.

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

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

SeeAlsoWixSchema

Page 1678: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixVariableElement

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

WindowsInstallerreferencesNone

ParentsBundle,Fragment,Module,Product

InnerTextNone

ChildrenNone

Attributes

Name Type Description Required

Id String Thenameofthevariable. Yes

Overridable YesNoType Setthisvalueto'yes'inordertomakethevariable'svalueoverridableeitherbyanotherWixVariableentryorviathecommand-lineoption-d<name>=<value>forlight.exe.Ifthesamevariableisdeclaredoverridableinmultipleplacesitwillcauseanerror(sinceWiXwon'tknowwhichvalueiscorrect).

Page 1679: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Thedefaultvalueis'no'.

Value String Thevalueofthevariable.Thevaluecannotbeanemptystringbecausethatwouldmakeitpossibletoaccidentallysetacolumntonull.

Yes

SeeAlsoWixSchema

Page 1680: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WriteEnvironmentStringsElement

DescriptionModifiesthevaluesofenvironmentvariables.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.

WindowsInstallerreferencesWriteEnvironmentStringsAction

ParentsInstallExecuteSequence

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.

Suppress YesNoType Ifyes,thisactionwillnotoccur.

SeeAlsoWixSchema

Page 1681: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1682: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1683: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LocalizationYesNoType(SimpleType)

DescriptionNone

EnumerationTypePossiblevalues:{no,yes}

SeeAlsoWixlocSchema

Page 1684: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

StringElement(WixlocExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsWixLocalization

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Id String Identityoftheresource.

Yes

Localizable LocalizationYesNoType Indicateswhetherthestringislocalizabletextoranon-localizablestringthatmustbeuniqueperlocale.NoWiXtoolsareaffectedbythevalueofthisattribute;itusedasdocumentationforlocalizerstoignorethingslikeGUIDsor

Page 1685: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

identifiersthatlookliketext.

Overridable LocalizationYesNoType Determinesifthelocalizedstringmaybeoverridden.

HowTosandExamplesHowTo:BuildalocalizedversionofyourinstallerHowTo:Makeyourinstallerlocalizable

SeeAlsoWixlocSchema

Page 1686: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UIElement(WixlocExtension)

DescriptionAllowsalocalizationtooverridetheposition,size,andtextofdialogsandcontrols.OverridethetextbyspecifyingthereplacementtextintheinnertextoftheUIelement.

WindowsInstallerreferencesNone

ParentsWixLocalization

InnerText(xs:string)Thiselementmayhaveinnertext.

ChildrenNone

Attributes

Name Type Description Required

Control String CombinedwiththeDialogattribute,identifiesthecontroltolocalize.

Dialog String Identifiesthedialogtolocalizeorthedialogthatacontroltolocalizeisin.

Height Integer Foradialog,overridestheauthoredheight

Page 1687: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

indialogunits.Foracontrol,overridestheauthoredheightoftherectangularboundaryofthecontrol.Thismustbeanon-negativenumber.

LeftScroll LocalizationYesNoType Setthisattributeto"yes"tocausethescrollbartodisplayontheleftsideoftheControl.Notvalidforadialog.

RightAligned LocalizationYesNoType Setthisattributeto"yes"tocausetheControltoberightaligned.Notvalidforadialog.

RightToLeft LocalizationYesNoType Setthisattributeto"yes"tocausetheControltodisplayfromrighttoleft.Notvalidforadialog.

Width Integer Foradialog,overridestheauthoredwidthindialogunits.Foracontrol,overridestheauthoredwidth

Page 1688: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

oftherectangularboundaryofthecontrol.Thismustbeanon-negativenumber.

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

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

Page 1689: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

negativenumber.

SeeAlsoWixlocSchema

Page 1690: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixLocalizationElement(WixlocExtension)

DescriptionNone

WindowsInstallerreferencesNone

ParentsNone

InnerTextNone

ChildrenChoiceofelements(min:0,max:unbounded)

String(min:0,max:unbounded)UI(min:0,max:unbounded)

Attributes

Name Type Description Required

Codepage String Thecodepageintegervalueorwebnamefortheresultingdatabase.Youcanalsospecify-1whichwillnotresetthedatabasecodepage.Seeremarksformoreinformation.

Culture String Cultureofthelocalizationstrings.

Language Integer ThedecimallanguageID(LCID)fortheculture.

Remarks

Page 1691: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

HowTosandExamplesHowTo:BuildalocalizedversionofyourinstallerHowTo:Makeyourinstallerlocalizable

SeeAlsoWixlocSchema

Page 1692: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DevelopingforVotiveIfyouwanttocontributecodetotheVotiveprojectordebugVotive,youmustdownloadandinstalltheVisualStudio2010SDK,availableattheVisualStudioExtensibilityDeveloperCenter.TheVisualStudio2010SDKisnon-invasiveandwillcreateanexperimentalhiveintheregistrythatwillleaveyourretailversionofVisualStudio2010unaffected.

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

Page 1693: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1694: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WhattheWiXhelpcompilerdoesTheWiXhelpcompilerdoesthefollowing:

Parses.xsdschemafilesreferencedinchm.helpprojandgenerateshelptopicsfortheattributesandelementsthatareannotatedinthe.xsdfiles.

CompilesallofthemarkdownfilescontainedinthedocumentsdirectoryintoHTMLstrippingthefinalfileextension(.md).

Eachmarkdowndocumentconsistsofametadataheaderfollowedbythecontentofthetopicpage.

SortstheHTMLfilesaccordingtotheaftermetadataandincludesalltheHTMLandcontentfilesprocessedinthelistofdocumentationtobuildintotheCHM.

Page 1695: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HowtoaddanewtopictoWiX.chmAddinganewtopictoWiX.chmrequiresthefollowingsteps:

1. AddanewmarkdowndocumentwiththecontentsofthenewtopictotheWiXsourcetreeundersrc\chm\documents.

2. Addanyrelevantimagestothesrc\chm\files\sub-directoryintheWiXsourcetree.Whenformingpathstointernalcontent,thecontentsofthedocumentsandfilesdirectoriesaremergedintothe~/directory.

3. Addthemetadataatthetopofyourtopicdocument.Setthetitlemetadatatothenameofthetopic.Setthelayoutmetadatatothedocumentationlayouttype,andoptionallysettheaftermetadatatothebasename(withoutthe.html[.md]extension)ofthetopicthispagewillfollow.

Anexampleofthemetadataheader(includesthetriple-dashdelimitinglines):

---title:AddingtotheWiXDocumentationlayout:documentationafter:votive_development---

HelptopicsmaycontainlinkstoexternalWebpages,andmayalsocontainrelativelinkstootherhelptopicsorattributesorelementsdefinedinoneofthe.xsdschemafiles.

Tobuildthenewcontenttypemsbuildfromthecommandlineinthesrc\chmdirectory.Itisnotnecessarytobuildtheentiretoolsettobuildthedocumentation,butyoumustfirstbuildthetools\srcdirectory(onceusingthesamebuildcommand)beforebuildingthechm.

Page 1696: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

IntroductiontoDevelopingWiXExtensions

CommonRequirementsInordertounderstandhoweachoftheclassesofextensionswork,oneshouldstartbylookingattheWiXsourcecode.Allextensionshavethefollowingthingsincommon:

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

Page 1697: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1698: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ExtensionsWiXsupportsthefollowingclassesofextensions:

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

ForinformationonhowtouseWiXextensionsonthecommandlineorinsidetheVisualStudioIDE,pleasevisittheUsingWiXextensionstopic.

ForinformationonhowtouselocalizedWiXextensions,pleasevisittheLocalizedextensionstopic.

Page 1699: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CreatingaSkeletonWiXExtensionWiXextensionsareusedtoextendandcustomizewhatWiXbuildsandhowitbuildsit.

ThefirststepincreatingaWiXextensionistocreateaclassthatextendstheWixExtensionclass.Thisclasswillbethecontainerforalltheextensionsyouplanonimplementing.Thiscanbedonebyusingthefollowingsteps:

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

2. Addareferencetowix.dlltoyourproject.

3. AddausingstatementthatreferstotheMicrosoft.Tools.WindowsInstallerXmlnamespace.

usingMicrosoft.Tools.WindowsInstallerXml;

4. MakeyourSampleWixExtensionclassinheritfromWixExtension.

publicclassSampleWixExtension:WixExtension{}

5. AddtheAssemblyDefaultWixExtensionAttributetoyourAssemblyInfo.cs.

[assembly:AssemblyDefaultWixExtension(typeof(SampleWixExtension.SampleWixExtension))]

6. Buildtheproject.

AlthoughthisWiXextensionwillnotdoanythingyet,youcannowpassthenewlybuiltSampleWixExtension.dllonthecommandlinetotheCandleandLightbyusingthe-extflaglikethefollowing:

candle.exeProduct.wxs-extSampleWixExtension.dlllight.exeProduct.wxs-extSampleWixExtension.dll

Thiscoversthebasicsofcreatingtheskeletonofanextension.Youcan

Page 1700: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1701: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1702: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

}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 1703: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

}

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 1704: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1705: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1706: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step2:AddthecustomactionWewouldneedtolinkthissourcefilealongwithasourcefilethatcontained<Product/>or<Module/>tosuccessfullycomplete.

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

<MediaId='1'Cabinet='product.cab'EmbedCab='yes'/>

<DirectoryId='TARGETDIR'Name='SourceDir'><DirectoryId='ProgramFilesFolder'Name='PFiles'><DirectoryId='MyDir'Name='TestProgram'><ComponentId='MyComponent'Guid='PUT-GUID-HERE'><FileId='readme'Name='readme.txt'DiskId='1'Source='readme.txt'/></Component>

<MergeId='MyModule'Language='1033'SourceFile='module.msm'DiskId='1'/></Directory></Directory></Directory>

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

<InstallExecuteSequence><CustomAction='FooAction'After='InstallFiles'/></InstallExecuteSequence></Product>

Page 1707: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

</Wix>

ThosethreelinesareallyouneedtoaddtoyourWindowsInstallerpackagesourcefiletocallthe"FooAction"CustomAction.Nowthatwehavetwofilestolinktogetherourcalltolight.exegetsalittlemorecomplicated.Herearethecompile,link,andinstallationsteps.

C:\test>candleproduct.wxsca.wxs

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

C:\test>msiexec/iproduct.msi

Nowaspartofyourinstallation,whatever"FooAction"issupposedtoperform,youshouldseehappenaftertheInstallFilesaction.

Page 1708: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

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

Page 1709: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Step1:AuthoraWiXFragmentCreatea.wxsfilenamedexample.wxsandaddthefollowingcontent:

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

YouhavejustauthoredaFragmentthatwillbecompiledintoaWiXlibrary.Itcontainsanerrormessagethatreferencesalocalizedstring.

Page 1710: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1711: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1712: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1713: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RunningWiXTestsThereisasuiteofteststhatareincludedwithWiX.Theycanbeusedtoverifythatchangestothetoolsetdonotregressexistingfunctionality.

Page 1714: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

VisualStudio2008ProfessionalEditionVisualStudioTeamSystem2008DatabaseEditionVisualStudioTeamSystem2008DevelopmentEditionVisualStudioTeamSystem2008TeamSuiteVisualStudioTeamSystem2008TestEdition

Thebuildsystemsearchestheregistrytodetectifoneoftheabovementionededitionsisinstalledonthemachine.IfthedetectionkeycannotbefoundthenthetestswillnotbuildfromNantbuttheycanstillbebuiltbyMSBuildiftherequiredUnitTestFrameworkassemblyexists.%nbsp;Thetestsarebuiltintoanassemblycalledwixtests.dlltothesamelocationastheotherWiXbinaries.

BuildingthetestsusingNant

NantmustberunfromtheWiXrootdirectory.Tobuildonlythetests,specifythe'wixtests'target.

c:\delivery\dev\wix>nant.exewixtests

BuildingthetestsinVisualStudio

Openc:\delivery\dev\wix\test\wixtests.slnfromaWiXcommandwindow.ThesolutionshouldbuildfromwithinVisualStudio.

devenv.exec:\delivery\dev\wix\test\wixtests.sln

Page 1715: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1716: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WritingWiXTestsThisdocumentdescribeshowtowritetestsforWiX.

Page 1717: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1718: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi
Page 1719: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

WixTests:ContainsallofthetestsWixTestsTools:Alibraryofwrapperclassesandverificationmethodsusedbythetests

ThesolutionshouldbeopenedfromtheWiXcommandwindowtoensurethatthe%WIX_ROOT%environmentvariableisset.

Page 1720: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ExampleTests

Example:BuildandVerifyanMSI

ThefollowingexampleshowshowtotestbuildinganMSIfromWiXsource.

[TestMethod][Description("AnexampletestthatverifiesanMSIisbuiltcorrectly")][Priority(3)]publicvoidExampleTest1(){//UsetheBuildPackagemethodtobuildanMSIfromsourcestringactualMSI=Builder.BuildPackage(@"%WIX_ROOT%\test\data\SharedData\Authoring\BasicProduct.wxs");

//TheexpectedMSItocompareagainststringexpectedMSI=@"%WIX_ROOT%\test\data\SharedData\Baselines\MSIs\BasicProduct.msi";

//UsetheVerifyResultsmethodtocomparetheactualandexpectedMSIsVerifier.VerifyResults(expectedMSI,actualMSI);}

Example:CheckforaWarningandQueryanMSI

ThefollowingexampleshowshowtobuildanMSIusingtheCandleandLightwrapperclasses.ItalsodemonstrateshowtocheckforawarningfromLightandquerytheresulingMSI.

[TestMethod][Description("AnexampletestthatchecksforaLightwarningandqueriestheresultingMSI")][Priority(3)]publicvoidExampleTest2(){//CompileawxsfileCandlecandle=newCandle();candle.SourceFiles.Add(@"%WIX_ROOT%\test\data\Examples\ExampleTest2\product.wxs");

Page 1721: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

candle.Run();

//CreateaLightobjectthatusessomepropertiesoftheCandleobjectLightlight=newLight(candle);

//DefinetheLightwarningthatweexpecttoseeWixMessageLGHT1079=newWixMessage(1079,WixMessage.MessageTypeEnum.Warning);light.ExpectedWixMessages.Add(LGHT1079);

//Linklight.Run();

//QuerytheresultingMSIforverificationstringquery="SELECT`Value`FROM`Property`WHERE`Property`='Manufacturer'";Verifier.VerifyQuery(light.OutputFile,query,".NETFoundation");}

Example:ICEValidationwithSmoke

ThefollowingexampleshowshowtoverifythatSmokecatchesaparticularICEviolationandhowtousetheResultobjecttoperformfurtherverification.

[TestMethod][Description("AnexampletestthatverifiesanICEviolationiscaughtbysmoke")][Priority(3)]publicvoidExampleTest3(){stringtestDirectory=Environment.ExpandEnvironmentVariables(@"%WIX_ROOT%\test\data\Examples\ExampleTest3");

//BuildtheMSIthatwillberunagainstSmoke.Passthe-svalargumenttodelayvalidationuntilSmokeisrunstringmsi=Builder.BuildPackage(testDirectory,"product.wxs","product.msi",null,"-sval");

//CreateanewSmokeobjectSmokesmoke=newSmoke();smoke.DatabaseFiles.Add(msi);smoke.CubFiles.Add(@"%WIX_ROOT%\test\data\Examples\ExampleTest3\test.cub");

//DefinetheexpectedICEerror

Page 1722: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixMessageLGHT1076=newWixMessage(1076,"ICE1000:Component'ExtraICE.0.ProductComponent'installsintodirectory'TARGETDIR',whichwillgetinstalledintothevolumewiththemostfreespaceunlessexplicitlyset.",WixMessage.MessageTypeEnum.Warning);smoke.ExpectedWixMessages.Add(LGHT1076);

//RunSmokeandkeepareferencetotheResultobjectthatisreturnedbytheRun()methodResultresult=smoke.Run();

//UsetheResultobjecttoverifytheexitcode//Note:checkingforanexitcodeof0isdoneimplicitlyintheRun()methodbut//thisisjustfordemonstrationpurposes.Assert.AreEqual(0,result.ExitCode,"Actualexitcodedidnotmatchexpectedexitcode");}

Page 1723: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

Page 1724: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WiXFileTypesThereisasetoftoolsthatWiXofferstofulfilltheneedsofbuildingWindowsInstaller-basedpackages.Eachtooloutputsatypeoffilethatcanbeconsumedasinputsofanothertool.Afterprocessingthroughtheappropriatetools,thefinalinstallerisproduced.

TogetfamiliarwiththeWiXfiletypes,seeFileTypes.

Page 1725: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WiXToolsOnceyouarefamiliarwiththefiletypes,seehowthefiletypesareproducedbywhatWiXtoolsbyvisitingListofTools.ForagraphicalviewoftheWiXtoolsandhowtheyinteractwitheachother,seeWiXToolsetDiagram.

Page 1726: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WiXSchemaThecoreWiXschemaisaclosemirrorwiththeMSItables.ForhelpfulhintsonhowtheWiXschemamapstoMSItables,seeMSITablestoWiXSchema.

Page 1727: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BuildingInstallationPackageBundlesInthissection,wewillcoverthebasicsofcreatingasimplesetupthatproducesabundleusingtheWiXtoolset.

Abundleisacollectionofinstallationpackagesthatarechainedtogetherinasingleuserexperience.Bundlesareoftenusedtoinstallprerequisites,suchasthe.NETFrameworkorVisualC++runtime,beforeanapplication's.MSIfile.Bundlesalsoallowverylargeapplicationsorsuitesofapplicationstobebrokenintosmaller,logicalinstallationpackageswhilestillpresentingasingleproducttotheend-user.

Tocreateaseamlesssetupexperienceacrossmultipleinstallationpackages,theWiXtoolsetprovidesanengine(oftenreferredtoasabootstrapperorchainer)namedBurn.TheBurnengineisanexecutablethathostsaDLLcalledthe"bootstrapperapplication".ThebootstrapperapplicationDLLisresponsiblefordisplayingUItotheend-useranddirectstheBurnenginewhentocarryoutdownload,install,repairanduninstallactions.MostdeveloperswillnotneedtointeractdirectlywiththeBurnenginebecausetheWiXtoolsetprovidesastandardbootstrapperapplicationandthelanguagenecessarytocreatebundles.

CreatingbundleswiththeWiXtoolsetisdirectlyanalogoustocreatingWindowsInstallerpackages(.MSIfiles)usingthelanguageandstandardUIextensionprovidedbytheWiXtoolset.

ThissectionwillgiveyouanoverviewoftheWiXbundlelanguageandhowtouseittocreateabundle.

CreatetheSkeletonBundleAuthoringAuthortheBootstrapperApplicationforaBundleAuthoraBundlePackageManifestBurnBuilt-InVariablesDefineSearchesUsingVariablesChainPackagesintoaBundleWorkingwithWiXStandardBootstrapperApplication

Page 1728: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BuildingaBootstrapperApplication

Page 1729: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

ForWiXprojecttypes,seeWiXProjectTypes.

ForWiXitemtemplates,seeWiXItemtemplates.

FortheWiXpropertypages,seeWiXProjectpropertypages.

ForhintsonhowtoreadthedefaultWiXprojecttemplate,seeWiXProjectTemplate.

YoucancreateandbuildWindowsInstallerpackagesusingWiXwithintheVisualStudioIDE.Inthissection,wewillcoverthebasicsofcreatingasimplesetupusingVisualStudioandWiX.

CreatingasimplesetupUsingprojectreferencesandvariables

Alternatively,youmayalsouseWiXonthecommandlinebycallingthetoolsdirectlyorusingMSBuild.

Page 1730: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WorkingwithMSBuildWiXincludesacompletebuildprocess(.targetsfile)forusewithMSBuild-basedbuildsystems.Formoreinformationseethefollowingtopics.

Creatinga.wixprojfileIntegratingWiXProjectsIntoDailyBuildsBuildingWiXProjectsInTeamFoundationBuildWiXMSBuildTaskReferenceWiXMSBuildTargetReference

Page 1731: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HowToGuidesThissectionincludesHowTodocumentationforperformingcommonWiXtasks.

Page 1732: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

Files,ShortcutsandRegistryAddafiletoyourinstallerChecktheversionnumberofafileduringinstallationWritearegistryentryduringinstallationReadaregistryentryduringinstallationCreateashortcutontheStartMenuCreateashortcuttoawebpageCreateanuninstallshortcutNGenmanagedassembliesduringinstallationReferenceanotherDirectorySearchelementGettheparentdirectoryofafilesearch

Page 1733: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RedistributablesandInstallChecksCheckfor.NETFrameworkversionsInstallthe.NETFrameworkusingabootstrapperInstallDirectX9.0withyourinstallerInstalltheVisualC++RedistributablewithyourinstallerBlockinstallationbasedonOSversion

Page 1734: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UserInterfaceandLocalizationBuildalocalizedversionofyourinstallerMakeyourinstallerlocalizableRuntheinstalledapplicationaftersetupSetyourinstaller'siconinAdd/RemovePrograms

Page 1735: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ProductUpdatesImplementamajorupgradeinyourinstaller

Page 1736: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

OthersGetalogofyourinstallationfordebuggingLookinsideyourMSIwithOrcaGenerateaGUIDUseWiXExtensionsOptimizebuildingcabinetfilesSpecifysourcefilelocations

Page 1737: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1738: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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 1739: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

CreatingpatchesPatchesareupdatestoaproductorproducts.WiXsupportstwodifferentwaysofcreatingthem:

UsingPatchCreationPropertieswhichrequiresthatyouhavetheWindowsInstaller3.0ornewerSDKinstalledforfullsupportofincludedexamples.UsingPurelyWiXwhichusesfunctionalityprovidedinWiXanddoesnotrequireadditionaltools.

Therearealsorestrictionsonhowpatchesarebuiltinordertoavoidproblemswheninstallingthem.

Page 1740: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

FormoreinformationaboutpatchingwithWindowsInstaller,readPatchingandUpgrades.

Page 1741: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WiXSchemaReferencesThissectioncontainsschemareferenceinformationforWiXandextensions.

WixschemaWixlocschemaDifxappschemaforWixDifxAppExtensionFirewallschemaforWixFirewallExtensionGamingschemaforWixGamingExtensionIisschemaforWixIIsExtensionLuxschemaforWixLuxExtensionNetfxschemaforWixNetFxExtensionPsschemaforWixPSExtensionSqlschemaforWixSqlExtensionTagschemaforWixTagExtensionUtilschemaforWixUtilExtensionVsschemaforWixVSExtension

Page 1742: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DevelopingforWiXThissectioncoversthefollowingtopicsfordeveloperswhowanttocontributetotheWiXcodebase:

ExtensionDevelopmentDevelopingforVotiveAddingtotheWiXDocumentationTestingWiX

Seealsothefollowingtopicsononwixtoolset.org:

WiXToolsetGovernanceWiXToolsetDevelopment

Page 1743: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixUIDialogLibraryReferenceThissectionexplainsWixUIdialogsanddialogsetsthatareincludedwiththeWiXtoolset.

WixUI_AdvancedDialogSetWixUI_FeatureTreeDialogSetWixUI_InstallDirDialogSetWixUI_MinimalDialogSetWixUI_MondoDialogSetWixUIDialogs

Page 1744: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WorkingwithWiXStandardBootstrapperApplicationAsdescribedintheintroductiontobuildinginstallationpackagebundles,everybundlerequiresabootstrapperapplicationDLLtodrivetheBurnengine.Custombootstrapperapplicationscanbecreatedbutrequirethedevelopertowritenativeormanagedcode.Therefore,theWiXtoolsetprovidesastandardbootstrapperapplicationthatdeveloperscanuseandcustomizeinparticularways.

ThereareseveralvariantsoftheWiXStandardBootstrapperApplication.

1. WixStandardBootstrapperApplication.RtfLicense-thefirstvariantdisplaysthelicenseinthewelcomedialogsimilartotheWixUIAdvanced.

2. WixStandardBootstrapperApplication.HyperlinkLicense-thesecondvariantprovidesanoptionalhyperlinktothelicenseagreementonthewelcomedialog,providingamoremodernandstreamlinedlook.

3. WixStandardBootstrapperApplication.HyperlinkSidebarLicense-thethirdvariantisbasedonHyperlinkLicensebutprovidesalargerdialogandlargerimageontheinitialpage.

4. WixStandardBootstrapperApplication.RtfLargeLicense-thisvariantissimilartoRtfLicensebutisalargerdialogandsupportstheoptionofdisplayingtheversionnumber.

5. WixStandardBootstrapperApplication.HyperlinkLargeLicense-thisvariantissimilartoHyperlinkLicensebutisalargerdialogandsupportstheoptionofdisplayingtheversionnumber.

TousetheWiXStandardBootstrapperApplication,a<BootstrapperApplicationRef>elementmustreferenceoneoftheaboveidentifiers.Thefollowingexampleusesthebootstrapperapplicationthatdisplaysthelicense:

<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><Bundle><BootstrapperApplicationRefId="WixStandardBootstrapperApplication.RtfLicense"/>

Page 1745: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

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

HyperlinkLargeTheme,HyperlinkSidebarTheme,andRtfLargeThemecanoptionallydisplaythebundleversiononthewelcomepage:

<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"><Bundle><BootstrapperApplicationRefId="WixStandardBootstrapperApplication.RtfLicense"><bal:WixStandardBootstrapperApplicationLicenseFile="path\to\license.rtf"ShowVersion="yes"/></BootstrapperApplicationRef><Chain></Chain></Bundle></Wix>

Whenbuildingthebundle,theWixBalExtensionmustbeprovided.Iftheabovecodewasinafilecalled"example.wxs",thefollowingstepswouldcreatean"example.exe"bundle:

candle.exeexample.wxs-extWixBalExtensionlight.exeexample.wixobj-extWixBalExtension

ThefollowingtopicsprovideinformationabouthowtocustomizetheWiXStandardBootstrapperApplication:

SpecifyingtheWiXStandardBootstrapperApplicationLicenseChangingtheWiXStandardBootstrapperApplicationBrandingCustomizetheWiXStandardBootstrapperApplicationLayoutUsingWiXStandardBootstrapperApplicationVariables

Page 1746: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

GamingSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetGamingExtension.

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

ChildElementsGamePlayTaskSupportTask

Page 1747: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

NetfxSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolset.NETFrameworkExtension.

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

ChildElementsNativeImage

Page 1748: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

VsSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetVisualStudioExtension.

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

ChildElementsHelpCollectionHelpCollectionRefHelpFileHelpFileRefHelpFilterHelpFilterRefPlugCollectionIntoVsixPackage

Page 1749: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BalSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetBurnUserExperienceExtension.

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

ChildElementsConditionWixManagedBootstrapperApplicationHostWixStandardBootstrapperApplication

Page 1750: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ComplusSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetCOM+Extension.

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

ChildElementsComPlusApplicationComPlusApplicationRoleComPlusAssemblyComPlusAssemblyDependencyComPlusComponentComPlusGroupInApplicationRoleComPlusGroupInPartitionRoleComPlusInterfaceComPlusMethodComPlusPartitionComPlusPartitionRoleComPlusPartitionUserComPlusRoleForComponentComPlusRoleForInterfaceComPlusRoleForMethodComPlusSubscriptionComPlusUserInApplicationRoleComPlusUserInPartitionRole

Page 1751: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DependencySchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetDependencyExtension.

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

ChildElementsProvidesRequiresRequiresRef

Page 1752: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DifxappSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetDriverInstallFrameworksforApplicationsExtension.

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

ChildElementsDriver

Page 1753: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

FirewallSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetFirewallExtension.

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

ChildElementsFirewallExceptionRemoteAddress

Page 1754: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

HttpSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetHttpExtension.

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

ChildElementsUrlAceUrlReservation

Page 1755: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

IisSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetInternetInformationServicesExtension.

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

ChildElementsCertificateCertificateRefHttpHeaderMimeMapRecycleTimeWebAddressWebApplicationWebApplicationExtensionWebAppPoolWebDirWebDirPropertiesWebErrorWebFilterWebLogWebPropertyWebServiceExtensionWebSiteWebVirtualDir

Page 1756: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

LuxSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetLuxExtension.

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

ChildElementsConditionExpressionMutationUnitTestUnitTestRef

Page 1757: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

MsmqSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetMSMQExtension.

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

ChildElementsMessageQueueMessageQueuePermission

Page 1758: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

PsSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetPowerShellExtension.

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

ChildElementsFormatsFileSnapInTypesFile

Page 1759: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

SqlSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetSQLServerExtension.

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

ChildElementsSqlDatabaseSqlFileSpecSqlLogFileSpecSqlScriptSqlString

Page 1760: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

TagSchema

ThesourcecodeschemafortheWiXToolsetSoftwareIdTagExtension.

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

ChildElementsTagTagRef

Page 1761: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

ThmutilSchema

SchemafordescribingThemefilesprocessedbythmutil.

RootElementTheme

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

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

Page 1762: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

UtilSchema

ThesourcecodeschemafortheWindowsInstallerXMLToolsetUtilityExtension.

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

ChildElementsCloseApplicationComponentSearchComponentSearchRefDirectorySearchDirectorySearchRefEventManifestEventSourceFileSearchFileSearchRefFileShareFileSharePermissionGroupGroupRefInternetShortcutPerfCounterPerfCounterManifestPerformanceCategoryPerformanceCounterPermissionExProductSearchProductSearchRefRegistrySearchRegistrySearchRef

Page 1763: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

RemoveFolderExRestartResourceServiceConfigUserXmlConfigXmlFile

Page 1764: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixSchema

SchemafordescribingWindowsInstallerdatabasefiles(.msi/.msm/.pcp).

RootElementsIncludeWix

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

DocumentShouldLookLike<?xmlversion="1.0"?><Includexmlns="http://schemas.microsoft.com/wix/2006/wi">...</Include><?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi">...</Wix>

Page 1765: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WixlocSchema

SchemafordescribingWindowsInstallerXmlLocalizationfiles(.wxl).

RootElementWixLocalization

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

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

Page 1766: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

BuildingaCustomBootstrapperApplicationBurnisabootstrapper,downloader,chainer,andanengine.Asabootstrapper,Burnisresponsibleforgettingtheinstallationprocessstartedwiththefewestdependenciespossible.Asadownloader,Burnisresponsibleforrobustlycachingfilesfromsourcemedia(suchasCD),astandalonedownload,ortheInternet.Asachainer,Burnisresponsibleforinstallingmultipleinstallationpackagesinaconsistenttransaction.Asanengine,Burnprovidesallofthisfunctionalityviainterfacestothehostedbootstrapperapplication.

Thebootstrapperapplication(BA)isaDLLloadedbytheBurnengine.TheengineprovidestheBAaninterfacetocontroltheenginecalledIBootstrapperEngine.TheengineexpectstheBAtoprovideaninterfacecalledIBootstrapperApplicationsotheenginecanprovideprogress.

TheengineretrievestheIBootstrapperApplicationinterfacebycallingtheBootstrapperApplicationCreatefunctionthatmustbeexportedbytheBADLL.Thisfunctionlookslikethis:

extern"C"HRESULTWINAPIBootstrapperApplicationCreate(__inIBootstrapperEngine*pEngine,__inconstBOOTSTRAPPER_COMMAND*pCommand,__outIBootstrapperApplication**ppApplication)

TheBOOTSTRAPPER_COMMANDstructureisprovidedbytheengineandcontainsinformationreadfromthecommandline.Onsuccess,theBAreturnsitsIBootstrapperApplicationinterface.TheBADLLisprovidedtheIBootstrapperEngineinterfacewhentheenginecallsIBootstrapperApplication::OnStartup.

TheBADLLcanoptionallyprovideanexportedfunctionnamedBootstrapperApplicationDestroythattheenginewillcalljustbeforeunloadingtheBADLL.MostcleanupoperationsshouldtakeplaceinIBootstrapperApplication::OnShutdownbutsometimesthereare

Page 1767: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

resourcescreatedduringBootstrapperApplicationCreatethatneedtobecleanedupinBootstrapperApplicationDestroy.Theentrypointlookslikethis:

extern"C"voidWINAPIBootstrapperApplicationDestroy()

NotethatbootstrapperapplicationsmustberecompiledwhenupgradingminorversionsoftheWiXToolset.Minorversionsmaintainsource-codecompatibilitybutdonotguaranteebinarycompatibility.

Page 1768: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WiXMSBuildTaskReferenceThissectionexplainsMSBuildtasksthatareincludedwiththeWiXtoolset.

CandleTaskHeatDirectoryTaskHeatFileTaskHeatProjectTaskLightTaskLitTaskInsigniaTask

Page 1769: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

WiXMSBuildTargetReferenceThissectionexplainsMSBuildtargetsthatareincludedwiththeWiXtoolset.

HarvestDirectoryTargetHarvestFileTargetHarvestProjectsTarget

Page 1770: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

DevelopingWiXExtensionsThissectioncoversthefollowingtopicsfordeveloperswhowanttocreatetheirownWiXextensions:

IntroductiontoDevelopingWiXExtensionsCreatingaSkeletonExtensionCreatingaPreprocessorExtension

Page 1771: Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs..msi

TestingWiXThissectioncontainsdocumentsonhowtocreateandexecutetestsfortheWindowsInstallerXMLToolset.

RunningTestsWritingTests