Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML...
Transcript of Windows Installer XML (WiX) - Documentation & Help · Transform File A .wixmst file is an XML...
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.
HowdoesWiXwork?TheWiXsourcecodeiswritteninXMLformatwitha.wxsfileextension.TheWiXtoolsfollowthetraditionalcompileandlinkmodelusedtocreateexecutablesfromsourcecode.Atbuildtime,theWiXsourcefilesarevalidatedagainstthecoreWiXschema,thenprocessedbyapreprocessor,compiler,andlinkertocreatethefinalresult.ThereareasetofWiXtoolsthatcanbeusedtoproducedifferentoutputtypes.ForacompletelistoffiletypesandtoolsinWiX,seetheFileTypesandtheListofToolssections.
Seethefollowingtopicsformoredetailedinformation:
FundamentalToolsandConceptsCreatingInstallationPackageBundlesWorkinginVisualStudioWorkingwithMSBuildHowToGuidesStandardCustomActionsCreatinganInstallationPatchWiXSchemaReferenceDevelopingforWiX
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.
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
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-
infringement.
GettingStartedThereareseveraloptionsavailabletogetstartedlearninghowtouseWiX.
HowToGuidesThishelpfileincludesasetofHowToGuidesthatexplainhowtoaccomplishcommonWindowsInstallertasksusingWiX.
TutorialsWiXTutorialVideoonChannel9
CommunityIfyouprefertolearnbyinteractingwiththecommunity,thereisaWiXusersmailinglist.
IntegratedDevelopmentEnvironmentIfyouprefertolearnbyusinganintegrateddevelopmentenvironment,thereisanoverviewofWiXeditorsathttp://robmensching.com/blog/posts/2007/11/20/wix-editors.
ReverseEngineeringIfyouprefertolearnbyworkingbackwardfromaWindowsInstallerpackageyouhavealreadycreated,youcanruntheWiXdecompiler(Dark)toconvertyourpackageintoWiXauthoringandthenrecompileitusingtheWiXcompiler(Candle)andWiXlinker(Light).
ReadingSourceCodeIfyouprefertolearnbyreadingcode,WiXisanopensourceproject,andyoucanlookatthesourcecodebyreviewingtheHowtobeaWiXDevelopertopic.
FixaBug,WriteaFeatureIfyouprefertolearnbywritingcode,youcanreviewtheWiXissuetracker.
ForWiXdevelopmentassistance,thereisaWiXdevelopermailinglist.
GettingHelpPleaseseehttp://wixtoolset.org/formoreinformationabouttheWiXtoolset.Thissiteincludesthefollowinginformation:
1. LinkstodownloadweeklyreleasesoftheWiXtoolset.2. TheWiXbugdatabasewhereyoucanreportnewbugsorcheckthe
statusofexistingbugs.3. Mailingliststoaskquestions,makesuggestionsordiscusstheWiX
toolsetwithotherusersandtheWiXdevelopers.4. LinkstoblogsmaintainedbytheWiXdevelopers.
FileTypesTherearemanyfiletypesinWiXthataregeneratedfromdifferenttoolsinthetoolset.Atthehighestlevel,allinputfilesandintermediatefilesforWiXareXMLfiles.ThefinaloutputisintheformofstandardWindowsInstallerdatabasefiles.
Forexample,tobuildanMSIorMSP,thecompilerprocessesthesourcefiles(.wxsand.wxi)andproducesobjectfiles(.wixobj).Theseobjectsfilesarethenconsumedbythelinker,whichproducesWindowsInstallerdatabasefiles(.msior.msm).ThisisanalogoustotheC++modelofcompilingsourcecodetoobjectfiles,thenlinkingtoproduceexecutables.
ListoffiletypesThefollowinglistdescribesthesupportedfiletypesinWiX:
Extension Type Description
.wxi WiXIncludeFile
A.wxifileisanalogousto.hfilesforC++.Therootelementofthisfileis<Include>.Everythingundertherootelementwillbeinsertedinlinewhenthisfileisincludedinanothersourceorincludefile.
.wxl WiXLocalizationFile
A.wxlfilecontainsasetofstringsusedforlocalizingaproductintoaspecifiedculture.Therootelementofthisfileis<WixLocalization>.ThecultureisspecifiedbysettingtheCultureattributeonthe<WixLocalization>element.
.wxs WiXSourceFile
A.wxsfileisanalogoustoa.cppfileforC++.TheRootelementofthisfileis<Wix>.Formoredetail,seeAdditionalInformationbelow.
.wixobj WiXObjectFile
A.wixobjfileiscreatedbythecompilerforeachsourcefilecompiled.The.wixobjfilecontainsoneormoresectionsthat,inturn,containsymbolsandreferencestoothersymbols.Formoredetail,seeAdditionalInformationbelow.
.wixout WiXXMLOutputFile
A.wixoutfileiscreatedbythelinkerwhichrepresentstheresultoflinkingasetofobjectfiles.The.wixoutisanXMLrepresentationofthefinaloutput.
.wixlib WiXLibraryFile
A.wixlibfileisalibraryofsetupfunctionalitythatcanbeeasilysharedacrossdifferentWiX-
basedpackagesbyincludingitwhenlinkingthesetuppackage.
.wixpdb WiXDebugFile
A.wixpdbfileiscreatedbythelinkerforeachfinaloutput.Itcontainsthedebugginginformation.
.wixmsp WiXXMLPatchFile
A.wixmspfileistheXMLoutputgeneratedbylinkingobjectfilesinapatchbuild.
.wixmst WiXTransformFile
A.wixmstfileisanXMLrepresentationofthedifferencebetweenapairoffinaloutputsorXMLoutputs.
.msi WindowsInstallerInstallationPackage
Aninstallationpackagefile(.msi)isthebasicunitofinstallationfortheWindowsInstaller.
.msm WindowsInstallerMergeModule
Amergemodulefile(.msm)isusedtosharesetuplogicacrossdifferent.msipackages.Amergemodulecanbecreatedbyonedevelopmentteam,thenmergedintoanotherdevelopmentteam's.msipackage.
.mst WindowsInstallerTransform
Atransformfile(.mst)isusedtoapplychangestoan.msifile.
.pcp WindowsInstallerPatchCreationProcess
Apatchcreationpropertiesfile(.pcp)isusedasaninputtothepatchbuildingtoolsprovidedintheWindowsInstallerSDK.
AdditionalInformation
Structureof.wxsfiles
All.wxsfilesarewell-formedXMLdocumentsthatcontainasinglerootelementnamed<Wix/>.TherestofthesourcefilemayormaynotadheretotheWiXschemabeforepreprocessing.However,afterbeingpreprocessedallsourcefilesmustconformtotheWiXschemaortheywillfailtocompile.
Theroot<Wix>elementcancontainatmostoneofthefollowingelementsaschildren:<Product>,<Module>,and<Patch>.However,therecanbeanunboundednumber<Fragment>elementsaschildrenoftheroot<Wix>element.Whenasourcefileiscompiledintoanobjectfile,eachinstanceoftheseelementscreatesanewsectionintheobjectfile.Therefore,thesethreeelementsareoftenreferredtoassectionelements.
Itisimportanttonote,thattherecanbeonlyone<Product>or<Module>or<Patch>sectionelementpersourcefilebecausetheyarecompiledintospecialsectionscalledentrysections.Entrysectionsareusedasstartingpointsinthelinkingprocess.Sections,entrysections,andtheentirelinkingprocessaredescribedingreaterdetaillaterinthisdocument.
ThechildrenofthesectionelementsdefinethecontentsoftheWindowsInstallerdatabase.You’llrecognize<Property>elementsthatmaptoentriesinthePropertytableandahierarchyof<Directory>elementsthatbuilduptheDirectorytable.Mostelementscontainan“Id”attributethatwillactastheprimarykeyfortheresultingrowintheWindowsInstallerdatabase.Inmostcases,the“Id”attributealsodefinesasymbolwhenthesourcefileiscompiledintoanobjectfile.
Symbolsandreferences
Everysymbolinanobjectfileiscomposedoftheelementnameplustheuniqueidentifierfromthe“Id”attribute.Symbolsareimportantbecausetheycanbereferencedbyothersectionsfromanysourcefile.For
example,a<Directory>structurecanbedefinedina<Fragment>inonesourcefileanda<Component>canbedefinedunderadifferentsourcefile’s<Fragment>.Bymakingthe<DirectoryRef>elementaparentofthe<Component>anexplicitreferenceiscreatedthatreferencesthesymboldefinedbya<Directory>inthefirstsourcefile.ThelinkeristhenresponsibleforstitchingthesymbolandthereferencetogetherinasingleWindowsInstallerdatabase.Insomecases,implicitreferencesaregeneratedbythecompilerwhileprocessingasourcefile.Theseimplicitreferencesbehaveidenticallytoexplicitreferences.
Inadditiontothesimplereferencesdescribedabove,WiXsupportsspecificcomplexreferences.Complexreferencesareusedincaseswherethelinkermustgenerateextrainformationtolinkthesymbolandreferencetogether.TheperfectexampleofacomplexreferenceisintheWindowsInstaller’sFeature/Componentrelationship.Whena<Component>isreferencedexplicitlybya<Feature>througha<ComponentRef>element,thelinkermusttakethe<Feature>’ssymbolandthe<Component>’ssymbolandaddanentrytotheFeatureComponentstable.
ThisFeature/Componentrelationshipisevenmorecomplexbecausecertainelementsina<Component>,forexample<Shortcut>,havereferencesbacktotheprimaryFeatureassociatedwiththeComponent.Thesereferencesfromachildelementofa<Component>arecalledreversereferencesorsometimesfeaturebacklinks.Processingcomplexreferencesandreversereferencesisprobablythemostdifficultworkthelinkerhastodo.
Structureofthe.wixobjfile
A.wixobjfileiscreatedbythecompilerforeachsourcefilecompiled.The.wixobjfileisanXMLdocumentthatfollowstheobjects.xsdschemadefinedintheWiXproject.Asstatedabovethe.wixobjfilecontainsoneormoresectionsthat,inturn,containsymbolsandreferencestoothersymbols.
Whilethesymbolsandreferencesarearguablythemostimportantpiecesofdatainthe.wixobjfile,theyarerarelythebulkoftheinformation.Instead,most.wixobjfilesarecomposedof<table>,<row>and<field>elementsthatprovidetherawdatatobeplacedintheWindowsInstallerdatabase.Inmanycases,thelinkerwillnotonly
processthesymbolsandreferencesbutalsouseandupdatetherawdatafromthe.wixobjfile.Itisinterestingtonotethattheobjectfileschema,objects.xsd,usescamelcasingwherethesourcefileschema,wix.xsd,usesPascalcasing.Thiswasaconsciouschoicetoindicatethattheobjectfilesarenotintendedtobeeditedbytheuser.Infact,allschemasthatdefinedatatobeprocessedonlybytheWiXtoolsusecamelcasing.
ListofToolsToviewtheusageinformationofthetools,run/?onthetoolviathecommandline.
Name Description
Candle PreprocessesandcompilesWiXsourcefilesintoobjectfiles(.wixobj).Formoreinformationoncompiling,seeCompiler.Formoreinformationonpreprocessing,seePreprocessor.
Light Linksandbindsoneormore.wixobjfilesandcreatesaWindowsInstallerdatabase(.msior.msm).Whennecessary,LightwillalsocreatecabinetsandembedstreamsintotheWindowsInstallerdatabaseitcreates.Formoreinformationonlinking,seeLinker.
Lit Combinesmultiple.wixobjfilesintolibrariesthatcanbeconsumedbyLight.Formoreinformation,seeLibrarian.
Dark ConvertsaWindowsInstallerdatabaseintoasetofWiXsourcefiles.ThistoolisveryusefulforgettingallyourauthoringintoaWiXsourcefilewhenyouhaveanexistingWindowsInstallerdatabase.However,youwillthenneedtotweakthisfiletoaccomodatedifferentlanguagesandbreakingthingsintofragments.
Heat GeneratesWiXauthoringfromvariousinputformats.Itisusedforharvestingfiles,VisualStudioprojectsandInternetInformationServerwebsites,"harvesting"thesefilesintocomponentsandgeneratingWindowsInstallerXMLSourcefiles(.wxs).HeatisgoodtousewhenyoubeginauthoringyourfirstWindowsInstallerpackageforaproduct.
Insignia Inscribesaninstallerdatabasewithinformationaboutthedigitalcertificatesitsexternalcabsaresignedwith.Formore
information,seeInsignia.
Melt Convertsan.msmintoacomponentgroupinaWiXsourcefile.
Torch Performsadifftogenerateatransform(.wixmstor.mst)forXMLoutputs(.wixoutor.wixpdb)or.msifiles.
Smoke Runsvalidationcheckson.msior.msmfiles.
Pyro TakesanXMLoutputpatchfile(.wixmsp)andoneormoreXMLtransformfiles(.wixmst)andproducesan.mspfile.
WixCop EnforcesstandardsonWiXsourcefiles.WixCopcanalsobeusedtoassistinconvertingasetofWiXsourcefilescreatedusinganolderversionofWiXtothelatestversionofWiX.Formoreinformation,seeWixCop.
WixUnit RunsvalidationsonasetofXMLfilesandtheexpectedoutputfile.TakesasetofWiXsourcefilesandanexpectedMSIastheinputandoutputsPass/Fail.
LuxandNit
Authorandrundeclarativeunittestsforcustomactions.Formoreinformation,seeUnit-testingcustomactionswithLux.
ResponsefilesAllWiXcommand-linetoolssupportresponsefiles,whicharetextfilesthatcontaincommand-lineswitchesandarguments.AnythingyoucanputonaWiXtoolcommandlinecaninsteadgointoaresponsefile.Responsefilesareusefulwhenyouhavecommandlinesthataretoolongforyourcommandshell.Forexample,youmightwanttogeneratearesponsefilethatcontainscommand-lineswitchesandthefilesthatyouwanttocompilewithcandle.exe:
-nologo-wx1.wxs2.wxs3.wxs
andissueacommandlike:
Specifyaresponsefilewiththe@character,followedimmediatelybythepathnameoftheresponsefile,withnowhitespacein-between.Responsefilescanappearatthebeginning,inthemiddle,orattheendofcommandlinearguments.
WiXToolsetDiagramBelowisadiagramshowingtherelationshipofalloftheWiXtoolsandtheoutputthattheygenerate.
PreprocessorOftenyouwillneedtoadddifferentpiecesofyoursetupduringbuildtimedependingonmanyfactorssuchastheSKUbeingbuilt.ThisisdonebyusingconditionalstatementsthatwillfilterthexmlbeforeitissenttotheWiXcompiler(candle).Ifthestatementevaluatestotrue,theblockofxmlwillbesenttocandle.Ifthestatementevaluatestofalse,candlewillneverseethatsectionofxml.
TheconditionalstatementsareBooleanexpressionsbasedonenvironmentvariables,variablesdefinedinthexml,literalvalues,andmore.
Example
Let’sstartwithanexample.Sayyouwanttoincludeafileifyou’rebuildingthe“EnterpriseSKU.”Yourbuildusesanenvironmentvariable%MySku%=Enterprisetospecifythissku.
Whenyoubuildtheenterprisesku,thisfilewillbeincludedinthexmlpassedontocandle.Whenyoubuildadifferentsku,thexmlfromEnterpriseFeature.wxiwillbeignored.
<?if$(env.MySku)=Enterprise?><?includeEnterpriseFeature.wxi?><?endif?>
IncludeFiles<?include?>Asshownintheexampleabove,filescanbeincludedbyusingtheincludetag.Thefilenamereferencedinthetagwillbeprocessedasifitwerepartofthisfile.
Therootelementoftheincludefilemustbe<Include>.Therearenootherrequirementsbeyondtheexpectedwixschema.Forexample,
<Include><FeatureId='MyFeature'Title='My1stFeature'Level='1'><ComponentRefId='MyComponent'/></Feature></Include>
VariablesAnyvariablecanbetestedforitsvalueorsimplyitsexistence.Customvariablescanalsobedefinedinyourxml.
Threetypesofvariablesaresupported:
$(env._NtPostBld)Getstheenvironmentvariable%_NtPostBld%
$(sys.CURRENTDIR)Getsthesystemvariableforthecurrentdirectory
$(var.A)GetsthevariableAthatwasdefinedinthisxml
Thepreprocessorevaluatesvariablesthroughouttheentiredocument,includingin<?if?>expressionsandattributevalues.
EnvironmentVariables
Anyenvironmentvariablecanbereferencedwiththesyntax$(env.VarName).Forexample,ifyouwanttoretrievetheenvironmentvariable%_BuildArch%,youwoulduse$(env._BuildArch).Environmentvariablenamesarecase-insensitive.
SystemVariables
WiXhassomebuilt-invariables.Theyarereferencedwiththesyntax$(sys.VARNAME)andarealwaysinuppercase.
CURRENTDIRThecurrentdirectorywherethebuildprocessisrunning.
SOURCEFILEPATHThefullpathtothefilebeingprocessed.
SOURCEFILEDIRThedirectorycontainingthefilebeingprocessed.
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.
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
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-->
<?if$(var.myValue)=6?><?endif?><!--false--><?if$(var.myValue)!=3?><?endif?><!--false--><?ifnot"x"="y"?><?endif?><!--true--><?if$(env.systemdrive)=a?><?endif?><!--false--><?if3<$(var.myValue)?><?endif?><!--false--><?if$(var.B)="goodVAR"?><?endif?><!--false--><?if$(var.A)andnot$(env.MyEnvVariable)?><?endif?><!--false--><?if$(var.A)Or($(var.B)And$(var.myValue)>=3)?><?endif?><!--true--><?ifdefIExist?><!--true--><?else?><!--false--><?endif?>
ErrorsandWarningsYoucanusethepreprocessortoshowmeaningfulerrorandwarningmessagesusing,<?errorerror-message?>and<?warningwarning-message?>.Whenoneofthesepreprocessorinstructionsisencounteredthepreprocessorwilleitherdisplayanerrorandstopthecompileordisplayawarningandcontinue.
Anexample:
<?ifndefRequiredVariable?><?errorRequiredVariablemustbedefined?><?endif?>
IterationStatementsThereisasingleiterationstatement,<?foreachvariable-nameinsemi-colon-delimited-list?><?endforeach?>.Whenthisoccursthepreprocessorwill
createaprivatecopyofthevariablecontextsetthevariableintheforeachstatementtoaniterationonthesemicolondelimitedlistgenerateafragmentwiththevariablesubstituted
Theeffectofthisprocessisthatthefragmentisusedasatemplatebythepreprocessorinordertogenerateaseriesoffragments.Thevariablenameinthe?foreachstatementcanbeprecededby"var.".Whenavariableisusedinsidethetextofthefragment,itmustbeprecededby"var."
Anfewexamples:
<?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?>
or
filename:ExtentOfLocalization.wxi<Include><?defineLcidList=1033;1041;1055?></Include>
and
<?includeExtentOfLocalization.wxi?><?foreachLCIDin$(var.LcidList)?><FragmentId='Fragment.$(var.LCID)'><DirectoryRefId='TARGETDIR'><ComponentId='MyComponent.$(var.LCID)'/></DirectoryRef></Fragment><?endforeach?>
AnalternativetotheforeachprocesswouldbetowritethetemplateWiXfragmentintoaseparatefileandhaveanotherprocessgeneratetheauthoringthatwillbepassedtoWiX.Thegreatestmeritofthisalternativeisthatit'seasiertodebug.
EscapingThepreprocessortreatsthe$characterinaspecialwayifitisfollowedbya$or(.Ifyouwanttousealiteral$$,use$$$$instead.Everytwo$characterswillbereplacedwithone.Forexample,$$$$$willbereplacedwith$$$.
FunctionsThepreprocessorsupportsthefollowingfunctions:
$(fun.AutoVersion(x.y))Getsanautogeneratedversionnumberusingthesameschemeas.NETAssemblyVersionattribute.Theparametersx.yspecifythemajorandminorverionnumber,thebuildissettothenumberofdayssince1/1/2000andrevisiontothenumberofsecondssincemidnightdividedby2.BothvaluesarecalculatedusingUTC.
ExtensionsWiXhassupportforpreprocessorextensionsviathePreprocessorExtensionclass.ThePreprocessorExtensioncanprovidecallbackswithcontextatforeachinitialization,variableevaluation,functiondefinitions,andthelastcallbeforeinvokingthecompiler(forfullcustompreprocessing).
CompilerTheWindowsInstallerXMLcompilerisexposedbycandle.exe.Candleisresponsibleforpreprocessingtheinput.wxsfilesintovalidwell-formedXMLdocumentsagainsttheWiXschema,wix.xsd.Then,eachpost-processedsourcefileiscompiledintoa.wixobjfile.
Thecompilationprocessisrelativelystraightforward.TheWiXschemalendsitselftoasimplerecursivedescentparser.Thecompilerprocesseseachelementinturncreatingnewsymbols,calculatingthenecessaryreferencesandgeneratingtherawdataforthe.wixobjfile.
Linker(light)TheWindowsInstallerXMLlinkerisexposedbylight.exe.Lightisresponsibleforprocessingoneormore.wixobjfiles,retrievingmetadatafromvariousexternalfilesandcreatingaWindowsInstallerdatabase(MSIorMSM).Whennecessary,lightwillalsocreatecabinetsandembedstreamsinthecreatedWindowsInstallerdatabase.
Thelinkerbeginsbysearchingthesetofobjectfilesprovidedonthecommandlinetofindtheentrysection.Ifmorethanoneentrysectionisfound,lightfailswithanerror.ThisfailureisnecessarybecausetheentrysectiondefineswhattypeofWindowsInstallerdatabaseisbeingcreated,aMSIorMSM.Itisnotpossibletocreatetwodatabasesfromasinglelinkoperation.
Whilethelinkerwasdeterminingtheentrysection,thesymbolsdefinedineachobjectfilearestoredinasymboltable.Aftertheentrysectionisfound,thelinkerattemptstoresolveallofthereferencesinthesectionbyfindingsymbolsinthesymboltable.Whenasymbolisfoundinadifferentsection,thelinkerrecursivelyattemptstoresolvereferencesinthenewsection.Thisprocessofgatheringthesectionsnecessarytoresolveallofthereferencescontinuesuntilallreferencesaresatisfied.Ifasymbolcannotbefoundinanyoftheprovidedobjectfiles,thelinkerabortsprocessingwithanerrorindicatingtheundefinedsymbol.
Afterallofthesectionshavebeenfound,complexandreversereferencesareprocessed.ThisprocessingiswhereComponentsandMergeModulesarehookedtotheirparentFeaturesor,inthecaseofMergeModules,ComponentsareaddedtotheModuleComponentstable.ThereversereferenceprocessingaddstheappropriateFeatureidentifiertothenecessaryfieldsforelementslike,Shortcut,Class,andTypeLib.
Onceallofthereferencesareresolved,thelinkerprocessesalloftherowsretrievingthelanguage,version,andhashforreferencedfiles,calculatingthemedialayout,andincludingthenecessarystandardactionstoensureasuccessfulinstallationsequence.Thispartoftheprocessingtypicallyendsupgeneratingadditionalrowsthatgetaddedassociatedwiththeentrysectiontoensuretheyareincludedinthefinal
WindowsInstallerdatabase.
Finally,lightworksthroughthemechanicsofgeneratingIDTfilesandimportingthemintotheWindowsInstallerdatabase.Afterthedatabaseisfullycreated,thefinalpostprocessingisdonetomergeinanyMergeModulesandcreateacabinetifnecessary.TheresultisafullyfunctionalWindowsInstallerdatabase.
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.
-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.
-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.
-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.
-sval SuppressMSI/MSMvalidation.
-sw<N> SuppresswarningswithspecificmessageIDs.
-swall Suppressallwarnings(deprecated).
-usf<output.xml>
Specifyanunreferencedsymbolsfile.
-v Generateverboseoutput.
-wx<N> Treatwarningsaserrors.
-wxall Treatallwarningsaserrors(deprecated).
-xo GenerateXMLoutputinsteadofanMSI.
-? DisplayLighthelpinformation.
BinderVariables
StandardBinderVariables
Somepropertiesarenotavailableuntilthelinkerisabouttogenerate,orbind,thefinaloutput.Thesevariablesarecalledbindervariablesandsupportedbindervariablesarelistedbelow.
AllVersionedFiles
Thefollowingstandardbindervariablesareavailableforallversionedbinaries.
Variablename Exampleusage Examplevalue
bind.fileLanguage.FileID !(bind.fileLanguage.MyFile) 1033
bind.fileVersion.FileID !(bind.fileVersion.MyFile) 1.0.0.0
Assemblies
Thefollowingstandardbindervariablesareavailableforallmanagedandnativeassemblies(exceptwherenoted),wheretheFile/@Assemblyattributeissetto".net"or"win32".
Variablename Exampleusage
bind.assemblyCulture.FileID(managedonly)
!(bind.assemblyCulture.MyAssembly)
bind.assemblyFileVersion.FileID !(bind.assemblyFileVersion.MyAssembly)
bind.assemblyFullName.FileID !(bind.assemblyFullName.MyAssembly)
(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
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)
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.
LibraryTool(lit)LitistheWiXlibrarycreationtool.Itcanbeusedtocombinemultiple.wixobjfilesintolibrariesthatcanbeconsumedbylight.
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
example,-sw1011-sw1012.
-swall Suppressallwarnings(deprecated).
-v Generateverboseoutput
-wx<N> Treatwarningsaserrors.Forexample,-wx1011-wx1012.
-wxall Treatallwarningsaserrors(deprecated).
-? DisplayLithelpinformation
HarvestTool(Heat)GeneratesWiXauthoringfromvariousinputformats.
Everytimeheatisrunitregeneratestheoutputfileandanychangesarelost.
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.
-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.
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:
-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.
-wx[N] TreatallwarningsoraspecificmessageIDasanerror.e.g.-wx1011-wx1012.
-wxall Treatallwarningsaserrors(deprecated).
-?|-help Displayheathelpinformation.
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
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.
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"%(SignCabs.FullPath)""/></Target>
Finally,overridethe"SignMsi"target.Here'sasimilarexample,alsousingsigntool.exe.
<TargetName="SignMsi"><ExecCommand="signtool.exesign/a"%(SignMsi.FullPath)""/></Target>
Thiswillcausethebuildprocess,afterlinkingtheMSI,tosignanyexternalcabs,inscribeyourMSIwiththedigitalsignaturesofthosecabs,andthensigntheMSI,allattheappropriatetimesduringthebuildprocess.
Insigniacanalsobeusedtodetachandre-attachtheburnenginefroma
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"@(SignBundleEngine)""/></Target><TargetName="SignBundle"><ExecCommand="Signtool.exesign/a"@(SignBundle)""/></Target>
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
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.
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
strongly-typedWiXCOMelement.
UpgradeVersionRemoveFeaturesEmpty DisplayedwhenanUpgradeVersionelementhasanemptyRemoveFeaturesattribute.
FeatureFollowParentDeprecated DisplayedwhenaFeatureelementcontainsthedeprecatedFollowParentattribute.
RadioButtonMissingValue DisplayedwhenaRadioButtonelementismissingtheValueattribute.
TypeLibDescriptionEmpty DisplayedwhenaTypeLibelementcontainsaDescriptionelementwithanemptystringvalue.
ClassRelativePathMustBeAdvertised DisplayedwhenaRelativePathattributeoccursonanunadvertisedClasselement.
ClassDescriptionEmpty DisplayedwhenaClasselementhasanemptyDescriptionattribute.
ServiceInstallLocalGroupEmpty DisplayedwhenaServiceInstallelementhasanemptyLocalGroupattribute.
ServiceInstallPasswordEmpty DisplayedwhenaServiceInstallelementhasanemptyPasswordattribute.
ShortcutWorkingDirectoryEmpty DisplayedwhenaShortcutelementhasanemptyWorkingDirectoryattribute.
IniFileValueEmpty DisplayedwhenaIniFileelementhasanemptyValueattribute.
FileSearchNamesCombined DisplayedwhenaFileSearchelementhasaNameattributethatcontainsboththeshortandlongversionsofthefilename.
WebApplicationExtensionIdDeprecated DisplayedwhenaWebApplicationExtensionelementhasadeprecatedIdattribute.
WebApplicationExtensionIdEmpty DisplayedwhenaWebApplicationExtensionelementhasanemptyIdattribute.
PropertyValueEmpty DisplayedwhenaPropertyelementhasanemptyValueattribute.
ControlCheckBoxValueEmpty DisplayedwhenaControlelementhasanemptyCheckBoxValueattribute.
RadioGroupDeprecated DisplayedwhenadeprecatedRadioGroupelementisfound.
ProgressTextTemplateEmpty DisplayedwhenaProgresselementhasanemptyTextTemplateattribute.
RegistrySearchTypeRegistryDeprecated DisplayedwhenaRegistrySearchelementhasaTypeattributesetto'registry'.
WebFilterLoadOrderIncorrect DisplayedwhenaWebFilter/@LoadOrderattributehasavaluethatisnotmorestonglytyped.
SrcIsDeprecated Displayedwhenanelementcontainsadeprecatedsrcattribute.
RequireComponentGuid DisplayedwhenaComponentelementismissingtherequiredGuidattribute.
LongNameDeprecated DisplayedwhenaanelementhasaLongNameattribute.
RemoveFileNameRequired DisplayedwhenaRemoveFileelementhasnoNameorLongNameattribute.
DeprecatedLocalizationVariablePrefix Displayedwhenalocalizationvariablebeginswiththedeprecated'$'character.
NamespaceChanged Displayedwhenthenamespaceofanelementhaschanged.
UpgradeVersionPropertyAttributeRequired DisplayedwhenanUpgradeVersionelementismissingtherequiredPropertyattribute.
UpgradePropertyChild DisplayedwhenanUpgradeelementcontainsadeprecatedPropertychildelement.
RegistryElementDeprecated DisplayedwhenadeprecatedRegistryelementisfound.
PatchSequenceSupersedeTypeChanged DisplayedwhenaPatchSequence/@Supersedeattributecontainsadeprecatedintegervalue.
PatchSequenceTargetDeprecated DisplayedwhenadeprecatedPatchSequence/@Targetattributeisfound.
VerbTargetDeprecated DisplayedwhenadeprecatedVerb/@Targetattributeisfound.
ProgIdIconFormatted Displayedwhena
ProgId/@Iconattributevaluecontainsaformattedstring.
IgnoreModularizationDeprecated DisplayedwhenadeprecatedIgnoreModularizationelementisfound.
PackageCompressedIllegal DisplayedwhenaPackage/@CompressedattributeisfoundunderaModuleelement.
PackagePlatformsDeprecated DisplayedwhenaPackage/@Platformsattributeisfound.
ModuleGuidDeprecated DisplayedwhenadeprecatedModule/@Guidattributeisfound.
GuidWildcardDeprecated Displayedwhenadeprecatedguidwildcardvalueisfound.
FragmentRefIllegal DisplayedwhenaFragmentRefElementisfound.
FileRedundantNames DisplayedwhenaFile/@NamematchesaFile/@ShortName.
Unit-testingcustomactionswithLuxCustomactionsareafrequentcauseofinstallationfailuressoit'simportanttotestthemthoroughly.Customactionsthemselvesusuallyaren'ttested.Thetraditionaltestingapproachistorunfunctionaltestsonanentireinstallerandtocoverasmanyscenariosandplatformcombinationsaspossible.
CustomactionpatternsWiXcompilerextensionsprovideonewayofimprovingcustomactionquality:Becausecompilerextensionsrunatbuildtimeinsteadofinstalltime,theycanperformallsortsofdatavalidationandconversiononstrongly-typedauthoringbeforeconvertingittorowsandcolumnsofcustomtablesintheMSIpackage.
Immediatecustomactionsthenreadthosecustomtables,checkcurrentstate(forexample,componentactionstate,thestateofthemachineitself),andserializetheresultingdataintoacustomactiondataproperty.Immediatecustomactionsaretheplacetodothelogicthatneedslivestateandcannotbedeterminedatbuildtimebyacompilerextension.Becauseimmediatecustomactionsruninthesecuritycontextoftheinstallinguserandoutsideaninstallationtransaction,theygenerallydonothavepermissionstomodifythemachineandiftheyfail,theinstallationsimplyendswithouttheneedtodoanycleanuporrollback.
Deferredcustomactionsreadthecustomactiondatapropertysetbyimmediatecustomactionstoknowwhattodo.Onewaytoimprovecustomactionreliabilityistomakeasfewdecisionsaspossibleindeferredcustomactions;instead,implementallthelogicincompilerextensionsandimmediatecustomactionsandhavedeferredcustomactionssimplyreadthecustomactiondatapropertyinalooptomodifythemachine.
TheWiXcustomactionsthatmodifythemachineusethispattern.Forexample,XmlConfigauthoringisvalidatedbytheWixUtilExtensioncompilerextensionandtranslatedtorowsandcolumnsintheXmlConfigtable.TheSchedXmlConfigimmediatecustomactionreadstheXmlConfigtable,constructsacustomactiondatapropertybasedontheXmlConfigtableandmachine'sstate(includingcheckingcomponentstateandstoringexistingfiledatatosupportrollback),thenschedulestheExecXmlConfigdeferredcustomactiontoexecutetheXMLchangesandtheExecXmlConfigRollbackrollbackcustomactiontorollbackthechanges.
TestingwithLuxLuxisaWiXextension(andassociatedtools)thatletyouwritedata-drivenunittestsforyourcustomactions.
Theexecutivesummary:Luxrunsyourimmediatecustomactionsthenvalidatestheysetpropertiestothevaluesyouexpect.
Whileit'sasimpleapproach,ifyourcustomactionsarefactoredasdiscussedabove,validatingthepropertiessetbyimmediatecustomactionscanvalidatealltheinteractionbetweenyourcustomactions,theMSIpackage,andMSIitself.
Ifyourcustomactionsaren'tfactoredasdiscussed--forexample,ifyourdeferredcustomactionsexpectonlyaninstallationdirectoryandhavelogictoconstructfilepathsfromit--thenit'slikelythatyourimmediatecustomactionsdon'thavealotoflogicthat'susefultotest.
Luxdoesnothelpyoutestthecustomactioncodethatactuallymodifiesthemachine;forthat,continuetouseotherunit-testframeworksandautomatedtests.Byworkingonlywithimmediatecustomactions,LuxcanletMSIrunthecustomactionsas-is,eliminatingtheneedtowritecustomtestdoublesfortheMSIAPI.Luxrunsfromaper-userpackagesounlessyourunthetestsfromanelevatedcommandprompt,noneofthecustomactionsgetelevatedprivilegesandthereforecannotmodifythemachine.
Here'showLuxworks:
1. YouwriteyourunittestsusingXMLinWiXsourcefiles.2. TheLuxextensionconvertstheXMLtoatableinatest.msi
package.3. TheLuxcustomactionrunsafterallotherimmediatecustomactions
andevaluatesyourunittests.
AuthoringunittestsLuxsupportsthefollowingunittests:
PropertyvaluesExpressionsMulti-valuepropertiesName/value-pairproperties
Notethatyoushouldalwaysauthorunittestsinfragmentsseparatefromyourcustomactionauthoringoranyotherproductauthoring.Ifyoumixunittestswithotherauthoring,WiXincludestheunit-testdatainyour"real"installers.
PropertyvaluetestsAsimpletestletsyouspecifyapropertytotest,avaluetotestagainst,andtheoperatortocomparewith(whichdefaultsto"equal").
<Fragment><lux:UnitTestCustomAction="TestCustomActionSimple"Property="SIMPLE"Value="[INSTALLFOLDER]"Operator="equal"/></Fragment>
Whenthetestruns,LuxcomparesthevalueoftheSIMPLEpropertyagainstthe(formatted)value[INSTALLFOLDER].Ifthetwomatch(becausetheoperatoris"equal"),thetestpasses.LegalvaluesoftheOperatorattributeare:
equal(Default)ComparesPropertytoValueandsucceedsiftheyareequal.
notEqualComparesPropertytoValueandsucceedsiftheyareNOTequal.
caseInsensitiveEqualComparesPropertytoValueandsucceedsiftheyareequal(ignoringcase).
caseInsensitiveNotEqualComparesPropertytoValueandsucceedsiftheyareNOTequal(ignoringcase).
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.
ExpressiontestsExpressiontestsletyoutestanyvalidMSIexpression.Iftheexpressionistrue,thetestpasses.Iftheexpressionisfalseorinvalid,thetestfails.
<Fragment><lux:UnitTestCustomAction="TestCustomActionSimple"><lux:Expression>NOTMsiSystemRebootPendingANDSIMPLE</lux:Expression></lux:UnitTest></Fragment>
Multi-valuepropertytestsBecausedeferredcustomactionscanaccessonlyasinglecustom-actiondataproperty,customactionsthatneedmorethanonepieceofdataencodeitinasinglestring.Onewayistohavetheimmediatecustomactionseparatemultipleelementswithaknownseparatorcharacter,thenhavethedeferredcustomactionsplitthestringatthoseseparatecharacters.LuxsupportssuchseparatorsusingtheValueSeparatorandIndexattributes.
<Fragment><lux:UnitTestCustomAction="TestCustomActionMultiValue"Property="MULTIVALUE"ValueSeparator="*"><lux:Condition>VersionNT</lux:Condition><lux:UnitTestIndex="0"Value="1"/><lux:UnitTestIndex="1"Value="[INSTALLFOLDER]"><lux:Condition>NOTInstalled</lux:Condition></lux:UnitTest><lux:UnitTestIndex="2"Value="WIXEAST"/></lux:UnitTest></Fragment>
AconditionundertheparentUnitTestelementappliestoallindividualunittests.OverrideitwithaConditionchildelement.
Name/value-pairpropertytestsAnotherwayofprovidingmultiplevaluestoadeferredcustomactionistocombinename/valuepairsintoasinglestring.Luxsupportsname/value-pairpropertiesusingtheNameValueSeparatorandIndexattributes.
<Fragment><lux:UnitTestCustomAction="TestCustomActionNameValuePairs"Property="NAMEVALUEPAIRS"NameValueSeparator="#"><lux:UnitTestIndex="InstallationRoot"Value="[INSTALLFOLDER]"/><lux:UnitTestIndex="Developers"Operator="caseInsensitiveNotEqual"Value="WIXEAST"/></lux:UnitTest></Fragment>
TestmutationsImmediatecustomactionsfrequentlyneedtocreatedifferentcustomactiondatadependingonglobalmachinestate.Forexample,ifacomponentisalreadyinstalled,acustomactionmighthavedifferentbehaviortoupgradethecomponent,versusinstallingitforthefirsttime.
BecauseLuxrunsonlyimmediatecustomactions,it'snotpossibletoactuallyupdatetheglobalmachinestate.OneapproachistocreatemultiplecustomactionDLLs,mockingMSIfunctionstoreturnhard-codedvalues.Luxsimplifiesthismodelwithtestmutations.
Testmutationsletyouauthorunittestswithdifferentexpectedresults.ThemutationidispassedasthevalueoftheWIXLUX_RUNNING_MUTATIONproperty.Yourcustomaction,typicallyinan'#ifdefDEBUG'block,retrievestheWIXLUX_RUNNING_MUTATIONpropertyandmockdifferentbehaviorbasedonthemutation.Toauthortestmutations,usetheMutationelementwithUnitTestelementsaschildren.Forexample:
<lux:MutationId="SimulateDiskFull"><lux:UnitTest.../></lux:Mutation>
Nitrunsthetestpackageonceforeachmutation,settingtheWIXLUX_RUNNING_MUTATIONpropertytoonemutationidatatime.Teststhataren'tchildrenofamutationareruneverytime.
BuildingtestpackagesLuxunittestsrunfromaminimalpackagethatincludesjustyourunittestsandtheresourcestheyneedtorun.BecauseLuxrunsonlyimmediatecustomactions,itdoesn'tneedafull,per-machinepackagethatincludesallthefilesandotherresourcestobeinstalled.SuchaminimalpackagesavesbuildtimebutdoesrequirethatyourWiXsourcecodebewellmodularizedwithfragments.Forexample,youshouldalwaysauthorunittestsinfragmentsseparatefromanyotherauthoring.Ifyoumixunittestswithotherauthoring,WiXincludestheunit-testdatainyour"real"installers.Likewise,anyotherWiXauthoringincludedinunit-testfragmentsisincludedintestpackages.
Luxcomeswithatoolthatsimplifiesthecreationoftestpackages.Itsnameislux.exe.Touselux.exe:
1. Compilethesourcefilecontainingyourunittests.2. Runlux.exeonthe.wixobjfileandspecifyasourcefileforthetest
package.3. Compilethetestpackagesource.4. Linkthetestpackage.wixobjwiththeunittests.wixobj.
Forexample:
candle-extWixLuxExtensionCustomActions.wxsluxCustomActions.wixobj-outLuxSample1_test.wxscandle-extWixLuxExtensionLuxSample1_test.wxslight-extWixLuxExtensionLuxSample1_test.wixobjCustomActions.wixobj-outLuxSample1_test.msi
LuxalsoincludesanMSBuildtaskand.targetsfiletoletyoubuildtestpackagesfromthesame.wixprojyouusetobuildyourinstallers.Tobuildatestpackage,buildtheBuildTestPackagetargetusingMSBuild3.5:
%WINDIR%\Microsoft.NET\Framework\v3.5\MSBuild.exe/t:BuildTestPackage
RunningunittestsAfterbuildingthetestpackage,youcanrunitwithloggingenabledtocapturetestresults:
msiexec/ltest1.log/ibin\Debug\LuxSample1_test.msi
SearchthelogforWixRunImmediateUnitTeststoseetestresultsandotherloggingfromtheLuxcustomaction.
Nit:TheLuxtestrunnerLuxalsoincludesNit,aconsoleprogramthatmonitorstheloggingmessagesemittedbyunittestsandreportssuccessorfailure.TouseNitonyourtestpackages,justspecifytheirfilenamesasargumentstonit.exe.Forexample:
nitLuxSample1_test.msi
LuxalsoletsyourunNitonyourtestpackagesfromthesame.wixprojyouusetobuildyourinstallers.TorunatestpackageunderNit,buildtheTesttargetusingMSBuild3.5:
%WINDIR%\Microsoft.NET\Framework\v3.5\MSBuild.exe/t:Test
Thetestpackagewillbebuiltbeforethetestsarerun,ifnecessary.Theoutputlookslikethefollowing,withfailingtestshighlightedinredasbuilderrors:
Test: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)->
(Testtarget)->nit.exe:errorNIT8103:TestluxA6D27EC5903612D7F3786FF71952E314failed:Property'MULTIVALUE'expectedvalue'2'butactualvaluewas'1'.nit.exe:errorNIT8103:Testlux402940A90D3ADAD181D599AB8C260FA0failed:Property'MULTIVALUE'expectedvalue'xxxWIXEAST'butactualvaluewas'WIXEAST'.nit.exe:errorNIT8102:2testsfailed.7testspassed.
0Warning(s)3Error(s)
TimeElapsed00:00:07.87
FAQArethesereallyunittests?TheylookalotlikeFittests.
Fittestsaretabularanddata-driven,sotheyhavealotincommonwithLux'sunittests.Butfittestsarefocusedonhigh-leveloutputs,whereasunittestsarelow-leveldevelopertests.
Usingthecustomactioncodeas-issoundsgood,butarethereanylimitationswiththatapproach?
Yes.Becauseyouarerunningtheactualcustomaction,anycodepathsthatrelyonmachinestatereflectthestateofthemachineyourunthetestson.Forexample,codethathasdifferentbehaviorondifferentversionsofWindowsrunsonlyoneway,justlikeitdoesinanormalinstaller.YoucanadddebugcodethatlooksforthepresenceoftheWIXLUXTESTPACKAGEproperty;it'ssetto1inatestpackage.
Ihaveunitteststhatfailbecausedirectorypropertiesarebeingreturnedasemptystrings.Why?
Themostlikelycauseisthatyourdirectoriesaredefinedaschildrenofyourinstaller'sProductelement.Lux.exebuildsitsownProductelementtoproductaminimaltestpackage,sononeoftheresourcesdefinedinyourProductareavailabletotheunittests.ThesimplestsolutionistomovethoseresourcestotheirownFragment.
DoIhavetowritemycustomactionsinC++?No,Luxworkswithanyimmediatecustomactions,regardlessofthelanguagethey'rewrittenin,includingMSItype51property-settingcustomactions.
MSITablestoWiXSchemaIntheWiXschema,itsnotalwaysentirelyobvioushowthetablesfromtheWindowsInstallerschemamaptotheWiXschema.Belowaresomehelpfulhintsonhowtofigureouttherelationshipsbetweenthetwoschemas.
DuplicateFileTableThisisauthoredusingaCopyFilenodenestedunderaFilenode.YouonlyneedtosettheId,DestinationFolder,andDestinationNameattributes.
LaunchConditionTableThisisauthoredusingaConditionnodeauthoredunderFragmentorProduct.YouonlyneedtosettheMessageattribute.
LockPermissionsTableThisisauthoredusingPermission.
MoveFileTableThisisauthoredusingaCopyFilenodenestedunderaComponentnode.YouwillneedtosetallattributesexceptDelete.SetDeleteto'yes'inordertousethemsidbMoveFileOptionsMoveoption.
PublishComponentTableThePublishComponentfunctionalityisavailableinWiXbyusingaCategory.HereisasmallsampleofwhataPublishComponentrecordwouldlooklikeinMSI,theninWiXnotation.
MSI
ComponentId Qualifier Component_ AppData Feature_{11111111-2222-3333-4444-5555555555555}
1033 MyComponent RandomData
MyFeature
WiX
<ComponentId='MyComponent'Guid='87654321-4321-4321-4321-110987654321'><CategoryId='11111111-2222-3333-4444-5555555555555'AppData='RandomData'Qualifier='1033'/></Component>...<FeatureId='MyFeature'Level='1'><ComponentRefId='MyComponent'/></Feature>
RemoveIniFileThisisauthoredusingIniFile.JustsettheActionattributeto'removeLine'or'removeTag'asappropriate.
RemoveRegistryTableThisisauthoredusingRegistry.SimplysettheActionattributeto'remove'or'removeKey'(asappropriate)inordertogetanentryintheRemoveRegistrytable.
CodePagesCodepagesmapcharactercodestoactualcharacters,orgraphemes.Codepagesarealsousedtoconvertfromoneencodingtoanother.
CodePagesinWindowsInstallerWindowsInstallerstoresstringsinapackageaccordingtoaparticularcodepage.Aseparatecodepageisusedforthesummaryinformationstreamandtherestofthepackagedatabase,whichincludestheActionText,Error,Property,andothertables.
FormoreinformationaboutcodepagesinWindowsInstaller,readCodePageHandling.
SettingtheCodePageusingWiXTop-levelelementslikeProduct,Module,Patch,andPatchCreationsupportaCodepageattribute.YoucansetthistoavalidWindowscodepagebyintegerlike1252,orbywebnamelikeWindows-1252.UTF-7andUTF-8arenotofficiallysupportedbecauseofuserinterfaceissues.Unicodeisnotsupported.
Tosupportauthoringasinglepackagethatcanbelocalizedintomultiplelanguages,youcansetthePackage/@SummaryCodepageorPatchInformation/@SummaryCodepageelementtoanlocalizationexpressionlike!(loc.SummaryCodepage).YouthendefinetheSummaryCodepagevalueinalocalizationfile,typicallyendingina.wxlextension.TherootWixLocalizationelementalsosupportsaCodepageattributethatisusedtoencodetherestofthepackagedatabase.
Youcanalsosetthecodepageto0.Inthiscase,WindowsInstallertreatsstringsasneutral,meaningthatyoucanonlysafelyuseASCIIcharacters-thefirst128ANSIcharacters-butthedatabasewillbesupportedacrossWindowsplatforms.SeeCreatingaDatabasewithaNeutralCodePageformoreinformation.
ForawalkthroughabouthowtoauthorabuildlocalizedpackagesusingWiXseeHowTo:MakeyourinstallerlocalizableandHowTo:Buildalocalizedversionofyourinstaller.
UsefulWindowsInstallerInformationLinktotheWindowsInstaller4.5SDK:http://msdn.microsoft.com/en-us/library/cc185688.aspx
ListofWindowsInstallerdefaultproperties:http://msdn.microsoft.com/en-us/library/aa370905.aspx
ListofWindowsInstalleroperatorsforconditionalexpressions:http://msdn.microsoft.com/en-us/library/aa368012.aspx
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.
ItemTemplatesWiXVisualStudiopackageprovidesthefollowingitemtemplatesforWiXprojects:
WiXFile-a.wxsfilepre-populatedwiththesameinformationasthedefaultWXSfileinaWiXLibraryProjectWiXIncludeFile-ablank.wxifileWiXLocalizationFile-ablank.wxlfileTextFile-ablank.txtfile
FormoreinformationaboutWiXfiletypes,pleasevisittheFileListsection.
Toaddanewitem:
1. Right-clickontheprojectnodeintheSolutionExplorer.2. ChooseAdd|NewItem...andselecttheappropriateitemtemplate.3. TypeintheitemnameintheNamefieldandpressAdd.
ProjectPropertyPagesToaccesstheWiXprojectpropertypages,right-clickonaWiXprojectintheVisualStudioSolutionExplorerandchooseProperties.WiXprojectscontainthefollowingpropertypages:
InstallerBuildBuildEventsPathsToolSettings
InstallerPropertyPageTheInstallertabcontainsthefollowingconfigurableoptions:
Outputname-atextboxthatcontainsthenameofthefilethatwillbecreatedbythebuildprocess.Outputtype-adrop-downlistthatallowsyoutoselecttheoutputtype:AnMSIpackage,mergemodule,WiXlibrary,orbootstrapper.
BuildPropertyPageTheBuildtabcontainsthefollowingconfigurableoptions:
TheGeneralsectionallowsyoutodefineconfiguration-specificconstantsandspecifytheculturetobuild.FormoreinformationseeSpecifyingculturestobuild.TheMessagessectionallowsyoutospecifywarninglevels,toggletreatingwarningsaserrorsandverboseoutput.TheOutputsectionallowsyoutospecifytheoutputpath,toggledeletetemproaryfiles,suppressoutputofthewixpdbfile,andtogglewhetherornottobindfilesintothelibraryfile(ifitisaWiXLibraryproject).
BuildEventsPropertyPageTheBuildEventstabcontainsthefollowingconfigurableoptions:
Pre-buildeventcommandline-atextboxthatcontainsthepre-buildeventstoexecutebeforebuildingthecurrentproject.Post-buildeventcommandline-atextboxthatcontainsthepost-buildeventstoexecuteafterbuildingthecurrentproject.Runthepost-buildevent-adrop-downcomboboxthatallowsyoutospecifytheconditionsinwhichpost-buildeventsshouldbeexecuted.
TheBuildEventstabcontainsbuttonsnamedEditPre-build...andEditPost-build...thatdisplayeditdialogsforthepreandpost-buildeventcommandlines.TheeditdialogscontainalistofallvalidWiXprojectreferencevariablesandtheirvaluesbasedonthecurrentprojectsettings.
PathsPropertyPageThePathstabcontainsthefollowingconfigurableoptions:
TheReferencePathssectionallowsyoutodefinepathsyouwanttousewhenlocatingreferences(WiXextensionsandWiXlibraries).TheIncludePathssectionallowsyoutodefinepathsyouwanttousewhenlocatingWiXIncludefiles.
ToolSettingsPropertyPageTheToolSettingstabcontainsthefollowingconfigurableoptions:
TheICEvalidationsectionallowsyoutotoggleICEvalidationsuppressionorspecifywhichICEvalidationtosuppress.TheAdditionalparameterssectionallowsyoutospecifycommandlineargumentstopassdirectlytotheWiXtoolsatbuildtime.
ReadingtheDefaultWiXProjectTemplateOnceaWiXprojectiscreated,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.-->
<!--</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.
CreatingaSimpleSetupInthistutorial,wewillcreateaC#WindowsFormApplicationandthenuseWiXtocreateaninstallerfortheapplication.
Step1:CreatetheC#WindowsFormApplication1. ClickFile,thenselectNew,thenselectProject.2. ChoosetheVisualC#nodeintheProjectTypestree,thenselect
WindowsFormsApplication.3. Nameyourapplication"MyApplication"andpressOK.
Step2:Createtheinstallerfortheapplication1. ClickFile,thenclickNew,thenclickProject.2. ChoosetheWindowsInstallerXMLnodeintheProjecttypestree,
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,
canbefoundintheAddingProjectReferencestopic.
UsingProjectReferencesandVariablesTheWiXprojectsupportsaddingprojectreferencestootherprojectssuchasVBandC#.Thisensuresthatbuildorderdependenciesaredefinedcorrectlywithinthesolution.Inaddition,itgeneratesasetofWiXpreprocessorvariablesthatcanbereferencedinWiXsourcefilesandpreprocessordefinitionswhicharepassedtothecompileratbuildtime.
ToaddaprojectreferencetoaWiXproject:
1. Right-clickontheReferencesnodeoftheprojectintheSolutionExplorerandchooseAddReference....
2. IntheAddReferencedialog,clickontheProjectstab.3. Selectthedesiredproject(s)andclicktheAddbutton,andthen
pressOKtodismissthedialog.
SupportedProjectReferenceVariablesOnceaprojectreferenceisadded,alistofprojectvariablesbecomesavaliabletobereferencedintheWiXsourcecode.Projectreferencevariablesareusefulwhenyoudonotwanttohavehard-codedvalues.Forexample,the$(var.MyProject.ProjectName)variablewillquerythecorrectprojectnameatbuildtimeevenifIchangethenameofthereferencedprojectafterthereferenceisadded.
ThefollowingdemonstrateshowtouseprojectreferencevariablesinWiXsourcecode:
<FileId="MyExecutable"Name="$(var.MyProject.TargetFileName)"Source="$(var.MyProject.TargetPath)"DiskId="1"/>
TheWiXprojectsupportsthefollowingprojectreferencevariables:
Variablename Exampleusage Examplevalue
var.ProjectName.Configuration $(var.MyProject.Configuration) DebugorRelease
var.ProjectName.FullConfiguration $(var.MyProject.FullConfiguration) Debug|AnyCPU
var.ProjectName.Platform $(var.MyProject.Platform) AnyCPU,Win32,x64oria64
var.ProjectName.ProjectDir $(var.MyProject.ProjectDir) C:\users\myusername\Documents\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
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).
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)
shouldbeaddedusingthe<Content>elementwithinanItemGroup.
IntegratingWiXProjectsIntoDailyBuildsOneofthemostcommonreasonsforusingMSBuildwithWiXprojectfilesistointegratethebuildofaninstallerintoanexistingdailybuildprocess.ThisisoftencoupledwithaneedtobuildWiXprojectswithouthavingtopre-installanyWiXtoolsonthedailybuildmachine.WiXprojectsandtheWiXtoolstobuildthemcanbeaddedtomostdailybuildprocessesthatsupportMSBuildusingafewsimplesteps.
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.
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.
BuildingWiXProjectsInTeamFoundationBuildOnceyouhavecreatedaWiXprojectfile,youneedtoperformsomeadditionalstepsinordertosuccessfullybuildtheWiXprojectinTeamFoundationBuild.Withouttheseadditionalsteps,theWiXprojectwillbeignoredbydefaultbyTeamFoundationBuildeventhoughitisanMSBuild-compatibleproject.
Step1:UpdatetheSolutionBuildConfigurationBydefault,WiXprojectswillnotbebuiltwhenbuildingthe'AnyCPU'platformbecauseWindowsInstallerpackagesareCPU-specific.Asaresult,youneedtousethefollowingstepstoupdatethesolutionbuildconfigurationtoincludeyourWiXprojectanditsdependenciesaspartofaTeamFoundationBuild.
1. Inthesolution,openConfigurationManager(Build|ConfigurationManager).
2. Setthe'Debug'configurationastheactiveconfiguration.3. Selectthe'x86'platformthatyouplantobuildfromthedrop-down
list.4. EnsurethattheWiXprojectischeckedinthe'Build'column.5. EnsurethatanyprojectreferencesthattheWiXprojectusesarealso
checkedinthe'Build'column.6. Setthe'Release'configurationastheactiveconfiguration.7. Repeatsteps3-5toensurethattheWiXprojectandits
dependencieswillbuildforthe'Release'configuration.8. Ifyouplantobuildthe'x64'platform,repeatsteps3-7forthe'x64'
platform.9. CloseConfigurationManagerandsavethesolution.
Step2:AddtheBuildConfigurationstoTFSBuild.projNowthatyouhaveaddedtheWiXprojectanditsdependentprojectstothe'x86'and/or'x64'buildconfigurations,TeamFoundationBuildwillbuildyourWiXprojectinthesebuildconfigurations.However,thesebuildconfigurationsmaynotbespecifiedinyourTeamFoundationBuildDefinition(TFSBuild.proj).
WhenyoucreateanewBuildDefinition,youcanselectthe'Debug/MixedPlatforms'and'Release/MixedPlatforms'buildconfigurationstobuildallprojectsinyoursolution,includingWiXprojects.
IfyouhaveanexistingBuildDefinition,youneedtousethefollowingstepstomodifyitsoitwillbuildWiXprojectsalongwiththeotherprojectsinyoursolution.
1. Right-clickontheBuildDefinitionandselectViewConfigurationFolder.
2. CheckoutandopenthefilenamedTFSBuild.proj.3. Addthefollowingbuildconfigurationstothe<ConfigurationToBuild>
sectioniftheydonotalreadyexistthere,orupdatethemiftheydoalreadyexist:
<ConfigurationToBuildInclude="Debug|MixedPlatforms"><FlavorToBuild>Debug</FlavorToBuild><PlatformToBuild>MixedPlatforms</PlatformToBuild></ConfigurationToBuild><ConfigurationToBuildInclude="Release|MixedPlatforms"><FlavorToBuild>Release</FlavorToBuild><PlatformToBuild>MixedPlatforms</PlatformToBuild></ConfigurationToBuild>
4. Close,saveandcheckinthechangestoTFSBuild.proj.
Aftermakingtheabovechangesandqueuingthebuild,youwillseefoldersnamed'Debug'and'Release'inthebuildoutput.Eachofthesefolderswillcontainasub-foldernamed'en-us'(oranotherculturedependingonthesettingsintheWiXproject)thatcontainsthebuilt
WindowsInstallerpackage.
HarvestDirectoryTargetTheHarvestDirectorytargetpassesHarvestDirectoryitemstotheHeatDirectorytasktogenerateauthoringfromafile.Authoringisgeneratedfortypelibrariesandself-registrationfromDllRegisterServerforanyfilesfoundindirectories.Thistargetisprocessedbeforecompilation.GeneratedauthoringisautomaticallyaddedtotheCompileitemgrouptobecompiledbytheCandletask.
<ItemGroup><HarvestDirectoryInclude="..\TestProject\Data"><DirectoryRefId>DataDir</DirectoryRefId></HarvestDirectory></ItemGroup>
ThefollowingtablesdescribethecommonWiXMSBuildpropertiesanditemsthatareapplicabletotheHarvestDirectorytarget.
ItemsThefollowingitemsanditemmetadataareusedbytheHarvestDirectorytarget.
ItemorMetadata Description@(HarvestDirectory) Requireditemgroup.
Thelistofdirectoriestoharvest.
%(HarvestDirectory.ComponentGroupName)
Optionalstringmetadata.Ifyouareharvestingmultipledirectoriesinyourproject,youshouldspecifythismetadatatocreateuniquefilenamesforthegeneratedauthoring.
ThenameoftheComponentGrouptocreateforallthegeneratedauthoring.
%(HarvestDirectory.DirectoryRefId) Optionalstringmetadata.
TheIDofthedirectorytoreferenceinsteadofTARGETDIR.
%(HarvestDirectory.KeepEmptyDirectories)
Optionalbooleanmetadata.
WhethertocreateDirectoryentriesforemptydirectories.Thedefaultisfalse.
%(HarvestDirectory.PreprocessorVariable) Optionalstringmetadata.
SubstituteSourceDirforanothervariablename(ex:var.Dir).
%(HarvestDirectory.SuppressCom) Optionalbooleanmetadata.
SuppressgenerationofCOMregistryelements.Thedefaultisfalse.
%(HarvestDirectory.SuppressRootDirectory)
Optionalbooleanmetadata.
SuppressgenerationofaDirectoryelementfortheparentdirectoryofthefile.Thedefaultisfalse.
%(HarvestDirectory.SuppressRegistry) Optionalbooleanmetadata.
Suppressgenerationofanyregistryelements.Thedefaultisfalse.
%(HarvestDirectory.Transforms) Optionalstringmetadata.
XSLtransformstoapplytothegeneratedWiXauthoring.Separatemultipletransformswithsemicolons.
PropertiesThefollowingpropertiesareusedbytheHarvestDirectorytarget.
Property Description$(HarvestDirectoryAutogenerateGuids) Optionalboolean
Whethertogenerateauthoringthatreliesonauto-generationofcomponentGUIDs.Thedefaultis$(HarvestAutogenerateGuids)ifspecified;otherwise,true.
$(HarvestDirectoryComponentGroupName) Optionalstringproperty.Ifyouareharvestingmultipledirectoriesinyourproject,youshouldspecifythismetadatatocreateuniquefilenamesforthegeneratedauthoring.
Thecomponentgroupnamethatwillcontainallgeneratedauthoring.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestDirectoryDirectoryRefId) Optionalstringproperty.
TheidentifieroftheDirectoryelementthatwillcontainallgeneratedauthoring.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestDirectoryGenerateGuidsNow) Optionalboolean
Whethertogenerateauthoringthat
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
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
WhethertosuppressgenerationofuniquecomponentIDs.Thedefaultis$(HarvestSuppressUniqueIds)specified;otherwise,
$(HarvestDirectoryTransforms) Optionalstringproperty.
XSLtransformstoapplytoallgeneratedWiXauthoring.Separatemultipletransformswithsemicolons.Thedefaultis$(HarvestTransforms)ifspecified.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestDirectoryTreatSpecificWarningsAsErrors) Optionalstringparameter.
Specifiesthatcertainwarningsshouldbetreatedaserrors.Thedefaultis$(HarvestTreatSpecificWarningsAsErrors)ifspecified.
$(HarvestDirectoryTreatWarningsAsErrors) Optionalboolean
Specifiesthatallwarningsshouldbetreatedaserrors.Thedefaultis$(HarvestTreatWarningsAsErrors)ifspecified;otherwise,
$(HarvestDirectoryVerboseOutput) Optionalboolean
Specifiesthatthetoolshouldprovideverboseoutput.Thedefaultis$(HarvestVerboseOutput)ifspecified;otherwise,false.
HarvestFileTargetTheHarvestFiletargetpassesHarvestFileitemstotheHeatFiletasktogenerateauthoringfromafile.Authoringisgeneratedfortypelibrariesandself-registrationfromDllRegisterServer.Thistargetisprocessedbeforecompilation.GeneratedauthoringisautomaticallyaddedtotheCompileitemgrouptobecompiledbytheCandletask
<ItemGroup><HarvestFileInclude="comserver.dll"><ComponentGroupName>COM</ComponentGroupName><DirectoryRefId>ServerDir</DirectoryRefId></HarvestFile></ItemGroup>
ThefollowingtablesdescribethecommonWiXMSBuildpropertiesanditemsthatareapplicabletotheHarvestFiletarget.
ItemsThefollowingitemsanditemmetadataareusedbytheHarvestFiletarget.
ItemorMetadata Description@(HarvestFile) Requireditemgroup.
Thelistoffilestoharvest.%(HarvestFile.ComponentGroupName)
Optionalstringmetadata.
ThenameoftheComponentGrouptocreateforallthegeneratedauthoring.
%(HarvestFile.DirectoryRefId) Optionalstringmetadata.
TheIDofthedirectorytoreferenceinsteadofTARGETDIR.
%(HarvestFile.PreprocessorVariable) Optionalstringmetadata.
SubstituteSourceDirforanothervariablename(ex:var.Dir).
%(HarvestFile.SuppressCom) Optionalbooleanmetadata.
SuppressgenerationofCOMregistryelements.Thedefaultisfalse.
%(HarvestFile.SuppressRootDirectory)
Optionalbooleanmetadata.
SuppressgenerationofaDirectoryelementfortheparentdirectoryofthefile.Thedefaultisfalse.
%(HarvestFile.SuppressRegistry) Optionalbooleanmetadata.
Suppressgenerationofanyregistryelements.Thedefaultisfalse.
%(HarvestFile.Transforms) Optionalstringmetadata.
XSLtransformstoapplytothegeneratedWiXauthoring.Separatemultipletransformswithsemicolons.
PropertiesThefollowingpropertiesareusedbytheHarvestFiletarget.
Property Description$(HarvestFileAutogenerateGuids) Optionalbooleanproperty.
Whethertogenerateauthoringthatreliesonauto-generationofcomponentGUIDs.Thedefaultis$(HarvestAutogenerateGuids)ifspecified;otherwise,true.
$(HarvestFileComponentGroupName) Optionalstringproperty.
Thecomponentgroupnamethatwillcontainallgeneratedauthoring.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestFileDirectoryRefId) Optionalstringproperty.
TheidentifieroftheDirectoryelementthatwillcontainallgeneratedauthoring.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestFileGenerateGuidsNow) Optionalbooleanproperty.
WhethertogenerateauthoringthatgeneratesdurableGUIDswhenharvesting.Thedefaultis$(HarvestGenerateGuidsNow)ifspecified;otherwise,false
$(HarvestFileNoLogo) Optionalbooleanproperty.
Whethertoshowthelogoforheat.exe.Thedefaultis$(NoLogo)ifspecified;otherwise,false.
$(HarvestFilePreprocessorVariable) Optionalstringproperty.
SubstituteSourceDirforanothervariablename(ex:var.Dir)inallgeneratedauthoring.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestFileSuppressAllWarnings) Optionalbooleanparameter.
Specifiesthatallwarningsshouldbesuppressed.Thedefaultis$(HarvestSuppressAllWarnings)ifspecified;otherwise,false
$(HarvestFileSuppressCom) Optionalbooleanproperty.
WhethertosuppressgenerationofCOMregistryelementswhenharvesting.Thedefaultisfalse.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestFileSuppressFragments) Optionalbooleanproperty.
Whethertosuppressgenerationofseparatefragmentswhenharvesting.Thedefaultis$(HarvestSuppressFragments)ifspecified;otherwise,true
$(HarvestFileSuppressRegistry) Optionalbooleanproperty.
Whethertosuppressgenerationofallregistryelementswhenharvesting.Thedefaultisfalse.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestFileSuppressRootDirectory) Optionalbooleanproperty.
WhethertosuppressgenerationofaDirectoryelementforallauthoringwhenharvesting.Thedefaultis
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestFileSuppressSpecificWarnings) Optionalstringparameter.
Specifiesthatcertainwarningsshouldbesuppressed.Thedefaultis$(HarvestSuppressSpecificWarnings)ifspecified.
$(HarvestFileSuppressUniqueIds) Optionalbooleanproperty.
WhethertosuppressgenerationofuniquecomponentIDs.Thedefaultis$(HarvestSuppressUniqueIds)specified;otherwise,false
$(HarvestFileTransforms) Optionalstringproperty.
XSLtransformstoapplytoallgeneratedWiXauthoring.Separatemultipletransformswithsemicolons.Thedefaultis$(HarvestTransforms)ifspecified.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestFileTreatSpecificWarningsAsErrors) Optionalstringparameter.
Specifiesthatcertainwarningsshouldbetreatedaserrors.Thedefaultis$(HarvestTreatSpecificWarningsAsErrors)ifspecified.
$(HarvestFileTreatWarningsAsErrors) Optionalbooleanparameter.
Specifiesthatallwarningsshouldbetreatedaserrors.Thedefaultis$(HarvestTreatWarningsAsErrors)ifspecified;otherwise,false
$(HarvestFileVerboseOutput) Optionalbooleanparameter.
Specifiesthatthetoolshouldprovideverboseoutput.Thedefaultis$(HarvestVerboseOutput)ifspecified;otherwise,false.
HarvestProjectsTargetTheHarvestProjectstargetpassesHarvestProjectitemstotheHeatProjecttasktogenerateauthoringfromaprojectfile.
Harvestingprojectsisdisabledbydefaultbecauseitmaynotalwaysworkcorrectly,butyoucanenableitbyaddingthefollowingtothetopofyourWiXprojectfile:
<PropertyGroup><EnableProjectHarvesting>True</EnableProjectHarvesting></PropertyGroup>
Ifenabled,thistargetisprocessedbeforecompilation.GeneratedauthoringisautomaticallyaddedtotheCompileitemgrouptobecompiledbytheCandletask.
<ItemGroup><HeatProjectInclude="..\TestProject\TestProject.csproj"><ProjectOutputGroups>Binaries;Sources</ProjectOutputGroups></HeatProject></ItemGroup>
ThefollowingtablesdescribethecommonWiXMSBuildpropertiesanditemsthatareapplicabletotheHarvestProjectstarget.
ItemsThefollowingitemsanditemmetadataareusedbytheHarvestProjectstarget.
ItemorMetadata Description@(HarvestProject) Requireditemgroup.
Thelistofprojectstoharvest.TheHeatProjectitemgroupisprovidedonlyforbackwardcompatibility.
%(HarvestProject.ProjectOutputGroups)
Optionalstringmetadata.
Theprojectoutputgroupstoharvest.Separatemultipleoutputgroupswithsemicolons.Examplesinclude"Binaries"and"Source".
%(HarvestProject.Transforms) Optionalstringmetadata.
XSLtransformstoapplytothegeneratedWiXauthoring.Separatemultipletransformswithsemicolons.
PropertiesThefollowingpropertiesareusedbytheHarvestProjectstarget.
Property Description$(HarvestProjectsAutogenerateGuids) Optionalbooleanproperty.
Whethertogenerateauthoringthatreliesonauto-generationofcomponentGUIDs.Thedefaultis$(HarvestAutogenerateGuids)ifspecified;otherwise,true.
$(HarvestProjectsGenerateGuidsNow) Optionalbooleanproperty.
WhethertogenerateauthoringthatgeneratesdurableGUIDswhenharvesting.Thedefaultis$(HarvestGenerateGuidsNow)ifspecified;otherwise,
$(HarvestProjectsNoLogo) Optionalbooleanproperty.
Whethertoshowthelogoforheat.exe.Thedefaultis$(NoLogo)ifspecified;otherwise,false.
$(HarvestProjectsProjectOutputGroups) Optionalstringproperty.
Theprojectoutputgroupstoharvestfromallprojects.Separatemultipleprojectoutputgroupswithsemicolons.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestProjectsSuppressAllWarnings) Optionalbooleanparameter.
Specifiesthatallwarningsshouldbesuppressed.Thedefaultis$(HarvestSuppressAllWarnings)ifspecified;otherwise,
$(HarvestProjectsSuppressFragments) Optionalbooleanproperty.
Whethertosuppressgenerationofseparatefragmentswhenharvesting.Thedefaultis$(HarvestSuppressFragments)ifspecified;otherwise,
$(HarvestProjectsSuppressSpecificWarnings) Optionalstringparameter.
Specifiesthatcertainwarningsshouldbesuppressed.Thedefaultis$(HarvestSuppressSpecificWarnings)ifspecified.
$(HarvestProjectsSuppressUniqueIds) Optionalbooleanproperty.
WhethertosuppressgenerationofuniquecomponentIDs.Thedefaultis$(HarvestSuppressUniqueIds)specified;otherwise,
$(HarvestProjectsTransforms) Optionalstringproperty.
XSLtransformstoapplytoallgeneratedWiXauthoring.Separatemultipletransformswithsemicolons.Thedefaultis$(HarvestTransforms)ifspecified.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestProjectsTreatSpecificWarningsAsErrors) Optionalstringparameter.
Specifiesthatcertainwarningsshouldbetreatedaserrors.Thedefaultis$(HarvestTreatSpecificWarningsAsErrors)
ifspecified.$(HarvestProjectsTreatWarningsAsErrors) Optionalbooleanparameter.
Specifiesthatallwarningsshouldbetreatedaserrors.Thedefaultis$(HarvestTreatWarningsAsErrors)ifspecified;otherwise,
$(HarvestProjectsVerboseOutput) Optionalbooleanparameter.
Specifiesthatthetoolshouldprovideverboseoutput.Thedefaultis$(HarvestVerboseOutput)ifspecified.
CandleTaskTheCandletaskwrapscandle.exe,theWiXcompiler.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.Tocontrolthesesettingsinyour.wixprojfile,youcancreateaPropertyGroupandspecifythesettingsthatyouwanttouseforyourbuildprocess.ThefollowingisasamplePropertyGroupthatcontainssettingsthatwillbeusedbytheCandletask:
<PropertyGroup><CompilerTreatWarningsAsErrors>False</CompilerTreatWarningsAsErrors><CompilerVerboseOutput>True</CompilerVerboseOutput><DefineConstants>Variable1=value1;Variable2=value2</DefineConstants><InstallerPlatform>x86</InstallerPlatform><SuppressSpecificWarnings>1111</SuppressSpecificWarnings><TreatSpecificWarningsAsErrors>2222</TreatSpecificWarningsAsErrors></PropertyGroup>
ThefollowingtabledescribesthecommonWiXMSBuildparametersthatareapplicabletotheCandletask.
Parameter DescriptionSuppressAllWarnings Optionalbooleanparameter.
Specifiesthatallwarningsshouldbesuppressed.Thisisequivalenttothe-swswitch.
SuppressSchemaValidation Optionalbooleanparameter.
Specifiesthatschemavalidationofdocumentsshouldbesuppressed.Thisisequivalenttothe-ssswitch.
SuppressSpecificWarnings Optionalstringparameter.
Specifiesthatcertainwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switch.
TreatSpecificWarningsAsErrors Optionalstringparameter.
Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switch.
TreatWarningsAsErrors Optionalbooleanparameter.
Specifiesthatallwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitch.
VerboseOutput Optionalbooleanparameter.
Specifiesthatthetoolshouldprovideverboseoutput.Thisisequivalenttothe-vswitch.
ThefollowingtabledescribestheparametersthatarespecifictotheCandletask.
Parameter DescriptionCompilerAdditionalOptions Optionalstringparameter.
Specifiesadditionalcommandlineparameterstoappendwhencallingcandle.exe.
CompilerSuppressAllWarnings Optionalbooleanparameter.
Specifiesthatallcompilerwarningsshouldbesuppressed.Thisisequivalenttothe-swswitchincandle.exe.
CompilerSuppressSchemaValidation Optionalbooleanparameter.
Specifiesthatthecompilershouldsuppressschema
validationofdocuments.Thisisequivalenttothe-ssswitchincandle.exe.
CompilerSuppressSpecificWarnings Optionalstringparameter.
Specifiesthatcertaincompilerwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switchincandle.exe.
CompilerTreatSpecificWarningsAsErrors Optionalstringparameter.
Specifiesthatcertaincompilerwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switchincandle.exe.
CompilerTreatWarningsAsErrors Optionalbooleanparameter.
Specifiesthatallcompilerwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitchincandle.exe.
CompilerVerboseOutput Optionalbooleanparameter.
Specifiesthatthecompilershouldprovideverboseoutput.Thisisequivalenttothe-vswitchincandle.exe.
DefineConstants Optionalstringparameter.
Specifiesasemicolon-delimitedlistofpreprocessorvariables.
Thisisequivalenttothe-d<name>[=<value>]switchincandle.exe.
SuppressFilesVitalByDefault Optionalbooleanparameter.
Specifiesthatthecompilershouldsuppressmarkingfilesasvitalbydefault.Thisisequivalenttothe-sfdvitalswitchincandle.exe.
PreprocessToStdOut Optionalbooleanparameter.
Specifiesthatthecompilershouldoutputpreprocessinginformationtostdout.Thisisequivalenttothe-pswitchincandle.exe.
PreprocessToFile Optionalstringparameter.
Specifiesthatthecompilershouldoutputpreprocessinginformationtoafile.Thisisequivalenttothe-p<file>switchincandle.exe.
IncludeSearchPaths Optionalstringparameter.
Specifiesdirectoriestoaddtothecompilerincludesearchpath.Thisisequivalenttothe-I<dir>switchincandle.exe.
InstallerPlatform Optionalstringparameter.
Specifiestheprocessorarchitectureforthepackage.Validvaluesarex86,x64,andia64.(Deprecatedvaluesincludeintelforx86andintel64foria64.)Thisisequivalenttothe-archswitchincandle.exe.
Setsthesys.BUILDARCHpreprocessorvariableand,whenthevalueisx64oria64,defaultstheWin64attributeto"yes"onallPackage,Component,CustomAction,andRegistrySearchelementsinthesourcefile.
OnlyValidateDocuments Optionalbooleanparameter.
Specifiesthatthecompilershouldonlyvalidatedocuments.Thisisequivalenttothe-zsswitchincandle.exe.
Pedantic Optionalbooleanparameter.
Specifiesthatthecompilershoulddisplaypedanticmessages.Thisisequivalenttothe-pedanticswitchincandle.exe.
ShowSourceTrace Optionalbooleanparameter.
Specifiesthatthecompilershouldshowsourcetraceinformationforerrors,warningsandverbosemessages.Thisisequivalenttothe-traceswitchincandle.exe.
HeatDirectoryTaskTheHeatDirectorytaskwrapsheat.exe,theWiXharvester,usingthedirharvestingtype.Authoringisgeneratedfortypelibrariesandself-registrationfromDllRegisterServerforanyfilesfoundindirectories.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.Tocontrolthesesettingsinyour.wixprojfile,youcancreateaPropertyGroupandspecifythesettingsthatyouwanttouseforyourbuildprocess.ThefollowingisasamplePropertyGroupthatcontainssettingsthatwillbeusedbytheHeatDirectorytask:
<HeatDirectoryNoLogo="$(HarvestDirectoryNoLogo)"SuppressAllWarnings="$(HarvestDirectorySuppressAllWarnings)"SuppressSpecificWarnings="$(HarvestDirectorySuppressSpecificWarnings)"ToolPath="$(WixToolPath)"TreatWarningsAsErrors="$(HarvestDirectoryTreatWarningsAsErrors)"TreatSpecificWarningsAsErrors="$(HarvestDirectoryTreatSpecificWarningsAsErrors)VerboseOutput="$(HarvestDirectoryVerboseOutput)"AutogenerateGuids="$(HarvestDirectoryAutogenerateGuids)"GenerateGuidsNow="$(HarvestDirectoryGenerateGuidsNow)"OutputFile="$(IntermediateOutputPath)_%(HarvestDirectory.Filename)_dir.wxsSuppressFragments="$(HarvestDirectorySuppressFragments)"SuppressUniqueIds="$(HarvestDirectorySuppressUniqueIds)"Transforms="%(HarvestDirectory.Transforms)"Directory="@(HarvestDirectory)"ComponentGroupName="%(HarvestDirectory.ComponentGroupName)"DirectoryRefId="%(HarvestDirectory.DirectoryRefId)"KeepEmptyDirectories="%(HarvestDirectory.KeepEmptyDirectories)"PreprocessorVariable="%(HarvestDirectory.PreprocessorVariable)"SuppressCom="%(HarvestDirectory.SuppressCom)"SuppressRootDirectory="%(HarvestDirectory.SuppressRootDirectory)"SuppressRegistry="%(HarvestDirectory.SuppressRegistry)"/>
ThefollowingtabledescribesthecommonWiXMSBuildparametersthatareapplicabletotheHeatDirectorytask.
Parameter DescriptionNoLogo Optionalbooleanparameter.
Specifiesthatthetoollogoshouldbesuppressed.Thedefaultisfalse.Thisisequivalenttothe-nologoswitch.
SuppressAllWarnings Optionalbooleanparameter.
Specifiesthatallwarningsshouldbesuppressed.Thedefaultisfalse.Thisisequivalenttothe-swswitch.
SuppressSpecificWarnings Optionalstringparameter.
Specifiesthatcertainwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switch.
TreatSpecificWarningsAsErrors Optionalstringparameter.
Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switch.
TreatWarningsAsErrors Optionalbooleanparameter.
Specifiesthatallwarningsshouldbetreatedaserrors.Thedefaultisfalse.Thisisequivalenttothe-wxswitch.
VerboseOutput Optionalbooleanparameter.
Specifiesthatthetoolshouldprovideverboseoutput.Thedefaultisfalse.Thisisequivalenttothe-vswitch.
ThefollowingtabledescribestheparametersthatarecommontoallheattasksthatareapplicabletotheHeatDirectorytask.
Parameter DescriptionAutogenerateGuids Optionalbooleanparameter.
Whethertogenerateauthoringthatreliesonauto-generationofcomponentGUIDs.Thedefaultis$(HarvestAutogenerateGuids)ifspecified;otherwise,true.
GenerateGuidsNow Optionalbooleanparameter.
WhethertogenerateauthoringthatgeneratesdurableGUIDswhenharvesting.Thedefaultis$(HarvestGenerateGuidsNow)ifspecified;otherwise,false.
OutputFile Requireditemparameter.
Specifiestheoutputfilethatcontainsthegeneratedauthoring.
SuppressFragments Optionalbooleanparameter.
Whethertosuppressgenerationofseparatefragmentswhenharvesting.Thedefaultis$(HarvestSuppressFragments)ifspecified;otherwise,true.
SuppressUniqueIds Optionalbooleanparameter.
WhethertosuppressgenerationofuniquecomponentIDs.Thedefaultis$(HarvestSuppressUniqueIds)ifspecified;otherwise,false.
Transforms Optionalstringparameter.
XSLtransformstoapplytoallgeneratedWiXauthoring.Separatemultipletransformswithsemicolons.Thedefaultis$(HarvestTransforms)ifspecified.
ThefollowingtabledescribestheparametersthatarespecifictotheHeatDirectorytask.
Parameter DescriptionDirectory Requireditemgroupparameter.
Thelistofdirectoriestoharvest.ComponentGroupName Optionalstringparameter.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.
SuppressgenerationofaDirectoryelementfortheparentdirectoryofthefile.Thedefaultisfalse.
HeatFileTaskTheHeatFiletaskwrapsheat.exe,theWiXharvester,usingthefileharvestingtype.Authoringisgeneratedfortypelibrariesandself-registrationfromDllRegisterServer.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.Tocontrolthesesettingsinyour.wixprojfile,youcancreateaPropertyGroupandspecifythesettingsthatyouwanttouseforyourbuildprocess.ThefollowingisasamplePropertyGroupthatcontainssettingsthatwillbeusedbytheHeatFiletask:
<HeatFileNoLogo="$(HarvestFileNoLogo)"SuppressAllWarnings="$(HarvestFileSuppressAllWarnings)"SuppressSpecificWarnings="$(HarvestFileSuppressSpecificWarnings)"ToolPath="$(WixToolPath)"TreatWarningsAsErrors="$(HarvestFileTreatWarningsAsErrors)"TreatSpecificWarningsAsErrors="$(HarvestFileTreatSpecificWarningsAsErrors)VerboseOutput="$(HarvestFileVerboseOutput)"AutogenerateGuids="$(HarvestFileAutogenerateGuids)"GenerateGuidsNow="$(HarvestFileGenerateGuidsNow)"OutputFile="$(IntermediateOutputPath)_%(HarvestFile.Filename)_file.wxs"SuppressFragments="$(HarvestFileSuppressFragments)"SuppressUniqueIds="$(HarvestFileSuppressUniqueIds)"Transforms="%(HarvestFile.Transforms)"File="@(HarvestFile)"ComponentGroupName="%(HarvestFile.ComponentGroupName)"DirectoryRefId="%(HarvestFile.DirectoryRefId)"PreprocessorVariable="%(HarvestFile.PreprocessorVariable)"SuppressCom="%(HarvestFile.SuppressCom)"SuppressRegistry="%(HarvestFile.SuppressRegistry)"SuppressRootDirectory="%(HarvestFile.SuppressRootDirectory)"/>
ThefollowingtabledescribesthecommonWiXMSBuildparametersthatareapplicabletotheHeatFiletask.
Parameter Description
NoLogo Optionalbooleanparameter.
Specifiesthatthetoollogoshouldbesuppressed.Thedefaultisfalse.Thisisequivalenttothe-nologoswitch.
SuppressAllWarnings Optionalbooleanparameter.
Specifiesthatallwarningsshouldbesuppressed.Thedefaultisfalse.Thisisequivalenttothe-swswitch.
SuppressSpecificWarnings Optionalstringparameter.
Specifiesthatcertainwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switch.
TreatSpecificWarningsAsErrors Optionalstringparameter.
Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switch.
TreatWarningsAsErrors Optionalbooleanparameter.
Specifiesthatallwarningsshouldbetreatedaserrors.Thedefaultisfalse.Thisisequivalenttothe-wxswitch.
VerboseOutput Optionalbooleanparameter.
Specifiesthatthetoolshouldprovideverboseoutput.Thedefaultisfalse.Thisisequivalenttothe-vswitch.
ThefollowingtabledescribestheparametersthatarecommontoallheattasksthatareapplicabletotheHeatFiletask.
Parameter DescriptionAutogenerateGuids Optionalbooleanparameter.
Whethertogenerateauthoringthatreliesonauto-generationofcomponentGUIDs.Thedefaultis$(HarvestAutogenerateGuids)ifspecified;otherwise,true.
GenerateGuidsNow Optionalbooleanparameter.
WhethertogenerateauthoringthatgeneratesdurableGUIDswhenharvesting.Thedefaultis$(HarvestGenerateGuidsNow)ifspecified;otherwise,false.
OutputFile Requireditemparameter.
Specifiestheoutputfilethatcontainsthegeneratedauthoring.
SuppressFragments Optionalbooleanparameter.
Whethertosuppressgenerationofseparatefragmentswhenharvesting.Thedefaultis$(HarvestSuppressFragments)ifspecified;otherwise,true.
SuppressUniqueIds Optionalbooleanparameter.
WhethertosuppressgenerationofuniquecomponentIDs.Thedefaultis$(HarvestSuppressUniqueIds)ifspecified;otherwise,false.
Transforms Optionalstringparameter.
XSLtransformstoapplytoallgeneratedWiXauthoring.Separatemultipletransformswithsemicolons.Thedefaultis$(HarvestTransforms)ifspecified.
ThefollowingtabledescribestheparametersthatarespecifictotheHeatFiletask.
Parameter DescriptionFile Requireditemgroupparameter.
Thelistoffilestoharvest.ComponentGroupName Optionalstringparameter.
ThenameoftheComponentGrouptocreateforallthegeneratedauthoring.
DirectoryRefId Optionalstringparameter.
TheIDofthedirectorytoreferenceinsteadofTARGETDIR.
PreprocessorVariable Optionalstringparameter.
SubstituteSourceDirforanothervariablename(ex:var.Dir).
SuppressCom Optionalbooleanparameter.
SuppressgenerationofCOMregistryelements.Thedefaultisfalse.
SuppressRegistry Optionalbooleanparameter.
SuppressgenerationofaDirectoryelementfortheparentdirectoryofthefile.Thedefaultisfalse.
SuppressRootDirectory Optionalbooleanparameter.
Suppressgenerationofanyregistryelements.Thedefaultisfalse.
HeatProjectTaskTheHeatProjecttaskwrapsheat.exe,theWiXharvester,usingtheprojectharvestingtype.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.Tocontrolthesesettingsinyour.wixprojfile,youcancreateaPropertyGroupandspecifythesettingsthatyouwanttouseforyourbuildprocess.ThefollowingisasamplePropertyGroupthatcontainssettingsthatwillbeusedbytheHeatProjecttask:
<HeatProjectNoLogo="$(HarvestProjectsNoLogo)"SuppressAllWarnings="$(HarvestProjectsSuppressAllWarnings)"SuppressSpecificWarnings="$(HarvestProjectsSuppressSpecificWarnings)"ToolPath="$(WixToolPath)"TreatWarningsAsErrors="$(HarvestProjectsTreatWarningsAsErrors)"TreatSpecificWarningsAsErrors="$(HarvestProjectsTreatSpecificWarningsAsErrors)VerboseOutput="$(HarvestProjectsVerboseOutput)"AutogenerateGuids="$(HarvestProjectsAutogenerateGuids)"GenerateGuidsNow="$(HarvestProjectsGenerateGuidsNow)"OutputFile="$(IntermediateOutputPath)_%(_Project.Filename).wxs"SuppressFragments="$(HarvestProjectsSuppressFragments)"SuppressUniqueIds="$(HarvestProjectsSuppressUniqueIds)"Transforms="%(_Project.Transforms)"Project="@(_Project)"ProjectOutputGroups="%(_Project.ProjectOutputGroups)"/>
ThefollowingtabledescribesthecommonWiXMSBuildparametersthatareapplicabletotheHeatProjecttask.
Parameter DescriptionNoLogo Optionalbooleanparameter.
Specifiesthatthetoollogoshouldbesuppressed.Thedefaultisfalse.Thisisequivalenttothe-nologoswitch.
SuppressAllWarnings Optionalbooleanparameter.
Specifiesthatallwarningsshouldbesuppressed.Thedefaultisfalse.Thisisequivalenttothe-swswitch.
SuppressSpecificWarnings Optionalstringparameter.
Specifiesthatcertainwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switch.
TreatSpecificWarningsAsErrors Optionalstringparameter.
Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switch.
TreatWarningsAsErrors Optionalbooleanparameter.
Specifiesthatallwarningsshouldbetreatedaserrors.Thedefaultisfalse.Thisisequivalenttothe-wxswitch.
VerboseOutput Optionalbooleanparameter.
Specifiesthatthetoolshouldprovideverboseoutput.Thedefaultisfalse.Thisisequivalenttothe-vswitch.
ThefollowingtabledescribestheparametersthatarecommontoallheattasksthatareapplicabletotheHeatProjecttask.
Parameter DescriptionAutogenerateGuids Optionalbooleanparameter.
Whethertogenerateauthoringthatreliesonauto-generationofcomponentGUIDs.Thedefaultis$(HarvestAutogenerateGuids)if
specified;otherwise,true.GenerateGuidsNow Optionalbooleanparameter.
WhethertogenerateauthoringthatgeneratesdurableGUIDswhenharvesting.Thedefaultis$(HarvestGenerateGuidsNow)ifspecified;otherwise,false.
OutputFile Requireditemparameter.
Specifiestheoutputfilethatcontainsthegeneratedauthoring.
SuppressFragments Optionalbooleanparameter.
Whethertosuppressgenerationofseparatefragmentswhenharvesting.Thedefaultis$(HarvestSuppressFragments)ifspecified;otherwise,true.
SuppressUniqueIds Optionalbooleanparameter.
WhethertosuppressgenerationofuniquecomponentIDs.Thedefaultis$(HarvestSuppressUniqueIds)ifspecified;otherwise,false.
Transforms Optionalstringparameter.
XSLtransformstoapplytoallgeneratedWiXauthoring.Separatemultipletransformswithsemicolons.Thedefaultis$(HarvestTransforms)ifspecified.
ThefollowingtabledescribestheparametersthatarespecifictotheHeatProjecttask.
Parameter DescriptionProject Requireditemgroupparameter.
Thelistofprojectstoharvest.ProjectOutputGroups Optionalstringparameter.
Theprojectoutputgroupstoharvest.Separatemultipleoutputgroupswithsemicolons.Examplesinclude"Binaries"and"Source".
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
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.
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.
Specifiesthatthetoolshouldbindfilesintoa.wixoutfile.ThisisonlyvalidwhentheOutputAsXmlparameterisalsoprovided.Thisisequivalenttothe-bfswitch.
Pedantic Optionalbooleanparameter.
Specifiesthatthetoolshoulddisplaypedanticmessages.Thisisequivalenttothe-pedanticswitch.
SuppressAllWarnings Optionalbooleanparameter.
Specifiesthatallwarningsshouldbesuppressed.Thisisequivalenttothe-swswitch.
SuppressIntermediateFileVersionMatching Optionalbooleanparameter.
Specifiesthatthetoolshouldsuppressintermediatefileversionmismatchchecking.Thisisequivalenttothe-svswitch.
SuppressSchemaValidation Optionalbooleanparameter.
Specifiesthatschemavalidationofdocuments
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.
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
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
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
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
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.
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
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
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.
SuppressFileHashAndInfo Optionalbooleanparameter.
Specifiesthatthelinkershouldsuppressgatheringfileinformation(hash,version,language,etc).Thisisequivalenttothe-shswitchinlight.exe.
SuppressFiles Optionalbooleanparameter.
Specifiesthatthelinkershouldsuppressgatheringallfiledata.ThishasthesameeffectassettingtheSuppressAssembliesadnSuppressFileHashAndInfoparameters.Thisisequivalenttothe-sfswitchinlight.exe.
SuppressIces Optionalstringparameter.
SpecifiesthatthelinkershouldsuppressrunningspecificICEs.Thisisequivalenttothe-sice:<ICE>switchinlight.exe.
SuppressLayout Optionalbooleanparameter.
Specifiesthatthelinkershouldsuppresslayoutcreation.Thisisequivalenttothe-slswitchinlight.exe.
SuppressMsiAssemblyTableProcessing Optionalbooleanparameter.
SpecifiesthatthelinkershouldsuppressprocessingthedataintheMsiAssemblytable.Thisisequivalenttothe-smaswitchinlight.exe.
SuppressPatchSequenceData Optionalbooleanparameter.
SpecifiesthatthelinkershouldsuppresspatchsequencedatainpatchXMLtodecreasebundlesizeandincreasepatchapplicabilityperformance(patchpackagesthemselvesarenotmodified).
SuppressPdbOutput Optionalbooleanparameter.
Specifiesthatthelinkershouldsuppressoutputting.wixpdbfiles.Thisisequivalenttothe-spdbswitchinlight.exe.
SuppressValidation Optionalbooleanparameter.
Specifiesthatthelinkershouldsuppress.msiand.msmvalidation.Thisisequivalenttothe-svalswitchinlight.exe.
SuppressTagSectionIdAttributeOnTuples Optionalboolean
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.
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
shouldbindfilesintoa.wixoutfile.ThisisonlyvalidwhentheOutputAsXmlparameterisalsoprovided.Thisisequivalenttothe-bfswitch.
Pedantic Optionalbooleanparameter.
Specifiesthatthetoolshoulddisplaypedanticmessages.Thisisequivalenttothe-pedanticswitch.
SuppressAllWarnings Optionalbooleanparameter.
Specifiesthatallwarningsshouldbesuppressed.Thisisequivalenttothe-swswitch.
SuppressIntermediateFileVersionMatching Optionalbooleanparameter.
Specifiesthatthetoolshouldsuppressintermediatefileversionmismatchchecking.Thisisequivalenttothe-svswitch.
SuppressSchemaValidation Optionalbooleanparameter.
Specifiesthatschemavalidationofdocumentsshouldbesuppressed.
Thisisequivalenttothe-ssswitch.
SuppressSpecificWarnings Optionalstringparameter.
Specifiesthatcertainwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switch.
TreatSpecificWarningsAsErrors Optionalstringparameter.
Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switch.
TreatWarningsAsErrors Optionalbooleanparameter.
Specifiesthatallwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitch.
VerboseOutput Optionalbooleanparameter.
Specifiesthatthetoolshouldprovideverboseoutput.Thisisequivalenttothe-vswitch.
ThefollowingtabledescribestheparametersthatarespecifictotheLittask.
Parameter DescriptionLibAdditionalOptions Optionalstring
parameter.
Specifiesadditionalcommandlineparameterstoappendwhencallinglit.exe.
LibBindFiles Optionalbooleanparameter.
Specifiesthatthelibrarycreationtoolshouldbindfilesintoa.wixoutfile.ThisisonlyvalidwhentheOutputAsXmlparameterisalsoprovided.Thisisequivalenttothe-bfswitchinlit.exe.
LibPedantic Optionalbooleanparameter.
Specifiesthatthelibrarycreationtoolshoulddisplaypedanticmessages.Thisisequivalenttothe-pedanticswitchinlit.exe.
LibSuppressAllWarnings Optionalbooleanparameter.
Specifiesthatalllibrarycreationtoolwarningsshouldbesuppressed.Thisis
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
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
equalsign("=")tothesuppliedpath.
UsingBuilt-inWixUIDialogSetsTheWixUIdialoglibrarycontainsthefollowingbuilt-indialogsetsthatprovideafamiliarwizard-stylesetupuserinterface.
1. WixUI_Advanced2. WixUI_FeatureTree3. WixUI_InstallDir4. WixUI_Minimal5. WixUI_Mondo
Thebuilt-inWixUIdialogsetsarealsocustomizable,fromthebitmapsshownintheUItoaddingandremovingcustomdialogs.SeeCustomizingtheWixUIDialogSetsforadditionalinformation.
Howtoaddabuilt-inWixUIdialogsettoaproductinstallerAssumingyouhaveanexistinginstallerthatisfunctionalbutisjustlackingauserinterface,herearethestepsyouneedtofollowtoincludeabuilt-inWixUIdialogset:
1. AddaUIRefelementtoyoursetupauthoringthathasanIdthatmatchesthenameofoneofthedialogsetsdescribedabove.Forexample:
<Product...><UIRefId="WixUI_InstallDir"/></Product>
2. Passthe-extand-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
CustomizingBuilt-inWixUIDialogSetsThebuilt-inWixUIdialogsetscanbecustomizedinthefollowingways:
Specifyingaproduct-specificlicenseagreementfile.Specifyingproduct-specificsetupUIbitmaps.AddinganoptionalcheckboxandoptionaltexttotheExitDlg.Customizingthetextdisplayedinbuilt-indialogs.ChangingtheUIsequenceofabuilt-indialogset.Insertingacustomdialogintoabuilt-indialogset.
SpecifyingalicensefileWixUIExtension.dllincludesadefault,placeholderlicenseagreement.Tospecifyyourproduct'slicense,overridethedefaultbyspecifyingaWiXvariablenamedWixUILicenseRtfwiththevalueofanRTFfilethatcontainsyourlicensetext.YoucandefinethevariableinyourWiXauthoring:
<WixVariableId="WixUILicenseRtf"Value="bobpl.rtf"/>
Alternatively,youcandefinethevariableusingthe-dswitchwhenrunninglight:
light-extWixUIExtension-cultures:en-us-dWixUILicenseRtf=bobpl.rtfProduct.wixobj-outProduct.msi
Thefileyouspecifymustbeinadirectorylightislookinginforfiles.Usethe-bswitchtoadddirectories.
Thereisaknownissuewiththerichtextcontrolusedtodisplaythetextofthelicensefilethatcancausethetexttoappearblankuntiltheuserscrollsdowninthecontrol.ThisistypicallycausedbycomplexRTFcontent(suchastheRTFgeneratedwhensavinganRTFfileinMicrosoftWord).IfyourunintothisbehaviorinyoursetupUI,oneofthefollowingworkaroundswillfixitinmostcases:
OpenyourRTFfileinWordPadandsaveitfromthereinordertoremovethecomplexRTFcontentfromthefile.Aftersavingit,rebuildyourMSI.UseadialogsetotherthantheWixUI_Minimalset.Thisproblemtypicallyonlyoccurswhenthelicenseagreementscreenisthefirstonedisplayedduringsetup,whichonlyhappenswiththeWixUI_Minimaldialogset.
ReplacingthedefaultbitmapsTheWixUIdialoglibraryincludesdefaultbitmapsforthebackgroundofthewelcomeandcompletiondialogsandthetopbanneroftheotherdialogs.Youcanreplacethosebitmapswithyourownforproductbrandingpurposes.Toreplacedefaultbitmaps,specifyWiXvariablevalueswiththefilenamesofyourbitmaps,justlikewhenreplacingthedefaultlicensetext.
Variablename Description DimensionsWixUIBannerBmp Topbanner 493×58WixUIDialogBmp Backgroundbitmapusedonthe
welcomeandcompletiondialogs493×312
WixUIExclamationIco ExclamationiconontheWaitForCostingDlg
32×32
WixUIInfoIco Informationicononthecancelanderrordialogs
32×32
WixUINewIco ButtonglyphontheBrowseDlg 16×16WixUIUpIco ButtonglyphontheBrowseDlg 16×16
CustomizingtheExitDlgTheExitDlgisthedialoginthebuilt-inWixUIdialogsetsthatisdisplayedattheendofasuccessfulsetup.TheExitDlgsupportsshowingbothoptional,customizabletextandanoptionalcheckbox.
SeeHowTo:RuntheInstalledApplicationAfterSetupforanexampleofhowtoshowacheckboxontheExitDlg.
ToshowoptionaltextontheExitDlg,settheWIXUI_EXITDIALOGOPTIONALTEXTpropertytothestringyouwanttoshow.Forexample:
<PropertyId="WIXUI_EXITDIALOGOPTIONALTEXT"Value="Thankyouforinstallingthisproduct."/>
Theoptionaltexthasthefollowingbehavior:
Theoptionaltextisdisplayedasliteraltext,sopropertiessurroundedbysquarebracketssuchas[ProductName]willnotberesolved.Ifyouneedtoincludepropertyvaluesintheoptionaltext,youmustscheduleacustomactiontosettheproperty.Forexample:
<CustomActionId="CA_Set_WIXUI_EXITDIALOGOPTIONALTEXT"Property="WIXUI_EXITDIALOGOPTIONALTEXT"Value="Thankyouforinstalling[ProductName]."/><InstallUISequence><CustomAction="CA_Set_WIXUI_EXITDIALOGOPTIONALTEXT"After="FindRelatedProducts">NOTInstalled</Custom></InstallUISequence>
Longstringswillwrapacrossmultiplelines.
Theoptionaltextisonlyshownduringinitialinstallation,notduringmaintenancemodeoruninstall.
Customizingthetextinbuilt-indialogsAlltextdisplayedinbuilt-inWixUIdialogsetscanbeoverriddenwithcustomstringsifdesired.Inordertodoso,youmustaddastringtoyourproduct'sWiXlocalization(.wxl)filethathasthesameIdvalueasthestringthatyouwanttooverride.YoucanfindtheWixUIstringIdvaluesbylookinginthefilenamedWixUI_en-us.wxlintheWiXsourcecode.
Forexample,tooverridethedescriptivetextontheWelcomeDlg,youwouldaddthefollowingtoa.wxlfileinyourproject:
<StringId="WelcomeDlgDescription">Thisisacustomwelcomemessage.ClickNexttocontinueorCanceltoexit.</String>
ChangingtheUIsequenceofabuilt-indialogsetEachoftheWixUIdialogsetscontainsapre-definedsetofdialogsthatwillbedisplayedinaspecificorder.Informationaboutthedialogsincludedineachbuilt-inWixUIdialogsetcanbefoundintheWixUIDialogLibraryReference.
Itispossibletochangethedefaultsequenceofabuilt-indialogset.Todoso,youmustcopythecontentsofthe<Fragment/>thatincludesthedefinitionofthedialogsetthatyouwanttocustomizefromtheWiXsourcecodetoyourproject.Then,youmustmodifythe<Publish/>elementstodefinetheexactdialogsequencethatyouwantinyourinstallationexperience.
Forexample,toremovetheLicenseAgreementDlgfromtheWixUI_InstallDirdialogset,youwoulddothefollowing:
1. Copythefullcontentsofthe<Fragment/>definedinWixUI_InstallDir.wxsintheWiXsourcecodetoyourproject.
2. Removethe<Publish/>elementsthatareusedtoaddBackandNexteventsfortheLicenseAgreementDlg.
3. Changethe<Publish/>elementthatisusedtoaddaNexteventtotheWelcomeDlgtogototheInstallDirDlginsteadoftheLicenseAgreementDlg.Forexample:
<PublishDialog="WelcomeDlg"Control="Next"Event="NewDialog"Value="
4. Changethe<Publish/>elementthatisusedtoaddaBackeventtotheInstallDirDlgtogototheWelcomeDlginsteadoftheLicenseAgreementDlg.Forexample:
<PublishDialog="InstallDirDlg"Control="Back"Event="NewDialog"Value="
Insertingacustomdialogintoabuilt-indialogsetYoucanaddcustomdialogstotheUIsequenceinabuilt-inWixUIdialogset.Todoso,youmustdefinea<UI/>elementforyournewdialog.Then,youmustcopythecontentsofthe<Fragment/>thatincludesthedefinitionofthedialogsetthatyouwanttocustomizefromtheWiXsourcecodetoyourproject.Finally,youmustmodifythe<Publish/>elementstodefinetheexactdialogsequencethatyouwantinyourinstallationexperience.
Forexample,toinsertadialognamedSpecialDlgbetweentheWelcomeDlgandtheLicenseAgreementDlgintheWixUI_InstallDirdialogset,youwoulddothefollowing:
1. DefinetheappearanceoftheSpecialDlgina<UI/>elementinyourproject.
2. Copythefullcontentsofthe<Fragment/>definedinWixUI_InstallDir.wxsintheWiXsourcecodetoyourproject.
3. Add<Publish/>elementsthatdefinetheBackandNexteventsfortheSpecialDlg.Forexample:
<PublishDialog="SpecialDlg"Control="Back"Event="NewDialog"Value="WelcomeDlg">1</Publish><PublishDialog="SpecialDlg"Control="Next"Event="NewDialog"Value="LicenseAgreementDlg">1</Publish>
4. Changethe<Publish/>elementthatisusedtoaddaNexteventtotheWelcomeDlgtogototheSpecialDlginsteadoftheLicenseAgreementDlg.Forexample:
<PublishDialog="WelcomeDlg"Control="Next"Event="NewDialog"Value="
5. Changethe<Publish/>elementthatisusedtoaddaBackeventtotheLicenseAgreementDlgtogototheSpecialDlginsteadoftheWelcomeDlg.Forexample:
<PublishDialog="LicenseAgreementDlg"Control="Back"Event="NewDialog"Value="
UsingLocalizedVersionsofWixUI
UsingtranslatedUIstringsWixUIExtensionincludesasetofWiXlocalization(.wxl)filesthatcontaintranslatedUItext,errorandprogresstextstringsforseverallanguages.TospecifyaUIlanguageforyourinstaller,passthedesiredculturevalueonthecommandlinewhencallinglight.Forexample:
light-extWixUIExtension-cultures:fr-FRProduct.wixobj-outProduct.msi
WixUIExtensionincludestranslatedstringsforthefollowinglanguages:
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
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
CreatingmultiplesetupswithdifferentsetupUIlanguagesYoucancreateaseriesof.msifilesthateachusedifferentsetupUIlanguagesbycallingcandleonceandthencallinglightmultipletimeswithdifferentculturevalues.Forexample:
candleProduct.wxslight-extWixUIExtension-cultures:en-usProduct.wixobj-outProduct_en-us.msilight-extWixUIExtension-cultures:fr-frProduct.wixobj-outProduct_fr-fr.msilight-extWixUIExtension-cultures:de-deProduct.wixobj-outProduct_de-de.msilight-extWixUIExtension-cultures:it-itProduct.wixobj-outProduct_it-it.msilight-extWixUIExtension-cultures:ja-jpProduct.wixobj-outProduct_ja-jp.msilight-extWixUIExtension-cultures:pl-plProduct.wixobj-outProduct_pl-pl.msilight-extWixUIExtension-cultures:ru-ruProduct.wixobj-outProduct_ru-ru.msilight-extWixUIExtension-cultures:es-esProduct.wixobj-outProduct_es-es.msi
UsingtranslatederrorandprogresstextBydefault,WixUIwillnotincludeanytranslatedErrororProgressTextelements.YoucanincludethembyreferencingtheWixUI_ErrorProgressTextUIelement:
<UIRefId="WixUI_ErrorProgressText"/>
WixUI_AdvancedDialogSetTheWixUI_Advanceddialogsetprovidestheoptionofaone-clickinstalllikeWixUI_Minimal,butitalsoallowsdirectoryandfeatureselectionlikeotherdialogsetsiftheuserchoosestoconfigureadvancedoptions.
ThisdialogsetisdefinedinthefileWixUI_Advanced.wxsintheWixUIExtensionintheWiXsourcecode.
UsingWixUI_AdvancedTouseWixUI_Advanced,youmustincludethefollowinginformationinyoursetupauthoring:
1. AdirectorywithanIdnamedAPPLICATIONFOLDER.Thisdirectorywillbethedefaultinstallationlocationfortheproduct.Forexample:
<DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"Name="PFiles"><DirectoryId="APPLICATIONFOLDER"Name="MyApplicationFolder">...</Directory></Directory></Directory>
2. ApropertywithanIdnamedApplicationFolderNameandavaluesettoastringthatrepresentsthedefaultfoldername.Thispropertyisusedtoformthedefaultinstallationlocation.
Foraper-machineinstallation,thedefaultinstallationlocationwillbe[ProgramFilesFolder][ApplicationFolderName]andtheuserwillbeabletochangeitinthesetupUI.Foraper-userinstallation,thedefaultinstallationlocationwillbe[LocalAppDataFolder]Apps[ApplicationFolderName]andtheuserwillnotbeabletochangeitinthesetupUI.
Forexample:
<PropertyId="ApplicationFolderName"Value="MyApplicationFolder"/>
3. ApropertywithanIdnamedWixAppFolderandavaluesettoWixPerMachineFolderorWixPerUserFolder.ThispropertysetsthedefaultselectedvalueoftheradiobuttonontheinstallscopedialoginthesetupUIwheretheusercanchoosewhethertoinstalltheproductper-machineorper-user.Forexample:
<PropertyId="WixAppFolder"Value="WixPerMachineFolder"/>
ItispossibletosuppresstheinstallscopedialogintheWixUI_Advanceddialogsetsotheuserwillnotbeabletochooseaper-machineorper-userinstallation.Todothis,youmustsettheWixUISupportPerMachineorWixUISupportPerUserWiXvariablesto0.Thedefaultvalueforeachofthesevariablesis1,andyoushouldnotsetbothofthesevaluesto0inthesame.msi.Forexample,toremovetheinstallscopedialogandsupportonlyaper-machineinstallation,youcansetthefollowing:
<WixVariableId="WixUISupportPerUser"Value="0"/>
TheinstallscopedialogwillautomaticallysettheALLUSERSpropertyfortheinstallationsessionbasedontheuser'sselection.IfyousuppresstheinstallscopedialogbysettingeitheroftheseWiXvariablevalues,youmustmanuallysettheALLUSERSpropertytoanappropriatevaluebasedonwhetheryouwantaper-machineorper-userinstallation.
WixUI_AdvancedDialogsWixUI_Advancedincludesthefollowingdialogs:
AdvancedWelcomeEulaDlgBrowseDlgDiskCostDlgFeaturesDlgInstallDirDlgInstallScopeDlgInvalidDirDlg
Inaddition,WixUI_AdvancedincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:
CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg
SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.
WixUI_FeatureTreeDialogSetWixUI_FeatureTreeisasimplerversionofWixUI_Mondothatomitsthesetuptypedialog.Instead,thewizardproceedsdirectlyfromthelicenseagreementdialogtothefeaturecustomizationdialog.WixUI_FeatureTreeismoreappropriatethanWixUI_Mondowhenyourproductinstallsallfeaturesbydefault.
ThisdialogsetisdefinedinthefileWixUI_FeatureTree.wxsintheWixUIExtensionintheWiXsourcecode.
WixUI_FeatureTreeDialogsWixUI_FeatureTreeincludesthefollowingdialogs:
BrowseDlgCustomizeDlgDiskCostDlgLicenseAgreementDlgWelcomeDlg
Inaddition,WixUI_FeatureTreeincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:
CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg
SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.
WixUI_InstallDirDialogSetWixUI_InstallDirdoesnotallowtheusertochoosewhatfeaturestoinstall,butitaddsadialogtolettheuserchooseadirectorywheretheproductwillbeinstalled.
ThisdialogsetisdefinedinthefileWixUI_InstallDir.wxsintheWixUIExtensionintheWiXsourcecode.
UsingWixUI_InstallDirTouseWixUI_InstallDir,youmustsetapropertynamedWIXUI_INSTALLDIRwithavalueoftheIDofthedirectoryyouwanttheusertobeabletospecifythelocationof.ThedirectoryIDmustbealluppercasecharactersbecauseitmustbepassedfromtheUItotheexecutesequencetotakeeffect.Forexample:
<DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"Name="PFiles"><DirectoryId="TESTFILEPRODUCTDIR"Name="TestFile">...</Directory></Directory></Directory>...<PropertyId="WIXUI_INSTALLDIR"Value="TESTFILEPRODUCTDIR"/><UIRefId="WixUI_InstallDir"/>
WixUI_InstallDirDialogsWixUI_InstallDirincludesthefollowingdialogs:
BrowseDlgDiskCostDlgInstallDirDlgInvalidDirDlgLicenseAgreementDlgWelcomeDlg
Inaddition,WixUI_InstallDirincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:
CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg
SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.
WixUI_MinimalDialogSetWixUI_Minimalisthesimplestofthebuilt-inWixUIdialogsets.Itssoledialogcombinesthewelcomeandlicenseagreementdialogsandomitsthefeaturecustomizationdialog.WixUI_Minimalisappropriatewhenyourproducthasnooptionalfeaturesanddoesnotsupportchangingtheinstallationdirectory.
ThisdialogsetisdefinedinthefileWixUI_Minimal.wxsintheWixUIExtensionintheWiXsourcecode.
WixUI_MinimalDialogsWixUI_Minimalincludesthefollowingdialog:
WelcomeEulaDlg
Inaddition,WixUI_MinimalincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:
CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg
SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.
WixUI_MondoDialogSetWixUI_Mondoincludesasetdialogsthatallowgranularinstallationcustomizationoptions.WixUI_Mondoisappropriatewhensomeproductfeaturesarenotinstalledbydefaultandthereisameaningfuldifferencebetweentypicalandcompleteinstalls.
Note:WixUI_MondousesSetInstallLevelcontroleventstosettheinstalllevelwhentheuserchoosesTypicalorComplete.ForTypical,theinstalllevelissetto3;forComplete,1000.Fordetailsaboutfeaturelevelsandinstalllevels,seeINSTALLLEVELProperty.
ThisdialogsetisdefinedinthefileWixUI_Mondo.wxsintheWixUIExtensionintheWiXsourcecode.
WixUI_MondoDialogsWixUI_Mondoincludesthefollowingdialogs:
BrowseDlgCustomizeDlgDiskCostDlgLicenseAgreementDlgSetupTypeDlgWelcomeDlg
Inaddition,WixUI_MondoincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:
CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg
SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.
WixUIDialogsThefollowingtabledescribeseachofthebuilt-indialogsthatisdefinedintheWixUIdialoglibrary.
DialogName DescriptionAdvancedWelcomeEulaDlg 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
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
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.
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.
NowthatyouhavetheskeletonauthoringofaBundle,youcanmoveontoaddinginformationforthe<BootstrapperApplicationRef>element.SeeAuthortheBootstrapperApplicationforaBundle.
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
<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.
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
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.
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.
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
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.
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).
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
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.
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>
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">
<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.
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
LicenseUrl="License.htm"LogoFile="path\to\customlogo.png"LogoSideFile="path\to\customsidelogo.png"/></BootstrapperApplicationRef>
<Chain>...</Chain></Bundle></Wix>
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"/>
<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\.
UsingWiXStandardBootstrapperApplicationVariablesTheWiXStandardBootstrapperApplicationoffersasetofvariables:
WixBundleFileVersion-getsthefileversionofthebundle.exe.WixStdBALanguageId-getsthelanguageineffectfortheWixStdBAuserinterface.
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)(
__in_optHWNDhwndParent)=0;
TheBAshouldprovideawindowhandletoensurethattheelevationprompt,ifoneisrequired,isactiveanddisplayedaboveotherwindows.ThebulkoftheBAtimewillbespenthandlingcallbacksfromtheApplyaction.
WhentheBAisdone,itshouldnotifytheenginebycallingIBootstrapperEngine::Shutdown:
//IBootstrapperEngine::ShutdownSTDMETHOD(Shutdown)(__inDWORDdwExitCode,__inBOOLfRestart)=0;
TheenginewillthencalltheBAonelasttimeviaIBootstrapperApplication::OnShutdown:
//IBootstrapperApplication::OnShutdownSTDMETHOD_(void,OnShutdown)()=0;
HowTo:AddaFileToYourInstallerInstallingfilesisthemostfundamentalaspectofanyinstaller,andisusuallywhatleadspeopletobuildaninstallerinthefirstplace.LearninghowtoplaceafileondiskusingWindowsInstallerbestpracticesnotonlyensuresmaintainabilitygoingforward,butalsoenablesyoutobuildpatcheslaterifnecessary.
Step1:DefinethedirectorystructureInstallersfrequentlyhavemanyfilestoinstallintoafewlocationsondisk.ToimprovethereadabilityoftheWiXfile,itisagoodpracticetodefineyourinstallationdirectoriesfirstbeforelistingthefilesyou'llinstall.Directoriesaredefinedusingthe<Directory>elementanddescribethehierarchyoffoldersyouwouldliketoseeonthetargetmachine.Thefollowingsampledefinesadirectoryfortheinstallationofthemainapplicationexecutable.
<DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"><DirectoryId="APPLICATIONROOTDIRECTORY"Name="MyApplicationName"/></Directory></Directory>
TheelementwiththeidTARGETDIRisrequiredbytheWindowsInstallerandistherootofalldirectorystructuresforyourinstallation.EveryWiXprojectwillhavethisdirectoryelement.Thesecondelement,withtheidProgramFilesFolder,usesapre-definedWindowsInstallerpropertytoreferencetheProgramFilesfolderontheuser'smachine.Inmostcasesthiswillresolvetoc:\ProgramFiles\.Thethirddirectoryelementcreatesyourapplication'sfolderunderProgramFiles,anditisgiventheidAPPLICATIONROOTDIRECTORYforlateruseintheWiXproject.TheidisinallcapitalletterstomakeitapublicpropertythatcanbesetfromUIorviathecommandline.
Theresultofthesetagsisac:\ProgramFiles\MyApplicationNamefolderonthetargetmachine.
Step2:AddfilestoyourinstallerpackageAfileisaddedtotheinstallerusingtwoelements:a<Component>elementtospecifyanatomicunitofinstallationanda<File>elementtospecifythefilethatshouldbeinstalled.
Thecomponentelementdescribesasetofresources(usuallyfiles,registryentries,andshortcuts)thatneedtobeinstalledasasingleunit.ThisisseparatefromwhetherthesetofitemsconsistofalogicalfeaturetheusercanselecttoinstallwhichisdiscussedinStep3.Whileitmaynotseemlikeabigdealwhenyouarefirstauthoringyourinstaller,componentsplayacriticalrolewhenyoudecidetobuildpatchesatalaterdate.
Ingeneral,youshouldrestrictyourselftoasinglefilepercomponent.TheWindowsInstallerisdesignedtosupportthousandsofcomponentsinasingleinstaller,sounlessyouhaveaverygoodreason,keeptoonefilepercomponent.EverycomponentmusthaveitsownuniqueGUID.Failuretofollowthesetwobasicrulescanleadtomanyproblemsdowntheroadwhenitcomestoservicing.
ThefollowingsampleusesthedirectorystructuredefinedinStep1toinstalltwofiles:anapplicationexecutableandadocumentationfile.
<DirectoryRefId="APPLICATIONROOTDIRECTORY"><ComponentId="myapplication.exe"Guid="PUT-GUID-HERE"><FileId="myapplication.exe"Source="MySourceFiles\MyApplication.exe"KeyPath="yes"Checksum</Component><ComponentId="documentation.html"Guid="PUT-GUID-HERE"><FileId="documentation.html"Source="MySourceFiles\documentation.html"KeyPath="yes"/></Component></DirectoryRef>
The<DirectoryRef>elementisusedtorefertothedirectorystructurecreatedinstep1.ByreferencingtheAPPLICATIONROOTDIRECTORYdirectory,thefileswillbeinstalledintothec:\programfiles\MyApplicationNamefolder.UnderneaththeDirectoryRefaretwoComponentelements,oneforeachofthetwofilesthatwillbeinstalled.Thisisinkeepingwiththebestpracticeofhavingonecomponentperfile.
EachComponentelementisgivenanIdandaGuid.TheIdisusedtorefertothecomponentlaterintheWiXproject.TheGuidisusedlaterforpatchesandmustbeuniqueforeachcomponent.ForinformationongeneratingGUIDsseeHowTo:GenerateaGUID.
BeneatheachcomponentisaFileelementthatdoestheactualworkofpackagingyoursourcefilesintotheinstaller.TheIdisusedtorefertothefileelsewhereintheWiXproject.TheSourceattributespecifiesthelocationofthefileonyourmachine,soWiXcanfinditandbuilditintotheinstaller.
TheKeyPathattributeissettoyestotelltheWindowsInstallerthatthisparticularfileshouldbeusedtodeterminewhetherthecomponentisinstalled.IfyoudonotsettheKeyPathattribute,WiXwilllookatthechildelementsunderthecomponentinsequentialorderandtrytoautomaticallyselectoneofthemasakeypath.AllowingWiXtoautomaticallyselectakeypathcanbedangerousbecauseaddingorremovingchildelementsunderthecomponentcaninadvertantlycausethekeypathtochange,whichcanleadtoinstallationproblems.Ingeneral,youshouldalwayssettheKeyPathattributetoyestoensurethatthekeypathwillnotinadvertantlychangeifyouupdateyoursetupauthoringinthefuture.
TheChecksumattributeshouldbesettoyesforexecutablefilesthathaveachecksumvalueinthefileheader(thisisgenerallytrueforallexecutables),andisusedbytheWindowsInstallertoverifythevalidityofthefileonre-install.
Step3:TellWindowsInstallertoinstallthefilesAfterdefiningthedirectorystructureandlistingthefilestopackageintotheinstaller,thelaststepistotellWindowsInstallertoactuallyinstallthefiles.The<Feature>elementisusedtodothis,andiswhereyoubreakupyourinstallerintologicalpiecesthattheusercaninstallindependently.ThefollowingexamplecreatesasinglefeaturethatinstallstheapplicationexecutableanddocumentationfromStep2.
<FeatureId="MainApplication"Title="MainApplication"Level="1"><ComponentRefId="myapplication.exe"/><ComponentRefId="documentation.html"/></Feature>
TheFeatureisgivenaId.IfyouareusinganinstallerUIsequencethatincludesfeatureselection,theTitleattributecontainsthetextdisplayedintheUIforthefeature.TheLevelattributeshouldbesetto1toenabletheinstallationofthefeaturebydefault.
The<ComponentRef>elementisusedtoreferencethecomponentscreatedinStep2viatheIdattribute.
TheCompleteSampleThefollowingisacompletesamplethatusestheaboveconcepts.ThisexamplecanbeinsertedintoaWiXprojectandcompiled,orcompiledandlinkedfromthecommandline,togenerateaninstaller.
<?xmlversion="1.0"encoding="UTF-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><ProductId="*"UpgradeCode="PUT-GUID-HERE"Version="1.0.0.0"Language="1033"Name="MyApplicationName"<PackageInstallerVersion="300"Compressed="yes"/><MediaId="1"Cabinet="myapplication.cab"EmbedCab="yes"/>
<!--Step1:Definethedirectorystructure--><DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"><DirectoryId="APPLICATIONROOTDIRECTORY"Name="MyApplicationName"/></Directory></Directory>
<!--Step2:Addfilestoyourinstallerpackage--><DirectoryRefId="APPLICATIONROOTDIRECTORY"><ComponentId="myapplication.exe"Guid="PUT-GUID-HERE"><FileId="myapplication.exe"Source="MySourceFiles\MyApplication.exe"KeyPath="yes"Checksum</Component><ComponentId="documentation.html"Guid="PUT-GUID-HERE"><FileId="documentation.html"Source="MySourceFiles\documentation.html"KeyPath="yes"/></Component></DirectoryRef>
<!--Step3:TellWiXtoinstallthefiles--><FeatureId="MainApplication"Title="MainApplication"Level="1"><ComponentRefId="myapplication.exe"/><ComponentRefId="documentation.html"/></Feature></Product></Wix>
HowTo:ChecktheVersionNumberofaFileDuringInstallationInstallersoftenneedtolookuptheversionnumberofafileondiskduringtheinstallationprocess.Thecheckisoftenusedinadvanceofaconditionalstatementlaterininstall,suchastoblocktheuserfrominstallingifafileismissing,ortodisplaycustominstallationUIdependingonwhetherthefileversionishighenough.Thishowtodemonstratesverifyingtheversionofafileondisk,thenusingtheresultingpropertytoblocktheapplication'sinstallationifthefileversionislowerthanexpected.
Step1:DeterminetheversionofthefileFileversionsaredeterminedusingthe<Property>,<DirectorySearch>and<FileSearch>elements.Thefollowingsnippetlooksfortheuser32.dllfileinthemachine'sSystem32directoryandcheckstoseeifitisatleastversion6.0.6001.1751.
<PropertyId="USER32VERSION"><DirectorySearchId="SystemFolderDriverVersion"Path="[SystemFolder]"><FileSearchName="user32.dll"MinVersion="6.0.6001.1750"/></DirectorySearch></Property>
Searchingforafileisaccomplishedbydescribingthedirectoriestosearch,andthenspecifyingthefiletolookupinthatdirectory.
ThePropertyelementdefinestheIdfortheresultsofthefilesearch.ThisIdisusedlaterintheWiXproject,forexampleinconditions.TheDirectorySearchelementisusedtobuildthedirectoryhierarchytosearchforthefile.InthiscaseitisgivenauniqueId,andthepathissettotheWindowsInstallerdefinedSystemFolderpropertywhichpointstotheuser'sWindows\System32directory.TheFileSearchelementspecifiesthenameofthefiletolookforintheparentDirectorySearchfolder.TheMinVersionattributespecifiestheminimumversionofthefiletofind.
IfthefileisfoundsuccessfullytheUSER32VERSIONpropertywillbesettothefullpathtotheuser32.dllfile.
Important:Whendoingalocale-neutralsearchforafile,youmustsettheMinVersionpropertytoonerevisionnumberlowerthantheactualversionyouwanttosearchfor.Inthisexample,whilewewanttofindfileversion6.0.6001.1751,theMinVersionissetto6.0.6001.1750.ThisisbecauseofaquirkinhowtheWindowsInstallermatchesfileversions.MoreinformationisavailableintheWindowsInstallerdocumentation.
Step2:UsethepropertyinaconditionOnceyouhavedeterminedwhetherthefileexistswiththerequestedversionyoucanusethepropertyinacondition.Thefollowingisasimpleexamplethatpreventsinstallationoftheapplicationiftheuser32.dllfileversionistoolow.
<ConditionMessage="Theinstalledversionofuser32.dllisnothighenoughtosupportthisinstaller."><![CDATA[InstalledORUSER32VERSION]]></Condition>
InstalledisaWindowsInstallerpropertythatensuresthecheckisonlydonewhentheuserisinstallingtheapplication,ratherthanonarepairorremove.TheUSER32VERSIONpartwillpassifthepropertyissettoanything,andwillfailifitisnotset.ThefilecheckinStep1willsetthepropertytothefullpathoftheuser32.dllfileifitisfoundwithanappropriatefileversion,andwillnotsetitotherwise.
HowTo:CreateaShortcutontheStartMenuWheninstallingapplicationsitisacommonrequirementtoplaceashortcutontheuser'sStartMenutoprovidealaunchingpointfortheprogram.Thishowtowalksthroughhowtocreateashortcutonthestartmenu.ItassumesyouhaveaWiXsourcefilebasedontheconceptsdescribedinHowTo:Addafiletoyourinstaller.
Step1:DefinethedirectorystructureStartMenushortcutsareinstalledinadifferentdirectorythanregularapplicationfiles,somodificationstotheinstaller'sdirectorystructurearerequired.ThefollowingWiXfragmentshouldbeplacedinsidea<Directory>elementwiththeTARGETDIRIDandaddsdirectorystructureinformationfortheStartMenu:
<DirectoryId="ProgramMenuFolder"><DirectoryId="ApplicationProgramsFolder"Name="MyApplicationName"/></Directory>
TheProgramMenuFolderIdisastandardWindowsInstallerpropertythatpointstotheStartMenufolderonthetargetmachine.ThesecondDirectoryelementcreatesasubfolderontheStartMenucalledMyApplicationName,andgivesitanidforuselaterintheWiXproject.
Step2:AddtheshortcuttoyourinstallerpackageAshortcutisaddedtotheinstallerusingthreeelements:a<Component>elementtospecifyanatomicunitofinstallation,a<Shortcut>elementtospecifytheshortcutthatshouldbeinstalled,anda<RemoveFolder>elementtoensurepropercleanupwhenyourapplicationisuninstalled.
ThefollowingsampleusesthedirectorystructuredefinedinStep1tocreatetheStartMenushortcut.
<DirectoryRefId="ApplicationProgramsFolder"><ComponentId="ApplicationShortcut"Guid="PUT-GUID-HERE"><ShortcutId="ApplicationStartMenuShortcut"Name="MyApplicationName"Description="MyApplicationDescription"Target="[#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
inyourinstallerusingthe<Icon>element,thenreferenceitusingtheIconattributeontheShortcutelement.
Inadditiontocreatingtheshortcutthecomponentcontainstwootherimportantpieces.ThefirstisaRemoveFolderelement,whichensurestheApplicationProgramsFolderiscorrectlyremovedfromtheStartMenuwhentheuseruninstallstheapplication.Thesecondcreatesaregistryentryoninstallthatindicatestheapplicationisinstalled.ThisisrequiredasaShortcutcannotserveastheKeyPathforacomponentwheninstallingnon-advertisedshortcutsforthecurrentusers.FormoreinformationoncreatingregistryentriesseeHowTo:Writearegistryentryduringinstallation.
Step3:TellWindowsInstallertoinstalltheshortcutAfterdefiningthedirectorystructureandlistingtheshortcutstopackageintotheinstaller,thelaststepistotellWindowsInstallertoactuallyinstalltheshortcut.The<Feature>elementisusedtodothis.Thefollowingsnippetaddsareferencetotheshortcutcomponent,andshouldbeinsertedinsideaparentFeatureelement.
<ComponentRefId="ApplicationShortcut"/>
The<ComponentRef>elementisusedtoreferencethecomponentcreatedinStep2viatheIdattribute.
TheCompleteSampleThefollowingisacompletesamplethatusestheaboveconcepts.ThisexamplecanbeinsertedintoaWiXprojectandcompiled,orcompiledandlinkedfromthecommandline,togenerateaninstaller.
<?xmlversion="1.0"encoding="UTF-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><ProductId="*"UpgradeCode="PUT-GUID-HERE"Version="1.0.0.0"Language="1033"Name="MyApplicationName"<PackageInstallerVersion="300"Compressed="yes"/><MediaId="1"Cabinet="myapplication.cab"EmbedCab="yes"/>
<DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"><DirectoryId="APPLICATIONROOTDIRECTORY"Name="MyApplicationName"/></Directory><!--Step1:Definethedirectorystructure--><DirectoryId="ProgramMenuFolder"><DirectoryId="ApplicationProgramsFolder"Name="MyApplicationName"/></Directory></Directory>
<DirectoryRefId="APPLICATIONROOTDIRECTORY"><ComponentId="myapplication.exe"Guid="PUT-GUID-HERE"><FileId="myapplication.exe"Source="MySourceFiles\MyApplication.exe"KeyPath="yes"Checksum</Component><ComponentId="documentation.html"Guid="PUT-GUID-HERE"><FileId="documentation.html"Source="MySourceFiles\documentation.html"KeyPath="yes"/></Component></DirectoryRef>
<!--Step2:Addtheshortcuttoyourinstallerpackage--><DirectoryRefId="ApplicationProgramsFolder"><ComponentId="ApplicationShortcut"Guid="PUT-GUID-HERE"><ShortcutId="ApplicationStartMenuShortcut"Name="MyApplicationName"Description="MyApplicationDescription"Target="[#myapplication.exe]"WorkingDirectory="APPLICATIONROOTDIRECTORY"/><RemoveFolderId="ApplicationProgramsFolder"On="uninstall"/><RegistryValueRoot="HKCU"Key="Software\Microsoft\MyApplicationName"Name="installed</Component></DirectoryRef>
<FeatureId="MainApplication"Title="MainApplication"Level="1"><ComponentRefId="myapplication.exe"/><ComponentRefId="documentation.html"/><!--Step3:TellWiXtoinstalltheshortcut-->
<ComponentRefId="ApplicationShortcut"/></Feature></Product></Wix>
HowTo:CreateaShortcuttoaWebpageWiXprovidessupportforcreatingshortcutstoInternetsitesaspartoftheinstallprocess.ThishowtodemonstratesreferencingthenecessaryutilitylibraryandaddinganInternetshortcuttoyourinstaller.ItassumesyouhavealreadyfollowedthestepsintheHowTo:CreateashortcutontheStartMenu.
Step1:AddtheWiXUtilityextensionslibrarytoyourprojectTheWiXsupportforInternetshortcutsisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommand-lineyouneedtoaddthefollowingtoyourcandleandlightcommandlines:
-extWiXUtilExtension
IfyouareusingWiXinVisualStudioyoucanaddtheextensionsusingtheAddReferencedialog:
1. OpenyourWiXprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd
Reference...3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog
Step2:AddtheWiXUtilityextensionsnamespacetoyourprojectOncethelibraryisaddedtoyourproject,youneedtoaddtheUtilityextensionsnamespacetoyourprojectsoyoucanaccesstheappropriateWiXelements.Todothismodifythetop-level<Wix>elementinyourprojectbyaddingthefollowingattribute:
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"
AcompleteWixelementwiththestandardnamespaceandtheUtilityextensionsnamespaceaddedlookslikethis:
<Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
Step3:AddtheInternetshortcuttoyourinstallerpackageInternetshortcutsarecreatedusingthe<Util:InternetShortcut>element.ThefollowingexampleaddsanInternetShortcutelementtotheexistingshortcutcreationexamplefromHowTo:CreateashortcutontheStartMenu.
<DirectoryRefId="ApplicationProgramsFolder"><ComponentId="ApplicationShortcut"Guid="PUT-GUID-HERE"><ShortcutId="ApplicationStartMenuShortcut"Name="MyApplicationName"Description="MyApplicationDescription"Target="[#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.
HowTo:CreateanUninstallShortcutWheninstallinganapplicationitisacommonrequirementtoplaceashortcutontheuser'sStartMenutoprovideamethodofuninstallingtheapplication.ThishowtodemonstratesthestepsrequiredtocreateanuninstallshortcutonthestartmenuthatpassesallICEvalidationchecks.
ThishowtoassumesyouarestartingwiththesampledescribedtheHowTo:CreateaShortcutontheStartMenutopic.
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.
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>
<FeatureId="MainApplication"Title="MainApplication"Level="1"><ComponentRefId="myapplication.exe"/><ComponentRefId="documentation.html"/><ComponentRefId="ApplicationShortcut"/></Feature></Product></Wix>
HowTo:NGenManagedAssembliesDuringInstallationNGenduringinstallationcanimproveyourmanagedapplication'sstartuptimebycreatingnativeimagesofthemanagedassembliesonthetargetmachine.ThishowtodescribesusingtheWiXsupporttoNGenmanagedassembliesatinstalltime.
Step1:AddtheWiX.NETextensionslibrarytoyourprojectTheWiXsupportforNGenisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommand-lineyouneedtoaddthefollowingtoyourcandleandlightcommandlines:
-extWixNetFxExtension
IfyouareusingWiXinVisualStudioyoucanaddtheextensionsusingtheAddReferencedialog:
1. OpenyourWiXprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd
Reference...3. SelecttheWixNetFxExtension.dllassemblyfromthelistandclick
Add4. ClosetheAddReferencedialog
Step2:AddtheWiX.NETextensionsnamespacetoyourprojectOncethelibraryisaddedtoyourprojectyouneedtoaddthe.NETextensionsnamespacetoyourprojectsoyoucanaccesstheappropriateWiXelements.Todothismodifythetop-level<Wix>elementinyourprojectbyaddingthefollowingattribute:
xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension"
AcompleteWixelementwiththestandardnamespaceandthe.NETextensionsnamespaceaddedlookslikethis:
<Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
Step3:MarkthemanagedfilesforNGenOnceyouhavethe.NETextensionlibraryandnamespaceaddedtoyourprojectyoucanusethe<NetFx:NativeImage>elementtoenableNGenonyourmanagedassemblies.TheNativeImageelementgoesinsideaparentFileelement:
<ComponentId="myapplication.exe"Guid="PUT-GUID-HERE"><FileId="myapplication.exe"Source="MySourceFiles\MyApplication.exe"KeyPath="yes"Checksum=<netfx:NativeImageId="ngen_MyApplication.exe"Platform="32bit"Priority="0"AppBaseDirectory=</File></Component>
TheIdattributeisauniqueidentifierforthenativeimage.ThePlatformattributespecifiestheplatformsforwhichthenativeimageshouldbegenerated,inthiscase32-bit.ThePriorityattributespecifieswhentheimagegenerationshouldoccur,inthiscaseimmediatelyduringthesetupprocess.TheAppBaseDirectoryattributeidentifiesthedirectorytousetosearchfordependentassembliesduringtheimagegeneration.Inthiscaseitissettotheinstalldirectoryfortheapplication.
HowTo:ReferenceanotherDirectorySearchelementTheremaybetimeswhenyouneedtolocatedifferentfilesorsubdirectoriesunderthesamedirectory,andassigneachtoaseparateproperty.SinceyoucannotdefinethesameDirectorySearchelementmorethanonce,youmustuseaDirectorySearchRefelement.ToreferenceanotherDirectorySearchelement,youmustspecifythesameId,ParentId,andPathattributevaluesoryouwillgetunresolvedsymbolerrorswhenlinkingwithlight.exe.
Step1:DefineaDirectorySearchelementYoufirstneedtodefinetheparentDirectorySearchelement.Thisisexpectedtocontainthedifferentfilesorsubdirectoriesyouwillassigntoseparateproperties.
<PropertyId="SHDOCVW"><DirectorySearchId="WinDir"Path="[WindowsFolder]"><DirectorySearchId="Media"Path="Media"><FileSearchId="Chimes"Name="chimes.wav"/></DirectorySearch></DirectorySearch></Property>
Thiswillsearchforthefile"chimes.wav"undertheMediadirectoryinWindows.Ifthefileisfound,thefullpathwillbeassignedtothepublicproperty"SHDOCVW".
Step2:DefineaDirectorySearchRefelementTosearchforanotherfileintheMediadirectory,youneedtoreferenceallthesameId,ParentId,andPathattributes.BecausetheMediaDirectorySearchelementisnestedundertheWinDirDirectorySearchelement,itsParentattributeisautomaticallyassignedtheparentDirectorySearchelement'sIdattributevalue;thus,thatiswhatyoumustspecifyfortheDirectorySearchRefelement'sParentattributevalue.
<PropertyId="USER32"><DirectorySearchRefId="Media"Parent="WinDir"Path="Media"><FileSearchId="Chord"Name="chord.wav"/></DirectorySearchRef></Property>
IfyouwantedtorefertoanotherDirectorySearchelementthatusedtheIdMediabutwasunderadifferentparentpath,youwouldhavetodefineanewDirectorySearchelementunderadifferentparentthaninstep1.
HowTo:GettheparentdirectoryofafilesearchYoucansetapropertytotheparentdirectoryofafile.
Step1:DefinethesearchrootInthefollowingexample,thepathto[WindowsFolder]Microsoft.NETisdefinedastherootofthesearch.Ifyoudonotdefineasearchroot,WindowsInstallerwillsearchallfixeddrivesuptothedepthspecified.
<PropertyId="NGEN2DIR"><DirectorySearchId="Windows"Path="[WindowsFolder]"><DirectorySearchId="MS.NET"Path="Microsoft.NET"></DirectorySearch></DirectorySearch></Property>
Step2:DefinetheparentdirectorytofindUnderthesearchroot,definethedirectoryyouwantreturnedandsettheDirectorySearch/@AssignToPropertyattributeto'yes'.YoumustthendefinethefileyouwanttofindusingauniqueFileSearch/@Idattributevalue.
<PropertyId="NGEN2DIR"><DirectorySearchId="Windows"Path="[WindowsFolder]"><DirectorySearchId="MS.NET"Path="Microsoft.NET"><DirectorySearchId="Ngen2Dir"Depth="2"AssignToProperty="yes"><FileSearchId="Ngen_exe"Name="ngen.exe"MinVersion="2.0.0.0"</DirectorySearch></DirectorySearch></DirectorySearch></Property>
Inthisexample,ifngen.exeisnewerthanversion2.0.0.0andisfoundnomorethantwodirectoriesunder[WindowsFolder]Microsoft.NETitsparentdirectoryisreturnedintheNGEN2DIRproperty.
HowTo:ReadaRegistryEntryDuringInstallationInstallersoftenneedtolookupthevalueofaregistryentryduringtheinstallationprocess.Theresultingregistryvalueisoftenusedinaconditionalstatementlaterininstall,suchastoinstallaspecificcomponentifaregistryentryisnotfound.Thishowtodemonstratesreadinganintegervaluefromtheregistryandverifyingthatitexistsinalaunchcondition.
Step1:ReadtheregistryentryintoapropertyRegistryentriesarereadusingthe<RegistrySearch>element.Thefollowingsnippetlooksforthethepresenceofthekeythatidentifiestheinstallationof.NETFramework2.0onthetargetmachine*.
<PropertyId="NETFRAMEWORK20"><RegistrySearchId="NetFramework20"Root="HKLM"Key="Software\Microsoft\NETFrameworkSetup\NDP\v2.0.50727"Name="Install"Type="raw"/></Property>
TheRegistrySearchelementspecifiesauniqueid,therootintheregistrytosearch,andthekeytolookunder.Thenameattributespecifiesthespecificvaluetoquery.Thetypeattributespecifieshowthevalueshouldbetreated.Rawindicatesthatthevalueshouldbeprefixedaccordingtothedatatypeofthevalue.Inthiscase,sinceInstallisaDWORD,theresultingvaluewillbeprependedwitha#.
TheabovesamplewillsettheNETFRAMEWORK20propertyto"#1"iftheregistrykeywasfound,andtonothingifitwasn't.
Step2:UsethepropertyinaconditionAfterthepropertyissetyoucanuseitinaconditionanywhereinyourWiXproject.Thefollowingsnippetdemonstrateshowtouseittoblockinstallationif.NETFramework2.0isnotinstalled.
<ConditionMessage="Thisapplicationrequires.NETFramework2.0.Pleaseinstallthe.NETFrameworkthenrunthisinstalleragain."<![CDATA[InstalledORNETFRAMEWORK20]]></Condition>
InstalledisaWindowsInstallerpropertythatensuresthecheckisonlydonewhentheuserisinstallingtheapplication,ratherthanonarepairorremove.TheNETFRAMEWORK20partoftheconditionwillpassifthepropertywasset.Ifitisnotsettheinstallerwilldisplaytheerrormessagethenaborttheinstallationprocess.
*Thisregistryentryisusedforsamplepurposesonly.Ifyouwanttodetecttheinstalledversionof.NETFrameworkyoucanusethebuilt-inWiXsupport.FormoreinformationseeHowTo:Checkfor.NETFrameworkVersions.
HowTo:WriteaRegistryEntryDuringInstallationWritingregistryentriesduringinstallationissimilartowritingfilesduringinstallation.Youdescribetheregistryhierarchyyouwanttowriteinto,specifytheregistryvaluestocreate,thenaddthecomponenttoyourfeaturelist.
Step1:DescribetheregistrylayoutandvaluesThefollowingexampleillustrateshowtowritetworegistryentries,onetoaspecificvalueandtheothertothedefaultvalue.
<DirectoryRefId="TARGETDIR"><ComponentId="RegistryEntries"Guid="PUT-GUID-HERE"><RegistryKeyRoot="HKCU"Key="Software\Microsoft\MyApplicationName"Action="createAndRemoveOnUninstall"><RegistryValueType="integer"Name="SomeIntegerValue"Value="1"KeyPath="yes"/><RegistryValueType="string"Value="DefaultValue"/></RegistryKey></Component></DirectoryRef>
ThesnippetbeginswithaDirectoryRefthatpointstotheTARGETDIRdirectorydefinedbyWindowsInstaller.Thiseffectivelymeanstheregistryentriesshouldbeinstalledtothetargetuser'smachine.UndertheDirectoryRefisaComponentelementthatgroupstogethertheregistryentriestobeinstalled.ThecomponentisgivenanidforreferencelaterintheWiXprojectandauniqueguid.
Theregistryentriesarecreatedbyfirstusingthe<RegistryKey>elementtospecifywhereintheregistrythevaluesshouldgo.InthisexamplethekeyisunderHKEY_CURRENT_USER\Software\Microsoft\MyApplicationName.TheoptionalActionattributeisusedtotellWindowsInstallerthatthekeyshouldbecreated(ifnecessary)oninstall,andthatthekeyandallitssub-valuesshouldberemovedonuninstall.
UndertheRegistryKeyelementthe<RegistryValue>elementisusedtocreatetheactualregistryvalues.ThefirstistheSomeIntegerValuevalue,whichisoftypeintegerandhasavalueof1.ItisalsomarkedastheKeyPathforthecomponent,whichisusedbytheWindowsInstallertodeterminewhetherthiscomponentisinstalledonthemachine.ThesecondRegistryValueelementsetsthedefaultvalueforthekeytoastringvalueofDefaultValue.
TheidattributeisomittedontheRegistryKeyandRegistryValueelementsbecausethereisnoneedtorefertotheseitemselsewhereintheWiXprojectfile.WiXwillauto-generateidsfortheelementsbasedontheregistrykey,value,andparentcomponentname.
Step2:TellWindowsInstallertoinstalltheentriesAfterdefiningthedirectorystructureandlistingtheregistryentriestopackageintotheinstaller,thelaststepistotellWindowsInstallertoactuallyinstalltheregistryentry.The<Feature>elementisusedtodothis.Thefollowingsnippetaddsareferencetotheregistryentriescomponent,andshouldbeinsertedinsideaparentFeatureelement.
<ComponentRefId="RegistryEntries"/>
The<ComponentRef>elementisusedtoreferencethecomponentcreatedinStep1viatheIdattribute.
HowTo:BlockInstallationBasedonOSVersionWindowsInstallerprovidesthestandardVersionNTpropertythatcanbeusedtodetecttheversionoftheuser'soperatingsystem.Oftenitisdesirabletousethispropertytoblockinstallationofanapplicationonincompatibleversionsofanoperatingsystem.ThefollowingsampledemonstrateshowtousethispropertytoblockinstallationofanapplicationonoperatingsystemspriortoWindowsVista/WindowsServer2008.
<ConditionMessage="ThisapplicationisonlysupportedonWindowsVista,WindowsServer2008,orhigher.<![CDATA[InstalledOR(VersionNT>=600)]]></Condition>
InstalledisaWindowsInstallerpropertythatensuresthecheckisonlydonewhentheuserisinstallingtheapplication,ratherthanonarepairorremove.TheVersionNTpartwillpassiftheproperty'svalueisgreaterthanorequalto600,theversionthatmatchesWindowsVista,theinstallationwillproceed.ThevaluesfordifferentversionsoftheWindowsoperatingsystemareavailableonMSDN.
Tocheckforversionsof64-bitWindowsusetheVersionNT64property.TocheckforversionsofWindowspriortoWindowsNTusetheWindows9Xproperty.
HowTo: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.">
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>
<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>
HowTo:Checkfor.NETFrameworkVersionsWheninstallingapplicationswrittenusingmanagedcode,itisoftenusefultoverifythattheuser'smachinehasthenecessaryversionofthe.NETFrameworkpriortoinstallation.TheWiXsupportfordetecting.NETFrameworkversionsisincludedinaWiXextension,WixNetFxExtension.ThishowtodescribesusingtheWixNetFxExtensiontoverify.NETFrameworkversionsatinstalltime.Forinformationonhowtoinstallthe.NETFrameworkduringyourinstallationseeHowTo:Installthe.NETFrameworkUsingBurn.
Step1:AddWixNetFxExtensiontoyourprojectYoumustaddtheWixNetFxExtensiontoyourprojectpriortouse.IfyouareusingWiXonthecommandline,youneedtoaddthefollowingtoyourcandleandlightcommandlines:
-extWixNetFxExtension
IfyouareusingWiXinVisualStudio,youcanaddtheextensionusingtheAddReferencedialog:
1. OpenyourWiXprojectinVisualStudio.2. RightclickonyourprojectinSolutionExplorerandselectAdd
Reference....3. SelecttheWixNetFxExtension.dllassemblyfromthelistandclick
Add.4. ClosetheAddReferencedialog.
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">
Step3:ReferencetherequiredpropertiesinyourprojectWixNetFxExtensiondefinespropertiesforallcurrentversionsofthe.NETFramework,includingservicepacklevels.Tomakethesepropertiesavailabletoyourinstaller,youneedtoreferencethemusingthe<PropertyRef>element.Foreachpropertyyouwanttouse,addthecorrespondingPropertyReftoyourproject.Forexample,ifyouareinterestedindetecting.NETFramework2.0addthefollowing:
<PropertyRefId="NETFRAMEWORK20"/>
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.
HowTo:InstallDirectX9.0WithYourInstallerApplicationsthatrequirecomponentsfromDirectX9.0canbenefitfromincludingtheDirectX9.0Redistributableinsidetheirinstaller.Thissimplifiestheinstallationprocessforendusersandensurestherequiredcomponentsforyourapplicationarealwaysavailableonthetargetuser'smachine.
DirectX9.0canbere-distributedinseveraldifferentways,eachofwhichisoutlinedinMSDN'sInstallingDirectXwithDirectSetuparticle.Thishowtodescribesusingthedxsetup.exeapplicationtoinstallDirectX9.0onaVistamachineassumingtheapplicationbeinginstalledonlydependsonaspecificDirectXcomponent.
PriortoredistributingtheDirectXbinariesyoushouldreadandunderstandthelicenseagreementfortheredistributablefiles.ThelicenseagreementcanbefoundintheDocumentation\LicenseAgreements\DirectXRedist.txtfileinyourDirectXSDKinstallation.
Step1:AddtheinstallerfilestoyourWiXprojectAddingthefilestotheWiXprojectfollowsthesameprocessasdescribedinHowTo:Addafiletoyourinstaller.Thefollowingexampleillustratesatypicalfragmentthatincludesthenecessaryfiles:
<DirectoryRefId="APPLICATIONROOTDIRECTORY"><DirectoryId="DirectXRedistDirectory"Name="DirectX9.0c"><ComponentId="DirectXRedist"Guid="PUT-GUID-HERE"><FileId="DXSETUPEXE"Source="MySourceFiles\DirectXMinInstall\dxsetup.exe"KeyPath="yes"Checksum="yes"/><FileId="dxupdate.cab"Source="MySourceFiles\DirectXMinInstall\dxupdate.cab"/><FileId="dxdllreg_x86.cab"Source="MySourceFiles\DirectXMinInstall\dxdllreg_x86.cab"/><FileId="dsetup32.dll"Source="MySourceFiles\DirectXMinInstall\dsetup32.dll"/><FileId="dsetup.dll"Source="MySourceFiles\DirectXMinInstall\dsetup.dll"/><FileId="DEC2006_d3dx9_32_x86.cab"Source="MySourceFiles\DirectXMinInstall\DEC2006_d3dx9_32_x86.cab"/></Component></Directory></DirectoryRef>
<FeatureId="DirectXRedist"Title="!(loc.FeatureDirectX)"AllowAdvertise="no"Display="hidden"Level="1"><ComponentRefId="DirectXRedist"/></Feature>
ThefilesincludedaretheminimalsetoffilesrequiredbytheDirectX9.0installprocess,asdescribedintheMSDNdocumentation.Thelastfileinthelist,DEC2006_d3dx9_32_x86.cabcontainsthespecificDirectXcomponentrequiredbytheinstalledapplication.Thesefilesareallincludedinasinglecomponentas,eveninapatchingsituation,allthefilesmustgotogether.AFeatureelementisusedtocreateafeaturespecifictoDirectXinstallation,anditsDisplayattributeissettohiddento
preventtheuserfromseeingthefeatureinanyUIthatmaybepartofyourinstaller.
Step2:AddacustomactiontoinvoketheinstallerToruntheDirectX9.0installeracustomactionisaddedthatrunsbeforetheinstallisfinalized.The<CustomAction>,<InstallExecuteSequence>and<Custom>elementsareusedtocreatethecustomaction,asillustratedinthefollowingsample.
<CustomActionId="InstallDirectX"FileKey="DXSETUPEXE"ExeCommand="/silent"Execute="deferred"Impersonate="no"Return="check"/>
<InstallExecuteSequence><CustomAction="InstallDirectX"Before="InstallFinalize"><![CDATA[NOTREMOVE]]></Custom></InstallExecuteSequence>
TheCustomActionelementcreatesthecustomactionthatrunsthesetup.Itisgivenauniqueid,andtheFileKeyattributeisusedtoreferencetheinstallerapplicationfromStep1.TheExeCommandattributeaddsthe/silentflagtotheinstallertoensuretheuserisnotpresentedwithanyDirectXinstalleruserinterface.TheExecuteattributeissettodeferredandtheImpersonateattributeissettonotoensurethecustomactionwillrunelevated,ifnecessary.TheReturnattributeissettochecktoensurethecustomactionrunssynchronously.
TheCustomelementisusedinsideanInstallExecuteSequencetoaddthecustomactiontotheactualinstallationprocess.TheActionattributereferencestheCustomActionbyitsuniqueid.TheBeforeattributeissettoInstallFinalizetorunthecustomactionbeforetheoverallinstallationiscomplete.TheconditionpreventstheDirectXinstallerfromrunningwhentheuseruninstallsyourapplication,sinceDirectXcomponentscannotbeuninstalled.
Step3:IncludeprogresstextforthecustomactionIfyouareusingstandardWiXUIdialogsyoucanincludecustomprogresstextfordisplaywhiletheDirectXinstallationtakesplace.The<UI>and<ProgressText>elementsareused,asillustratedinthefollowingexample.
<UI><ProgressTextAction="InstallDirectX">InstallingDirectX9.0c</ProgressText></UI>
TheProgressTextelementusestheActionattributetoreferencethecustomactionbyitsuniqueid.ThevalueoftheProgressTextelementissettothedisplaytextfortheinstallprogress.
HowTo:Installthe.NETFrameworkUsingBurnApplicationswrittenusingthe.NETFrameworkoftenneedtobundlethe.NETframeworkandinstallitwiththeirapplication.Wix3.6andlatermakesthiseasywithBurn.
Step1:CreateabundleforyourapplicationFollowtheinstructionsinBuildingInstallationPackageBundles.
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>
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.
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"/>
</startup><wix.bootstrapper><hostassemblyName="MyBootstrapperApplicationAssembly"><supportedFrameworkversion="v3.5"/><supportedFrameworkversion="v4\Client"/><!--Exampleonly.Replacethehost/@assemblyNameattributewithanassemblythatimplementsBootstrapperApplication.--><hostassemblyName="$(var.MyMBA.TargetPath)"/></host></wix.bootstrapper></configuration>
HowTo:InstalltheVisualC++RedistributablewithyourinstallerIfyourapplicationdependsontheVisualC++runtimesyoucanincludethemaspartofyourinstallertosimplifytheinstallationexperienceforyourendusers.ThishowtodescribesincludingtheVisualC++runtimemergemodulesintoyourinstallerandexplainstheexpectedICEwarningsyouwillsee.
Step1:ObtainthecorrectVisualC++runtimemergemodulesTheVisualC++runtimemergemodulesareinstalledwithVisualStudioandarelocatedin\ProgramFiles\CommonFiles\MergeModules.TheVisualC++8.0runtimefileisMicrosoft_VC80_CRT_x86.msm.ThissameMSMisusedfortheVisualC++8.0SP1runtime,howeveritisupdatedinplacebytheVisualStudio2005SP1installer.TheVisualStudio9.0runtimefileisMicrosoft_VC90_CRT_x86.msm.ThereisgenerallynoneedtoincludethepolicyMSMsaspartoftheinstallation.
Step2:IncludethemergemoduleinyourinstallerToincludethemergemoduleinyourinstallerusethe<Merge>and<MergeRef>elements.Thefollowingexampleillustrateshowtheseelementsareused.
<DirectoryRefId="TARGETDIR"><MergeId="VCRedist"SourceFile="MySourceFiles\Microsoft_VC80_CRT_x86.msm"DiskId="1"Language</DirectoryRef>
<FeatureId="VCRedist"Title="VisualC++8.0Runtime"AllowAdvertise="no"Display="hidden"Level="<MergeRefId="VCRedist"/></Feature>
TheMergeelementensuresthemergemoduleisincludedinthefinalWindowsInstallerpackage.AuniqueidisassignedusingtheIdattribute.TheSourceFileattributepointstothelocationofthemergemoduleonyourmachine.TheDiskIdattributeshouldmatchtheDiskIdspecifiedinyourproject'sMediaelement.TheLanguageattributeshouldalwaysbe0.
TheMergeRefelementisusedwithinaFeatureelementtoactuallyinstallthemergemodule.IntheexampleaboveafeaturespecifictotheruntimeiscreatedandmarkedashiddentopreventitfromdisplayinginanyUIyourinstallermayuse.TheMergeRefreferstothemergemodulebyitsuniqueid.
AnoteaboutICEwarningsIncludingtheVisualC++RuntimemergemoduleinyourinstallerwillresultinthefollowingICEwarnings:
light.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Component,Column:KeyPath,Key(s):downlevel_manifest.8.0.50727.762.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Component,Column:KeyPath,Key(s):downlevel_manifest.8.0.50727.100.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Component,Column:KeyPath,Key(s):downlevel_manifest.8.0.50727.101.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Component,Column:KeyPath,Key(s):downlevel_manifest.8.0.50727.103.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Component,Column:KeyPath,Key(s):downlevel_manifest.8.0.50727.104.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Component,Column:KeyPath,Key(s):downlevel_manifest.8.0.50727.193.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Registry,Column:Registry,Key(s):reg_downlevel_manifest.8.0.50727.100.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Registry,Column:Registry,Key(s):reg_downlevel_manifest.8.0.50727.101.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Registry,Column:Registry,Key(s):reg_downlevel_manifest.8.0.50727.103.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Registry,Column:Registry,Key(s):reg_downlevel_manifest.8.0.50727.104.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Registry,Column:Registry,Key(s):reg_downlevel_manifest.8.0.50727.193.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE03:Stringoverflow(greaterthanlengthpermittedincolumn);Table:Registry,Column:Registry,Key(s):reg_downlevel_manifest.8.0.50727.762.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Elight.exe(0,0):warningLGHT1076:ICE25:PossibledependencyfailureaswedonotfindCRT.Policy.63E949F6_03BC_5C40_FF1F_C8B3B9A1E18E@0vinModuleSignaturetablelight.exe(0,0):warningLGHT1076:ICE82:ThisactionSystemFolder.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Ehasduplicatesequencenumber1inthetableInstallExecuteSequencelight.exe(0,0):warningLGHT1076:ICE82:ThisactionSystemFolder.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Ehasduplicatesequencenumber1inthetableInstallUISequencelight.exe(0,0):warningLGHT1076:ICE82:ThisactionSystemFolder.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Ehasduplicatesequencenumber1inthetableAdminExecuteSequencelight.exe(0,0):warningLGHT1076:ICE82:ThisactionSystemFolder.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Ehasduplicatesequencenumber1inthetableAdminUISequencelight.exe(0,0):warningLGHT1076:ICE82:ThisactionSystemFolder.98CB24AD_52FB_DB5F_FF1F_C8B3B9A1E18Ehasduplicatesequencenumber1inthetableAdvtExecuteSequence
ThesewarningsareexpectedandareduetohowtheVisualC++mergemoduleswereauthored.FormoredetailsseeAaronStebner'sblogentry.
HowTo:BuildaLocalizedVersionofYourInstallerOnceyouhavedescribedallthestringsinyourinstallerusinglanguagefiles,asdescribedinHowTo:Makeyourinstallerlocalizable,youcanthenbuildversionsofyourinstallerforeachsupportedlanguage.ThishowtoexplainsbuildingthelocalizedinstallersbothfromthecommandlineandusingVisualStudio.
Option1:BuildinglocalizedinstallersfromthecommandlineThefirststepinbuildingalocalizedinstalleristocompileyourWiXsourcesusingcandle.exe:
candle.exemyinstaller.wxs-outmyinstaller.wixobj
Aftertheintermediateoutputfileisgeneratedyoucanthenuselight.exetogeneratemultiplelocalizedMSIs:
light.exemyinstaller.wixobj-cultures:en-us-locen-us.wxl-outmyinstaller-en-us.msilight.exemyinstaller.wixobj-cultures:fr-fr-locfr-fr.wxl-outmyinstaller-fr-fr.msi
The-locflagisusedtospecifythelanguagefiletouse.Itisimportanttoincludethe-culturesflagonthecommandlinetoensurethecorrectlocalizedstringsareincludedforextensionssuchasWiXUIExtension.
Option2:BuildinglocalizedinstallersusingVisualStudioVisualStudiowillautomaticallybuildlocalizedversionsofyourinstaller.IfyourWiXprojectincludesmultiple.wxlfiles,onelocalizedinstallerwillbebuiltforeachculture,unlessCulturestobuildisspecified.
Formoreinformation,seeSpecifyingculturestobuild
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:
light.exemyinstaller.wixobj-cultures:en-us;en-locmystrings_en-US.wxl-locmystrings_en.wxl-extWixUIExtension-outmyinstaller-en-us.msi
Thiswillcauselighttobuildanen-usinstallerfirstusinglocalizationvariablesfromtheen-USlocalizationfile(mystrings_en-US.wxl),thentheenlocalizationfile(mystrings_en.wxl),thenfinallyWixUIExtension.
SpecifyingCulturestobuildinVisualStudioDuringthedevelopmentofyourinstalleryoumaywanttotemporarilydisablebuildingsomeofthelanguagestospeedupbuildtime.YoucandothisbygoingtoProject>ProjectnamePropertiesonthemenuandselectingtheBuildtab.IntheCulturestobuildfieldenterthesemicolonlistofculturesorculturegroupsyouwouldlikebuilt.
Culturestobuildmaybeusedtospecifyculturestobuildwhena.wxlfileisnotprovidedforatargetculture.Forexample,tobuildanen-USinstallerandanru-RUinstallerwhenonlyanru-RU.wxlfileisprovided,specifyen-US;ru-RU.Wixlocalizationvariablesfortheru-RUinstallerwillfirstcomefromtheprovided.wxlfile,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
thefullylocalizedinstallers.
HowTo:MakeyourinstallerlocalizableWiXsupportsbuildinglocalizedinstallersthroughtheuseoflanguagefilesthatincludelocalizedstrings.Itisagoodpracticetoputallyourstringsinalanguagefileasyoucreateyoursetup,evenifyoudonotcurrentlyplanonshippinglocalizedversionsofyourinstaller.ThishowtodescribeshowtocreatealanguagefileanduseitsstringsinyourWiXproject.
Step1:CreatethelanguagefileLanguagefilesendinthe.wxlextensionandspecifytheircultureusingthe<WixLocalization>element.Tocreatealanguagefileonthecommandlinecreateanewfilewiththeappropriatenameandaddthefollowing:
<?xmlversion="1.0"encoding="utf-8"?><WixLocalizationCulture="en-us"xmlns="http://schemas.microsoft.com/wix/2006/localization"></WixLocalization>
IfyouareusingVisualStudioyoucanaddanewlanguagefiletoyourprojectbydoingthefollowing:
1. RightclickonyourprojectinSolutionExplorerandselectAdd>NewItem...
2. SelectWiXLocalizationFile,givethefileanappropriatename,andselectAdd
BydefaultVisualStudiocreateslanguagefilesintheen-usculture.TocreatealanguagefileforadifferentculturechangetheCultureattributetotheappropriateculturestring.
Step2:AddthelocalizedstringsLocalizedstringsaredefinedusingthe<String>element.EachelementconsistsofauniqueidforlaterreferenceinyourWiXprojectandthestringvalue.Forexample:
<StringId="ApplicationName">MyApplicationName</String><StringId="ManufacturerName">MyManufacturerName</String>
TheStringelementgoesinsidetheWixLocalizationelement,andyoushouldaddoneStringelementforeachpieceoftextyouneedtolocalize.
Step3:UsethelocalizedstringsinyourprojectOnceyouhavedefinedthestringsyoucanusetheminyourprojectwhereveryouwouldnormallyusetext.Forexample,tosetyourproduct'sNameandManufacturertothelocalizedstringsdothefollowing:
<ProductId="*"UpgradeCode="PUT-GUID-HERE"Version="1.0.0.0"Language="1033"Name="!(loc.ApplicationName)"Manufacturer="!(loc.ManufacturerName)">
Localizationstringsarereferencedusingthe!(loc.stringname)syntax.Thesereferenceswillbereplacedwiththeactualstringsfortheappropriatelocaleatbuildtime.
ForinformationonhowtocompilelocalizedversionsofyourinstalleronceyouhavethenecessarylanguagefilesseeHowTo:Buildalocalizedversionofyourinstaller.
HowTo:SetYourInstaller'sIconinAdd/RemoveProgramsWindowsInstallersupportsastandardproperty,ARPPRODUCTICON,thatcontrolstheicondisplayedinAdd/RemoveProgramsforyourapplication.TosetthispropertyyoufirstneedtoincludetheiconinyourinstallerusingtheIconelement,thensetthepropertyusingthePropertyelement.
<IconId="icon.ico"SourceFile="MySourceFiles\icon.ico"/><PropertyId="ARPPRODUCTICON"Value="icon.ico"/>
ThesetwoelementscanbeplacedanywhereinyourWiXprojectundertheProductelement.TheIconelementspecifiesthelocationoftheicononyoursourcemachine,andgivesitauniqueidforuselaterintheWiXproject.ThePropertyelementsetstheARPPRODUCTIONpropertytotheidoftheicontouse.
HowTo:RuntheInstalledApplicationAfterSetupOftenwhencompletingtheinstallationofanapplicationitisdesirabletooffertheusertheoptionofimmediatelylaunchingtheinstalledprogramwhensetupiscomplete.ThishowtodescribescustomizingthedefaultWiXUIexperiencetoincludeacheckboxandaWiXcustomactiontolaunchtheapplicationifthecheckboxischecked.
ThishowtoassumesyouhavealreadycreatedabasicWiXprojectusingthestepsoutlinedinHowTo:Addafiletoyourinstaller.
Step1:AddtheextensionlibrariestoyourprojectThiswalkthroughrequiresWiXextensionsforUIcomponentsandcustomactions.Theseextensionlibrariesmustmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommand-lineyouneedtoaddthefollowingtoyourcandleandlightcommandlines:
-extWixUIExtension-extWixUtilExtension
IfyouareusingVisualStudioyoucanaddtheextensionsusingtheAddReferencedialog:
1. RightclickonyourprojectinSolutionExplorerandselectAddReference...
2. SelecttheWixUIExtension.dllassemblyfromthelistandclickAdd3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog
Step2:AddUItoyourinstallerTheWiXMinimalUIsequenceincludesabasicsetofdialogsthatincludesafinisheddialogwithoptionalcheckbox.Toincludethesequenceinyourprojectaddthefollowingsnippetanywhereinsidethe<Product>element.
<UI><UIRefId="WixUI_Minimal"/></UI>
Todisplaythecheckboxonthelastscreenoftheinstallerincludethefollowingsnippetanywhereinsidethe<Product>element:
<PropertyId="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT"Value="LaunchMyApplicationName
TheWIXUI_EXITDIALOGOPTIONALCHECKBOXTEXTpropertyisprovidedbythestandardUIsequencethat,whenset,displaysthecheckboxandusesthespecifiedvalueasthecheckboxlabel.
Step3:IncludethecustomactionCustomactionsareincludedinaWiXprojectusingthe<CustomAction>element.RunninganapplicationisaccomplishedwiththeWixShellExecTargetcustomaction.TotellWindowsInstalleraboutthecustomaction,andtosetitsproperties,includethefollowinginyourprojectanywhereinsidethe<Product>element:
<PropertyId="WixShellExecTarget"Value="[#myapplication.exe]"/><CustomActionId="LaunchApplication"BinaryKey="WixCA"DllEntry="WixShellExec"Impersonate="yes
ThePropertyelementsetstheWixShellExecTargettothelocationoftheinstalledapplication.WixShellExecTargetisthepropertyIdtheWixShellExeccustomactionexpectswillbesettothelocationofthefiletorun.TheValuepropertyusesthespecial#charactertotellWiXtolookupthefullinstalledpathofthefilewiththeidmyapplication.exe.
TheCustomActionelementincludestheactionintheinstaller.ItisgivenauniqueId,andtheBinaryKeyandDllEntrypropertiesindicatetheassemblyandentrypointforthecustomaction.TheImpersonatepropertytellsWindowsInstallertorunthecustomactionastheinstallinguser.
Step4:TriggerthecustomactionSimplyincludingthecustomaction,asinStep3,isn'tsufficienttocauseittorun.WindowsInstallermustalsobetoldwhenthecustomactionshouldbetriggered.Thisisdonebyusingthe<Publish>elementtoaddittotheactionsrunwhentheuserclickstheFinishedbuttononthefinalpageoftheUIdialogs.ThePublishelementshouldbeincludedinsidethe<UI>elementfromStep2,andlookslikethis:
<PublishDialog="ExitDialog"Control="Finish"Event="DoAction"Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX=1andNOTInstalled</
TheDialogpropertyspecifiesthedialogtheCustomActionwillbeattachedto,inthiscasetheExitDialog.TheControlpropertyspecifiesthattheFinishbuttononthedialogtriggersthecustomaction.TheEventpropertyindicatesthatacustomactionshouldberunwhenthebuttonisclicked,andtheValuepropertyspecifiesthecustomactionthatwasincludedinStep3.TheconditionontheelementpreventstheactionfromrunningunlessthecheckboxfromStep2wascheckedandtheapplicationwasactuallyinstalled(asopposedtobeingremovedorrepaired).
TheCompleteSample<?xmlversion="1.0"encoding="UTF-8"?><<Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><ProductId="*"UpgradeCode="PUT-GUID-HERE"Version="1.0.0.0"Language="1033"Name="MyApplicationName"Manufacturer="MyManufacturerName"><PackageInstallerVersion="300"Compressed="yes"/><MediaId="1"Cabinet="myapplication.cab"EmbedCab="yes"/>
<!--ThefollowingthreesectionsarefromtheHowTo:AddaFiletoYourInstallertopic--><DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"><DirectoryId="APPLICATIONROOTDIRECTORY"Name="MyApplicationName"/></Directory></Directory>
<DirectoryRefId="APPLICATIONROOTDIRECTORY"><ComponentId="myapplication.exe"Guid="PUT-GUID-HERE"><FileId="myapplication.exe"Source="MySourceFiles\MyApplication.exe"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"
BinaryKey="WixCA"DllEntry="WixShellExec"Impersonate="yes"/></Product></Wix>
HowTo:ImplementaMajorUpgradeInYourInstallerWhencreatingan.msi-basedinstaller,youarestronglyencouragedtoincludelogicthatsupportsWindowsInstallermajorupgrades.Majorupgradesarethemostcommonformofupdatesfor.msi's,andincludingsupportinyourinitial.msireleasegivesyouflexibilityinthefuture.Withoutincludingsupportformajorupgradesyouriskgreatlycomplicatingyourdistributionstoryifyoueverneedtoreleaseupdateslateron.
Youcanusethefollowingstepstoenablemajorupgradesinyour.msi,buildmultipleversionsofyour.msiandtestmajorupgradescenarios.
Step1:AddupgradeinformationneededtocausenewversionstoupgradeolderversionsInordertoallowmajorupgrades,youmustincludethefollowinginformationinyour.msi:
AddauniqueIDtoidentifythattheproductcanbeupgraded
Toaccomplishthis,youmustincludeanUpgradeCodeattributeinyourProductelement.Thislookslikethefollowing:
<ProductId="*"UpgradeCode="PUT-GUID-HERE"Name="MyApplicationName"Language="1033"Version="1.0.1"Manufacturer="MyManufacturerName"/>
Scheduletheremovalofoldversionsandhandleout-of-orderinstallations
TheMajorUpgradeelementupgradesallolderversionsofthe.msi.Bydefault,itpreventsout-of-orderinstallations:installinganolderversionafterinstallinganewerversion.
<MajorUpgradeDowngradeErrorMessage="Alaterversionof[ProductName]isalreadyinstalled.Setupwillnowexit."
ThereareseveraloptionsforwhereyoucanscheduletheRemoveExistingProductsactiontoremoveoldversionsofthe.msi.Youneedtoreviewtheoptionsandchoosetheonethatmakesthemostsenseforyourscenarios.YoucanfindasummaryoftheoptionsintheRemoveExistingProductsdocumentation.
Bydefault,MajorUpgradeschedulesRemoveExistingProductsafterInstallValidate.YoucanchangetheschedulingusingtheSchedule
attribute.Forexample,IfyouchoosetoscheduleitafterInstallInitialize,itwilllooklikethefollowing:
<MajorUpgradeSchedule="afterInstallInitialize"DowngradeErrorMessage="Alaterversionof[ProductName]isalreadyinstalled.Setupwillnowexit."
WindowsInstallerlooksforotherinstalled.msifileswiththesameUpgradeCodevalueduringtheFindRelatedProductsaction.IfyoudonotspecificallyscheduletheFindRelatedProductsactioninyoursetupauthoring,WiXwillautomaticallyscheduleitforyouwhenitcreatesyour.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.
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.
Howto:AuthorproductdependenciesTODO
HowTo:UseWiXExtensionsTheWiXextensionscanbeusedbothonthecommandlineandwithintheVisualStudioIDE.WhenyouuseWiXextensionsintheVisualStudioIDE,youcanalsoenableIntelliSenseforeachWiXextension.
UsingWiXextensionsonthecommandlineTouseaWiXextensionwhencallingtheWiXtoolsfromthecommandline,usethe-extcommandlineparameterandsupplytheextensionassembly(DLL)neededforyourproject.EachextensionDLLmustbepassedinviaseparate-extparameters.Forexample:
light.exeMySetup.wixobj-extWixUIExtension-extWixUtilExtension-ext"C:\MyWiXExtensions\FooExtension.dll"-outMySetup.msi
ExtensionassembliesinthesamedirectoryastheWiXtoolscanbereferredtowithoutpathor.dllextension.Extensionassembliesinotherdirectoriesmustuseacompletepathname,including.dllextension.
Note:CodeAccessSecuritymanagesthetrustlevelsofassembliesloadedbymanagedcode,includingWiXextensions.Bydefault,CASpreventsaWiXtoolrunningonalocalmachinefromloadingaWiXextensiononanetworkshare.
UsingWiXextensionsinVisualStudioTouseaWiXextensionwhenbuildinginVisualStudiowiththeWiXVisualStudiopackage:
1. Right-clickontheWiXprojectintheVisualStudiosolutionexplorerandselectAddReference...
2. IntheAddWiXLibraryReferencedialog,clickontheBrowsetabandbrowsetotheWiXextensionDLLthatyouwanttoinclude.
3. ClicktheAddbuttontoaddareferencetothechosenextensionDLL.
4. BrowseandaddotherextensionDLLsasneeded.
ToenableIntelliSenseforaWiXextensionintheVisualStudioIDE,youneedtoaddanXMLNSdeclarationtothe<Wix>elementinyour.wxsfile.Forexample,ifyouwanttousetheNativeImagefunctionalityintheWixNetFxExtension,the<Wix>elementwouldlooklikethefollowing:
<Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
Afteraddingthis,youcanaddanelementnamed<netfx:NativeImage/>andviewIntelliSensefortheattributessupportedbytheNativeImageelement.
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.
HowTo:GetaLogofYourInstallationforDebuggingWhenauthoringinstallersitisoftennecessarytogetalogoftheinstallationfordebuggingpurposes.Thisisparticularlyhelpfulwhentryingtodebugfilesearchesandlaunchconditions.Toobtainalogofaninstallationusethecommandlinemsiexectool:
msiexec/iMyApplication.msi/l*vMyLogFile.txt
ThiswillinstallyourapplicationandwriteaverboselogtoMyLogFile.txtinthecurrentdirectory.
IfyouneedtogetalogofyourinstallerwhenitislaunchedfromtheAdd/RemoveProgramsdialogyoucanenableWindowsInstallerloggingviatheregistry.
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.
HowTo:OptimizebuildspeedWiXprovidestwowaysofspeedingupthecreationofcabinetsforcompressingfiles:
Multithreadedcabinetcreation.Cabinetreuse.
MultithreadedcabinetcreationLightusesmultiplethreadstobuildmultiplecabinetsinasinglepackage.Unfortunately,becausetheCABAPIitselfisn'tmultithreaded,asinglecabinetisbuiltwithonethread.Lightusesmultiplethreadswhentherearemultiplecabinets,soeachcabinetisbuiltononethread.
Bydefault,Lightusesthenumberofprocessors/coresinthesystemasthenumberofthreadstousewhencreatingcabinets.YoucanoverridethedefaultusingLight's-ctswitchortheCabinetCreationThreadCountpropertyina.wixprojproject.
Youcanusemultiplecabinetsbothexternallyandembeddedinthe.msipackage(usingtheMedia/@EmbedCabattribute).
CabinetreuseIfyoubuildsetupswithfilesthatdon'tchangeoften,youcangeneratecabinetsforthosefilesonce,thenreusethemwithoutspendingtheCPUtimetore-buildandre-compressthem.
TherearetwoLight.exeswitchesinvolvedincabinetreuse:
-cc(CabinetCachePathpropertyin.wixprojprojects)Thevalueisthepathtousetobothwritenewcabinetsand,when-reusecab/ReuseCabinetCacheisspecified,lookforcachedcabinets.
-reusecab(ReuseCabinetCachepropertyin.wixprojprojects)When-cc/CabinetCachePathisalsospecified,WiXreusescabinetsthatdon'tneedtoberebuilt.
WiXautomaticallyvalidatesthatacachedcabinetisstillvalidbyensuringthat:
Thenumberoffilesinthecachedcabinetmatchesthenumberoffilesbeingbuilt.Thenamesofthefilesareallidentical.Theorderoffilesisidentical.Thetimestampsforallfilesallidentical.
HowTo:SpecifysourcefilesWiXprovidesthreewaysofidentifyingasetuppackage'spayload-thefilesthatareincludedinthesetupandinstalledontheuser'smachine.
Byfilenameanddirectorytree.Byexplicitsourcefile.Vianamedbinderpaths.
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
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
Ifthebuildtreeservingasyourpayloadsourceisalmostidenticaltothetreeofyourinstalledimageandyouhaveamoderate-to-deepdirectorytree,usingimplicitpathswillavoidrepetitioninyourauthoring.
Sourcedirectories
TheDirectory/@SourceNameattributecontrolsboththenameofthedirectorywhereLight.exelooksforfilesandthe"sourcedirectory"inthe.msipackage.Unlessyoualsowanttocontrolthesourcedirectory,justuseFileSource.
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.
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
offilesinseverallocationsandyouneedtosearchthoselocationsdifferentlyfordifferentcategoriesofpayloadsourcefiles,usingFile/@Sourcewiththe"!(bindpath.bucketname)"prefixmakesiteasytopickexplicitgroupsofsearchpaths.YoucanusemultipleunnamedbinderinputpathstoshortentheFile/@Sourcepathsand/ortheunnamedbinderpaths.
Forexample,apartialbuildsystemmayseparatebinaryandnon-binaryfilestodifferentpathsstoredonanetworksharewhilethelocaloverridebuildmaynothavethemseparated.ByprefixingtheFile/@Sourcevalueswiththeappropriatebindpathvariableuniquefilenamescanbereferredtowithjusttheirfilenameswhilefileswiththesamenameacrossplatformsuserelativepaths.
UsingStandardCustomActionsCustomactionsaddtheabilitytoinstallandconfiguremanynewtypesofresources.EachoftheseresourcetypeshasoneormoreelementsthatallowyoutoinstallthemwithyourMSIpackage.Theonlythingsyouneedtodoareunderstandtheappropriateelementsfortheresourcesyouwanttoinstallandsettherequiredattributesontheseelements.TheelementsneedtobeprefixedwiththeappropriatenamespacefortheWiXextensiontheyaredefinedin.YoumustpassthefullpathtotheextensionDLLaspartofthecommandlinestothecompilerandlinkersotheyautomaticallyaddtheallofthepropererrormessages,customactionrecords,andbinaryrecordsintoyourfinalMSI.
ExampleFirst,let'stryanexamplethatcreatesauseraccountwhentheMSIisinstalled.ThisfunctionalityisdefinedinWixUtilExtension.dllandexposedtotheuserasthe<User>element.
<Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'xmlns:util='http://schemas.microsoft.com/wix/UtilExtension'><ProductId='PutGuidHere'Name='TestUserProduct'Language='1033'Version='0.0.0.0'><PackageId='PUT-GUID-HERE'Description='TestUserPackage'InstallerVersion='200'Compressed='yes'/><DirectoryId='TARGETDIR'Name='SourceDir'><ComponentId='TestUserProductComponent'Guid='PutGuidHere'><util:UserId='TEST_USER1'Name='testName1'Password='pa$$$$word'/></Component></Directory>
<FeatureId='TestUserProductFeature'Title='TestUserProductFeature'Level='1'><ComponentRefId='TestUserProductComponent'/></Feature></Product></Wix>
Thisisasimpleexamplethatwillcreateanewuseronthemachinenamed"testName1"withthepassword"pa$$word"(thepreprocessorreplaces$$$$with$$).
TobuildtheMSIfromthisWiXauthoring:
1. Puttheabovecodeinafilenamedyourfile.wxs.2. Replacethe"PUT-GUID-HERE"attributeswithrealGUIDs.3. Runcandle.exeyourfile.wxs-ext%fullpathtoWixUtilExtension.dll%4. Runlight.exeyourfile.wixobj-ext%fullpathtoWixUtilExtension.dll%-
outyourfile.msiyourfile.wixout
Now,useOrcatoopenuptheresultingMSIandtakealookattheErrortable,theCustomActiontable,andtheBinarytable.YouwillnoticethatalloftherelevantdataformanagingusershasbeenaddedintotheMSI.Thishappenedbecauseyouhavedonetwokeythings:
1. Youmadeuseofa<User>elementundera<Component>element.ThisindicatesthatauseristobeinstalledaspartoftheMSIpackage,andtheWiXcompilerautomaticallyaddedtheappropriateMSItabledatausedbythecustomaction.
2. YoulinkedwiththeappropriateextensionDLL(WixUtilExtension.dll).Thiscausedthelinkertoautomaticallypullalloftherelevantcustomactions,errormessages,andbinarytablerowsintotheMSI.
OSInfocustomactionsTheWixQueryOsInfo,WixQueryOsDirs,andWixQueryOsDriverInfocustomactionsinwixca(partofWixUtilExtension)setpropertiesoverandabovetheMSIsetforOSproduct/suitedetectionandstandarddirectories.TheWixQueryOsWellKnownSIDcustomactionsetspropertiesforthelocalizednamesofsomebuiltinWindowsusersandgroups.
Tousethesecustomactionsyousimplyneedtoadda<PropertyRef>tothepropertyyouwanttouseandthenincludeWixUtilExtensionswhenlinking.Forexample:
<PropertyRefId="WIX_SUITE_SINGLEUSERTS"/><PropertyRefId="WIX_DIR_COMMON_DOCUMENTS"/><PropertyRefId="WIX_ACCOUNT_LOCALSERVICE"/>
WixUtilExtensionwillautomaticallyschedulethecustomactionsasneededaftertheAppSearchstandardaction.ForadditionalinformationaboutstandarddirectorytokensinWindowsandwhichonesaresupporteddirectlybyWindowsInstaller,seethefollowingtopicsintheMSDNdocumentation:
ConstantspecialitemIDlist(CSIDL)valuesWindowsInstallersystemfoldervalues
WixQueryOsInfoProperties
WIX_SUITE_BACKOFFICE EquivalenttotheOSVERSIONINFOEXVER_SUITE_BACKOFFICEflag.
WIX_SUITE_BLADE EquivalenttotheOSVERSIONINFOEXVER_SUITE_BLADEflag.
WIX_SUITE_COMMUNICATIONS EquivalenttotheOSVERSIONINFOEXVER_SUITE_COMMUNICATIONSflag.
WIX_SUITE_COMPUTE_SERVER EquivalenttotheOSVERSIONINFOEXVER_SUITE_COMPUTE_SERVERflag.
WIX_SUITE_DATACENTER EquivalenttotheOSVERSIONINFOEXVER_SUITE_DATACENTERflag.
WIX_SUITE_EMBEDDEDNT EquivalenttotheOSVERSIONINFOEXVER_SUITE_EMBEDDEDNTflag.
WIX_SUITE_EMBEDDED_RESTRICTED EquivalenttotheOSVERSIONINFOEXVER_SUITE_EMBEDDED_RESTRICTEDflag.
WIX_SUITE_ENTERPRISE EquivalenttotheOSVERSIONINFOEXVER_SUITE_ENTERPRISEflag.
WIX_SUITE_MEDIACENTER EquivalenttotheGetSystemMetricsSM_SERVERR2flag.
WIX_SUITE_PERSONAL EquivalenttotheOSVERSIONINFOEXVER_SUITE_PERSONALflag.
WIX_SUITE_SECURITY_APPLIANCE EquivalenttotheOSVERSIONINFOEX
VER_SUITE_SECURITY_APPLIANCEflag.
WIX_SUITE_SERVERR2 EquivalenttotheGetSystemMetricsSM_SERVERR2flag.
WIX_SUITE_SINGLEUSERTS EquivalenttotheOSVERSIONINFOEXVER_SUITE_SINGLEUSERTSflag.
WIX_SUITE_SMALLBUSINESS EquivalenttotheOSVERSIONINFOEXVER_SUITE_SMALLBUSINESSflag.
WIX_SUITE_SMALLBUSINESS_RESTRICTED EquivalenttotheOSVERSIONINFOEXVER_SUITE_SMALLBUSINESS_RESTRICTEDflag.
WIX_SUITE_STARTER EquivalenttotheGetSystemMetricsSM_STARTERflag.
WIX_SUITE_STORAGE_SERVER EquivalenttotheOSVERSIONINFOEXVER_SUITE_STORAGE_SERVERflag.
WIX_SUITE_TABLETPC EquivalenttotheGetSystemMetricsSM_TABLETPCflag.
WIX_SUITE_TERMINAL EquivalenttotheOSVERSIONINFOEXVER_SUITE_TERMINALflag.
WIX_SUITE_WH_SERVER WindowsHomeServer.EquivalenttotheOSVERSIONINFOEXVER_SUITE_WH_SERVERflag.
WixQueryOsDirsProperties
WIX_DIR_ADMINTOOLS Per-useradministrativetoolsdirectory.EquivalenttotheSHGetFolderPathCSIDL_ADMINTOOLSflag.
WIX_DIR_ALTSTARTUP Per-usernonlocalizedStartupprogramgroup.EquivalenttotheSHGetFolderPathCSIDL_ALTSTARTUPflag.
WIX_DIR_CDBURN_AREA Per-userCDburningstagingdirectory.EquivalenttotheSHGetFolderPathCSIDL_CDBURN_AREAflag.
WIX_DIR_COMMON_ADMINTOOLS All-usersadministrativetoolsdirectory.EquivalenttotheSHGetFolderPathCSIDL_COMMON_ADMINTOOLSflag.
WIX_DIR_COMMON_ALTSTARTUP All-usersnonlocalizedStartupprogramgroup.EquivalenttotheSHGetFolderPathCSIDL_COMMON_ALTSTARTUPflag.
WIX_DIR_COMMON_DOCUMENTS All-usersdocumentsdirectory.EquivalenttotheSHGetFolderPathCSIDL_COMMON_DOCUMENTSflag.
WIX_DIR_COMMON_FAVORITES All-usersfavoriteitemsdirectory.EquivalenttotheSHGetFolderPathCSIDL_COMMON_FAVORITESflag.
WIX_DIR_COMMON_MUSIC All-usersmusicfilesdirectory.EquivalenttotheSHGetFolderPathCSIDL_COMMON_MUSICflag.
WIX_DIR_COMMON_PICTURES All-userspicturefilesdirectory.EquivalenttotheSHGetFolderPathCSIDL_COMMON_PICTURESflag.
WIX_DIR_COMMON_VIDEO All-usersvideofilesdirectory.EquivalenttotheSHGetFolderPathCSIDL_COMMON_VIDEOflag.
WIX_DIR_COOKIES Per-userInternetExplorercookiesdirectory.EquivalenttotheSHGetFolderPathCSIDL_COOKIESflag.
WIX_DIR_DESKTOP Per-userdesktopdirectory.EquivalenttotheSHGetFolderPathCSIDL_DESKTOPflag.
WIX_DIR_HISTORY Per-userInternetExplorerhistorydirectory.EquivalenttotheSHGetFolderPathCSIDL_HISTORYflag.
WIX_DIR_INTERNET_CACHE Per-userInternetExplorercachedirectory.EquivalenttotheSHGetFolderPathCSIDL_INTERNET_CACHEflag.
WIX_DIR_MYMUSIC Per-usermusicfilesdirectory.EquivalenttotheSHGetFolderPathCSIDL_MYMUSICflag.
WIX_DIR_MYPICTURES Per-userpicturefilesdirectory.EquivalenttotheSHGetFolderPathCSIDL_MYPICTURESflag.
WIX_DIR_MYVIDEO Per-uservideofilesdirectory.EquivalenttotheSHGetFolderPathCSIDL_MYVIDEOflag.
WIX_DIR_NETHOOD Per-userMyNetworkPlaceslinkobjectdirectory.EquivalenttotheSHGetFolderPathCSIDL_NETHOODflag.
WIX_DIR_PERSONAL Per-userdocumentsdirectory.EquivalenttotheSHGetFolderPathCSIDL_PERSONALflag.
WIX_DIR_PRINTHOOD Per-userPrinterslinkobjectdirectory.EquivalenttotheSHGetFolderPathCSIDL_PRINTHOODflag.
WIX_DIR_PROFILE Per-userprofiledirectory.Equivalenttothe
SHGetFolderPathCSIDL_PROFILEflag.
WIX_DIR_RECENT Per-usermostrecentlyuseddocumentsshortcutdirectory.EquivalenttotheSHGetFolderPathCSIDL_RECENTflag.
WIX_DIR_RESOURCES All-usersresourcedatadirectory.EquivalenttotheSHGetFolderPathCSIDL_RESOURCESflag.
WixQueryOsWellKnownSIDproperties
WIX_ACCOUNT_LOCALSYSTEM LocalizedqualifiednameoftheLocalSystemaccount(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).
WixQueryOsDriverInfoproperties
WIX_WDDM_DRIVER_PRESENT Setto1ifthevideocarddriveronthetargetmachineisaWDDMdriver.ThispropertyisonlysetonmachinesrunningWindowsVistaorhigher.
WIX_DWM_COMPOSITION_ENABLED Setto1ifthetargetmachinehascompositionenabled.ThispropertyisonlysetonmachinesrunningWindowsVistaorhigher.
PerformanceCounterCustomActionThePerfCounterelement(partofWiXUtilExtension)allowsyoutoregisteryourperformancecounterswiththeWindowsAPI.Thereareseveralpiecesthatallworktogethertosuccessfullyregister:
YourperformanceDLL-TheDLLmustexportOpen,Collect,andClosemethods.SeeMSDNformoredetail.Performanceregistryvalues-TheregistrymustcontainkeyspointingtoyourDLLanditsOpen,Collect,andClosemethods.ThesearecreatedusingtheRegistryelement.PerfmonINIandHtextfiles-ThesecontainthetextdescriptionstodisplayintheUI.SeeMSDNforlodctrdocumentation.ThisMSDNdocumentationisagoodplacetostart.Seebelowforsamplesre-purposedfromMSDN.TheRegisterPerfmoncustomaction-YoucanlinkwiththeWiXUtilExtension.dlltoensurethatthecustomactionsareincludedinyourfinalMSI.SeeUsingStandardCustomActions.Thecustomactioncalls(Un)LoadPerfCounterTextStringstoregisteryourcounterswithWindows�PerfmonAPI.Toinvokethecustomaction,youcreateaPerfCounterelementnestedwithintheFileelementforthePerfmon.INIfile.ThePerfCounterelementcontainsasingleattribute:Name.TheNameattributeshouldmatchthenameintheRegistryandinthe.INIfile.SeebelowforsampleWIXusageofthe<PerfCounter>element.
SampleWIXsourcefragmentandPerfCounter.ini
<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><Fragment><DirectoryRefId="BinDir"><ComponentId="SharedNative"DiskId="1">
<RegistryId="Shared_r1"Root="HKLM"Key="SYSTEM\CurrentControlSet\Services\MyApplication\Performance"Name="Open"Value="OpenPerformanceData"Type="string"/><RegistryId="Shared_r2"Root="HKLM"Key="SYSTEM\CurrentControlSet\Services\MyApplication\Performance"Name="Collect"Value="CollectPerformanceData"Type="string"/><RegistryId="Shared_r3"Root="HKLM"Key="SYSTEM\CurrentControlSet\Services\MyApplication\Performance"Name="Close"Value="ClosePerformanceData"Type="string"/><RegistryId="Shared_r4"Root="HKLM"Key="SYSTEM\CurrentControlSet\Services\MyApplication\Performance"Name="Library"Value="[!PERFDLL.DLL]"Type="string"/>
<FileId="PERFDLL.DLL"Name="MyPerfDll.dll"Source="x86\debug\0\myperfdll.dll"/>
<FileId="PERFCOUNTERS.H"Name="PerfCounters.h"Source="x86\debug\0\perfcounters.h"/><FileId="PERFCOUNTERS.INI"Name="PerfCounters.ini"Source="x86\debug\0\perfcounters.ini"><PerfCounterName="MyApplication"/></File>
</Component></DirectoryRef></Fragment></Wix>
SamplePerfCounters.ini:[info]drivername=MyApplicationsymbolfile=PerfCounters.h
[languages]009=English
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
QuietExecutionCustomActionTheQtExeccustomactionallowsyoutorunanarbitrarycommandlineinanMSI-basedsetupinsilentmode.QtExeciscommonlyusedtosuppressconsolewindowsthatwouldotherwiseappearappearwheninvokingtheexecutabledirectly.ThecustomactionislocatedintheWixCAlibrary,whichisapartoftheWixUtilExtension.
NaminginWiXv3.xandWiXv4.0PriortoWiXv3.10,onlyCAQuietExecandCAQuietExec64areavailable,whichusedthepropertiesQtExecCmdTimeout(usedforboth32-bitand64-bitcustomactions),QtExecCmdLine,andQtExec64CmdLine.
StartinginWiXv3.10,thosesameidentifiersareavailablebutthenew,preferredcustomactionnamesareWixQuietExecandWixQuietExec64withpropertiesnamedWixQuietExecCmdTimeout,WixQuietExec64CmdTimeout,WixQuietExecCmdLine,andWixQuietExec64CmdLine.
InWiXv4.0,onlytheWixQuietExecnameswillbesupported.
TheWixSilentExecactionsintroducedinWiXv3.10alreadysupportthenewnamingscheme.
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.
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.
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=""[#MyExecutable.exe]""Before="QtExecDeferredExampleWithProperty"/><CustomActionId="QtExecDeferredExampleWithProperty"BinaryKey="WixCA"DllEntry="WixQuietExec"Execute="deferred"Return="check"Impersonate="no"/>...<InstallExecuteSequence>
<CustomAction="QtExecDeferredExampleWithProperty"After="TheActionYouWantItAfter"/></InstallExecuteSequence>
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=""[#MyExecutable.exe]""Before="QtExecDeferredExampleWithProperty"/><CustomActionId="QtExecDeferredExampleWithProperty"BinaryKey="WixCA"DllEntry="WixQuietExec64"Execute="deferred"Return="check"Impersonate="no"/>...<InstallExecuteSequence><CustomAction="QtExecExample"After="TheImmediateActionYouWantItAfter"/><CustomAction="QtExecDeferredExampleWithProperty"After="TheDeferredActionYouWantItAfter"/></InstallExecuteSequence>
BuildinganMSIthatusesQtExecInordertouseQtExec,youmustincludeareferencetotheWixUtilExtensionwhenbuildingyourMSI.Todothis,addthecommandlineargument-extWixUtilExtension.dllwhencallingLight.exe.
ShellExecuteCustomActionTheWixShellExeccustomactioninwixca(partofWixUtilExtension)letsyouopendocumentorURLtargetsviatheWindowsshell.AcommonuseistolaunchreadmefilesorURLsusingtheirregistereddefaultapplicationsbasedontheirextension.NotethatWixShellExecutecanonlybeusedasanimmediatecustomactionasitlaunchesanapplicationwithoutwaitingforittoclose.WixShellExecreadsitstargetfromtheWixShellExecTargetproperty,formatsit,andthencallsShellExecutewiththeformattedvalue.Itusesthedefaultverb,whichisusually"open."Formoreinformation,seeShellExecuteFunction.
Forastep-by-stepexampleofhowtousetheShellExecutecustomactiontolaunchaprogramattheendofinstallseetheHowTo:RuntheInstalledApplicationAfterSetuptopic.
WixDirectXExtensionTheWixDirectXExtensionincludesacustomactionnamedWixQueryDirectXCapsthatsetspropertiesyoucanusetochecktheDirectXcapabilitiesoftheinstallinguser'svideocard.
WixDirectXExtensionproperties
WIX_DIRECTX_PIXELSHADERVERSION Pixelshaderversioncapability,expressedasmajor*100+minor.Forexample,ashadermodel3.0-compliantsystemwouldhaveaWIX_DIRECTX_PIXELSHADERVERSIONvalueof300.
WIX_DIRECTX_VERTEXSHADERVERSION Vertexshaderversioncapability,expressedasmajor*100+minor.Forexample,ashadermodel3.0-compliantsystemwouldhaveaWIX_DIRECTX_VERTEXSHADERVERSIONvalueof300.
TousetheWixDirectXExtensionpropertiesinanMSI,usethefollowingsteps:
AddPropertyRefelementsforitemslistedabovethatyouwanttouseinyourMSI.Addthe-ext<pathtoWixDirectXExtension.dll>commandlineparameterwhencallinglight.exetoincludetheWixDirectXExtensionintheMSIlinkingprocess.Or,usinganMSBuild-based.wixprojproject,add<pathtoWixDirectXExtension.dll>totheWixExtensionitemgroup.WhenusingVotiveinVisualStudio,thiscanbedonebyright-clickingontheReferencesnodeinaWiXproject,choosingAddReference...thenbrowsingforWixDirectXExtension.dllandaddingareference.
Forexample:
<PropertyRefId="WIX_DIRECTX_PIXELSHADERVERSION"/>
<CustomActionId="CA_CheckPixelShaderVersion"Error="[ProductName]requirespixelshaderversion3.0orgreater."/>
<InstallExecuteSequence><CustomAction="CA_CheckPixelShaderVersion"After="WixQueryDirectXCaps"><![CDATA[WIX_DIRECTX_PIXELSHADERVERSION<300]]></Custom></InstallExecuteSequence>
<InstallUISequence><CustomAction="CA_CheckPixelShaderVersion"After="WixQueryDirectXCaps"><![CDATA[WIX_DIRECTX_PIXELSHADERVERSION<300]]></Custom></InstallUISequence>
NotethattheWixDirectXExtensionpropertiesaresettothevalueNotSetbydefault.TheWixDirectXExtensioncustomactionisconfiguredtonotfailifitencountersanyerrorswhentryingtodetermineDirectXcapabilities.Inthistypeofscenario,thepropertieswillbesettotheirNotSetdefaultvalues.Inyoursetupauthoring,youcancomparethepropertyvaluestotheNotSetvalueortoaspecificvaluetodeterminewhetherWixDirectXExtensionwasabletoqueryDirectXcapabilitiesandifso,whattheyare.
WixExitEarlyWithSuccessCustomActionTheWixExitEarlyWithSuccesscustomactionisanimmediatecustomactionthatdoesnothingexceptreturnthevalueERROR_NO_MORE_ITEMS.ThisreturnvaluecausesWindowsInstallertoskipallremainingactionsinthe.msiandreturnaprocessexitcodethatindicatesasuccessfulinstallation.
Thiscustomactionisusefulincaseswhereyouwantsetuptoexitwithoutactuallyinstallinganything,butwantittoreturnsuccesstothecallingprocess.Acommonscenariowherethistypeofbehaviorisusefulisinanout-of-orderinstallationscenarioforan.msithatimplementsmajorupgrades.Whenauserhasversion2ofan.msiinstalledandthenattemptstoinstallversion1,thiscustomactioncanbeusedinconjunctionwiththeUpgradetabletodetectthatversion2isalreadyinstalledtocausesetuptoexitwithoutinstallinganythingandreturnsuccess.Ifanyapplicationsredistributeversion1ofthe.msi,theirinstallationprocesseswillcontinuetoworkeveniftheuserhasversion2ofthe.msiinstalledontheirsystem.
Thereare3stepsyouneedtotaketousetheWixExitEarlyWithSuccesscustomactioninyourMSI:
Step1:AddtheWiXutilitiesextensionslibrarytoyourprojectTheWiXsupportforWixExitEarlyWithSuccessisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommandlineyouneedtoaddthefollowingtoyourlightcommandline:
light.exemyproject.wixobj-extWixUtilExtension
IfyouareusingVotiveyoucanaddtheextensionusingtheAddReferencedialog:
1. OpenyourVotiveprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd
Reference...3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog
Step2:AddareferencetotheWixExitEarlyWithSuccesscustomactionToaddareferencetotheWixExitEarlyWithSuccesscustomaction,includethefollowinginyourWiXsetupauthoring:
<CustomActionRefId="WixExitEarlyWithSuccess"/>
ThiswillcauseWiXtoaddtheWixExitEarlyWithSuccesscustomactiontoyourMSI,scheduleitimmediatelyaftertheFindRelatedProductsactionandconditionittoonlyrunifthepropertynamedNEWERVERSIONDETECTEDisset.
Step3:AddlogictodefinetheNEWERVERSIONDETECTEDpropertyattheappropriatetimesInordertocausetheWixExitEarlyWithSuccesstorunatthedesiredtimes,youmustaddlogictoyourinstallertocreatetheNEWERVERSIONDETECTEDproperty.Toimplementthemajorupgradeexampledescribedabove,youcanaddanUpgradeelementlikethefollowing:
<UpgradeId="!(loc.Property_UpgradeCode)"><UpgradeVersionMinimum="$(var.ProductVersion)"OnlyDetect="yes"Property="NEWERVERSIONDETECTED"/></Upgrade>
WixFailWhenDeferredCustomActionWhenauthoringdeferredcustomactions(whicharecustomactionsthatchangethesystemstate)inanMSI,itisnecessarytoalsoprovideanequivalentsetofrollbackcustomactionstoundothesystemstatechangeincasetheMSIfailsandrollsback.TherollbackbehaviortypicallyneedstobehavedifferentlydependingoniftheMSIiscurrentlybeinginstalled,repairedoruninstalled.Thismeansthatthefollowingscenariosneedtobeaccountedforwhencodingandtestingasetofdeferredcustomactionstomakesurethattheyareworkingasexpectedduringbothsuccessandfailurecases:
1. Successfulinstall2. Failedinstall3. Successfulrepair4. Failedrepair5. Successfuluninstall6. Faileduninstall
ThefailurecasesareoftendifficulttosimulatebyunittestingthecustomactioncodedirectlybecausedeferredcustomactioncodetypicallydependsonstateinformationprovidedtoitbyWindowsInstallerduringanactiveinstallationsession.Asaresult,thistypeoftestingusuallyrequiresfaultinjectioninordertocausetherollbackcustomactionstobeexecutedatthepropertimesduringrealinstallationscenarios.
WiXincludesasimpledeferredcustomactionnamedWixFailWhenDeferredtohelpmakeiteasiertotestrollbackcustomactionsinanMSI.WixFailWhenDeferredwillalwaysfailwhenitisexecutedduringtheinstallation,repairoruninstallationofanMSI.AddingtheWixFailWhenDeferredcustomactiontoyourMSIallowsyoutoeasilyinjectafailureintoyourMSIinordertotestyourrollbackcustomactions.
Thereare3stepsyouneedtotaketousetheWixFailWhenDeferredcustomactiontotesttherollbackcustomactionsinyourMSI:
Step1:AddtheWiXutilitiesextensionslibrarytoyourprojectTheWiXsupportforWixFailWhenDeferredisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommandlineyouneedtoaddthefollowingtoyourlightcommandline:
light.exemyproject.wixobj-extWixUtilExtension
IfyouareusingVotiveyoucanaddtheextensionusingtheAddReferencedialog:
1. OpenyourVotiveprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd
Reference...3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog
Step2:AddareferencetotheWixFailWhenDeferredcustomactionToaddareferencetotheWixFailWhenDeferredcustomaction,includethefollowinginyourWiXsetupauthoring:
<CustomActionRefId="WixFailWhenDeferred"/>
ThiswillcauseWiXtoaddtheWixFailWhenDeferredcustomactiontoyourMSI,scheduleitimmediatelybeforetheInstallFinalizeactionandconditionittoonlyrunifthepropertyWIXFAILWHENDEFERRED=1.
Step3:BuildyourMSIandtestvariousscenariosTheWixFailWhenDeferredcustomactionisconditionedtorunonlywhentheWindowsInstallerpublicpropertyWIXFAILWHENDEFERRED=1.AfterbuildingyourMSIwithareferencetotheWixFailWhenDeferredcustomaction,youcanusethefollowingsetofcommandlinestosimulateaseriesofstandardinstallandrollbacktestingscenarios:
1. Standardinstall:msiexec.exe/iMyProduct.msi/qb/l*vx%temp%\MyProductInstall.log
2. Installrollback:msiexec.exe/iMyProduct.msi/qb/l*vx%temp%\MyProductInstallFailure.logWIXFAILWHENDEFERRED=1
3. Standardrepair:msiexec.exe/fvecmusMyProduct.msi/qb/l*vx%temp%\MyProductRepair.log
4. Repairrollback:msiexec.exe/fvecmusMyProduct.msi/qb/l*vx%temp%\MyProductRepairFailure.logWIXFAILWHENDEFERRED=1
5. Standarduninstall:msiexec.exe/xMyProduct.msi/qb/l*vx%temp%\MyProductUninstall.log
6. Uninstallrollback:msiexec.exe/xMyProduct.msi/qb/l*vx%temp%\MyProductUninstallFailure.logWIXFAILWHENDEFERRED=1
WixGamingExtensionTheWixGamingExtensionletsyouregisteryourapplicationasagameinWindowsVistaandlater,inthreemaincategories:
GameExplorerintegrationwithgamedefinitionfileGameExplorertasksRichsaved-gamepreview
GameExplorerintegrationForanoverviewofGameExplorer,seeGettingStartedWithGameExplorer.GameExplorerreliesonanembeddedfile(gamedefinitionfileorGDF)tocontrolthedatadisplayedaboutthegame.FordetailsaboutGDFs,seeTheGame-Definition-File(GDF)SchemaandGDFDeliveryandLocalization.UsingWixGamingExtension,youregisteragamewithGameExplorerusingtheGameelementasachildofyourgameexecutable'sFileelement:
<FileId="MyGameExeFile"Name="passenger_simulator.exe"KeyPath="yes"><gaming:GameId="985D5FD3-FC40-4CE9-9EE5-F2AAAB959230">...</File>
TheGame/@IdattributeisusedastheInstanceIDattributediscussedhere,ratherthangeneratingnewGUIDsatinstalltime,whichwouldrequirepersistingthegeneratedGUIDandloadingitforuninstallandmaintenancemode.
Implementationnote:UsingtheGameelementaddsarowtoacustomtableinyour.msipackageandschedulestheGamingcustomaction;atinstalltime,thatcustomactionadds/updates/removesthegameinGameExplorerandforoperatingsystemupgrades.(SeeSupportinganUpgradefromWindowsXPtoWindowsVistafordetails.)
GameExplorertasksInGameExplorer,agame'scontextmenuincludescustomtasks:
Playtasksstartthegamewithoptionalarguments.Supporttasksstarttheuser'sdefaultbrowsertogotoaspecificURL.
Fordetails,seeGameExplorerTasks.InWixGameExtension,PlayTaskandSupportTaskarechildelementsoftheGameelement:
<FileId="MyGameExeFile"Name="passenger_simulator.exe"KeyPath="yes"><gaming:GameId="985D5FD3-FC40-4CE9-9EE5-F2AAAB959230"><gaming:PlayTaskName="Play"Arguments="-go"/><gaming:SupportTaskName="Help!"Address="http://example.com"/>......</File>
Fordetails,seetheGamingschemadocumentation.
Implementationnote:GameExplorertasksareshortcuts,sotheGamingcompilerextensiontranslatesthePlayTaskintorowsinShortcutsandSupportTaskintoWixUtilExtensionInternetShortcuts.Italsocreatesdirectoriestoholdtheshortcutsandcustomactionstosetthedirectories.
Richsaved-gamepreviewWindowsVistaincludesashellhandlerthatletsgamesexposemetadataintheirsaved-gamefiles.Fordetails,seeRichSavedGames.Ifyourgamesupportsrichsavedgames,youcanregisteritfortherichsaved-gamepreviewusingtheWixGamingExtensionIsRichSavedGameattributeontheExtensionelement:
<ProgIdId="MyGameProgId"><ExtensionId="MyGameSave"gaming:IsRichSavedGame="yes"/></ProgId>
Implementationnote:TheGamingcompilerextensiontranslatestheIsRichSavedGameattributetorowsintheMSIRegistrytable.
WixNetfxExtensionTheWixNetfxExtensionincludesasetofcustomactionstocompilenativeimagesusingNgen.exe.Foranexample,seeHowTo:NGenmanagedassembliesduringinstallation.
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.
NetFx461Web .NetFramework4.6.1websetup.
NetFx461Redist .NetFramework4.6.1standalonesetup.
NetFx462Web .NetFramework4.6.2websetup.
NetFx462Redist .NetFramework4.6.2standalonesetup.
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
.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
NETFRAMEWORKINSTALLROOTDIR Settotherootinstallationdirectoryforallversionsofthe.NETFramework(%windir%\Microsoft.NET\Framework\).
Hereisacompletelistofpropertiesforthe.NETFramework1.0productfamily:
Propertyname Meaning
NETFRAMEWORK10 Setto3321-3705ifthe.NETFramework1.0isinstalled(notsetotherwise).
NETFRAMEWORK10INSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework1.0(%windir%\Microsoft.NET\Framework\v1.0.3705).
Hereisacompletelistofpropertiesforthe.NETFramework1.1productfamily:
Propertyname Meaning
NETFRAMEWORK11 Setto#1ifthe.NETFramework1.1isinstalled(notsetotherwise).
NETFRAMEWORK11_SP_LEVEL Indicatestheservicepacklevelforthe.NETFramework1.1.
NETFRAMEWORK11INSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework1.1(%windir%\Microsoft.NET\Framework\v1.1.4322).
NETFRAMEWORK11_ZH_CN_LANGPACK Setto#1ifthe.NETFramework1.1Chinese(Simplified)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_ZH_TW_LANGPACK Setto#1ifthe.NETFramework1.1Chinese(Traditional)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_CS_CZ_LANGPACK Setto#1ifthe.NETFramework1.1Czechlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_DA_DK_LANGPACK Setto#1ifthe.NETFramework1.1Danishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_NL_NL_LANGPACK Setto#1ifthe.NETFramework1.1Dutchlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_FI_FI_LANGPACK Setto#1ifthe.NETFramework1.1Finnishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_FR_FR_LANGPACK Setto#1ifthe.NETFramework1.1Frenchlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_DE_DE_LANGPACK Setto#1ifthe.NETFramework1.1Germanlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_EL_GR_LANGPACK Setto#1ifthe.NETFramework1.1Greeklanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_HU_HU_LANGPACK Setto#1ifthe.NETFramework1.1Hungarianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_IT_IT_LANGPACK Setto#1ifthe.NETFramework1.1Italianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_JA_JP_LANGPACK Setto#1ifthe.NETFramework1.1Japaneselanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_KO_KR_LANGPACK Setto#1ifthe.NETFramework1.1Korean
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).
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
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
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).
NETFRAMEWORK30_CS_CZ_LANGPACK Setto#1ifthe.NETFramework3.0Czechlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_DA_DK_LANGPACK Setto#1ifthe.NETFramework3.0Danishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_NL_NL_LANGPACK Setto#1ifthe.NETFramework3.0Dutchlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_FI_FI_LANGPACK Setto#1ifthe.NETFramework3.0Finnishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_FR_FR_LANGPACK Setto#1ifthe.NETFramework3.0Frenchlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_DE_DE_LANGPACK Setto#1ifthe.NETFramework3.0Germanlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_EL_GR_LANGPACK Setto#1ifthe.NETFramework3.0Greeklanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_HU_HU_LANGPACK Setto#1ifthe.NETFramework3.0Hungarianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_IT_IT_LANGPACK Setto#1ifthe.NETFramework3.0Italianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_JA_JP_LANGPACK Setto#1ifthe.NETFramework3.0Japaneselanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_KO_KR_LANGPACK Setto#1ifthe.NETFramework3.0Koreanlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_NB_NO_LANGPACK Setto#1ifthe.NETFramework3.0Norwegianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_PL_PL_LANGPACK Setto#1ifthe.NETFramework3.0Polishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_PT_BR_LANGPACK Setto#1ifthe.NETFramework3.0Portuguese(Brazil)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_PT_PT_LANGPACK Setto#1ifthe.NETFramework3.0Portuguese(Portugal)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_RU_RU_LANGPACK Setto#1ifthe.NETFramework3.0Russianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_ES_ES_LANGPACK Setto#1ifthe.NETFramework3.0Spanishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_SV_SE_LANGPACK Setto#1ifthe.NETFramework3.0Swedishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_TR_TR_LANGPACK Setto#1ifthe.NETFramework3.0Turkishlanguagepackisinstalled(notsetotherwise).
Hereisacompletelistofpropertiesforthe.NETFramework3.5productfamily:
Propertyname Meaning
NETFRAMEWORK35 Setto#1ifthe.NETFramework3.5isinstalled(notsetotherwise).
NETFRAMEWORK35_SP_LEVEL Indicatestheservicepacklevelforthe.NETFramework3.5.
NETFRAMEWORK35INSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework3.5(%windir%\Microsoft.NET\Framework\v3.5).
NETFRAMEWORK35INSTALLROOTDIR64 Settotheinstallationdirectoryforthe64-bit.NETFramework3.5(%windir%\Microsoft.NET\Framework64\v3.5).
NETFRAMEWORK35_ZH_CN_LANGPACK Setto#1ifthe.NETFramework3.5Chinese(Simplified)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_ZH_TW_LANGPACK Setto#1ifthe.NETFramework3.5Chinese(Traditional)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_CS_CZ_LANGPACK Setto#1ifthe.NETFramework3.5Czechlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_DA_DK_LANGPACK Setto#1ifthe.NETFramework3.5Danishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_NL_NL_LANGPACK Setto#1ifthe.NETFramework3.5Dutchlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_FI_FI_LANGPACK Setto#1ifthe.NETFramework3.5Finnishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_FR_FR_LANGPACK Setto#1ifthe.NETFramework3.5Frenchlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_DE_DE_LANGPACK Setto#1ifthe.NETFramework3.5Germanlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_EL_GR_LANGPACK Setto#1ifthe.NETFramework3.5Greeklanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_HU_HU_LANGPACK Setto#1ifthe.NETFramework3.5Hungarianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_IT_IT_LANGPACK Setto#1ifthe.NETFramework3.5Italianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_JA_JP_LANGPACK Setto#1ifthe.NETFramework3.5Japaneselanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_KO_KR_LANGPACK Setto#1ifthe.NETFramework3.5Koreanlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_NB_NO_LANGPACK Setto#1ifthe.NETFramework3.5Norwegianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_PL_PL_LANGPACK Setto#1ifthe.NETFramework3.5Polishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_PT_BR_LANGPACK Setto#1ifthe.NETFramework3.5Portuguese(Brazil)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_PT_PT_LANGPACK Setto#1ifthe.NETFramework3.5Portuguese(Portugal)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_RU_RU_LANGPACK Setto#1ifthe.NETFramework3.5Russianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_ES_ES_LANGPACK Setto#1ifthe.NETFramework3.5Spanishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_SV_SE_LANGPACK Setto#1ifthe.NETFramework3.5Swedishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_TR_TR_LANGPACK Setto#1ifthe.NETFramework3.5Turkishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_CLIENT Setto#1ifthe.NETFramework3.5clientprofileisinstalled(notsetotherwise).
NETFRAMEWORK35_CLIENT_SP_LEVEL Indicatestheservicepacklevelforthe.NETFramework3.5clientprofile.
Hereisacompletelistofpropertiesforthe.NETFramework4.0productfamily:
Propertyname Meaning
NETFRAMEWORK40FULL Setto#1ifthe.NETFramework4.0fullisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_SERVICING_LEVEL Indicatestheservicepacklevelforthe.NETFramework4.0full.ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULLINSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework4.0full(%windir%\Microsoft.NET\Framework\v4.0).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULLINSTALLROOTDIR64 Settotheinstallationdirectoryforthe64-bit.NETFramework4.0full
(%windir%\Microsoft.NET\Framework64\v4.0).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_AR_SA_LANGPACK Setto#1ifthe.NETFramework4.0fullArabiclanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_ZH_CN_LANGPACK Setto#1ifthe.NETFramework4.0fullChinese(Simplified)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_ZH_TW_LANGPACK Setto#1ifthe.NETFramework4.0fullChinese(Traditional)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_CS_CZ_LANGPACK Setto#1ifthe.NETFramework4.0fullCzechlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_DA_DK_LANGPACK Setto#1ifthe.NETFramework4.0fullDanishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_NL_NL_LANGPACK Setto#1ifthe.NETFramework4.0fullDutchlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_FI_FI_LANGPACK Setto#1ifthe.NETFramework4.0fullFinnishlanguagepackisinstalled(notsetotherwise).Thispropertyisavailablestarting
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.
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
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
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.
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
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.
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.
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
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
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.
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
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.
WINDOWSSDK61DIR ThelocationoftheWindowsSDK6.1installationroot.
WINDOWSSDK70ADIR ThelocationoftheWindowsSDK7.0ainstallationroot.ThispropertyisavailablestartingwithWiXv3.5.
UsingWixNetfxExtensionPropertiesTousetheWixNetfxExtensionpropertiesinanMSI,usethefollowingsteps:
AddPropertyRefelementsforitemslistedabovethatyouwanttouseinyourMSI.Addthe-ext<pathtoWixNetfxExtension.dll>commandlineparameterwhencallinglight.exetoincludetheWixNetfxExtensionintheMSIlinkingprocess.
Forexample:
<PropertyRefId="NETFRAMEWORK20"/>
WixBroadcastSettingChangeandWixBroadcastEnvironmentChangeCustomActionsTheWixBroadcastSettingChangeandWixBroadcastEnvironmentChangecustomactionsareimmediatecustomactionsthatsendaWM_SETTINGCHANGEmessagetoalltop-levelwindowsindicatingthatsettingshavechanged.WixBroadcastSettingChangeindicatesthatunspecifiedsettingshavechanged.WixBroadcastEnvironmentChangeindicatesthatenvironmentvariableshavechanged.
OtherprogramscanlistenforWM_SETTINGCHANGEandupdateanyinternalstatewiththenewsetting.
WindowsInstalleritselfsendstheWM_SETTINGCHANGEmessageforsettingsitchangeswhileprocessinganMSIpackagebutcannotdosoforchangesapackagemakesviacustomaction.Also,WindowsInstallerdoesnotsendWM_SETTINGCHANGEforenvironmentvariablechangeswhenarebootispending.
TherearetwostepsyouneedtotaketousetheWixBroadcastSettingChangeorWixBroadcastEnvironmentChangecustomactionsinyourMSIpackage:
Step1:AddtheWiXutilitiesextensionslibrarytoyourprojectWixBroadcastSettingChangeandWixBroadcastEnvironmentChangeareincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommandlineyouneedtoaddthefollowingtoyourlightcommandline:
light.exemyproject.wixobj-extWixUtilExtension
IfyouareusingVotiveyoucanaddtheextensionusingtheAddReferencedialog:
1. OpenyourVotiveprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd
Reference...3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog
Step2:AddareferencetotheWixBroadcastSettingChangeorWixBroadcastEnvironmentChangecustomactionsToaddareferencetotheWixBroadcastSettingChangeorWixBroadcastEnvironmentChangecustomactions,includeoneofthefollowingelementsinyourWiXsetupauthoring:
<CustomActionRefId="WixBroadcastSettingChange"/><CustomActionRefId="WixBroadcastEnvironmentChange"/>
ThiswillcauseWiXtoaddthecustomactiontoyourMSIandscheduleitimmediatelyaftertheInstallFinalizestandardaction.
WixVSExtensionTheWixVSExtensionincludesasetofcustomactionstomanagehelpcollections.ItalsoincludesasetofpropertiesandcustomactionsthatcanbeusedtodetectthepresenceofvariousversionsofVisualStudioandregisteradd-ins,projecttemplatesanditemtemplatesforuseinVisualStudio.
PropertiesVisualStudio.NET2003VisualStudio2005VisualStudio2008VisualStudio2010VisualStudio2012VisualStudio2013VisualStudio2015VisualStudio2017
CustomActions
PropertiesHereisacompletelistofpropertiesfortheVisualStudio.NET2003productfamily:
Propertyname Meaning
VS2003DEVENV Fullpathtodevenv.exeforVisualStudio.NET2003ifitisinstalledonthesystem.
JSHARP_REDIST_11_INSTALLED IndicateswhetherornottheJ#redistributablepackage1.1isinstalledonthesystem.
HereisacompletelistofpropertiesfortheVisualStudio2005productfamily:
Propertyname Meaning
VS2005DEVENV Fullpathtodevenv.exeforVisualStudio2005ifitisinstalledonthesystem.
VS2005_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2005itemtemplatesdirectory.
VS2005_PROJECTTEMPLATES_DIR Fullpathtothe
VisualStudio2005projecttemplatesdirectory.
VS2005_SCHEMAS_DIR FullpathtotheVisualStudio2005XMLschemasdirectory.
VS2005PROJECTAGGREGATOR2 IndicateswhetherornottheVisualStudio2005projectaggregatorformanagedcodeadd-insisinstalledonthesystem.
VS2005_ROOT_FOLDER FullpathtotheVisualStudio2005rootinstallationdirectory.
VB2005EXPRESS_IDE Fullpathtovbexpress.exeifVisualBasic2005ExpressEditionisinstalledonthesystem.
VS2005_IDE_VB_PROJECTSYSTEM_INSTALLED Indicates
whetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualBasicprojectsystemisinstalledforit.
VC2005EXPRESS_IDE Fullpathtovcexpress.exeifVisualC++2005ExpressEditionisinstalledonthesystem.
VS2005_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualC++projectsystemisinstalledforit.
VCSHARP2005EXPRESS_IDE Fullpathtovcsexpress.exeifVisualC#2005ExpressEditionisinstalledonthesystem.
VS2005_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualC#projectsystemisinstalledforit.
VJSHARP2005EXPRESS_IDE Fullpathtovjsexpress.exeifVisualJ#2005ExpressEditionisinstalledonthesystem.
VS2005_IDE_VJSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualJ#projectsystemisinstalledforit.
VWD2005EXPRESS_IDE Fullpathtovwdexpress.exeifVisualWebDeveloper2005ExpressEditionisinstalledonthesystem.
VS2005_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.
VS2005_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudioTeamTestprojectsystemisinstalledonthesystem.
VSEXTENSIONS_FOR_NETFX30_INSTALLED IndicateswhetherornottheVisualStudio2008DevelopmentToolsforthe.NETFramework3.0add-inforVisualStudio2005isinstalledonthesystem.
VS2005_WAP_PROJECT_INSTALLED IndicateswhetherornottheWebApplication
ProjecttemplateforVisualStudio2005isinstalledonthesystem.Thisprojecttemplateisavailableasastandaloneadd-inandasapartofvisualStudio2005SP1.
VS2005_SP_LEVEL IndicatestheservicepacklevelforVisualStudio2005StandardEditionandhigher.
VSTF2005_SP_LEVEL IndicatestheservicepacklevelforVisualStudio2005TeamFoundation.
VB2005EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualBasic2005ExpressEdition.
VC2005EXPRESS_SP_LEVEL Indicatestheservicepack
levelforVisualC++2005ExpressEdition.
VCSHARP2005EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualC#2005ExpressEdition.
VJSHARP2005EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualJ#2005ExpressEdition.
VWD2005EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualWebDeveloper2005ExpressEdition.
DEXPLORE_2005_INSTALLED IndicateswhetherornottheDocumentExplorer2005runtimecomponentspackageisinstalledonthesystem.
JSHARP_REDIST_20_INSTALLED Indicates
whetherornottheJ#redistributablepackage2.0isinstalledonthesystem.
JSHARP_REDIST_20SE_INSTALLED IndicateswhetherornottheJ#redistributablepackage2.0secondeditionisinstalledonthesystem.
HereisacompletelistofpropertiesfortheVisualStudio2008productfamily:
Propertyname Meaning
VS90DEVENV Fullpathtodevenv.exeforVisualStudio2008ifitisinstalledonthesystem.
VS90_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2008itemtemplatesdirectory.
VS90_PROJECTTEMPLATES_DIR FullpathtotheVisualStudio2008project
templatesdirectory.
VS90_SCHEMAS_DIR FullpathtotheVisualStudio2008XMLschemasdirectory.
VS90_ROOT_FOLDER FullpathtotheVisualStudio2008rootinstallationdirectory.
VB90EXPRESS_IDE Fullpathtovbexpress.exeifVisualBasic2008ExpressEditionisinstalledonthesystem.
VS90_IDE_VB_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2008StandardEditionorhigherisinstalledandtheVisualBasicprojectsystemisinstalledforit.
VC90EXPRESS_IDE Fullpathtovcexpress.exeifVisualC++
2008ExpressEditionisinstalledonthesystem.
VS90_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2008StandardEditionorhigherisinstalledandtheVisualC++projectsystemisinstalledforit.
VCSHARP90EXPRESS_IDE Fullpathtovcsexpress.exeifVisualC#2008ExpressEditionisinstalledonthesystem.
VS90_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2008StandardEditionorhigherisinstalledandtheVisualC#projectsystemisinstalledforit.
VWD90EXPRESS_IDE Fullpathtovwdexpress.exe
ifVisualWebDeveloper2008ExpressEditionisinstalledonthesystem.
VS90_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2008StandardEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.
VS90_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudioTeamTestprojectsystemisinstalledonthesystem.
VS90_BOOTSTRAPPER_PACKAGE_FOLDER ThelocationoftheVisualStudio2008bootstrapperpackagefolder.
VS90_SP1 Indicateswhetherornotservicepack1forVisual
Studio2008StandardEditionandhigherisinstalled.
VB90EXPRESS_SP1 Indicateswhetherornotservicepack1forVisualBasic2008ExpressEditionisinstalled.
VC90EXPRESS_SP1 Indicateswhetherornotservicepack1forVisualC++2008ExpressEditionisinstalled.
VCSHARP90EXPRESS_SP1 Indicateswhetherornotservicepack1forVisualC#2008ExpressEditionisinstalled.
VWD90EXPRESS_SP1 Indicateswhetherornotservicepack1forVisualWebDeveloper2008ExpressEditionisinstalled.
DEXPLORE_2008_INSTALLED IndicateswhetherornottheDocumentExplorer2008runtimecomponentspackageisinstalledonthesystem.
HereisacompletelistofpropertiesfortheVisualStudio2010productfamily:
Propertyname Meaning
VS2010DEVENV Fullpathtodevenv.exeforVisualStudio2010ifitisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2010itemtemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_PROJECTTEMPLATES_DIR Fullpathtothe
VisualStudio2010projecttemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_SCHEMAS_DIR FullpathtotheVisualStudio2010XMLschemasdirectory.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_ROOT_FOLDER FullpathtotheVisualStudio2010rootinstallationdirectory.ThispropertyisavailablestartingwithWiXv3.5.
VB2010EXPRESS_IDE Fullpathtovbexpress.exeifVisualBasic2010ExpressEditionisinstalledonthesystem.Thispropertyisavailable
startingwithWiXv3.5.
VS2010_IDE_VB_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2010StandardEditionorhigherisinstalledandtheVisualBasicprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.5.
VC2010EXPRESS_IDE Fullpathtovcexpress.exeifVisualC++2010ExpressEditionisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2010StandardEditionorhigherisinstalledandtheVisualC++
projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.5.
VCSHARP2010EXPRESS_IDE Fullpathtovcsexpress.exeifVisualC#2010ExpressEditionisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2010StandardEditionorhigherisinstalledandtheVisualC#projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.5.
VWD2010EXPRESS_IDE Fullpathtovwdexpress.exeifVisualWebDeveloper2010
ExpressEditionisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2010StandardEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.5.
VPD2010EXPRESS_IDE Fullpathtovpdexpress.exeifVisualStudio2010ExpressforWindowsPhoneisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_IDE_VSTS_TESTSYSTEM_INSTALLED Indicates
whetherornottheVisualStudio2010TeamTestprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_IDE_DB_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010Databaseprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_IDE_VSD_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010Deploymentprojectsystem(setupproject)isinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_IDE_WIX_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010WindowsInstallerXMLprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_IDE_MODELING_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010Modelingprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_IDE_FSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010F#projectsystemisinstalledonthesystem.Thispropertyisavailablestartingwith
WiXv3.5.
VS2010_BOOTSTRAPPER_PACKAGE_FOLDER ThelocationoftheVisualStudio2010bootstrapperpackagefolder.ThispropertyisavailablestartingwithWiXv3.5.
HereisacompletelistofpropertiesfortheVisualStudio2012productfamily:
Propertyname Meaning
VS2012DEVENV Fullpathtodevenv.exeforVisualStudio2012ifitisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.
VS2012_EXTENSIONS_DIR FullpathtotheVisualStudio2012extensionsdirectory.ThispropertyisavailablestartingwithWiXv3.6.
VS2012_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2012itemtemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.6.
VS2012_PROJECTTEMPLATES_DIR FullpathtotheVisualStudio2012projecttemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.6.
VS2012_SCHEMAS_DIR FullpathtotheVisualStudio2012XMLschemasdirectory.ThispropertyisavailablestartingwithWiXv3.6.
VS2012_ROOT_FOLDER FullpathtotheVisualStudio2012rootinstallationdirectory.Thispropertyisavailable
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
higherisinstalledandtheVisualC#projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.6.
VWD2012EXPRESS_IDE Fullpathtovwdexpress.exeifVisualStudioExpress2012forWebisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.
VPD2012EXPRESS_IDE Fullpathtovpdexpress.exeifVisualStudio2012ExpressforWindowsPhoneisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.
VS2012_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2012
ProfessionalEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.6.
VS2012_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2012TeamTestprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.
VS2012_IDE_DB_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2012Databaseprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.
VS2012_IDE_WIX_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheWindowsInstallerXMLprojectsystemisinstalledonthesystemforVisualStudio2012.ThispropertyisavailablestartingwithWiXv3.6.
VS2012_IDE_MODELING_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2012Modelingprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.6.
VS2012_IDE_FSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2012F#projectsystemisinstalledonthesystem.Thispropertyisavailablestartingwith
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
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
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
ifVisualStudioExpress2013forWebisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.8.
VS2013WINEXPRESS_IDE Fullpathtovswinexpress.exeifVisualStudioExpress2013forWindowsisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.8.
VS2013WDEXPRESS_IDE Fullpathtowdexpress.exeifVisualStudioExpress2013forWindowsDesktopisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.8.
VPD2013EXPRESS_IDE Fullpathtovpdexpress.exeifVisualStudio2013ExpressforWindowsPhoneisinstalledonthesystem.This
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
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
VS2015DEVENV Fullpathtodevenv.exeforVisualStudio2015ifitisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.10.
VS2015_EXTENSIONS_DIR FullpathtotheVisualStudio2015extensionsdirectory.ThispropertyisavailablestartingwithWiXv3.10.
VS2015_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2015itemtemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.10.
VS2015_PROJECTTEMPLATES_DIR Fullpathto
theVisualStudio2015projecttemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.10.
VS2015_SCHEMAS_DIR FullpathtotheVisualStudio2015XMLschemasdirectory.ThispropertyisavailablestartingwithWiXv3.10.
VS2015_ROOT_FOLDER FullpathtotheVisualStudio2015rootinstallationdirectory.ThispropertyisavailablestartingwithWiXv3.10.
VS2015_IDE_VB_PROJECTSYSTEM_INSTALLED IndicateswhetherVisual
Studio2015ProfessionalEditionorhigherisinstalledandtheVisualBasicprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.10.
VS2015_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2015ProfessionalEditionorhigherisinstalledandtheVisualC++projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.10.
VS2015_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2015
ProfessionalEditionorhigherisinstalledandtheVisualC#projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.10.
VS2015_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2015ProfessionalEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.10.
VS2015_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisual
Studio2015TeamTestprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.10.
VS2015_IDE_MODELING_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2015Modelingprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.10.
VS2015_IDE_FSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2015F#projectsystemisinstalledonthesystem.This
propertyisavailablestartingwithWiXv3.10.
VS2015_BOOTSTRAPPER_PACKAGE_FOLDER ThelocationoftheVisualStudio2015bootstrapperpackagefolder.ThispropertyisavailablestartingwithWiXv3.10.
HereisacompletelistofpropertiesfortheVisualStudio2017productfamily:
Propertyname Meaning
VS2017DEVENV Fullpathtodevenv.exeforVisualStudio2017ifitisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.11.
VS2017_EXTENSIONS_DIR FullpathtotheVisualStudio2017
extensionsdirectory.ThispropertyisavailablestartingwithWiXv3.11.
VS2017_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2017itemtemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.11.
VS2017_PROJECTTEMPLATES_DIR FullpathtotheVisualStudio2017projecttemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.11.
VS2017_SCHEMAS_DIR FullpathtotheVisualStudio2017XMLschemasdirectory.
ThispropertyisavailablestartingwithWiXv3.11.
VS2017_ROOT_FOLDER FullpathtotheVisualStudio2017rootinstallationdirectory.ThispropertyisavailablestartingwithWiXv3.11.
VS2017_IDE_DIR FullpathtotheVisualStudio2017directorycontainingdevenv.exe.ThispropertyisavailablestartingwithWiXv3.11.
VS2017_IDE_VB_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2017ProfessionalEditionorhigherisinstalledand
theVisualBasicprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.11.
VS2017_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2017ProfessionalEditionorhigherisinstalledandtheVisualC++projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.11.
VS2017_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2017ProfessionalEditionorhigherisinstalledandtheVisual
C#projectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.11.
VS2017_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2017ProfessionalEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.11.
VS2017_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2017TeamTestprojectsystemisinstalledon
thesystem.ThispropertyisavailablestartingwithWiXv3.11.
VS2017_IDE_MODELING_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2017Modelingprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.11.
VS2017_IDE_FSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2017F#projectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.11.
VS2017_BOOTSTRAPPER_PACKAGE_FOLDER ThelocationoftheVisualStudio2017bootstrapperpackagefolder.ThispropertyisavailablestartingwithWiXv3.11.
CustomActionsHereisacompletelistofcustomactions:
Customactionname Meaning
VS2003Setup Runsdevenv.exe/setupifaVisualStudio.NET2003editionisfoundonthesystem.
VS2005Setup Runsdevenv.exe/setupifVisualStudio2005StandardEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2005DEVENVproperty.
VS2005InstallVSTemplates Runsdevenv.exe/InstallVSTemplatesifVisualStudio2005StandardEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2005DEVENVproperty.
VB2005Setup Runsvbexpress.exe/setupifVisualBasic2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVB2005EXPRESS_IDEproperty.
VB2005InstallVSTemplates Runsvbexpress.exe
/InstallVSTemplatesifVisualBasic2005ExpressEditionisfoundonthesystem.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
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
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
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
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
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
/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.
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.
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.
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.
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
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
VS2013DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.10.
VS2015InstallVSTemplates Runsdevenv.exe/InstallVSTemplatesifVisualStudio2015ProfessionalEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2013DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.10.
VS2017Setup Runsdevenv.exe/setupifVisualStudio2017CommunityEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2017DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.11.
VS2017InstallVSTemplates Runsdevenv.exe/InstallVSTemplatesifVisualStudio2017CommunityEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2017DEVENVproperty.ThiscustomactionisavailablestartingwithWiXv3.11.
UsingWixVSExtensionPropertiesorCustomActionsTousetheWixVSExtensionpropertiesorcustomactionsinanMSI,usethefollowingsteps:
AddPropertyReforCustomActionRefelementsforitemslistedabovethatyouwanttouseinyourMSI.Addthe-ext<pathtoWixVSExtension.dll>commandlineparameterwhencallinglight.exetoincludetheWixVSExtensionintheMSIlinkingprocess.
Forexample:
<PropertyRefId="VS2005_ROOT_FOLDER"/><CustomActionRefId="VS2005Setup"/>
Whenyoureferenceanyoftheabovepropertiesorcustomactions,theWixVSExtensionautomaticallyschedulesthecustomactionsandpullsinpropertiesusedinthecustomactionconditionsandexecutionlogic.
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.
Step1:AddtheWiXutilitiesextensionslibrarytoyourprojectTheWiXsupportforWixWaitForEventisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommandlineyouneedtoaddthefollowingtoyourlightcommandline:
light.exemyproject.wixobj-extWixUtilExtension
IfyouareusingVotiveyoucanaddtheextensionusingtheAddReferencedialog:
1. OpenyourVotiveprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd
Reference...3. SelecttheWixUtilExtension.dllassemblyfromthelistandclickAdd4. ClosetheAddReferencedialog
Step2:AddareferencetotheWixWaitForEventcustomactionToaddareferencetotheWixWaitForEventimmediatecustomaction,includethefollowinginyourWiXsetupauthoring:
<CustomActionRefId="WixWaitForEvent"/>
ThiswillcauseWiXtoaddtheWaitWaitForEventcustomactiontoyourMSIasanimmediatecustomactionscheduledimmediatelybeforeInstallFinalize.Thiswillblocktheinstallationafterscriptgeneration.Youcanscheduleitanywhereelseinyoursequence.
ToaddareferencetotheWixWaitForEventDeferreddeferredcustomaction,includethefollowinginyourWiXsetupauthoring:
<CustomActionRefId="WixWaitForEventDeferred"/>
ThisdeferredcustomactionisscheduledimmediatelyafterInstallInitializesoitwillblockafterstartingscriptexecution.Youcanschedulethiscustomactionanywhereelseinyoursequenceaswell.
Youcanschedulebothcustomactionsinthesamepackage,butyouwillneedtosignaleitherofthenamedautomaticreseteventsdocumentedabovebothtimes.
Step3:BuildyourMSIandtestvariousscenariosOnceyou'vebuiltyourMSIpackageyoucaninstallitusingmsiexec.exe,Burn,orbyanyothermeansyouwish.WhenWindowsInstallerexecutesyourcustomaction,WindowsInstallerwillwaitforyoutosignaleithertheeventdocumentedabove.Dependingonthenamedeventyousignal,thecustomactionwillfailorsucceedcausingtheMSIorMSPpackagetofailorsucceed.
UsingPatchCreationPropertiesApatchcontainsthedifferencesbetweenoneormorepairsofWindowsInstallerpackages.ThetoolPatchWiz.dllintheWindowsSDKcomparespairsofpackagesandproducesapatchusingafilecalledaPatchCreationProperties(PCP)file.
ItisrecommendedthatyoudownloadthelatestWindowsSDKtogetthenewesttoolsforbuildingpatches.
SettingUptheSampleAPatchCreationProperties(PCP)fileinstructsPatchWiz.dlltogenerateapatchfromdifferencesinoneormorepairsofpackages.Apatchcontainsthedifferencesbetweenthetargetandupgradepackages,andwilltransformthetargetpackagetotheupgradepackage.Boththetargetandupgradepackagesarecreatedbelow.
Createadirectorythatwillcontainthesample
Createadirectoryfromwhichyouplanonrunningthesample.Thiswillbethesampleroot.
mdC:\sample
Createtwosubdirectories
Underthesamplerootcreatetwosubdirectoriescalled"1.0"and"1.1".
mdC:\sample\1.0mdC:\sample\1.1
CreateatextfilecalledSample.txtfor1.0
Createatextfileinthe"1.0"directorycalledSample.txtandputsometextinittellingyouthatitisthe1.0versionofthefile.
echoThisisversion1.0>C:\sample\1.0\Sample.txt
CreateatextfilecalledSample.txtfor1.1
Createatextfileinthe"1.1"directorycalledSample.txtandputsometextinittellingyouthatitisthe1.1versionofthefile.
echoThisisversion1.1>C:\sample\1.1\Sample.txt
Createyourproductauthoringinthesamplerootfolder
CreateyourproductauthoringinthesamplerootfoldercalledProduct.wxswiththefollowingcontents:
<?xmlversion="1.0"encoding="UTF-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><ProductId="48C49ACE-90CF-4161-9C6E-9162115A54DD"Name="WiXPatchExampleProduct"Language="1033"Version="1.0.0"Manufacturer="DynamoCorporation"UpgradeCode="48C49ACE-90CF-4161-9C6E-9162115A54DD"><PackageDescription="Installsafilethatwillbepatched."Comments="ThisProductdoesnotinstallanyexecutables"InstallerVersion="200"Compressed="yes"/>
<MediaId="1"Cabinet="product.cab"EmbedCab="yes"/><FeatureRefId="SampleProductFeature"/></Product>
<Fragment><FeatureId="SampleProductFeature"Title="SampleProductFeature"Level="1"><ComponentRefId="SampleComponent"/></Feature></Fragment>
<Fragment><DirectoryRefId="SampleProductFolder"><ComponentId="SampleComponent"Guid="{C28843DA-EF08-41CC-BA75-D2B99D8A1983}"DiskId="1"><FileId="SampleFile"Name="Sample.txt"Source=".\$(var.Version)\Sample.txt"/></Component></DirectoryRef></Fragment>
<Fragment><DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"Name="PFiles">
<DirectoryId="SampleProductFolder"Name="PatchSampleDirectory"></Directory></Directory></Directory></Fragment></Wix>
Createyourpatchauthoringinthesampleroot
CreateyourPatchCreationProperties(PCP)authoringinthesamplerootcalledPatch.wxswiththefollowingcontent:
<?xmlversion="1.0"encoding="utf-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><PatchCreationId="224C316C-5894-4771-BABF-21A3AC1F75FF"CleanWorkingFolder="yes"OutputPath="patch.pcp"WholeFilesOnly="yes">
<PatchInformationDescription="SmallUpdatePatch"Comments="SmallUpdatePatch"ShortNames="no"Languages="1033"Compressed="yes"Manufacturer="DynamoCorp"/>
<PatchMetadataAllowRemoval="yes"Description="SmallUpdatePatch"ManufacturerName="DynamoCorp"TargetProductName="Sample"MoreInfoURL="http://www.dynamocorp.com/"Classification="Update"DisplayName="SamplePatch"/>
<FamilyDiskId="5000"
MediaSrcProp="Sample"Name="Sample"SequenceStart="5000"><UpgradeImageSourceFile="C:\sample\1.1\admin\product.msi"Id="SampleUpgrade"><TargetImageSourceFile="C:\sample\1.0\admin\product.msi"Order="2"Id="SampleTarget"IgnoreMissingFiles="no"/></UpgradeImage></Family>
<PatchSequencePatchFamily="SamplePatchFamily"Sequence="1.0.0.0"Supersede="yes"/>
</PatchCreation></Wix>
NotethatSequenceStartmustbegreaterthanthelastsequenceintheFiletableinthetargetpackageorthepatchwillnotinstall.
BuildtheTargetandUpgradePackagesOpenacommandpromptandmakesurethefollowingWiXandWindowsInstallerSDKtoolsareinyourPATH.
Candle.exeLight.exeMsiMsp.exePatchWiz.dllMSPatchC.dllMakeCab.exe
Buildthetargetpackage
candle.exe-dVersion=1.0product.wxslight.exeproduct.wixobj-out1.0\product.msi
Performanadministrativeinstallationofthetargetpackage
Msiexec.exeisusedtoperformanadministrativeinstallationbutnothingisactuallyregisteredonyoursystem.Itismainlyfileextraction.
msiexec.exe/a1.0\product.msi/qbTARGETDIR=C:\sample\1.0\admin
Buildtheupgradepackage
candle.exe-dVersion=1.1product.wxslight.exeproduct.wixobj-out1.1\product.msi
Performanadministrativeinstallationoftheupgradepackage
msiexec.exe/a1.1\product.msi/qbTARGETDIR=C:\sample\1.1\admin
BuildthePatchThePatch.wxsfileiscompiledintoaPCPfilethatisthenprocessedbyMsiMsp.exetoproductthepatchpackage.
candle.exepatch.wxslight.exepatch.wixobj-outpatch\patch.pcpmsimsp.exe-spatch\patch.pcp-ppatch\patch.msp-lpatch.log
VerifythePatchToverifythatthepatchworks,installtheproductandthenthepatch.
Installthe1.0product
msiexec.exe/i1.0\product.msi/l*vxinstall.log
Verifyversion1.0
Goto"ProgramFiles\PatchSampleDirectory"andopenSample.txt.Verifythatthisisthe1.0version.CloseSample.txt.
Installthepatch
msiexec.exe/ppatch\patch.msp/l*vxpatch.log
Verifyversion1.1
Goto"ProgramFiles\PatchSampleDirectory"andopenSample.txt.Verifythatthisisnowthe1.1version.CloseSample.txt.
Uninstallthepatch
OnWindowsXPServicePack2andWindowsServer2003,goto"Add/RemovePrograms"intheControlPanelandmakesurethatShowUpdatesischecked.OnWindowsVistaandnewer,goto"Programs"then"Viewinstalledupdates"intheControlpanel.Select"SamplePatch"fromunder"WiXPatchExampleProduct"andclicktheUninstallbutton.
Goto"Programfiles\PatchSampleDirectory"andopenSample.txt.Verifythatthisisagainthe1.0version.CloseSample.txt.
Uninstalltheproduct
OnWindowsXPServicePack2andWindowsServer2003,goto"Add/RemovePrograms"intheControlPanel.OnWindowsVistaand
newer,goto"Programs"then"Uninstallaprogram"intheControlPanel.Select"WiXPatchExampleProduct"andclicktheUninstallbutton.
RestrictionsPleasereviewrestrictionsonhowpatchesmustbebuilttoavoidproblemduringpatchinstallation.
RestrictionsforPatchesTherearedifferentrestrictionsforpatchesbasedonwhattypeofpatchistobeinstalled.Therearethreetypesofpatches:
SmallupdatesdonotchangetheProductVersionpropertyofatargetproductandtypicallyrepresentasmallsubsetoffilestobeupdated.MinorupgradesdochangetheProductVersionpropertyofatargetproductandtypicallyrepresentalargersubsetoffilestobeupdated.MinorupgradesmightalsobeinstalledasupgradeMSIs.MajorupgradeschangeboththeProductVersionandProductCodeandcontainallfilesinaproduct.Shippingmajorupgradesasapatchis,however,notrecommendedandWiXdoesnotsupportbuildingmajorupgradepatchesbecauseoftheproblemstheycreate.
Forinformationaboutrestrictionsforeachtypeofpatch,readChangingtheProductCode.
UninstallablePatchesForapatchtobeuninstallable,theMsiPatchMetadatatablemustexistinthepatchpackageandmustcontaintheAllowRemovalpropertysetto1.ThiscanbeauthoredintothePatchCreationPropertiesfileusingthePatchMetadata/@AllowRemovalattributeorintothepatchXMLfileusingthePatch/@AllowRemovalattribute.
Besidethat,certaintablescannotbemodifiedintheupgradepackagefromwhichapatchisbuilt.ReadUninstallablePatchesforthecurrentlistoftables.Pyro.exewillerrorifoneofthesetableswouldbemodifiedwhenbuildingapatchXMLfile.
ThefollowingtableliststablesandcorrespondingelementsorattributesinWiX.
Table ElementorAttribute
BindImage [File](../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
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
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.
UsingPurelyWiXApatchcanbecreatedpurelyinWiXusingthetoolsnamedTorch.exeandPyro.exe.Usingthesetoolseliminatestheneedtoperformadministrativeinstallsoreventobindtheupgradeproductwhich,forlargeproducts,canbeexhausting.
SettingUptheSampleAsampleproductiscreatedwhichputsdifferentresourcesintofragments.Youputresourcesintoseparatefragmentssothattheresourcesineachfragmentcanbefilteredoutofapatch.Youmightfiltersomeresourcesoutofapatchifyouwanttolimitthepatchtoupdateonlypartsofyourproductorproducts.
Createadirectorythatwillcontainthesample
Createadirectoryfromwhichyouplantorunthesample.Thiswillbethesampleroot.
mdC:\sample
Createtwosubdirectories
Underthesamplerootcreatetwosubdirectoriescalled"1.0"and"1.1".
mdC:\sample\1.0mdC:\sample\1.1
CreateatextfilecalledSample.txtfor1.0
Createatextfileinthe"1.0"directorycalledSample.txtandputsometextinittellingyouthatitisthe1.0versionofthefile.
echoThisisversion1.0>C:\sample\1.0\Sample.txt
CreateatextfilecalledSample.txtfor1.1
Createatextfileinthe"1.1"directorycalledSample.txtandputsometextinittellingyouthatitisthe1.1versionofthefile.
echoThisisversion1.1>C:\sample\1.1\Sample.txt
Createyourproductauthoringinthesamplerootfolder
CreateyourproductauthoringinthesamplerootfoldercalledProduct.wxswiththefollowingcontents:
<?xmlversion="1.0"encoding="UTF-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><ProductId="48C49ACE-90CF-4161-9C6E-9162115A54DD"Name="WiXPatchExampleProduct"Language="1033"Version="1.0.0"Manufacturer="DynamoCorporation"UpgradeCode="48C49ACE-90CF-4161-9C6E-9162115A54DD"><PackageDescription="Installsafilethatwillbepatched."Comments="ThisProductdoesnotinstallanyexecutables"InstallerVersion="200"Compressed="yes"/>
<MediaId="1"Cabinet="product.cab"EmbedCab="yes"/><FeatureRefId="SampleProductFeature"/></Product>
<Fragment><FeatureId="SampleProductFeature"Title="SampleProductFeature"Level="1"><ComponentRefId="SampleComponent"/></Feature></Fragment>
<Fragment><DirectoryRefId="SampleProductFolder"><ComponentId="SampleComponent"Guid="{C28843DA-EF08-41CC-BA75-D2B99D8A1983}"DiskId="1"><FileId="SampleFile"Name="Sample.txt"Source=".\$(var.Version)\Sample.txt"/></Component></DirectoryRef></Fragment>
<Fragment><DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"Name="PFiles">
<DirectoryId="SampleProductFolder"Name="PatchSampleDirectory"></Directory></Directory></Directory></Fragment></Wix>
Createyourpatchauthoringinthesampleroot
CreateyourpatchauthoringinthesamplerootcalledPatch.wxswiththefollowingcontent:
<?xmlversion="1.0"encoding="UTF-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><PatchAllowRemoval="yes"Manufacturer="DynamoCorp"MoreInfoURL="http://www.dynamocorp.com/"DisplayName="SamplePatch"Description="SmallUpdatePatch"Classification="Update">
<MediaId="5000"Cabinet="RTM.cab"><PatchBaselineId="RTM"/></Media>
<PatchFamilyRefId="SamplePatchFamily"/></Patch>
<Fragment><PatchFamilyId='SamplePatchFamily'Version='1.0.0.0'Supersede='yes'><ComponentRefId="SampleComponent"/></PatchFamily></Fragment></Wix>
BuildingthePatchSampleOpenacommandpromptandmakesurethatthefollowingWiXtoolsareinyourPATH.
Candle.exeLight.exeTorch.exePyro.exe
YourWiXtoolsetversionshouldbeatleast3.0.3001.0
Buildthetargetlayout
Whileonlythe.wixoutisneeded,thetargetproductlayoutiscreatedtotestinstallingthepatch.Theproductmustalsobeinstalledbeforeoralongwiththepatch.
cdC:\samplecandle.exe-dVersion=1.0product.wxslight.exeproduct.wixobj-out1.0\product.msi
Buildtheupgradelayout
candle.exe-dVersion=1.1product.wxslight.exeproduct.wixobj-out1.1\product.msi
Createthetransformbetweenyourproducts
torch.exe-p-xi1.0\product.wixpdb1.1\product.wixpdb-outpatch\diff.wixmst
Buildthepatch
Thepatch.wxsfileiscompiledandlinkedlikeaproduct,butthenitisprocessedalongwithanynumberoftransformsthatyouwantthepatchtocontain.ThatproducesanMSPfilethattargetsanyoftheproducts
fromwhichtransformswerecreatedafterfiltering.
candle.exepatch.wxslight.exepatch.wixobj-outpatch\patch.wixmsppyro.exepatch\patch.wixmsp-outpatch\patch.msp-tRTMpatch\diff.wixmst
VerifythePatchToverifythatthepatchworks,installtheproductandthenthepatch.
Installthe1.0product
msiexec.exe/i1.0\product.msi/l*vxinstall.log
Verifyversion1.0
Goto"ProgramFiles\PatchSampleDirectory"andopenSample.txt.Verifythatthisisthe1.0version.CloseSample.txt.
Installthepatch
msiexec.exe/ppatch\patch.msp/l*vxpatch.log
Verifyversion1.1
Goto"ProgramFiles\PatchSampleDirectory"andopenSample.txt.Verifythatthisisnowthe1.1version.CloseSample.txt.
Uninstallthepatch
OnWindowsXPServicePack2andWindowsServer2003,goto"Add/RemovePrograms"intheControlPanelandmakesurethatShowUpdatesischecked.OnWindowsVistaandnewer,goto"Programs"then"Viewinstalledupdates"intheControlPanel.Select"SamplePatch"fromunder"WiXPatchExampleProduct"andclicktheUninstallbutton.
Goto"Programfiles\PatchSampleDirectory"andopenSample.txt.Verifythatthisisagainthe1.0version.CloseSample.txt.
Uninstalltheproduct
OnWindowsXPServicePack2andWindowsServer2003,goto"Add/RemovePrograms"intheControlPanel.OnWindowsVistaand
newer,goto"Programs"then"Uninstallaprogram"intheControlPanel.Select"WiXPatchExampleProduct"andclicktheUninstallbutton.
RestrictionsInadditiontorestrictionsaboutwhatcanbeinapatchinorderforittoinstallanduninstallcorrectly,thefollowingrestrictionsensurethatyourpatchworkscorrectly.
Patchfamiliescanonlygrow
Patchfamiliesareusedtofilterresourcesthatshouldendupinapatch.Oncethepatchiscreated,thesepatchfamiliesdictatewhichpatchesaresuperseded.Ifaresourceisremovedfromapatchfamilyinanewerpatchandthatresourceiscontainedinanolderpatchwiththesamepatchfamily,thenwhentheolderpatchissuperseded,thatresourcewillberegressedbacktoitspreviousstatebeforetheolderpatchwasinstalled.
Notethatinorderforonepatchtosupersedeanyotherpatches,allpatchfamiliesmustbesuperseded.Asinglepatchfamilyisreferencedintheexampleaboveforsimplicity.
Certainelementscannotbeaddedtouninstallablepatches
Therearecertainelementsreferencedinrestrictionsthatcannotbeaddedormodifiedifthepatchistobeuninstallable.IfaPatch/@AllowRemovalissetto"yes"andanyoftheseelementsareaddedormodified,Pyro.exewillreturnanerror.TheseelementscompileintotablesthatWindowsInstallerrestrictsinpatches,soWiXinformsyouandpreventsyoufromcreatingapatchthatisnotuninstallablewhenyouwantittobeuninstallable.
ConditionElement(BalExtension)
DescriptionConditionsforabundle.Theconditionisspecifiedintheinnertextoftheelement.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerText(xs:string)Theconditionthatmustevaluatetotruefortheinstallationtocontinue.
ChildrenNone
Attributes
Name Type Description Required
Message String Setthevaluetothetexttodisplaywhentheconditionfailsandtheinstallationmustbeterminated.
Yes
SeeAlsoBalSchema
OverridableAttribute(BalExtension)
DescriptionWhensetto"yes",letstheuseroverridethevariable'sdefaultvaluebyspecifyinganothervalueonthecommandline,intheformVariable=Value.Otherwise,WixStdBAwon'toverwritethedefaultvalueandwilllog"Ignoringattempttosetnon-overridablevariable:'BAR'."
WindowsInstallerreferencesNone
ParentsVariable
SeeAlsoBalSchema
PrereqSupportPackageAttribute(BalExtension)
DescriptionWhensetto"yes",thePrereqBAwillplanthepackagetobeinstalledifitsInstallConditionis"true"orempty.
WindowsInstallerreferencesNone
ParentsExePackage,MsiPackage,MspPackage,MsuPackage
SeeAlsoBalSchema
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
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoBalSchema
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoBalSchema
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
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoBalSchema
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoBalSchema
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoBalSchema
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
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoBalSchema
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoBalSchema
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoBalSchema
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
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoBalSchema
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoBalSchema
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoBalSchema
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
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoBalSchema
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
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
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoBalSchema
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoBalSchema
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoBalSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoBalSchema
UseUILanguagesAttribute(BalExtension)
DescriptionWhensetto"yes",causesWixStdBA/PrereqBAtousetheuser'scontrolpanellanguagesettings.Otherwise,thepreviousAPI(whichuseslocaleinsteadoflanguage)isusedtomaintaincompatiblitywithpreviousversionsofWiX.OnVistaandnewerplatforms,thisvaluesetto"yes"willsearchallspecifieduserlanguages,includingfallbacklanguages,inorder.
WindowsInstallerreferencesNone
ParentsBootstrapperApplication,BootstrapperApplicationRef
SeeAlsoBalSchema
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
whether.NETneedstobeinstalledbeforethemanagedbootstrapperapplicationcanbelaunched.
ThemeFile String SourcefileofthethemeXML.
SeeAlsoBalSchema
WixStandardBootstrapperApplicationElement(BalExtension)
DescriptionConfiguresWixStandardBootstrapperApplicationforaBundle.
WindowsInstallerreferencesNone
ParentsBootstrapperApplicationRef
InnerTextNone
ChildrenNone
Attributes
Name Type Description
LaunchArguments String Ifset,WixStdBAwillsupplytheseargumentswhenlaunchingtheapplicationspecifiedbytheLaunchTargetattribute.ThestringvaluecanbeformattedusingBurnvariablesenclosedinbrackets,torefertoinstallationdirectoriesandsoforth.
LaunchHidden YesNoType Ifsetto"yes",WixStdBAwilllaunchtheapplicationspecifiedbytheLaunchTargetattribute
withtheSW_HIDEflag.ThisattributeisignoredwhentheLaunchTargetElevatedIdattributeisspecified.
LaunchTarget String Ifset,thesuccesspagewillshowaLaunchbuttontheusercanusetolaunchtheapplicationbeinginstalled.ThestringvaluecanbeformattedusingBurnvariablesenclosedinbrackets,torefertoinstallationdirectoriesandsoforth.
LaunchTargetElevatedId String IdofthetargetApprovedExeForElevationelement.IfsetwithLaunchTarget,WixStdBAwilllaunchtheapplicationthroughtheEngine'sLaunchApprovedExemethodinsteadofthroughShellExecute.
LaunchWorkingFolder String WixStdBAwillusethisworkingfolderwhenlaunchingthespecifiedapplication.ThestringvaluecanbeformattedusingBurnvariablesenclosedinbrackets,torefertoinstallationdirectoriesandsoforth.ThisattributeisignoredwhentheLaunchTargetElevatedIdattributeisspecified.
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
explicitlysetto"no")istotreatdowngradeattemptsasfailures.
SuppressOptionsUI YesNoType Ifsetto"yes",theOptionsbuttonwillnotbeshownandtheuserwillnotbeabletochooseaninstallationdirectory.
SuppressRepair YesNoType Ifsetto"yes",theRepairbuttonwillnotbeshowninthemaintenance-modeUI.
ThemeFile String SourcefileofthethemeXML.
SeeAlsoBalSchema
ComPlusApplicationElement(ComplusExtension)
DescriptionDefinesaCOM+application.IfthiselementisadescendentofaComponentelement,theapplicationwillbecreatedinassociationwiththiscomponent.IftheelementisachildofanyoftheFragment,ModuleorProductelementsitisconsideredtobealocater,referencinganexistingapplication.
IftheelementisachildofaComPlusPartitionelement,orhaveitsPartitionattributeset,theapplicationwillbeinstalledunderthereferencedpartition.
WindowsInstallerreferencesNone
ParentsComPlusPartition,Component,Fragment,Module,Product
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
ComPlusApplicationRole(min:0,max:unbounded)ComPlusAssembly(min:0,max:unbounded)
Attributes
Name Type Description
Id String Identifierfortheelement.
AccessChecksLevel Enumeration Thisattribute'svaluemustbeoneofthefollowing:
applicationLevel
applicationComponentLevel
Activation Enumeration Thisattribute'svaluemustbeoneofthefollowing:inproc
local
ApplicationAccessChecksEnabled YesNoType
ApplicationDirectory String
ApplicationId String Idfortheapplication.Thisattributecanbeomitted,inwhichcaseanidwillbegeneratedoninstall.Iftheelementisalocater,attributecanbeomittedifavalueisprovidedfortheNameattribute.
Authentication Enumeration Thisattribute'svaluemustbeoneofthefollowing:default
none
connect
call
packet
integrity
privacy
AuthenticationCapability Enumeration Thisattribute'svaluemustbeoneofthefollowing:none
secureReference
staticCloaking
dynamicCloaking
Changeable YesNoType
CommandLine String
ConcurrentApps Int
CreatedBy String
CRMEnabled YesNoType
CRMLogFile String
Deleteable YesNoType
Description String
DumpEnabled YesNoType
DumpOnException YesNoType
DumpOnFailfast YesNoType
DumpPath String
EventsEnabled YesNoType
Identity String
ImpersonationLevel Enumeration Thisattribute'svaluemustbeoneofthefollowing:anonymous
identify
impersonate
delegate
IsEnabled YesNoType
MaxDumpCount Int
Name String Nameoftheapplication.
Thisattributecanbeomittediftheelementisalocater,andavalueisprovidedforthePartitionIdattribute.
Partition String IftheelementisnotachildofaComPlusPartitionelement,thisattributecanbeprovidedwiththeidofaComPlusPartitionelementrepresentingthepartitiontheapplicationbelongsto.
Password String
QCAuthenticateMsgs Enumeration Thisattribute'svaluemustbeoneofthefollowing:secureApps
off
on
QCListenerMaxThreads Int
QueueListenerEnabled YesNoType
QueuingEnabled YesNoType
RecycleActivationLimit Int
RecycleCallLimit Int
RecycleExpirationTimeout Int
RecycleLifetimeLimit Int
RecycleMemoryLimit Int
Replicable YesNoType
RunForever YesNoType
ShutdownAfter Int
SoapActivated YesNoType
SoapBaseUrl String
SoapMailTo String
SoapVRoot String
SRPEnabled YesNoType
SRPTrustLevel Enumeration Thisattribute'svaluemustbeoneofthefollowing:disallowed
fullyTrusted
ThreeGigSupportEnabled YesNoType
SeeAlsoComplusSchema
ComPlusApplicationRoleElement(ComplusExtension)
DescriptionDefinesanapplicationrole.IfthiselementisadescendentofaComponentelement,theapplicationrolewillbecreatedinassociationwiththiscomponent.IftheelementisachildofanyoftheFragment,ModuleorProductelementsitisconsideredtobealocater,referencinganexistingapplicationrole.
WindowsInstallerreferencesNone
ParentsComPlusApplication,Component,Fragment,Module,Product
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
ComPlusGroupInApplicationRole(min:0,max:unbounded)ComPlusUserInApplicationRole(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
Application String IftheelementisnotachildofaComPlusApplicationelement,thisattributeshouldbeprovidedwiththeidofaComPlusApplicationelementrepresentingtheapplicationtherolebelongsto.
Description String
Name String Nameoftheapplicationrole. Yes
SeeAlsoComplusSchema
ComPlusAssemblyElement(ComplusExtension)
DescriptionRepresentsaDLLorassemblytoberegisteredwithCOM+.IfthiselementisachildofaComPlusApplicationelement,theassemblywillberegisteredinthisapplication.OtherwaystheApplicationattributemustbesettoanapplication.TheelementmustbeadescendentofaComponentelement,itcannotbeachildofaComPlusApplicationlocatorelement.
WindowsInstallerreferencesNone
ParentsComPlusApplication,Component
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
ComPlusAssemblyDependency(min:0,max:unbounded)ComPlusComponent(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifierfortheelement.
Yes
Application String IftheelementisnotachildofaComPlusApplicationelement,thisattribute
shouldbeprovidedwiththeidofaComPlusApplicationelementrepresentingtheapplicationtheassemblyistoberegisteredin.Thisattributecanbeomittedfora.NETassemblyeveniftheapplicationisnotachildofaComPlusApplicationelement.
AssemblyName String ThenameoftheassemblyusedtoidentifytheassemblyintheGAC.ThisattributecanbeprovidedonlyifDllPathFromGACissetto“yes”.
DllPath String ThepathtolocatetheassemblyDLLduringregistration.ThisattributeshouldbeprovidedifDllPathFromGACisnotsetto“yes”.
DllPathFromGAC YesNoType IndicatesthattheDLLpathshouldbeextractedfromtheGACinsteadforbeingprovidedintheDllPathattribute.Ifthisattributeissetto“yes”,thenameofthe
assemblycanbeprovidedusingtheAssemblyNameattribute.Or,ifthisAssemblyNameattributeismissing,thenamewillbeextractedfromtheMsiAssemblyNametableusingtheidoftheparentComponentelement.
EventClass YesNoType IndicatesthattheassemblyistobeinstalledasaneventclassDLL.Thisattributeisonlyvalidfornativeassemblies.TheassemblywillbeinstalledwiththeCOM+catalog’sInstallEventClass()function.
PSDllPath String Anoptionalpathtoanexternalproxy/stubDLLfortheassembly.
RegisterInCommit YesNoType Indicatesthattheassemblyshouldbeinstalledinthecommitcustomactioninsteadofthenormaldeferredcustomaction.Thisisnecessarywheninstalling.NETassembliestotheGACinthesameinstallation,asthe
assembliesarenotvisibleintheGACuntilaftertheInstallFinalizeactionhasrun.
TlbPath String Anoptionalpathtoanexternaltypelibfortheassembly.ThisattributemustbeprovidediftheTypeattributeissetto“.net”.
Type Enumeration Thisattribute'svaluemustbeoneofthefollowing:native
.net
Yes
Remarks
Wheninstallinganativeassembly,allcomponentscontainedintheassemblymustberepresentedasComPlusComponentelementsunderthiselement.Anycomponentnotlistedwillnotberemovedduringuninstall.
ThefieldsDllPath,TlbPathandPSDllPathareformattedfieldsthatshouldcontainfilepathstothererespectivefiletypes.AtypicalvalueforDllPathforexample,shouldbesomethinglike“[#MyAssembly_dll]”,where“MyAssembly_dll”isthekeyofthedllfileintheFiletable.
Warning:TheassemblynameprovidedintheAssemblyNameattributemustbeafullyspecifiedassemblyname,ifapartialnameisprovidedarandomassemblymatchingthepartialnamewillbeselected.
SeeAlsoComplusSchema
ComPlusAssemblyDependencyElement(ComplusExtension)
DescriptionDefinesadependencybetweentwoassemblies.Thiselementaffectstheorderinwhichassemblesareregistered.Anyassembliesreferencedbythiselementareguarantiedtoberegisteredbefore,andunregisteredafter,theassemblyreferencedbytheparentComPlusAssemblyelement.
WindowsInstallerreferencesNone
ParentsComPlusAssembly
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
RequiredAssembly String ReferencetotheidoftheassemblyrequiredbytheparentComPlusAssemblyelement.
Yes
RemarksItisonlynecessarytoexplicitlyspecifydependenciesbetweenassembliescontainedinthesamepackage(MSIorMSM).Assembliesmergedintoapackagefromamergemodulewillalwaysbeinstalledbeforeanyassembliesspecifiedinthebasepackage.Assembliesmergedinfromdifferentmergemodulesare
sequencedusingtheModuleDependencyMSItable.Itisnotpossibletohavecrossdependenciesbetweenmergemodulesorhaveanassemblyinamergemoduledependonanassemblyinthebasepackage.
SeeAlsoComplusSchema
ComPlusComponentElement(ComplusExtension)
DescriptionRepresentsaCOM+componentinanassembly.
WindowsInstallerreferencesNone
ParentsComPlusAssembly
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
ComPlusInterface(min:0,max:unbounded)ComPlusRoleForComponent(min:0,max:unbounded)ComPlusSubscription(min:0,max:unbounded)
Attributes
Name Type Description
Id String Identifierfortheelement.
AllowInprocSubscribers YesNoType
CLSID Uuid CLSIDofthecomponent.
ComponentAccessChecksEnabled YesNoType
ComponentTransactionTimeout Int
ComponentTransactionTimeoutEnabled YesNoType
COMTIIntrinsics YesNoType
ConstructionEnabled YesNoType
ConstructorString String
CreationTimeout Int
Description String
EventTrackingEnabled YesNoType
ExceptionClass String
FireInParallel YesNoType
IISIntrinsics YesNoType
InitializesServerApplication YesNoType
IsEnabled YesNoType
IsPrivateComponent YesNoType
JustInTimeActivation YesNoType
LoadBalancingSupported YesNoType
MaxPoolSize Int
MinPoolSize Int
MultiInterfacePublisherFilterCLSID String
MustRunInClientContext YesNoType
MustRunInDefaultContext YesNoType
ObjectPoolingEnabled YesNoType
PublisherID String
SoapAssemblyName String
SoapTypeName String
Synchronization Enumeration Thisattribute'svaluemustbe
oneofthefollowing:ignored
none
supported
required
requiresNew
Transaction Enumeration Thisattribute'svaluemustbeoneofthefollowing:ignored
none
supported
required
requiresNew
TxIsolationLevel Enumeration Thisattribute'svaluemustbeoneofthefollowing:any
readUnCommitted
readCommitted
repeatableRead
serializable
SeeAlsoComplusSchema
ComPlusGroupInApplicationRoleElement(ComplusExtension)
DescriptionThiselementrepresentsasecuritygroupmembershipinanapplicationrole.Whentheparentcomponentofthiselementisinstalled,theuserwillbeaddedtotheassociatedapplicationrole.ThiselementmustbeadescendentofaComponentelement;itcannotbeachildofaComPlusApplicationRolelocaterelement.ToreferencealocaterelementusetheApplicationRoleattribute.
WindowsInstallerreferencesNone
ParentsComPlusApplicationRole,Component
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
ApplicationRole String IftheelementisnotachildofaComPlusApplicationRoleelement,thisattributeshouldbeprovidedwiththeidofaComPlusApplicationRoleelementrepresentingtheapplicationroletheuseristobeaddedto.
Group String ForeignkeyintotheGrouptable.
Yes
SeeAlsoComplusSchema
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
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
ComPlusMethodElement(ComplusExtension)
DescriptionRepresentsamethodforaninterface.
WindowsInstallerreferencesNone
ParentsComPlusInterface
InnerTextNone
ChildrenSequence(min:1,max:1)1. ComPlusRoleForMethod(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
AutoComplete YesNoType
Description String
Index Int Dispatchidofthemethod.IfthisattributeisnotsetavaluemustbeprovidedfortheNameattribute.
Name String Nameofthemethod.IfthisattributeisnotsetavaluemustbeprovidedfortheIndexattribute.
SeeAlsoComplusSchema
ComPlusPartitionElement(ComplusExtension)
DescriptionDefinesaCOM+partition.IfthiselementisachildofaComponentelement,thepartitionwillbecreatedinassociationwiththiscomponent.IftheelementisachildofanyoftheFragment,ModuleorProductelementsitisconsideredtobealocater,referencinganexistingpartition.
WindowsInstallerreferencesNone
ParentsComponent,Fragment,Module,Product
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
ComPlusApplication(min:0,max:unbounded)ComPlusPartitionRole(min:0,max:unbounded)ComPlusPartitionUser(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
Changeable YesNoType
Deleteable YesNoType
Description String
Name String Nameofthepartition.Thisattributecanbeomittediftheelementisalocater,andavalueisprovidedforthePartitionIdattribute.
PartitionId String Idforthepartition.Thisattributecanbeomitted,inwhichcaseanidwillbegeneratedoninstall.Iftheelementisalocater,thisattributecanbeomittedifavalueisprovidedfortheNameattribute.
SeeAlsoComplusSchema
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
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
ComPlusRoleForComponentElement(ComplusExtension)
DescriptionRepresentsaroleassignmenttoaCOM+component.
WindowsInstallerreferencesNone
ParentsComPlusComponent,Component
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
ApplicationRole String IdoftheComPlusApplicationRoleelementrepresentingtherolethatshallbegrantedaccesstothecomponent.
Yes
Component String IftheelementisnotachildofaComPlusComponentelement,thisattributeshouldbeprovidedwiththeidofaComPlusComponentelementrepresentingthecomponenttheroleistobeaddedto.
SeeAlsoComplusSchema
ComPlusRoleForInterfaceElement(ComplusExtension)
DescriptionRepresentsaroleassignmenttoaninterface.
WindowsInstallerreferencesNone
ParentsComPlusInterface,Component
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
ApplicationRole String IdoftheComPlusApplicationRoleelementrepresentingtherolethatshallbegrantedaccesstotheinterface.
Yes
Interface String IftheelementisnotachildofaComPlusInterfaceelement,thisattributeshouldbeprovidedwiththeidofaComPlusInterfaceelementrepresentingtheinterfacetheroleistobeaddedto.
SeeAlsoComplusSchema
ComPlusRoleForMethodElement(ComplusExtension)
DescriptionRepresentsaroleassignmenttoaCOM+method.
WindowsInstallerreferencesNone
ParentsComPlusMethod,Component
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
ApplicationRole String IdoftheComPlusApplicationRoleelementrepresentingtherolethatshallbegrantedaccesstothemethod.
Yes
Method String IftheelementisnotachildofaComPlusMethodelement,thisattributeshouldbeprovidedwiththeidofaComPlusMethodelementrepresentingthemethodtheroleistobeaddedto.
SeeAlsoComplusSchema
ComPlusSubscriptionElement(ComplusExtension)
DescriptionDefinesaneventsubscriptionforaCOM+component.
WindowsInstallerreferencesNone
ParentsComPlusComponent,Component
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierfortheelement.
Yes
Component String IftheelementisnotachildofaComPlusComponentelement,thisattributeshouldbeprovidedwiththeidofaComPlusComponentelementrepresentingthecomponentthesubscriptionistobecreatedfor.
Description String
Enabled YesNoType
EventClassPartitionID String
EventCLSID String CLSIDoftheeventclassforthesubscription.Ifavalueforthisattributeisnotprovided,avalueforthePublisherIDattributemustbeprovided.
FilterCriteria String
InterfaceID String
MachineName String
MethodName String
Name String Nameofthesubscription.
Yes
PerUser YesNoType
PublisherID String Publisheridforthesubscription.Ifavalueforthisattributeisnotprovided,avaluefortheEventCLSIDattributemustbeprovided.
Queued YesNoType
SubscriberMoniker String
SubscriptionId String Idofthesubscription.Ifa
valueisnotprovidedforthisattribute,anidwillbegeneratedduringinstallation.
UserName String
SeeAlsoComplusSchema
ComPlusUserInApplicationRoleElement(ComplusExtension)
DescriptionThiselementrepresentsausermembershipinanapplicationrole.Whentheparentcomponentofthiselementisinstalled,theuserwillbeaddedtotheassociatedapplicationrole.ThiselementmustbeadescendentofaComponentelement;itcannotbeachildofaComPlusApplicationRolelocaterelement.ToreferencealocaterelementusetheApplicationRoleattribute.
WindowsInstallerreferencesNone
ParentsComPlusApplicationRole,Component
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
ApplicationRole String IftheelementisnotachildofaComPlusApplicationRoleelement,thisattributeshouldbeprovidedwiththeidofaComPlusApplicationRoleelementrepresentingtheapplicationroletheuseristobeaddedto.
User String ForeignkeyintotheUsertable.
Yes
SeeAlsoComplusSchema
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
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
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoComplusSchema
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoComplusSchema
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoComplusSchema
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoComplusSchema
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoComplusSchema
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoComplusSchema
Guid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoComplusSchema
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoComplusSchema
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoComplusSchema
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoComplusSchema
LongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoComplusSchema
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoComplusSchema
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoComplusSchema
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoComplusSchema
ShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoComplusSchema
uuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}'.
SeeAlsoComplusSchema
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoComplusSchema
WildCardLongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoComplusSchema
WildCardShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoComplusSchema
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoComplusSchema
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoComplusSchema
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoComplusSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoComplusSchema
ProviderKeyAttribute(DependencyExtension)
DescriptionOptionalattributetoexplicitlyauthortheproviderkeyfortheentirebundle.
WindowsInstallerreferencesNone
ParentsBundle
Remarks
Thisproviderkeyisdesignedtopersistthroughoutcompatibleupgradessothatdependentbundlesdonothavetobereinstalledandwillnotpreventyourproductfrombeingupgraded.Ifthisattributeisnotauthored,thevalueistheautomatically-generatedbundleIDandwillnotautomaticallysupportupgrades.
Onlyasingleproviderkeyissupportedforbundles.Toauthorthatyourbundleprovidesadditionalfeaturesviapackages,authordifferentproviderkeysforyourpackages.
SeeAlsoDependencySchema,Provides
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
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
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
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
HowTo:Authorproductdependencies
SeeAlsoDependencySchema,RequiresRef
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
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
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoDependencySchema
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,
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
DifxappSchema
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
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoDifxappSchema
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoDifxappSchema
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoDifxappSchema
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoDifxappSchema
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoDifxappSchema
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoDifxappSchema
Guid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoDifxappSchema
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoDifxappSchema
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoDifxappSchema
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoDifxappSchema
LongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoDifxappSchema
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoDifxappSchema
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoDifxappSchema
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoDifxappSchema
ShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoDifxappSchema
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoDifxappSchema
WildCardLongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoDifxappSchema
WildCardShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoDifxappSchema
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoDifxappSchema
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoDifxappSchema
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoDifxappSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoDifxappSchema
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,
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.
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
specified.
IfyouuseProtocolandalsoFileorPrograminthesameFirewallExceptionelement,theexceptionwillfailtoinstallonWindowsXPandWindowsServer2003.IgnoreFailure="yes"canbeusedtoignoretheresultingfailure,buttheexceptionwillnotbeadded.Thisattribute'svaluemustbeoneofthefollowing:tcp
udp
Scope Enumeration Thescopeofthisfirewallexception,whichindicateswhetherincomingconnectionscancomefromanycomputerincludingthoseontheInternetoronlythoseonthelocalnetworksubnet.Tomorepreciselyspecifyallowedremoteaddress,specifyacustomscopeusingRemoteAddresschildelements.Thisattribute'svaluemustbeoneofthefollowing:any
localSubnet
SeeAlsoFirewallSchema
RemoteAddressElement(FirewallExtension)
DescriptionAremoteaddresstowhichtheportorprogramcanlisten.AddressformatsvarybasedontheversionofWindowsandWindowsFirewalltheprogramisbeinginstalledon.ForWindowsXPSP2andWindowsServer2003SP1,seeRemoteAddressesProperty.ForWindowsVistaandWindowsServer2008,seeRemoteAddressesProperty.
WindowsInstallerreferencesNone
ParentsFirewallException
InnerText(xs:string)Aremoteaddress.
ChildrenNone
AttributesNone
SeeAlsoFirewallSchema
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
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoFirewallSchema
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoFirewallSchema
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoFirewallSchema
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoFirewallSchema
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoFirewallSchema
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoFirewallSchema
Guid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoFirewallSchema
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoFirewallSchema
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoFirewallSchema
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoFirewallSchema
LongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoFirewallSchema
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoFirewallSchema
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoFirewallSchema
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoFirewallSchema
ShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoFirewallSchema
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoFirewallSchema
WildCardLongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoFirewallSchema
WildCardShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoFirewallSchema
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoFirewallSchema
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoFirewallSchema
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoFirewallSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoFirewallSchema
GameElement(GamingExtension)
DescriptionRegistersagameinGameExploreronWindowsVistaandlater.TheexecutablemusthaveanembeddedGameDefinitionFile.FormoreinformationaboutGameExplorerandGDFs,seeTheWindowsVistaGameExplorer.Thisregistrationisaccomplishedviacustomaction.
OnWindowsXP,thiselementinsteadrecordsthesameinformationintheregistrysothatlaterupgradestoWindowsVistaregisterthegameinGameExplorer.
WindowsInstallerreferencesNone
ParentsFile
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
PlayTask(min:0,max:unbounded)SupportTask(min:0,max:unbounded)
Attributes
Name Type Description Required
Id Guid Thegame'sinstanceID. Yes
ExecutableFile String Identifierofthefilethatisthegame'sexecutable,ifitisn'ttheparentfile.
GdfResourceFile String Identifierofthefilethatcontainsthegame'sGDF
resource,ifitdoesn'texistintheparentfile.
SeeAlsoGamingSchema
IsRichSavedGameAttribute(GamingExtension)
DescriptionRegistersthisextensionfortherichsavedgamespropertyhandleronWindowsVistaandlater.
WindowsInstallerreferencesNone
ParentsExtension
SeeAlsoGamingSchema
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
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
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoGamingSchema
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoGamingSchema
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoGamingSchema
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoGamingSchema
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoGamingSchema
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoGamingSchema
Guid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-HERE|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)|!\(wix\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoGamingSchema
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoGamingSchema
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoGamingSchema
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoGamingSchema
LongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoGamingSchema
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoGamingSchema
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoGamingSchema
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoGamingSchema
ShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoGamingSchema
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoGamingSchema
WildCardLongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoGamingSchema
WildCardShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoGamingSchema
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoGamingSchema
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoGamingSchema
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoGamingSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoGamingSchema
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
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
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoHttpSchema
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoHttpSchema
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
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoHttpSchema
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoHttpSchema
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoHttpSchema
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
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoHttpSchema
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoHttpSchema
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoHttpSchema
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
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoHttpSchema
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoHttpSchema
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoHttpSchema
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
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoHttpSchema
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
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
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoHttpSchema
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoHttpSchema
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoHttpSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoHttpSchema
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
SERVICE\ServiceInstallName".ThismaybeeitheraSIDoranaccountnameinaformatthatLookupAccountNamesupports.WhenusingaSID,anasteriskmustbeprepended.Forexample,"*S-1-5-18".
SeeAlsoHttpSchema
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).
ignoreKeepstheexistingURLreservation.
failTheinstallationfails.
Id String UniqueIDofthisURLreservation.Ifthisattributeisnotspecified,anidentifierwillbegeneratedautomatically.
Sddl String SecuritydescriptortoapplytotheURLreservation.Can'tbespecifiedwhenusingchildrenUrlAceelements.
Url String TheUrlPrefixstringthatdefinestheportionoftheURLnamespacetowhichthisreservationpertains.
Yes
SeeAlsoHttpSchema
CertificateElement(IisExtension)
DescriptionUsedtoinstallanduninstallcertificates.
WindowsInstallerreferencesNone
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Uniqueidentifierforthiscertificateintheinstallationpackage.
Yes
BinaryKey String ReferencetoaBinaryelementthatwillstorethecertificateasastreaminsidethepackage.ThisattributecannotbespecifiedwiththeCertificatePathattribute.
CertificatePath String IftheRequestattributeis"no"thenthisattributeisthepathtothecertificatefileoutsideofthepackage.IftheRequestattributeis"yes"thenthis
atributeisthecertificateauthoritytorequestthecertificatefrom.ThisattributemaybesetviaaformattedProperty(e.g.[MyProperty]).
Name String Nameofthecertificatethatwillbeinstalledoruninstalledinthespecifiedstore.ThisattributemaybesetviaaformattedProperty(e.g.[MyProperty]).
Yes
Overwrite YesNoType
PFXPassword String IftheBinarystreamorpathtothefileoutsideofthepackageisapasswordprotectedPFXfile,thepasswordforthatPFXmustbespecifiedhere.ThisattributemaybesetviaaformattedProperty(e.g.[MyProperty]).
Request YesNoType ThisattributecontrolswhethertheCertificatePathattributeisapathtoacertificatefile(Request='no')orthecertificateauthoritytorequestthecertificatefrom(Request='yes').
StoreLocation Enumeration Thisattribute'svaluemustbeoneofthefollowing:currentUser
Yes
localMachine
StoreName Enumeration Thisattribute'svaluemustbeoneofthefollowing:ca
Containsthecertificatesofcertificateauthoritiesthattheusertruststoissuecertificatestoothers.Certificatesinthesestoresarenormallysuppliedwiththeoperatingsystemorbytheuser'snetworkadministrator.
myUsethe"personal"valueinstead.
personalContainspersonalcertificates.Thesecertificateswillusuallyhaveanassociatedprivatekey.Thisstoreisoftenreferredtoasthe"MY"certificatestore.
request
rootContainsthe
Yes
certificatesofcertificateauthoritiesthattheusertruststoissuecertificatestoothers.Certificatesinthesestoresarenormallysuppliedwiththeoperatingsystemorbytheuser'snetworkadministrator.Certificatesinthisstorearetypicallyself-signed.
otherPeopleContainsthecertificatesofthosethattheusernormallysendsenvelopedmessagestoorreceivessignedmessagesfrom.SeeMSDNdocumentationformoreinformation.
trustedPeopleContainsthecertificatesofthosedirectlytrustedpeopleandresources.SeeMSDNdocumentationformoreinformation.
trustedPublisher
Containsthecertificatesofthosepublisherswhoaretrusted.SeeMSDNdocumentationformoreinformation.
SeeAlsoIisSchema,CertificateRef
CertificateRefElement(IisExtension)
DescriptionAssociatesacertificatewiththeparentWebSite.TheCertificateelementshouldbeinthesameComponentastheparentWebSite.
WindowsInstallerreferencesNone
ParentsWebSite
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifierofthereferencedCertificate.
Yes
SeeAlsoIisSchema,Certificate
HttpHeaderElement(IisExtension)
DescriptionCustomHTTPHeaderdefinitionforIISresourcessuchasWebSiteandWebVirtualDir.
WindowsInstallerreferencesNone
ParentsWebSite,WebVirtualDir
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String PrimarykeyforcustomHTTPHeaderentry.ThiswilldefaulttotheNameattribute.
Name String NameofthecustomHTTPHeader. Yes
Value String ValueforthecustomHTTPHeader.Thisattributecancontainaformattedstringthatisprocessedatinstalltimetoinsertthevaluesofpropertiesusing[PropertyName]syntax.Alsosupportedareenvironmentvariables,fileinstallationpaths,andcomponentinstallationdirectories;seeFormattedfordetails.
SeeAlsoIisSchema
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
RecycleTimeElement(IisExtension)
DescriptionIIS6ApplicationPoolRecycleTimeson24hourclock.
WindowsInstallerreferencesNone
ParentsWebAppPool
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Value String Pattern:'\d{1,2}:\d{2}'. Yes
SeeAlsoIisSchema
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
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoIisSchema
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoIisSchema
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoIisSchema
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoIisSchema
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoIisSchema
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoIisSchema
Guid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoIisSchema
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoIisSchema
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoIisSchema
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoIisSchema
LongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoIisSchema
PercentType(SimpleType)
DescriptionValuesofthistypeareanyintegersbetween0and100,inclusive.
xs:nonNegativeIntegerTypexs:maxInclusivevalue='100'
SeeAlsoIisSchema
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoIisSchema
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoIisSchema
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoIisSchema
ShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoIisSchema
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoIisSchema
WildCardLongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoIisSchema
WildCardShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoIisSchema
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoIisSchema
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoIisSchema
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoIisSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoIisSchema
WebAddressElement(IisExtension)
DescriptionWebAddressforWebSite
WindowsInstallerreferencesNone
ParentsWebSite
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
Header String
IP String TheIPaddresstolocateanexistingWebSiteorcreateanewWebSite.WhentheWebAddressispartofaWebSiteelementusedtolocateanexistingwebsitethefollowingrulesareused:
Whenthisattributeisnotspecifiedonlythe"AllUnassigned"IPaddresswillbelocated.WhenthisattributeisexplicitlyspecifiedonlythespecifiedIPaddresswillbelocated.
Whenthisattributehasthevalue"*"thenanyIPaddressincludingthe"AllUnassigned"IPaddresswillbelocated
WhentheWebAddressispartofaWebSiteelementusedtocreateanewwebsitethefollowingrulesareused:
Whenthisattributeisnotspecifiedorthevalueis"*"the"AllUnassigned"IPaddresswillbeused.WhenthisattributeisexplicitlyspecifiedtheIPaddresswillusethatvalue.
TheIPattributecancontainaformattedstringthatisprocessedatinstalltimetoinsertthevaluesofpropertiesusing[PropertyName]syntax.
Port String Yes
Secure YesNoType Determinesifthisaddressrepresentsasecurebinding.Thedefaultis'no'.
SeeAlsoIisSchema
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.
Buffer YesNoDefaultType Setstheoptionthatenablesresponsebufferingintheapplication,whichallowsASPscripttosetresponseheadersanywhereinthescript.
ClientDebugging YesNoDefaultType EnableASPclient-sidescriptdebugging.
DefaultScript Enumeration Setsthedefaultscriptlanguageforthesite.Thisattribute'svaluemustbeoneofthefollowing:VBScript
JScript
Isolation Enumeration Setstheapplicationisolationlevelforthisapplicationforpre-IIS6applications.Thisattribute'svaluemustbeoneofthefollowing:low
Meanstheapplication
executeswithintheIISprocess.
mediumExecutespooledinaseparateprocess.
highMeansexecutionaloneinaseparateprocess.
Name String Setsthenameofthisapplication.
Yes
ParentPaths YesNoDefaultType Setstheparentpathsoption,whichallowsaclienttouserelativepathstoreachparentdirectoriesfromthisapplication.
ScriptTimeout Integer SetsthetimeoutvalueinsecondsforexecutingASPscripts.
ServerDebugging YesNoDefaultType EnableASPserver-sidescriptdebugging.
SessionTimeout Integer Setsthetimeoutvaluefor
sessionsinminutes.
WebAppPool String ReferencestheIdattributeofaWebAppPoolelementtouseastheapplicationpoolforthisapplicationinIIS6applications.
SeeAlsoIisSchema
WebApplicationExtensionElement(IisExtension)
DescriptionExtensionforWebApplication
WindowsInstallerreferencesNone
ParentsWebApplication
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
CheckPath YesNoType
Executable String usuallyaPropertythatresolvestoshortfilenamepath
Yes
Extension String Extensionbeingregistered.Donotprefixwitha'.'(e.g.youshoulduse"html",not".html").Toregisterforallextensions,useExtension="*".Toregisterawildcardapplicationmap(whichhandlesallrequests,eventhosefordirectoriesorfileswithnoextension)omitthe
Extensionattributecompletely.
Script YesNoType
Verbs String
SeeAlsoIisSchema
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
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
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
WebSite String ReferencestheIdattributeforaWebSiteelementinwhichthisdirectorybelongs.RequiredwhenthiselementisnotachildofaWebSiteelement.
SeeAlsoIisSchema
WebDirPropertiesElement(IisExtension)
DescriptionWebDirPropertiesusedbyoneormoreWebSites.ListspropertiescommontoIISwebsitesandvroots.CorrespondingpropertiescanbeviewedthroughtheIISManagersnap-in.OnepropertyentrycanbereusedbymultiplesitesorvrootsusingtheIdfieldasareference,usingWebVirtualDir.DirProperties,WebSite.DirProperties,orWebDir.DirProperties.
WindowsInstallerreferencesNone
ParentsFragment,Module,Product,WebDir,WebSite,WebVirtualDir
InnerTextNone
ChildrenNone
Attributes
Name Type Description
Id String
AccessSSL YesNoType AvalueoftrueindicatesthatfileaccessrequiresSSLfilepermissionprocessing,withorwithoutaclientcertificate.ThiscorrespondstoAccessSSLflagforAccessSSLFlagsIIS
metabaseproperty.
AccessSSL128 YesNoType AvalueoftrueindicatesthatfileaccessrequiresSSLfilepermissionprocessingwithaminimumkeysizeof128bits,withorwithoutaclientcertificate.ThiscorrespondstoAccessSSL128flagforAccessSSLFlagsIISmetabaseproperty.
AccessSSLMapCert YesNoType ThiscorrespondstoAccessSSLMapCertflagforAccessSSLFlagsIISmetabaseproperty.
AccessSSLNegotiateCert YesNoType ThiscorrespondstoAccessSSLNegotiateCertflagforAccessSSLFlagsIISmetabaseproperty.
AccessSSLRequireCert YesNoType ThiscorrespondstoAccessSSLRequireCertflagforAccessSSLFlagsIISmetabaseproperty.
AnonymousAccess YesNoType SetstheEnableAnonymousAccesscheckbox,whichmapsanonymoususerstoaWindowsuseraccount.Whensettingthisto'yes'youshouldalsoprovidetheuseraccountusingtheAnonymousUserattribute,anddeterminewhatsettingtouseforthe
IIsControlledPasswordattribute.Defaultsto'no.'
AnonymousUser String ReferencetotheIdattributeontheUserelementtobeusedastheanonymoususerforthedirectory.SeetheUserelementformoreinformation.
AspDetailedError YesNoType SetstheoptionforwhethertosenddetailedASPerrorsbacktotheclientonscripterror.Defaultis'no.'
AuthenticationProviders String Commadelimitedlist,inorderofprecedence,ofWindowsauthenticationprovidersthatIISwillattempttouse:NTLM,Kerberos,Negotiate,andothers.
BasicAuthentication YesNoType SetstheBasicAuthenticationoption,whichallowsclientstoprovidecredentialsinplaintextoverthewire.Defaultsto'no.'
CacheControlCustom String CustomHTTP1.1cachecontroldirectives.
CacheControlMaxAge NonNegativeInteger Integervaluespecifyingthecachecontrolmaximumagevalue.
ClearCustomError YesNoType SpecifieswhetherIIswillreturncustomerrorsforthisdirectory.
DefaultDocuments String Thelistofdefaultdocumentstosetforthiswebdirectory,incomma-delimitedformat.
DigestAuthentication YesNoType SetstheDigestAuthenticationoption,whichallowsusingdigestauthenticationwithdomainuseraccounts.Defaultsto'no.'
Execute YesNoType
HttpExpires String ValuetosettheHttpExpiresattributetoforaWebDirinthemetabase.
IIsControlledPassword YesNoType SetswhetherIISshouldcontrolthepasswordusedfortheWindowsaccountspecifiedintheAnonymousUserattribute.Defaultsto'no.'
Index YesNoType SetstheIndexResourceoption,whichspecifieswhetherthiswebdirectoryshouldbeindexed.Defaultsto'no.'
LogVisits YesNoType Setswhethervisitstothissiteshouldbelogged.Defaultsto'no.'
PassportAuthentication YesNoType SetsthePassportAuthenticationoption,whichallowsclientstoprovidecredentialsviaa.NetPassportaccount.
Defaultsto'no.'
Read YesNoType
Script YesNoType
WindowsAuthentication YesNoType SetstheWindowsAuthenticationoption,whichenablesintegratedWindowsauthenticationtobeusedonthesite.Defaultsto'no.'
Write YesNoType
SeeAlsoIisSchema
WebErrorElement(IisExtension)
DescriptionCustomWebErrorsusedbyWebSitesandVirtualDirectories.
WindowsInstallerreferencesNone
ParentsWebSite,WebVirtualDir
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
ErrorCode Integer HTTP1.1errorcode. Yes
File String Filetobesenttotheclientforthiserrorcodeandsubcode.Thiscanbeformatted.Forexample:[#FileId].
SubCode Integer Errorsubcode.Setto0togetthewildcard"*".
Yes
URL String URLtobesenttotheclientforthiserrorcodeandsubcode.Thiscanbeformatted.
RemarksYoucanonlyuseerrorcodeandsubcodecombinationswhicharesupportedbyIIS.AttemptingtosetacustomerrorforanerrorcodeandsubcodecombinationthatisnotsupportedbyIIS(inthedefaultlistoferrorcodes)willresultinaninstallationfailure.
SeeAlsoIisSchema
WebFilterElement(IisExtension)
DescriptionIIsFilterforaComponent
WindowsInstallerreferencesNone
ParentsComponent,WebSite
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheuniqueIdforthewebfilter. Yes
Description String Descriptionofthefilter.
Flags Integer SetstheMD_FILTER_FLAGSmetabasekeyforthefilter.Thismustbeaninteger.SeeMSDN'FilterFlags'documentationformoredetails.
LoadOrder String Thelegalvaluesare"first","last",oranumber.Ifanumberisspecified,itmustbegreaterthan0.
Name String ThenameofthefiltertobeusedinIIS.
Yes
Path String Thepathofthefilterexecutable Yes
file.Thisshouldusuallybeavaluelike'[!FileId]',where'FileId'isthefileidentifierofthefilterexecutablefile.
WebSite String Specifiestheparentwebsiteforthisfilter(ifthereisone).Ifthisisaglobalfilter,thenthisattributeshouldnotbespecified.
SeeAlsoIisSchema
WebLogElement(IisExtension)
DescriptionWebLogdefinition.
WindowsInstallerreferencesNone
ParentsFragment,Module,Product
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String IdentifierfortheWebLog. Yes
Type Enumeration Thisattribute'svaluemustbeoneofthefollowing:IIS
MicrosoftIISLogFileFormat
NCSANCSACommonLogFileFormat
noneDisableslogging.
ODBCODBCLogging
W3CW3CExtendedLogFile
Yes
Format
SeeAlsoIisSchema
WebPropertyElement(IisExtension)
DescriptionIISProperties
WindowsInstallerreferencesNone
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id Enumeration Thisattribute'svaluemustbeoneofthefollowing:ETagChangeNumber
IIs5IsolationMode
MaxGlobalBandwidth
LogInUTF8
Yes
Value String ThevaluetobeusedfortheWebPropertyspecifiedintheIdattribute.SeetheremarkssectionforinformationonacceptablevaluesforeachId.
RemarksHereisanexplanationoftheacceptablevaluesforeachpropertyandtheirmeaning:
FortheIdsIIs5IsolationModeandLogInUTF8,novalueshouldbespecifiedsincethepresenceofthispropertyindicatesthatthesettingshouldbeset.FortheMaxGlobalBandwidthId,thevalueshouldbespecifiedinkilobytes.Thevalueshouldbeabase10number.ETagChangeNumbersetsthemachine-specificportionofETagasanumber.Thisvalue,whensynchronizedacrossserversinawebfarm,allowsthewebfarmtoreturnanidenticalETagforagivenresourceregardlessoftheserverthathandledtherequest.Thevalueshouldbeabase10number.
SeeAlsoIisSchema
WebServiceExtensionElement(IisExtension)
DescriptionTheWebServiceExtensionpropertyisusedbytheWebservertodeterminewhetheraWebserviceextensionispermittedtorun.
WindowsInstallerreferencesNone
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
Allow YesNoType Indicatesiftheextensionisallowedordenied.
Yes
Description String Descriptionoftheextension.
File String UsuallyaPropertythatresolvestoshortfilenamepath
Yes
Group String Stringusedtoidentifygroupsofextensions.
UIDeletable YesNoType IndicatesiftheUIisallowedtodeletetheextensionfromthelistofnot.Default:Not
deletable.
SeeAlsoIisSchema
WebSiteElement(IisExtension)
DescriptionIIsWebSite
WindowsInstallerreferencesNone
ParentsComponent,Fragment,Module,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
CertificateRef(min:0,max:unbounded)HttpHeader(min:0,max:unbounded)MimeMap(min:0,max:unbounded)WebAddress(min:1,max:unbounded)WebApplication(min:0,max:1)WebDir(min:0,max:unbounded)WebDirProperties(min:0,max:1)WebError(min:0,max:unbounded)WebFilter(min:0,max:unbounded)WebVirtualDir(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String IdentifierfortheWebSite.UsedwithintheMSIpackageonly.
Yes
AutoStart YesNoType Specifieswhether
toautomaticallystartthewebsite.
ConfigureIfExists YesNoType Specifieswhethertoconfigurethewebsiteifitalreadyexists.Note:Thiswillnotaffectuninstallbehavior.Ifthewebsiteexistsonuninstall,itwillberemoved.
ConnectionTimeout NonNegativeInteger Setsthetimeoutvalueforconnectionsinseconds.
Description String ThisisthenameofthewebsitethatwillshowupintheIISmanagementconsole.
Yes
Directory String Rootdirectoryofthewebsite.ResolvedtoadirectoryintheDirectorytableatinstalltimebytheservercustomactions.
DirProperties String ReferencestheIdattributeforaWebDirPropertieselementthatspecifiesthesecurityand
accesspropertiesforthiswebsiterootdirectory.ThisattributemaynotbespecifiedifaWebDirPropertieselementisdirectlynestedinthiselement.
Sequence Integer Sequencethatthewebsiteistobecreatedin.
SiteId String OptionalattributetodirectlyspecifythesiteidoftheWebSite.Usethistoensureallwebsitesinawebgardengetthesamesiteid.Ifanumberisprovided,thesiteidmustbeuniqueonalltargetmachines.If"*"isused,theDescriptionattributewillbehashedtocreateauniquevalueforthesiteid.Thisvaluemustbeapositivenumberora"*"oraformattedvaluethatresolvesto"-1"
(forthesamebehavioras"*")orapositivenumberorblank.IfthisattributeisabsentthenthewebsitewillbelocatedusingtheWebAddresselementassociatedwiththewebsite.
StartOnInstall YesNoType Specifieswhethertostartthewebsiteoninstall.
WebApplication String ReferencetoaWebApplicationthatistobeinstalledaspartofthiswebsite.
WebLog String ReferencetoWebLogdefinition.
RemarksNestingWebSiteunderaComponentelementwillresultinaWebSitebeinginstalledtothemachineasthepackageisinstalled.
NestingWebSiteunderProduct,Fragment,orModuleresultsinawebsite"locator"recordbeingcreatedintheIIsWebSitetable.ThismeansthatthewebsiteitselfisneitherinstallednoruninstalledbytheMSIpackage.ItdoesmakethedatabaseavailableforreferencingfromaWebApplication,WebVirtualDirorWebDirrecord.ThisallowsanMSItoinstallWebApplications,WebVirtualDirsorWebDirstoalreadyexistingwebsitesonthemachine.Theinstallwillfailifthewebsitedoesnotexistinthesecases.
SeeAlsoIisSchema
WebVirtualDirElement(IisExtension)
DescriptionDefinesanIISvirtualdirectory.WhenthiselementisachildofWebSiteelement,thevirtualdirectoryisdefinedwithinthatwebsite.OtherwisethisvirtualdirectorymustreferenceaWebSiteelementviatheWebSiteattribute
WindowsInstallerreferencesNone
ParentsComponent,WebSite,WebVirtualDir
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
HttpHeader(min:0,max:unbounded)MimeMap(min:0,max:unbounded)WebApplication(min:0,max:1)WebDirProperties(min:0,max:1)WebError(min:0,max:unbounded)WebVirtualDir(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Yes
Alias String Setstheapplicationname,whichistheURLrelativepathusedtoaccessthisvirtualdirectory
Yes
Directory String ReferencestheIdattributeforaDirectoryelementthatpointstothecontentforthisvirtualdirectory.
Yes
DirProperties String ReferencestheIdattributeforaWebDirPropertieselementthatspecifiesthesecurityandaccesspropertiesforthisvirtualdirectory.ThisattributemaynotbespecifiedifaWebDirPropertieselementisdirectlynestedinthiselement.
WebApplication String ReferencestheIdattributeforaWebApplicationelementthatspecifieswebapplicationsettingsforthisvirtualdirectory.IfaWebApplicationchildisnotspecified,thevirtualdirectorydoesnothostwebapplications.
WebSite String ReferencestheIdattributeforaWebSiteinwhichthisvirtualdirectorybelongs.RequiredwhenthiselementisnotachildofWebSiteelement.
SeeAlsoIisSchema
ConditionElement(LuxExtension)
DescriptionConditionsforaunittest.
WindowsInstallerreferencesNone
ParentsUnitTest
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoLuxSchema
ExpressionElement(LuxExtension)
DescriptionAnexpressionthatmustevaluatetotruetosucceed.CannotbespecifiedifPropertyisspecified.
WindowsInstallerreferencesNone
ParentsUnitTest
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoLuxSchema
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
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
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoLuxSchema
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoLuxSchema
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoLuxSchema
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoLuxSchema
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoLuxSchema
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoLuxSchema
Guid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoLuxSchema
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoLuxSchema
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoLuxSchema
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoLuxSchema
LongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoLuxSchema
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoLuxSchema
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoLuxSchema
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoLuxSchema
ShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoLuxSchema
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoLuxSchema
WildCardLongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoLuxSchema
WildCardShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoLuxSchema
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoLuxSchema
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoLuxSchema
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoLuxSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoLuxSchema
UnitTestElement(LuxExtension)
DescriptionDescribesaunittesttobeexecutedagainstaparticularcustomaction,resultinginaparticularpropertyvalue.Single-valueproperties,multi-valueproperties,andname/value-pairpropertiescanallbetesteddeclaratively.
WindowsInstallerreferencesNone
ParentsFragment,Mutation,UnitTest
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Condition(min:0,max:unbounded)Expression(min:0,max:unbounded)UnitTest(min:0,max:unbounded)
Attributes
Name Type Description Required
CustomAction String Identifierofthecustomactiontobetested.
Id String Identifieroftheunittest.Ifyouomitthisattribute,astableidentifierisgeneratedforyou.
Index String Aformattedstringthatevaluatestoeitheranintegerindexintoamulti-valuepropertyora
stringnameofaname/value-pairmulti-valueproperty.
NameValueSeparator String Onecharacterthatisusedtoseparatevaluesinaname/value-pairmulti-valueproperty.
Operator Enumeration Theoperatortoapplytothepropertyandvalue.Defaultis"equal."Thisattribute'svaluemustbeoneofthefollowing:equal
(Default)ComparesPropertytoValueandsucceedsiftheyareequal.
notEqualComparesPropertytoValueandsucceedsiftheyareNOTequal.
caseInsensitiveEqualComparesPropertytoValueandsucceedsiftheyareequal(ignoringcase).
caseInsensitiveNotEqualComparesPropertytoValueandsucceedsiftheyareNOTequal(ignoringcase).
Property String Nameoftheproperty
setbythecustomaction.
Value String Thevaluetocomparetotheproperty.
ValueSeparator String Onecharacterthatisusedtoseparatevaluesinamulti-valueproperty.
SeeAlsoLuxSchema
UnitTestRefElement(LuxExtension)
DescriptionIdentifiesaunittesttobelinkedintoaproject.
WindowsInstallerreferencesNone
ParentsFragment,Product
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifieroftheunittesttobeincluded.
SeeAlsoLuxSchema
MessageQueueElement(MsmqExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsComponent
InnerTextNone
ChildrenSequence(min:1,max:1)1. MessageQueuePermission(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Yes
Authenticate YesNoType Default:No.
BasePriority Integer
Journal YesNoType Default:No.
JournalQuota Integer
Label String Yes
MulticastAddress String
PathName String Yes
PrivLevel Enumeration Thisattribute'svaluemustbeoneofthe
following:none
optional
body
Quota Integer
ServiceTypeGuid String
Transactional YesNoType Default:No.
SeeAlsoMsmqSchema
MessageQueuePermissionElement(MsmqExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsComponent,MessageQueue
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
ChangeQueuePermissions YesNoType
DeleteJournalMessage YesNoType
DeleteMessage YesNoType
DeleteQueue YesNoType
GetQueuePermissions YesNoType
GetQueueProperties YesNoType
Group String
MessageQueue String
PeekMessage YesNoType
QueueGenericAll YesNoType
QueueGenericExecute YesNoType
QueueGenericRead YesNoType
QueueGenericWrite YesNoType
ReceiveJournalMessage YesNoType
ReceiveMessage YesNoType
SetQueueProperties YesNoType
TakeQueueOwnership YesNoType
User String
WriteMessage YesNoType
SeeAlsoMsmqSchema
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
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoMsmqSchema
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoMsmqSchema
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoMsmqSchema
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoMsmqSchema
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoMsmqSchema
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoMsmqSchema
Guid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoMsmqSchema
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoMsmqSchema
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoMsmqSchema
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoMsmqSchema
LongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoMsmqSchema
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoMsmqSchema
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoMsmqSchema
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoMsmqSchema
ShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoMsmqSchema
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoMsmqSchema
WildCardLongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoMsmqSchema
WildCardShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoMsmqSchema
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoMsmqSchema
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoMsmqSchema
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoMsmqSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoMsmqSchema
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
assemblies,thisattributedoesnotneedtobesetbecauseNGenwillusethedirectoryoftheassemblyfilebydefault.
Thevaluecanbeintheformofadirectoryidentifier,oraformattedstringthatresolvestoeitheradirectoryidentifierorafullpathtoadirectory.
AssemblyApplication String Theapplicationwhichwillloadthisassembly.ForDLLassemblieswhichareloadedviareflection,thisattributeshouldbesettoindicatetheapplicationwhichwillloadthisassembly.Theconfigurationoftheapplication(usuallyspecifiedviaanexe.configfile)willbeusedtodeterminehowtoresolvedependenciesforthisassembly.
Thevaluecanbeintheformofafileidentifier,oraformattedstringthatresolvestoeitherafileidentifierorafullpathtoafile.
Whenasharedcomponentisloadedatruntime,usingtheLoadmethod,the
application'sconfigurationfiledeterminesthedependenciesthatareloadedforthesharedcomponent—forexample,theversionofadependencythatisloaded.Thisattributegivesguidanceonwhichdependencieswouldbeloadedatruntimeinordertofigureoutwhichdependencyassemblieswillalsoneedtohavenativeimagesgenerated(assumingtheDependencyattributeisnotsetto"no").
ThisattributecannotbesetiftheAssemblyApplicationattributeissetontheparentFileelement(pleasenotethattheseattributesbothrefertothesameapplicationassemblybutdoverydifferentthings:specifiyingFile/@AssemblyApplicationwillforceanassemblytoinstalltoaprivatelocationnexttotheindicatedapplication,whereasthisAssemblyApplicationattributewillbeusedtohelpresolvedependentassemblieswhilegeneratingnativeimagesforthisassembly).
Debug YesNoType Setto"yes"togeneratenativeimagesthatcanbeusedunderadebugger.Thedefaultvalueis"no".
Dependencies YesNoType Setto"no"togeneratetheminimumnumberofnativeimages.Thedefaultvalueis"yes".
Platform Enumeration Setstheplatform(s)forwhichnativeimageswillbegenerated.Thisattribute'svaluemustbeoneofthefollowing:32bit
Attempttogeneratenativeimagesonlyforthe32-bitversionofthe.NETFrameworkonthetargetmachine.Ifthe32-bitversionofthe.NETFramework2.0ornewerisnotpresentonthetargetmachine,nativeimagecustomactionswillnotbescheduled.Thisisthedefaultvalue.
64bitAttempttogeneratenativeimagesonlyforthe64-bitversionofthe.NETFrameworkonthetargetmachine.Ifa64-bitversionofthe.NETFramework2.0ornewerisnotpresentonthetarget
machine,nativeimagecustomactionswillnotbescheduled.
allAttempttogeneratenativeimagesforthe32-bitand64-bitversionsofthe.NETFrameworkonthetargetmachine.Ifaversionofthe.NETFramework2.0ornewerisnotpresentonthetargetmachineforaprocessorarchitecture,nativeimagecustomactionswillnotbescheduledforthatprocessorarchitecture.
Priority Enumeration Setsthepriorityofgeneratingthenativeimagesforthisassembly.Thisattribute'svaluemustbeoneofthefollowing:0
Thisisthehighestpriority,itmeansthatimagegenerationoccurssyncronouslyduringthesetupprocess.Thisoptionwillslowdownsetupperformance.
1Thiswillqueueimagegenerationtothe
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
tofailandrollback.
Noteforpatches:ifyoubuiltyourtarget,orbaseline,MSIwithpreviousversions3.0or3.5ofthisextensionandwanttoupgradetoformattablevaluesfor@AssemblyApplicationor@AppBaseDirectoryyoumustalsoincludeaBinaryRefto"NetFxCA"topullinnecessarychanges.Ifyoudouseformattablevaluesanddonotincludethebinarychangesngen.exewillnotoptimizeyournativeimagesforthespecifiedapplication.
Thisshouldbearareoccurrence,however.Becauseyoucannotremovecomponentsinapatch-andpyrodoesvalidateyoudonot-itisnotpracticaltoswitchfromusingidentifierstoformattablevaluesinapatch.OnepracticalpossibilityisifyouwantedtouseadifferentapplicationtooptimizeyournativeimagesandthatapplicationisnotalreadyinstalledwiththeMSItobeupdated.
SeeAlsoNetfxSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoNetfxSchema
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
RequiredVersionAttribute(PsExtension)
DescriptionTheversionofthisextensionrequiredtocompilethedefiningsource.
WindowsInstallerreferencesNone
ParentsWix
SeeAlsoPsSchema
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
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoPsSchema
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoPsSchema
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoPsSchema
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoPsSchema
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoPsSchema
EmbeddedResource(SimpleType)
Description
ValuesshouldbeintheformatResourceName,StringName,whereResourceNameisthenameoftheembeddedresourceinyourassemblysansthe".resources"extension,andStringNameisthenameofthestringresourceintheembeddedresource.
Example:UtilityMshSnapInResources,Description
SeeAlsoPsSchema
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoPsSchema
Guid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoPsSchema
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoPsSchema
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoPsSchema
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoPsSchema
LongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoPsSchema
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoPsSchema
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoPsSchema
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoPsSchema
ShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoPsSchema
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x","x.x","x.x.x",or"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'\d{1,5}(\.\d{1,5}){0,3}'.
SeeAlsoPsSchema
WildCardLongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoPsSchema
WildCardShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoPsSchema
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoPsSchema
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoPsSchema
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoPsSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoPsSchema
SnapInElement(PsExtension)
DescriptionIdentifiestheparentFileasaPowerShellsnap-intoberegisteredonthesystem.
WindowsInstallerreferencesNone
ParentsFile
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
FormatsFile(min:0,max:unbounded)TypesFile(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String TheidentifierforthisPowerShellsnap-in.
Yes
AssemblyName String Thisattributehasbeendeprecated.
CustomSnapInType String Thefulltypenameofaclassthatisusedto
registeralistofcmdletsandproviders.
Description String Abriefdescriptionofthesnap-in.
DescriptionIndirect EmbeddedResource Anembeddedresourcethatcontainsabriefdescriptionofthesnap-in.Thisresourcemustbeembeddedinthecurrentsnap-inassembly.
RequiredPowerShellVersion VersionType TherequiredversionofPowerShellthatmustbeinstalledandisassociatedwiththesnap-inregistration.Thedefaultvalueis
"1.0".
Vendor String Thenameofthesnap-invendor.
VendorIndirect EmbeddedResource Anembeddedresourcethatcontainsthenameofthesnap-invendor.Thisresourcemustbeembeddedinthecurrentsnap-inassembly.
Version VersionType Theversionofthesnapin.Ifnotspecified,thisistakenfromtheassemblyname.
RemarksPowerShellsnap-insallowdeveloperstoextendthefunctionalityofofthePowerShellengine.AddthiselementtoidentifytheparentFileasaPowerShellsnap-inthatwillgetregisteredonthesystem.
SeeAlsoPsSchema
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
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
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoSqlSchema
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoSqlSchema
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoSqlSchema
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoSqlSchema
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoSqlSchema
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoSqlSchema
Guid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoSqlSchema
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoSqlSchema
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoSqlSchema
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoSqlSchema
LongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoSqlSchema
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoSqlSchema
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoSqlSchema
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoSqlSchema
ShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoSqlSchema
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoSqlSchema
WildCardLongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoSqlSchema
WildCardShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoSqlSchema
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoSqlSchema
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoSqlSchema
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoSqlSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoSqlSchema
SqlDatabaseElement(SqlExtension)
DescriptionSQLDatabase
WindowsInstallerreferencesNone
ParentsComponent,Fragment,Module,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
SqlScript(min:0,max:unbounded)SqlString(min:0,max:unbounded)Sequence(min:1,max:1)1. SqlFileSpec(min:0,max:1)2. SqlLogFileSpec(min:0,max:1)
Attributes
Name Type Description Required
Id String Yes
ConfirmOverwrite YesNoType
ContinueOnError YesNoType
CreateOnInstall YesNoType
CreateOnReinstall YesNoType Specifieswhethertocreatethedatabasewhentheassociated
componentisreinstalled.SettingCreateOnInstalltoyesdoesnotimplyCreateOnReinstallissettoyes.CreateOnReinstallmustbesetinadditiontoCreateOnInstallforittobecreatedduringbothinstallandreinstall.
CreateOnUninstall YesNoType
Database String Thenameofthedatabase.ThevaluecanbealiteralvalueorderivedfromaPropertyelementusingtheFormattedsyntax.
Yes
DropOnInstall YesNoType
DropOnReinstall YesNoType Specifieswhethertodropthedatabasewhentheassociatedcomponentisreinstalled.SettingDropOnInstalltoyesdoesnotimplyDropOnReinstallissettoyes.DropOnReinstallmustbesetinadditiontoDropOnInstallforittobedroppedduringbothinstallandreinstall.
DropOnUninstall YesNoType
Instance String
Server String Yes
User String
RemarksNestingSqlDatabaseunderaComponentelementwillresultinaSqlDatabasebeinginstalledtothemachineasthepackageisinstalled.
NestingSqlDatabaseunderProduct,Fragment,orModuleresultsinadatabase"locator"recordbeingcreatedintheSqlDatabasetable.ThismeansthatthedatabaseitselfisneitherinstallednoruninstalledbytheMSIpackage.ItdoesmakethedatabaseavailableforreferencingfromaSqlStringorSqlScriptrecord.ThisallowsMSItoinstallSqlScriptsorSqlStringstoalreadyexistingdatabasesonthemachine.Theinstallwillfailifthedatabasedoesnotexistinthesecases.
TheUserattributereferencescredentialsspecifiedinaUserelement.IfauserisnotspecifiedthenWindowsAuthenticationwillbeusedbydefaultusingthecredentialsoftheuserperformingtheinstalltoexecutesqlstrings,etc.
SeeAlsoSqlSchema,User
SqlFileSpecElement(SqlExtension)
DescriptionFilespecificationforaSqldatabase.
WindowsInstallerreferencesNone
ParentsSqlDatabase
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String IDofthefilespecification. Yes
Filename String Specifiestheoperating-systemfilenameforthedatabasefile.
Yes
GrowthSize String Specifiesthegrowthincrementofthedatabasefile.TheGB,MBandKBand%suffixescanbeusedtospecifygigabytes,megabytes,kilobytesorapercentageofthecurrentfilesizetogrow.Thedefaultismegabytesifnosuffixisspecified.Thedefaultvalueis10%ifGrowthSizeisnotspecified,andtheminimumvalueis64KB.TheGrowthSizesettingforafilecannotexceedthe
MaxSizesetting.
MaxSize String Specifiesthemaximumsizetowhichthedatabasefilecangrow.TheGB,MBandKBsuffixescanbeusedtotospecifygigabytes,megabytesorkilobytes.Thedefaultismegabytesifnosuffixisspecified.IfMaxSizeisnotspecified,thefilewillgrowuntilthediskisfull.
Name String Specifiesthelogicalnameforthedatabasefile.
Size String Specifiesthesizeofthedatabasefile.TheGB,MBandKBsuffixescanbeusedtospecifygigabytes,megabytesorkilobytes.Thedefaultismegabytesifnosuffixisspecified.WhenaSizeisnotsuppliedforadatabasefile,SQLServerusesthesizeoftheprimaryfileinthemodeldatabase.
SeeAlsoSqlSchema
SqlLogFileSpecElement(SqlExtension)
DescriptionFilespecificationforaSqldatabase.
WindowsInstallerreferencesNone
ParentsSqlDatabase
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Filename String Specifiestheoperating-systemfilenameforthelogfile.
GrowthSize String Specifiesthegrowthincrementofthelogfile.TheGB,MBandKBand%suffixescanbeusedtospecifygigabytes,megabytes,kilobytesorapercentageofthecurrentfilesizetogrow.Thedefaultismegabytesifnosuffixisspecified.Thedefaultvalueis10%ifGrowthSizeisnotspecified,andtheminimumvalueis64KB.TheGrowthSizesettingforafilecannotexceedtheMaxSizesetting.
Id String IDofthelogfilespecification.
MaxSize String Specifiesthemaximumsizetowhichthelogfilecangrow.TheGB,MBandKBsuffixescanbeusedtotospecifygigabytes,megabytesorkilobytes.Thedefaultismegabytesifnosuffixisspecified.IfMaxSizeisnotspecified,thefilewillgrowuntilthediskisfull.
Name String Specifiesthelogicalnameforthelogfile.
Size String Specifiesthesizeofthelogfile.TheGB,MBandKBsuffixescanbeusedtospecifygigabytes,megabytesorkilobytes.Thedefaultismegabytesifnosuffixisspecified.WhenaSizeisnotsuppliedforalogfile,SQLServermakesthefile1MB.
SeeAlsoSqlSchema
SqlScriptElement(SqlExtension)
DescriptionSQLScript
WindowsInstallerreferencesNone
ParentsComponent,SqlDatabase
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
BinaryKey String ReferencetoBinarystreamthatcontainstheSQLscripttoexecute.
Yes
ContinueOnError YesNoType Continueexecutingscriptsevenifthisonefails.
ExecuteOnInstall YesNoType Specifiestoexecutethescriptwhentheassociatedcomponentisinstalled.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,
RollbackOnReinstallandRollbackOnUninstallattributes.
ExecuteOnReinstall YesNoType Specifieswhethertoexecutethescriptwhentheassociatedcomponentisreinstalled.SettingExecuteOnInstalltoyesdoesnotimplyExecuteOnReinstallissettoyes.ExecuteOnReinstallmustbesetinadditiontoExecuteOnInstallforittobeexecutedduringbothinstallandreinstall.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,RollbackOnReinstallandRollbackOnUninstallattributes.
ExecuteOnUninstall YesNoType Specifiestoexecutethescriptwhentheassociatedcomponentisuninstalled.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,RollbackOnReinstallandRollbackOnUninstall
attributes.
RollbackOnInstall YesNoType Specifieswhethertoexecutethescriptonrollbackifanattemptismadetoinstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.
RollbackOnReinstall YesNoType Specifieswhethertoexecutethescriptonrollbackifanattemptismadetoreinstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.
RollbackOnUninstall YesNoType Specifieswhethertoexecutethescriptonrollbackifanattemptismadetouninstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstall
andExecuteOnUninstallattributes.
Sequence Integer SpecifestheordertoruntheSQLScripts.Itisrecommendedthatrollbackscriptsbescheduledbeforetheircomplementaryexecutionscript.ThisorderisalsorelativeacrosstheSqlStringelement.
SqlDb String requiredwhennotchildofSqlDatabase
User String
SeeAlsoSqlSchema
SqlStringElement(SqlExtension)
DescriptionSQLString
WindowsInstallerreferencesNone
ParentsComponent,SqlDatabase
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
ContinueOnError YesNoType Continueexecutingstringsevenifthisonefails.
ExecuteOnInstall YesNoType Specifiestoexecutethestringwhentheassociatedcomponentisinstalled.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,RollbackOnReinstallandRollbackOnUninstallattributes.
ExecuteOnReinstall YesNoType Specifieswhethertoexecutethestringwhentheassociatedcomponentisreinstalled.SettingExecuteOnInstalltoyesdoesnotimplyExecuteOnReinstallissettoyes.ExecuteOnReinstallmustbesetinadditiontoExecuteOnInstallforittobeexecutedduringbothinstallandreinstall.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,RollbackOnReinstallandRollbackOnUninstallattributes.
ExecuteOnUninstall YesNoType Specifiestoexecutethestringwhentheassociatedcomponentisuninstalled.ThisattributeismutuallyexclusivewiththeRollbackOnInstall,RollbackOnReinstallandRollbackOnUninstallattributes.
RollbackOnInstall YesNoType Specifieswhethertoexecutethestringonrollbackifanattempt
ismadetoinstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.
RollbackOnReinstall YesNoType Specifieswhethertoexecutethestringonrollbackifanattemptismadetoreinstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.
RollbackOnUninstall YesNoType Specifieswhethertoexecutethestringonrollbackifanattemptismadetouninstalltheassociatedcomponent.ThisattributeismutuallyexclusivewiththeExecuteOnInstall,ExecuteOnReinstallandExecuteOnUninstallattributes.
Sequence Integer Specifestheorderto
runtheSQLStrings.Itisrecommendedthatrollbackstringsbescheduledbeforetheircomplementaryexecutionstring.ThisorderisalsorelativeacrosstheSqlScriptelement.
SQL String Yes
SqlDb String
User String
SeeAlsoSqlSchema
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
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoTagSchema
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoTagSchema
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
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoTagSchema
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoTagSchema
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoTagSchema
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
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoTagSchema
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoTagSchema
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoTagSchema
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
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoTagSchema
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoTagSchema
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoTagSchema
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
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoTagSchema
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
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
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoTagSchema
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoTagSchema
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoTagSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoTagSchema
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"
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
defaultvalueis'yes'.
ThisattributeisonlyallowedonaTagelementfoundunderaProductelement.
SeeAlsoTagSchema
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
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
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
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
Yes
SeeAlsoThmutilSchema
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
forthecontrol.
HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.
ImageFile String Relativepathtoanimagefiletodefineangraphicbutton.Theimagemustbe3xtheheighttorepresentthebuttonin3states:unselected,hover,selected.MutuallyexclusivewithImageResourceandSourceXandSourceYattributes.
ImageResource String Identifierthatreferencesanimageresourceinthemoduleforthecontrol.Theimagemustbe3xtheheighttorepresentthebuttonin3states:unselected,hover,selected.
MutuallyexclusivewithImageFileandSourceXandSourceYattributes.
Name String Optionalnameforthecontrol.
TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.
Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.
Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.
Yes
X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidth
Yes
ofthecontrol.
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
Yes
SeeAlsoThmutilSchema
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
minusthevalue.
HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.
HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.
Name String Optionalnameforthecontrol.
TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.
Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.
Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthe
Yes
value.
X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.
Yes
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
Yes
SeeAlsoThmutilSchema
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
ComboboxElement(ThmutilExtension)
DescriptionDefinesacombobox.
WindowsInstallerreferencesNone
ParentsPage,Theme
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
FontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontforthecontrol.
Yes
Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindow
Yes
minusthevalue.
HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.
HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.
Name String Optionalnameforthecontrol.
TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.
Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.
Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthe
Yes
value.
X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.
Yes
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
Yes
SeeAlsoThmutilSchema
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
control.Non-positivevaluesextendthecontroltothebottomofthewindowminusthevalue.
HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.
HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.
Name String Optionalnameforthecontrol.
TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.
Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.
Width Int Widthofthe Yes
control.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.
X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.
Yes
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
Yes
SeeAlsoThmutilSchema
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
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
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
minusthevalue.
HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.
HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.
HoverFontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontwhenthecontrolishoveredover.
Yes
Name String Optionalnameforthecontrol.
SelectedFontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontwhenthecontrolisselected.
Yes
TabStop YesNoType Specifieswhetherthecontrolispartofthetab
sequenceofcontrols.
Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.
Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.
Yes
X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.
Yes
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negative
Yes
valuesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
SeeAlsoThmutilSchema
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
windowminusthevalue.
HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.
HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.
Name String Optionalnameforthecontrol.
TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.
Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.
Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindow
Yes
minusthevalue.
X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.
Yes
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
Yes
SeeAlsoThmutilSchema
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
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
valuesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
SeeAlsoThmutilSchema
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
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
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
controlfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
SeeAlsoThmutilSchema
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
Name String Optionalnameforthepage.
SeeAlsoThmutilSchema
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
mustbe4pixelswide:leftpixelistheleftsideofprogressbar,leftmiddlepixelisprogressused,rightmiddlepixelisprogressunused,rightpixelisrightsideofprogressbar.MutuallyexclusivewithImageResourceandSourceXandSourceYattributes.
ImageResource String Identifierthatreferencesanimageresourceinthemoduleforthecontrol.Theimagemustbe4pixelswide:leftpixelistheleftsideofprogressbar,leftmiddlepixelisprogressused,rightmiddlepixelisprogressunused,rightpixelisrightsideofprogressbar.MutuallyexclusivewithImageFileandSourceXandSourceYattributes.
Name String Optionalnameforthecontrol.
TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.
Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.
Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.
Yes
X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.
Yes
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
Yes
SeeAlsoThmutilSchema
RicheditElement(ThmutilExtension)
DescriptionDefinesaricheditcontrol.
WindowsInstallerreferencesNone
ParentsPage,Theme
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
FontId NonNegativeInteger NumericidentifiertotheFontelementthatservesasthefontforthecontrol.
Yes
Height Int Heightofthecontrol.Non-positivevaluesextendthecontroltothebottomofthewindow
Yes
minusthevalue.
HexStyle HexBinary Hexadecimalwindowstyleforthecontrol.
HideWhenDisabled YesNoType Specifieswhetherthecontrolshouldbehiddenwhendisabled.
Name String Optionalnameforthecontrol.
TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.
Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.
Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthe
Yes
value.
X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.
Yes
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
Yes
SeeAlsoThmutilSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoThmutilSchema
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
tabsequenceofcontrols.
Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.
Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.
Yes
X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.
Yes
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
Yes
SeeAlsoThmutilSchema
TabElement(ThmutilExtension)
DescriptionDefinesatab.
WindowsInstallerreferencesNone
ParentsPage,Theme
InnerText(xs:string)Captionofthetab.
ChildrenNone
AttributesNone
SeeAlsoThmutilSchema
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
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
control.
TabStop YesNoType Specifieswhetherthecontrolispartofthetabsequenceofcontrols.
Visible YesNoType Specifieswhetherthecontrolisinitiallyvisible.
Width Int Widthofthecontrol.Non-positivevaluesextendthecontroltotherightofthewindowminusthevalue.
Yes
X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.
Yes
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
Yes
SeeAlsoThmutilSchema
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)
Text(min:1,max:unbounded)TreeView(min:1,max:unbounded)
Attributes
Name Type Description Required
ImageFile String Relativepathtoanimagefilethatcanserveasasinglesourceforimagesintherestofthetheme.ThisimageisreferencedbycontrolsusingtheSourceXandSourceYattributes.
SeeAlsoThmutilSchema
TreeViewElement(ThmutilExtension)
DescriptionDefinesatreeview.
WindowsInstallerreferencesNone
ParentsPage,Theme
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
AlwaysShowSelect Specifieswhethertherowalwaysappearsselectedevenwhenthetreeviewhaslostfocus.
asButtons Specifieswhetherthetreeviewwillshowbuttons.
EnableDragDrop Specifieswhetherdraganddropisenabledforthetreeview.
FullRowSelect Specifieswhetheranentirerowisselected
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
X Int Xcoordinateforthecontrolfromtheleftofthewindow.Negativevaluesarecoordinatesfromtherightofthewindowminusthewidthofthecontrol.
Yes
Y Int Ycoordinateforthecontrolfromthetopofthewindow.Negativevaluesarecoordinatesfromthebottomofthewindowminustheheightofthecontrol.
Yes
SeeAlsoThmutilSchema
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
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
functionsifAutoResizeisenabled.
SourceX NonNegativeInteger XoffsetofthewindowbackgroundintheTheme/@ImageFile.MutuallyexclusivewithIconFileandIconResource.
SourceY NonNegativeInteger YoffsetofthewindowbackgroundintheTheme/@ImageFile.MutuallyexclusivewithIconFileandIconResource.
Width PositiveInteger Widthofthewindow.
SeeAlsoThmutilSchema
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.
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".
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
thentheRebootPromptorTerminateProcessattributeswillbeconsidered.Thedefaultvalueis"5"seconds.
SeeAlsoUtilSchema
ComponentSearchElement(UtilExtension)
DescriptionDescribesacomponentsearch.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
After String Idofthesearchthatthisoneshouldcomeafter.
Condition String Conditionforevaluatingthesearch.Ifthisevaluatestofalse,thesearchisnotexecutedatall.
Guid String Componenttosearchfor. Yes
Id String Idofthesearchfororderinganddependency.
ProductCode String OptionalProductCodetodetermineifthecomponentisinstalled.
Result Enumeration Ratherthansavingthematchingkeypathintothevariable,aComponentSearchcansaveanattributeofthecomponentinstead.Thisattribute'svaluemustbeoneofthefollowing:directory
Savestheparentdirectoryforthecomponent'sfilekeypath;othertypesofkeypatharereturnedunmodified.
stateSavesthestateofthecomponent:absent(2),locallyinstalled(3),willrunfromsource(4),orinstalledindefaultlocation(eitherlocalorfromsource)(5)
keyPathSavesthekeypathofthecomponentifinstalled.Thisisthedefault.
Variable String Nameofthevariableinwhichtoplacetheresultofthesearch.
Yes
SeeAlsoUtilSchema
ComponentSearchRefElement(UtilExtension)
DescriptionReferencesaComponentSearch.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
SeeAlsoUtilSchema
DirectorySearchElement(UtilExtension)
DescriptionDescribesadirectorysearch.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
After String Idofthesearchthatthisoneshouldcomeafter.
Condition String Conditionforevaluatingthesearch.Ifthisevaluatestofalse,thesearchisnotexecutedatall.
Id String Idofthesearchfororderinganddependency.
Path String Directorypathtosearchfor.
Result NMTOKEN Ratherthansavingthematchingdirectorypathintothevariable,aDirectorySearchcansaveanattributeofthematchingdirectoryinstead.Pattern:
'exists'.
Variable String Nameofthevariableinwhichtoplacetheresultofthesearch.
Yes
SeeAlsoUtilSchema
DirectorySearchRefElement(UtilExtension)
DescriptionReferencesaDirectorySearch.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
SeeAlsoUtilSchema
EventManifestElement(UtilExtension)
DescriptionUsedtoinstallEventManifests.
WindowsInstallerreferencesNone
ParentsFile
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
MessageFile String Themessagefile(includingpath)ofalltheprovidersintheeventmanifest.Oftenthemessagefilepathcannotbedetermineduntilsetuptime.PutyourMessageFilehereandthemessageFileNameattributeofthealltheprovidersinthemanifestwillbeupdatedwiththepathbeforeitisregistered.
ParameterFile String Theparameterfile(includingpath)ofalltheprovidersintheeventmanifest.Oftentheparameterfilepathcannotbedetermineduntilsetuptime.Put
yourParameterFilehereandtheparameterFileNameattributeofthealltheprovidersinthemanifestwillbeupdatedwiththepathbeforeitisregistered.
ResourceFile String Theresourcefile(includingpath)ofalltheprovidersintheeventmanifest.Oftentheresourcefilepathcannotbedetermineduntilsetuptime.PutyourResourceFilehereandtheresourceFileNameattributeofthealltheprovidersinthemanifestwillbeupdatedwiththepathbeforeitisregistered.
SeeAlsoUtilSchema
EventSourceElement(UtilExtension)
DescriptionCreatesaneventsource.
WindowsInstallerreferencesNone
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description
CategoryCount Integer ThenumberofcategoriesinCategoryMessageFile.CategoryMessageFilemustbespecifiedtoo.
CategoryMessageFile String Nameofthecategorymessagefile.CategoryCountmustbespecifiedtoo.Notethatthisisaformattedfield,soyoucanuse[#fileId]syntaxtorefertoafilebeinginstalled.ItisalsowrittenasaREG_EXPAND_SZstring,soyoucanuse%environment_variable%syntaxtorefertoafilealreadypresentontheuser'smachine.
EventMessageFile String Nameoftheeventmessagefile.Notethatthisisaformattedfield,soyoucanuse[#fileId]syntaxtotoafilebeinginstalled.ItisalsowrittenasaREG_EXPAND_SZstring,soyoucanuse%environment_variable%syntaxtorefertoafilealreadypresentontheuser'smachine.
KeyPath YesNoType MarkstheEventSourceregistryasthekeypathofthecomponentitbelongsto.
Log String Nameoftheeventsource'slog.
Name String Nameoftheeventsource.
ParameterMessageFile String Nameoftheparametermessagefile.Notethatthisisaformattedfield,soyoucanuse[#fileId]syntaxtorefertoafilebeinginstalled.ItisalsowrittenasaREG_EXPAND_SZstring,soyoucanuse%environment_variable%syntaxtorefertoafilealreadypresentontheuser'smachine.
SupportsErrors YesNoType EquivalenttoEVENTLOG_ERROR_TYPE.
SupportsFailureAudits YesNoType EquivalenttoEVENTLOG_AUDIT_FAILURE.
SupportsInformationals YesNoType EquivalenttoEVENTLOG_INFORMATION_TYPE.
SupportsSuccessAudits YesNoType EquivalenttoEVENTLOG_AUDIT_SUCCESS.
SupportsWarnings YesNoType EquivalenttoEVENTLOG_WARNING_TYPE.
SeeAlsoUtilSchema
FileSearchElement(UtilExtension)
DescriptionDescribesafilesearch.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
After String Idofthesearchthatthisoneshouldcomeafter.
Condition String Conditionforevaluatingthesearch.Ifthisevaluatestofalse,thesearchisnotexecutedatall.
Id String Idofthesearchfororderinganddependency.
Path String Filepathtosearchfor.
Result Enumeration Ratherthansavingthematchingfilepathintothevariable,aFileSearchcansaveanattributeofthematchingfileinstead.Thisattribute'svaluemustbeone
ofthefollowing:exists
Savestrueifamatchingfileisfound;falseotherwise.
versionSavestheversioninformationforfilesthathaveit(.exe,.dll);zero-version(0.0.0.0)otherwise.
Variable String Nameofthevariableinwhichtoplacetheresultofthesearch.
Yes
SeeAlsoUtilSchema
FileSearchRefElement(UtilExtension)
DescriptionReferencesaFileSearch.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
SeeAlsoUtilSchema
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
FileSharePermissionElement(UtilExtension)
DescriptionSetsACLsonaFileShare.ThiselementhasnoIdattribute.Thetableandkeyaretakenfromtheparentelement.
WindowsInstallerreferencesNone
ParentsFileShare
InnerTextNone
ChildrenNone
Attributes
Name Type Description
ChangePermission YesNoType
CreateChild YesNoType Foradirectory,therighttocreateasubdirectory.Onlyvalidundera'CreateFolder'parent.
CreateFile YesNoType Foradirectory,therighttocreateafileinthedirectory.Onlyvalidundera'CreateFolder'parent.
Delete YesNoType
DeleteChild YesNoType Foradirectory,therighttodeleteadirectoryandallthefilesitcontains,includingread-onlyfiles.Onlyvalidundera'CreateFolder'
parent.
GenericAll YesNoType
GenericExecute YesNoType
GenericRead YesNoType specifyingthiswillfailtograntreadaccess
GenericWrite YesNoType
Read YesNoType
ReadAttributes YesNoType
ReadExtendedAttributes YesNoType
ReadPermission YesNoType
Synchronize YesNoType
TakeOwnership YesNoType
Traverse YesNoType Foradirectory,therighttotraversethedirectory.Bydefault,usersareassignedtheBYPASS_TRAVERSE_CHECKINGprivilege,whichignorestheFILE_TRAVERSEaccessright.Onlyvalidundera'CreateFolder'parent.
User String
WriteAttributes YesNoType
WriteExtendedAttributes YesNoType
SeeAlsoUtilSchema
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
GroupRefElement(UtilExtension)
DescriptionUsedtojoinausertoagroup
WindowsInstallerreferencesNone
ParentsUser
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
SeeAlsoUtilSchema
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).
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
PerfCounterElement(UtilExtension)
DescriptionThiselementhasbeendeprecated;pleaseusethePerformanceCounterelementinstead.
WindowsInstallerreferencesNone
ParentsFile
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Name String
SeeAlsoUtilSchema
PerfCounterManifestElement(UtilExtension)
DescriptionUsedtoinstallPerfmonCounterManifests.NotethatthisfunctionalitycannotbeusedwithmajorupgradesthatarescheduledaftertheInstallExecute,InstallExecuteAgain,orInstallFinalizeactions.Formoreinformationonmajorupgradescheduling,seeRemoveExistingProductsAction.
WindowsInstallerreferencesNone
ParentsFile
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
ResourceFileDirectory String Thedirectorythatholdstheresourcefileoftheprovidersintheperfmoncountermanifest.Oftentheresourcefilepathcannotbedetermineduntilsetuptime.Putthedirectoryhereandduringperfmonmanifestregistrtionthe
pathwillbeupdatedintheregistry.Ifnotspecified,Perfmonwilllookfortheresourcefileinthesamedirectoryoftheperfmoncountermanifestfile.
SeeAlsoUtilSchema
PerformanceCategoryElement(UtilExtension)
DescriptionUsedtocreateperformancecategoriesandconfigureperformancecounters.
WindowsInstallerreferencesNone
ParentsComponent
InnerTextNone
ChildrenSequence(min:1,max:1)1. PerformanceCounter(min:0,max:unbounded)
Attributes
Name Type Description
Close String FunctionentrypointintotheLibraryDLLcalledwhenclosingtheperformancecounter.defaultis"ClosePerformanceData"whichshouldbeusedforallmanagedcodeperformancecounters.
Collect String FunctionentrypointintotheLibraryDLLcalledwhencollectingdatafromtheperformancecounter.
Thedefaultis"CollectPerformanceData"whichshouldbeusedforallmanagedcodeperformancecounters.
DefaultLanguage PerformanceCounterLanguageType Defaultlanguagefortheperformancecategoryandcontainedcounters'namesandhelptext.
Help String Optionalhelptextfortheperformancecountercategory.
Id String Uniqueidentifierinyourinstallationpackageforthisperformancecountercategory.
Library String DLLthatcontainstheperformancecounter.defaultis"netfxperf.dll"whichshouldbeusedforallmanagedcodeperformancecounters.
MultiInstance YesNoType Flagthatspecifieswhethertheperformancecountercategoryismultiorsingleinstanced.Defaultissingleinstance.
Name String Namefortheperformancecountercategory.IfthisattributeisnotprovidedtheIdattributeisusedasthenameoftheperformancecountercategory.
Open String Functionentrypointinto
theLibraryDLLcalledwhenopeningtheperformancecounter.defaultis"OpenPerformanceData"whichshouldbeusedforallmanagedcodeperformancecounters.
SeeAlsoUtilSchema
PerformanceCounterElement(UtilExtension)
DescriptionCreatesaperformancecounterinaperformancecategory.
WindowsInstallerreferencesNone
ParentsPerformanceCategory
InnerTextNone
ChildrenNone
Attributes
Name Type Description
Help String Optionalhelptextfortheperformancecounter.
Language PerformanceCounterLanguageType Languageforthepeformancecounternameandhelp.ThedefaultistousetheparentPerformanceCategoryelement'sDefaultLanguageattribute.
Name String Namefortheperformancecounter.
Type PerformanceCounterTypesType Typeoftheperformancecounter.
SeeAlsoUtilSchema
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
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'
parent.
ServiceInterrogate YesNoType RequiredtocalltheControlServicefunctiontoasktheservicetoreportitsstatusimmediately.Onlyvalidundera'ServiceInstall'parent.
ServicePauseContinue YesNoType RequiredtocalltheControlServicefunctiontopauseorcontinuetheservice.Onlyvalidundera'ServiceInstall'parent.
ServiceQueryConfig YesNoType RequiredtocalltheQueryServiceConfigandQueryServiceConfig2functionstoquerytheserviceconfiguration.Onlyvalidundera'ServiceInstall'parent.
ServiceQueryStatus YesNoType RequiredtocalltheQueryServiceStatusfunctiontoasktheservicecontrolmanageraboutthestatusoftheservice.undera'ServiceInstall'parent.
ServiceStart YesNoType RequiredtocalltheStartServicefunctiontostarttheservice.validundera'ServiceInstall'parent.
ServiceStop YesNoType RequiredtocalltheControlServicefunctiontostoptheservice.validundera'ServiceInstall'parent.
ServiceUserDefinedControl YesNoType RequiredtocalltheControlServicefunctiontospecifyauser-definedcontrolcode.Onlyvalidundera'ServiceInstall'parent.
Synchronize YesNoType
TakeOwnership YesNoType
Traverse YesNoType Foradirectory,therighttotraversethedirectory.Bydefault,usersareassignedtheBYPASS_TRAVERSE_CHECKINGprivilege,whichignorestheFILE_TRAVERSEaccessright.Onlyvalidundera'CreateFolder'parent.
User String
Write YesNoType
WriteAttributes YesNoType
WriteExtendedAttributes YesNoType
SeeAlsoUtilSchema
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.
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
(1).
UpgradeCode String TheUpgradeCodetouseforthesearch.ThisattributemustbeomittedifProductCodeisspecified.Notethatifmultipleproductsarefound,thehighestversionedproductwillbeusedfortheresult.
Variable String Nameofthevariableinwhichtoplacetheresultofthesearch.
Yes
SeeAlsoUtilSchema
ProductSearchRefElement(UtilExtension)
DescriptionReferencesaProductSearch.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
SeeAlsoUtilSchema
RegistrySearchElement(UtilExtension)
DescriptionDescribesaregistrysearch.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenNone
Attributes
Name Type Description
After String Idofthesearchthatthisoneshouldcomeafter.
Condition String Conditionforevaluatingthesearch.Ifthisevaluatestofalse,thesearchisnotexecutedatall.
ExpandEnvironmentVariables YesNoType WhethertoexpandanyenvironmentvariablesinREG_SZ,REG_EXPAND_SZ,orREG_MULTI_SZvalues.
Format Enumeration Whatformattoreturnthevaluein.Thisattribute'svaluemustbeoneofthefollowing:raw
Returnstheunformattedvaluedirectlyfromtheregistry.Forexample,aREG_DWORDvalueof'1'isreturnedas'1',not'#1'.
compatibleReturnsthevalueformattedasWindowsInstallerwould.Forexample,aREG_DWORDvalueof'1'isreturnedas'#1',not'1'.
Id String Idofthesearchfororderinganddependency.
Key String Keytosearchfor.
Result Enumeration Ratherthansavingthematchingregistryvalueintothevariable,aRegistrySearchcansaveanattributeofthematchingentryinstead.attribute'svaluemustbeoneofthefollowing:exists
Savestrueifamatchingregistryentryisfound;falseotherwise.
valueSavesthevalueoftheregistrykeyinthevariable.Thisisthedefault.
Root Enumeration Registryroothivetosearchunder.Thisattribute'svaluemustbeoneofthefollowing:
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
RegistrySearchRefElement(UtilExtension)
DescriptionReferencesaRegistrySearch.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
SeeAlsoUtilSchema
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
Removesthefolderonlywhentheparentcomponentisbeinginstalled(msiInstallStateLocalormsiInstallStateSource).
uninstallDefault:Removesthefolderonlywhentheparentcomponentisbeingremoved(msiInstallStateAbsent).
bothRemovesthefolderwhentheparentcomponentisbeinginstalledorremoved.
Property String Theidofapropertythatresolvestothefullpathofthesourcedirectory.Thepropertydoesnothavetoexistintheinstallerdatabaseatcreationtime;itcouldbecreatedatinstallationtimebyacustomaction,onthecommandline,etc.ThepropertyvaluecancontainenvironmentvariablessurroundedbypercentsignssuchasfromaREG_EXPAND_SZregistryvalue;environmentvariableswillbeexpandedbeforebeingevaluatedforafullpath.
Remarks
ThecustomactionthatimplementsRemoveFolderExdoessobywritingtemporaryrowstotheRemoveFiletableforeachsubfolderof
therootfolderyouspecify.BecauseitmightdramaticallyaffectWindowsInstaller'sFileCosting,thetemporaryrowsmustbewrittenbeforetheCostInitializestandardaction.Unfortunately,MSIdoesn'tcreatepropertiesfortheDirectoryhierarchyinyourpackageuntillater,intheCostFinalizeaction.
Aneasyworkaroundforatypicalusecaseofremovingafolderduringuninstallistowritethedirectorypathtotheregistryandtoloaditduringuninstall.SeeTheWiXtoolset's"RememberProperty"patternforanexample.
Ifyouusecustomactionstosetproperties,ensurethattheyarescheduledbeforetheWixRemoveFoldersExcustomaction.
SeeAlsoUtilSchema
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.
ServiceName String ThenameofaWindowsservicetoregisterwiththeRestartManager.Thiscanbeaformattedvaluethatresolvestoaservicename.
SeeAlsoUtilSchema
ServiceConfigElement(UtilExtension)
DescriptionServiceconfigurationinformationforfailureactions.
WindowsInstallerreferencesNone
ParentsComponent,ServiceInstall
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
FirstFailureActionType Enumeration Actiontotakeonthefirstfailureoftheservice.Thisattribute'svaluemustbeoneofthefollowing:none
reboot
restart
runCommand
Yes
ProgramCommandLine String Ifanyofthethree
*ActionTypeattributesis"runCommand",thisspecifiesthecommandtorunwhendoingso.Thisvalueisformatted.
RebootMessage String Ifanyofthethree*ActionTypeattributesis"reboot",thisspecifiesthemessagetobroadcasttoserverusersbeforedoingso.
ResetPeriodInDays Integer Numberofdaysafterwhichtoresetthefailurecounttozeroiftherearenofailures.
RestartServiceDelayInSeconds Integer Ifanyofthethree*ActionTypeattributesis"restart",thisspecifiesthenumberofsecondstowaitbeforedoingso.
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
installwillfail.
SeeAlsoUtilSchema
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
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoUtilSchema
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoUtilSchema
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoUtilSchema
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoUtilSchema
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoUtilSchema
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoUtilSchema
Guid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoUtilSchema
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoUtilSchema
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoUtilSchema
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoUtilSchema
LongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoUtilSchema
PerformanceCounterLanguageType(SimpleType)
DescriptionEnumerationofvalidlanguagesforperformancecounters.
EnumerationTypePossiblevalues:{afrikaans,albanian,arabic,armenian,assamese,azeri,basque,belarusian,bengali,bulgarian,catalan,chinese,croatian,czech,danish,divehi,dutch,english,estonian,faeroese,farsi,finnish,french,galician,georgian,german,greek,gujarati,hebrew,hindi,hungarian,icelandic,indonesian,italian,japanese,kannada,kashmiri,kazak,konkani,korean,kyrgyz,latvian,lithuanian,macedonian,malay,malayalam,manipuri,marathi,mongolian,nepali,norwegian,oriya,polish,portuguese,punjabi,romanian,russian,sanskrit,serbian,sindhi,slovak,slovenian,spanish,swahili,swedish,syriac,tamil,tatar,telugu,thai,turkish,ukrainian,urdu,uzbek,vietnamese}
SeeAlsoUtilSchema
PerformanceCounterTypesType(SimpleType)
DescriptionEnumerationofvalidtypesforperformancecounters.
EnumerationTypePossiblevalues:{averageBase,averageCount64,averageTimer32,counterDelta32,counterTimerInverse,sampleFraction,timer100Ns,counterTimer,rawFraction,timer100NsInverse,counterMultiTimer,counterMultiTimer100Ns,counterMultiTimerInverse,counterMultiTimer100NsInverse,elapsedTime,sampleBase,rawBase,counterMultiBase,rateOfCountsPerSecond64,rateOfCountsPerSecond32,countPerTimeInterval64,countPerTimeInterval32,sampleCounter,counterDelta64,numberOfItems64,numberOfItems32,numberOfItemsHEX64,numberOfItemsHEX32}
SeeAlsoUtilSchema
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoUtilSchema
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoUtilSchema
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoUtilSchema
ShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoUtilSchema
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoUtilSchema
WildCardLongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoUtilSchema
WildCardShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoUtilSchema
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoUtilSchema
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoUtilSchema
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoUtilSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoUtilSchema
UserElement(UtilExtension)
DescriptionUserforallkindsofthings.WhenitisnotnestedunderacomponentitisincludedintheMSIsoitcanbereferencedbyotherelementssuchastheUserattributeintheAppPoolelement.WhenitisnestedunderaComponentelement,theUserwillbecreatedoninstallandcanalsobeusedforreference.
WindowsInstallerreferencesNone
ParentsComponent,Fragment,Module,Product
InnerTextNone
ChildrenSequence(min:1,max:1)1. GroupRef(min:0,max:unbounded)
Attributes
Name Type Description
Id String
CanNotChangePassword YesNoType Theusercannotchangetheaccount'spassword.EquivalenttoUF_PASSWD_CANT_CHANGE.
CreateUser YesNoType Indicateswhetherornottocreatetheuser.Usercreationcanbeskippedifallthatisdesiredistojoinausertogroups.
Disabled YesNoType Theaccountisdisabled.EquivalenttoUF_ACCOUNTDISABLE.
Domain String AFormattedstringthatcontainsthelocalmachineorActiveDirectorydomainfortheuser.
FailIfExists YesNoType Indicatesiftheinstallshouldfailiftheuseralreadyexists.
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
propertiesshouldbeupdatediftheuseralreadyexists.
Vital YesNoType Indicateswhetherfailuretocreatetheuseroraddtheusertoagroupfailstheinstallation.Thedefaultvalueis"yes".
SeeAlsoUtilSchema,Group,GroupRef
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
'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
attributecausestheelement'stextvaluetobeset.Otherwisethisspecifiedtheattributenamethatisset.
Node Enumeration Thisattribute'svaluemustbeoneofthefollowing:element
value
document
On Enumeration Thisattribute'svaluemustbeoneofthefollowing:install
uninstall
PreserveModifiedDate YesNoType Specifieswheterornotthemodificationshouldpreservethemodifieddate.Preservingthemodifieddatewillallowthefiletobepatchedifnoothermodificationshavebeenmade.
Sequence Integer Specifiesthe
orderinwhichthemodificationistobeattemptedontheXMLfile.Itisimportanttoensurethatnewelementsarecreatedbeforeyouattempttoaddanattributetothem.
Value String Thevaluetobewritten.SeetheFormattedtopicforinformationhowtoescapesquarebracketsinthevalue.
VerifyPath String TheXPathtotheelementbeingmodified.Thisisrequiredfor'delete'actions.For'create'actions,VerifyPathisusedtodecideiftheelementalreadyexists.Notethatthisisaformattedfieldandtherefore,squarebracketsintheXPathmustbeescaped.Inaddition,XPathsallowbackslashestobe
usedtoescapecharacters,soifyouintendtoincludeliteralbackslashes,youmustescapethemaswellbydoublingtheminthisattribute.ThestringisformattedbyMSIfirst,andtheresultisconsumedastheXPath.
SeeAlsoUtilSchema
XmlFileElement(UtilExtension)
DescriptionAddsorremoves.xmlfileentries.IfyouusetheXmlFileelementyoumustreferenceWixUtilExtension.dllasitcontainstheXmlFilecustomactions.
WindowsInstallerreferencesNone
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierforxmlfilemodification.
Yes
Action Enumeration ThetypeofmodificationtobemadetotheXMLfilewhenthecomponentisinstalled.Thisattribute'svaluemustbeoneofthefollowing:createElement
Createsanewelementundertheelement
Yes
specifiedinElementPath.TheNameattributeisrequiredinthiscaseandspecifiesthenameofthenewelement.TheValueattributeisnotnecessarywhencreateElementisspecifiedastheaction.IftheValueattributeisset,itwillcausethenewelement'stextvaluetobeset.
deleteValueDeletesavaluefromtheelementspecifiedintheElementPath.IfNameisspecified,theattributewiththatnameisdeleted.IfNameisnotspecified,thetextvalueof
theelementspecifiedintheElementPathisdeleted.TheValueattributeisignoredifdeleteValueistheactionspecified.
setValueSetsavalueintheelementspecifiedintheElementPath.IfNameisspecified,andattributewiththatnameissettothevaluespecifiedinValue.IfNameisnotspecified,thetextvalueoftheelementisset.ValueisarequiredattributeifsetValueistheactionspecified.
bulkSetValueSetsallthevaluesinthe
elementsthatmatchtheElementPath.IfNameisspecified,attributeswiththatnamearesettothesamevaluespecifiedinValue.IfNameisnotspecified,thetextvaluesoftheelementsareset.ValueisarequiredattributeifsetBulkValueistheactionspecified.
ElementPath String TheXPathoftheelementtobemodified.Notethatthisisaformattedfieldandtherefore,squarebracketsintheXPathmustbeescaped.Inaddition,XPathsallowbackslashestobeusedtoescapecharacters,soifyouintendtoincludeliteralbackslashes,youmustescapethemaswellbydoubling
Yes
theminthisattribute.ThestringisformattedbyMSIfirst,andtheresultisconsumedastheXPath.
File String Pathofthe.xmlfiletoconfigure.
Yes
Name String NameofXMLnodetoset/addtothespecifiedelement.Notsettingthisattributecausestheelement'stextvaluetobeset.Otherwisethisspecifiedtheattributenamethatisset.
Permanent YesNoType Specifieswhetherornotthemodificationshouldberemovedonuninstall.ThishasnoeffectonuninstalliftheactionwasdeleteValue.
PreserveModifiedDate YesNoType Specifieswheterornotthemodificationshouldpreservethemodifieddate.
Preservingthemodifieddatewillallowthefiletobepatchedifnoothermodificationshavebeenmade.
SelectionLanguage Enumeration SpecifywhethertheDOMobjectshoulduseXPathlanguageortheoldXSLPatternlanguage(default)asthequerylanguage.Thisattribute'svaluemustbeoneofthefollowing:XPath
XSLPattern
Sequence Integer SpecifiestheorderinwhichthemodificationistobeattemptedontheXMLfile.Itisimportanttoensurethatnewelementsarecreatedbeforeyouattempttoaddanattributetothem.
Value String Thevaluetobewritten.SeetheFormattedtopicforinformationhowtoescapesquarebracketsinthe
value.
SeeAlsoUtilSchema
HelpCollectionElement(VsExtension)
DescriptionHelpNamespaceforahelpcollection.TheparentfileisthekeyfortheHxC(Collection)file.
WindowsInstallerreferencesNone
ParentsFile
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
HelpFileRef(min:0,max:unbounded)HelpFilterRef(min:0,max:unbounded)PlugCollectionInto(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String PrimaryKeyforHelpNamespace.
Yes
Description String FriendlynameforNamespace.
Name String InternalMicrosoftHelpIDforthisNamespace.
Yes
SuppressCustomActions YesNoType SuppresslinkingHelpregistration
customactions.Helpredistributablemergemoduleswillberequired.Usethiswhenbuildingamergemodule.
SeeAlsoVsSchema
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
HelpFileElement(VsExtension)
DescriptionFileforHelpNamespace.TheparentfileisthekeyforHxS(Title)file.
WindowsInstallerreferencesNone
ParentsFile
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String PrimaryKeyforHelpFileTable.
Yes
AttributeIndex String KeyforHxR(Attributes)file.
Index String KeyforHxI(Index)file.
Language Integer LanguageIDforcontentfile.
Yes
Name String InternalMicrosoftHelpIDforthisHelpFile.
Yes
SampleLocation String Keyforafilethat
isinthe"root"ofthesamplesdirectoryforthisHelpFile.
Search String KeyforHxQ(Query)file.
SuppressCustomActions YesNoType SuppresslinkingHelpregistrationcustomactions.Helpredistributablemergemoduleswillberequired.Usethiswhenbuildingamergemodule.
SeeAlsoVsSchema
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
HelpFilterElement(VsExtension)
DescriptionFilterforHelpNamespace.
WindowsInstallerreferencesNone
ParentsFragment,Module,Product
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String PrimaryKeyforHelpFilter.
Yes
FilterDefinition String QueryStringforHelpFilter.
Name String FriendlynameforFilter.
Yes
SuppressCustomActions YesNoType SuppresslinkingHelpregistrationcustomactions.Helpredistributablemergemoduleswillberequired.Usethiswhenbuildingamergemodule.
SeeAlsoVsSchema
HelpFilterRefElement(VsExtension)
DescriptionCreateareferencetoaHelpFileelementinanotherFragment.
WindowsInstallerreferencesNone
ParentsHelpCollection
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String PrimaryKeyforHelpFilter. Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoVsSchema
PlugCollectionIntoElement(VsExtension)
DescriptionPluginforHelpNamespace.
WindowsInstallerreferencesNone
ParentsHelpCollection
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Attributes String KeyforHxA(Attributes)fileofchildnamespace.
SuppressExternalNamespaces YesNoType SuppresslinkingVisualStudioHelpnamespaces.Helpredistributablemergemoduleswillberequired.Usethiswhenbuildingamergemodule.
TableOfContents String KeyforHxTfileofchildnamespace.
TargetCollection String ForiegnKeyintoHelpNamespacetablefortheparentnamespaceintowhichthechildwillbeinserted.Thefollowingspecialkeyscanbeusedtoplugintoexternalnamespacesdefinedoutsideoftheinstaller.MS_VSIPCC_v80:VisualStudio2005MS.VSIPCC.v90:VisualStudio2008
Yes
TargetFeature String Keyforthefeatureparentofthishelpcollection.Requiredonlywhenpluggingintoexternalnamespaces.
TargetTableOfContents String KeyforHxTfileofparentnamespacethatnowincludesthenewchildnamespace.
SeeAlsoVsSchema
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){0,3}\d{1,5}'.
SeeAlsoVsSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoVsSchema
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
peritsinternalmanifest.IfthisvalueisnotcorrecttheVSIXpackagewillnotcorrectlyuninstall.
Permanent YesNoType IndicateswhethertheVSIXpackageisuninstalledwhentheparentComponentisuninstalled.Thedefaultis'no'.
Target String SpecifiestheSKUofVisualStudioinwhichtoregistertheextension.IfnotargetisspecifiedtheextensionisregisteredwithallinstalledSKUs.IftheTargetattributeisspecifiedtheTargetVersionattributemustalsobespecified.ThefollowingisalistofknownVisualStudiotargets:integratedShell,professional,premium,
ultimate,vbExpress,vcExpress,vcsExpress,vwdExpress
TargetVersion VersionType SpecifiestheversionofVisualStudioinwhichtoregistertheextension.ThisattributeisrequirediftheTargetattributeisspecified.
Vital YesNoType IndicateswhetherfailuretoinstalltheVSIXpackagecausestheinstallationtorollback.Thedefaultis'yes'.
VsixInstallerPathProperty String OptionalreferencetoaPropertyelementthatcontainsthepathtotheVsixInstaller.exe.Bydefault,thelatestVsixInstaller.exeonthemachinewillbeusedtoinstalltheVSIXpackage.Itishighly
recommendedthatthisattributeis*not*used.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoVsSchema
AdminExecuteSequenceElement
DescriptionNone
WindowsInstallerreferencesAdminExecuteSequenceTable
ParentsFragment,Module,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
CostFinalize(min:0,max:unbounded):EndstheinternalinstallationcostingprocessbegunbytheCostInitializeaction.CostInitialize(min:0,max:unbounded):Initiatestheinternalinstallationcostingprocess.Custom(min:0,max:unbounded):Usetosequenceacustomaction.FileCost(min:0,max:unbounded):Initiatesdynamiccostingofstandardinstallationactions.InstallAdminPackage(min:0,max:unbounded):Copiestheproductdatabasetotheadministrativeinstallationpoint.InstallFiles(min:0,max:unbounded):CopiesfilesspecifiedintheFiletablefromthesourcedirectorytothedestinationdirectory.InstallFinalize(min:0,max:unbounded):Markstheendofasequenceofactionsthatchangethesystem.InstallInitialize(min:0,max:unbounded):Marksthebeginningofasequenceofactionsthatchangethesystem.InstallValidate(min:0,max:unbounded):Verifiesthatallcostedvolumeshaveenoughspacefortheinstallation.
LaunchConditions(min:0,max:unbounded):QueriestheLaunchConditiontableandevaluateseachconditionalstatementrecordedthere.PatchFiles(min:0,max:unbounded):QueriesthePatchtabletodeterminewhichpatchesaretobeapplied.ResolveSource(min:0,max:unbounded):DeterminesthelocationofthesourceandsetstheSourceDirpropertyifthesourcehasnotbeenresolvedyet.
AttributesNone
SeeAlsoWixSchema
AdminUISequenceElement
DescriptionNone
WindowsInstallerreferencesAdminUISequenceTable
ParentsFragment,Module,Product,UI
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
CostFinalize(min:0,max:unbounded):EndstheinternalinstallationcostingprocessbegunbytheCostInitializeaction.CostInitialize(min:0,max:unbounded):Initiatestheinternalinstallationcostingprocess.Custom(min:0,max:unbounded):Usetosequenceacustomaction.ExecuteAction(min:0,max:unbounded):Initiatestheexecutionsequence.FileCost(min:0,max:unbounded):Initiatesdynamiccostingofstandardinstallationactions.InstallAdminPackage(min:0,max:unbounded):Copiestheproductdatabasetotheadministrativeinstallationpoint.InstallFiles(min:0,max:unbounded):CopiesfilesspecifiedintheFiletablefromthesourcedirectorytothedestinationdirectory.InstallFinalize(min:0,max:unbounded):Markstheendofasequenceofactionsthatchangethesystem.InstallInitialize(min:0,max:unbounded):Marksthebeginningofasequenceofactionsthatchangethesystem.
InstallValidate(min:0,max:unbounded):Verifiesthatallcostedvolumeshaveenoughspacefortheinstallation.LaunchConditions(min:0,max:unbounded):QueriestheLaunchConditiontableandevaluateseachconditionalstatementrecordedthere.Show(min:0,max:unbounded)
AttributesNone
SeeAlsoWixSchema
AdvertiseExecuteSequenceElement
DescriptionNone
WindowsInstallerreferencesAdvtExecuteSequenceTable
ParentsFragment,Module,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
CostFinalize(min:0,max:unbounded):EndstheinternalinstallationcostingprocessbegunbytheCostInitializeaction.CostInitialize(min:0,max:unbounded):Initiatestheinternalinstallationcostingprocess.CreateShortcuts(min:0,max:unbounded):Managesthecreationofshortcuts.Custom(min:0,max:unbounded):Usetosequenceacustomaction.TheonlycustomactionsthatareallowedintheAdvtExecuteSequencearetype19(0x013)type35(0x023)andtype51(0x033).InstallFinalize(min:0,max:unbounded):Markstheendofasequenceofactionsthatchangethesystem.InstallInitialize(min:0,max:unbounded):Marksthebeginningofasequenceofactionsthatchangethesystem.InstallValidate(min:0,max:unbounded):Verifiesthatallcostedvolumeshaveenoughspacefortheinstallation.MsiPublishAssemblies(min:0,max:unbounded):ManagestheadvertisementofCLRandWin32assemblies.PublishComponents(min:0,max:unbounded):Managesthe
advertisementofthecomponentsfromthePublishComponenttable.PublishFeatures(min:0,max:unbounded):Writeseachfeature'sstateintothesystemregistry.PublishProduct(min:0,max:unbounded):Managestheadvertisementoftheproductinformationwiththesystem.RegisterClassInfo(min:0,max:unbounded):ManagestheregistrationofCOMclassinformationwiththesystem.RegisterExtensionInfo(min:0,max:unbounded):Managestheregistrationofextensionrelatedinformationwiththesystem.RegisterMIMEInfo(min:0,max:unbounded):RegistersMIME-relatedregistryinformationwiththesystem.RegisterProgIdInfo(min:0,max:unbounded):ManagestheregistrationofOLEProgIdinformationwiththesystem.
AttributesNone
SeeAlsoWixSchema
AllElement
DescriptionUsedonlyforPatchFamiliestoincludeallchangesbetweenthebaselineandupgradedpackagesinapatch.
WindowsInstallerreferencesNone
ParentsPatchFamily
Remarks
Warning:thisisintendedfortestingpurposesonly.Shippingapatchwithallchangesnegatesthebenefitsofusingpatchfamiliesforincludingonlyspecificchanges.
BecausechangingtheProductCodeisnotsupportedinapatch,theProductCodepropertyisautomaticallyremovedfromthetransform.
SeeAlsoWixSchema
AllocateRegistrySpaceElement
DescriptionEnsurestheneededamountofspaceexistsintheregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesAllocateRegistrySpaceAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
AppDataElement
DescriptionOptionalwayfordefiningAppData,generallyusedforcomplexCDATA.
WindowsInstallerreferencesNone
ParentsCategory
SeeAlsoWixSchema
AppIdElement
DescriptionApplicationIDcontainingDCOMinformationfortheassociatedapplicationGUID.IfthiselementisnestedunderaFragment,Module,orProductelement,itmustbeadvertised.
WindowsInstallerreferencesAppIdTable,RegistryTable
ParentsComponent,File,Fragment,Module,Product,TypeLib
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Class(min:0,max:unbounded)
Attributes
Name Type Description Required
Id Guid SetthisvaluetotheAppIDGUIDthatcorrespondstothenamedexecutable.
Yes
ActivateAtStorage YesNoType Setthisvalueto'yes'toconfiguretheclienttoactivateonthesamesystemaspersistentstorage.
Advertise YesNoType Setthisvalueto'yes'inordertocreateanormal
AppIdtablerow.Setthisvalueto'no'inordertogenerateRegistryrowsthatperformsimilarregistration(withouttheoftenproblematicWindowsInstalleradvertisingbehavior).
Description String SetthisvaluetothedescriptionoftheAppId.ItcanonlybespecifiedwhentheAppIdisnotbeingadvertised.
DllSurrogate String SetthisvaluetospecifythattheclassisaDLLthatistobeactivatedinasurrogateEXEprocess,andthesurrogateprocesstobeusedisthepathofasurrogateEXEfilespecifiedbythevalue.
LocalService String SetthisvaluetothenameofaservicetoallowtheobjecttobeinstalledasaWin32service.
RemoteServerName String Setthisvaluetothenameoftheremoteservertoconfigure
theclienttorequesttheobjectberunataparticularmachinewheneveranactivationfunctioniscalledforwhichaCOSERVERINFOstructureisnotspecified.
RunAsInteractiveUser YesNoType Setthisvalueto'yes'toconfigureaclasstorunundertheidentityoftheusercurrentlyloggedonandconnectedtotheinteractivedesktopwhenactivatedbyaremoteclientwithoutbeingwrittenasaWin32service.
ServiceParameters String SetthisvaluetotheparameterstobepassedtoaLocalServiceoninvocation.
RemarksWhenbeingusedinunadvertisedmode,theattributesintheAppIdelementcorrespondtoregistrykeysasfollows(valuesthatcanbespecifiedinauthoringareinbold):Id
InGeneral[HKCR\AppID\{Id}]
SpecificExample
[HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]
ActivateAtStorageInGeneral
[HKCR\AppID\{Id}]ActivateAtStorage="ActivateAtStorage"
SpecificExample[HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]ActivateAtStorage="Y"
DescriptionInGeneral
[HKCR\AppID\{Id}]@="Description"
SpecificExample[HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]@="MyAppIdDescription"
DllSurrogateInGeneral
[HKCR\AppID\{Id}]DllSurrogate="DllSurrogate"
SpecificExample[HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]DllSurrogate="C:\surrogate.exe"
LocalServiceInGeneral
[HKCR\AppID\{Id}]LocalService="LocalService"
SpecificExample[HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]LocalService="MyServiceName"
RemoteServerNameInGeneral
[HKCR\AppID\{Id}]RemoteServerName="RemoteServerName"
SpecificExample[HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]RemoteServerName="MyRemoteServer"
RunAsInteractiveUserInGeneral
[HKCR\AppID\{Id}]RunAs="RunAsInteractiveUser"
SpecificExample[HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]RunAs="InteractiveUser"
ServiceParametersInGeneral
[HKCR\AppID\{Id}]ServiceParameters="ServiceParameters"
SpecificExample[HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]ServiceParameters="-param"
SeeAlsoWixSchema
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'.
SeeAlsoWixSchema
AppSearchElement
DescriptionUsesfilesignaturestosearchforexistingversionsofproducts.TheAppSearchactionmayusethisinformationtodeterminewhereupgradesaretobeinstalled.TheAppSearchactioncanalsobeusedtosetapropertytotheexistingvalueofanregistryor.inifileentry.AppSearchshouldbeauthoredintotheInstallUISequencetableandInstallExecuteSequencetable.TheinstallerpreventsTheAppSearchactionfromrunningintheInstallExecuteSequencesequenceiftheactionhasalreadyruninInstallUISequencesequence.TheAppSearchactionsearchesforfilesignaturesusingtheCompLocatortablefirst,theRegLocatortablenext,thentheIniLocatortable,andfinallytheDrLocatortable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesAppSearchTable,AppSearchAction
ParentsInstallExecuteSequence,InstallUISequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthatthisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,ComponentSearch,FileSearch,IniFileSearch,RegistrySearch
AssemblyNameElement
DescriptionTheMsiAssemblyNametablespecifiestheschemafortheelementsofastrongassemblycachenamefora.NETFrameworkorWin32assembly.ConsiderusingtheAssemblyattributeonFileelementtohavethetoolsetpopulatetheseentriesautomatically.
WindowsInstallerreferencesMsiAssemblyNameTable
ParentsFile
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String NameoftheattributeassociatedwiththevaluespecifiedintheValuecolumn.
Yes
Value String ValueassociatedwiththenamespecifiedintheNamecolumn.
SeeAlsoWixSchema
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
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
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
beendeprecated;pleaseusetheSourceFileattributeinstead.
SuppressModularization YesNoType UsetosuppressmodularizationofthisBinaryidentifierinmergemodules.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema
BinaryRefElement
DescriptionUsedonlyforPatchFamiliestoincludeonlyabinarytableentryinapatch.
WindowsInstallerreferencesNone
ParentsPatchFamily
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifieroftheBinaryelementtoreference.
Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema
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
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'..'
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
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
settings.Otherwise,thepreviousAPI(whichuseslocaleinsteadoflanguage)isusedtomaintaincompatiblitywithpreviousversionsofWiX.OnVistaandnewerplatforms,thisvaluesetto"yes"willsearchallspecifieduserlanguages,includingfallbacklanguages,inorder.(http://schemas.microsoft.com/wix/BalExtension)
SeeAlsoWixSchema
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.
ApprovedExeForElevationBootstrapperApplicationBootstrapperApplicationRefCatalogChainComponentSearchComponentSearchRefConditionContainerContainerRefDirectorySearchDirectorySearchRefFileSearchFileSearchRefLogProductSearchProductSearchRefRegistrySearchRegistrySearchRefRelatedBundleRequiresTagUpdateUXVariable
Attributes
Name Type Description
AboutUrl String AURLformoreinformationaboutthebundletodisplayinProgramsandFeatures(alsoPrograms).
Compressed YesNoDefaultType WhetherPackagesandPayloadsnotassignedtoacontainershouldbeaddedtothedefaultattached
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
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
extensionscanregisteradditionalattributesatthispointintheschema.
ProviderKey String Optionalattributetoexplicitlyauthortheproviderkeyfortheentirebundle.(http://schemas.microsoft.com/wix/DependencyExtension)
SeeAlsoWixSchema
CatalogElement
DescriptionSpecifyoneormorecatalogfilesthatwillbeusedtoverifythecontentsofthebundle.
WindowsInstallerreferencesNone
ParentsBundle
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Theidentifierofthecatalogelement.
SourceFile String Thecatalogfile
SeeAlsoWixSchema
CategoryElement
DescriptionQualifiedpublishedcomponentforparentComponent
WindowsInstallerreferencesPublishComponentTable
ParentsComponent
InnerTextNone
ChildrenSequence(min:0,max:unbounded)1. AppData(min:0,max:unbounded)
Attributes
Name Type Description Required
Id Guid AstringGUIDthatrepresentsthecategoryofcomponentsbeinggroupedtogether.
Yes
AppData String Anoptionallocalizabletextdescribingthecategory.Thestringiscommonlyparsedbytheapplicationandcanbedisplayedtotheuser.Itshoulddescribethecategory.
Feature String Featurethatcontrolstheadvertisementofthecategory.DefaultstotheprimaryFeaturefortheparentComponent.
Qualifier String Atextstringthatqualifiesthevalue Yes
intheIdattribute.AqualifierisusedtodistinguishmultipleformsofthesameComponent,suchasaComponentthatisimplementedinmultiplelanguages.
SeeAlsoWixSchema
CCPSearchElement
DescriptionUsesfilesignaturestovalidatethatqualifyingproductsareinstalledonasystembeforeanupgradeinstallationisperformed.TheCCPSearchactionshouldbeauthoredintotheInstallUISequencetableandInstallExecuteSequencetable.TheinstallerpreventstheCCPSearchactionfromrunningintheInstallExecuteSequencesequenceiftheactionhasalreadyruninInstallUISequencesequence.TheCCPSearchactionmustcomebeforetheRMCCPSearchaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesCCPSearchAction
ParentsInstallExecuteSequence,InstallUISequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthatthisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,RMCCPSearch,ComplianceCheck
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
packagewillrollbackandthechainwillstopwiththeerror.Thedefaultis"no"whichindicatesallpackagesexecutedduringthechainwillberolledbacktotheirpreviousstatewhenavitalpackagefails.
DisableSystemRestore YesNoType Specifieswhetherthebundlewillattempttocreateasystemrestorepointwhenexecutingthechain.If"yes"isspecifiedthenasystemrestorepointwillnotbecreated.Thedefaultis"no"whichindicatesasystemrestorepointwillbecreatedwhenthebundleisinstalled,uninstalled,repaired,modified,etc.Ifthesystemrestorepointcannotbecreated,thebundlewilllogtheissueandcontinue.
ParallelCache YesNoType Specifieswhetherthebundlewillstartinstallingpackageswhileotherpackagesarestillbeingcached.If"yes",packageswillstartexecutingwhenarollbackboundaryisencountered.Thedefaultis"no"whichdictatesallpackagesmustbecachedbeforeanypackageswillstarttobeinstalled.
SeeAlsoWixSchema
ClassElement
DescriptionCOMClassregistrationforparentComponent.
WindowsInstallerreferencesClassTable,ProgIdTable,RegistryTable,AppIdTable
ParentsAppId,Component,File,TypeLib
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
FileTypeMask(min:0,max:unbounded)Interface(min:0,max:unbounded):TheseInterfaceswillberegisteredwiththeparentClassandTypeLib(ifpresent).ProgId(min:0,max:unbounded):AProgIdassociatedwithClassmustbeachildelementoftheClasselement
Attributes
Name Type Description Required
Id Guid TheClassidentifier(CLSID)ofaCOMserver.
Yes
Advertise YesNoType Setthisvalueto"yes"inordertocreateanormalClasstablerow.Setthisvalueto"no"inordertogenerateRegistryrowsthatperformsimilarregistration
(withouttheoftenproblematicWindowsInstalleradvertisingbehavior).
AppId Guid ThisattributeisonlyallowedwhenaClassisadvertised.UsingthisattributewillreferenceanApplicationIDcontainingDCOMinformationfortheassociatedapplicationGUID.ThevaluemustcorrespondtoanAppId/@IdofanAppIdelementnestedunderaFragment,Module,orProductelement.ToassociateanAppIdwithanon-advertisedclass,nesttheclasswithinaparentAppIdelement.
Argument String ThiscolumnisoptionalonlywhentheContextcolumnissetto"LocalServer"or"LocalServer32"servercontext.ThetextisregisteredastheargumentagainsttheOLEserverandisusedbyOLEforinvokingtheserver.Notethattheresolutionofpropertiesinthe
Argumentfieldislimited.Apropertyformattedas[Property]inthisfieldcanonlyberesolvedifthepropertyalreadyhastheintendedvaluewhenthecomponentowningtheclassisinstalled.Forexample,fortheargument"[#MyDoc.doc]"toresolvetothecorrectvalue,thesameprocessmustbeinstallingthefileMyDoc.docandthecomponentthatownstheclass.
Context List Theservercontext(s)forthisCOMserver.ThisattributeisoptionalforVB6librariesthataremarked"PublicNotCreateable".ClasselementsmarkedAdvertisedmustspecifyatleastoneservercontext.ItismostcommonfortheretobeasinglevaluefortheContextattribute.Thisattribute'svalueshouldbeaspace-delimitedlistcontaingoneormoreofthe
following:LocalServer
A16-bitlocalserverapplication.
LocalServer32A32-bitlocalserverapplication.
InprocServerA16-bitin-processserverDLL.
InprocServer32A32-bitin-processserverDLL.
Control YesNoType Setthisattribute'svalueto'yes'toidentifyanobjectasanActiveXControl.Thedefaultvalueis'no'.
Description String LocalizeddescriptionassociatedwiththeClassIDandProgramID.
ForeignServer String MayonlybespecifiedifthevalueoftheAdvertiseattributeis"no"andServerhasnotbeenspecified.Inaddition,itmayonlybeusedwhentheClasselementisdirectlyundertheComponentelement.
Thevaluecanbethatofanregistrytype(REG_SZ).Thisattributeshouldbeusedtospecifyforeignservers,suchasmscoree.dllifneeded.
Handler String Thedefaultinprochandler.MaybeoptionallyprovidedonlyforContext=LocalServerorLocalServer32.Valueof"1"createsa16-bitInprocHandler(appearingastheInprocHandlervalue).Valueof"2"createsa32-bitInprocHandler(appearingastheInprocHandler32value).Valueof"3"creates16-bitaswellas32-bitInprocHandlers.Anon-numericvalueistreatedasasystemfilethatservesasthe32-bitInprocHandler(appearingastheInprocHandler32value).
Icon String ThefileprovidingtheiconassociatedwiththisCLSID.ReferencetoanIconelement(shouldmatchtheIdattributeofanIcon
element).ThisiscurrentlynotsupportedifthevalueoftheAdvertiseattributeis"no".
IconIndex Integer Iconindexintotheiconfile.
Insertable YesNoType SpecifiestheCLSIDmaybeinsertable.
Programmable YesNoType SpecifiestheCLSIDmaybeprogrammable.
RelativePath YesNoType Whenthevalueis"yes",thebarefilenamecanbeusedforCOMservers.Theinstallerregistersthefilenameonlyinsteadofthecompletepath.Thisenablestheserverinthecurrentdirectorytotakeprecedenceandallowsmultiplecopiesofthesamecomponent.
SafeForInitializing YesNoType MayonlybespecifiedifthevalueoftheAdvertiseattributeis"no".
SafeForScripting YesNoType MayonlybespecifiedifthevalueoftheAdvertiseattributeis"no".
Server String Mayonlybespecified
ifthevalueoftheAdvertiseattributeis"no"andtheForeignServerattributeisnotspecified.FileIdoftheCOMserverfile.IfthiselementisnestedunderaFileelement,thisvaluedefaultstothevalueoftheparentFile/@Id.
ShortPath YesNoType SpecifieswhetherornottousetheshortpathfortheCOMserver.ThiscanonlyapplywhenAdvertiseissetto'no'.Thedefaultis'no'meaningthatitwillusethelongfilenamefortheCOMserver.
ThreadingModel Enumeration ThreadingmodelfortheCLSID.Thisattribute'svaluemustbeoneofthefollowing:apartment
free
both
neutral
single
rental
Version String VersionfortheCLSID.
RemarksWhenbeingusedinunadvertisedmode,theattributesintheClasselementcorrespondtoregistrykeysasfollows(valuesthatcanbespecifiedinauthoringareinbold):Id/Context/Server
InGeneral[HKCR\CLSID\{Id}\Context1]@="[!Server]"[HKCR\CLSID\{Id}\Context2]@="[!Server]"
SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer]@="[!comserv.dll]"[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]@="[!comserv.dll]"
Id/Context/ForeignServerInGeneral
[HKCR\CLSID\{Id}\Context1]@="ForeignServer"[HKCR\CLSID\{Id}\Context2]@="ForeignServer"
SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer]@="mscoree.dll"[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]@="mscoree.dll"
AppIdInGeneral
[HKCR\CLSID\{Id}]AppId="{AppId}"
SpecificExample
[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}]AppId="{00000000-89AB-0000-0123-000000000000}"
ArgumentInGeneral
[HKCR\CLSID\{Id}\Context]@="[!Server]Argument"
SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]@="[!comserv.dll]/arg1/arg2/arg3"
ControlInGeneral
Value"yes"specified:[HKCR\CLSID\{Id}\Control]
SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Control]
DescriptionInGeneral
[HKCR\CLSID\{Id}]@="Description"
SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}]@="DescriptionofExampleCOMComponent"
HandlerInGeneral
Value"1"specified:[HKCR\CLSID\{Id}\InprocHandler]@="ole.dll"Value"2"specified:[HKCR\CLSID\{Id}\InprocHandler32]@="ole32.dll"Value"3"specified:
[HKCR\CLSID\{Id}\InprocHandler]@="ole.dll"[HKCR\CLSID\{Id}\InprocHandler32]@="ole32.dll"Othervaluespecified:[HKCR\CLSID\{Id}\InprocHandler32]@="Handler"
SpecificExample(forothervalue)[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\InprocHandler32]@="handler.dll"
Icon/IconIndexThisisnotcurrentlyhandledproperly.
InsertableInGeneral
Value"no"specified:[HKCR\CLSID\{Id}\NotInsertable]Value"yes"specified:[HKCR\CLSID\{Id}\Insertable]
SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Insertable]
ProgrammableInGeneral
Value"yes"specified:[HKCR\CLSID\{Id}\Programmable]
SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Programmable]
RelativePathUnsupported.PleasecontributethisbacktoWiXifyouknow.
SafeForInitializingInGeneral
Value"yes"specified:
[HKCR\CLSID\{Id}\ImplementedCategories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}]
SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\ImplementedCategories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}]
SafeForScriptingInGeneral
Value"yes"specified:[HKCR\CLSID\{Id}\ImplementedCategories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}]
SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\ImplementedCategories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}]
ThreadingModelInGeneral
[HKCR\CLSID\{Id}\Context]ThreadingModel="ThreadingModel"
SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]ThreadingModel="Apartment"
TypeLibId(fromparentTypeLib/@Id)InGeneral
[HKCR\CLSID\{Id}\TypeLib]@="{TypeLibId}"
SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\TypeLib]@="{11111111-89AB-1111-0123-111111111111}"
VersionInGeneral
[HKCR\CLSID\{Id}\Version]
@="Version"
SpecificExample[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Version]@="1.0.0.0"
SeeAlsoWixSchema,AppId
ColumnElement
DescriptionColumndefinitionforaCustomTable
WindowsInstallerreferencesNone
ParentsCustomTable
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierforthecolumn. Yes
Category Enumeration Categoryofthiscolumn.Thisattributemustbespecifiedwithavalueof'Binary'iftheTypeattribute'svalueis'binary'.Thisattribute'svaluemustbeoneofthefollowing:Text
UpperCase
LowerCase
Integer
DoubleInteger
TimeDate
Identifier
Property
Filename
WildCardFilename
Path
Paths
AnyPath
DefaultDir
RegPath
Formatted
FormattedSddl
Template
Condition
Guid
Version
Language
Binary
CustomSource
Cabinet
Shortcut
Description String Descriptionofthiscolumn.
KeyColumn Integer ColumninthetableinKeyTableattribute.
KeyTable String Tableinwhichthiscolumnisanexternalkey.Canbesemicolondelimited.
Localizable YesNoType Whetherthiscolumncanbelocalized.
MaxValue Integer Maximumvalueforanumericvalue,dateorversioninthiscolumn.
MinValue Integer Minimumvalueforanumericvalue,dateorversioninthiscolumn.
Modularize Enumeration Howthiscolumnshouldbemodularized,ifatall.Thisattribute'svaluemustbeoneofthefollowing:None
Columnshouldnotbemodularized.Thisisthedefaultvalue.
ColumnColumnshouldbemodularized.
ConditionColumnisaconditionandshouldbemodularized.
IconWhenthecolumnisanprimaryorforeignkeytotheIcontableitshouldbemodularizedspecial.
PropertyAnyPropertiesinthecolumnshouldbemodularized.
SemicolonDelimited
Semi-colonlistofkeys,allofwhichneedtobemodularized.
Nullable YesNoType Whetherthiscolumncanbeleftnull.
PrimaryKey YesNoType Whetherthiscolumnisaprimarykey.
Set String Semicolondelimitedlistofpermissiblevalues.
Type Enumeration Thetypeofthiscolumn.Thisattribute'svaluemustbeoneofthefollowing:binary
Columncontainsapathtoafilethatwillbeinsertedintothecolumnasabinaryobject.Ifthisvalueisset,theCategoryattributemustalsobesetwithavalueof'Binary'topassICEvalidation.
intColumncontainsanintegerordatetimevalue(theMinValueandMaxValueattributesshouldalsobeset).
stringColumncontainsanon-localizablestringvalue.
Yes
Width Integer Widthofthiscolumn.
SeeAlsoWixSchema
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
CommandLineElement
DescriptionDescribesadditional,conditionalcommand-lineargumentsforanExePackage.
WindowsInstallerreferencesNone
ParentsExePackage
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Condition String Theconditionthatcontrolswhetherthecommand-lineargumentsspecifiedintheInstallArgument,UninstallArgument,orRepairArgumentattributesareappendedtothecommandlinepassedtotheExePackage.WhichattributeisuseddependsontheactionbeingappliedtotheExePackage.Forexample,whentheExePackageisbeinginstalled,theInstallArgumentattribute
valueisappendedtothecommandlinewhentheExePackageisexecuted.
InstallArgument String Additionalcommand-lineargumentstoapplyduringpackageinstallationifConditionistrue.
RepairArgument String Additionalcommand-lineargumentstoapplyduringpackagerepairifConditionistrue.
UninstallArgument String Additionalcommand-lineargumentstoapplyduringpackageuninstallationifConditionistrue.
SeeAlsoWixSchema
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
ComplianceDriveElement
DescriptionSetstheparentofanestedDirectorySearchelementtoCCP_DRIVE.
WindowsInstallerreferencesNone
ParentsComplianceCheck,Property
InnerTextNone
ChildrenChoiceofelements(min:1,max:1)
DirectorySearch(min:1,max:1)DirectorySearchRef(min:1,max:1)
AttributesNone
SeeAlsoWixSchema
ComponentElement
DescriptionComponentforparentDirectory
WindowsInstallerreferencesComponentTable,ConditionTable,DirectoryTable
ParentsComponentGroup,Directory,DirectoryRef,Feature,FeatureGroup,FeatureRef,Fragment,Module,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
AppId(min:0,max:unbounded)Category(min:0,max:unbounded)Class(min:0,max:unbounded)Condition(min:0,max:unbounded)CopyFile(min:0,max:unbounded)CreateFolder(min:0,max:unbounded)Environment(min:0,max:unbounded)Extension(min:0,max:unbounded)File(min:0,max:unbounded)IniFile(min:0,max:unbounded)Interface(min:0,max:unbounded)IsolateComponent(min:0,max:unbounded)ODBCDataSource(min:0,max:unbounded)ODBCDriver(min:0,max:unbounded)ODBCTranslator(min:0,max:unbounded)ProgId(min:0,max:unbounded)Registry(min:0,max:unbounded)
RegistryKey(min:0,max:unbounded)RegistryValue(min:0,max:unbounded)RemoveFile(min:0,max:unbounded)RemoveFolder(min:0,max:unbounded)RemoveRegistryKey(min:0,max:unbounded)RemoveRegistryValue(min:0,max:unbounded)ReserveCost(min:0,max:unbounded)ServiceConfig(min:0,max:unbounded)ServiceConfigFailureActions(min:0,max:unbounded)ServiceControl(min:0,max:unbounded)ServiceInstall(min:0,max:unbounded)Shortcut(min:0,max:unbounded)SymbolPath(min:0,max:unbounded)TypeLib(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
CertificateComPlusApplicationComPlusApplicationRoleComPlusAssemblyComPlusGroupInApplicationRoleComPlusGroupInPartitionRoleComPlusPartitionComPlusPartitionRoleComPlusPartitionUserComPlusRoleForComponentComPlusRoleForInterfaceComPlusRoleForMethodComPlusSubscriptionComPlusUserInApplicationRoleComPlusUserInPartitionRoleDriver
EventSourceFileShareFirewallExceptionInternetShortcutMessageQueueMessageQueuePermissionPerformanceCategoryProvidesRemoveFolderExRestartResourceServiceConfigSqlDatabaseSqlScriptSqlStringUrlReservationUserVsixPackageWebAppPoolWebDirWebFilterWebPropertyWebServiceExtensionWebSiteWebVirtualDirXmlConfigXmlFile
Attributes
Name Type Description
ComPlusFlags Integer SetthisattributetocreateaComPlusentry.Thevalueshouldbetheexportflagsusedduringthegenerationofthe.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
formoreinformationaboutthepurposeoftheDiskId.
Feature String Identifiesafeaturetowhichthiscomponentbelongs,asashorthandforachildComponentRefelementoftheFeatureelement.ThevalueofthisattributeshouldcorrespondtotheIdattributeofaFeatureelementauthoredelsewhere.Notethatasinglecomponentcanbelongtomultiplefeaturesbutthisattributeallowsyoutospecifyonlyasinglefeature.
Guid ComponentGuid Thisvalueshouldbeaguidthatuniquelyidentifiesthiscomponent'scontents,language,platform,andversion.Ifomitted,thedefaultvalueis'*'whichindicatesthatthelinkershouldgenerateastableguid.Generatableguidsaresupportedonlyforcomponentswithasinglefileasthecomponent'skeypathornofilesandaregistryvalueasthekeypath.It'salsopossibletosetthevaluetoanemptystringtospecifyanunmanaged
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
notsetto'yes'fortheComponentorforachildRegistryvalueorFile,WiXwilllookatthechildelementsundertheComponentinsequentialorderandtrytoautomaticallyselectoneofthemasakeypath.AllowingWiXtoautomaticallyselectakeypathcanbedangerousbecauseaddingorremovingchildelementsundertheComponentcaninadvertantlycausethekeypathtochange,whichcanleadtoinstallationproblems.
Location Enumeration Optionalvaluethatspecifiesthelocationthatthecomponentcanberunfrom.Thisattribute'svaluemustbeoneofthefollowing:local
Preventsthecomponentfromrunningfromthesourceorthenetwork(thisisthedefaultbehaviorifthisattributeisnotset).
sourceEnforcesthatthecomponentcanonly
berunfromthesource(itcannotberunfromtheuser'scomputer).
eitherAllowsthecomponenttorunfromsourceorlocally.
MultiInstance YesNoType Ifthisattributeissetto'yes',anewComponent/@Guidwillbegeneratedforeachinstancetransform.Ensurethatalloftheresourcescontainedinamulti-instanceComponentwillbeinstalledtodifferentpathsbasedontheinstanceProperty;otherwise,theComponentRuleswillbeviolated.
NeverOverwrite YesNoType Ifthisattributeissetto'yes',theinstallerdoesnotinstallorreinstallthecomponentifakeypathfileorakeypathregistryentryforthecomponentalreadyexists.Theapplicationdoesregisteritselfasaclientofthecomponent.Usethisflagonlyforcomponentsthatarebeingregisteredby
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.
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
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
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
canregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,ComponentGroupRef
ComponentGroupRefElement
DescriptionCreateareferencetoaComponentGroupinanotherFragment.
WindowsInstallerreferencesNone
ParentsComponentGroup,Feature,FeatureGroup,FeatureRef,Module
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifieroftheComponentGrouptoreference.
Yes
Primary YesNoType Setthisattributeto'yes'inordertomaketheparentfeatureofthiscomponenttheprimaryfeatureforthiscomponent.Componentsmaybelongtomultiplefeatures.Bydesignatingafeatureastheprimaryfeatureofacomponent,youensurethatwheneveracomponentisselectedforinstall-on-demand(IOD),theprimaryfeaturewillbetheonetoinstallit.Thisattributeshouldonlybesetifacomponentactuallynestsundermultiplefeatures.Ifacomponentnestsunderonlyone
feature,thatfeatureistheprimaryfeatureforthecomponent.Youcannotsetmorethanonefeatureastheprimaryfeatureofagivencomponent.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,ComponentGroup
ComponentRefElement
DescriptionCreateareferencetoaFeatureelementinanotherFragment.
WindowsInstallerreferencesNone
ParentsComponentGroup,Feature,FeatureGroup,FeatureRef,Module,PatchFamily
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifieroftheComponentelementtoreference.
Yes
Primary YesNoType Setthisattributeto'yes'inordertomaketheparentfeatureofthiscomponenttheprimaryfeatureforthiscomponent.Componentsmaybelongtomultiplefeatures.Bydesignatingafeatureastheprimaryfeatureofacomponent,youensurethatwheneveracomponentisselectedforinstall-on-demand(IOD),theprimaryfeaturewillbetheonetoinstallit.Thisattributeshouldonlybesetifacomponentactuallynestsundermultiplefeatures.Ifa
componentnestsunderonlyonefeature,thatfeatureistheprimaryfeatureforthecomponent.Youcannotsetmorethanonefeatureastheprimaryfeatureofagivencomponent.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
HowTosandExamplesHowTo:Addafiletoyourinstaller
SeeAlsoWixSchema,Component
ComponentSearchElement
DescriptionSearchesforfileordirectoryandassignstovalueofparentProperty.
WindowsInstallerreferencesCompLocatorTable,SignatureTable
ParentsComplianceCheck,Property
InnerTextNone
ChildrenChoiceofelements(min:0,max:1)
DirectorySearch(min:0,max:1)DirectorySearchRef(min:0,max:1)FileSearch(min:0,max:1)FileSearchRef(min:0,max:1)
Attributes
Name Type Description Required
Id String Yes
Guid Guid ThecomponentIDofthecomponentwhosekeypathistobeusedforthesearch.
Type Enumeration MustbefileiflastchildisFileSearchelementandmustbedirectoryiflastchildisDirectorySearchelement.Thisattribute'svaluemustbeoneofthefollowing:directory
Thekeypathofthecomponentisadirectory.
fileThekeypathofthecomponentisafile.Thisisthedefaultvalue.
SeeAlsoWixSchema,IniFileSearch,RegistrySearch
ConditionElement
DescriptionConditionsforcomponents,controls,features,andproducts.Theconditionisspecifiedintheinnertextoftheelement.
WindowsInstallerreferencesComponentTable,ControlConditionTable,ConditionTable,LaunchConditionTable
ParentsComponent,Control,Feature,Fragment,PermissionEx,Product
InnerText(xs:string)UnderaComponentelement,theconditionbecomestheconditionofthecomponent.UnderaControlelement,theconditionbecomesaControlConditionentry.UnderaFeatureelement,theconditionbecomesaConditionentry.UnderaFragmentorProductelement,theconditionbecomesaLaunchConditionentry.
ChildrenNone
Attributes
Name Type Description Required
Action Enumeration UsedonlyunderControlelementsandisrequired.Allowsspecificactionstobeappliedtoacontrolbasedontheresultofthiscondition.Thisattribute'svaluemustbeoneofthefollowing:default
SettheControlasthedefault.OnlyusedunderControlelements.
enableEnabletheControl.OnlyusedunderControlelements.
disableDisabletheControl.OnlyusedunderControlelements.
hideHidetheControl.OnlyusedunderControlelements.
showDisplaytheControl.OnlyusedunderControlelements.
Level Integer UsedonlyunderFeatureelementsandisrequired.AllowsmodifyingthelevelofaFeaturebasedontheresultofthiscondition.
Message String UsedonlyunderFragmentorProductelementsandisrequired.Setthevaluetothetexttodisplaywhentheconditionfailsandtheinstallationmustbeterminated.
HowTosandExamplesHowTo:BlockinstallationbasedonOSversionHowTo:Checktheversionnumberofafileduringinstallation
SeeAlsoWixSchema
ConfigurationElement
DescriptionDefinestheconfigurableattributesofmergemodule.
WindowsInstallerreferencesNone
ParentsModule
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
ContextData String Specifiesasemanticcontextfortherequesteddata.
DefaultValue String Specifiesadefaultvaluefortheiteminthisrecordifthemergetooldeclinestoprovideavalue.
Description String Descriptionforauthoring.
DisplayName String Displaynameforauthoring.
Format Enumeration Specifiestheformatofthedatabeingchanged.Thisattribute'svaluemustbeoneofthefollowing:Text
Yes
Key
Integer
Bitfield
HelpKeyword String Keywordintochmfileforauthoring.
HelpLocation String Locationofchmfileforauthoring.
KeyNoOrphan YesNoType DoesnotmergeruleaccordingtorulesinMSISDK.
Name String Definesthenameoftheconfigurableitem.
Yes
NonNullable YesNoType Ifyes,nullisnotavalidentry.
Type String Specifiesthetypeofthedatabeingchanged.
SeeAlsoWixSchema
ConfigurationDataElement
DescriptionDatatouseasinputtoaconfigurablemergemodule.
WindowsInstallerreferencesNone
ParentsMerge
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Name String NameoftheitemintheModuleConfigurationtable.
Yes
Value String Valuetobepassedtoconfigurablemergemodule.
Yes
SeeAlsoWixSchema
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
bythecontainerfilename.
Id String Theuniqueidentifierforthecontainer.IfthisattributeisnotspecifiedtheNameattributewillbeused.
Name String Thefilenameforthiscontainer.Arelativepathmaybeprovidedtoplacethecontainerinasub-folderofthebundle.
Type BurnContainerType Indicateswhetherthecontaineris"attached"tothebundleexecutableorplacedexternaltothebundleextecutableas"detached".Ifthisattributeisnotspecified,thedefaultistocreateadetachedcontainer.
SeeAlsoWixSchema
ContainerRefElement
DescriptionCreateareferencetoanexistingContainerelement.
WindowsInstallerreferencesNone
ParentsBundle
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifierofContainerelementtoreference.
Yes
SeeAlsoWixSchema,Container
ControlElement
DescriptionContainsthecontrolsthatappearoneachdialog.
WindowsInstallerreferencesControlTable,ComboBoxTable,DialogTable,ListBoxTable,ListViewTable,RadioButtonTable
ParentsBillboard,Dialog
InnerTextNone
ChildrenSequence(min:1,max:1)1. Text(min:0,max:1):alternativetoTextattributewhenCDATAis
neededtoescapeXMLdelimiters2. ComboBox(min:0,max:1):ComboBoxtablewithListItem
children3. ListBox(min:0,max:1):ListBoxtablewithListItemchildren4. ListView(min:0,max:1):ListViewtablewithListItemchildren5. RadioButtonGroup(min:0,max:1):RadioButtontablewith
RadioButtonchildren6. Property(min:0,max:1):PropertytableentryfortheProperty
tablecolumnassociatedwiththiscontrol7. Binary(min:0,max:1):Iconreferencediniconcolumnofrow8. Choiceofelements(min:0,max:unbounded)
Condition(min:0,max:unbounded):Conditiontospecifyactionsforthiscontrolbasedontheoutcomeofthecondition.Publish(min:0,max:unbounded)Subscribe(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String CombinedwiththeDialogIdtomakeuptheprimarykeyoftheControltable.
Yes
Bitmap YesNoType ThisattributeisonlyvalidforRadioButtonandPushButtonControls.
Cancel YesNoType Setthisattributeto"yes"tocausethisControltobeinvokedbytheescapekey.
CDROM YesNoType ThisattributeisonlyvalidforVolumeandDirectoryControls.
CheckBoxPropertyRef String ThisattributeisonlyvalidforCheckBoxcontrols.ThevalueisthenameofaPropertythatwasalreadyusedasthePropertyforanotherCheckBoxcontrol.ThePropertyattributecannotbespecified.Theattributeexiststosupportmultiplecheckboxesondifferentdialogsbeingtiedtothesameproperty.
CheckBoxValue String Thisattributeisonly
validforCheckBoxControls.Whenset,thelinkedPropertywillbesettothisvaluewhenthecheckboxischecked.
ComboList YesNoType ThisattributeisonlyvalidforComboBoxControls.
Default YesNoType Setthisattributeto"yes"tocausethisControltobeinvokedbythereturnkey.
Disabled YesNoType Setthisattributeto"yes"tocausetheControltobedisabled.
ElevationShield YesNoType ThisattributeisonlyvalidforPushButtoncontrols.Setthisattributeto"yes"toaddtheUserAccountControl(UAC)elevationicon(shieldicon)tothePushButtoncontrol.Ifthisattribute'svalueis"yes"andtheinstallationisnotyetrunningwithelevatedprivileges,thepushbuttoncontroliscreatedusingtheUser
AccountControl(UAC)elevationicon(shieldicon).Ifthisattribute'svalueis"yes"andtheinstallationisalreadyrunningwithelevatedprivileges,thepushbuttoncontroliscreatedusingtheothericonattributes.Otherwise,thepushbuttoncontroliscreatedusingtheothericonattributes.
Fixed YesNoType ThisattributeisonlyvalidforVolumeandDirectoryControls.
FixedSize YesNoType ThisattributeisonlyvalidforRadioButton,PushButton,andIconControls.
Floppy YesNoType ThisattributeisonlyvalidforVolumeandDirectoryControls.
FormatSize YesNoType ThisattributeisonlyvalidforTextControls.
HasBorder YesNoType ThisattributeisonlyvalidforRadioButtonControls.
Height LocalizableInteger Heightoftherectangular
Yes
boundaryofthecontrol.Thismustbeanon-negativenumber.
Help String Thisattributeisreservedforfutureuse.ThereisnoneedtousethisuntilWindowsInstallerusesitforsomething.
Hidden YesNoType Setthisattributeto"yes"tocausetheControltobehidden.
Icon YesNoType ThisattributeisonlyvalidforRadioButtonandPushButtonControls.
IconSize Enumeration ThisattributeisonlyvalidforRadioButton,PushButton,andIconControls.Thisattribute'svaluemustbeoneofthefollowing:16
32
48
Image YesNoType ThisattributeisonlyvalidforRadioButton,PushButton,andIconControls.
Indirect YesNoType Specifieswhetherthevaluedisplayedorchangedbythiscontrolisreferencedindirectly.Ifthisbitisset,thecontroldisplaysorchangesthevalueofthepropertythathastheidentifierlistedinthePropertycolumnoftheControltable.
Integer YesNoType Setthisattributeto"yes"tocausethelinkedPropertyvaluefortheControltobetreatedasaninteger.Otherwise,thePropertywillbetreatedasastring.
LeftScroll YesNoType Setthisattributeto"yes"tocausethescrollbartodisplayontheleftsideoftheControl.
Multiline YesNoType ThisattributeisonlyvalidforEditControls.
NoPrefix YesNoType ThisattributeisonlyvalidforTextControls.
NoWrap YesNoType ThisattributeisonlyvalidforTextControls.
Password YesNoType Thisattributeisonly
validforEditControls.
ProgressBlocks YesNoType ThisattributeisonlyvalidforProgressBarControls.
Property String Thenameofadefinedpropertytobelinkedtothiscontrol.Thiscolumnisrequiredforactivecontrols.
PushLike YesNoType ThisattributeisonlyvalidforRadioButtonandCheckboxControls.
RAMDisk YesNoType ThisattributeisonlyvalidforVolumeandDirectoryControls.
Remote YesNoType ThisattributeisonlyvalidforVolumeandDirectoryControls.
Removable YesNoType ThisattributeisonlyvalidforVolumeandDirectoryControls.
RightAligned YesNoType Setthisattributeto"yes"tocausetheControltoberightaligned.
RightToLeft YesNoType Setthisattributeto"yes"tocausetheControltodisplayfromrighttoleft.
ShowRollbackCost YesNoType Thisattributeisonlyvalidfor
VolumeCostListControls.
Sorted YesNoType ThisattributeisonlyvalidforListBox,ListView,andComboBoxControls.Setthevalueofthisattributeto"yes"tohaveentriesappearintheorderspecifiedundertheControl.Iftheattributevalueis"no"orabsenttheentriesinthecontrolwillappearinalphabeticalorder.
Sunken YesNoType Setthisattributeto"yes"tocausetheControltobesunken.
TabSkip YesNoType Setthisattributeto"yes"tocausethisControltobeskippedinthetabsequence.
Text String Alocalizablestringusedtosettheinitialtextcontainedinacontrol.Thisattributecancontainaformattedstringthatisprocessedatinstalltimetoinsertthevaluesofpropertiesusing[PropertyName]
syntax.Alsosupportedareenvironmentvariables,fileinstallationpaths,andcomponentinstallationdirectories;seeFormattedfordetails.
ToolTip String ThestringusedfortheTooltip.
Transparent YesNoType ThisattributeisonlyvalidforTextControls.
Type String Thetypeofthecontrol.Couldbeoneofthefollowing:Billboard,Bitmap,CheckBox,ComboBox,DirectoryCombo,DirectoryList,Edit,GroupBox,Hyperlink,Icon,Line,ListBox,ListView,MaskedEdit,PathEdit,ProgressBar,PushButton,RadioButtonGroup,ScrollableText,SelectionTree,Text,VolumeCostList,VolumeSelectCombo
Yes
UserLanguage YesNoType Thisattributeisonly
validforTextControls.
Width LocalizableInteger Widthoftherectangularboundaryofthecontrol.Thismustbeanon-negativenumber.
Yes
X LocalizableInteger Horizontalcoordinateoftheupper-leftcorneroftherectangularboundaryofthecontrol.Thismustbeanon-negativenumber.
Yes
Y LocalizableInteger Verticalcoordinateoftheupper-leftcorneroftherectangularboundaryofthecontrol.Thismustbeanon-negativenumber.
Yes
SeeAlsoWixSchema
CopyFileElement
DescriptionCopyormoveanexistingfileonthetargetmachine,orcopyafilethatisbeinginstalled,toanotherdestination.WhenthiselementisnestedunderaFileelement,theparentfilewillbeinstalled,thencopiedtothespecifieddestinationiftheparentcomponentofthefileisselectedforinstallationorremoval.WhenthiselementisnestedunderaComponentelementandnoFileIdattributeisspecified,thefiletocopyormovemustalreadybeonthetargetmachine.WhenthiselementisnestedunderaComponentelementandtheFileIdattributeisspecified,thespecifiedfileisinstalled,thencopiedtothespecifieddestinationiftheparentcomponentisselectedforinstallationorremoval(usethisoptiontocontrolthecopyofafileinadifferentcomponentbytheparentcomponent'sinstallationstate).Ifthespecifieddestinationdirectoryisthesameasthedirectorycontainingtheoriginalfileandthenamefortheproposedsourcefileisthesameastheoriginal,thennoactiontakesplace.
WindowsInstallerreferencesDuplicateFileTable,MoveFileTable
ParentsComponent,File
InnerTextNone
ChildrenNone
Attributes
Name Type Description
Id String Primarykeyusedtoidentifythisparticularentry.
Delete YesNoType ThisattributecannotbespecifiediftheelementisnestedunderaFileelementortheFileIdattributeisspecified.Inothercases,iftheattributeisnotspecified,thedefaultvalueis"no"andthefileiscopied,notmoved.Setthevalueto"yes"tomovethefile(thusdeletingthesourcefile)insteadofcopyingit.
DestinationDirectory String Setthisvaluetothedestinationdirectorywhereanexistingfileonthetargetmachineshouldbemovedorcopiedto.ThisDirectorymustexistintheinstallerdatabaseatcreationtime.attributecannotbespecifiedinconjunctionwithDestinationProperty.
DestinationLongName LongFileNameType Thisattributehasbeendeprecated;pleaseusetheDestinationNameattributeinstead.
DestinationName LongFileNameType InpriorversionsoftheWiXtoolset,thisattributespecifiedthe
shortfilename.setthisvaluetothelocalizablenametobegiventotheoriginalfileafteritismovedorcopied.Ifthisattributeisnotspecified,thenthedestinationfileisgiventhesamenameasthesourcefile.shortfilenameisspecified,theDestinationShortNameattributemaynotbespecified.Ifalongfilenameisspecified,theDestinationLongNameattributemaynotbespecified.Also,ifthisvalueisalongfilename,theDestinationShortNameattributemaybeomittedtoallowWiXtoattempttogenerateauniqueshortfilename.However,ifthisnamecollideswithanotherfileoryouwishtomanuallyspecifytheshortfilename,thentheDestinationShortNameattributemaybespecified.
DestinationProperty String Setthisvaluetoapropertythatwillhaveavaluethatresolves
tothefullpathofthedestinationdirectory.Thepropertydoesnothavetoexistintheinstallerdatabaseatcreationtime;itcouldbecreatedatinstallationtimebyacustomaction,onthecommandline,etc.ThisattributecannotbespecifiedinconjunctionwithDestinationDirectory.
DestinationShortName ShortFileNameType Theshortfilenameofthefilein8.3format.Thisattributeshouldonlybesetifthereisaconflictbetweengeneratedshortfilenamesoryouwishtomanuallyspecifytheshortfilename.
FileId String ThisattributecannotbespecifiediftheelementisnestedunderaFileelement.Setthisattribute'svaluetotheidentifierofafilefromadifferentcomponenttocopyitbasedontheinstallstateoftheparentcomponent.
SourceDirectory String Thisattributecannotbespecifiediftheelementisnested
underaFileelementortheFileIdattributeisspecified.Setvaluetothesourcedirectoryfromwhichtocopyormoveanexistingfileonthetargetmachine.Directorymusttheinstallerdatabaseatcreationtime.attributecannotbespecifiedinconjunctionwithSourceProperty.
SourceName WildCardLongFileNameType ThisattributecannotbespecifiediftheelementisnestedunderaFileelementortheFileIdattributeisspecified.Setvaluetothelocalizablenameofthefile(s)tobecopiedormoved.Allofthefilesthatmatchthewildcardwillberemovedfromthespecifieddirectory.Thevalueisafilenamethatmayalsocontainthewildcardcharacters"?"foranysinglecharacteror"*"forzeroormoreoccurrencesofanycharacter.Ifthisattributeisnot
specified(andthiselementisnotnestedunderaFileelementorspecifyaFileIdattribute)thentheSourcePropertyattributeshouldbesettothenameofapropertythatwillresolvetothefullpathofthesourcefilename.Ifthevalueofthisattributecontainsa"*"wildcardandtheDestinationNameattributeisspecified,allmovedorcopiedfilesretainthefilenamesfromtheirsources.
SourceProperty String ThisattributecannotbespecifiediftheelementisnestedunderaFileelementortheFileIdattributeisspecified.Setvaluetoapropertythatwillhaveavaluethatresolvestothefullpathofthesourcedirectory(orfullpathincludingfilenameifSourceNameisnotspecified).Thepropertydoesnothavetoexistintheinstallerdatabaseat
creationtime;itcouldbecreatedatinstallationtimebyacustomaction,onthecommandline,etc.ThisattributebespecifiedinconjunctionwithSourceDirectory.
SeeAlsoWixSchema,RemoveFile
CostFinalizeElement
DescriptionEndstheinternalinstallationcostingprocessbegunbytheCostInitializeaction.AnystandardorcustomactionsthataffectcostingshouldbesequencedbeforetheCostInitializeaction.CalltheFileCostactionimmediatelyfollowingtheCostInitializeactionandthencalltheCostFinalizeactiontomakeallfinalcostcalculationsavailabletotheinstallerthroughtheComponenttable.TheCostFinalizeactionmustbeexecutedbeforestartinganyuserinterfacesequencewhichallowstheusertoviewormodifyFeaturetableselectionsordirectories.TheCostFinalizeactionqueriestheConditiontabletodeterminewhichfeaturesarescheduledtobeinstalled.CostingisdoneforeachcomponentintheComponenttable.TheCostFinalizeactionalsoverifiesthatallthetargetdirectoriesarewritablebeforeallowingtheinstallationtocontinue.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesCostFinalizeAction
ParentsAdminExecuteSequence,AdminUISequence,AdvertiseExecuteSequence,InstallExecuteSequence,InstallUISequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethe
positionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,CostInitialize,FileCost
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
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
CreateFoldersElement
DescriptionCreatesemptyfoldersforcomponentsthataresettobeinstalled.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesCreateFoldersAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
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
CustomElement
DescriptionUsetosequenceacustomaction.
WindowsInstallerreferencesNone
ParentsAdminExecuteSequence,AdminUISequence,AdvertiseExecuteSequence,InstallExecuteSequence,InstallUISequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
Action String TheactiontowhichtheCustomelementapplies.
Yes
After String Thenameofthestandardorcustomactionafterwhichthisactionshouldbeperformed.MutuallyexclusivewithBefore,OnExit,andSequenceattributes
Before String Thenameofthestandardorcustomactionbeforewhichthisactionshouldbeperformed.MutuallyexclusivewithOnExit,After,andSequenceattributes
OnExit ExitType MutuallyexclusivewithBefore,After,andSequenceattributes
Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Thesequencenumberforthisaction.MutuallyexclusivewithBefore,After,andOnExitattributes
SeeAlsoWixSchema,CustomAction
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.
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
Indicatesthatthecustomactionrunsin-script(possiblywithelevatedprivileges).
firstSequenceIndicatesthatthecustomactionwillonlyruninthefirstsequencethatrunsit.
immediateIndicatesthatthecustomactionwillrunduringnormalprocessingtimewithuserprivileges.Thisisthedefault.
oncePerProcessIndicatesthatthecustomactionwillonlyruninthefirstsequencethatrunsitinthesameprocess.
rollbackIndicatesthatacustomactionwillrunintherollbacksequencewhenafailureduringinstallation,usuallytoundochangesmadebyadeferredcustomaction.
secondSequenceIndicatesthatacustomactionshouldberunasecondtimeifitwaspreviouslyruninanearliersequence.
FileKey String ThisattributespecifiesareferencetoaFileelementwithmatchingIdattributethatexecutethecustomactioncodeinthefileafterthefileisinstalled.ThisattributeistypicallyusedwiththeExeCommandattributetospecifyatype18customactionthatrunsaninstalledexecutable,withtheDllEntryattributetospecifyaninstalledcustomactionDLLtouseforatype17customaction,orwiththeVBScriptCallorJScriptCallattributestospecifyatype21or22customaction.
HideTarget YesNoType Ensurestheinstallerdoesnotlogthe
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
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
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
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
CustomPropertyElement
DescriptionAcustompropertyforthePatchMetadatatable.
WindowsInstallerreferencesNone
ParentsPatchMetadata
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Company String Thenameofthecompany. Yes
Property String Thenameofthemetadataproperty.
Yes
Value String Valueofthemetadataproperty. Yes
SeeAlsoWixSchema
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.
SeeAlsoWixSchema
DataElement
DescriptionUsedforaCustomTable.SpecifiesthedatafortheparentRowandspecifiedColumn.
WindowsInstallerreferencesNone
ParentsRow
InnerText(xs:string)Adatavalue
ChildrenNone
Attributes
Name Type Description Required
Column String Specifiesinwhichcolumntoinsertthisdata.
Yes
SeeAlsoWixSchema
DeleteServicesElement
DescriptionStopsaserviceandremovesitsregistrationfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesDeleteServicesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
DependencyElement
DescriptionDeclaresadependencyonanothermergemodule.
WindowsInstallerreferencesNone
ParentsModule
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
RequiredId String Identifierofthemergemodulerequiredbythemergemodule.
Yes
RequiredLanguage Integer NumericlanguageIDofthemergemoduleinRequiredID.
Yes
RequiredVersion String VersionofthemergemoduleinRequiredID.
SeeAlsoWixSchema
DialogElement
DescriptionDefinesadialogboxintheDialogTable.
WindowsInstallerreferencesControlTable,ComboBoxTable,DialogTable,ListBoxTable,ListViewTable,RadioButtonTable
ParentsUI
InnerTextNone
ChildrenSequence(min:1,max:1)1. Control(min:0,max:unbounded):Controlelementsbelonging
tothisdialog.
Attributes
Name Type Description Required
Id String Uniqueidentifierforthedialog.
Yes
CustomPalette YesNoType Usedtospecifyifpicturesinthedialogboxarerenderedwithacustompalette.
ErrorDialog YesNoType Specifiesthisdialogasanerrordialog.
Height Integer Theheightofthedialogboxindialogunits.
Yes
Hidden YesNoType Usedtohidethedialog.
KeepModeless YesNoType KeepmodelessdialogsalivewhenthisdialogiscreatedthroughDoAction.
LeftScroll YesNoType Usedtoalignthescrollbarontheleft.
Modeless YesNoType Usedtosetthedialogasmodeless.
NoMinimize YesNoType Usedtospecifyifthedialogcanbeminimized.
RightAligned YesNoType Aligntextontheright.
RightToLeft YesNoType Usedtospecifyifthetextinthedialogshouldbedisplayedinrighttoleftreadingorder.
SystemModal YesNoType Usedtosetthedialogassystemmodal.
Title String Thetitleofthedialogbox.
TrackDiskSpace YesNoType Havethedialogperiodicallycalltheinstallertocheckifavailablediskspacehaschanged.
Width Integer Thewidthofthedialogboxindialogunits.
Yes
X Integer Horizontalplacementofthedialogboxasapercentageofscreenwidth.Thedefaultvalueis50.
Y Integer Verticalplacementofthe
dialogboxasapercentageofscreenheight.Thedefaultvalueis50.
SeeAlsoWixSchema
DialogRefElement
DescriptionReferencetoaDialog.Thiswillcausetheentirereferencedsection'scontentstobeincludedintheinstallerdatabase.
WindowsInstallerreferencesNone
ParentsUI
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifieroftheDialogtoreference.
Yes
SeeAlsoWixSchema,Dialog
DigitalCertificateElement
DescriptionAddsadigitalcertificate.
WindowsInstallerreferencesMsiDigitalCertificateTable
ParentsDigitalSignature,PackageCertificates,PatchCertificates
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierforacertificatefile. Yes
SourceFile String Thepathtothecertificatefile. Yes
SeeAlsoWixSchema
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
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
DirectoryElement
DescriptionDirectorylayoutfortheproduct.Alsospecifiesthemappingsbetweensourceandtargetdirectories.
WindowsInstallerreferencesDirectoryTable
ParentsDirectory,DirectoryRef,Fragment,Module,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Component(min:0,max:unbounded)Directory(min:0,max:unbounded)Merge(min:0,max:unbounded)SymbolPath(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
Attributes
Name Type Description
Id String Thisvalueistheuniqueidentifierofthedirectoryentry.
ComponentGuidGenerationSeed Guid TheComponentGuidGenerationSeedisaguidthatmustbeusedwhenaComponentwiththegenerateguiddirective("*")rootedinastandardWindows
Installerdirectory(forexample,ProgramFilesFolderorCommonFilesFolder).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.
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
directoryin8.3format.attributeshouldonlybesetifthereisaconflictbetweengeneratedshortdirectorynamesortheuserwantstomanuallyspecifytheshortdirectoryname.
ShortSourceName ShortFileNameType Theshortnameofthedirectoryonthesourcemediain8.3format.shouldonlybesetifthereisaconflictbetweengeneratedshortdirectorynamesuserwantstomanuallyspecifytheshortsourcedirectoryname.
SourceName LongFileNameType Thenameofthedirectoryonthesourcemedia.attributeisnotspecified,WindowsInstallerwilldefaulttotheNameattribute.
InpriorversionsoftheWiXtoolset,thisattributespecifiedtheshortsourcedirectoryname.Thisattribute'svaluemaynowbeeitherashortorlongdirectoryname.directorynameisspecified,theShortSourceNameattributemaynotbespecified.Ifalongdirectorynameisspecified,theLongSourceattributemaynotbespecified.Also,ifthisvalueisalongdirectoryname,theShortSourceNameattributemaybeomittedto
toattempttogenerateauniqueshortdirectoryname.However,ifthisnamecollideswithanotherdirectoryoryouwishtomanuallyspecifyshortdirectoryname,thentheShortSourceNameattributemaybespecified.
src String Thisattributehasbeendeprecated;pleaseusetheFileSourceattributeinstead.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
HowTosandExamplesHowTo:Addafiletoyourinstaller
SeeAlsoWixSchema,DirectoryRef
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.
FileSource String UsedtosetthefilesystemsourceforthisDirectoryRef'schildelements.Formoreinformation,seeSpecifyingsourcefiles.
src String Thisattributehasbeendeprecated;pleaseusetheFileSourceattributeinstead.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
HowTosandExamplesHowTo:Addafiletoyourinstaller
SeeAlsoWixSchema,Directory
DirectorySearchElement
DescriptionSearchesfordirectoryandassignstovalueofparentProperty.
WindowsInstallerreferencesDrLocatorTable,SignatureTable
ParentsComplianceCheck,ComplianceDrive,ComponentSearch,DirectorySearch,DirectorySearchRef,IniFileSearch,Property,RegistrySearch
InnerTextNone
ChildrenChoiceofelements(min:0,max:1)
DirectorySearch(min:0,max:1)DirectorySearchRef(min:0,max:1)FileSearch(min:0,max:1)FileSearchRef(min:0,max:1)
Attributes
Name Type Description Required
Id String Uniqueidentifierforthedirectorysearch.
Yes
AssignToProperty YesNoType SetthevalueoftheouterPropertytotheresultofthissearch.Seeremarksformoreinformation.
Depth Integer Depthbelowthepaththattheinstaller
searchesforthefileordirectoryspecifiedbythesearch.Seeremarksformoreinformation.
Path String Pathontheuser'ssystem.Eitherabsolute,orrelativetocontainingdirectories.
Remarks
UsetheAssignToPropertyattributetosearchforafilebutsettheouterpropertytothedirectorycontainingthefile.Whenthisattributeissetto'yes',youmayonlynestaFileSearchelementwithauniqueIdordefinenochildelement.
WhentheparentDirectorySearch/@Depthattributeisgreaterthan0,theFileSearch/@IdattributemustbeabsentorthesameastheparentDirectorySearch/@Idattributevalue,unlesstheparentDirectorySearch/@AssignToPropertyattributevalueis'yes'.
HowTosandExamplesHowTo:ChecktheversionnumberofafileduringinstallationHowTo:ReferenceanotherDirectorySearchelementHowTo:Gettheparentdirectoryofafilesearch
SeeAlsoWixSchema,ComponentSearch,IniFileSearch,RegistrySearch
DirectorySearchRefElement
DescriptionReferencesanexistingDirectorySearchelement.
WindowsInstallerreferencesNone
ParentsComplianceDrive,ComponentSearch,DirectorySearch,DirectorySearchRef,IniFileSearch,Property,RegistrySearch
InnerTextNone
ChildrenChoiceofelements(min:0,max:1)
DirectorySearch(min:0,max:1)DirectorySearchRef(min:0,max:1)FileSearch(min:0,max:1)FileSearchRef(min:0,max:1)
Attributes
Name Type Description Required
Id String Idofthesearchbeingreferredto. Yes
Parent String ThisattributeisthesignatureoftheparentdirectoryofthefileordirectoryintheSignature_column.Ifthisfieldisnull,andthePathcolumndoesnotexpandtoafullpath,thenallthefixeddrivesoftheuser'ssystemaresearchedbyusingthePath.Thisfieldisakeyintooneofthefollowingtables:theRegLocator,theIniLocator,the
CompLocator,ortheDrLocatortables.
Path String Pathontheuser'ssystem.Eitherabsolute,orrelativetocontainingdirectories.
Remarks
AreferencetoanotherDirectorySearchelementmustreferencethesameId,thesameParentId,andthesamePath.IfanyoftheseattributevaluesaredifferentyoumustinsteaduseaDirectorySearchelement.
HowTosandExamplesHowTo:ReferenceanotherDirectorySearchelement
SeeAlsoWixSchema,ComponentSearch,IniFileSearch,RegistrySearch
DisableRollbackElement
DescriptionDisablesrollbackfortheremainderoftheinstallation.Specialactionsdon'thaveabuilt-insequencenumberandthusmustappearrelativetoanotheraction.ThesuggestedwaytodothisisbyusingtheBeforeorAfterattribute.InstallExecuteandInstallExecuteAgaincanoptionallyappearanywherebetweenInstallInitializeandInstallFinalize.
WindowsInstallerreferencesDisableRollbackAction
ParentsInstallExecuteSequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthatthisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
DuplicateFilesElement
DescriptionDuplicatesfilesinstalledbytheInstallFilesaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesDuplicateFilesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
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
executable.
FileSource String ReferencetotheFileelementthatisthechainerexecutable.MutuallyexclusivewiththeBinarySourceandPropertySourceattributes.
PropertySource String ReferencetoaPropertythatresolvestothefullpathtothechainerexecutable.MutuallyexclusivewiththeBinarySourceandFileSourceattributes.
SeeAlsoWixSchema,Binary,File,Property,EmbeddedChainerRef
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
EmbeddedUIElement
DescriptionElementvalueisthecondition.UseCDATAifmessagecontainsdelimitercharacters.
WindowsInstallerreferencesMsiEmbeddedUITable
ParentsUI
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenSequence(min:1,max:1)1. EmbeddedUIResource(min:0,max:unbounded):Specifies
extrafilestobeextractedforusebytheembeddedUI,suchaslanguageresources.
Attributes
Name Type Description
Id String UniqueidentifierforembeddedUI.IfthisattributeisnotspecifiedtheNameattributeorthefilenameSourceFileattributewillbeused.
IgnoreActionData YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_ACTIONDATAmessages.
IgnoreActionStart YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_ACTIONSTARTmessages.
IgnoreCommonData YesNoType EmbeddedUIwillnotrecieveany
INSTALLLOGMODE_COMMONDATAmessages.
IgnoreError YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_ERRORmessages.
IgnoreFatalExit YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_FATALEXITmessages.
IgnoreFilesInUse YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_FILESINUSEmessages.
IgnoreInfo YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_INFOmessages.
IgnoreInitialize YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_INITIALIZEmessages.
IgnoreInstallEnd YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_INSTALLENDmessages.
IgnoreInstallStart YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_INSTALLSTARTmessages.
IgnoreOutOfDiskSpace YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_OUTOFDISKSPACEmessages.
IgnoreProgress YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_PROGRESSmessages.
IgnoreResolveSource YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_RESOLVESOURCEmessages.
IgnoreRMFilesInUse YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_RMFILESINUSE
messages.
IgnoreShowDialog YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_SHOWDIALOGmessages.
IgnoreTerminate YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_TERMINATEmessages.
IgnoreUser YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_USERmessages.
IgnoreWarning YesNoType EmbeddedUIwillnotrecieveanyINSTALLLOGMODE_WARNINGmessages.
Name LongFileNameType ThenamefortheembeddedUIDLLwhenitisextractedfromtheProductandexecuted.(WindowsInstallersupportthetypicalshortfilenameandlongfilenamecombinationforembeddedUIfilesasitdoesforotherkindsoffiles.)IfthisattributeisnotspecifiedthefilenameportionoftheSourceFileused.
SourceFile String PathtothebinaryfilethatistheembeddedUI.ThismustbeaDLLthatexportsthefollowingthreeentrypoints:InitializeEmbeddedUI,EmbeddedUIHandlerandShutdownEmbeddedUI.
SupportBasicUI YesNoType SetyestoallowtheWindowsInstallertodisplaytheembeddedUIduringbasicUIlevelinstallation.
SeeAlsoWixSchema
EmbeddedUIResourceElement
DescriptionDefinesaresourceforusebytheembeddedUI.
WindowsInstallerreferencesMsiEmbeddedUITable
ParentsEmbeddedUI
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String IdentifierfortheembeddedUIresource.
Yes
Name LongFileNameType ThenamefortheresourcewhenitisextractedfromtheProductforusebytheembeddedUIDLL.(WindowsInstallerdoesnotsupportthetypicalshortfilenameandlongfilenamecombinationforembeddedUIfilesasitdoesforotherkindsoffiles.)IfthisattributeisnotspecifiedtheId
Yes
attributewillbeused.
SourceFile String PathtothebinaryfilethatistheembeddedUIresource.
Yes
SeeAlsoWixSchema,EmbeddedUI
EnsureTableElement
DescriptionUsethiselementtoensurethatatableappearsintheinstallerdatabase,evenifitsempty.
WindowsInstallerreferencesNone
ParentsFragment,Module,Product
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Thenameofthetable. Yes
RemarksThiselementisparticularlyusefulfortwoproblemsthatmayoccurwhilemergingmergemodules:1. Thefirstlikelyproblemisthatinordertoproperlymergeyou
needtohavecertaintablespresentpriortomerging.Usingthiselementisonewaytoensurethosetablesarepresentpriortothemerging.
2. Theothercommonproblemisthatamergemodulehasincorrectvalidationinformationaboutsometables.Byensuringthesetablespriortomerging,youcanavoidthisproblembecausethecorrectvalidationinformationwillgointotheinstallerdatabasebeforethemergemodulehasachancetosetitincorrectly.
SeeAlso
WixSchema
EnvironmentElement
DescriptionEnvironmentvariablesaddedorremovedfortheparentcomponent.
WindowsInstallerreferencesEnvironmentTable
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Uniqueidentifierforenvironmententry.
Yes
Action Enumeration Specfieswhethertheenvironmentalvariableshouldbecreated,setorremovedwhentheparentcomponentisinstalled.Thisattribute'svaluemustbeoneofthefollowing:create
Createstheenvironmentvariableifitdoesnotexist,thensetitduringinstallation.Thishasnoeffectonthevalueoftheenvironmentvariableifitalreadyexists.
setCreatestheenvironmentvariableifitdoesnotexist,andthensetitduringinstallation.Iftheenvironmentvariableexists,setitduringtheinstallation.
removeRemovestheenvironmentvariableduringaninstallation.TheinstalleronlyremovesanenvironmentvariableduringaninstallationifthenameandvalueofthevariablematchtheentriesintheNameandValueattributes.Ifyouwanttoremoveanenvironmentvariable,regardlessofitsvalue,donotsettheValueattribute.
Name String Nameoftheenvironmentvariable.
Yes
Part Enumeration Thisattribute'svaluemustbeoneofthefollowing:all
Thisvalueistheentireenvironmentalvariable.Thisisthedefault.
firstThisvalueisprefixed.
last
Thisvalueisappended.
Permanent YesNoType Specifiesthattheenvironmentvariableshouldnotberemovedonuninstall.
Separator String Optionalattributetochangetheseparatorusedbetweenvalues.Bydefaultasemicolonisused.
System YesNoType Specifiesthattheenvironmentvariableshouldbeaddedtothesystemenvironmentspace.Thedefaultis'no'whichindicatestheenvironmentvariableisaddedtotheuserenvironmentspace.
Value String Thevaluetosetintotheenvironmentvariable.Ifthisattributeisnotset,theenvironmentvariableisremovedduringinstallationifitexistsonthemachine.
SeeAlsoWixSchema
ErrorElement
DescriptionNone
WindowsInstallerreferencesErrorTable
ParentsUI
InnerText(xs:string)ElementvalueisMessage,useCDATAifmessagecontainsdelimitercharacters
ChildrenNone
Attributes
Name Type Description Required
Id Integer Numberoftheerrorforwhichamessageisbeingprovided.SeeMSISDKforerrordefinitions.
SeeAlsoWixSchema
ExclusionElement
DescriptionDeclaresamergemodulewithwhichthismergemoduleisincompatible.
WindowsInstallerreferencesNone
ParentsModule
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
ExcludedId String Identifierofthemergemodulethatisincompatible.
Yes
ExcludedMaxVersion String Maximumversionexcludedfromarange.Ifnotset,allversionsafterminareexcluded.Ifneithermaxnormin,noexclusionbasedonversion.
ExcludedMinVersion String Minimumversionexcludedfromarange.Ifnotset,allversionsbeforemaxareexcluded.Ifneithermax
normin,noexclusionbasedonversion.
ExcludeExceptLanguage Integer NumericlanguageIDofthemergemoduleinExcludedID.Allexceptthislanguagewillbeexcluded.OnlyoneofExcludeExceptLanguageandExcludeLanguagemaybespecified.
ExcludeLanguage Integer NumericlanguageIDofthemergemoduleinExcludedID.Thespecifiedlanguagewillbeexcluded.OnlyoneofExcludeExceptLanguageandExcludeLanguagemaybespecified.
SeeAlsoWixSchema
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
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
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,
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
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
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
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
tothisbehavior.
SeeAlsoWixSchema
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
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
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
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
tableentryoftheupgradedimage.
Name String Identifierforthefamily. Yes
SequenceStart Int Sequencenumberforthestartingfile.
VolumeLabel String EnteredintotheVolumeLabelfieldofthenewMediatablerecord.
SeeAlsoWixSchema
FeatureElement
DescriptionAfeaturefortheFeaturetable.Featuresarethesmallestinstallableunit.Seemsi.chmformoredetailedinformationonthemyriadinstallationoptionsforafeature.
WindowsInstallerreferencesFeatureTable
ParentsFeature,FeatureGroup,FeatureRef,Fragment,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Component(min:0,max:unbounded)ComponentGroupRef(min:0,max:unbounded)ComponentRef(min:0,max:unbounded)Condition(min:0,max:unbounded)Feature(min:0,max:unbounded)FeatureGroupRef(min:0,max:unbounded)FeatureRef(min:0,max:unbounded)MergeRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
Attributes
Name Type Description
Id String Uniqueidentifierofthefeature.
Absent Enumeration Thisattributedeterminesifauserwillhavethe
optiontosetafeaturetoabsentintheuserinterface.Thisattribute'svaluemustbeoneofthefollowing:allow
AllowstheuserinterfacetodisplayanoptiontochangethefeaturestatetoAbsent.
disallowPreventstheuserinterfacefromdisplayinganoptiontochangethefeaturestatesettingthemsidbFeatureAttributesUIDisallowAbsentattribute.Thiswillforcethefeatureinstallationstate,whetherornotthefeatureisvisibleintheUI.
AllowAdvertise Enumeration Thisattributedeterminesthepossibleadvertisestatesforthisfeature.Thisattribute'svaluemustbeoneofthefollowing:no
PreventsthisfeaturefrombeingadvertisedbysettingthemsidbFeatureAttributesDisallowAdvertiseattribute.
systemPreventsadvertisingforthisfeatureiftheoperatingsystemshelldoesnotsupportWindowsInstallerdescriptorsbysettingthemsidbFeatureAttributesNoUnsupportedAdvertiseattribute.
yesAllowsthefeaturetobeadvertised.
ConfigurableDirectory String SpecifytheIdofaDirectorythatcanbeconfiguredbytheuseratinstallationtime.beapublicpropertyandthereforecompletelyuppercase.
Description String Longerstringoftextdescribingthefeature.
localizablestringisdisplayedbythetheSelectionDialog.
Display String Determinestheinitialdisplayofthisfeatureinthefeaturetree.Thisattribute'svalueshouldbeoneofthefollowing:collapse
Initiallyshowsthefeaturecollapsed.defaultvalue.
expandInitiallyshowsthefeatureexpanded.
hiddenPreventsthefeaturefromdisplayingintheuserinterface.
<anexplicitintegervalue>Foradvancedusersonly,itispossibletodirectlysettheintegervalueofthedisplayvaluethatwillappearintheFeaturerow.
InstallDefault Enumeration Thisattributedeterminesthedefaultinstall/runlocationofafeature.ThisattributecannotbespecifiedifthevalueoftheFollowParentattributeis'yes'sincethatwouldasktheinstallertoforcethisfeaturetofollowtheparentinstallationstateandsimultaneouslyfavoraparticularinstallationstatejustforthisfeature.Thisattribute'svaluemustbeoneofthefollowing:followParent
Forcesthefeaturetofollowthesameinstallationstateasitsparentfeature.
localFavorsinstallingthisfeaturelocallybysettingthemsidbFeatureAttributesFavorLocalattribute.
sourceFavorsrunningthisfeaturefromsourcebysettingthemsidbFeatureAttributesFavorSource
attribute.
Level Integer Setstheinstalllevelofthisfeature.disablethefeature.Processingthecanmodifythelevelvalue(thisissetviatheConditionchildelement).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
FeatureGroupElement
DescriptionGroupstogethermultiplecomponents,features,andmergestobeusedinotherlocations.
WindowsInstallerreferencesNone
ParentsFeatureRef,Fragment
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Component(min:0,max:unbounded)ComponentGroupRef(min:0,max:unbounded)ComponentRef(min:0,max:unbounded)Feature(min:0,max:unbounded)FeatureGroupRef(min:0,max:unbounded)FeatureRef(min:0,max:unbounded)MergeRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
Attributes
Name Type Description Required
Id String IdentifierfortheFeatureGroup. Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,FeatureGroupRef
FeatureGroupRefElement
DescriptionCreateareferencetoaFeatureGroupinanotherFragment.
WindowsInstallerreferencesNone
ParentsFeature,FeatureGroup,FeatureRef,Product
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifieroftheFeatureGrouptoreference.
Yes
IgnoreParent YesNoType Normallyfeaturegroupreferencesthatendupnestedunderaparentelementcreateaconnectiontothatparent.ThisbehaviorisundesirablewhentryingtosimplyreferencetoaFeatureGroupinadifferentFragment.Specify'yes'tohavethisfeaturegroupreferencenotcreateaconnectiontoitsparent.Thedefaultis'no'.
Primary YesNoType Setthisattributeto'yes'in
ordertomaketheparentfeatureofthisgrouptheprimaryfeatureforanycomponentsandmergescontainedinthegroup.Featuresmaybelongtomultiplefeatures.Bydesignatingafeatureastheprimaryfeatureofacomponentormerge,youensurethatwheneveracomponentisselectedforinstall-on-demand(IOD),theprimaryfeaturewillbetheonetoinstallit.Thisattributeshouldonlybesetifacomponentactuallynestsundermultiplefeatures.Ifacomponentnestsunderonlyonefeature,thatfeatureistheprimaryfeatureforthecomponent.Youcannotsetmorethanonefeatureastheprimaryfeatureofagivencomponent.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,FeatureGroup
FeatureRefElement
DescriptionCreateareferencetoaFeatureelementinanotherFragment.
WindowsInstallerreferencesNone
ParentsFeature,FeatureGroup,FeatureRef,Fragment,PatchFamily,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Component(min:0,max:unbounded)ComponentGroupRef(min:0,max:unbounded)ComponentRef(min:0,max:unbounded)Feature(min:0,max:unbounded)FeatureGroup(min:0,max:unbounded)FeatureGroupRef(min:0,max:unbounded)FeatureRef(min:0,max:unbounded)MergeRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
Attributes
Name Type Description Required
Id String TheidentifieroftheFeatureelementtoreference.
Yes
IgnoreParent YesNoType Normallyfeaturereferences
thatarenestedunderaparentelementcreateaconnectiontothatparent.ThisbehaviorisundesirablewhentryingtosimplyreferenceaFeatureinadifferentFragment.Specify'yes'tohavethisfeaturereferencenotcreateaconnectiontoitsparent.Thedefaultis'no'.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,Feature
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
FirewallExceptionFormatsFileGameHelpCollectionHelpFileNativeImagePerfCounterPerfCounterManifestPermissionExSnapInTypesFileVsixPackage
Attributes
Name Type Description
Assembly Enumeration SpecifiesifthisFileisaWin32Assemblyor.NETAssemblythatneedstobeinstalledintotheGlobalAssemblyCache(GAC).Ifthevalueis'.net'or'win32',thisfilemustalsobethekeypathoftheComponent.Thisattribute'svaluemustbeoneofthefollowing:.net
Thefileisa.NETFrameworkassembly.
noThefileisnota.NETFrameworkorWin32assembly.
Thisisthedefaultvalue.
win32ThefileisaWin32assembly.
AssemblyApplication String Specifiesthefileidentifieroftheapplicationfile.Thisassemblywillbeisolatedtothesamedirectoryastheapplicationfile.Ifthisattributeisabsent,theassemblywillbeinstalledtotheGlobalAssemblyCache(GAC).ThisattributemayonlybespecifiediftheAssemblyattributeissetto'.net'or'win32'.
AssemblyManifest String Specifiesthefileidentifierofthemanifestfilethatdescribesthisassembly.Themanifestfileshouldbeinthesamecomponentastheassemblyitdescribes.ThisattributemayonlybespecifiediftheAssemblyattributeissetto'.net'or'win32'.
BindPath String Alistofpaths,separatedbysemicolons,thatrepresentthepathstobesearchedtofindtheimportedDLLs.Thelist
isusuallyalistofproperties,witheachpropertyenclosedinsidesquarebrackets.Thevaluemaybesettoanemptystring.IncludingthisattributewillcauseanentrytobegeneratedforthefileintheBindImagetable.
Checksum YesNoType Thisattributeshouldbesetto"yes"foreveryexecutablefileintheinstallationthathasavalidchecksumstoredinthePortableExecutable(PE)fileheader.Onlythosefilesthathavethisattributesetwillbeverifiedforvalidchecksumduringareinstall.
CompanionFile String Setthisattributetomakethisfileacompanionchildofanotherfile.Theinstallationstateofacompanionfiledependsnotonitsownfileversioninginformation,butontheversioningofitscompanionparent.filethatisthekeypathforitscomponentcannotbeacompanionfile(thatmeansthisattributecannotbesetifKeyPath="yes"forthis
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
thisconnectionbetweenafileanditsmedia,yousetthepackagingoptionstothevaluesspecifiedintheMediaelement(valuessuchascompressionlevel,cabembedding,etc...).SpecifyingtheDiskIdattributeontheFileelementoverridesthedefaultDiskIdattributefromtheparentComponentelement.IfnoDiskIdattributeisspecified,thedefaultis"1".ThisDiskIdattributeisignoredwhencreatingamergemodulebecausemergemodulesdonothavemedia.
FontTitle String CausesanentrytobegeneratedforthefileintheFonttablewiththespecifiedFontTitle.Thisattributeisintendedtobeusedtoregisterthefileasanon-TrueTypefont.
Hidden YesNoType Settoyesinordertohavethefile'shiddenattributesetwhenitisinstalledonthetargetmachine.
Id String TheuniqueidentifierforthisFileelement.IfyouomitId,itdefaultstothe
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
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
shouldbeinstalledratherthancreatingabinarypatch.
ProcessorArchitecture Enumeration Specifiesthearchitectureforthisassembly.Thisattributeshouldonlybeusedon.NETFramework2.0orhigherassemblies.Thisattribute'svaluemustbeoneofthefollowing:msil
Thefileisa.NETFrameworkassemblythatisprocessor-neutral.
x86Thefileisa.NETFrameworkassemblyforthex86processor.
x64Thefileisa.NETFrameworkassemblyforthex64processor.
ia64Thefileisa.NETFrameworkassemblyfortheia64processor.
ReadOnly YesNoType Settoyesinordertohavethefile'sread-onlyattributesetwhenitisinstalledonthetarget
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
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
FileCostElement
DescriptionInitiatesdynamiccostingofstandardinstallationactions.AnystandardorcustomactionsthataffectcostingshouldsequencedbeforetheCostInitializeaction.CalltheFileCostactionimmediatelyfollowingtheCostInitializeaction.ThencalltheCostFinalizeactionfollowingtheFileCostactiontomakeallfinalcostcalculationsavailabletotheinstallerthroughtheComponenttable.TheCostInitializeactionmustbeexecutedbeforetheFileCostaction.Theinstallerthendeterminesthedisk-spacecostofeveryfileintheFiletable,onaper-componentbasis,takingbothvolumeclusteringandthepresenceofexistingfilesthatmayneedtobeoverwrittenintoaccount.Allactionsthatconsumeorreleasediskspacearealsoconsidered.Ifanexistingfileisfound,afileversioncheckisperformedtodeterminewhetherthenewfileactuallyneedstobeinstalledornot.Iftheexistingfileisofanequalorgreaterversionnumber,theexistingfileisnotoverwrittenandnodisk-spacecostisincurred.Inallcases,theinstallerusestheresultsofversionnumbercheckingtosettheinstallationstateofeachfile.TheFileCostactioninitializescostcalculationwiththeinstaller.ActualdynamiccostingdoesnotoccuruntiltheCostFinalizeactionisexecuted.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesFileCostAction
ParentsAdminExecuteSequence,AdminUISequence,InstallExecuteSequence,InstallUISequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,CostInitialize,CostFinalize
FileSearchElement
DescriptionSearchesforfileandassignstofullpathvalueofparentProperty
WindowsInstallerreferencesDrLocatorTable,SignatureTable
ParentsComponentSearch,DirectorySearch,DirectorySearchRef,IniFileSearch,RegistrySearch
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String UniqueidentifierforthefilesearchandexternalkeyintotheSignaturetable.Ifthisattributevalueisnotsetthentheparentelement's@Idattributeisused.
Languages String Thelanguagessupportedbythefile.
LongName LongFileNameType Thisattributehasbeendeprecated;pleaseusetheNameattributeinstead.
MaxDate DateTime Themaximummodificationdateandtimeofthefile.FormattedasYYYY-MM-DDTHH:mm:ss,whereYYYYistheyear,MMismonth,DDisday,'T'isliteral,HHishour,mmisminuteandssissecond.
MaxSize Int Themaximumsizeofthefile.
MaxVersion String Themaximumversionofthefile.
MinDate DateTime Theminimummodificationdateandtimeofthefile.FormattedasYYYY-MM-DDTHH:mm:ss,whereYYYYistheyear,MMismonth,DDisday,'T'isliteral,HHishour,mmisminuteandssissecond.
MinSize Int Theminimumsizeofthefile.
MinVersion String Theminimumversionofthefile.
Name LongFileNameType InpriorversionsoftheWiXtoolset,thisattributespecifiedtheshortfilename.Thisattribute'svaluemay
nowbeeitherashortorlongfilename.Ifashortfilenameisspecified,theShortNameattributemaynotbespecified.Ifalongfilenameisspecified,theLongNameattributemaynotbespecified.Ifyouwishtomanuallyspecifytheshortfilename,thentheShortNameattributemaybespecified.
ShortName ShortFileNameType Theshortfilenameofthefilein8.3format.ThereisaWindowsInstallerbugwhichpreventstheFileSearchfunctionalityfromworkingifbothashortandlongfilenamearespecified.SincetheNameattributeallowseitherashortorlongnametobespecified,itistheonlyattributerelatedtofilenameswhichshouldbespecified.
RemarksWhentheparentDirectorySearch/@Depthattributeisgreaterthan0,theFileSearch/@Idattributemustbeabsentorthesameasthe
parentDirectorySearch/@Idattributevalue,unlesstheparentDirectorySearch/@AssignToPropertyattributevalueis'yes'.
HowTosandExamplesHowTo:Checktheversionnumberofafileduringinstallation
SeeAlsoWixSchema,ComponentSearch,DirectorySearch,DirectorySearchRef,FileSearchRef,IniFileSearch,RegistrySearch
FileSearchRefElement
DescriptionReferencesanexistingFileSearchelement.
WindowsInstallerreferencesNone
ParentsComponentSearch,DirectorySearch,DirectorySearchRef,IniFileSearch,RegistrySearch
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String SpecifytheIdtotheFileSearchtoreference.
Yes
Remarks
AreferencetoanotherFileSearchelementmustreferencethesameIdandthesameParentId.IfanyoftheseattributevaluesaredifferentyoumustinsteaduseaFileSearchelement.
SeeAlsoWixSchema,FileSearch
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
FindRelatedProductsElement
DescriptionRunsthrougheachrecordoftheUpgradetableinsequenceandcomparestheupgradecode,productversion,andlanguageineachrowtoproductsinstalledonthesystem.WhenFindRelatedProductsdetectsacorrespondencebetweentheupgradeinformationandaninstalledproduct,itappendstheproductcodetothepropertyspecifiedintheActionPropertycolumnoftheUpgradeTable.TheFindRelatedProductsactiononlyrunsthefirsttimetheproductisinstalled.TheFindRelatedProductsactiondoesnotrunduringmaintenancemodeoruninstallation.FindRelatedProductsshouldbeauthoredintotheInstallUISequencetableandInstallExecuteSequencetables.TheinstallerpreventsFindRelatedProductsfromrunninginInstallExecuteSequenceiftheactionhasalreadyruninInstallUISequence.TheFindRelatedProductsactionmustcomebeforetheMigrateFeatureStatesactionandtheRemoveExistingProductsaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesFindRelatedProductsAction
ParentsInstallExecuteSequence,InstallUISequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthat
thisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,Upgrade
ForceRebootElement
DescriptionPromptstheuserforarestartofthesystemduringtheinstallation.Specialactionsdon'thaveabuilt-insequencenumberandthusmustappearrelativetoanotheraction.ThesuggestedwaytodothisisbyusingtheBeforeorAfterattribute.InstallExecuteandInstallExecuteAgaincanoptionallyappearanywherebetweenInstallInitializeandInstallFinalize.
WindowsInstallerreferencesForceRebootAction
ParentsInstallExecuteSequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthatthisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
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)
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)
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
RequiresRestartResourceSqlDatabaseUnitTestUnitTestRefUpdateUserUXVariableWebApplicationWebAppPoolWebDirPropertiesWebLogWebSite
Attributes
Name Type Description Required
Id String OptionalidentifierforaFragment.Shouldonlybesetbyadvanceduserstotagsections.
SeeAlsoWixSchema
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
WixSchema
IconRefElement
DescriptionUsedonlyforPatchFamiliestoincludeonlyaicontableentryinapatch.
WindowsInstallerreferencesNone
ParentsPatchFamily
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifieroftheIconelementtoreference.
Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema
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
IgnoreRangeElement
DescriptionSpecifiespartofafilethatistobeignoredduringpatching.
WindowsInstallerreferencesNone
ParentsExternalFile,TargetFile
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Length Int Lengthoftherange. Yes
Offset Int Offsetofthestartoftherange. Yes
SeeAlsoWixSchema
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
IncludeElement
DescriptionThisisthetop-levelcontainerelementforeverywxifile.
WindowsInstallerreferencesNone
ParentsNone
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
AnyElement(namespace='##any'processContents='Lax')
AttributesNone
SeeAlsoWixSchema
IniFileElement
DescriptionAddsorremoves.inifileentries.
WindowsInstallerreferencesIniFileTable,RemoveIniFileTable
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierforinifile. Yes
Action Enumeration Thetypeofmodificationtobemade.Thisattribute'svaluemustbeoneofthefollowing:addLine
Createsorupdatesan.inientry.
addTagCreatesanewentryorappendsanewcomma-separatedvaluetoanexisting
Yes
entry.
createLineCreatesan.inientryonlyiftheentrydoesnoalreadyexist.
removeLineRemovesan.inientry.
removeTagRemovesatagfroman.inientry.
Directory String Nameofaproperty,thevalueofwhichisthefullpathofthefoldercontainingthe.inifile.CanbenameofadirectoryintheDirectorytable,apropertysetbytheAppSearchtable,oranyotherpropertyrepresentingafullpath.
Key String Thelocalizable.inifilekeywithinthesection.
Yes
LongName LongFileNameType Thisattributehasbeendeprecated;pleaseusetheNameattributeinstead.
Name LongFileNameType InpriorversionsoftheWiXtoolset,thisattributespecifiedthe
Yes
shortname.Thisattribute'svaluemaynowbeeitherashortorlongname.Ifashortnameisspecified,theShortNameattributemaynotbespecified.Ifalongnameisspecified,theLongNameattributemaynotbespecified.Also,ifthisvalueisalongname,theShortNameattributemaybeomittedtoallowWiXtoattempttogenerateauniqueshortname.However,ifthisnamecollideswithanotherfileoryouwishtomanuallyspecifytheshortname,thentheShortNameattributemaybespecified.
Section String Thelocalizable.inifilesection.
Yes
ShortName ShortFileNameType Theshortnameofthein8.3format.Thisattributeshouldonlybesetifthereisaconflictbetweengeneratedshortnamesortheuserwantstomanuallyspecifytheshortname.
Value String Thelocalizablevaluetobewrittenordeleted.ThisattributemustbesetiftheActionattribute'svalueis"addLine","addTag",or"createLine".
SeeAlsoWixSchema
IniFileSearchElement
DescriptionSearchesforfile,directoryorregistrykeyandassignstovalueofparentProperty
WindowsInstallerreferencesIniLocatorTable,SignatureTable
ParentsComplianceCheck,Property
InnerTextNone
ChildrenChoiceofelements(min:0,max:1)
DirectorySearch(min:0,max:1)DirectorySearchRef(min:0,max:1)FileSearch(min:0,max:1)FileSearchRef(min:0,max:1)
Attributes
Name Type Description Required
Id String ExternalkeyintotheSignaturetable.
Yes
Field Integer Thefieldinthe.iniline.IffieldisNullor0,theentirelineisread.
Key String Thekeyvaluewithinthesection.
Yes
LongName LongFileNameType Thisattributehasbeendeprecated;
pleaseusetheNameattributeinstead.
Name LongFileNameType InpriorversionsoftheWiXtoolset,thisattributespecifiedtheshortname.Thisattribute'svaluemaynowbeeitherashortorlongname.Ifashortnameisspecified,theShortNameattributemaynotbespecified.Ifalongnameisspecified,theLongNameattributemaynotbespecified.Also,ifthisvalueisalongname,theShortNameattributemaybeomittedtoallowWiXtoattempttogenerateauniqueshortname.However,ifyouwishtomanuallyspecifytheshortname,thentheShortNameattributemaybespecified.
Yes
Section String Thelocalizable.inifilesection.
Yes
ShortName ShortFileNameType Theshortnameofthefilein8.3format.Thisattributeshouldonlybesetiftheuserwantstomanually
specifytheshortname.
Type Enumeration MustbefileiflastchildisFileSearchelementandmustbedirectoryiflastchildisDirectorySearchelement.Thisattribute'svaluemustbeoneofthefollowing:directory
Adirectorylocation.
fileAfilelocation.Thisisthedefaultvalue.
rawAraw.inivalue.
SeeAlsoWixSchema,ComponentSearch,RegistrySearch
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
InstallExecuteElement
DescriptionRunsascriptcontainingalloperationsspooledsinceeitherthestartoftheinstallationorthelastInstallExecuteaction,orInstallExecuteAgainaction.Specialactionsdon'thaveabuilt-insequencenumberandthusmustappearrelativetoanotheraction.ThesuggestedwaytodothisisbyusingtheBeforeorAfterattribute.InstallExecuteandInstallExecuteAgaincanoptionallyappearanywherebetweenInstallInitializeandInstallFinalize.
WindowsInstallerreferencesInstallExecuteAction
ParentsInstallExecuteSequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthatthisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Avalueusedtoindicatethepositionofthisactionina
sequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
InstallExecuteAgainElement
DescriptionRunsascriptcontainingalloperationsspooledsinceeitherthestartoftheinstallationorthelastInstallExecuteaction,orInstallExecuteAgainaction.ShouldonlybeusedafterInstallExecute.Specialactionsdon'thaveabuilt-insequencenumberandthusmustappearrelativetoanotheraction.ThesuggestedwaytodothisisbyusingtheBeforeorAfterattribute.InstallExecuteandInstallExecuteAgaincanoptionallyappearanywherebetweenInstallInitializeandInstallFinalize.
WindowsInstallerreferencesInstallExecuteAgainAction
ParentsInstallExecuteSequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthatthisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Avalueusedtoindicatethe
positionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
InstallExecuteSequenceElement
DescriptionNone
WindowsInstallerreferencesInstallExecuteSequenceTable
ParentsFragment,Module,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
AllocateRegistrySpace(min:0,max:unbounded):Ensurestheneededamountofspaceexistsintheregistry.AppSearch(min:0,max:unbounded):Usesfilesignaturestosearchforexistingversionsofproducts.BindImage(min:0,max:unbounded):BindseachexecutableorDLLthatmustbeboundtotheDLLsimportedbyit.CCPSearch(min:0,max:unbounded):Usesfilesignaturestovalidatethatqualifyingproductsareinstalledonasystembeforeanupgradeinstallationisperformed.CostFinalize(min:0,max:unbounded):EndstheinternalinstallationcostingprocessbegunbytheCostInitializeaction.CostInitialize(min:0,max:unbounded):Initiatestheinternalinstallationcostingprocess.CreateFolders(min:0,max:unbounded):Createsemptyfoldersforcomponentsthataresettobeinstalled.CreateShortcuts(min:0,max:unbounded):Managesthecreationofshortcuts.Custom(min:0,max:unbounded):Usetosequenceacustomaction.
DeleteServices(min:0,max:unbounded):Stopsaserviceandremovesitsregistrationfromthesystem.DisableRollback(min:0,max:unbounded):Disablesrollbackfortheremainderoftheinstallation.DuplicateFiles(min:0,max:unbounded):DuplicatesfilesinstalledbytheInstallFilesaction.FileCost(min:0,max:unbounded):Initiatesdynamiccostingofstandardinstallationactions.FindRelatedProducts(min:0,max:unbounded):RunsthrougheachrecordoftheUpgradetableinsequenceandcomparestheupgradecode,productversion,andlanguageineachrowtoproductsinstalledonthesystem.ForceReboot(min:0,max:unbounded):Promptstheuserforarestartofthesystemduringtheinstallation.Notfixedsequence.InstallExecute(min:0,max:unbounded):RunsascriptcontainingalloperationsspooledsinceeitherthestartoftheinstallationorthelastInstallExecuteaction,orInstallExecuteAgainaction.InstallExecuteAgain(min:0,max:unbounded):RunsascriptcontainingalloperationsspooledsinceeitherthestartoftheinstallationorthelastInstallExecuteaction,orInstallExecuteAgainaction.InstallFiles(min:0,max:unbounded):CopiesfilesspecifiedintheFiletablefromthesourcedirectorytothedestinationdirectory.InstallFinalize(min:0,max:unbounded):Markstheendofasequenceofactionsthatchangethesystem.InstallInitialize(min:0,max:unbounded):Marksthebeginningofasequenceofactionsthatchangethesystem.InstallODBC(min:0,max:unbounded):Installsthedrivers,translators,anddatasourcesintheODBCDrivertable,ODBCTranslatortable,andODBCDataSourcetable.InstallServices(min:0,max:unbounded):Registersaserviceforthesystem.InstallValidate(min:0,max:unbounded):Verifiesthatallcostedvolumeshaveenoughspacefortheinstallation.
IsolateComponents(min:0,max:unbounded):Installsacopyofacomponent(commonlyasharedDLL)intoaprivatelocationforusebyaspecificapplication(typicallyan.exe).LaunchConditions(min:0,max:unbounded):QueriestheLaunchConditiontableandevaluateseachconditionalstatementrecordedthere.MigrateFeatureStates(min:0,max:unbounded):Usedforupgradingorinstallingoveranexistingapplication.MoveFiles(min:0,max:unbounded):Locatesexistingfilesonthesystemandmovesorcopiesthosefilestoanewlocation.MsiPublishAssemblies(min:0,max:unbounded):ManagestheadvertisementofCLRandWin32assemblies.MsiUnpublishAssemblies(min:0,max:unbounded):ManagestheunadvertisementofCLRandWin32assembliesthatarebeingremoved.PatchFiles(min:0,max:unbounded):QueriesthePatchtabletodeterminewhichpatchesaretobeapplied.ProcessComponents(min:0,max:unbounded):Registersandunregisterscomponents,theirkeypaths,andthecomponentclients.PublishComponents(min:0,max:unbounded):ManagestheadvertisementofthecomponentsfromthePublishComponenttable.PublishFeatures(min:0,max:unbounded):Writeseachfeature'sstateintothesystemregistry.PublishProduct(min:0,max:unbounded):Managestheadvertisementoftheproductinformationwiththesystem.RegisterClassInfo(min:0,max:unbounded):ManagestheregistrationofCOMclassinformationwiththesystem.RegisterComPlus(min:0,max:unbounded):RegistersCOM+applications.RegisterExtensionInfo(min:0,max:unbounded):Managestheregistrationofextensionrelatedinformationwiththesystem.RegisterFonts(min:0,max:unbounded):Registersinstalledfontswiththesystem.RegisterMIMEInfo(min:0,max:unbounded):RegistersMIME-
relatedregistryinformationwiththesystem.RegisterProduct(min:0,max:unbounded):Registerstheproductinformationwiththeinstaller.RegisterProgIdInfo(min:0,max:unbounded):ManagestheregistrationofOLEProgIdinformationwiththesystem.RegisterTypeLibraries(min:0,max:unbounded):Registerstypelibrarieswiththesystem.RegisterUser(min:0,max:unbounded):Registerstheuserinformationwiththeinstallertoidentifytheuserofaproduct.RemoveDuplicateFiles(min:0,max:unbounded):DeletesfilesinstalledbytheDuplicateFilesaction.RemoveEnvironmentStrings(min:0,max:unbounded):Modifiesthevaluesofenvironmentvariables.RemoveExistingProducts(min:0,max:unbounded):GoesthroughtheproductcodeslistedintheActionPropertycolumnoftheUpgradetableandremovestheproductsinsequence.RemoveFiles(min:0,max:unbounded):RemovesfilespreviouslyinstalledbytheInstallFilesaction.RemoveFolders(min:0,max:unbounded):Removesanyfolderslinkedtocomponentssettoberemovedorrunfromsource.RemoveIniValues(min:0,max:unbounded):Removes.inifileinformationspecifiedforremovalintheRemoveIniFiletableifthecomponentissettobeinstalledlocallyorrunfromsource.RemoveODBC(min:0,max:unbounded):Removesthedatasources,translators,anddriverslistedforremovalduringtheinstallation.RemoveRegistryValues(min:0,max:unbounded):Removesaregistryvaluethathasbeenauthoredintotheregistrytableiftheassociatedcomponentwasinstalledlocallyorasrunfromsource,andisnowsettobeuninstalled.RemoveShortcuts(min:0,max:unbounded):Managestheremovalofanadvertisedshortcutwhosefeatureisselectedforuninstallationoranonadvertisedshortcutwhosecomponentisselectedforuninstallation.ResolveSource(min:0,max:unbounded):Determinesthe
locationofthesourceandsetstheSourceDirpropertyifthesourcehasnotbeenresolvedyet.Notfixedsequence.RMCCPSearch(min:0,max:unbounded):Usesfilesignaturestovalidatethatqualifyingproductsareinstalledonasystembeforeanupgradeinstallationisperformed.ScheduleReboot(min:0,max:unbounded):Promptstheusertorestartthesystemattheendofinstallation.Notfixedsequence.SelfRegModules(min:0,max:unbounded):ProcessesallmoduleslistedintheSelfRegtableandregistersallinstalledmoduleswiththesystem.SelfUnregModules(min:0,max:unbounded):UnregistersallmoduleslistedintheSelfRegtablethatarescheduledtobeuninstalled.SetODBCFolders(min:0,max:unbounded):ChecksforexistingODBCdriversandsetsthetargetdirectoryforeachnewdrivertothelocationofanexistingdriver.StartServices(min:0,max:unbounded):Startssystemservices.StopServices(min:0,max:unbounded):Stopssystemservices.UnpublishComponents(min:0,max:unbounded):ManagestheunadvertisementofcomponentslistedinthePublishComponenttable.UnpublishFeatures(min:0,max:unbounded):Removesselection-stateandfeature-componentmappinginformationfromtheregistry.UnregisterClassInfo(min:0,max:unbounded):ManagestheremovalofCOMclassinformationfromthesystemregistry.UnregisterComPlus(min:0,max:unbounded):RemovesCOM+applicationsfromtheregistry.UnregisterExtensionInfo(min:0,max:unbounded):Managestheremovalofextension-relatedinformationfromthesystemregistry.UnregisterFonts(min:0,max:unbounded):Removesregistrationinformationaboutinstalledfontsfromthesystem.UnregisterMIMEInfo(min:0,max:unbounded):UnregistersMIME-relatedregistryinformationfromthesystem.UnregisterProgIdInfo(min:0,max:unbounded):Managesthe
unregistrationofOLEProgIdinformationwiththesystem.UnregisterTypeLibraries(min:0,max:unbounded):Unregisterstypelibrariesfromthesystem.ValidateProductID(min:0,max:unbounded):SetstheProductIDpropertytothefullproductidentifier.WriteEnvironmentStrings(min:0,max:unbounded):Modifiesthevaluesofenvironmentvariables.WriteIniValues(min:0,max:unbounded):Writesthe.inifileinformationthattheapplicationneedswrittentoits.inifiles.WriteRegistryValues(min:0,max:unbounded):Setsupanapplication'sregistryinformation.
AttributesNone
SeeAlsoWixSchema
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
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
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
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
InstallServicesElement
DescriptionRegistersaserviceforthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesInstallServicesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
InstallUISequenceElement
DescriptionNone
WindowsInstallerreferencesInstallUISequenceTable
ParentsFragment,Module,Product,UI
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
AppSearch(min:0,max:unbounded):Usesfilesignaturestosearchforexistingversionsofproducts.CCPSearch(min:0,max:unbounded):Usesfilesignaturestovalidatethatqualifyingproductsareinstalledonasystembeforeanupgradeinstallationisperformed.CostFinalize(min:0,max:unbounded):EndstheinternalinstallationcostingprocessbegunbytheCostInitializeaction.CostInitialize(min:0,max:unbounded):Initiatestheinternalinstallationcostingprocess.Custom(min:0,max:unbounded):Usetosequenceacustomaction.ExecuteAction(min:0,max:unbounded):Initiatestheexecutionsequence.FileCost(min:0,max:unbounded):Initiatesdynamiccostingofstandardinstallationactions.FindRelatedProducts(min:0,max:unbounded):RunsthrougheachrecordoftheUpgradetableinsequenceandcomparestheupgradecode,productversion,andlanguageineachrowtoproductsinstalledonthesystem.
IsolateComponents(min:0,max:unbounded):Installsacopyofacomponent(commonlyasharedDLL)intoaprivatelocationforusebyaspecificapplication(typicallyan.exe).LaunchConditions(min:0,max:unbounded):QueriestheLaunchConditiontableandevaluateseachconditionalstatementrecordedthere.MigrateFeatureStates(min:0,max:unbounded):Usedforupgradingorinstallingoveranexistingapplication.ResolveSource(min:0,max:unbounded):DeterminesthelocationofthesourceandsetstheSourceDirpropertyifthesourcehasnotbeenresolvedyet.RMCCPSearch(min:0,max:unbounded):Usesfilesignaturestovalidatethatqualifyingproductsareinstalledonasystembeforeanupgradeinstallationisperformed.ScheduleReboot(min:0,max:unbounded):Promptstheusertorestartthesystemattheendofinstallation.Notfixedsequence.Show(min:0,max:unbounded):DisplaysaDialog.ValidateProductID(min:0,max:unbounded):SetstheProductIDpropertytothefullproductidentifier.
AttributesNone
SeeAlsoWixSchema
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
InstanceElement
DescriptionDefinesaninstancetransformforyourproduct.
WindowsInstallerreferencesNone
ParentsInstanceTransforms
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Theidentityoftheinstancetransform.Thisvaluewilldefinethenamebywhichtheinstanceshouldbereferredtoonthecommandline.Inaddition,thevalueofthethisattributewilldeterminewhatthevalueofthepropertyspecifiedinPropertyattributeonInstanceTransformswillchangetoforeachinstance.
Yes
ProductCode AutogenGuid TheProductCodeforthisinstance.
Yes
ProductName String TheProductNameforthisinstance.
UpgradeCode Guid TheUpgradeCodeforthisinstance.
SeeAlsoWixSchema
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
InterfaceElement
DescriptionCOMInterfaceregistrationforparentTypeLib.
WindowsInstallerreferencesRegistryTable
ParentsClass,Component,TypeLib
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id Guid GUIDidentifierforCOMInterface.
Yes
BaseInterface Guid Identifiestheinterfacefromwhichthecurrentinterfaceisderived.
Name String NameforCOMInterface.
Yes
NumMethods Integer NumberofmethodsimplementedonCOMInterface.
ProxyStubClassId Guid GUIDCLSIDforproxystubtoCOMInterface.
ProxyStubClassId32 Guid GUIDCLSIDfor32-bitproxystubtoCOMInterface.
Versioned YesNoType DetermineswhetheraTypelibversionentryshouldbecreatedwiththeotherCOMInterfaceregistrykeys.Defaultis'yes'.
SeeAlsoWixSchema
IsolateComponentElement
DescriptionSharedComponenttobeprivatelyreplicatedinfolderofparentComponent
WindowsInstallerreferencesIsolateComponentTable
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Shared String SharedComponentforthisapplicationComponent.
Yes
SeeAlsoWixSchema
IsolateComponentsElement
DescriptionInstallsacopyofacomponent(commonlyasharedDLL)intoaprivatelocationforusebyaspecificapplication(typicallyan.exe).Thisisolatestheapplicationfromothercopiesofthecomponentthatmaybeinstalledtoasharedlocationonthecomputer.TheactionreferstoeachrecordoftheIsolatedComponenttableandassociatesthefilesofthecomponentlistedintheComponent_SharedfieldwiththecomponentlistedintheComponent_Applicationfield.TheinstallerinstallsthefilesofComponent_SharedintothesamedirectoryasComponent_Application.Theinstallergeneratesafileinthisdirectory,zerobytesinlength,havingtheshortfilenamenameofthekeyfileforComponent_Application(typicallythisisthesamefilenameasthe.exe)appendedwith.local.TheIsolatedComponentactiondoesnotaffecttheinstallationofComponent_Application.UninstallingComponent_ApplicationalsoremovestheComponent_Sharedfilesandthe.localfilefromthedirectory.TheIsolateComponentsactioncanbeusedonlyintheInstallUISequencetableandtheInstallExecuteSequencetable.ThisactionmustcomeaftertheCostInitializeactionandbeforetheCostFinalizeaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesIsolateComponentsAction
ParentsInstallExecuteSequence,InstallUISequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,IsolateComponent
LaunchConditionsElement
DescriptionQueriestheLaunchConditiontableandevaluateseachconditionalstatementrecordedthere.Ifanyoftheseconditionalstatementsfail,anerrormessageisdisplayedtotheuserandtheinstallationisterminated.TheLaunchConditionsactionisoptional.Thisactionisnormallythefirstinthesequence,buttheAppSearchActionmaybesequencedbeforetheLaunchConditionsaction.Iftherearelaunchconditionsthatdonotapplytoallinstallationmodes,theappropriateinstallationmodepropertyshouldbeusedinaconditionalexpressionintheappropriatesequencetable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesLaunchConditionsAction
ParentsAdminExecuteSequence,AdminUISequence,InstallExecuteSequence,InstallUISequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthatthisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Overridable YesNoType If"yes",thesequencingof
thisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,Condition
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
ListItemElement
DescriptionThevalue(andoptionaltext)associatedwithaniteminaComboBox,ListBox,orListView.
WindowsInstallerreferencesComboBoxTable,ListBoxTable,ListViewTable
ParentsComboBox,ListBox,ListView
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Icon String TheidentifieroftheBinary(notIcon)elementcontainingtheicontoassociatewiththisitem.ThisvalueisonlyvalidwhennestedunderaListViewelement.
Text String Thelocalizable,visibletexttobeassignedtotheitem.Ifnotspecified,thiswilldefaulttothevalueoftheValueattribute.
Value String ThevalueassignedtotheassociatedComboBox,ListBox,orListViewpropertyifthisitemisselected.
Yes
SeeAlso
WixSchema
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
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
prefixforthelogfile.ThedefaultistousetheBundle/@Nameor,ifBundle/@Nameisnotspecified,thevalue"Setup".
SeeAlsoWixSchema
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.
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
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
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,
reinstallsit.
afterInstallExecuteSchedulesRemoveExistingProductsbetweentheInstallExecuteandInstallFinalizestandardactions.schedulinginstallstheupgradeproduct"ontopof"theinstalledproductthenletsRemoveExistingProductsuninstallanycomponentsthatdon'talsoexistintheupgradeproduct.schedulingrequiresstrictadherencetothecomponentrulesbecauseitreliesoncomponentreferencecountstobeaccurateduringinstallationoftheupgradeproductandinstalledproduct.Formoreinformation,seeBobArnson'sblogpost"PayingforUpgrades"fordetails.Ifinstallationoftheupgradeproductfails,WindowsInstalleralsorollsbacktheremovaloftheinstalledproduct--inotherwords,reinstallsit.
afterInstallExecuteAgainSchedulesRemoveExistingProductsbetweentheInstallExecuteAgainandInstallFinalizestandardactions.identicaltotheafterInstallExecuteschedulingbutaftertheInstallExecuteAgainstandardinsteadofInstallExecute.
afterInstallFinalizeSchedulesRemoveExistingProductsaftertheInstallFinalizestandardaction.ThisissimilartotheandafterInstallExecuteAgainschedulingsbuttakesplaceoutsidetheinstallationtransactionsoifinstallation
oftheupgradeproductfails,WindowsInstallerdoesnotrollbacktheremovaloftheinstalledproduct,sothemachinewillhavebothversions
SeeAlsoWixSchema
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
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
betheoutputdirectoryforthefinalimage.Thedefaultvalueensuresthebindergeneratesaninstallableimage.Ifarelativepathisspecifiedinthesrcattribute,thevaluewillbeappendedtotheimage'soutputdirectory.Ifanabsolutepathisprovided,thatpathwillbeusedwithoutmodification.Thelattertwooptionsareprovidedtoeasethelayoutofanimageontomultiplemedias(CDs/DVDs).
Source String Optionalpropertythatidentifiesthesourceoftheembeddedcabinet.Ifacabinetisspecifiedforapatch,thispropertyshouldbedefinedanduniquetoeachpatchsothattheembeddedcabinetcontainingpatchedandnewfilescanbelocatedinthepatchpackage.Ifthecabinetisnotembedded-thisisnottypical-thecabinetcanbefoundinthe
directoryreferencedinthiscolumn.Ifempty,theexternalcabinetmustbelocatedintheSourceDirdirectory.
src String Thisattributehasbeendeprecated;pleaseusetheLayoutattributeinstead.
VolumeLabel String Thelabelattributedtothevolume.ThisisthevolumelabelreturnedbytheGetVolumeInformationfunction.IftheSourceDirpropertyreferstoaremovable(floppyorCD-ROM)volume,thenthisvolumelabelisusedtoverifythattheproperdiskisinthedrivebeforeattemptingtoinstallfiles.Theentryinthiscolumnmustmatchthevolumelabelofthephysicalmedia.
SeeAlsoWixSchema
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
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
allowedvalueandtheDefaultvalueofthisattributeis2048MB(2GB).
MaximumUncompressedMediaSize Int Sizeofuncompressedfilesineachcabinet,inmegabytes.WIX_MUMSenvironmentvariablecanbeusedtooverridethisvalue.Defaultvalueis200MB.
VolumeLabel String Thelabelattributedtothevolume.ThisisthevolumelabelreturnedbytheGetVolumeInformationfunction.IftheSourceDirpropertyreferstoaremovable(floppyorCD-ROM)volume,thenthisvolumelabelistheproperdiskisinthedrivebeforeattemptingTheentryinthiscolumnmustmatchthevolumelabelphysicalmedia.
SeeAlsoWixSchema
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
creatingthisconnectionbetweenthemergemoduleandMediaelement,yousetthepackagingoptionstothevaluesspecifiedintheMediaelement(valuessuchascompressionlevel,cabembedding,etc...).
FileCompression YesNoType Specifiesifthefilesinthemergemoduleshouldbecompressed.
Language LocalizableInteger SpecifiesthedecimalLCIDorlocalizationtokenforthelanguagetomergetheModuleinas.
Yes
SourceFile String Pathtothesourcelocationofthemergemodule.
src String Thisattributehasbeendeprecated;pleaseusetheSourceFileattributeinstead.
HowTosandExamplesHowTo:InstalltheVisualC++Redistributablewithyourinstaller
SeeAlsoWixSchema,MergeRef
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
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
MIMEElement
DescriptionMIMEcontent-typeforanExtension
WindowsInstallerreferencesMIMETable
ParentsExtension
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Advertise YesNoType WhetherthisMIMEistobeadvertised.Thedefaultistomatchwhatevertheparentextensionelementuses.Iftheparentelementisnotadvertised,thenthiselementcannotbeadvertisedeither.
Class Guid ClassIDfortheCOMserverthatistobeassociatedwiththeMIMEcontent.
ContentType String ThisistheidentifierfortheMIMEcontent.Itiscommonlywrittenintheformoftype/format.
Yes
Default YesNoType If'yes',becomethecontenttypefortheparent
Extension.Thedefaultvalueis'no'.
SeeAlsoWixSchema
ModuleElement
DescriptionTheModuleelementisanalogoustothemainfunctioninaCprogram.Whenlinking,onlyoneModulesectioncanbegiventothelinkertoproduceasuccessfulresult.Usingthiselementcreatesanmsmfile.
WindowsInstallerreferencesNone
ParentsWix
InnerTextNone
ChildrenSequence(min:1,max:1)1. Package(min:1,max:1)2. Choiceofelements(min:0,max:unbounded)
AppId(min:0,max:unbounded)Binary(min:0,max:unbounded)Component(min:0,max:unbounded)ComponentGroupRef(min:0,max:unbounded)ComponentRef(min:0,max:unbounded)Configuration(min:0,max:unbounded)CustomAction(min:0,max:unbounded)CustomActionRef(min:0,max:unbounded)CustomTable(min:0,max:unbounded)Dependency(min:0,max:unbounded)Directory(min:0,max:unbounded)DirectoryRef(min:0,max:unbounded)EmbeddedChainer(min:0,max:unbounded)
EmbeddedChainerRef(min:0,max:unbounded)EnsureTable(min:0,max:unbounded)Exclusion(min:0,max:unbounded)Icon(min:0,max:unbounded)IgnoreModularization(min:0,max:unbounded)IgnoreTable(min:0,max:unbounded)Property(min:0,max:unbounded)PropertyRef(min:0,max:unbounded)SetDirectory(min:0,max:unbounded)SetProperty(min:0,max:unbounded)SFPCatalog(min:0,max:unbounded)Substitution(min:0,max:unbounded)UI(min:0,max:unbounded)UIRef(min:0,max:unbounded)WixVariable(min:0,max:unbounded)Sequence(min:1,max:1)1. InstallExecuteSequence(min:0,max:1)2. InstallUISequence(min:0,max:1)3. AdminExecuteSequence(min:0,max:1)4. AdminUISequence(min:0,max:1)5. AdvertiseExecuteSequence(min:0,max:1)
AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
CloseApplicationComPlusApplicationComPlusApplicationRoleComPlusPartitionComPlusPartitionRoleGroupHelpCollectionRefHelpFilter
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
information.
SeeAlsoWixSchema
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
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
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
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.
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
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
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
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
MsiUnpublishAssembliesElement
DescriptionManagestheunadvertisementofCLRandWin32assembliesthatarebeingremoved.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesMsiUnpublishAssembliesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
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
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
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.
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"
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
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
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
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
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
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
MultiStringValueElement
DescriptionUseseveraloftheseelementstospecifyeachregistryvalueinamultiStringregistryvalue.ThiselementcannotbeusediftheValueattributeisspecifiedunlesstheTypeattributeissetto'multiString'.ThevaluesshouldgointhetextareaoftheMultiStringValueelement.
WindowsInstallerreferencesRegistryTable
ParentsRegistryValue
SeeAlsoWixSchema
ODBCDataSourceElement
DescriptionODBCDataSourceforaComponent
WindowsInstallerreferencesODBCDataSourceTable
ParentsComponent,ODBCDriver
InnerTextNone
ChildrenSequence(min:1,max:1)1. Property(min:0,max:unbounded):Translatesinto
ODBCSourceAttributes
Attributes
Name Type Description Required
Id String Identifierofthedatasource. Yes
DriverName String RequiredifnotfoundaschildofODBCDriverelement
KeyPath YesNoType Set'yes'toforcethisfiletobekeypathforparentComponent
Name String Nameforthedatasource. Yes
Registration Enumeration Scopeforwhichthedatasourceshouldberegistered.Thisattribute'svaluemustbeoneofthefollowing:
Yes
machineDatasourceisregisteredpermachine.
userDatasourceisregisteredperuser.
SeeAlsoWixSchema
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
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
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
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
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
PackageElement
DescriptionPropertiesaboutthepackagetobeplacedintheSummaryInformationStream.ThesearevisiblefromCOMthroughtheIStreaminterface,andthesepropertiescanbeseenonthepackageinExplorer.
WindowsInstallerreferencesNone
ParentsModule,Product
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
AdminImage YesNoType Setto'yes'ifthesourceisanadminimage.
Comments String Optionalcommentsforbrowsing.
Compressed YesNoType Setto'yes'tohavecompressedfilesinthesource.Thisattributecannotbesetformergemodules.
Description String Theproductfullnameor
description.
Id AutogenGuid ThepackagecodeGUIDforaproductormergemodule.Whencompilingaproduct,thisattributeshouldnotbesetinordertoallowthepackagecodetobegeneratedforeachbuild.Whencompilingamergemodule,thisattributemustbesettothemodularizationguid.
InstallerVersion Integer TheminimumversionoftheWindowsInstallerrequiredtoinstallthispackage.TakethemajorversionoftherequiredWindowsInstallerandmultiplybya100thenaddtheminorversionoftheWindowsInstaller.Forexample,"200"wouldrepresentWindowsInstaller2.0and"405"wouldrepresentWindowsInstaller4.5.For64-bitWindowsInstallerpackages,thispropertyisset
to200bydefaultasWindowsInstaller2.0wasthefirstversiontosupport64-bitpackages.
InstallPrivileges Enumeration UsethisattributetospecifythepriviligesrequiredtoinstallthepackageonWindowsVistaandabove.Thisattribute'svaluemustbeoneofthefollowing:limited
Setthisvaluetodeclarethatthepackagedoesnotrequireelevatedprivilegestoinstall.
elevatedSetthisvaluetodeclarethatthepackagerequireselevatedprivilegestoinstall.Thisisthedefaultvalue.
InstallScope Enumeration Usethisattributetospecifytheinstallationscopeof
thispackage:per-machineorper-user.Thisattribute'svaluemustbeoneofthefollowing:perMachine
Setthisvaluetodeclarethatthepackageisaper-machineinstallationandrequireselevatedprivilegestoinstall.SetstheALLUSERSpropertyto1.
perUserSetthisvaluetodeclarethatthepackageisaper-userinstallationanddoesnotrequireelevatedprivilegestoinstall.Setsthepackage'sInstallPrivilegesattributeto"limited."
Keywords String Optionalkeywordsforbrowsing.
Languages String ThelistoflanguageIDs(LCIDs)
supportedinthepackage.
Manufacturer String Thevendorreleasingthepackage.
Platform Enumeration Theplatformsupportedbythepackage.Useofthisattributeisdiscouraged;instead,specifythe-archswitchatthecandle.execommandlineortheInstallerPlatformpropertyina.wixprojMSBuildproject.Thisattribute'svaluemustbeoneofthefollowing:x86
Setthisvaluetodeclarethatthepackageisanx86package.
ia64Setthisvaluetodeclarethatthepackageisania64package.ThisvaluerequiresthattheInstallerVersionpropertybeset
to200orgreater.
x64Setthisvaluetodeclarethatthepackageisanx64package.ThisvaluerequiresthattheInstallerVersionpropertybesetto200orgreater.
armSetthisvaluetodeclarethatthepackageisanarmpackage.ThisvaluerequiresthattheInstallerVersionpropertybesetto500orgreater.
intelThisvaluehasbeendeprecated.Use"x86"instead.
intel64Thisvaluehasbeendeprecated.Use"ia64"
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
remarksformoreinformation.
Remarks
YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.
SeeAlsoWixSchema
PackageCertificatesElement
DescriptionDigitalsignaturesthatidentifyinstallationpackagesinamulti-producttransaction.
WindowsInstallerreferencesMsiPackageCertificateTable
ParentsFragment,Product
InnerTextNone
ChildrenChoiceofelements(min:1,max:unbounded)
DigitalCertificate(min:1,max:unbounded)
AttributesNone
SeeAlsoWixSchema
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
PackageGroupRefElement
DescriptionCreateareferencetoPackageGroupelementthatexistsinsideaBundleorFragmentelement.
WindowsInstallerreferencesNone
ParentsChain,Container,PackageGroup
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifierofthePackageGroupelementtoreference.
Yes
After String Theidentifierofapackagethatthisgroupshouldbeinstalledafter.
SeeAlsoWixSchema,PackageGroup
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
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
CriticalUpdate,Hotfix,SecurityRollup,SecurityUpdate,ServicePack,Update,UpdateRollup.
ClientPatchId String Aneasilyreferencedidentityuniquetoapatchthatcanbeusedinproductauthoring.Seeremarksformoreinformation.
Codepage String ThecodepageintegervalueorwebnamefortheresultingMSP.Seeremarksformoreinformation.
Comments String Optionalcommentsforbrowsing.
Description String Descriptionofthepatch.
DisplayName String Atitleforthepatchthatissuitableforpublicdisplay.
InAdd/RemoveProgramsfromXPSP2on.
Id AutogenGuid Patchcodeforthispatch.
Manufacturer String Vendorreleasingthepackage
MinorUpdateTargetRTM YesNoType IndicatesthatthepatchtargetstheRTMversionoftheproductorthemostrecentmajorupgradepatch.AuthorthisoptionalpropertyinminorupdatepatchesthatcontainsequencinginformationtoindicatethatthepatchremovesallpatchesuptotheRTMversionoftheproduct,oruptothemostrecentmajorupgradepatch.Thispropertyisavailable
beginningwithWindowsInstaller3.1.
MoreInfoURL String AURLthatprovidesinformationspecifictothispatch.InAdd/RemoveProgramsfromXPSP2on.
OptimizedInstallMode YesNoType Ifthisattributeissetto'yes'inallthepatchestobeappliedinatransaction,theapplicationofthepatchisoptimizedifpossible.AvailablebeginningwithWindowsInstaller3.1.
OptimizePatchSizeForLargeFiles YesNoType Whenthisattributeisset,patchesforfilesgreaterthanapproximately4MBinsizemaybemadesmaller.
TargetProductName String Nameoftheapplicationortargetproduct
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
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
PatchCertificatesElement
DescriptionIdentifiesthepossiblesignercertificatesusedtodigitallysignpatches.
WindowsInstallerreferencesMsiPatchCertificateTable
ParentsFragment,Product
InnerTextNone
ChildrenChoiceofelements(min:1,max:unbounded)
DigitalCertificate(min:1,max:unbounded)
AttributesNone
SeeAlsoWixSchema
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
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
YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.
SeeAlsoWixSchema
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
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
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
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
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
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
PatchInformationElement
DescriptionPropertiesaboutthepatchtobeplacedintheSummaryInformationStream.ThesearevisiblefromCOMthroughtheIStreaminterface,andthesepropertiescanbeseenonthepackageinExplorer.
WindowsInstallerreferencesNone
ParentsPatch,PatchCreation
InnerTextNone
ChildrenNone
Attributes
Name Type Description
AdminImage YesNoType Thisattributehasbeendeprecated.
Comments String Generalpurposeofthepatchpackage.Forexample,"Thispatchcontainsthelogicanddatarequiredtoinstall<product>
Compressed YesNoType Thisattributehasbeendeprecated.
Description String Ashortdescriptionofthepatchthatincludesthenameoftheproduct.
Keywords String Asemicolon-delimitedlistofnetworkorURLlocationsfor
alternatesourcesofthepatch.Thedefaultis"Installer,Patching,PCP,Database".
Languages String Thisattributehasbeendeprecated.
Manufacturer String Thenameofthemanufacturerofthepatchpackage.
Platforms String Thisattributehasbeendeprecated.
ReadOnly YesNoDefaultType Thevalueofthisattributeconveyswhetherthepackageshouldbeopenedasread-only.Adatabaseeditingtoolshouldnotmodifyaread-onlyenforceddatabaseandshouldissueawarningatattemptstomodifyaread-onlyrecommendeddatabase.
ShortNames YesNoType Thisattributehasbeendeprecated.
SummaryCodepage String Thecodepageintegervalueorwebnameforsummaryinfostringsonly.Thedefaultis1252.Seeremarksformoreinformation.
Remarks
YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.
SeeAlsoWixSchema
PatchMetadataElement
DescriptionPropertiesaboutthepatchtobeplacedinthePatchMetadatatable.
WindowsInstallerreferencesMsiPatchMetadataTable
ParentsPatchCreation
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
CustomProperty(min:0,max:unbounded):Acustompropertythatextendsthestandardset.OptimizeCustomActions(min:0,max:1):Indicateswhethercustomactionscanbeskippedwhenapplyingthepatch.
Attributes
Name Type Description Required
AllowRemoval YesNoType Whetherthisisanuninstallablepatch.
Yes
Classification String Categoryofupdates.RecommendedvaluesareCriticalUpdate,Hotfix,SecurityRollup,SecurityUpdate,Service
Yes
Pack,Update,UpdateRollup.
CreationTimeUTC String Creationtimeofthe.mspfileintheformmm-dd-yyHH:MM(month-day-yearhour:minute).
Description String Descriptionofthepatch.
Yes
DisplayName String Atitleforthepatchthatissuitableforpublicdisplay.InAdd/RemoveProgramsfromXPSP2on.
Yes
ManufacturerName String Nameofthemanufacturer.
Yes
MinorUpdateTargetRTM String IndicatesthatthepatchtargetstheRTMversionoftheproductorthemostrecentmajorupgradepatch.AuthorthisoptionalpropertyinminorupdatepatchesthatcontainsequencinginformationtoindicatethatthepatchremovesallpatchesuptotheRTMversionof
theproduct,oruptothemostrecentmajorupgradepatch.ThispropertyisavailablebeginningwithWindowsInstaller3.1.
MoreInfoURL String AURLthatprovidesinformationspecifictothispatch.InAdd/RemoveProgramsfromXPSP2on.
Yes
OptimizedInstallMode YesNoType Ifthisattributeissetto'yes'inallthepatchestobeappliedinatransaction,theapplicationofthepatchisoptimizedifpossible.AvailablebeginningwithWindowsInstaller3.1.
TargetProductName String Nameoftheapplicationortargetproductsuite.
Yes
SeeAlso
WixSchema
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
PatchSequenceElement
DescriptionSequenceinformationforthispatchdatabase.Sequenceinformationisgeneratedautomaticallyinmostcases,andrarelyneedstobesetexplicitly.
WindowsInstallerreferencesMsiPatchSequenceTable
ParentsPatchCreation
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
PatchFamily String Identifierwhichindicatesasequencefamilytowhichthispatchbelongs.
Yes
ProductCode Guid SpecifiestheProductCodeoftheproductthatthisfamilyappliesto.ThisattributecannotthespecifiediftheTargetImageattributeisspecified.
Sequence String UsedtopopulatethesequencecolumnoftheMsiPatchSequencetableinthefinalMSPfile.Specifiedinx.x.x.xformat.See
documentationforSequencecolumnofMsiPatchSequencetableinMSISDK.
Supersede YesNoType Setthisvalueto'yes'toindicatethatthispatchwillsupersedeallpreviouspatchesinthispatchfamily.Thedefaultvalueis'no'.
Target String Thisattributehasbeendeprecated;pleaseusetheTargetImageattributeinstead.
TargetImage String SpecifiestheTargetImagethatthisfamilyappliesto.ThisattributecannotthespecifiediftheProductCodeattributeisspecified.
SeeAlsoWixSchema
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
aresupported:
{0}isreplacedbythepackageId.{1}isreplacedbythepayloadId.{2}isreplacedbythepayloadfilename.
Id String TheidentifierofPayloadelement.
Name String Thedestinationpathandfilenameforthispayload.Thedefaultisthesourcefilename.Theuseof'..'directoriesisnotallowed.
SourceFile String Locationofthesourcefile.
Yes
SuppressSignatureVerification YesNoType Bydefault,aBundlewilluseapackage'sAuthenticodesignaturetoverifythecontents.IfthepackagedoesnothaveanAuthenticodesignaturethentheBundlewilluseahashofthepackageinstead.Setthisattributeto"yes"tosuppressthedefaultbehaviorandforcetheBundletoalwaysusethehashofthepackageevenwhenthepackageissigned.
SeeAlsoWixSchema
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
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
PermissionElement
DescriptionSetsACLsonFile,Registry,orCreateFolder.WhenunderaRegistryelement,thiscannotbeusediftheActionattribute'svalueisremoveorremoveKeyOnInstall.ThiselementhasnoIdattribute.Thetableandkeyaretakenfromtheparentelement.
WindowsInstallerreferencesLockPermissionsTable
ParentsCreateFolder,File,Registry,RegistryKey,RegistryValue
InnerTextNone
ChildrenNone
Attributes
Name Type Description
Append YesNoType
ChangePermission YesNoType
CreateChild YesNoType Foradirectory,therighttocreateasubdirectory.Onlyvalidundera'CreateFolder'parent.
CreateFile YesNoType Foradirectory,therighttocreateafileinthedirectory.Onlyvalidundera'CreateFolder'parent.
CreateLink YesNoType
CreateSubkeys YesNoType
Delete YesNoType
DeleteChild YesNoType Foradirectory,therighttodeleteadirectoryandallthefilesitcontains,includingread-onlyfiles.Onlyvalidundera'CreateFolder'parent.
Domain String
EnumerateSubkeys YesNoType
Execute YesNoType
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
privilege,whichignorestheFILE_TRAVERSEaccessright.Onlyvalidundera'CreateFolder'parent.
User String
Write YesNoType
WriteAttributes YesNoType
WriteExtendedAttributes YesNoType
SeeAlsoWixSchema
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
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
ProductElement
DescriptionTheProductelementisanalogoustothemainfunctioninaCprogram.Whenlinking,onlyoneProductsectioncanbegiventothelinkertoproduceasuccessfulresult.Usingthiselementcreatesanmsifile.
WindowsInstallerreferencesNone
ParentsWix
InnerTextNone
ChildrenSequence(min:1,max:1)1. Package(min:1,max:1)2. Choiceofelements(min:0,max:unbounded)
AppId(min:0,max:unbounded)Binary(min:0,max:unbounded)ComplianceCheck(min:0,max:unbounded)Component(min:0,max:unbounded)ComponentGroup(min:0,max:unbounded)Condition(min:0,max:unbounded)CustomAction(min:0,max:unbounded)CustomActionRef(min:0,max:unbounded)CustomTable(min:0,max:unbounded)Directory(min:0,max:unbounded)DirectoryRef(min:0,max:unbounded)EmbeddedChainer(min:0,max:unbounded)EmbeddedChainerRef(min:0,max:unbounded)
EnsureTable(min:0,max:unbounded)Feature(min:0,max:unbounded)FeatureGroupRef(min:0,max:unbounded)FeatureRef(min:0,max:unbounded)Icon(min:0,max:unbounded)InstanceTransforms(min:0,max:unbounded)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
ComPlusApplicationRoleComPlusPartitionComPlusPartitionRoleGroupHelpCollectionRefHelpFilterMajorUpgradeRequiresRestartResourceSqlDatabaseTagUnitTestRefUserWebApplicationWebAppPoolWebDirPropertiesWebLogWebSite
Attributes
Name Type Description Required
Id AutogenGuid TheproductcodeGUIDfortheproduct.
Yes
Codepage String ThecodepageintegervalueorwebnamefortheresultingMSI.Seeremarksformoreinformation.
Language LocalizableInteger ThedecimallanguageID(LCID)fortheproduct.
Yes
Manufacturer String Themanufactureroftheproduct.
Yes
Name String Thedescriptivenameoftheproduct.
Yes
UpgradeCode Guid TheupgradecodeGUIDfortheproduct.
Version String Theproduct'sversionstring.
Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
Remarks
YoucanspecifyanyvalidWindowscodepagebyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.
SeeAlsoWixSchema
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
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
canregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema
ProgIdElement
DescriptionProgIdregistrationforparentComponent.IfProgIdhasanassociatedClass,itmustbeachildofthatelement.
WindowsInstallerreferencesProgIdTable,ClassTable,RegistryTable,IconTable
ParentsClass,Component,ProgId
InnerTextNone
ChildrenSequence(min:1,max:1)1. ProgId(min:0,max:unbounded):Theversion-independent
ProgIdmustbethefirstchildelementofactualProgId.NestingotherProgIdelementswithintheVersion-independentProgIdwillcreateCOM+aliases,seehttp://support.microsoft.com/kb/305745formoreinformation.
2. Extension(min:0,max:unbounded):ExtensionsthatrefertothisProgId
Attributes
Name Type Description Required
Id String Yes
Advertise YesNoType
Description String
Icon String ForanadvertisedProgId,theIdofanIconelement.Foranon-advertisedProgId,thisistheIdofafilecontainingan
iconresource.
IconIndex Integer
NoOpen String SpecifiesthattheassociatedProgIdshouldnotbeopenedbyusers.Thevalueispresentedasawarningtousers.Anemptystringisalsovalidforthisattribute.
SeeAlsoWixSchema
ProgressTextElement
DescriptionNone
WindowsInstallerreferencesActionTextTable
ParentsUI
InnerText(xs:string)Elementvalueisprogressmessagetextforaction
ChildrenNone
Attributes
Name Type Description Required
Action String Yes
Template String usedtoformatActionDatamessagesfromactionprocessing
SeeAlsoWixSchema
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
Admin YesNoType DenotesthatthePropertyissavedduringadmininistrativeinstallation.SeetheAdminPropertiesPropertyformoreinformation.
ComplianceCheck YesNoType AddsarowtotheCCPSearchtable.ThisattributeisonlyvalidwhenthisPropertycontainsasearchelement.
Hidden YesNoType DenotesthatthePropertyisnotloggedduringinstallation.SeetheMsiHiddenPropertiesPropertyformoreinformation.
Secure YesNoType DenotesthatthePropertycanbepassedtotheserversidewhendoingamanagedinstallationwithelevatedprivileges.SeetheSecureCustomPropertiesPropertyformoreinformation.
SuppressModularization YesNoType Usetosuppressmodularizationofthispropertyidentifierinmergemodules.Usingthisfunctionalityisstronglydiscouraged;itshouldonlybenecessaryasa
workaroundoflastresortinrarescenarios.
Value String Setsadefaultvaluefortheproperty.ThevaluewillbeoverwrittenifthePropertyisusedforasearch.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
HowTosandExamplesHowTo:Checktheversionnumberofafileduringinstallation
SeeAlsoWixSchema,PropertyRef
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
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
ProtectRangeElement
DescriptionSpecifiespartofafilethatcannotbeoverwrittenduringpatching.
WindowsInstallerreferencesNone
ParentsExternalFile,ProtectFile,TargetFile
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Length Int Lengthoftherange. Yes
Offset Int Offsetofthestartoftherange. Yes
SeeAlsoWixSchema
PublishElement
DescriptionNone
WindowsInstallerreferencesControlEventTable
ParentsControl,UI
InnerText(xs:string)TheelementvalueistheoptionalConditionexpression.
ChildrenNone
Attributes
Name Type Description Required
Control String TheparentControlforthisPublishelement,shouldonlybespecifiedwhenthiselementisachildoftheUIelement.
Dialog String TheparentDialogforthisPublishelement,shouldonlybespecifiedwhenthiselementisachildoftheUIelement.ThisattributewillcreateareferencetothespecifiedDialog,soanadditionalDialogRefisnotnecessary.
Event String Setthisattribute'svaluetooneofthestandardcontroleventstotriggerthatevent.EitherthisattributeorthePropertyattributemustbeset,butnotbothatthe
sametime.
Order String ThisattributeshouldonlyneedtobesetifthiselementisnestedunderaUIelementinordertocontroltheorderinwhichthispublisheventwillbestarted.IfthiselementisnestedunderaControlelement,thedefaultvaluewillbeonegreaterthananypreviousPublishelement'sorder(thefirstelement'sdefaultvalueis1).IfthiselementisnestedunderaUIelement,thedefaultvalueisalways1(itdoesnotgetadefaultvaluebasedonanypreviousPublishelements).
Property String Setthisattribute'svaluetoapropertynametosetthatproperty.EitherthisattributeortheEventattributemustbeset,butnotbothatthesametime.
Value String IfthePropertyattributeisspecified,setthevalueofthisattributetothenewvaluefortheproperty.Tosetapropertytonull,donotsetthisattribute(theControlEventArgumentcolumnwillbesetto'{}').Otherwise,thisattribute'svalueshouldbetheargumentfortheeventspecifiedintheEventattribute.Iftheeventdoesn'ttakeanattribute,acommonvaluetouseis"0".
SeeAlsoWixSchema
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
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
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
RadioButtonElement
DescriptionTextorIconplusValuethatisassignedtothePropertyoftheparentControl(RadioButtonGroup).
WindowsInstallerreferencesRadioButtonTable,ControlTable,DialogTable
ParentsRadioButtonGroup
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Bitmap String Thisattributedefinesthebitmapdisplayedwiththeradiobutton.ThevalueoftheattributecreatesareferencetoaBinaryelementthatrepresentsthebitmap.ThisattributeismutuallyexclusivewiththeIconandTextattributes.
Height LocalizableInteger Yes
Help String
Icon String Thisattributedefinestheicondisplayedwiththeradiobutton.Thevalueof
theattributecreatesareferencetoaBinaryelementthatrepresentstheicon.ThisattributeismutuallyexclusivewiththeBitmapandTextattributes.
Text String Textdisplayedwiththeradiobutton.ThisattributeismutuallyexclusivewiththeBitmapandIconattributes.
ToolTip String
Value String ValueassignedtotheassociatedcontrolPropertywhenthisradiobuttonisselected.
Yes
Width LocalizableInteger Yes
X LocalizableInteger Yes
Y LocalizableInteger Yes
SeeAlsoWixSchema,RadioButtonGroup
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
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
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
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
RegisterFontsElement
DescriptionRegistersinstalledfontswiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRegisterFontsAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
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
RegisterProductElement
DescriptionRegisterstheproductinformationwiththeinstaller.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRegisterProductAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
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
RegisterTypeLibrariesElement
DescriptionRegisterstypelibrarieswiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRegisterTypeLibrariesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
RegisterUserElement
DescriptionRegisterstheuserinformationwiththeinstallertoidentifytheuserofaproduct.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRegisterUserAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
RegistryElement
DescriptionThiselementhasbeendeprecated;pleaseusetheRegistryValueelementinstead.
WindowsInstallerreferencesRegistryTable
ParentsComponent,Registry
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Permission(min:0,max:unbounded)PermissionEx(min:0,max:unbounded):CanalsoconfiguretheACLsforthisregistrykey.Registry(min:0,max:unbounded)RegistryValue(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
PermissionEx
Attributes
Name Type Description
Action Enumeration Thisistheactionthatwillbetakenforthisregistrykey.Thisattribute'svaluemustbeoneofthefollowing:append
Appendsthespecifiedvalue(s)toamultiStringregistrykey.
createKeyCreatesthekey,ifabsent,whentheparentcomponentisinstalled.
createKeyAndRemoveKeyOnUninstallCreatesthekey,ifabsent,whentheparentcomponentisinstalledthenremovethekeywithallitsvaluesandsubkeyswhentheparentcomponentisuninstalled.
prependPrependsthespecifiedvalue(s)toamultiStringregistrykey.
removeRemovesaregistrynamewhentheparentcomponentisinstalled.
removeKeyOnInstallRemovesakeywithallitsvaluesandsubkeyswhentheparentcomponentisinstalled.
removeKeyOnUninstallRemovesakeywithallitsvaluesandsubkeyswhentheparentcomponentisuninstalled.
writeWritesaregistryvalue.
Id String Primarykeyusedtoidentifythisparticularentry.Ifthisattributeisnotspecified,anidentifierwillbegeneratedbyhashingtheparentComponentidentifier,Root,Key,andName.
Key String Thelocalizablekeyfortheregistry
value.
KeyPath YesNoType Setthisattributeto'yes'tomakethisregistrykeytheKeyPathoftheparentcomponent.Onlyoneresource(registry,file,etc)canbetheKeyPathofacomponent.
Name String Thelocalizableregistryvaluename.Ifthisattributeisnotprovidedthedefaultvaluefortheregistrykeywillbesetinstead.TheWindowsInstallerallowsseveralspecialvaluestobesetforthisattribute.YoushouldnotusetheminWiX.InsteaduseappropriatevaluesintheActionattributetogetthedesiredbehavior.
Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.
Type Enumeration Setthisattributetothetypeofthedesiredregistrykey.ThisattributemustbespecifiedwhenevertheValueattributeorachildRegistryValueelementisspecified.ThisattributeshouldonlybesetwhenthevalueoftheActionattributedoesnotincludetheword'remove'.Thisattribute'svaluemustbeoneofthefollowing:string
Thevalueisinterpretedandstoredasastring(REG_SZ).
integerThevalueisinterpretedandstoredasaninteger(REG_DWORD).
binaryThevalueisinterpretedand
storedasahexadecimalvalue(REG_BINARY).
expandableThevalueisinterpretedandstoredasanexpandablestring(REG_EXPAND_SZ).
multiStringThevalueisinterpretedandstoredasamultiplestrings(REG_MULTI_SZ).Pleasenotethatthisvaluewillonlyresultinamulti-stringvalueifthereismorethanoneregistryvalueortheActionattribute'svalueis'append'or'prepend'.Otherwiseastringvaluewillbecreated.
Value String Setthisattributetothelocalizableregistryvalue.Thisvalueisformatted.TheWindowsInstallerallowsseveralspecialvaluestobesetforthisattribute.YoushouldnotusetheminWiX.InsteaduseappropriatevaluesintheTypeattributetogetthedesiredbehavior.ThisattributecannotbespecifiediftheActionattribute'svaluecontainstheword'remove'.
SeeAlsoWixSchema
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
key,usetheForceCreateOnInstallorForceDeleteOnUninstallattributesinstead.Thisattribute'svaluemustbeoneofthefollowing:create
Createsthekey,ifabsent,whentheparentcomponentisinstalled.
createAndRemoveOnUninstallCreatesthekey,ifabsent,whentheparentcomponentisinstalledthenremovethekeywithallitsvaluesandsubkeyswhentheparentcomponentisuninstalled.Notethatthisvalueisusefulonlyifyourprogramcreatesadditionalvaluesorsubkeysunderthiskeyandyouwantanuninstalltoremovethem.MSIalreadyremovesallvaluesandsubkeysthatitcreates,sothisoptionjustaddsadditionaloverheadtouninstall.
noneDoesnothing;thiselementisusedmerelyinWiXauthoringfororganizationanddoesnothingtothefinaloutput.Thisisthedefaultvalue.
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
thepathoftheparent,orifitsspecifieditwillbeappendedtothepathoftheparent.
Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.
HowTosandExamplesHowTo:ReadaregistryentryduringinstallationHowTo:Writearegistryentryduringinstallation
SeeAlsoWixSchema
RegistrySearchElement
DescriptionSearchesforfile,directoryorregistrykeyandassignstovalueofparentProperty
WindowsInstallerreferencesRegLocatorTable,SignatureTable
ParentsComplianceCheck,Property
InnerTextNone
ChildrenChoiceofelements(min:0,max:1)
DirectorySearch(min:0,max:1)DirectorySearchRef(min:0,max:1)FileSearch(min:0,max:1)FileSearchRef(min:0,max:1)
Attributes
Name Type Description Required
Id String Signaturetobeusedforthefile,directoryorregistrykeybeingsearchedfor.
Yes
Key String Keyfortheregistryvalue. Yes
Name String Registryvaluename.Ifthisvalueisnull,thenthevaluefromthekey'sunnamedordefaultvalue,ifany,isretrieved.
Root Enumeration Rootkeyfortheregistryvalue.Thisattribute'svaluemustbe
Yes
oneofthefollowing:HKCR
HKEY_CLASSES_ROOT
HKCUHKEY_CURRENT_USER
HKLMHKEY_LOCAL_MACHINE
HKUHKEY_USERS
Type Enumeration Thevaluemustbe'file'ifthechildisaFileSearchelement,andmustbe'directory'ifchildisaDirectorySearchelement.Thisattribute'svaluemustbeoneofthefollowing:directory
Theregistryvaluecontainsthepathtoadirectory.
fileTheregistryvaluecontainsthepathtoafile.ToreturnthefullfilepathyoumustaddaFileSearchelementasachildofthiselement;otherwise,theparentdirectoryofthefilepathisreturned.
rawSetstherawvaluefromtheregistryvalue.Pleasenotethatthisvaluewillcontainaprefixasfollows:
DWORDStartswith'#'optionally
Yes
followedby'+'or'-'.
REG_BINARYStartswith'#x'andtheinstallerconvertsandsaveseachhexadecimaldigit(nibble)asanASCIIcharacterprefixedby'#x'.
REG_EXPAND_SZStartswith'#%'.
REG_MULTI_SZStartswith'[~]'andendswith'[~]'.
REG_SZNoprefix,butifthefirstcharacteroftheregistryvalueis'#',theinstallerescapesthecharacterbyprefixingitwithanother'#'.
Win64 YesNoType Instructsthesearchtolookinthe64-bitregistrywhenthevalueis'yes'.Whenthevalueis'no',thesearchlooksinthe32-bitregistry.Thedefaultvalueisbasedontheplatformsetbythe-archswitchtocandle.exeortheInstallerPlatformpropertyina.wixprojMSBuildproject:Forx86andARM,thedefaultvalueis'no'.Forx64andIA64,thedefaultvalueis'yes'.
Remarks
WhentheTypeattributevalueis'directory'theregistryvaluemustspecifythepathtoadirectoryexcludingthefilename.WhentheTypeattributevalueis'file'theregistryvaluemustspecifythepathtoafileincludingthefilename;however,ifthereisnochildFileSearchelementtheparentdirectoryofthefileisreturned.TheFileSearchelementrequiresthatyouauthorthenameofthefileyouaresearchingfor.IfyoudonotknowthefilenameyoumustsettheTypeattributeto'raw'toreturnthefullfilepathincludingthefilename.
HowTosandExamplesHowTo:Readaregistryentryduringinstallation
SeeAlsoWixSchema,ComponentSearch,IniFileSearch
RegistrySearchRefElement
DescriptionReferencesanexistingRegistrySearchelement.
WindowsInstallerreferencesNone
ParentsProperty
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String SpecifytheIdoftheRegistrySearchtoreference.
Yes
SeeAlsoWixSchema,RegistrySearch
RegistryValueElement
DescriptionUsedtocreatearegistryvalue.Formulti-stringvalues,thiscanbeusedtoprependorappendvalues.
Forlegacyauthoring:UseseveraloftheseelementstospecifyeachregistryvalueinamultiStringregistryvalue.ThiselementcannotbeusediftheValueattributeisspecifiedunlesstheTypeattributeissetto'multiString'.ThevaluesshouldgointhetextareaoftheRegistryValueelement.
WindowsInstallerreferencesRegistryTable
ParentsComponent,Registry,RegistryKey
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenChoiceofelements(min:0,max:unbounded)
MultiStringValue(min:0,max:unbounded)Permission(min:0,max:unbounded)PermissionEx(min:0,max:unbounded):CanalsoconfiguretheACLsforthisregistryvalue.AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
PermissionEx
Attributes
Name Type Description Required
Action Enumeration Thisistheactionthatwill
betakenforthisregistryvalue.Thisattribute'svaluemustbeoneofthefollowing:append
Appendsthespecifiedvalue(s)toamultiStringregistryvalue.
prependPrependsthespecifiedvalue(s)toamultiStringregistryvalue.
writeWritesaregistryvalue.Thisisthedefaultvalue.
Id String Primarykeyusedtoidentifythisparticularentry.Ifthisattributeisnotspecified,anidentifierwillbegeneratedbyhashingtheparentComponentidentifier,Root,Key,andName.
Key String Thelocalizablekeyfortheregistryvalue.IftheparentelementisaRegistryKey,thisvaluemaybeomittedtousethepathoftheparent,orifitsspecifieditwillbeappendedtothepathoftheparent.
KeyPath YesNoType Setthisattributeto'yes'to
makethisregistrykeytheKeyPathoftheparentcomponent.Onlyoneresource(registry,file,etc)canbetheKeyPathofacomponent.
Name String Thelocalizableregistryvaluename.Ifthisattributeisnotprovidedthedefaultvaluefortheregistrykeywillbesetinstead.TheWindowsInstallerallowsseveralspecialvaluestobesetforthisattribute.YoushouldnotusetheminWiX.InsteaduseappropriatevaluesintheActionattributetogetthedesiredbehavior.
Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.
Type Enumeration Setthisattributetothetypeofthedesiredregistrykey.ThisattributemustbespecifiedwhenevertheValueattributeorachildRegistryValueelementisspecified.ThisattributeshouldonlybesetwhenthevalueoftheActionattributedoesnotincludetheword'remove'.Thisattribute'svaluemustbeoneofthefollowing:string
Thevalueis
interpretedandstoredasastring(REG_SZ).
integerThevalueisinterpretedandstoredasaninteger(REG_DWORD).
binaryThevalueisinterpretedandstoredasahexadecimalvalue(REG_BINARY).
expandableThevalueisinterpretedandstoredasanexpandablestring(REG_EXPAND_SZ).
multiStringThevalueisinterpretedandstoredasamultiplestrings(REG_MULTI_SZ).Pleasenotethatthisvaluewillonlyresultinamulti-stringvalueifthereismorethanoneregistryvalueortheActionattribute'svalueis'append'or'prepend'.Otherwiseastringvaluewillbecreated.
Value String Setthisattributetothe
localizableregistryvalue.Thisvalueisformatted.TheWindowsInstallerallowsseveralspecialvaluestobesetforthisattribute.YoushouldnotusetheminWiX.InsteaduseappropriatevaluesintheTypeattributetogetthedesiredbehavior.
HowTosandExamplesHowTo:Writearegistryentryduringinstallation
SeeAlsoWixSchema
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
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
RemotePayload.IncludethisattributeiftheremotefileisunsignedorSuppressSignatureVerificationissettoYes.
ProductName String Productnameofthefilefromversionresouces.
Size Integer Sizeoftheremotefileinbytes.
Version VersionType Versionoftheremotefile
SeeAlsoWixSchema
RemoveDuplicateFilesElement
DescriptionDeletesfilesinstalledbytheDuplicateFilesaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRemoveDuplicateFilesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
RemoveEnvironmentStringsElement
DescriptionModifiesthevaluesofenvironmentvariables.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRemoveEnvironmentStringsAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
RemoveExistingProductsElement
DescriptionGoesthroughtheproductcodeslistedintheActionPropertycolumnoftheUpgradetableandremovestheproductsinsequence.Specialactionsdon'thaveabuilt-insequencenumberandthusmustappearrelativetoanotheraction.ThesuggestedwaytodothisisbyusingtheBeforeorAfterattribute.InstallExecuteandInstallExecuteAgaincanoptionallyappearanywherebetweenInstallInitializeandInstallFinalize.
WindowsInstallerreferencesRemoveExistingProductsAction
ParentsInstallExecuteSequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthatthisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Avalueusedtoindicatethepositionofthisactionina
sequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
RemoveFileElement
DescriptionRemoveafile(s)iftheparentcomponentisselectedforinstallationorremoval.MultiplefilescanberemovedbyspecifyingawildcardforthevalueoftheNameattribute.Bydefault,thesourcedirectoryofthefileisthedirectoryoftheparentcomponent.ThiscanbeoverriddenbyspecifyingtheDirectoryattributewithavaluecorrespondingtotheIdofthesourcedirectory,orbyspecifyingthePropertyattributewithavaluecorrespondingtoapropertythatwillhaveavaluethatresolvestothefullpathtothesourcedirectory.
WindowsInstallerreferencesRemoveFileTable
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description
Id String Primarykeyusedtoidentifythisparticularentry.
Directory String OverridesthedirectoryoftheparentcomponentwithaspecificDirectory.ThisDirectorymustexistintheinstallerdatabaseatcreationtime.This
attributecannotbespecifiedinconjunctionwiththePropertyattribute.
LongName WildCardLongFileNameType Thisattributehasbeendeprecated;pleaseusetheNameattributeinstead.
Name WildCardLongFileNameType Thisvalueshouldbesettothelocalizablenameofthefile(s)toberemoved.Allofthefilesthatmatchthewildcardwillberemovedfromthespecifieddirectory.Thevalueisafilenamethatmayalsocontainthewildcardcharacters"?"foranysinglecharacteror"*"forzeroormoreoccurrencesofanycharacter.InpriorversionsoftheWiXtoolset,thisattributespecifiedtheshortfilename.Thisattribute'svaluemaynowbeeitherashortorlongfilename.Ifashortfilenameisspecified,theShortNameattributemaynotbespecified.Ifalongfilenameisspecified,theLongNameattributemaynotbespecified.Also,ifthisvalueisalongfilename,the
ShortNameattributemaybeomittedtoallowWiXtoattempttogenerateauniqueshortfilename.However,ifyouwishtomanuallyspecifytheshortfilename,thentheShortNameattributemaybespecified.
On InstallUninstallType Thisvaluedeterminesthetimeatwhichthefile(s)mayberemoved.For'install',thefilewillberemovedonlywhentheparentcomponentisbeinginstalled(msiInstallStateLocalormsiInstallStateSource);for'uninstall',thefilewillberemovedonlywhentheparentcomponentisbeingremoved(msiInstallStateAbsent);for'both',thefilewillberemovedinbothcases.
Property String Overridesthedirectoryoftheparentcomponentwiththevalueofthespecifiedproperty.Thepropertyshouldhaveavaluethatresolvestothefullpathofthesourcedirectory.Thepropertydoesnothavetoexist
intheinstallerdatabaseatcreationtime;itcouldbecreatedatinstallationtimebyacustomaction,onthecommandline,etc.ThisattributecannotbespecifiedinconjunctionwiththeDirectoryattribute.
ShortName WildCardShortFileNameType Theshortfilenameofthefilein8.3format.Thisattributeshouldonlybesetifyouwanttomanuallyspecifytheshortfilename.
SeeAlsoWixSchema,CopyFile
RemoveFilesElement
DescriptionRemovesfilespreviouslyinstalledbytheInstallFilesaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRemoveFilesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
RemoveFolderElement
DescriptionRemoveanemptyfolderiftheparentcomponentisselectedforinstallationorremoval.Bydefault,thefolderisthedirectoryoftheparentcomponent.ThiscanbeoverriddenbyspecifyingtheDirectoryattributewithavaluecorrespondingtotheIdofthedirectory,orbyspecifyingthePropertyattributewithavaluecorrespondingtoapropertythatwillhaveavaluethatresolvestothefullpathofthefolder.
WindowsInstallerreferencesRemoveFileTable
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Primarykeyusedtoidentifythisparticularentry.
Yes
Directory String OverridesthedirectoryoftheparentcomponentwithaspecificDirectory.ThisDirectorymustexistintheinstallerdatabaseatcreationtime.Thisattributecannotbespecifiedinconjunction
withthePropertyattribute.
On InstallUninstallType Thisvaluedeterminesthetimeatwhichthefoldermayberemoved,basedontheinstall/uninstalloftheparentcomponent.For'install',thefolderwillberemovedonlywhentheparentcomponentisbeinginstalled(msiInstallStateLocalormsiInstallStateSource);for'uninstall',thefolderwillberemovedonlywhentheparentcomponentisbeingremoved(msiInstallStateAbsent);for'both',thefolderwillberemovedinbothcases.
Yes
Property String Overridesthedirectoryoftheparentcomponentwiththevalueofthespecifiedproperty.Thepropertyshouldhaveavaluethatresolvestothefullpathofthesourcedirectory.Thepropertydoesnothavetoexistintheinstallerdatabaseatcreationtime;itcouldbecreatedatinstallationtimebyacustomaction,onthecommandline,etc.This
attributecannotbespecifiedinconjunctionwiththeDirectoryattribute.
SeeAlsoWixSchema,CreateFolder
RemoveFoldersElement
DescriptionRemovesanyfolderslinkedtocomponentssettoberemovedorrunfromsource.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRemoveFoldersAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
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
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
RemoveRegistryKeyElement
DescriptionUsedforremovingregistrykeysandallchildkeyseitherduringinstalloruninstall.
WindowsInstallerreferencesRegistryTable,RemoveRegistryTable
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Action Enumeration Thisistheactionthatwillbetakenforthisregistryvalue.Thisattribute'svaluemustbeoneofthefollowing:removeOnInstall
Removesakeywithallitsvaluesandsubkeyswhentheparentcomponentisinstalled.
removeOnUninstallRemovesakeywithallitsvaluesandsubkeyswhentheparentcomponentisuninstalled.
Id String Primarykeyusedtoidentifythisparticularentry.Ifthisattributeisnotspecified,anidentifierwillbegeneratedbyhashingtheparentComponentidentifier,Root,Key,andName.
Key String Thelocalizablekeyfortheregistryvalue.
Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.
SeeAlsoWixSchema
RemoveRegistryValueElement
DescriptionUsedtoremovearegistryvalueduringinstallation.Thereisnostandardwaytoremoveasingleregistryvalueduringuninstall(butyoucanremoveanentirekeywithRemoveRegistryKey).
WindowsInstallerreferencesRemoveRegistryTable
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Primarykeyusedtoidentifythisparticularentry.Ifthisattributeisnotspecified,anidentifierwillbegeneratedbyhashingtheparentComponentidentifier,Root,Key,andName.
Key String Thelocalizablekeyfortheregistryvalue.IftheparentelementisaRegistryKey,thisvaluemaybeomittedtousethepathoftheparent,orifitsspecifieditwillbeappendedtothepathoftheparent.
Name String Thelocalizableregistryvaluename.Ifthisattributeisnotprovidedthedefaultvaluefortheregistrykeywillbesetinstead.TheWindowsInstallerallowsseveralspecialvaluestobesetforthisattribute.YoushouldnotusetheminWiX.InsteaduseappropriatevaluesintheActionattributetogetthedesiredbehavior.
Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.
SeeAlsoWixSchema
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
RemoveShortcutsElement
DescriptionManagestheremovalofanadvertisedshortcutwhosefeatureisselectedforuninstallationoranonadvertisedshortcutwhosecomponentisselectedforuninstallation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRemoveShortcutsAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
ReplacePatchElement
DescriptionApatchthatisdeprecatedbythispatch.
WindowsInstallerreferencesNone
ParentsPatchCreation
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id Guid PatchGUIDtobeunregisteredifitexistsonthemachinetargetedbythispatch.
Yes
SeeAlsoWixSchema
RequiredPrivilegeElement
DescriptionPrivilegerequiredbyserviceconfiguredbyServiceConfigparent.ValidvaluesareaprivilegeconstantoraFormattedpropertythatresolvestoaprivilegeconstant.
WindowsInstallerreferencesMsiServiceConfigTable
ParentsServiceConfig
SeeAlsoWixSchema
ReserveCostElement
DescriptionDiskcosttoreserveinafolderforrunninglocallyand/orfromsource.
WindowsInstallerreferencesReserveCostTable
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String AprimarykeythatuniquelyidentifiesthisReserveCostentry.
Yes
Directory String AddstheamountofdiskspacespecifiedinRunFromSourceorRunLocaltothevolumecostofthedevicecontainingthedirectory.Ifthisattributeisnotset,itwilldefaulttothedirectoryofparentcomponent.
RunFromSource Integer Thenumberofbytesofdiskspacetoreserveifthecomponentisinstalledtorunfromsource.
Yes
RunLocal Integer Thenumberofbytesofdiskspacetoreserveifthecomponentisinstalledtorunlocally.
Yes
SeeAlsoWixSchema
ResolveSourceElement
DescriptionDeterminesthelocationofthesourceandsetstheSourceDirpropertyifthesourcehasnotbeenresolvedyet.Specialactionsdon'thaveabuilt-insequencenumberandthusmustappearrelativetoanotheraction.ThesuggestedwaytodothisisbyusingtheBeforeorAfterattribute.InstallExecuteandInstallExecuteAgaincanoptionallyappearanywherebetweenInstallInitializeandInstallFinalize.
WindowsInstallerreferencesResolveSourceAction
ParentsAdminExecuteSequence,InstallExecuteSequence,InstallUISequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthatthisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Avalueusedtoindicatethe
positionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
RMCCPSearchElement
DescriptionUsesfilesignaturestovalidatethatqualifyingproductsareinstalledonasystembeforeanupgradeinstallationisperformed.TheRMCCPSearchactionshouldbeauthoredintotheInstallUISequencetableandInstallExecuteSequencetable.TheinstallerpreventsRMCCPSearchfromrunningintheInstallExecuteSequencesequenceiftheactionhasalreadyruninInstallUISequencesequence.TheRMCCPSearchactionrequirestheCCP_DRIVEpropertytobesettotherootpathontheremovablevolumethathastheinstallationforanyofthequalifyingproducts.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRMCCPSearchAction
ParentsInstallExecuteSequence,InstallUISequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthatthisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Overridable YesNoType If"yes",thesequencingof
thisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,CCPSearch,ComplianceCheck
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
specifiedthenthechainshouldcontinuesuccessfulyatthenextrollbackboundary.
SeeAlsoWixSchema
RowElement
DescriptionRowdataforaCustomTable
WindowsInstallerreferencesNone
ParentsCustomTable
InnerTextNone
ChildrenSequence(min:1,max:1)1. Data(min:1,max:unbounded)
AttributesNone
SeeAlsoWixSchema
ScheduleRebootElement
DescriptionPromptstheusertorestartthesystemattheendofinstallation.Specialactionsdon'thaveabuilt-insequencenumberandthusmustappearrelativetoanotheraction.ThesuggestedwaytodothisisbyusingtheBeforeorAfterattribute.InstallExecuteandInstallExecuteAgaincanoptionallyappearanywherebetweenInstallInitializeandInstallFinalize.
WindowsInstallerreferencesScheduleRebootAction
ParentsInstallExecuteSequence,InstallUISequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthatthisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
SelfRegModulesElement
DescriptionProcessesallmoduleslistedintheSelfRegtableandregistersallinstalledmoduleswiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesSelfRegModulesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
SelfUnregModulesElement
DescriptionUnregistersallmoduleslistedintheSelfRegtablethatarescheduledtobeuninstalled.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesSelfUnregModulesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
ServiceArgumentElement
DescriptionArgumentusedinServiceControlparent
WindowsInstallerreferencesServiceControlTable
ParentsServiceControl
SeeAlsoWixSchema
ServiceConfigElement
DescriptionConfiguresaservicebeinginstalledoronethatalreadyexists.Thiselement'sfunctionalityisavailablestartingwithMSI5.0.
WindowsInstallerreferencesMsiServiceConfigTable
ParentsComponent,ServiceInstall
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
RequiredPrivilege(min:0,max:unbounded):Listofprivilegestoapplytoservice.
Attributes
Name Type Description Required
DelayedAutoStart String Thisattributespecifieswhetheranauto-startserviceshoulddelayitsstartuntilafterallotherauto-startservices.Thisattributeonlyaffectsauto-startservices.Allowedvaluesare"yes","no"oraFormattedpropertythatresolvesto"1"(for"yes")or"0"(for"no").Ifthisattributeisnotpresentthesettingisnotconfigured.
FailureActionsWhen String Thisattributespecifieswhenfailureactionsshouldbeapplied.Allowedvaluesare
"failedToStop","failedToStopOrReturnedError"oraFormattedpropertythatresolvesto"1"(for"failedToStopOrReturnedError")or"0"(for"failedToStop").Ifthisattributeisnotpresentthesettingisnotconfigured.
Id String Uniqueidentifierforthisserviceconfiguration.ThisvaluewilldefaulttotheServiceNameattributeifnotspecified.
OnInstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisinstalled.ThisattributemaybecombinedwithOnReinstallandOnUninstall.
OnReinstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisreinstalled.ThisattributemaybecombinedwithOnInstallandOnUninstall.
OnUninstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisuninstalled.ThisattributemaybecombinedwithOnInstallandOnReinstall.
PreShutdownDelay String ThisattributespecifiestimeinmillisecondsthattheServiceControlManager(SCM)waitsafternotifyingtheserviceofasystemshutdown.Ifthisattributeisnotpresentthedefaultvalue,3minutes,isused.
ServiceName String Specifiesthenameoftheservicetoconfigure.ThisvaluewilldefaulttotheServiceInstall/@NameattributewhennestedunderaServiceInstallelement.
ServiceSid String SpecifiestheserviceSIDtoapplytotheservice.Validvaluesare"none","restricted","unrestricted"oraFormattedpropertythatresolvesto"0"(for"none"),"3"(for"restricted")or"1"(for"unrestricted").Ifthisattributeisnotpresentthesettingisnotconfigured.
SeeAlsoWixSchema
ServiceConfigFailureActionsElement
DescriptionConfiguresthefailureactionsforaservicebeinginstalledoronethatalreadyexists.Thiselement'sfunctionalityisavailablestartingwithMSI5.0.
WindowsInstallerreferencesMsiServiceConfigFailureActionsTable
ParentsComponent,ServiceInstall
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Failure(min:0,max:unbounded):Orderedlistoffailureactionstoapplytoservice.
Attributes
Name Type Description Required
Command String Thisattributespecifiescommandtoexecutewhena"runCommand"failureactionhit.Ifanemptystringisprovideditclearstheexistingcommand.Ifthisattributeisnotpresentthesettingisnotchanged.
Id String Uniqueidentifierforthisserviceconfiguration.
ThisvaluewilldefaulttotheServiceNameattributeifnotspecified.
OnInstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisinstalled.ThisattributemaybecombinedwithOnReinstallandOnUninstall.
OnReinstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisreinstalled.ThisattributemaybecombinedwithOnInstallandOnUninstall.
OnUninstall YesNoType SpecifieswhethertoconfiguretheservicewhentheparentComponentisuninstalled.ThisattributemaybecombinedwithOnInstallandOnReinstall.
RebootMessage String Specifiesthemessagetoshowforarebootfailureaction.Ifanemptystringisprovideditclearsanyexistingrebootmessage.Ifthisattributeisnotpresentthesettingisnotchanged.
ResetPeriod String Specifiesthetimeinsecondstoresetthefailurecount.Ifthisattributeisnotpresentthefailurecountwillnotbereset.
ServiceName String Specifiesthenameoftheservicetoconfigure.ThisvaluewilldefaulttotheServiceInstall/@NameattributewhennestedunderaServiceInstallelement.
SeeAlsoWixSchema
ServiceControlElement
DescriptionStarts,stops,andremovesservicesforparentComponent.ThiselementisusedtocontrolthestateofaserviceinstalledbytheMSIorMSMfilebyusingthestart,stopandremoveattributes.Forexample,Start='install'Stop='both'Remove='uninstall'wouldmean:starttheserviceoninstall,removetheservicewhentheproductisuninstalled,andstoptheservicebothoninstallanduninstall.
WindowsInstallerreferencesServiceControlTable
ParentsComponent
InnerTextNone
ChildrenSequence(min:1,max:1)1. ServiceArgument(min:0,max:unbounded):Orderedlistof
argumentsusedwhenmodifyingservices.
Attributes
Name Type Description Required
Id String Yes
Name String Nameoftheservice. Yes
Remove InstallUninstallType SpecifieswhethertheserviceshouldberemovedbytheDeleteServicesactiononinstall,uninstallorboth.For'install',theservicewillberemovedonly
whentheparentcomponentisbeinginstalled(msiInstallStateLocalormsiInstallStateSource);for'uninstall',theservicewillberemovedonlywhentheparentcomponentisbeingremoved(msiInstallStateAbsent);for'both',theservicewillberemovedinbothcases.
Start InstallUninstallType SpecifieswhethertheserviceshouldbestartedbytheStartServicesactiononinstall,uninstallorboth.For'install',theservicewillbestartedonlywhentheparentcomponentisbeinginstalled(msiInstallStateLocalormsiInstallStateSource);for'uninstall',theservicewillbestartedonlywhentheparentcomponentisbeingremoved(msiInstallStateAbsent);for'both',theservicewillbestartedinbothcases.
Stop InstallUninstallType SpecifieswhethertheserviceshouldbestoppedbytheStopServicesactiononinstall,uninstallorboth.For'install',theservice
willbestoppedonlywhentheparentcomponentisbeinginstalled(msiInstallStateLocalormsiInstallStateSource);for'uninstall',theservicewillbestoppedonlywhentheparentcomponentisbeingremoved(msiInstallStateAbsent);for'both',theservicewillbestoppedinbothcases.
Wait YesNoType Specifieswhetherornottowaitfortheservicetocompletebeforecontinuing.Thedefaultis'yes'.
SeeAlsoWixSchema
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
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".
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
messageboxandcontinuesthestartupoperation.
criticalLogstheerrorifitispossibleandthesystemisrestartedwiththelastconfigurationknowntobegood.Ifthelast-known-goodconfigurationisbeingstarted,thestartupoperationfails.
Id String Uniqueidentifierforthisserviceconfiguration.ThisvaluewilldefaulttotheNameattributeifnotspecified.
Interactive YesNoType Whetherornottheserviceinteractswiththedesktop.
LoadOrderGroup String Theloadorderinggroupthatthisserviceshouldbeapartof.
Name String Thiscolumnisthestringthatgivestheservicenametoinstall.
Yes
Password String Thepasswordfortheaccount.Validonlywhentheaccounthasapassword.
Start Enumeration Determineswhentheserviceshouldbestarted.TheWindowsInstallerdoesnotsupportbootorsystem.Thisattribute'svaluemustbeoneofthefollowing:auto
Theservicewillstartduringstartupofthesystem.
demandTheservicewillstartwhentheservicecontrolmanagercallstheStartServicefunction.
disabledTheservicecannolongerbestarted.
bootTheserviceisadevicedriverthatwillbestartedbytheoperatingsystembootloader.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.
systemTheserviceisadevicedriverthatwillbestartedby
Yes
theIoInitSystemfunction.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.
Type Enumeration TheWindowsInstallerdoesnotcurrentlysupportkernelDriverorsystemDriver.Thisattribute'svaluemustbeoneofthefollowing:ownProcess
AWin32servicethatrunsitsownprocess.
shareProcessAWin32servicethatsharesaprocess.
kernelDriverAkerneldriverservice.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.
systemDriverAfilesystemdriverservice.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.
Yes
Vital YesNoType Theoverallinstallshouldfailifthis
servicefailstoinstall.
RemarksTheserviceexecutableinstalledwillpointtotheKeyPathfortheComponent.Therefore,youmustensurethatthecorrectexecutableiseitherthefirstchildFileelementunderthisComponentorexplicitlymarktheappropriateFileelementasKeyPath='yes'.
SeeAlsoWixSchema
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
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
SetODBCFoldersElement
DescriptionChecksforexistingODBCdriversandsetsthetargetdirectoryforeachnewdrivertothelocationofanexistingdriver.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesSetODBCFoldersAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
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
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
aliteralvalueorderivedfromaPropertyelementusingtheFormattedsyntax.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,Custom,CustomActionRef,InstallUISequence,InstallExecuteSequence
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
SFPFileElement
DescriptionProvidesamany-to-manymappingfromtheSFPCatalogtabletotheFiletable
WindowsInstallerreferencesFileSFPCatalogTable
ParentsSFPCatalog
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String PrimaryKeytoFileTable. Yes
SeeAlsoWixSchema
ShortcutElement
DescriptionShortcut,defaulttargetisparentFile,CreateFolder,orComponent'sDirectory
WindowsInstallerreferencesShortcutTable
ParentsComponent,CreateFolder,File
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Icon(min:0,max:unbounded)ShortcutProperty(min:0,max:unbounded)
Attributes
Name Type Description
Id String Uniqueidentifierfortheshortcut.Thisvaluewillserveastheprimarykeyfortherow.
Advertise YesNoType Specifiesiftheshortcutshouldbeadvertisedornot.Notethatadvertisedshortcutsalwayspointataparticularapplication,identifiedbyaProductCode,andshouldnotbesharedbetweenapplications.Advertisedshortcutsonlyworkforthemostrecentlyinstalledapplication,andareremoved
whenthatapplicationisremoved.Thedefaultvalueis'no'.
Arguments String Thecommand-lineargumentsfortheshortcut.NotethattheresolutionofpropertiesArgumentsfieldislimited.Apropertyformattedas[Property]inthisfieldcanonlyberesolvedifthepropertyalreadyhastheintendedvaluewhenthecomponentowningtheshortcutisinstalled.Forexample,fortheargument"[#MyDoc.doc]"toresolvetothecorrectvalue,thesameprocessmustbeinstallingthefileMyDoc.docandcomponentthatownstheshortcut.
Description String Thelocalizabledescriptionfortheshortcut.
DescriptionResourceDll String TheFormattedstringprovidingthefullpathtothelanguageneutralfilecontainingtheMUIManifest.Generallyauthoredusing[#filekey]form.Whenthisattributeisspecified,theDescriptionResourceIdattributemustalsobeprovided.
ThisattributeisonlyusedonWindowsVistaandabove.thisattributeisnotspecifiedandtheinstallisrunningonVistaandabove,thevalueintheNameattributeisused.thisattributeisprovidedand
installisrunningonVistaandabove,thevalueintheNameattributeisignored.
DescriptionResourceId Integer Thedescriptionnameindexfortheshortcut.Thismustbeanon-negativenumber.thisattributeisspecified,DescriptionResourceDllattributemustalsobepopulated.
ThisattributeisonlyusedonWindowsVistaandabove.thisattributeisnotspecifiedandtheinstallisrunningonVistaandabove,thevalueintheNameattributeisused.thisattributeispopulatedandtheinstallisrunningonVistaandabove,thevalueintheNameattributeisignored.
Directory String IdentifierreferencetoDirectoryelementwhereshortcutistobecreated.WhennestedunderaComponentelement,thisattribute'svaluewilldefaulttotheparentdirectory.Otherwise,thisattributeisrequired.
DisplayResourceDll String TheFormattedstringprovidingthefullpathtothelanguageneutralfilecontainingtheMUIManifest.Generallyauthoredusing[#filekey]form.Whenthisattributeisspecified,theDisplayResourceIdattributemustalsobeprovided.
ThisattributeisonlyusedonWindowsVistaandabove.thisattributeisnotpopulatedandtheinstallisrunningonVistaandabove,thevalueintheNameattributeisused.thisattributeispopulatedandtheinstallisrunningonVistaandabove,thevalueintheNameattributeisignored.
DisplayResourceId Integer Thedisplaynameindexfortheshortcut.Thismustbeanon-negativenumber.Whenthisattributeisspecified,theDisplayResourceDllattributemustalsobeprovided.
ThisattributeisonlyusedonWindowsVistaandabove.thisattributeisnotspecifiedandtheinstallisrunningonVistaandabove,thevalueintheNameattributeisused.thisattributeisspecifiedandtheinstallisrunningonVistaandabove,thevalueintheNameattributeisignored.
Hotkey Integer Thehotkeyfortheshortcut.Thelow-orderbytecontainsthevirtual-keycodeforthekey,andthehigh-orderbytecontainsmodifierflags.Thismustbeanon-negativenumber.Authorsofinstallationpackagesaregenerallyrecommendnottosetthisoption,becausethiscanaddduplicatehotkeystoausersdesktop.Inaddition,the
practiceofassigninghotkeystoshortcutscanbeproblematicforusersusinghotkeysforaccessibility.
Icon String IdentifierreferencetoIconelement.TheIconidentifiershouldhavethesameextensionasthefilethatitpointsat.Forexample,ashortcuttoanexecutable(e.g."my.exe")shouldreferenceanIconwithidentifierlike"MyIcon.exe"
IconIndex Integer IdentifierreferencetoIconelement.
LongName LongFileNameType Thisattributehasbeendeprecated;pleaseusetheNameattributeinstead.
Name LongFileNameType InpriorversionsoftheWiXtoolset,thisattributespecifiedtheshortname.Thisattribute'svaluemaynowbeeitherashortorlongname.Ifashortnameisspecified,theShortNameattributemaynotbespecified.alongnameisspecified,theLongNameattributemaynotbespecified.Also,ifthisvalueisalongname,theShortNameattributemaybeomittedtoallowWiXtoattempttogenerateauniqueshortname.However,ifthisnamecollideswithanothershortcutoryouwishtomanuallyspecifyshortname,thenthe
ShortNameattributemaybespecified.
ShortName ShortFileNameType Theshortnameoftheshortcutin8.3format.Thisattributeshouldonlybesetifthereisaconflictbetweengeneratedshortnamesortheuserwantstomanuallyspecifytheshortname.
Show Enumeration Thisattribute'svaluemustbeoneofthefollowing:normal
TheshortcuttargetwillbedisplayedusingtheSW_SHOWNORMALattribute.
minimizedTheshortcuttargetwillbedisplayedusingtheSW_SHOWMINNOACTIVEattribute.
maximizedTheshortcuttargetwillbedisplayedusingtheSW_SHOWMAXIMIZEDattribute.
Target String ThisattributecanonlybesetifthisShortcutelementisnestedunderaComponentelement.WhennestedunderaComponentelement,thisattribute'svaluewilldefaulttotheparentdirectory.Thisattribute'svalueisthetargetforanon-advertisedshortcut.
attributeisnotvalidforadvertisedshortcuts.Ifyouspecifythisvalue,itsvalueshouldbeapropertyidentifierenclosedbysquarebrackets([]),thatisexpandedintothefileorafolderpointedtobytheshortcut.
WorkingDirectory String Directoryidentifier(orPropertyidentifierthatresolvestoadirectory)thatresolvespathoftheworkingdirectoryfortheshortcut.
HowTosandExamplesHowTo:CreateashortcutontheStartMenu
SeeAlsoWixSchema
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
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
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
BurnContainerType(SimpleType)
DescriptionValuesofthistypewilleitherbe"attached"or"detached".
EnumerationTypePossiblevalues:{attached,detached}
SeeAlsoWixSchema
BurnExeProtocolType(SimpleType)
DescriptionThelistofcommuncationprotocolswithexecutablepackagesBurnsupports.
EnumerationTypePossiblevalues:{none,burn,netfx4}
SeeAlsoWixSchema
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoWixSchema
CompressionLevelType(SimpleType)
DescriptionIndicatesthecompressionlevelforacabinet.
EnumerationTypePossiblevalues:{high,low,medium,mszip,none}
SeeAlsoWixSchema
DiskIdType(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevalueofoneormorepreprocessorvariableswiththeformat$(var.Variable)where"Variable"isthenameofthepreprocessorvariable.
PatternTypeMustmatchtheregularexpression:'((\d+)|(\$\(\w+\.(\w|[.])+\)))+'.
SeeAlsoWixSchema
ExitType(SimpleType)
DescriptionValueindicatesthatthisactionisexecutediftheinstallerreturnstheassociatedexittype.Eachexittypecanbeusedwithnomorethanoneaction.Multipleactionscanhaveexittypesassigned,buteveryactionandexittypemustbedifferent.Exittypesaretypicallyusedwithdialogboxes.
EnumerationTypePossiblevalues:{success,cancel,error,suspend}
SeeAlsoWixSchema
Guid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoWixSchema
HexType(SimpleType)
DescriptionThistypesupportsanyhexadecimalnumber.Bothupperandlowercaseisacceptableforlettersappearinginthenumber.Thistypealsoincludestheemptystring:"".
PatternTypeMustmatchtheregularexpression:'[0-9A-Fa-f]*'.
SeeAlsoWixSchema
InstallUninstallType(SimpleType)
DescriptionSpecifieswhetheranactionoccuroninstall,uninstallorboth.
EnumerationTypePossiblevalues:{install,uninstall,both}
SeeAlsoWixSchema
LocalizableInteger(SimpleType)
DescriptionValuesofthistypemustbeanintegerorthevaluecanbealocalizationvariablewiththeformat!(loc.Variable)where"Variable"isthenameofthevariable.
PatternTypeMustmatchtheregularexpression:'[0-9][0-9]*|([!$])\((loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)'.
SeeAlsoWixSchema
LongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileName.extension".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\?|>:/*"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoWixSchema
PreprocessorVariables(SimpleType)
DescriptionAtypethatrepresentsthat1ormorepreprocessorvariables(astheyappearinsourcesondisk,beforepreprocessorhasrun).
PatternTypeMustmatchtheregularexpression:'(\$\(\w+\.(\w|[.])+\))+'.
SeeAlsoWixSchema
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoWixSchema
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,first,execute,ui}
SeeAlsoWixSchema
ShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"FileName.ext".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\?|>:/*"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\?|><:/\*"\+,;=\[\]\.]{1,8}(\.[^\\\?|><:/\*"\+,;=\[\]\.]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoWixSchema
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoWixSchema
WildCardLongFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"LongFileN?me.extension*".Legallongnamescontainnomorethan260charactersandmustcontainatleastonenon-periodcharacter.Thefollowingcharactersarenotallowed:\|>:/"orless-than.Thenamemustbeshorterthan260characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoWixSchema
WildCardShortFileNameType(SimpleType)
DescriptionValuesofthistypewilllooklike:"File?.*".Onlyoneperiodisallowed.Thefollowingcharactersarenotallowed:\|>:/"+,;=[]less-than,orwhitespace.Thenamecannotbelongerthan8charactersandtheextensioncannotexceed3characters.Thevaluecouldalsobealocalizationvariablewiththeformat!(loc.VARIABLE).
PatternTypeMustmatchtheregularexpression:'[^\\\|><:/"\+,;=\[\]\.]{1,16}(\.[^\\\|><:/"\+,;=\[\]\.]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)'.
SeeAlsoWixSchema
YesNoAlwaysType(SimpleType)
DescriptionValuesofthistypewilleitherbe"always","yes",or"no".
EnumerationTypePossiblevalues:{always,no,yes}
SeeAlsoWixSchema
YesNoButtonType(SimpleType)
DescriptionValuesofthistypewilleitherbe"button","yes"or"no".
EnumerationTypePossiblevalues:{no,yes,button}
SeeAlsoWixSchema
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoWixSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoWixSchema
SlipstreamMspElement
DescriptionSpecifiesapatchincludedinthesamebundlethatisinstalledwhentheparentMSIpackageisinstalled.
WindowsInstallerreferencesNone
ParentsMsiPackage
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifierforaMspPackageinthebundle.
Yes
Remarks
YoucanalsospecifythatanyMspPackageelementsinthechainareautomaticallyslipstreamedbysettingtheSlipstreamattributeofanMspPackageto"yes".Thiswillreducetheamountofauthoringyouneedtowriteandwilldeterminewhichmsipackagescanslipstreampatcheswhenbuildingabundle.
SeeAlsoWixSchema,MspPackage
StartServicesElement
DescriptionStartssystemservices.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesStartServicesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
StopServicesElement
DescriptionStopssystemservices.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesStopServicesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
SubscribeElement
DescriptionSetsattributesforeventsintheEventMappingtable
WindowsInstallerreferencesEventMappingTable
ParentsControl
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Attribute String ifnotpresentcanonlyhandleenable,disable,hide,unhideevents
Event String mustbeoneofthestandardcontrolevents'
SeeAlsoWixSchema
SubstitutionElement
DescriptionSpecifiestheconfigurablefieldsofamoduledatabaseandprovidesatemplatefortheconfigurationofeachfield.
WindowsInstallerreferencesNone
ParentsModule
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Column String SpecifiesthetargetcolumnintherownamedintheRowcolumn.
Yes
Row String SpecifiestheprimarykeysofthetargetrowinthetablenamedintheTablecolumn.Ifmultiplekeys,separatedbysemicolons.
Yes
Table String Specifiesthenameofthetablebeingmodifiedinthemoduledatabase.
Yes
Value String ProvidesaformattingtemplateforthedatabeingsubstitutedintothetargetfieldspecifiedbyTable,Row,andColumn.
SeeAlso
WixSchema
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
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
TargetImageElement
DescriptionContainsinformationaboutthetargetimagesoftheproduct.
WindowsInstallerreferencesNone
ParentsUpgradeImage
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
SymbolPath(min:0,max:unbounded)TargetFile(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifierforthetargetimage.
Yes
IgnoreMissingFiles YesNoType Filesmissingfromthetargetimageareignoredbytheinstaller.
Order Int Relativeorderofthetargetimage.
Yes
SourceFile String Fullpathtothelocationofthemsifileforthetargetimage.
src String Thisattributehasbeendeprecated;please
usetheSourceFileattributeinstead.
Validation String Productcheckingtoavoidapplyingirrelevanttransforms.
SeeAlsoWixSchema
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
TargetProductCodesElement
DescriptionTheproductcodesforproductsthatcanacceptthepatch.
WindowsInstallerreferencesNone
ParentsPatch
InnerTextNone
ChildrenChoiceofelements(min:1,max:unbounded)
TargetProductCode(min:1,max:unbounded)
Attributes
Name Type Description Required
Replace YesNoType Whethertoreplacetheproductcodesthatcanacceptthepatchfromthetargetpackageswiththechildelements.
SeeAlsoWixSchema
TextElement
DescriptionAnalternativetousingtheTextattributewhenthevaluecontainsspecialXMLcharacterslike<,>,or&.
WindowsInstallerreferencesNone
ParentsControl
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
SourceFile String Instructsthetexttobeimportedfromafileinsteadoftheelementvalueduringthebindingprocess.
src String Thisattributehasbeendeprecated;pleaseusetheSourceFileattributeinstead.
SeeAlsoWixSchema
TextStyleElement
DescriptionNone
WindowsInstallerreferencesTextStyleTable
ParentsUI
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
Blue Integer 0to255
Bold YesNoType
FaceName String Yes
Green Integer 0to255
Italic YesNoType
Red Integer 0to255
Size String Yes
Strike YesNoType
Underline YesNoType
SeeAlso
WixSchema
TypeLibElement
DescriptionRegisteratypelibrary(TypeLib).Pleasenotethatinordertoproperlyusethisnon-advertised,youwillneedusethiselementwithAdvertise='no'andalsoauthortheappropriatechildInterfaceelementsbyextractingthemfromthetypelibraryitself.
WindowsInstallerreferencesTypeLibTable,RegistryTable
ParentsComponent,File
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
AppId(min:0,max:unbounded)Class(min:0,max:unbounded)Interface(min:0,max:unbounded)
Attributes
Name Type Description Required
Id Guid TheGUIDthatidentifesthetypelibrary.
Yes
Advertise YesNoType Valueof'yes'willcreatearowintheTypeLibtable.Valueof'no'willcreaterowsintheRegistrytable.Thedefaultvalueis'no'.
Control YesNoType Valueof'yes'meansthetypelibrarydescribescontrols,andshouldnotbe
displayedintypebrowsersintendedfornonvisualobjects.ThisattributecanonlybesetifAdvertise='no'.
Cost Int Thecostassociatedwiththeregistrationofthetypelibraryinbytes.ThisattributecannotbesetifAdvertise='no'.
Description String Thelocalizabledescriptionofthetypelibrary.
HasDiskImage YesNoType Valueof'yes'meansthetypelibraryexistsinapersistedformondisk.ThisattributecanonlybesetifAdvertise='no'.
HelpDirectory String TheidentifieroftheDirectoryelementforthehelpdirectory.
Hidden YesNoType Valueof'yes'meansthetypelibraryshouldnotbedisplayedtousers,althoughitsuseisnotrestricted.Shouldbeusedbycontrols.Hostsshouldcreateanewtypelibrarythatwrapsthecontrolwithextendedproperties.ThisattributecanonlybesetifAdvertise='no'.
Language Integer Thelanguageofthetypelibrary.Thismustbeanon-negativeinteger.
Yes
MajorVersion Integer Themajorversionofthetypelibrary.Thevalueshouldbeanintegerfrom0-255.
MinorVersion Integer Theminorversionofthetypelibrary.Thevalueshouldbeanintegerfrom0-255.
ResourceId Integer Theresourceidofatypelib.Thevalueisappendedtotheendofthetypelibpathintheregistry.
Restricted YesNoType Valueof'yes'meansthetypelibraryisrestricted,andshouldnotbedisplayedtousers.ThisattributecanonlybesetifAdvertise='no'.
SeeAlsoWixSchema
UIElement
DescriptionEnclosingelementtocompartmentalizeUIspecifications.
WindowsInstallerreferencesNone
ParentsFragment,Module,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
BillboardAction(min:0,max:unbounded):BillboardtableitemwithchildControlsBinary(min:0,max:unbounded)ComboBox(min:0,max:unbounded):ComboBoxtablewithListItemchildrenDialog(min:0,max:unbounded):Dialogspecification,calledfromSequenceDialogRef(min:0,max:unbounded):ReferencetoaDialogspecification.EmbeddedUI(min:0,max:unbounded):EmbeddedUIdefinitionwithEmbeddedResourcechildren.Error(min:0,max:unbounded):ErrortextassociatedwithinstallerrorListBox(min:0,max:unbounded):ListBoxtablewithListItemchildrenListView(min:0,max:unbounded):ListViewtablewithListItemchildrenProgressText(min:0,max:unbounded):ActionTextentryassociatedwithanaction
Property(min:0,max:unbounded)PropertyRef(min:0,max:unbounded)Publish(min:0,max:unbounded)RadioButtonGroup(min:0,max:unbounded):RadioButtontablewithRadioButtonchildrenTextStyle(min:0,max:unbounded):TextStyleentryforuseincontroltextUIRef(min:0,max:unbounded)UIText(min:0,max:unbounded):valuesforUITextproperty,notinstallerPropertySequence(min:1,max:1)1. AdminUISequence(min:0,max:1)2. InstallUISequence(min:0,max:1)
Attributes
Name Type Description Required
Id String
SeeAlsoWixSchema,UIRef
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
UITextElement
DescriptionTextassociatedwithcertaincontrols
WindowsInstallerreferencesUITextTable
ParentsUI
InnerText(xs:string)Elementvalueistext,mayuseCDATAifneededtoescapeXMLdelimiters
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
SeeAlsoWixSchema
UnpublishComponentsElement
DescriptionManagestheunadvertisementofcomponentslistedinthePublishComponenttable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesUnpublishComponentsAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
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
UnregisterClassInfoElement
DescriptionManagestheremovalofCOMclassinformationfromthesystemregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesUnregisterClassInfoAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
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
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
UnregisterFontsElement
DescriptionRemovesregistrationinformationaboutinstalledfontsfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesUnregisterFontsAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
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
UnregisterProgIdInfoElement
DescriptionManagestheunregistrationofOLEProgIdinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesUnregisterProgIdInfoAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
UnregisterTypeLibrariesElement
DescriptionUnregisterstypelibrariesfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesUnregisterTypeLibrariesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
UpdateElement
DescriptionDefinestheupdateforaBundle.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenNone
Attributes
Name Type Description
Location String TheabsolutepathorURLtocheckforanupdatebundle.CurrentlytheengineprovidesthisvalueintheIBootstrapperApplication::OnDetectUpdateBegin()andotherwiseignoresthevalue.Inthefuturetheenginewillbeabletoacquireanupdatebundlefromthelocationanddetermineifitisnewerthanthecurrentexecutingbundle.
SeeAlsoWixSchema
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
UpgradeFileElement
DescriptionSpecifiesfilestoeitherignoreortospecifyoptionaldataaboutafile.
WindowsInstallerreferencesNone
ParentsUpgradeImage
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
SymbolPath(min:0,max:unbounded)
Attributes
Name Type Description Required
AllowIgnoreOnError YesNoType Specifieswhetherpatchingthisfileisvital.
File String ForeignkeyintotheFiletable.
Yes
Ignore YesNoType Ifyes,thefileisignoredduringpatching,andthenexttwoattributesareignored.
Yes
WholeFile YesNoType Whetherthewholefileshouldbeinstalled,ratherthancreatingabinary
patch.
SeeAlsoWixSchema
UpgradeImageElement
DescriptionContainsinformationabouttheupgradedimagesoftheproduct.
WindowsInstallerreferencesNone
ParentsFamily
InnerTextNone
ChildrenSequence(min:1,max:1)1. TargetImage(min:1,max:unbounded)2. Choiceofelements(min:0,max:unbounded)
SymbolPath(min:0,max:unbounded)UpgradeFile(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifiertoconnecttargetimageswithupgradedimage.
Yes
SourceFile String Fullpathtolocationofmsifileforupgradedimage.
SourcePatch String Modifiedcopyoftheupgradedinstallationdatabasethatcontainsadditionalauthoringspecifictopatching.
src String Thisattributehasbeendeprecated;pleaseusetheSourceFileattributeinstead.
srcPatch String Thisattributehasbeendeprecated;pleaseusetheSourcePatchattributeinstead.
SeeAlsoWixSchema
UpgradeVersionElement
DescriptionNone
WindowsInstallerreferencesUpgradeTable
ParentsUpgrade
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
ExcludeLanguages YesNoType Setto"yes"todetectalllanguages,excludingthelanguageslistedintheLanguageattribute.
IgnoreRemoveFailure YesNoType Setto"yes"tocontinueinstallationuponfailuretoremoveaproductorapplication.
IncludeMaximum YesNoType Setto"yes"tomaketherangeofversionsdetectedincludethevaluespecifiedinMaximum.
IncludeMinimum YesNoType Setto"no"tomaketherangeofversionsdetectedexcludethe
valuespecifiedinMinimum.Thisattributeis"yes"bydefault.
Language String SpecifiesthesetoflanguagesdetectedbyFindRelatedProducts.Enteralistofnumericlanguageidentifiers(LANGID)separatedbycommas(,).Leavethisvaluenulltospecifyalllanguages.SetExcludeLanguagesto"yes"inorderdetectalllanguages,excludingthelanguageslistedinthisvalue.
Maximum String SpecifiestheupperboundaryoftherangeofproductversionsdetectedbyFindRelatedProducts.
MigrateFeatures YesNoType Setto"yes"tomigratefeaturestatesfromupgradedproductsbyenablingthelogicintheMigrateFeatureStatesaction.
Minimum String SpecifiesthelowerboundontherangeofproductversionstobedetectedbyFindRelatedProducts.
OnlyDetect YesNoType Setto"yes"todetectproductsandapplicationsbutdonot
uninstall.
Property String WhentheFindRelatedProductsactiondetectsarelatedproductinstalledonthesystem,itappendstheproductcodetothepropertyspecifiedinthisfield.WindowsInstallerdocumentationfortheUpgradetablestatesthatthepropertyspecifiedinthisfieldmustbeapublicpropertyandmustbeaddedtotheSecureCustomPropertiesproperty.WiXautomaticallyappendsthepropertyspecifiedinthisfieldtotheSecureCustomPropertiespropertywhencreatinganMSI.EachUpgradeVersionmusthaveauniquePropertyvalue.AftertheFindRelatedProductsactionisrun,thevalueofthispropertyisalistofproductcodes,separatedbysemicolons(;),detectedonthesystem.
Yes
RemoveFeatures String TheinstallersetstheREMOVEpropertytofeaturesspecifiedinthiscolumn.Thefeaturestoberemovedcanbe
determinedatruntime.TheFormattedstringenteredinthisfieldmustevaluatetoacomma-delimitedlistoffeaturenames.Forexample:[Feature1],[Feature2],[Feature3].Nofeaturesareremovedifthefieldcontainsformattedtextthatevaluatestoanemptystring.TheinstallersetsREMOVE=ALLonlyiftheRemovefieldisempty.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema
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
ValidateElement
DescriptionSetsinformationinthepatchtransformthatdeterminesifthetransformappliestoaninstalledproductandwhaterrorsshouldbeignoredwhenapplyingthepatchtransform.
WindowsInstallerreferencesNone
ParentsPatchBaseline
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
IgnoreAddExistingRow YesNoType Ignoreerrorswhenaddingexistingrows.Thedefaultis'yes'.
IgnoreAddExistingTable YesNoType Ignoreerrorswhenaddingexistingtables.Thedefaultis'yes'.
IgnoreChangingCodePage YesNoType Ignoreerrorswhenchangingthedatabasecodepage.Thedefaultis'no'.
IgnoreDeleteMissingRow YesNoType Ignoreerrorswhen
deletingmissingrows.Thedefaultis'yes'.
IgnoreDeleteMissingTable YesNoType Ignoreerrorswhendeletingmissingtables.Thedefaultis'yes'.
IgnoreUpdateMissingRow YesNoType Ignoreerrorswhenupdatingmissingrows.Thedefaultis'yes'.
ProductId YesNoType RequiresthattheinstalledProductCodematchthetargetProductCodeusedtocreatethetransform.Thedefaultis'yes'.
ProductLanguage YesNoType RequiresthattheinstalledProductLanguagematchthetargetProductLanguageusedtocreatethetransform.Thedefaultis'no'.
ProductVersion Enumeration DetermineshowmanyfieldsoftheinstalledProductVersiontocompare.Seeremarksformoreinformation.Thedefaultis'Update'.Thisattribute's
valuemustbeoneofthefollowing:Major
Checksthemajorversion.
MinorChecksthemajorandminorversions.
UpdateChecksthemajor,minor,andupdateversions.
ProductVersionOperator Enumeration DetermineshowtheinstalledProductVersioniscomparedtothetargetProductVersionusedtocreatethetransform.Seeremarksformoreinformation.Thedefaultis'Equal'.Thisattribute'svaluemustbeoneofthefollowing:Lesser
InstalledProductVersion<targetProductVersion.
LesserOrEqualInstalledProductVersion
<=targetProductVersion.
EqualInstalledProductVersion=targetProductVersion.
GreaterOrEqualInstalledProductVersion>=targetProductVersion.
GreaterInstalledProductVersion>targetProductVersion.
UpgradeCode YesNoType RequiresthattheinstalledUpgradeCodematchthetargetUpgradeCodeusedtocreatethetransform.Thedefaultis'yes'.
Remarks
Atransformcontainsthedifferencesbetweenthetargetproductandtheupgradedproduct.Whenatransformorapatch(whichcontainstransforms)isapplied,thefollowingpropertiesoftheinstalledproductarevalidatedagainstthepropertiesofthetargetproductstoredinatransform.
ProductCodeProductLanguageProductVersion
UpgradeCode
WindowsInstallersimplyvalidatesthattheProductCode,ProductLanguage,andUpgradeCodeofaninstalledproductareequivalenttothosepropetiesofthetargetproductusedtocreatethetransform;however,theProductVersioncanbevalidatedwithagreaterrangeofcomparisons.
YoucancompareuptothefirstthreefieldsoftheProductVersion.Changestothefourthfieldarenotvalidatedandareusefulforsmallupdates.YoucanalsochoosehowtocomparethetargetProductVersionusedtocreatethetransformwiththeinstalledProductVersion.Forexample,whilethedefaultvalueof'Equals'isrecommended,ifyouwantedaminorupgradepatchtoapplytothetargetProductVersionandallolderproductswiththesameProductCode,youwoulduse'LesserOrEqual'.
SeeAlsoWixSchema
ValidateProductIDElement
DescriptionSetstheProductIDpropertytothefullproductidentifier.ThisactionmustbesequencedbeforetheuserinterfacewizardintheInstallUISequencetableandbeforetheRegisterUseractionintheInstallExecuteSequencetable.Iftheproductidentifierhasalreadybeenvalidatedsuccessfully,theValidateProductIDactiondoesnothing.TheValidateProductIDactionalwaysreturnsasuccess,whetherornottheproductidentifierisvalid,sothattheproductidentifiercanbeenteredonthecommandlinethefirsttimetheproductisrun.TheproductidentifiercanbevalidatedwithouthavingtheuserreenterthisinformationbysettingthePIDKEYpropertyonthecommandlineorbyusingatransform.ThedisplayofthedialogboxrequestingtheusertoentertheproductidentifiercanthenbemadeconditionaluponthepresenceoftheProductIDproperty,whichissetwhenthePIDKEYpropertyisvalidated.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesValidateProductIDAction
ParentsInstallExecuteSequence,InstallUISequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
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
theschema.
Overridable YesNoType Whensetto"yes",letstheuseroverridethevariable'sdefaultvaluebyspecifyinganothervalueonthecommandline,intheformVariable=Value.Otherwise,WixStdBAwon'toverwritethedefaultvalueandwilllog"Ignoringattempttosetnon-overridablevariable:'BAR'."(http://schemas.microsoft.com/wix/BalExtension)
SeeAlsoWixSchema
VerbElement
DescriptionVerbdefinitionforanExtension.Whenadvertised,thiselementcreatesarowintheVerbtable.Whennotadvertised,thiselementcreatestheappropriaterowsinRegistrytable.
WindowsInstallerreferencesVerbTable,RegistryTable
ParentsExtension
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Theverbforthecommand. Yes
Argument String Valueforthecommandarguments.NotethattheresolutionofpropertiesintheArgumentfieldislimited.Apropertyformattedas[Property]inthisfieldcanonlyberesolvedifthepropertyalreadyhastheintendedvaluewhenthecomponentowningtheverbisinstalled.Forexample,fortheargument"[#MyDoc.doc]"toresolvetothecorrectvalue,thesameprocessmustbeinstallingthe
fileMyDoc.docandthecomponentthatownstheverb.
Command String Thelocalizedtextdisplayedonthecontextmenu.
Sequence Integer Thesequenceofthecommands.OnlyverbsforwhichtheSequenceisspecifiedareusedtoprepareanorderedlistforthedefaultvalueoftheshellkey.TheVerbwiththelowestvalueinthiscolumnbecomesthedefaultverb.UsedonlyforAdvertisedverbs.
Target String Thisattributehasbeendeprecated;pleaseusetheTargetFileattributeinstead.
TargetFile String EitherthisattributeortheTargetPropertyattributemustbespecifiedforanon-advertisedverb.Thevalueshouldbetheidentifierofthetargetfiletobeexecutedfortheverb.
TargetProperty String EitherthisattributeortheTargetFileattributemustbespecifiedforanon-advertisedverb.Thevalueshouldbetheidentifierofthepropertywhichwillresolvetothepathtothetargetfiletobeexecutedfortheverb.
SeeAlsoWixSchema
WixElement
DescriptionThisisthetop-levelcontainerelementforeverywxsfile.Amongthepossiblechildren,theBundle,Product,Module,Patch,andPatchCreationelementsareanalogoustothemainfunctioninaCprogram.Therecanonlybeoneofthesepresentwhenlinkingoccurs.Productcompilesintoanmsifile,Modulecompilesintoanmsmfile,PatchCreationcompilesintoapcpfile.TheFragmentelementisanatomicunitwhichultimatelylinksintoeitheraProduct,Module,orPatchCreation.TheFragmentcaneitherbecompletelyincludedorexcludedduringlinking.
WindowsInstallerreferencesNone
ParentsNone
InnerTextNone
ChildrenChoiceofelements(min:0,max:1)
PatchCreation(min:0,max:1)Sequence(min:1,max:1)1. Choiceofelements(min:0,max:1)
Bundle(min:0,max:1)Module(min:0,max:1)Patch(min:0,max:1)Product(min:0,max:1)
2. Fragment(min:0,max:unbounded)
Attributes
Name Type Description
RequiredVersion VersionType RequiredversionoftheWiXtoolsettocompilethisinputfile.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
RequiredVersion String Theversionofthisextensionrequiredtocompilethedefiningsource.(http://schemas.microsoft.com/wix/PSExtension)
SeeAlsoWixSchema
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).
Thedefaultvalueis'no'.
Value String Thevalueofthevariable.Thevaluecannotbeanemptystringbecausethatwouldmakeitpossibletoaccidentallysetacolumntonull.
Yes
SeeAlsoWixSchema
WriteEnvironmentStringsElement
DescriptionModifiesthevaluesofenvironmentvariables.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesWriteEnvironmentStringsAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
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
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
LocalizationYesNoType(SimpleType)
DescriptionNone
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoWixlocSchema
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
identifiersthatlookliketext.
Overridable LocalizationYesNoType Determinesifthelocalizedstringmaybeoverridden.
HowTosandExamplesHowTo:BuildalocalizedversionofyourinstallerHowTo:Makeyourinstallerlocalizable
SeeAlsoWixlocSchema
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
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
oftherectangularboundaryofthecontrol.Thismustbeanon-negativenumber.
X Integer Foradialog,overridestheauthoredhorizontalcentering.Foracontrol,overridestheauthoredhorizontalcoordinateoftheupper-leftcorneroftherectangularboundary.Thismustbeanon-negativenumber.
Y Integer Foradialog,overridestheauthoredverticalcentering.Foracontrol,overridestheauthoredverticalcoordinateoftheupper-leftcorneroftherectangularboundaryofthecontrol.Thismustbeanon-
negativenumber.
SeeAlsoWixlocSchema
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
YoucanspecifyanyvalidWindowscodepagebyintegerlike1252,orbywebnamelikeWindows-1252oriso-8859-1.SeeCodePagesformoreinformation.
HowTosandExamplesHowTo:BuildalocalizedversionofyourinstallerHowTo:Makeyourinstallerlocalizable
SeeAlsoWixlocSchema
DevelopingforVotiveIfyouwanttocontributecodetotheVotiveprojectordebugVotive,youmustdownloadandinstalltheVisualStudio2010SDK,availableattheVisualStudioExtensibilityDeveloperCenter.TheVisualStudio2010SDKisnon-invasiveandwillcreateanexperimentalhiveintheregistrythatwillleaveyourretailversionofVisualStudio2010unaffected.
TostartdebuggingVotive,setyourbreakpointsthenpressF5intheWix.slnforVisualStudio.ThecustombuildactionsintheVotiveprojectwillsetupandregisterVotiveintheexperimentalhive,sorunningWix39.exeisnotrequired,norsuggested.
AddingtotheWiXDocumentationWiXdocumentationiscompiledintothefileWiX.chmasapartoftheWiXbuildprocess.Thesourcefilesforhelparelocatedinthewix\src\chmdirectory.Thedocumentationiswritteninmarkdown.
WhattheWiXhelpcompilerdoesTheWiXhelpcompilerdoesthefollowing:
Parses.xsdschemafilesreferencedinchm.helpprojandgenerateshelptopicsfortheattributesandelementsthatareannotatedinthe.xsdfiles.
CompilesallofthemarkdownfilescontainedinthedocumentsdirectoryintoHTMLstrippingthefinalfileextension(.md).
Eachmarkdowndocumentconsistsofametadataheaderfollowedbythecontentofthetopicpage.
SortstheHTMLfilesaccordingtotheaftermetadataandincludesalltheHTMLandcontentfilesprocessedinthelistofdocumentationtobuildintotheCHM.
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.
IntroductiontoDevelopingWiXExtensions
CommonRequirementsInordertounderstandhoweachoftheclassesofextensionswork,oneshouldstartbylookingattheWiXsourcecode.Allextensionshavethefollowingthingsincommon:
Implementedusingthe.NETFramework2.0.TherestoftheWiXtoolsetcurrentlyonlydependsonthe.NETFramework2.0,soinordertoensurebackwardscompatibility,itisabestpracticetodevelopnewextensionssothattheyonlydependonthe.NETFramework2.0aswell.Buildasubclassoftheappropriateextensionobject,whichgivesitaneasilydistinguishablename.Buildaschemaoftheappropriatesyntaxtoprovidevalidationcheckingwherepossible.Buildinternaltabledefinitionsandregisterthemwiththecompiler.Buildoverridesforextensiblemethodsandvirtualmemberswhichwillgetinvokedattheapproriatelocationduringthesinglepasscompile.CompiledintoaDLL.PlacednexttoWiXEXEsalongwithallotherWiXextensionDLLs.RegisteredwithWiXbypassingthepathoftheexensionDLLasacommandlineargumenttothecompilerand/orlinker.
ConsiderationsBeforeinvestinginanextension,oneshouldevaluatewhetheranexternaltoolandthe?include?syntax(fromthepreprocessor)willprovidetheneededflexibilityforyourtechnicalneeds.
Multipleextensionsandextensiontypesaresupported,butthereisnoguaranteeoftheorderinwhichaparticularclassofextensionswillbeprocessed.Asaresult,theremustnotbeanysequencingdependenciesbetweenextensionswithinthesameextensionclass.
ExtensiondevelopersmightalsoimplementaRequiredVersionattributeontheWixelement.Thisallowssetupdevelopersusingyourextensiontorequireaspecificversionoftheextensionincaseanewfeatureisintroducedorabreakingchangeismade.YoucanaddanattributetotheWixelementinanextensionasshowninthefollowingexample.
<xs:schemaxmlns:xs="http://www.w3.org/2001/XMLSchema"xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"><xs:attributename="RequiredVersion"type="xs:string"><xs:annotation><xs:documentation>Theversionofthisextensionrequiredtocompilethedefiningsource.</xs:documentation><xs:appinfo><xse:parentnamespace="http://schemas.microsoft.com/wix/2006/wi"ref="Wix"/></xs:appinfo></xs:annotation></xs:attribute></xs:schema>
ExtensionsWiXsupportsthefollowingclassesofextensions:
BinderExtensionsallowclientstomodifythebehavioroftheBinder.BinderFileManagerExtensionsallowclientstosimplymodifythefilesourceresolutionandfiledifferencingfeaturesoftheBinder.CompilerExtensionsallowclientstocustomcompileauthoredXMLintointernaltablerepresentationbeforeitiswrittentobinaryform.DecompilerExtensionsallowclientstodecompilecustomtablesintoXML.HarvesterExtensionsallowclientstomodifythebehavioroftheHarvester.InspectorExtensionsallowclientstoinspectsource,intermediate,andoutputdocumentsatvarioustimesduringthebuildtovalidatebusinessrulesasearlyaspossible.MutatorExtensionsallowclientstomodifythebehavioroftheMutator.PreprocessorExtensionsallowclientstomodifyauthoringfilesbeforetheyareprocessedbythecompiler.UnbinderExtensionsallowclientstomodifythebehavioroftheUnbinder.ValidatorExtensionsallowclientstoprocessICEvalidationmessages.Bydefault,ICEvalidationmessagesareoutputtotheconsole.WixBinderExtensionsallowclientstocompletelychangetheBinderto,forexample,createdifferentoutputformatsfromWiXauthoring.
ForinformationonhowtouseWiXextensionsonthecommandlineorinsidetheVisualStudioIDE,pleasevisittheUsingWiXextensionstopic.
ForinformationonhowtouselocalizedWiXextensions,pleasevisittheLocalizedextensionstopic.
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
nowusethisskeletoncodetobuildyourowncustomaction.Afteryouaredone,youcanauthorthecustomactionintheWiXsourcecodebyfollowingtheAddingaCustomActiontopic.YoucanalsobuildyourownextensionstotheWiXtoolsetusingthisskeletoncode.Foranexampleofbuildinganextension,seeCreatingaPreprocessorExtension.
CreatingaPreprocessorExtensionThepreprocessorinWiXallowsextensibiltyatafewlevels.ThissamplewilldemonstratehowtoaddaPreprocessorExtensiontoyourWixExtensionthatwillhandlevariablesandfunctionsyoudefineinyourownnamespace.
ThissampleassumesyouhavealreadyreviewedtheCreatingaSkeletonExtensiontopic.
1. AddanewclasstoyourprojectcalledSamplePreprocessorExtension.
2. Ifyouaddedanewfileforthisclass,addausingstatementthatreferstotheMicrosoft.Tools.WindowsInstallerXmlnamespace.
usingMicrosoft.Tools.WindowsInstallerXml;
3. MakeyourSamplePreprocessorExtensionclassimplementPreprocessorExtension.
publicclassSamplePreprocessorExtension:PreprocessorExtension
4. AddyourSamplePreprocessorExtensiontoyourpreviouslycreatedSampleWixExtensionclassandoverridethePreprocessorExtensionpropertyfromthebaseclass.ThiswillcauseyourextensiontoknowwhattodowhenWiXasksyourextensionforitspreprocessorextension.
privateSamplePreprocessorExtensionpreprocessorExtension;
publicoverridePreprocessorExtensionPreprocessorExtension{get{if(this.preprocessorExtension==null){this.preprocessorExtension=newSamplePreprocessorExtension();
}returnthis.preprocessorExtension;
}}
5. InyourSamplePreprocessorExtensionclass,specifytheprefixesornamespacesthatyourextensionwillhandle.Forexample,ifyouwanttobeabletodefineavariablenamed$(sample.ReplaceMe),thenyouneedtospecifythatyourextensionwillhandlethe"sample"prefix.
privatestaticstring[]prefixes={"sample"};publicoverridestring[]Prefixes{get{returnprefixes;}}
6. Nowthatyouhavespecifiedtheprefixesthatyourextensionwillhandle,youneedtohandlevariablesandfunctionsthatarepassedtoyoufromWiX.YoudothisbyoverridingtheGetVariableandEvaluateFunctionmethodsfromthePreprocessorExtensionbaseclass.
publicoverridestringGetVariableValue(stringprefix,stringname){stringresult=null;//Basedonthenamespaceandname,definetheresultingstring.switch(prefix){case"sample":switch(name){case"ReplaceMe"://Thiscouldbelookedupfromanywhereyoucanaccessfromyourcode.result="replaced";break;}break;}returnresult;
}
publicoverridestringEvaluateFunction(stringprefix,stringfunction,string[]args){stringresult=null;switch(prefix){case"sample":switch(function){case"ToUpper":if(0<args.Length){result=args[0].ToUpper();}else{result=String.Empty;}break;}break;}returnresult;}
7. Buildtheproject.
YoucannowpassyourextensiononthecommandlinetoCandleandexpectvariablesandfunctionsinyournamespacetobepassedtoyourextensionandbeevaluated.Todemonstratethis,tryaddingthefollowingpropertiestoyourWiXsourcefile:
<PropertyId="VARIABLETEST"Value="$(sample.ReplaceMe)"/><PropertyId="FUNCTIONTEST"Value="$(sample.ToUpper(uppercase))"/>
Theresulting.msifilewillhaveentriesinthePropertytablewiththevalues"replaced"and"UPPERCASE"inthePropertytable.
AddingaCustomActionThisexampleshowshowtoauthorabinarycustomactioncalled"FooAction".Acommonexampleisadllcustomactionthatlaunchesnotepad.exeorsomeotherapplicationaspartoftheirinstall.Beforeyoustart,youwillneedasampledllthathasanentrypointcalled"FooEntryPoint".ThissampleassumesyouhavealreadyreviewedtheCreatingaSkeletonExtensiontopic.
Step1:CreateaFragmentYoucoulddirectlyreferencethecustomactioninthesamesourcefileastheproductdefinition.However,thatwillnotenablethesamecustomactiontobeusedelsewhere.Soratherthanputtingthecustomactiondefinitioninthesamesourcefile,let'sexercisealittlemodularityandcreateanewsourcefiletodefinethecustomactioncalled"ca.wxs".
<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'><Fragment><CustomActionId='FooAction'BinaryKey='FooBinary'DllEntry='FooEntryPoint'Execute='immediate'Return='check'/>
<BinaryId='FooBinary'SourceFile='foo.dll'/></Fragment></Wix>
Okay,that'sit.We'redonewitheditingthe"ca.wxs"sourcefile.Thatlittlebitofcodeshouldcompilebutitwillnotlink.Rememberlinkingrequiresthatyouhaveanentrysection.A<Fragment/>aloneisnotanentrysection.Gotothenextsteptolinkthesourcefile.
Step2:AddthecustomactionWewouldneedtolinkthissourcefilealongwithasourcefilethatcontained<Product/>or<Module/>tosuccessfullycomplete.
<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'><ProductId='PUT-GUID-HERE'Name='TestPackage'Language='1033'Version='1.0.0.0'Manufacturer='.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>
</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.
LocalizingExtensionsYoucancreateyourownlocalizedextensionslikeWixUIExtensionusinglit.exe.Localizedextensionscanevencontainmultiplelanguages.Productsusingtheseextensionscanpassthe-culturesswitchtolight.exealongwiththe-extswitchtoreferencetheextension.
WiXextensionscontainlibrariescomprisedoffragments.Thesefragmentsmaycontainproperties,searchproperties,dialogs,andmore.Justlikewhenlocalizingproducts,replaceanylocalizablefieldswithvariablesintheformat!(loc.variableName).Productwouldbeauthoredtoreferenceelementsinthislibrary,andwhencompiledwouldthemselvescontainthelocalizationvariables.Thefollowingshowsanexampleonhowtolocalizeanextension
Step1:AuthoraWiXFragmentCreatea.wxsfilenamedexample.wxsandaddthefollowingcontent:
<?xmlversion="1.0"encoding="utf-8"?><Fragment><ErrorId="50000">!(loc.errormsg)</Error></Fragment>
YouhavejustauthoredaFragmentthatwillbecompiledintoaWiXlibrary.Itcontainsanerrormessagethatreferencesalocalizedstring.
Step2:AuthortheLocalizationFileTheWiXlocalizationfiles,or.wxlfiles,areacollectionofstrings.Forlibraries,extensiondeveloperscanchoosewhetherornotthosestringscanbeoverwrittenby.wxlfilesspecifiedduringlinkageoftheproduct.Createa.wxlfilenameden-us.wxlandaddthefollowingcontent:
<?xmlversion="1.0"encoding="utf-8"?><WixLocalizationCulture="en-us"xmlns="http://schemas.microsoft.com/wix/2006/localization"><StringId="errormsg"Overridable="yes">GeneralFailure</String></WixLocalization>
TheseStringelementsareattributedas@Overridable="yes"toallowforproductdeveloperstooverridethesestringswiththeirownvaluesiftheysochoose.Forexample,aproductdevelopermaywishtouse"Previous"insteadof"Back",sotheycandefinethesameString/@Idintheirown.wxlwhilestilllinkingtotheextensionwherethatstringisused.Thisoffersproductdevelopersthebenefitsofthelibrarywhileallowingforcustomizations.Extensiondeveloperscanalsochoosetodisallowoverridingcertainstringsifitmakessensetodoso.
Step3:BuildthelibraryWhenboththefragmentauthoringandlocalizationfilearecomplete,theycanbecompiledandlinkedtogetherusingcandle.exeandlit.exe.
Firstcompilethe.wxssource.
candle.exeexample.wxs-outexample1.wixobj
Nowlinktogetherthe.wixobjfileandthe.wxlfileintheextensionlibrary.
lit.exeexample.wixobj-locen-us.wxl-outexample.wixlib
Youcanaddmorethanone.wxlfileforeachcultureyouwantavailable.Tobeuseful,the.wixlibshouldbeembeddedintoamanagedassemblyandreturnedbyWixExtension.GetLibrary().
UsingtheLibrariesProductdevelopersreferenceelementswithinyour.wixlib,asshownintheWixUIExtensionexample.Whencompilingandlinking,theextensionisspecifiedonthecommandlineusingthe-extswitch.Ifanyadditionallocalizationvariablesareusedintheproductauthoringorwouldoverridelocalizationvariablesinthelibrary,those.wxlfilesarepassedtothe-locswitchasshownintheexamplebelow.
candle.exeexample.wxs-extWixUIExtension-outexample.wixobjlight.exeexample.wixobj-extWixUIExtension-cultures:en-us-locen-us.wxl-outexample.msi
RunningWiXTestsThereisasuiteofteststhatareincludedwithWiX.Theycanbeusedtoverifythatchangestothetoolsetdonotregressexistingfunctionality.
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
RunningthetestsThetestscanberunfromwithinVisualStudioorfromthecommandline.Beforethetestsarerun,theenvironmentvariable'WIX_ROOT'mustbesettotheWiXrootdirectory.ItshouldbesetifyouareinaWiXcommandwindow,butifitisnot:
setWIX_ROOT=c:\delivery\dev\wix
TheWIX_ROOTenvironmentvariablerequirementisusedinmanyteststolocatetestdata.
RunningthetestsfromthecommandlinewithMSTest.bat
Thereisabatchfile,test.bat,whichcanbeusedtorunthetests.
c:\delivery\dev\wix\test\test.bat[all|smoke|testname]
RunningthetestsfromthecommandlinewithMSTest.exe
RunMSTestwiththetestbinaries.
mstest.exec:\delivery\Dev\wix\build\debug\x86\wixtests.dll
RunningthetestsfromVisualStudio
Openwixtests.slnfromaWiXcommandwindow.
devenv.exec:\delivery\dev\wix\test\wixtests.sln
RunthetestsfromVisualStudioTestManager.
WritingWiXTestsThisdocumentdescribeshowtowritetestsforWiX.
LocationoftheTestsTherootdirectoryforthetestsis%WIX_ROOT%\test.Therearethreemainsubdirectories:
data:containstestdata,egwxsfilessrc:containssourcecodeforthetestsWixTestTools:containssourcecodefortheWixTestToolslibrary
Thedataandsrcdirectoriesarefurtherorganizedbyfeaturearea:
Examples:ExampletestsExtensions:TestsforWiXextensionsIntegration:Testsforintegrationoftwoormoretools.Eg.BuildinganMSIfromsourcewithCandleandLight.QTests:TestsmigratedfromtheprevioustestinfrastructureSharedData:TestdatathatissharedacrossmultipletestsTools:Testsforaparticulartool'scommandlineoptionsWixproj:Testsforbuilding.wixproj'swithMSBuild
WixTestsSolutionThetestsolutionfile,WixTests.sln,islocatedin%WIX_ROOT%\test\WixTests.sln.TheWixTestssolutioncurrentlycontainstwoprojects:
WixTests:ContainsallofthetestsWixTestsTools:Alibraryofwrapperclassesandverificationmethodsusedbythetests
ThesolutionshouldbeopenedfromtheWiXcommandwindowtoensurethatthe%WIX_ROOT%environmentvariableisset.
ExampleTests
Example:BuildandVerifyanMSI
ThefollowingexampleshowshowtotestbuildinganMSIfromWiXsource.
[TestMethod][Description("AnexampletestthatverifiesanMSIisbuiltcorrectly")][Priority(3)]publicvoidExampleTest1(){//UsetheBuildPackagemethodtobuildanMSIfromsourcestringactualMSI=Builder.BuildPackage(@"%WIX_ROOT%\test\data\SharedData\Authoring\BasicProduct.wxs");
//TheexpectedMSItocompareagainststringexpectedMSI=@"%WIX_ROOT%\test\data\SharedData\Baselines\MSIs\BasicProduct.msi";
//UsetheVerifyResultsmethodtocomparetheactualandexpectedMSIsVerifier.VerifyResults(expectedMSI,actualMSI);}
Example:CheckforaWarningandQueryanMSI
ThefollowingexampleshowshowtobuildanMSIusingtheCandleandLightwrapperclasses.ItalsodemonstrateshowtocheckforawarningfromLightandquerytheresulingMSI.
[TestMethod][Description("AnexampletestthatchecksforaLightwarningandqueriestheresultingMSI")][Priority(3)]publicvoidExampleTest2(){//CompileawxsfileCandlecandle=newCandle();candle.SourceFiles.Add(@"%WIX_ROOT%\test\data\Examples\ExampleTest2\product.wxs");
candle.Run();
//CreateaLightobjectthatusessomepropertiesoftheCandleobjectLightlight=newLight(candle);
//DefinetheLightwarningthatweexpecttoseeWixMessageLGHT1079=newWixMessage(1079,WixMessage.MessageTypeEnum.Warning);light.ExpectedWixMessages.Add(LGHT1079);
//Linklight.Run();
//QuerytheresultingMSIforverificationstringquery="SELECT`Value`FROM`Property`WHERE`Property`='Manufacturer'";Verifier.VerifyQuery(light.OutputFile,query,".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
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");}
ToolsandConceptsTheWiXtoolsetistightlycoupledwiththeWindowsInstallertechnology.InordertofullyutilizethefeaturesinWiX,youmustbefamiliarwiththeWindowsInstallerconcepts.ThissectionassumesyouhaveaworkingknowledgeoftheWindowsInstallerdatabaseformat.ForinformationonWindowsInstaller,seeUsefulWindowsInstallerInformation.
WiXFileTypesThereisasetoftoolsthatWiXofferstofulfilltheneedsofbuildingWindowsInstaller-basedpackages.Eachtooloutputsatypeoffilethatcanbeconsumedasinputsofanothertool.Afterprocessingthroughtheappropriatetools,thefinalinstallerisproduced.
TogetfamiliarwiththeWiXfiletypes,seeFileTypes.
WiXToolsOnceyouarefamiliarwiththefiletypes,seehowthefiletypesareproducedbywhatWiXtoolsbyvisitingListofTools.ForagraphicalviewoftheWiXtoolsandhowtheyinteractwitheachother,seeWiXToolsetDiagram.
WiXSchemaThecoreWiXschemaisaclosemirrorwiththeMSItables.ForhelpfulhintsonhowtheWiXschemamapstoMSItables,seeMSITablestoWiXSchema.
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
BuildingaBootstrapperApplication
WorkinginVisualStudioTheVisualStudioWiXtoolsetallowsyoutoeasilycreateWiXprojects,editWiXfilesusingIntelliSense,andcompile/linkyourprojectwithintheVisualStudioIDE.TheWiXVisualStudioplug-insupportsVS2005,VS2008,andVS2010.
ForWiXprojecttypes,seeWiXProjectTypes.
ForWiXitemtemplates,seeWiXItemtemplates.
FortheWiXpropertypages,seeWiXProjectpropertypages.
ForhintsonhowtoreadthedefaultWiXprojecttemplate,seeWiXProjectTemplate.
YoucancreateandbuildWindowsInstallerpackagesusingWiXwithintheVisualStudioIDE.Inthissection,wewillcoverthebasicsofcreatingasimplesetupusingVisualStudioandWiX.
CreatingasimplesetupUsingprojectreferencesandvariables
Alternatively,youmayalsouseWiXonthecommandlinebycallingthetoolsdirectlyorusingMSBuild.
WorkingwithMSBuildWiXincludesacompletebuildprocess(.targetsfile)forusewithMSBuild-basedbuildsystems.Formoreinformationseethefollowingtopics.
Creatinga.wixprojfileIntegratingWiXProjectsIntoDailyBuildsBuildingWiXProjectsInTeamFoundationBuildWiXMSBuildTaskReferenceWiXMSBuildTargetReference
HowToGuidesThissectionincludesHowTodocumentationforperformingcommonWiXtasks.
Files,ShortcutsandRegistryAddafiletoyourinstallerChecktheversionnumberofafileduringinstallationWritearegistryentryduringinstallationReadaregistryentryduringinstallationCreateashortcutontheStartMenuCreateashortcuttoawebpageCreateanuninstallshortcutNGenmanagedassembliesduringinstallationReferenceanotherDirectorySearchelementGettheparentdirectoryofafilesearch
RedistributablesandInstallChecksCheckfor.NETFrameworkversionsInstallthe.NETFrameworkusingabootstrapperInstallDirectX9.0withyourinstallerInstalltheVisualC++RedistributablewithyourinstallerBlockinstallationbasedonOSversion
UserInterfaceandLocalizationBuildalocalizedversionofyourinstallerMakeyourinstallerlocalizableRuntheinstalledapplicationaftersetupSetyourinstaller'siconinAdd/RemovePrograms
ProductUpdatesImplementamajorupgradeinyourinstaller
OthersGetalogofyourinstallationfordebuggingLookinsideyourMSIwithOrcaGenerateaGUIDUseWiXExtensionsOptimizebuildingcabinetfilesSpecifysourcefilelocations
StandardCustomActionsTheWiXtoolsetcontainsseveralcustomactionstohandleconfiguringresourcessuchasInternetInformationServiceswebsitesandvirtualdirectories,SQLServerdatabasesandscripts,useraccounts,fileshares,andmore.ThesecustomactionsareprovidedinWiXextensions.
Togetstartedusingstandardcustomactions,seetheUsingStandardCustomActionstopic.
Forinformationaboutspecifictypesofstandardcustomactions,seethefollowingtopics:
FileSharecustomaction(locatedinWixUtilExtension)-createandconfigurefileshares.Internetshortcutcustomaction(locatedinWixUtilExtension)-createshortcutsthatpointtoWebsites.OSInfocustomactions(locatedinWixUtilExtension)-setpropertiesforOSinformationandstandarddirectoriesthatarenotprovidedbydefaultbyWindowsInstaller.PerformanceCountercustomaction(locatedinWixUtilExtension)-installanduninstallperformancecounters.QuietExecutioncustomaction(locatedinWixUtilExtension)-launchconsoleexecutableswithoutdisplayingawindow.SecureObjectscustomaction(locatedinWixUtilExtension)-secure(usingACLs)objectsthattheLockPermissionstablecannot.ServiceConfigurationcustomaction(locatedinWixUtilExtension)-configureattributesofaWindowsservicethattheServiceInstalltablecannot.ShellExecutecustomaction(locatedinWixUtilExtension)-launchdocumentorURLtargetsviatheWindowsshell.Usercustomactions(locatedinWixUtilExtension)-createandconfigurenewusers.WixDirectXExtension-customactionthatcanbeusedtochecktheDirectXcapabilitiesofthevideocardonthesystem.WixExitEarlyWithSuccess(locatedinWixUtilExtension)-customactionthatcanbeusedtoexitsetupwithoutinstallingtheproduct.
Thiscanbeusefulinsomemajorupgradescenarios.WixFailWhenDeferred(locatedinWixUtilExtension)-customactionthatcanbeusedtosimulateinstallationfailurestotestrollbackscenarios.WixFirewallExtension-FirewallcustomactionthatcanbeusedtoaddexceptionstotheWindowsFirewall.WixGamingExtension-GamingcustomactionthatcanbeusedtoaddiconsandtaskstoWindowsGameExplorer.WixIIsExtension-InternetInformationServices(IIS)customactionsthatcanbeusedtocreateandconfigurewebsites,virtualdirectories,webapplications,etc.WixNetFxExtension-customactiontogeneratenativecodefor.NETassemblies;propertiestodetect.NETFrameworkinstallstateandservicepacklevels.WixSqlExtension-SQLServercustomactionsthatcanbeusedtocreatedatabasesandexecuteSQLscriptsandstatements.WixVSExtension-customactiontoregisterhelpcollectionsandVisualStudiopackages;propertiestodetectinstallstateandservicepacklevelsforvariousVisualStudioeditions.XmlFilecustomaction(locatedinWixUtilExtension)-configureandmodifyXMLfilesaspartofyourinstallationpackage.
CreatingpatchesPatchesareupdatestoaproductorproducts.WiXsupportstwodifferentwaysofcreatingthem:
UsingPatchCreationPropertieswhichrequiresthatyouhavetheWindowsInstaller3.0ornewerSDKinstalledforfullsupportofincludedexamples.UsingPurelyWiXwhichusesfunctionalityprovidedinWiXanddoesnotrequireadditionaltools.
Therearealsorestrictionsonhowpatchesarebuiltinordertoavoidproblemswheninstallingthem.
HowPatchesWorkPatchescontainacollectionoftransforms-mostoftenapairoftransformsforeachtargetproduct.Whenapatchisapplied,eachinstalledtargetproductisreinstalledindividuallywiththecorrespondingpatchtransformsapplied.Thesetransformscontainthedifferencesbetweenthattargetproductandtheupgradeproductthatmightcontainnewfileversionsandsizes,newregistrykeys,etc.
FormoreinformationaboutpatchingwithWindowsInstaller,readPatchingandUpgrades.
WiXSchemaReferencesThissectioncontainsschemareferenceinformationforWiXandextensions.
WixschemaWixlocschemaDifxappschemaforWixDifxAppExtensionFirewallschemaforWixFirewallExtensionGamingschemaforWixGamingExtensionIisschemaforWixIIsExtensionLuxschemaforWixLuxExtensionNetfxschemaforWixNetFxExtensionPsschemaforWixPSExtensionSqlschemaforWixSqlExtensionTagschemaforWixTagExtensionUtilschemaforWixUtilExtensionVsschemaforWixVSExtension
DevelopingforWiXThissectioncoversthefollowingtopicsfordeveloperswhowanttocontributetotheWiXcodebase:
ExtensionDevelopmentDevelopingforVotiveAddingtotheWiXDocumentationTestingWiX
Seealsothefollowingtopicsononwixtoolset.org:
WiXToolsetGovernanceWiXToolsetDevelopment
WixUIDialogLibraryReferenceThissectionexplainsWixUIdialogsanddialogsetsthatareincludedwiththeWiXtoolset.
WixUI_AdvancedDialogSetWixUI_FeatureTreeDialogSetWixUI_InstallDirDialogSetWixUI_MinimalDialogSetWixUI_MondoDialogSetWixUIDialogs
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"/>
<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
GamingSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetGamingExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/GamingExtension
ChildElementsGamePlayTaskSupportTask
NetfxSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolset.NETFrameworkExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/NetFxExtension
ChildElementsNativeImage
VsSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetVisualStudioExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/VSExtension
ChildElementsHelpCollectionHelpCollectionRefHelpFileHelpFileRefHelpFilterHelpFilterRefPlugCollectionIntoVsixPackage
BalSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetBurnUserExperienceExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/BalExtension
ChildElementsConditionWixManagedBootstrapperApplicationHostWixStandardBootstrapperApplication
ComplusSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetCOM+Extension.
TargetNamespacehttp://schemas.microsoft.com/wix/ComPlusExtension
ChildElementsComPlusApplicationComPlusApplicationRoleComPlusAssemblyComPlusAssemblyDependencyComPlusComponentComPlusGroupInApplicationRoleComPlusGroupInPartitionRoleComPlusInterfaceComPlusMethodComPlusPartitionComPlusPartitionRoleComPlusPartitionUserComPlusRoleForComponentComPlusRoleForInterfaceComPlusRoleForMethodComPlusSubscriptionComPlusUserInApplicationRoleComPlusUserInPartitionRole
DependencySchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetDependencyExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/DependencyExtension
ChildElementsProvidesRequiresRequiresRef
DifxappSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetDriverInstallFrameworksforApplicationsExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/DifxAppExtension
ChildElementsDriver
FirewallSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetFirewallExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/FirewallExtension
ChildElementsFirewallExceptionRemoteAddress
HttpSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetHttpExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/HttpExtension
ChildElementsUrlAceUrlReservation
IisSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetInternetInformationServicesExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/IIsExtension
ChildElementsCertificateCertificateRefHttpHeaderMimeMapRecycleTimeWebAddressWebApplicationWebApplicationExtensionWebAppPoolWebDirWebDirPropertiesWebErrorWebFilterWebLogWebPropertyWebServiceExtensionWebSiteWebVirtualDir
LuxSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetLuxExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/2009/Lux
ChildElementsConditionExpressionMutationUnitTestUnitTestRef
MsmqSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetMSMQExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/MsmqExtension
ChildElementsMessageQueueMessageQueuePermission
PsSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetPowerShellExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/PSExtension
ChildElementsFormatsFileSnapInTypesFile
SqlSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetSQLServerExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/SqlExtension
ChildElementsSqlDatabaseSqlFileSpecSqlLogFileSpecSqlScriptSqlString
TagSchema
ThesourcecodeschemafortheWiXToolsetSoftwareIdTagExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/TagExtension
ChildElementsTagTagRef
ThmutilSchema
SchemafordescribingThemefilesprocessedbythmutil.
RootElementTheme
TargetNamespacehttp://wixtoolset.org/schemas/thmutil/2010
DocumentShouldLookLike<?xmlversion="1.0"?><Themexmlns="http://wixtoolset.org/schemas/thmutil/2010">...</Theme>
UtilSchema
ThesourcecodeschemafortheWindowsInstallerXMLToolsetUtilityExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/UtilExtension
ChildElementsCloseApplicationComponentSearchComponentSearchRefDirectorySearchDirectorySearchRefEventManifestEventSourceFileSearchFileSearchRefFileShareFileSharePermissionGroupGroupRefInternetShortcutPerfCounterPerfCounterManifestPerformanceCategoryPerformanceCounterPermissionExProductSearchProductSearchRefRegistrySearchRegistrySearchRef
RemoveFolderExRestartResourceServiceConfigUserXmlConfigXmlFile
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>
WixlocSchema
SchemafordescribingWindowsInstallerXmlLocalizationfiles(.wxl).
RootElementWixLocalization
TargetNamespacehttp://schemas.microsoft.com/wix/2006/localization
DocumentShouldLookLike<?xmlversion="1.0"?><WixLocalizationxmlns="http://schemas.microsoft.com/wix/2006/localization">...</WixLocalization>
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
resourcescreatedduringBootstrapperApplicationCreatethatneedtobecleanedupinBootstrapperApplicationDestroy.Theentrypointlookslikethis:
extern"C"voidWINAPIBootstrapperApplicationDestroy()
NotethatbootstrapperapplicationsmustberecompiledwhenupgradingminorversionsoftheWiXToolset.Minorversionsmaintainsource-codecompatibilitybutdonotguaranteebinarycompatibility.
WiXMSBuildTaskReferenceThissectionexplainsMSBuildtasksthatareincludedwiththeWiXtoolset.
CandleTaskHeatDirectoryTaskHeatFileTaskHeatProjectTaskLightTaskLitTaskInsigniaTask
WiXMSBuildTargetReferenceThissectionexplainsMSBuildtargetsthatareincludedwiththeWiXtoolset.
HarvestDirectoryTargetHarvestFileTargetHarvestProjectsTarget
DevelopingWiXExtensionsThissectioncoversthefollowingtopicsfordeveloperswhowanttocreatetheirownWiXextensions:
IntroductiontoDevelopingWiXExtensionsCreatingaSkeletonExtensionCreatingaPreprocessorExtension
TestingWiXThissectioncontainsdocumentsonhowtocreateandexecutetestsfortheWindowsInstallerXMLToolset.
RunningTestsWritingTests