Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to...
Transcript of Windows Installer XML (WiX) - Documentation & Help · WiX is a set of tools that allows you to...
IntroductiontoWindowsInstallerXML(WiX)toolset
WhatisWiX?WiXisasetoftoolsthatallowsyoutocreateWindowsInstaller-baseddeploymentpackagesforyourapplication.TheWiXtoolsetisbasedonadeclarativeXMLauthoringmodel.YoucanuseWiXonthecommandlinebyusingtheWiXtoolsorMSBuild.Inaddition,thereisalsoaWiXVisualStudioplug-inthatsupportsVS2005,VS2008,andVS2010.TheWiXtoolsetsupportsbuildingthefollowingtypesofWindowsInstallerfiles:
Installer(.msi)Patches(.msp)MergeModules(.msm)Transforms(.mst)
WiXsupportsaboardspectrumofWindowsInstallerfeatures.Inaddition,WiXalsooffersasetofbuilt-incustomactionsthatcanbeusedandincorporatedinWindowsInstallerpackages.ThecustomactionsareofferedinasetofWiXextensions.SomecommonWiXextensionsincludesupportforInternetInformationSystem(IIS),StructuredQueryLanguage(SQL),the.NETFramework,VisualStudio,andWindowsetc.
HowdoesWiXwork?TheWiXsourcecodeiswritteninXMLformatwitha.wxsfileextension.TheWiXtoolsfollowthetraditionalcompileandlinkmodelusedtocreateexecutablesfromsourcecode.Atbuildtime,theWiXsourcefilesarevalidatedagainstthecoreWiXschema,thenprocessedbyapreprocessor,compiler,andlinkertocreatethefinalresult.ThereareasetofWiXtoolsthatcanbeusedtoproducedifferentoutputtypes.ForacompletelistoffiletypesandtoolsinWiX,seetheFileTypesandtheListofToolssections.
UsingWiXontheCommandLineUsingWiXinVisualStudioUsingWiXwithMSBuildUsingWiXwithNAntHowToGuidesWiXSchemaReferenceAdvancedWiXTopicsDevelopingforWiXAdditionalResources
GettingStartedThereareseveraloptionsavailabletogetstartedlearninghowtouseWiX.
BasicWalkthroughTogetstarted,youcangototheCreatingInstallationPackagessectionwhichincludesastep-by-stepwalkthroughtocreateasimplepackageusingWiX.
HowToGuidesThishelpfileincludesasetofHowToGuidesthatexplainhowtoaccomplishcommonWindowsInstallertasksusingWiX.
TutorialsIfyouprefertolearnfromatutorial,thefollowingoptionsareavailable:
UsingtheWiXToolsettoIntegrateSetupintoYourDevelopmentProcesshttp://www.tramontana.co.hu/wix/NotethatthistutorialiscurrentlytargetedatWiX2.0.ThistutorialisagreatwaytorampupontheWiXtoolsetifyouarenewtoWiXorarelookingforanswerstocommonauthoringquestions.
Ifyouprefertolearnfromaudio-visualpresentations,thefollowingoptionsareavailable:
BlogintroductionwithvideoVideoonChannel9MSDNRadiobroadcast
CommunityIfyouprefertolearnbyinteractingwiththecommunity,thereisaWiXusersmailinglistathttp://wix.sourceforge.net/mailinglists.html#wix-users.
IntegratedDevelopmentEnvironmentIfyouprefertolearnbyusinganintegrateddevelopmentenvironment,thereisanoverviewofWiXeditorsathttp://robmensching.com/blog/archive/2007/11/20/WiX-editors.aspx.
ReverseEngineeringIfyouprefertolearnbyworkingbackwardfromaWindowsInstallerpackageyouhavealreadycreated,youcanruntheWiXdecompiler(Dark)toconvertyourpackageintoWiXauthoringandthenrecompileitusingtheWiXcompiler(Candle)andWiXlinker(Light).
ReadingSourceCodeIfyouprefertolearnbyreadingcode,WiXisanopensourceproject,andyoucanlookatthesourcecodebyreviewingtheHowtobeaWindowsInstallerXMLDevelopertopic.
FixaBug,WriteaFeatureIfyouprefertolearnbywritingcode,youcanreviewthefollowingWiXissuetrackers:
Bugs-http://sourceforge.net/tracker/?group_id=105970&atid=642714Features-http://sourceforge.net/tracker/?group_id=105970&atid=642717
ForWiXdevelopmentassistance,thereisaWiXdevelopermailinglistathttp://sourceforge.net/mailarchive/forum.php?forum_name=wix-devs.
GettingHelpPleaseseehttp://wix.sourceforge.net/formoreinformationabouttheWiXtoolset.Thissiteincludesthefollowinginformation:
1. LinkstodownloadweeklyreleasesoftheWiXtoolset.2. TheWiXbugdatabasewhereyoucanreportnewbugsorcheckthe
statusofexistingbugs.3. Mailingliststoaskquestions,makesuggestionsordiscusstheWiX
toolsetwithotherusersandtheWiXdevelopers.4. LinkstoblogsmaintainedbytheWiXdevelopers.
ToolsandConceptsTheWiXtoolsetistightlycoupledwiththeWindowsInstallertechnology.InordertofullyutilizethefeaturesinWiX,youmustbefamiliarwiththeWindowsInstallerconcepts.ThissectionassumesyouhaveaworkingknowledgeoftheWindowsInstallerdatabaseformat.ForinformationonWindowsInstaller,seeUsefulWindowsInstallerInformation.
WiXFileTypesThereisasetoftoolsthatWiXofferstofulfilltheneedsofbuildingWindowsInstaller-basedpackages.Eachtooloutputsatypeoffilethatcanbeconsumedasinputsofanothertool.Afterprocessingthroughtheappropriatetools,thefinalinstallerisproduced.
TogetfamiliarwiththeWiXfiletypes,seeFileTypes.
WiXToolsOnceyouarefamiliarwiththefiletypes,seehowthefiletypesareproducedbywhatWiXtoolsbyvisitingListofTools.ForagraphicalviewoftheWiXtoolsandhowtheyinteractwitheachother,seeWiXToolsetDiagram.
WiXSchemaThecoreWiXschemaisaclosemirrorwiththeMSItables.ForhelpfulhintsonhowtheWiXschemamapstoMSItables,seeMSITablestoWiXSchema.
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.
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.
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.wxswillbeignored.
<?if$(env.MySku)=Enterprise?><?includeEnterpriseFeature.wxs?><?endif?>
IncludeFiles<?include?>Asshownintheexampleabove,filescanbeincludedbyusingtheincludetag.Thefilenamereferencedinthetagwillbeprocessedasifitwerepartofthisfile.
Therootelementoftheincludefilemustbe<Include>.Therearenootherrequirementsbeyondtheexpectedwixschema.Forexample,
<Include><FeatureId='MyFeature'Title='My1stFeature'Level='1'><ComponentRefId='MyComponent'/></Feature></Include>
VariablesAnyvariablecanbetestedforitsvalueorsimplyitsexistence.Customvariablescanalsobedefinedinyourxml.
Threetypesofvariablesaresupported:
$(env._NtPostBld)Getstheenvironmentvariable%_NtPostBld%
$(sys.CURRENTDIR)Getsthesystemvariableforthecurrentdirectory
$(var.A)GetsthevariableAthatwasdefinedinthisxml
Thepreprocessorevaluatesvariablesthroughouttheentiredocument,includingin<?if?>expressionsandattributevalues.
EnvironmentVariables
Anyenvironmentvariablecanbereferencedwiththesyntax$(env.VarName).Forexample,ifyouwanttoretrievetheenvironmentvariable%_BuildArch%,youwoulduse$(env._BuildArch).Environmentvariablenamesarecase-insensitive.
SystemVariables
WiXhassomebuilt-invariables.Theyarereferencedwiththesyntax$(sys.VARNAME)andarealwaysinuppercase.
CURRENTDIR-thecurrentdirectorywherethebuildprocessisrunningSOURCEFILEPATH–thefullpathtothefilebeingprocessedSOURCEFILEDIR–thedirectorycontainingthefilebeingprocessedPLATFORM–theplatform(Intel,x64,Intel64)thispackageiscompiledfor(setbythePackageelement'sPlatformattribute)
NOTE:Allbuilt-indirectoryvariablesare“\”terminated.
Customvariables<?define?>
Ifyouwanttodefinecustomvariables,youcanusethe<?define?>statement.Youcanalsodefinevariablesonthecommandlineusingcandle.exeusingthe-dswitch.Later,thevariablesarereferredtointhe<?if?>statementswiththesyntax$(var.VarName).Variablenamesarecase-sensitive.
Howtodefinetheexistenceofavariable:<?defineMyVariable?>
Howtodefinethevalueofavariable(note:quotesarerequiredifthevalueortheexpansionofothervariablesinthevaluecontainspaces):<?defineMyVariable=“HelloWorld”?><?defineMyVariable=“$(var.otherVariableContainingSpaces)”?>
Therightsideofthedefinitioncanalsorefertoanothervariable:<?defineMyVariable=$(var.BuildPath)\x86\bin\?>
Howtoundefineavariable:<?undefMyVariable?>
Todefinevariablesonthecommandline,youcantypeacommandsimilartothefollowing:
candle.exe-dMyVariable="HelloWorld"...
Youcanrefertovariablesinyoursourcethataredefinedonlyonthecommandline,butcandle.exewillerrwhenpreprocessingyoursourcecodeifyoudonotdefinethosevariablesonthecommandline.
ConditionalStatementsThereareseveralconditionalstatements,theyinclude:
<?if?><?ifdef?><?ifndef?><?else?><?elseif?><?endif?>
Thepurposeoftheconditionalstatementistoallowyoutoincludeorexcludeasegmentofxmlatbuildtime.Iftheexpressionevaluatestotrue,itwillbeincluded.Ifitevaluatestofalse,itwillbeignored.
Theconditionalstatementsalwaysbeginwitheitherthe<?if?>,<?ifdef?>,or<?ifndef?>tags.Theyarefollowedbyanxmlblock,anoptional<?else?>or<?elseif?>tag,andmustendwithan<?endif?>tag.
Expressions(usedin<?if?>and<?elseif?>)
Forexample:<?if[expression]?>
Theexpressionfoundinsidethe<?if?>and<?elseif?>tagsisaBooleanexpression.Itadherestoasimplegrammarthatfollowstheserules:
TheexpressionisevaluatedlefttorightExpressionsarecase-sensitivewiththefollowingexceptions:
EnvironmentalvariablenamesThesekeywords:and,or,notThe~=operatoriscase-insensitive.
Allvariablesmustusethe$()syntaxorelsetheywillbeconsideredaliteralvalue.Ifyouwanttousealiteral$(,escapethedollarsignwithasecondone.Forexample,$$(Variablescanbeusedtocheckforexistence
VariablescanbecomparedtoaliteraloranothervariableComparisonswith=,!=,and~=arestringcomparisons.Comparisonswithinequalityoperators(<,<=,>,>=)mustbedoneonintegers.Ifthevariabledoesn'texist,evaluationwillfailandanerrorwillberaised.
Theoperatorprecedenceisasfollows.Notethat“and”and“or”havethesameprecedence:
""(),$()<,>,<=,>=,=,!=,~=NotAnd,Or
Nestedparenthesisareallowed.Literalscanbesurroundedbyquotes,althoughquotesarenotrequired.Quotes,leading,andtrailingwhitespacearestrippedoffliteralvalues.Invalidexpressionswillcauseanexceptiontobethrown.
Variables(usedin<ifdef?>and<ifndef?>)
Forexample:<?ifdef[variable]?>
For<ifdef?>,ifthevariablehasbeendefined,thisstatementwillbetrue.<ifndef?>worksintheexactoppositeway.
MoreExamplesNotethattheseexampleswillactuallyeachbeano-opbecausetherearen’tanytagsbetweentheifandendiftags.
<?definemyValue="3"?><?definesystem32=$(env.windir)\system32?><?defineB="goodvar"?><?defineC=3?><?defineIExist?>
<?if$(var.Iexist)?><?endif?><!--true--><?if$(var.myValue)=6?><?endif?><!--false--><?if$(var.myValue)!=3?><?endif?><!--false--><?ifnot"x"="y"?><?endif?><!--true--><?if$(env.systemdrive)=a?><?endif?><!--false--><?if3<$(var.myValue)?><?endif?><!--false--><?if$(var.B)="goodVAR"?><?endif?><!--false--><?if$(var.A)andnot$(env.MyEnvVariable)?><?endif?><!--false--><?if$(var.A)Or($(var.B)And$(var.myValue)>=3)?><?endif?><!--true--><?ifdefIExist?><!--true--><?else?><!--false--><?endif?>
ErrorsandWarningsYoucanusethepreprocessortoshowmeaningfulerrorandwarningmessagesusing,<?errorerror-message?>and<?warningwarning-message?>.Whenoneofthesepreprocessorinstructionsisencounteredthepreprocessorwilleitherdisplayanerrorandstopthecompileordisplayawarningandcontinue.
Anexample:
<?ifndefRequiredVariable?><?errorRequiredVariablemustbedefined?><?endif?>
IterationStatementsThereisasingleiterationstatement,<?foreachvariable-nameinsemi-colon-delimited-list?><?endforeach?>.Whenthisoccursthepreprocessorwill
createaprivatecopyofthevariablecontextsetthevariableintheforeachstatementtoaniterationonthesemicolondelimitedlistgenerateafragmentwiththevariablesubstituted
Theeffectofthisprocessisthatthefragmentisusedasatemplatebythepreprocessorinordertogenerateaseriesoffragments.Thevariablenameinthe?foreachstatementcanbeprecededby"var.".Whenavariableisusedinsidethetextofthefragment,itmustbeprecededby"var."
Anfewexamples:
<?foreachLCIDin"1033;1041;1055"?><FragmentId='Fragment.$(var.LCID)'><DirectoryRefId='TARGETDIR'><ComponentId='MyComponent.$(var.LCID)'/></DirectoryRef></Fragment><?endforeach?>
or
<?defineLcidList=1033;1041;1055?><?foreachLCIDin$(var.LcidList)?><FragmentId='Fragment.$(var.LCID)'><DirectoryRefId='TARGETDIR'><ComponentId='MyComponent.$(var.LCID)'/></DirectoryRef></Fragment><?endforeach?>
or
filename:ExtentOfLocalization.wxi<Include><?defineLcidList=1033;1041;1055?></Include>
and
<?includeExtentOfLocalization.wxi?><?foreachLCIDin$(var.LcidList)?><FragmentId='Fragment.$(var.LCID)'><DirectoryRefId='TARGETDIR'><ComponentId='MyComponent.$(var.LCID)'/></DirectoryRef></Fragment><?endforeach?>
AnalternativetotheforeachprocesswouldbetowritethetemplateWiXfragmentintoaseparatefileandhaveanotherprocessgeneratetheauthoringthatwillbepassedtoWiX.Thegreatestmeritofthisalternativeisthatit'seasiertodebug.
EscapingThepreprocessortreatsthe$characterinaspecialwayifitisfollowedbya$or(.Ifyouwanttousealiteral$$,use$$$$instead.Everytwo$characterswillbereplacedwithone.Forexample,$$$$$willbereplacedwith$$$.
ExtensionsWiXhassupportforpreprocessorextensionsviathePreprocessorExtensionclass.ThePreprocessorExtensioncanprovidecallbackswithcontextatforeachinitialization,variableevaluation,functiondefinitions,andthelastcallbeforeinvokingthecompiler(forfullcustompreprocessing).
CompilerTheWindowsInstallerXMLcompilerisexposedbycandle.exe.Candleisresponsibleforpreprocessingtheinput.wxsfilesintovalidwell-formedXMLdocumentsagainsttheWiXschema,wix.xsd.Then,eachpost-processedsourcefileiscompiledintoa.wixobjfile.
Thecompilationprocessisrelativelystraightforward.TheWiXschemalendsitselftoasimplerecursivedescentparser.Thecompilerprocesseseachelementinturncreatingnewsymbols,calculatingthenecessaryreferencesandgeneratingtherawdataforthe.wixobjfile.
Linker(light)TheWindowsInstallerXMLlinkerisexposedbylight.exe.Lightisresponsibleforprocessingoneormore.wixobjfiles,retrievingmetadatafromvariousexternalfilesandcreatingaWindowsInstallerdatabase(MSIorMSM).Whennecessary,lightwillalsocreatecabinetsandembedstreamsinthecreatedWindowsInstallerdatabase.
Thelinkerbeginsbysearchingthesetofobjectfilesprovidedonthecommandlinetofindtheentrysection.Ifmorethanoneentrysectionisfound,lightfailswithanerror.ThisfailureisnecessarybecausetheentrysectiondefineswhattypeofWindowsInstallerdatabaseisbeingcreated,aMSIorMSM.Itisnotpossibletocreatetwodatabasesfromasinglelinkoperation.
Whilethelinkerwasdeterminingtheentrysection,thesymbolsdefinedineachobjectfilearestoredinasymboltable.Aftertheentrysectionisfound,thelinkerattemptstoresolveallofthereferencesinthesectionbyfindingsymbolsinthesymboltable.Whenasymbolisfoundinadifferentsection,thelinkerrecursivelyattemptstoresolvereferencesinthenewsection.Thisprocessofgatheringthesectionsnecessarytoresolveallofthereferencescontinuesuntilallreferencesaresatisfied.Ifasymbolcannotbefoundinanyoftheprovidedobjectfiles,thelinkerabortsprocessingwithanerrorindicatingtheundefinedsymbol.
Afterallofthesectionshavebeenfound,complexandreversereferencesareprocessed.ThisprocessingiswhereComponentsandMergeModulesarehookedtotheirparentFeaturesor,inthecaseofMergeModules,ComponentsareaddedtotheModuleComponentstable.ThereversereferenceprocessingaddstheappropriateFeatureidentifiertothenecessaryfieldsforelementslike,Shortcut,Class,andTypeLib.
Onceallofthereferencesareresolved,thelinkerprocessesalloftherowsretrievingthelanguage,version,andhashforreferencedfiles,calculatingthemedialayout,andincludingthenecessarystandardactionstoensureasuccessfulinstallationsequence.Thispartoftheprocessingtypicallyendsupgeneratingadditionalrowsthatgetaddedassociatedwiththeentrysectiontoensuretheyareincludedinthefinal
WindowsInstallerdatabase.
Finally,lightworksthroughthemechanicsofgeneratingIDTfilesandimportingthemintotheWindowsInstallerdatabase.Afterthedatabaseisfullycreated,thefinalpostprocessingisdonetomergeinanyMergeModulesandcreateacabinetifnecessary.TheresultisafullyfunctionalWindowsInstallerdatabase.
BinderVariables
StandardBinderVariables
Somepropertiesarenotavailableuntilthelinkerisabouttogenerate,orbind,thefinaloutput.Thesevariablesarecalledbindervariablesandsupportedbindervariablesarelistedbelow.
AllVersionedFiles
Thefollowingstandardbindervariablesareavailableforallversionedbinaries.
Variablename Exampleusage Examplevalue
bind.fileLanguage.FileID !(bind.fileLanguage.MyFile) 1033
bind.fileVersion.FileID !(bind.fileVersion.MyFile) 1.0.0.0
Assemblies
Thefollowingstandardbindervariablesareavailableforallmanagedandnativeassemblies(exceptwherenoted),wheretheFile/@Assemblyattributeissetto".net"or"win32".
Variablename Exampleusage
bind.assemblyCulture.FileID(managedonly)
!(bind.assemblyCulture.MyAssembly)
bind.assemblyFileVersion.FileID !(bind.assemblyFileVersion.MyAssembly)
bind.assemblyFullName.FileID !(bind.assemblyName.MyAssembly)
(managedonly)
bind.assemblyName.FileID !(bind.assemblyName.MyAssembly)
bind.assemblyProcessorArchitecture.FileID !(bind.assemblyProcessorArchitecture.MyAssembly)
bind.assemblyPublicKeyToken.FileID !(bind.assemblyPublicKeyToken.MyAssembly)
bind.assemblyType.FileID(nativeonly)
!(bind.assemblyType.MyAssembly)
bind.assemblyVersion.FileID !(bind.assemblyVersion.MyAssembly)
LocalizationVariables
VariablescanbepassedinbeforebindingtheoutputfilefromaWiXlocalizationfile,or.wxlfile.Thisprocessallowsthedevelopertolinkoneormore.wixobjfilestogetherwithdiferent.wxlfilestoproducedifferentlocalizedpackages.
Localizationvariablesareinthefollowingformat:
!(loc.VariableName)
CustomBinderVariables
YoucancreateyourownbindervariablesusingtheWixVariableelementorbysimplytypingyourownvariablenameinthefollowingformat:
!(bind.VariableName)
Custombindervariablesallowyoutousethesame.wixobjfilesbutspecifydifferentvalueswhenlinking,similartohowlocalizationvariablesareused.Youmightusebindervariablesfordifferentbuilds,likevarying
thetargetprocessorarchitecture.
InsigniaInsigniaisatoolusedforinscribinganMSIwiththedigitalsignaturesthatitsexternalCABsaresignedwith.
TosignyourexternalcabswithInsignia,firstbuildyourMSInormally,andsignyourcabsmanually.ThencallInsigniawiththepathtoyourMSI-InsigniawillupdateyourMSIwiththedigitalsignatureinformationofitsassociatedexternalcabs.Thefilewillbeupdatedin-place.ThensignyourMSI.Thiswillallowwindowsinstallertoverify,atinstall-time,thattheexternalcabshaven'tchangedsinceyoubuiltthem.
IfyouuseMSBuild,aneasiermethodfordoingthisexists.Inyour.wixprojfile,setthe"InscribeMainOutput"propertyto"true".Thenoverridethe"SignCabs"target,usingthe"OutputCabList"propertyasalistofcabstosign,tosigntheexternalcabsHere'sanexamplesigningthosecabsusingsigntool.exe:
<TargetName="SignCabs"><ExecCondition="'%(OutputCabList.FullPath)'!=''"Command="Signtool.exesign/a"%(OutputCabList.FullPath)""/></Target>
Finally,overridethe"SignMsi"target.Here'sasimilarexample,alsousingsigntool.exe.
<TargetName="SignMsi"><ExecCondition="'$(OutputMsi)'!=''"Command="signtool.exesign/a"$(OutputMsi)""/></Target>
Thiswillcausethebuildprocess,afterlinkingtheMSI,tosignanyexternalcabs,inscribeyourMSIwiththedigitalsignaturesofthosecabs,andthensigntheMSI,allattheappropriatetimesduringthebuildprocess.
WixCopWixCopservestwomainpurposes:
ToupgradeWiXauthoringtothecurrentschemaToformatWiXauthoringaccordingtoasetofcommonformatting
WixCop'scommand-linesyntaxis:
WixCop.exe[options]sourceFile[sourceFile...]
WixCoptakesanynumberofWiXsourcefilesascommand-linearguments.Wildcardsarepermitted.WixCopsupportsresponsefilescontainingoptionsandsourcefiles,using@responseFilesyntax.
WixCopreturnsthefollowingexitcodes:
0,whennoerrorsarereported.1,whenafatalerroroccurs.2,whenWixCopviolationsoccur.
WixCopsettingsfiles
WixCopsupportstwosettingsfiles.Generally,theprimarysettingsfileisyour“global”settingsandthealternatesettingsfileletsyouoverridetheglobalsettingsforaparticularproject.
SettingsfilesareXMLwiththefollowingstructure:
<Settings><IgnoreErrors><TestId="testId"/></IgnoreErrors><ErrorsAsWarnings><TestId="testId"/></ErrorsAsWarnings><ExemptFiles><FileName="foo.wxs"/></ExemptFiles>
</Settings>
TheIgnoreErrorselementliststestIDsthatshouldbeignored.TheErrorsAsWarningselementliststestIDsthatshouldbedemotedfromerrorstowarnings.TheExemptFileselementlistsfilesthatshouldbeskipped.ThefollowingtabledescribestheteststhatWixCopsupports.
WixCoptestID DescriptionUnknown Internalonly:returnedwhen
astringcannotbeconvertedtoanInspectorTestType.
InspectorTestTypeUnknown Internalonly:displayedwhenastringcannotbeconvertedtoanInspectorTestType.
XmlException DisplayedwhenanXMLloadingexceptionhasoccurred.
UnauthorizedAccessException Displayedwhenafilecannotbeaccessed;typicallywhentryingtosavebackafixedfile.
DeclarationEncodingWrong DisplayedwhentheencodingattributeintheXMLdeclarationisnot'UTF-8'.
DeclarationMissing DisplayedwhentheXMLdeclarationismissingfromthesourcefile.
WhitespacePrecedingCDATAWrong DisplayedwhenthewhitespaceprecedingaCDATAnodeiswrong.
WhitespacePrecedingNodeWrong Displayedwhenthewhitespaceprecedinganodeiswrong.
NotEmptyElement Displayedwhenanelementisnotemptyasitshouldbe.
WhitespaceFollowingCDATAWrong Displayedwhenthe
whitespacefollowingaCDATAnodeiswrong.
WhitespacePrecedingEndElementWrong Displayedwhenthewhitespaceprecedinganendelementiswrong.
XmlnsMissing Displayedwhenthexmlnsattributeismissingfromthedocumentelement.
XmlnsValueWrong Displayedwhenthexmlnsattributeonthedocumentelementiswrong.
CategoryAppDataEmpty DisplayedwhenaCategoryelementhasanemptyAppDataattribute.
COMRegistrationTyper DisplayedwhenaRegistryelementencountersanerrorwhilebeingconvertedtoastrongly-typedWiXCOMelement.
UpgradeVersionRemoveFeaturesEmpty DisplayedwhenanUpgradeVersionelementhasanemptyRemoveFeaturesattribute.
FeatureFollowParentDeprecated DisplayedwhenaFeatureelementcontainsthedeprecatedFollowParentattribute.
RadioButtonMissingValue DisplayedwhenaRadioButtonelementismissingtheValueattribute.
TypeLibDescriptionEmpty DisplayedwhenaTypeLibelementcontainsaDescriptionelementwithanemptystringvalue.
ClassRelativePathMustBeAdvertised DisplayedwhenaRelativePathattributeoccurs
onanunadvertisedClasselement.
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 DisplayedwhenaProgId/@Iconattributevaluecontainsaformattedstring.
IgnoreModularizationDeprecated DisplayedwhenadeprecatedIgnoreModularizationelementisfound.
PackageCompressedIllegal DisplayedwhenaPackage/@CompressedattributeisfoundunderaModuleelement.
PackagePlatformsDeprecated DisplayedwhenaPackage/@Platformsattributeisfound.
ModuleGuidDeprecated DisplayedwhenadeprecatedModule/@Guidattributeisfound.
GuidWildcardDeprecated Displayedwhenadeprecatedguidwildcardvalueisfound.
FragmentRefIllegal DisplayedwhenaFragmentRefElementis
found.FileRedundantNames Displayedwhena
File/@NamematchesaFile/@ShortName.
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/aa372866.aspx
ListofWindowsInstallerdefaultproperties:http://msdn.microsoft.com/en-us/library/aa370905.aspx
ListofWindowsInstalleroperatorsforconditionalexpressions:http://msdn.microsoft.com/en-us/library/aa368012.aspx
CreatinganInstallerPackageInthissection,wewillcoverthebasicsofcreatingasimplesetupthatproducesanMSIpackageusingWiXonthecommandline.
CreatingaSimpleSetupCreatingaMergeModuleIncorporatingaMergeModuleAddingaCustomAction
Alternatively,WiXcanalsobeusedonthecommandlineviaMSBuild.Formoreinformation,seeUsingWiXwithMSBuild.
CreatingaSimpleSetupThegoalofthistutorialistohelpyoutogetfamiliarwithWiXandthefundmentalbuildingblocksinordertobuildasimpleinstallable.msipackageusingWiX.WewillstartwiththebasicWiXcodetocreatean.msipackagethatinstallsonefile.
Step1:CreatetheWiXsourcefileTogetstarted,pickyourfavoriteXMLeditor(suchasNotepadorVisualStudio)andcreateanewfilecalledproduct.wxs.Nothingaboutthatnameisspecial,butthe.wxsextensionletsusknowthatthisisaWindowsInstallerXMLsourcefile.Next,addthethreelinesoftextthatall.wxsfilesmustcontain:
<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'></Wix>
Thatformstheouterskeletonforoursourcefile.SavethefileinthesamedirectoryaswheretheWiXtoolsareinstalled(e.g.C:\test).
Step2:AuthorthecontentofthepackageOkay,nowthatwe'vecreatedanemptysourcefile,let'screateaninstallableWindowsInstallerpackage.Addthefollowingcontenttoyourproduct.wxsfile:
<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'><ProductId='PUT-GUID-HERE'Name='TestPackage'Language='1033'Version='1.0.0.0'Manufacturer='MicrosoftCorporation'UpgradeCode='PUT-GUID-HERE'><PackageDescription='MyfirstWindowsInstallerpackage'Comments='ThisismyfirstattemptatcreatingaWindowsInstallerdatabase'Manufacturer='MicrosoftCorporation'InstallerVersion='200'Compressed='yes'/>
<DirectoryId='TARGETDIR'Name='SourceDir'><ComponentId='MyComponent'Guid='PUT-GUID-HERE'/></Directory><FeatureId='MyFeature'Title='My1stFeature'Level='1'><ComponentRefId='MyComponent'/></Feature></Product></Wix>
ReplacePUT-GUID-HEREwithaGUIDvalue.Thiswillallowyoutocreatean.msiwithaProductCodeof"{PUT-GUID-HERE}"withaProductLanguageof"1033"andaProductVersionof"1.0.0.0".Allofthatinformationistakenfromthe<Product>element.The<Package>elementdefinesalloftheinformationthatgoesinour.msi'ssummaryinformationstream.Finally,asimple<Directory>and<Feature>treeiscreatedwithasingle<Component>.Thisisenoughtogetour.msiregisteredonthemachine.
Step3:AddingafiletothepackageNowthatwehavethedirectoryauthored,let'sputafileinthefolder.Createanewtextfilecalledreadme.txtinthesamedirectoryastheproduct.wxsfileandtypeamessagesuchas"Hello,World!"inthefile.Then,weneedtomodifyproduct.wxstotellitaboutthefile:
<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'><ProductId='PUT-GUID-HERE'Name='TestPackage'Language='1033'Version='1.0.0.0'Manufacturer='MicrosoftCorporation'UpgradeCode='PUT-GUID-HERE'><PackageDescription='MyfirstWindowsInstallerpackage'Comments='ThisismyfirstattemptatcreatingaWindowsInstallerdatabase'Manufacturer='MicrosoftCorporation'InstallerVersion='200'Compressed='yes'/><MediaId='1'Cabinet='product.cab'EmbedCab='yes'/><DirectoryId='TARGETDIR'Name='SourceDir'><DirectoryId='ProgramFilesFolder'Name='PFiles'><DirectoryId='MyDir'Name='TestProgram'><ComponentId='MyComponent'Guid='PUT-GUID-HERE'><FileId='readme'Name='readme.txt'DiskId='1'Source='readme.txt'/></Component></Directory></Directory></Directory><FeatureId='MyFeature'Title='My1stFeature'Level='1'><ComponentRefId='MyComponent'/></Feature></Product></Wix>
Step4:BuildthepackageNowlet'sbuildthepackageusingthefollowinginstructions:
C:\test>candleproduct.wxsMicrosoft(R)WindowsInstallerXmlCompilerversion1.0.1220.15022Copyright(C)MicrosoftCorporation2003.Allrightsreservedproduct.wxsC:\test>lightproduct.wixobjMicrosoft(R)WindowsInstallerXmlLinkerversion1.0.1220.15022Copyright(C)MicrosoftCorporation2003.Allrightsreserved
Step5:VerifythepackageWecannowtryinstallingtheresultingpackageandlookattheresult.Notethatmsipackagesrequiresadministrativeprivilegesinordertoinstallcorrectly.IfwillfailsilentlyifyouarenotinstallingasanAdministrator.
C:\test>msiexec/iproduct.msi
YoucannowgotoAdd/RemoveProgramsintheControlPanelandsee"TestPackage"listedthere.Youcanalsoseethatitcreatesadirectorycalled"TestProgram"inyoursystem's"ProgramFiles"folder.Thefilereadme.txtwillbeinstalledinthe"TestProgram"directory.Afterverifyingthatinstallationworksasexpected,remembertouninstallthe.msisoyoucanrebuilditandinstallanewversionagainlater.
That'sallthereistocreatingaWindowsInstallerpackage.Youcandomanymoreadvancedthings,suchasaddingsetupUItoyour.msi,butwe'vecoveredthebasics.EverythingjustcomesdowntofillingintherightXMLelements.
CreatingaMergeModuleCreatingaMergeModuleisverymuchlikecreatingaWindowsInstallerpackage.
Step1:CreatetheWiXsourcefileCreateanewtextfilecalled"module.wxs"andputthestandardskeletoninit:
<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'></Wix>
Step2:AuthorthecontentofthepackageTocreateaMergeModule,weaddthe<Module/>elementandaddtherequiredattributes:
<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'><ModuleId='TestModule'Language='1033'Version='1.0.0.0'><PackageId='PUT-GUID-HERE'Description='MyfirstMergeModule'Comments='ThisismyfirstattemptatcreatingaWindowsInstallerMergeModule'Manufacturer='MicrosoftCorporation'InstallerVersion='200'/>
</Module></Wix>
ReplacePUT-GUID-HEREwithaGUIDvalue.
Step3:AddingafiletothepackageThencreateatextfilecalledreadme2.txtandupdatethesourcecodetoincludethenewfile:
<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'><ModuleId='TestModule'Language='1033'Version='1.0.0.0'><PackageId='PUT-GUID-HERE'Description='MyfirstMergeModule'Comments='ThisismyfirstattemptatcreatingaWindowsInstallerMergeModule'Manufacturer='MicrosoftCorporation'InstallerVersion='200'/><DirectoryId='TARGETDIR'Name='SourceDir'><DirectoryId='MyModuleDirectory'Name='.'><ComponentId='MyModuleComponent'Guid='PUT-GUID-HERE'><FileId='readme2'Name='readme2.txt'Source='readme2.txt'/></Component></Directory></Directory></Module></Wix>
ReplacePUT-GUID-HEREwithaGUIDvalue.
Step4:BuildthepackageNowlet'sbuildthepackageusingthefollowinginstructions:
C:\test>candlemodule.wxsMicrosoft(R)WindowsInstallerXmlCompilerversion1.0.1220.15022Copyright(C)MicrosoftCorporation2003.Allrightsreservedmodule.wxsC:\test>lightmodule.wixobjMicrosoft(R)WindowsInstallerXmlLinkerversion1.0.1220.15022Copyright(C)MicrosoftCorporation2003.Allrightsreserved
That'sit!YounowhaveaMergeModulethatcanbesharedwithotherteamstoinstallyour"readme2.txt"file.NowthatwehaveaMergeModule,let'sactuallyuseitinaWindowsInstallerpackage.SeeIncorporatingaMergeModule
IncorporatingaMergeModuleintoa.wxsFileMergeModulescanonlybemergedintoWindowsInstallerpackages.Onceyouhavea.wxsfilethatcreatesaWindowsInstallerpackage,it'sjustamatterofaddingtwolines(yes,onlytwolinesarenecessary)tomergeanewModule.Inyour.wxssourcefile,addthefollowinglines:
<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'><ProductId='PUT-GUID-HERE'Name='TestPackage'Language='1033'Version='1.0.0.0'Manufacturer='MicrosoftCorporation'><PackageDescription='MyfirstWindowsInstallerpackage'Comments='ThisismyfirstattemptatcreatingaWindowsInstallerdatabase'Manufacturer='MicrosoftCorporation'InstallerVersion='200'Compressed='yes'/><MediaId='1'Cabinet='product.cab'EmbedCab='yes'/><DirectoryId='TARGETDIR'Name='SourceDir'><DirectoryId='ProgramFilesFolder'Name='PFiles'><DirectoryId='MyDir'Name='TestProgram'><ComponentId='MyComponent'Guid='PUT-GUID-HERE'><FileId='readme'Name='readme.txt'DiskId='1'Source='readme.txt'/></Component><MergeId='MyModule'Language='1033'SourceFile='module.msm'DiskId='1'/></Directory></Directory></Directory><FeatureId='MyFeature'Title='My1stFeature'Level='1'><ComponentRefId='MyComponent'/><MergeRefId='MyModule'/></Feature></Product></Wix>
NowwhenyoucompileyourWindowsInstallerpackagesourcefile,itwillincludetheinstallationlogicandfilesfromtheMergeModule.
C:\test>candleproduct.wxsMicrosoft(R)WindowsInstallerXmlCompilerversion1.0.1220.15022Copyright(C)MicrosoftCorporation2003.Allrightsreservedproduct.wxsC:\test>lightproduct.wixobjMicrosoft(R)WindowsInstallerXmlLinkerversion1.0.1220.15022Copyright(C)MicrosoftCorporation2003.Allrightsreserved
Nowwhenyouinstallthepackage,youwillseethatitcreatesadirectorycalled"TestProgram"inyoursystem's"ProgramFiles"folder.Thefilesreadme.txtandreadme2.txtwillbeinstalledinthe"TestProgram"directory.
UsingaCustomActionWiXprovidesasetofbuilt-incustomactionsthatcanbeusedinyourinstallerpackage.Inthisexample,wewillcreateaninstallerthatcreatesashortcuttoanURL.
Step1:AddtheextensionnamespaceTobuildontopofthesimplesetupexample,let'sre-usethesamesourcefileandaddthefollowing:
<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'xmlns:util='http://schemas.microsoft.com/wix/UtilExtension'<ProductId='PUT-GUID-HERE'Name='TestPackage'Language='1033'Version='1.0.0.0'Manufacturer='MicrosoftCorporation'><PackageDescription='MyfirstWindowsInstallerpackage'Comments='ThisismyfirstattemptatcreatingaWindowsInstallerdatabase'Manufacturer='MicrosoftCorporation'InstallerVersion='200'Compressed='yes'/><MediaId='1'Cabinet='product.cab'EmbedCab='yes'/><DirectoryId='TARGETDIR'Name='SourceDir'><DirectoryId='ProgramFilesFolder'Name='PFiles'><DirectoryId='MyDir'Name='TestProgram'><ComponentId='MyComponent'Guid='PUT-GUID-HERE'><FileId='readme'Name='readme.txt'DiskId='1'Source='readme.txt'/></Component><MergeId='MyModule'Language='1033'SourceFile='module.msm'DiskId='1'/></Directory></Directory></Directory><FeatureId='MyFeature'Title='My1stFeature'Level='1'><ComponentRefId='MyComponent'/><MergeRefId='MyModule'/></Feature></Product></Wix>
Step2:AuthortheelementtocreatetheshortcutAddthefollowingtothesourcefile::
<?xmlversion='1.0'?><Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'xmlns:util='http://schemas.microsoft.com/wix/UtilExtension<ProductId='PUT-GUID-HERE'Name='TestPackage'Language='1033'Version='1.0.0.0'Manufacturer='MicrosoftCorporation'><PackageDescription='MyfirstWindowsInstallerpackage'Comments='ThisismyfirstattemptatcreatingaWindowsInstallerdatabase'Manufacturer='MicrosoftCorporation'InstallerVersion='200'Compressed='yes'/><MediaId='1'Cabinet='product.cab'EmbedCab='yes'/><DirectoryId='TARGETDIR'Name='SourceDir'><DirectoryId='ProgramFilesFolder'Name='PFiles'><DirectoryId='MyDir'Name='TestProgram'><ComponentId='MyComponent'Guid='PUT-GUID-HERE'><FileId='readme'Name='readme.txt'DiskId='1'Source='readme.txt'/><util:InternetShortcutId='Bing'Name='Bing'Target='http://www.bing.com'/></Component><MergeId='MyModule'Language='1033'SourceFile='module.msm'DiskId='1'/></Directory></Directory></Directory><FeatureId='MyFeature'Title='My1stFeature'Level='1'><ComponentRefId='MyComponent'/><MergeRefId='MyModule'/></Feature></Product></Wix>;;;;
Step3:BuildtheinstallerTobuildtheinstaller,youneedtopassintheextensionthatthesourcefileisreferencing:
C:\test>candleproduct.wxs-extWixUtilExtensionMicrosoft(R)WindowsInstallerXmlCompilerversion1.0.1220.15022Copyright(C)MicrosoftCorporation2003.Allrightsreservedproduct.wxsC:\test>lightproduct.wixobj-extWixUtilExtensionMicrosoft(R)WindowsInstallerXmlLinkerversion1.0.1220.15022Copyright(C)MicrosoftCorporation2003.Allrightsreserved
WixUIDialogLibraryWiXoffersasetofbuilt-inWindowsInstaller-baseduserinterfaceforinstallationpackages.ThissectioncoversthefollowingtopicsaboutusingtheWixUIdialoglibrary:
UsingBuilt-inWixUIDialogSetsCustomizingBuilt-inWixUIDialogSetsUsingLocalizedVersionsofWixUIWixUIDialogReference
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-culturesswitchestolight.exetoreferencetheWixUIExtension.Forexample:
light-extWixUIExtension-cultures:en-usProduct.wixobj-outProduct.msi
Note-IfyouareusingWiXinVisualStudioyoucanaddtheWixUIExtensionusingtheAddReferencedialogandthenecessarycommandlineswillautomaticallybeaddedwhenlinkingyour.msi.Todothis,usethefollowingsteps:
1. OpenyourWiXprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd
Reference...3. SelecttheWixUIExtension.dllassemblyfromthelistandclick
Add4. ClosetheAddReferencedialog
CustomizingBuilt-inWixUIDialogSetsThebuilt-inWixUIdialogsetscanbecustomizedinthefollowingways:
Specifyingaproduct-specificlicenseagreementfile.Specifyingproduct-specificsetupUIbitmaps.AddinganoptionalcheckboxandoptionaltexttotheExitDlg.Customizingthetextdisplayedinbuilt-indialogs.ChangingtheUIsequenceofabuilt-indialogset.Insertingacustomdialogintoabuilt-indialogset.
SpecifyingalicensefileWixUIExtension.dllincludesadefault,placeholderlicenseagreement.Tospecifyyourproduct'slicense,overridethedefaultbyspecifyingaWiXvariablenamedWixUILicenseRtfwiththevalueofanRTFfilethatcontainsyourlicensetext.YoucandefinethevariableinyourWiXauthoring:
<WixVariableId="WixUILicenseRtf"Value="bobpl.rtf"/>
Alternatively,youcandefinethevariableusingthe-dswitchwhenrunninglight:
light-extWixUIExtension-cultures:en-us-dWixUILicenseRtf=bobpl.rtfProduct.wixobj-outProduct.msi
Thefileyouspecifymustbeinadirectorylightislookinginforfiles.Usethe-bswitchtoadddirectories.
Thereisaknownissuewiththerichtextcontrolusedtodisplaythetextofthelicensefilethatcancausethetexttoappearblankuntiltheuserscrollsdowninthecontrol.ThisistypicallycausedbycomplexRTFcontent(suchastheRTFgeneratedwhensavinganRTFfileinMicrosoftWord).IfyourunintothisbehaviorinyoursetupUI,oneofthefollowingworkaroundswillfixitinmostcases:
OpenyourRTFfileinWordPadandsaveitfromthereinordertoremovethecomplexRTFcontentfromthefile.Aftersavingit,rebuildyourMSI.UseadialogsetotherthantheWixUI_Minimalset.Thisproblemtypicallyonlyoccurswhenthelicenseagreementscreenisthefirstonedisplayedduringsetup,whichonlyhappenswiththeWixUI_Minimaldialogset.
ReplacingthedefaultbitmapsTheWixUIdialoglibraryincludesdefaultbitmapsforthebackgroundofthewelcomeandcompletiondialogsandthetopbanneroftheotherdialogs.Youcanreplacethosebitmapswithyourownforproductbrandingpurposes.Toreplacedefaultbitmaps,specifyWiXvariablevalueswiththefilenamesofyourbitmaps,justlikewhenreplacingthedefaultlicensetext.
Variablename Description DimensionsWixUIBannerBmp Topbanner 493×58WixUIDialogBmp Backgroundbitmapusedonthe
welcomeandcompletiondialogs493×312
WixUIExclamationIco ExclamationiconontheWaitForCostingDlg
32×32
WixUIInfoIco Informationicononthecancelanderrordialogs
32×32
WixUINewIco ButtonglyphontheBrowseDlg 16×16WixUIUpIco ButtonglyphontheBrowseDlg 16×16
CustomizingtheExitDlgTheExitDlgisthedialoginthebuilt-inWixUIdialogsetsthatisdisplayedattheendofasuccessfulsetup.TheExitDlgsupportsshowingbothoptional,customizabletextandanoptionalcheckbox.
SeeHowTo:RuntheInstalledApplicationAfterSetupforanexampleofhowtoshowacheckboxontheExitDlg.
ToshowoptionaltextontheExitDlg,settheWIXUI_EXITDIALOGOPTIONALTEXTpropertytothestringyouwanttoshow.Forexample:
<PropertyId="WIXUI_EXITDIALOGOPTIONALTEXT"Value="Thankyouforinstallingthisproduct."/>
Theoptionaltexthasthefollowingbehavior:
Theoptionaltextisdisplayedasliteraltext,sopropertiessurroundedbysquarebracketssuchas[ProductName]willnotberesolved.Ifyouneedtoincludepropertyvaluesintheoptionaltext,youmustscheduleacustomactiontosettheproperty.Forexample:
<CustomActionId="CA_Set_WIXUI_EXITDIALOGOPTIONALTEXT"Property="WIXUI_EXITDIALOGOPTIONALTEXT"Value="Thankyouforinstalling[ProductName]."/><InstallUISequence><CustomAction="CA_Set_WIXUI_EXITDIALOGOPTIONALTEXT"After="FindRelatedProducts">NOTInstalled</Custom></InstallUISequence>
Longstringswillwrapacrossmultiplelines.Theoptionaltextisonlyshownduringinitialinstallation,notduringmaintenancemodeoruninstall.
Customizingthetextinbuilt-indialogsAlltextdisplayedinbuilt-inWixUIdialogsetscanbeoverriddenwithcustomstringsifdesired.Inordertodoso,youmustaddastringtoyourproduct'sWiXlocalization(.wxl)filethathasthesameIdvalueasthestringthatyouwanttooverride.YoucanfindtheWixUIstringIdvaluesbylookinginthefilenamedWixUI_en-us.wxlintheWiXsourcecode.
Forexample,tooverridethedescriptivetextontheWelcomeDlg,youwouldaddthefollowingtoa.wxlfileinyourproject:
<StringId="WelcomeDlgDescription">Thisisacustomwelcomemessage.ClickNexttocontinueorCanceltoexit.</String>
ChangingtheUIsequenceofabuilt-indialogsetEachoftheWixUIdialogsetscontainsapre-definedsetofdialogsthatwillbedisplayedinaspecificorder.Informationaboutthedialogsincludedineachbuilt-inWixUIdialogsetcanbefoundintheWixUIDialogLibraryReference.
Itispossibletochangethedefaultsequenceofabuilt-indialogset.Todoso,youmustcopythecontentsofthe<Fragment/>thatincludesthedefinitionofthedialogsetthatyouwanttocustomizefromtheWiXsourcecodetoyourproject.Then,youmustmodifythe<Publish/>elementstodefinetheexactdialogsequencethatyouwantinyourinstallationexperience.
Forexample,toremovetheLicenseAgreementDlgfromtheWixUI_InstallDirdialogset,youwoulddothefollowing:
1. Copythefullcontentsofthe<Fragment/>definedinWixUI_InstallDir.wxsintheWiXsourcecodetoyourproject.
2. Removethe<Publish/>elementsthatareusedtoaddBackandNexteventsfortheLicenseAgreementDlg.
3. Changethe<Publish/>elementthatisusedtoaddaNexteventtotheWelcomeDlgtogototheInstallDirDlginsteadoftheLicenseAgreementDlg.Forexample:
<PublishDialog="WelcomeDlg"Control="Next"Event="NewDialog"Value="
4. Changethe<Publish/>elementthatisusedtoaddaBackeventtotheInstallDirDlgtogototheWelcomeDlginsteadoftheLicenseAgreementDlg.Forexample:
<PublishDialog="InstallDirDlg"Control="Back"Event="NewDialog"Value="
Insertingacustomdialogintoabuilt-indialogsetYoucanaddcustomdialogstotheUIsequenceinabuilt-inWixUIdialogset.Todoso,youmustdefinea<UI/>elementforyournewdialog.Then,youmustcopythecontentsofthe<Fragment/>thatincludesthedefinitionofthedialogsetthatyouwanttocustomizefromtheWiXsourcecodetoyourproject.Finally,youmustmodifythe<Publish/>elementstodefinetheexactdialogsequencethatyouwantinyourinstallationexperience.
Forexample,toinsertadialognamedSpecialDlgbetweentheWelcomeDlgandtheLicenseAgreementDlgintheWixUI_InstallDirdialogset,youwoulddothefollowing:
1. DefinetheappearanceoftheSpecialDlgina<UI/>elementinyourproject.
2. Copythefullcontentsofthe<Fragment/>definedinWixUI_InstallDir.wxsintheWiXsourcecodetoyourproject.
3. Add<Publish/>elementsthatdefinetheBackandNexteventsfortheSpecialDlg.Forexample:
<PublishDialog="SpecialDlg"Control="Back"Event="NewDialog"Value="WelcomeDlg">1</Publish><PublishDialog="SpecialDlg"Control="Next"Event="NewDialog"Value="LicenseAgreementDlg">1</Publish>
4. Changethe<Publish/>elementthatisusedtoaddaNexteventtotheWelcomeDlgtogototheSpecialDlginsteadoftheLicenseAgreementDlg.Forexample:
<PublishDialog="WelcomeDlg"Control="Next"Event="NewDialog"Value="
5. Changethe<Publish/>elementthatisusedtoaddaBackeventtotheLicenseAgreementDlgtogototheSpecialDlginsteadoftheWelcomeDlg.Forexample:
<PublishDialog="LicenseAgreementDlg"Control="Back"Event="NewDialog"Value="
UsingLocalizedVersionsofWixUI
UsingtranslatedUIstringsWixUIExtensionincludesasetofWiXlocalization(.wxl)filesthatcontaintranslatedUItext,errorandprogresstextstringsforseverallanguages.TospecifyaUIlanguageforyourinstaller,passthedesiredculturevalueonthecommandlinewhencallinglight.Forexample:
light-extWixUIExtension-cultures:fr-frProduct.wixobj-outProduct.msi
WixUIExtensionincludestranslatedstringsforthefollowinglanguages:
Languagename Culturecode WXLfilenameEnglish en-us WixUI_en-us.wxlFrench fr-fr WixUI_fr-fr.wxlGerman de-de WixUI_de-de.wxlItalian it-it WixUI_it-it.wxlJapanese ja-jp WixUI_ja-jp.wxlPolish pl-pl WixUI_pl-pl.wxlRussian ru-ru WixUI_ru-ru.wxlSpanish es-es WixUI_es-es.wxl
CreatingmultiplesetupswithdifferentsetupUIlanguagesYoucancreateaseriesof.msifilesthateachusedifferentsetupUIlanguagesbycallingcandleonceandthencallinglightmultipletimeswithdifferentculturevalues.Forexample:
candleProduct.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"/>
WixUIDialogLibraryReferenceThissectionexplainsWixUIdialogsanddialogsetsthatareincludedwiththeWiXtoolset.
WixUI_AdvancedDialogSetWixUI_FeatureTreeDialogSetWixUI_InstallDirDialogSetWixUI_MinimalDialogSetWixUI_MondoDialogSetWixUIDialogs
WixUI_AdvancedDialogSetTheWixUI_Advanceddialogsetprovidestheoptionofaone-clickinstalllikeWixUI_Minimal,butitalsoallowsdirectoryandfeatureselectionlikeotherdialogsetsiftheuserchoosestoconfigureadvancedoptions.
ThisdialogsetisdefinedinthefileWixUI_Advanced.wxsintheWixUIExtensionintheWiXsourcecode.
UsingWixUI_AdvancedTouseWixUI_Advanced,youmustincludethefollowinginformationinyoursetupauthoring:
1. AdirectorywithanIdnamedAPPLICATIONFOLDER.Thisdirectorywillbethedefaultinstallationlocationfortheproduct.Forexample:
<DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"Name="PFiles"><DirectoryId="APPLICATIONFOLDER"Name="MyApplicationFolder">...</Directory></Directory></Directory>
2. ApropertywithanIdnamedApplicationFolderNameandavaluesettoastringthatrepresentsthedefaultfoldername.Thispropertyisusedtoformthedefaultinstallationlocation.
Foraper-machineinstallation,thedefaultinstallationlocationwillbe[ProgramFilesFolder][ApplicationFolderName]andtheuserwillbeabletochangeitinthesetupUI.Foraper-userinstallation,thedefaultinstallationlocationwillbe[LocalAppDataFolder]Apps\[ApplicationFolderName]andtheuserwillnotbeabletochangeitinthesetupUI.
Forexample:
<PropertyId="ApplicationFolderName"Value="MyApplicationFolder"/>
3. ApropertywithanIdnamedWixAppFolderandavaluesettoWixPerMachineFolderorWixPerUserFolder.Thispropertysetsthedefaultselectedvalueoftheradiobuttonontheinstallscope
dialoginthesetupUIwheretheusercanchoosewhethertoinstalltheproductper-machineorper-user.Forexample:
<PropertyId="WixAppFolder"Value="WixPerMachineFolder"/>
ItispossibletosuppresstheinstallscopedialogintheWixUI_Advanceddialogsetsotheuserwillnotbeabletochooseaper-machineorper-userinstallation.Todothis,youmustsettheWixUISupportPerMachineorWixUISupportPerUserWiXvariablesto0.Thedefaultvalueforeachofthesevariablesis1,andyoushouldnotsetbothofthesevaluesto0inthesame.msi.Forexample,toremovetheinstallscopedialogandsupportonlyaper-machineinstallation,youcansetthefollowing:
<WixVariableId="WixUISupportPerUser"Value="0"/>
TheinstallscopedialogwillautomaticallysettheALLUSERSpropertyfortheinstallationsessionbasedontheuser'sselection.IfyousuppresstheinstallscopedialogbysettingeitheroftheseWiXvariablevalues,youmustmanuallysettheALLUSERSpropertytoanappropriatevaluebasedonwhetheryouwantaper-machineorper-userinstallation.
WixUI_AdvancedDialogsWixUI_Advancedincludesthefollowingdialogs:
AdvancedWelcomeEulaDlgBrowseDlgDiskCostDlgFeaturesDlgInstallDirDlgInstallScopeDlgInvalidDirDlg
Inaddition,WixUI_AdvancedincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:
CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg
SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.
WixUI_FeatureTreeDialogSetWixUI_FeatureTreeisasimplerversionofWixUI_Mondothatomitsthesetuptypedialog.Instead,thewizardproceedsdirectlyfromthelicenseagreementdialogtothefeaturecustomizationdialog.WixUI_FeatureTreeismoreappropriatethanWixUI_Mondowhenyourproductinstallsallfeaturesbydefault.
ThisdialogsetisdefinedinthefileWixUI_FeatureTree.wxsintheWixUIExtensionintheWiXsourcecode.
WixUI_FeatureTreeDialogsWixUI_FeatureTreeincludesthefollowingdialogs:
BrowseDlgCustomizeDlgDiskCostDlgLicenseAgreementDlgWelcomeDlg
Inaddition,WixUI_FeatureTreeincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:
CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg
SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.
WixUI_InstallDirDialogSetWixUI_InstallDirdoesnotallowtheusertochoosewhatfeaturestoinstall,butitaddsadialogtolettheuserchooseadirectorywheretheproductwillbeinstalled.
ThisdialogsetisdefinedinthefileWixUI_InstallDir.wxsintheWixUIExtensionintheWiXsourcecode.
UsingWixUI_InstallDirTouseWixUI_InstallDir,youmustsetapropertynamedWIXUI_INSTALLDIRwithavalueoftheIDofthedirectoryyouwanttheusertobeabletospecifythelocationof.ThedirectoryIDmustbealluppercasecharactersbecauseitmustbepassedfromtheUItotheexecutesequencetotakeeffect.Forexample:
<DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"Name="PFiles"><DirectoryId="TESTFILEPRODUCTDIR"Name="TestFile">...</Directory></Directory></Directory>...<PropertyId="WIXUI_INSTALLDIR"Value="TESTFILEPRODUCTDIR"/><UIRefId="WixUI_InstallDir"/>
WixUI_InstallDirDialogsWixUI_InstallDirincludesthefollowingdialogs:
BrowseDlgDiskCostDlgInstallDirDlgInvalidDirDlgLicenseAgreementDlgWelcomeDlg
Inaddition,WixUI_InstallDirincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:
CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg
SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.
WixUI_MinimalDialogSetWixUI_Minimalisthesimplestofthebuilt-inWixUIdialogsets.Itssoledialogcombinesthewelcomeandlicenseagreementdialogsandomitsthefeaturecustomizationdialog.WixUI_Minimalisappropriatewhenyourproducthasnooptionalfeaturesanddoesnotsupportchangingtheinstallationdirectory.
ThisdialogsetisdefinedinthefileWixUI_Minimal.wxsintheWixUIExtensionintheWiXsourcecode.
WixUI_MinimalDialogsWixUI_Minimalincludesthefollowingdialog:
WelcomeEulaDlg
Inaddition,WixUI_MinimalincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:
CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg
SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.
WixUI_MondoDialogSetWixUI_Mondoincludesasetdialogsthatallowgranularinstallationcustomizationoptions.WixUI_Mondoisappropriatewhensomeproductfeaturesarenotinstalledbydefaultandthereisameaningfuldifferencebetweentypicalandcompleteinstalls.
Note:WixUI_MondousesSetInstallLevelcontroleventstosettheinstalllevelwhentheuserchoosesTypicalorComplete.ForTypical,theinstalllevelissetto3;forComplete,1000.Fordetailsaboutfeaturelevelsandinstalllevels,seeINSTALLLEVELProperty.
ThisdialogsetisdefinedinthefileWixUI_Mondo.wxsintheWixUIExtensionintheWiXsourcecode.
WixUI_MondoDialogsWixUI_Mondoincludesthefollowingdialogs:
BrowseDlgCustomizeDlgDiskCostDlgLicenseAgreementDlgSetupTypeDlgWelcomeDlg
Inaddition,WixUI_MondoincludesthefollowingcommondialogsthatappearinallWixUIdialogsets:
CancelDlgErrorDlgExitDlgFatalErrorFilesInUseMaintenanceTypeDlgMaintenanceWelcomeDlgMsiRMFilesInUseOutOfDiskDlgOutOfRbDiskDlgPrepareDlgProgressDlgResumeDlgUserExitVerifyReadyDlgWaitForCostingDlg
SeetheWixUIdialogreferencefordetaileddescriptionsofeachoftheabovedialogs.
WixUIDialogsThefollowingtabledescribeseachofthebuilt-indialogsthatisdefinedintheWixUIdialoglibrary.
DialogName DescriptionAdvancedWelcomeEulaDlg Adialogthatdisplaystheenduserlicense
agreement.UnliketheLicenseAgreementDlg,ithasAdvancedandInstallbuttonsinsteadofNextandBackbuttons.ThisdialogisusedbytheWixUI_Advanceddialogsettoprovidetheuserwithaquickwaytoperformadefaultinstallation.
BrowseDlg Adialogthatallowstheusertobrowseforadestinationfolder.
CancelDlg AdialogthatappearsaftertheuserclicksaCancelbuttononanydialogandconfirmswhetherornottheuserreallywantstocanceltheinstallation.
CustomizeDlg AdialogthatdisplaysafeatureselectiontreewithaBrowsebutton,DiskUsagebutton,andatextboxthatcontainsinformationaboutthecurrentlyselectedfeature.
DiskCostDlg Adialogthatallowstheusertoselectwhichdrivetoinstalltoandthatdisplaysdiskspaceusageinformationforeachdrive.
ErrorDlg Adialogthatdisplaysanerrormessagetotheuserandcanprovideanoptiontoretrythepreviousaction.
ExitDlg Adialogthatdisplaysasummarydialogaftersetupcompletessuccessfully.Itcanalsooptionallydisplayacheckboxandcustomtext.Fordetailsabouthowtoadd
acheckboxandcustomtexttothisdialog,seeCustomizingBuilt-inWixUIDialogSetsandHowTo:RuntheInstalledApplicationAfterSetup.
FatalError Adialogthatdisplaysasummaryerrordialogifsetupfails.
FeaturesDlg Adialogthatdisplaysafeatureselectiontreewithatextboxthatcontainsinformationaboutthecurrentlyselectedfeature.UnliketheCustomizeDlg,itdoesnotcontainBrowseorDiskSpacebuttons.
FilesInUse Adialogthatdisplaysalistofapplicationsthatareholdingfilesinusethatneedtobeupdatedbythecurrentinstallationprocess.ItincludesRetry,IgnoreandExitbuttons.
InstallDirDlg Adialogthathasatextboxthatallowstheusertotypeinanon-defaultinstallationpathandaBrowsebuttonthatallowstheusertoselectanon-defaultinstallationfolder.Bydefault,theInstallDirDlgdialogvalidatesthatanypaththeuserentersisvalidforWindowsInstaller:Thatis,it'sapathonalocalharddrive,notanetworkpathoronaremovabledrive.Ifyouwishtodisablepathvalidationandallowinvalidpaths,setthepublicpropertyWIXUI_DONTVALIDATEPATHto1.
InstallScopeDlg Adialogthatallowstheusertochoosetoinstalltheproductforallusersorforthecurrentuser.
InvalidDirDlg Adialogthatdisplaysanerroriftheuserselectsaninvalidinstallationdirectory.
LicenseAgreementDlg AdialogthatdisplaystheenduserlicenseagreementandincludesBackandNextbuttons.Unlikethe
AdvancedWelcomeEulaDlg,thisdialogdoesnotallowtheusertostartadefaultinstallation.
MaintenanceTypeDlg Adialogthatincludesbuttonsthatallowtheusertochangewhichfeaturesareinstalled,repairtheproductorremovetheproduct.Itonlyappearswhentheuserrunssetupafteraproducthasbeeninstalled.
MaintenanceWelcomeDlg Anintroductorydialogthatappearswhenrunningsetupaftertheproducthasbeeninstalled.
MsiRMFilesInUse AdialogthatissimilartotheFilesInUsedialog,butthatinteractswithRestartManager.Itallowstheusertoattempttoautomaticallycloseapplicationsorignorethepromptandresultinthesetuprequiringarebootafteritcompletes.
OutOfDiskDlg Adialogthatinformstheuserthattheyhaveinsufficientdiskspaceontheselecteddriveandadvisesthemtofreeupadditionaldiskspaceorreducethenumberoffeaturestobeinstalledtothedrive.
OutOfRbDiskDlg AdialogthatissimilartotheOutOfDiskDlg,butalsoallowstheusertodisableWindowsInstallerrollbackfunctionalityinordertoconservediskspacerequiredbysetup.
PrepareDlg Asimpleprogressdialogthatappearsduringsetupinitializationbeforethefirstinteractivedialogappears.
ProgressDlg Adialogthatappearsduringinstallationthatdisplaysaprogressbarandmessagesaboutactionsarebeingperformed.
ResumeDlg Anintroductorydialogthatappearswhenresumingasuspendedsetup.
SetupTypeDlg AdialogthatallowstheusertochooseTypical,CustomorCompleteinstallationconfigurations.
UserExit AdialogthatthatissimilartotheFatalErrordialog.Itdisplaysasummarydialogiftheuserchoosestocancelsetup.
VerifyReadyDlg Adialogthatappearsimmediatelybeforestartinginstallation.Itaskstheuserforfinalconfirmationbeforestartingtomakechangestothesystem.
WaitForCostingDlg AdialogthatappearsiftheuseradvancestoofarinthesetupwizardbeforeWindowsInstallerhasfinishedcalculatingdiskcostrequirements.
WelcomeDlg Anintroductorydialogthatappearswhenrunningsetupforaproductthathasnotyetbeeninstalled.
WelcomeEulaDlg Adialogthatdisplaysanenduserlicenseagreementandallowstheusertostartinstallationafteracceptingtheagreement.ItisonlyusedbytheWixUI_Minimaldialogsetandisintendedforsimplesetupprogramsthatdonotofferanyuserconfigurableoptions.
UsingWiXinVisualStudioTheVisualStudioWiXtoolsetallowsyoutoeasilycreateWiXprojects,editWiXfilesusingIntelliSense,andcompile/linkyourprojectwithintheVisualStudioIDE.TheWiXVisualStudioplug-insupportsVS2005,VS2008,andVS2010.
ForWiXprojecttypes,seeWiXProjectTypes.
ForWiXitemtemplates,seeWiXItemtemplates.
FortheWiXpropertypages,seeWiXProjectpropertypages.
ForhintsonhowtoreadthedefaultWiXprojecttemplate,seeWiXProjectTemplate.
YoucancreateandbuildWindowsInstallerpackagesusingWiXwithintheVisualStudioIDE.Inthissection,wewillcoverthebasicsofcreatingasimplesetupusingVisualStudioandWiX.
CreatingasimplesetupUsingprojectreferencesandvariables
Alternatively,youmayalsouseWiXonthecommandlinebycallingthetoolsdirectlyorusingMSBuild.SeeCreatingInstallationPackagesandUsingWiXwithMSBuild.
ProjectTemplatesTheWiXVisualStudiopackageprovidesthefollowingVisualStudioprojecttemplates:
WiXProject-usedtocreateanewWindowsInstallerpackage(.msi)file.EachnewWiXprojectincludesa.wxsfilethatconsistsofa<Product>elementthatcontainsaskeletonwiththeWiXauthoringrequiredtocreateafullyfunctionalWindowsInstallerpackage.The<Package>elementincludes<Package>,<Media>,<Directory>,<Component>and<Feature>elements.WiXLibraryProject-usedtocreateanewWiXlibrary(.wixlib)file.A.wixlibfileisalibraryofsetupfunctionalitythatcanbeeasilysharedacrossdifferentWiX-basedpackagesbyincludingitwhenlinkingthesetuppackage.EachnewWiXlibraryprojectincludesa.wxsfilethatconsistsofanempty<Fragment>elementthatcanbepopulatedwithWiXauthoringthatcanbesharedbymultiplepackages.WiXMergeModuleProject-usedtocreateanewWindowsInstallermergemodule(.msm)file.AmergemodulecontainsasetofWindowsInstallerresourcesthatcanbesharedbymultipleWindowsInstallerinstallationpackagesbymergingthecontentsofthemoduleintothe.msipackage.EachnewWiXmergemoduleprojectincludesa.wxsfilethatconsistsofa<Module>elementthatcontainsaskeletonwiththeWiXauthoringrequiredtocreateafullyfunctionalmergemodule.The<Module>elementincludes<Package>,<Directory>and<Component>elements.
Tocreateanewproject:
1. ClickonFile|New|ProjectontheVisualStudiomenu.2. NavigatetotheWindowsInstallerXMLnode.3. SelecttheprojecttemplateandpressOK.
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-atextboxthatcontainsthenameoftheresultant.msi,.msmor.wixlibfilethatwillbecreatedbythebuildprocess.Outputtype-adrop-downlistthatallowsyoutoselecttheoutputtype(a.msi,.msmor.wixlibfile).
BuildPropertyPageTheBuildtabcontainsthefollowingconfigurableoptions:
TheGeneralsectionallowsyoutodefineconfiguration-specificconstantsandspecifytheculturetobuild.FormoreinformationseeSpecifyingculturestobuild.TheMessagessectionallowsyoutospecifywarninglevels,toggletreatingwarningsaserrorsandverboseoutput.TheOutputsectionallowsyoutospecifytheoutputpath,toggledeletetemproaryfiles,suppressoutputofthewixpdbfile,andtogglewhetherornottobindfilesintothelibraryfile(ifitisaWiXLibraryproject).
BuildEventsPropertyPageTheBuildEventstabcontainsthefollowingconfigurableoptions:
Pre-buildeventcommandline-atextboxthatcontainsthepre-buildeventstoexecutebeforebuildingthecurrentproject.Post-buildeventcommandline-atextboxthatcontainsthepost-buildeventstoexecuteafterbuildingthecurrentproject.Runthepost-buildevent-adrop-downcomboboxthatallowsyoutospecifytheconditionsinwhichpost-buildeventsshouldbeexecuted.
TheBuildEventstabcontainsbuttonsnamedEditPre-build...andEditPost-build...thatdisplayeditdialogsforthepreandpost-buildeventcommandlines.TheeditdialogscontainalistofallvalidWiXprojectreferencevariablesandtheirvaluesbasedonthecurrentprojectsettings.
PathsPropertyPageThePathstabcontainsthefollowingconfigurableoptions:
TheReferencePathssectionallowsyoutodefinepathsyouwanttousewhenlocatingreferences(WiXextensionsandWiXlibraries).TheIncludePathssectionallowsyoutodefinepathsyouwanttousewhenlocatingWiXIncludefiles.
ToolSettingsPropertyPageTheToolSettingstabcontainsthefollowingconfigurableoptions:
TheICEvalidationsectionallowsyoutotoggleICEvalidationsuppressionorspecifywhichICEvalidationtosuppress.TheAdditionalparameterssectionallowsyoutospecifycommandlineargumentstopassdirectlytotheWiXtoolsatbuildtime.
ReadingtheDefaultWiXProjectTemplateOnceaWiXprojectiscreated,itcreatesfilecontainsthebeginningofthesetupcodefortheproject.EverythingneededtocreateanMSIcanbeaddedtothisfile.
Note:IfyouarenotfamiliarwithWindowsInstallersetuppackages,youarestronglyencouragedtoreviewtheMSDNdocumentationabouttheInstallationPackagebeforecontinuing.ItwillprovidealotofvaluablecontextaswedigintothedetailsofaWindowsInstallersetuppackage.
<?xmlversion="1.0"encoding="UTF-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><ProductId="677a7ac3-6e9b-4531-8a61-c31acc301d27"Name="MySetup"Language="1033"Version="1.0.0.0"Manufacturer="MySetup"UpgradeCode="ae949a2b-1fcd-4abe-bf47-1eb923575de1"><PackageInstallerVersion="200"Compressed="yes"/><MediaId="1"Cabinet="MySetup.cab"EmbedCab="yes"/><DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"><DirectoryId="INSTALLLOCATION"Name="MySetup"><!--TODO:RemovethecommentsaroundthisComponentelementandtheComponentRefbelowinordertoaddresourcestothisinstaller.--><!--<ComponentId="ProductComponent"Guid="78576f70-ac55-4d9c-b9e8-a96d81889ada">--><!--TODO:Insertfiles,registrykeys,andotherresourceshere.--><!--</Component>--></Directory></Directory></Directory><FeatureId="ProductFeature"Title="PUT-FEATURE-TITLE-HERE"Level="1"><ComponentRefId="ProductComponent"/></Feature></Product></Wix>
IfyouarefamiliarwiththeWindowsInstaller,thestructureofthe.wxsfileshouldbefamiliar.First,theWixelementexistspurelytowraptherestofthecontentinthefile.TheWixelementalsospecifiesthenamespace,thexmlnsattributethatenablesvalidationduringcompileandauto-completeinVisualStudioviaIntelliSense.Next,theProductelementdefinestherequiredWindowsInstallerpropertiesusedtoidentifytheproduct,suchastheProductCode,ProductName,ProductLanguage,andProductVersion.Third,thePackageelementcontainstheattributesfortheSummaryInformationStreamthatprovidesinformationaboutthesetuppackageitself.Therestoftheelements,excepttheComponentRefelement,maptoWindowsInstallertablesbythesamename,forexampletheMediatable,Directorytable,Componenttable,andFeaturetable.TheComponentRefelementisusedtotietheFeaturestotheirComponentswhichmapstotheentriesintheFeatureComponentstable.
ThedefaulttemplatethatisgeneratedwhenyoucreateanewWiXprojectwillgeneratesabuildwarning.IntheOutputwindow,youmayseethiswarning:
Thecabinet'MySetup.cab'doesnotcontainanyfiles.Ifthisinstallationcontainsnofiles,thiswarningcanlikelybesafelyignored.Otherwise,pleaseaddfilestothecabinetorremoveit.
BecausetheWiXprojectdoesnotyetreferenceanapplication,thereisnothingtoinstall.Onceafileisaddedtotheinstaller,thiswarningwillgoaway.
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,
thenselectWiXProject3. Nameyourproject"MySetup"andpressOK.4. IntheMySetupproject,right-clickontheReferencesnodeand
chooseAddReference....5. NavigatetotheProjectstab,clickontheMyApplicationproject,
andclicktheAddbutton,andthenpressOK.6. BuildtheWiXproject.
That'sit!Nowyouhaveaworkinginstallerthatinstallsanduninstallstheapplication.
Note:Afterstep5,theappropriateWiXauthoringisauto-generatedtoreferencetheapplicationproject.Todisableauto-generation,right-clickontheMyApplicationprojectreferenceandgotoProperties,thensettheHarvestpropertytoFalse.TomanuallyaddtheprojectreferenceintotheWiXsourcefile,openMySetup.wxsandyouwillseeacommentthatsays:
<!--TODO:Insertyourfiles,registrykeys,andotherresourceshere.-->
Deletethislineandreplaceitwiththefollowinglinesofcode:
<FileId="MyApplicationFile"Name="$(var.MyApplication.TargetFileName)"Source="$(var.MyApplication.TargetPath)"DiskId="1"KeyPath="yes"/>
Ifyoutypethatcodeintotheeditor(insteadofcopyingandpastingfromthisexample)youwillnoticethatIntelliSensepicksupthevalidelementsandattributes.IntelliSensewithWiXinVisualStudiocansaveyousignificantamountsoftypingandtimewhensearchingforthenameoftheelementsorattributesasyoubecomemorecomfortablewiththeWiXlanguage.
ThatlineofcodeinstructstheWiXtoolsettoaddafileresourcetothesetuppackageusing"MyApplicationFile"asitspackageidentifier.TheNameattributespecifiesthenameforyourfilewhenitisinstalledandtheSourceattributespecifieswheretofindthefileforpackagingduringthebuild.Ratherthanhard-codevaluesfortheseattributesintooursourcecode,weusetheWiXpreprocessorvariablesthatarepassedtotheWiXcompiler.Moreinformationaboutusingpreprocessorvariables,includingatableofallsupportedvalues,canbefoundintheAddingProjectReferencestopic.
TheDiskIdattributeinstructstheWiXtoolsettoaddthisfiletotheMediaelementwithmatchingIdattribute.Inthisexample,theMyApplicationexecutableisaddedtotheMySetup.cabcabinetandthatcabinetisembeddedinthesetuppackage.TheKeyPathattributeinstructstheWiXtoolsettousethisfileasthekeypathforthecomponentthatcontainsthefile.
ProjectReferencesandVariablesTheWiXprojectsupportsaddingprojectreferencestootherprojectssuchasVBandC#.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\VisualStudio2005\Projects\MyProject\
var.ProjectName.ProjectExt $(var.MyProject.ProjectExt) .csproj
var.ProjectName.ProjectFileName $(var.MyProject.ProjectFileName) MyProject.csproj
var.ProjectName.ProjectName $(var.MyProject.ProjectName) MyProject
var.ProjectName.ProjectPath $(var.MyProject.ProjectPath) C:\users\myusername\Documents\VisualStudio
2005\Projects\MyProject\MyApp.csproj
var.ProjectName.TargetDir $(var.MyProject.TargetDir) C:\users\myusername\Documents\VisualStudio2005\Projects\MyProject\obj\Debug\
var.ProjectName.TargetExt $(var.MyProject.TargetExt) .exe
var.ProjectName.TargetFileName $(var.MyProject.TargetFileName) MyProject.exe
var.ProjectName.TargetName $(var.MyProject.TargetName) MyProject
var.ProjectName.TargetPath $(var.MyProject.TargetPath) C:\users\myusername\Documents\VisualStudio2005\Projects\MyProject\obj\Debug\MyProject.exe
var.ProjectName.Culture.TargetPath $(var.MyProject.en-US.TargetPath)
C:\users\myusername\Documents\VisualStudio2005\Projects\MyProject\obj\Debug\en-US\MyProject.msm
var.SolutionDir $(var.SolutionDir) C:\users\myusername\Documents\VisualStudio2005\Projects\MySolution\
var.SolutionExt $(var.SolutionExt) .sln
var.SolutionFileName $(var.SolutionFileName) MySolution.sln
var.SolutionName $(var.SolutionName) MySolution
var.SolutionPath $(var.SolutionPath) C:\users\myusername\Documents\VisualStudio2005\Projects\MySolution\MySolution.sln
Note:var.ProjectName.Culture.TargetPathisonlyavailableforprojectsthathavemultiplelocalizedoutputs(e.g.MSMs).
UsingWiXWithMSBuildWiXincludesacompletebuildprocess(.targetsfile)forusewithMSBuild-basedbuildsystems.Formoreinformationseethefollowingtopics.
Creatinga.wixprojfileIntegratingWiXProjectsIntoDailyBuildsBuildingWiXProjectsInTeamFoundationBuildWiXMSBuildTaskReferenceWiXMSBuildTargetReference
Creatinga.wixprojFileInordertobuildWiXusingMSBuild,a.wixprojfilemustbecreated.Theeasiestwaytocreateanew.wixprojforyourinstalleristoWiXinVisualStudiobecauseitautomaticallygeneratesstandardmsbuildprojectfilesthatcanbebuiltonthecommandlinebysimplytyping:
msbuild<projectfile>.wixproj
IfyoudonothaveVisualStudioavailable,a.wixprojfilecanbecreatedusinganytexteditor.Thefollowingisasample.wixprojfilethatbuildsaninstallerconsistingofasingleproduct.wxsfile.Ifyouwanttocopyandpastethisexample,remembertochangethe<ProjectGuid>valuetomatchyourown.
<ProjectDefaultTargets="Build"xmlns="http://schemas.microsoft.com/developer/msbuild/2003"><PropertyGroup><ConfigurationCondition="'$(Configuration)'==''">Debug</Configuration><PlatformCondition="'$(Platform)'==''">x86</Platform><ProductVersion>3.0</ProductVersion><ProjectGuid>{c523055d-a9d0-4318-ae85-ec934d33204b}</ProjectGuid><SchemaVersion>2.0</SchemaVersion><OutputName>WixProject1</OutputName><OutputType>Package</OutputType><WixTargetsPathCondition="'$(WixTargetsPath)'==''">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.5\Wix.targets</PropertyGroup><PropertyGroupCondition="'$(Configuration)|$(Platform)'=='Debug|x86'"><OutputPath>bin\$(Configuration)\</OutputPath><IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath><DefineConstants>Debug</DefineConstants></PropertyGroup><PropertyGroupCondition="'$(Configuration)|$(Platform)'=='Release|x86'"><OutputPath>bin\$(Configuration)\</OutputPath><IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath></PropertyGroup><ItemGroup><CompileInclude="Product.wxs"/></ItemGroup><ImportProject="$(WixTargetsPath)"/></Project>
Additional.wxsfilescanbeaddedusingadditional<Compile>elementswithinanItemGroup.Localizationfiles(.wxl)shouldbeaddedusingthe<EmbeddedResource>elementwithinanItemGroup.Includefiles(.wxi)
shouldbeaddedusingthe<Content>elementwithinanItemGroup.
IntegratingWiXProjectsIntoDailyBuildsOneofthemostcommonreasonsforusingMSBuildwithWiXprojectfilesistointegratethebuildofaninstallerintoanexistingdailybuildprocess.ThisisoftencoupledwithaneedtobuildWiXprojectswithouthavingtopre-installanyWiXtoolsonthedailybuildmachine.WiXprojectsandtheWiXtoolstobuildthemcanbeaddedtomostdailybuildprocessesthatsupportMSBuildusingafewsimplesteps.
Step1:CheckintheWiXToolsToavoidhavingtoinstallWiXonbuildmachinesyoucancheckallthetoolsnecessarytobuildWiXprojectsintoyoursourcecodecontrolsystem.Here'show:
1. InstallWiXonadevelopermachineusingtheWiXinstallerthat'sappropriateforthemachine'sarchitecture(x86orx64).
2. CreateadirectoryinyoursourcecodecontrolsystemtoholdtheWiXtools.It'scommontocreateanumberedsubdirectorymatchingtheversionofWiXthatyou'recheckingin.
3. Copythecontentsofc:\ProgramFiles\WindowsInstallerXMLv3\binintothedirectorycreatedinstep2.
4. Copythecontentsofc:\ProgramFiles\MSBuild\Microsoft\WiX\v3.5intothedirectorycreatedinstep2.
5. IfyouuseDeploymentToolsFoundationortheWiXSDKheaderfilesandlibraries,createaparalleldirectorytreetotheoneyoucreatedinstep2andcopythecontentsofc:\ProgramFiles\WindowsInstallerXMLv3\sdkintothatdirectory.
6. Addandcheckinthefilesfromsteps3through5.
Theactualfilelocationsinsteps3through5willvarydependingonwhereyouinstalledWiX.On64-bitoperatingsystems,thefileswillbelocatedunderc:\ProgramFiles(x86)bydefault.
Step2:ModifyYour.wixprojFileAftercheckingtheWiXtoolsintosourcecodecontrolthe.wixprojfilemustbemodifiedtopointtothelocationofthecheckedintools.Openthe.wixprojfileinanytexteditor,suchasVisualStudio,andaddthefollowingtothefileanywherebetweenthe<Project>elementbeforethe<Import>element:
<PropertyGroup><WixToolPath>$(SourceCodeControlRoot)\wix\3.5.1623.0\</WixToolPath><WixTargetsPath>$(WixToolPath)Wix.targets</WixTargetsPath><WixTasksPath>$(WixToolPath)wixtasks.dll</WixTasksPath></PropertyGroup>
TheWixToolPathmustbesettopointtothelocationoftheWiXtoolsdirectorycreatedinStep1.Themethodusedtoreferencethelocationwillvarydependingonyourbuildsystem,butcommonchoicesareanMSBuildpropertythatissetviaanenvironmentvariable(suchas$(BinariesRoot)inaTeamFoundationServerbuild)oracustompropertypassedinonthecommand-line.
Youcanalsousearelativepathtothedirectory(suchas..\..\tools\),butnotethattheWixTargetsPathpropertyvaluemustberelativetothe.wixprojprojectfilethatusesit.TheWixTasksPathpropertyisusedinsidewix.targetstoloadWixTasks.dll;itsvalue,ifarelativepath,mustberelativetothewix.targetsfile.Thosetwofilesusuallylivetogether,sothevaluewouldbeWixTasks.dllwithnoextrapathinformation.
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'(oranotherculture
dependingonthesettingsintheWiXproject)thatcontainsthebuiltWindowsInstallerpackage.
WiXMSBuildTaskReferenceThissectionexplainsMSBuildtasksthatareincludedwiththeWiXtoolset.
CandleTaskHeatDirectoryTaskHeatFileTaskHeatProjectTaskLightTaskLitTask
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.
ThenameoftheComponentGrouptocreateforallthegeneratedauthoring.
DirectoryRefId Optionalstringparameter.
TheIDofthedirectorytoreferenceinsteadofTARGETDIR.
KeepEmptyDirectories Optionalbooleanparameter.
WhethertocreateDirectoryentriesforemptydirectories.
PreprocessorVariable Optionalstringparameter.
SubstituteSourceDirforanothervariablename(ex:var.Dir).
SuppressCom Optionalbooleanparameter.
SuppressgenerationofCOMregistryelements.Thedefaultisfalse.
SuppressRegistry Optionalbooleanparameter.
SuppressgenerationofaDirectoryelementfortheparentdirectoryofthefile.Thedefaultisfalse.
SuppressRootDirectory Optionalbooleanparameter.
Suppressgenerationofanyregistryelements.Thedefaultisfalse.
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".
LightTaskTheLighttaskwrapslight.exe,theWiXlinker.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.Tocontrolthesesettingsinyour.wixprojfile,youcancreateaPropertyGroupandspecifythesettingsthatyouwanttouseforyourbuildprocess.ThefollowingisasamplePropertyGroupthatcontainssettingsthatwillbeusedbytheLighttask:
<PropertyGroup><LinkerTreatWarningsAsErrors>False</LinkerTreatWarningsAsErrors><LinkerVerboseOutput>True</LinkerVerboseOutput><SuppressIces>ICE18;ICE45;ICE82</SuppressIces><SuppressSpecificWarnings>1111</SuppressSpecificWarnings><TreatSpecificWarningsAsErrors>2222</TreatSpecificWarningsAsErrors><WixVariables>Variable1=value1;Variable2=value2</WixVariables></PropertyGroup>
ThefollowingtabledescribesthecommonWiXMSBuildparametersthatareapplicabletotheLighttask.
Parameter DescriptionBaseInputPaths Optionalstring
parameter.
Specifiesabasepaththatshouldbeusedtolocateallfiles.Thisisequivalenttothe-b<path>switch.
BindFiles Optionalbooleanparameter.
Specifiesthatthetoolshouldbindfilesintoa.wixoutfile.ThisisonlyvalidwhentheOutputAsXmlparameterisalsoprovided.Thisis
equivalenttothe-bfswitch.
Pedantic Optionalbooleanparameter.
Specifiesthatthetoolshoulddisplaypedanticmessages.Thisisequivalenttothe-pedanticswitch.
SuppressAllWarnings Optionalbooleanparameter.
Specifiesthatallwarningsshouldbesuppressed.Thisisequivalenttothe-swswitch.
SuppressIntermediateFileVersionMatching Optionalbooleanparameter.
Specifiesthatthetoolshouldsuppressintermediatefileversionmismatchchecking.Thisisequivalenttothe-svswitch.
SuppressSchemaValidation Optionalbooleanparameter.
Specifiesthatschemavalidationofdocumentsshouldbesuppressed.Thisisequivalenttothe-ssswitch.
SuppressSpecificWarnings Optionalstringparameter.
Specifiesthatcertainwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switch.
TreatSpecificWarningsAsErrors Optionalstringparameter.
Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switch.
TreatWarningsAsErrors Optionalbooleanparameter.
Specifiesthatallwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitch.
VerboseOutput Optionalbooleanparameter.
Specifiesthatthetoolshouldprovideverboseoutput.Thisisequivalenttothe-vswitch.
ThefollowingtabledescribestheparametersthatarespecifictotheLighttask.
Parameter DescriptionAllowIdenticalRows Optionalboolean
parameter.
Specifiesthatthelinker
shouldallowidenticalrows.Identicalrowswillbetreatedaswarnings.Thisisequivalenttothe-aiswitchinlight.exe.
AllowUnresolvedReferences Optionalbooleanparameter.
Specifiesthatthelinkershouldallowunresolvedreferences.Thiswillnotcreatevalidoutput.Thisisequivalenttothe-auswitchinlight.exe.
AdditionalCub Optionalstringparameter.
Specifiesanadditional.cubfilethatthelinkershouldusewhenrunningICEvalidation.Thisisequivalenttothe-cub<file.cub>switchinlight.exe.
BackwardsCompatibleGuidGeneration Optionalbooleanparameter.
SpecifiesthatthelinkershouldusethebackwardcompatibleGUIDgenerationalgorithm.Thisisequivalenttothe-bcggswitchinlight.exe.
CabinetCachePath Optionalstringparameter.
Specifiesapaththatthelinkershouldusetocache
builtcabinetfiles.Thisisequivalenttothe-cc<path>switchinlight.exe.
CabinetCreationThreadCount Optionalintegerparameter.
Specifiesthatnumberofthreadsthatthelinkershouldusewhenbuildingcabinetfiles.Thisisequivalenttothe-ct<N>switchinlight.exe.
Cultures Optionalstringparameter.
Specifiesasemicolonorcommadelimitedlistoflocalizedstringculturestoloadfrom.wxlfilesandlibraries.Precedenceofculturesisfromlefttoright.Thisisequivalenttothe-cultures:<cultures>switchinlight.exe.
DefaultCompressionLevel Optionalstringparameter.
Specifiesthecompressionlevelthatthelinkershouldusewhenbuildingcabinetfiles.Validvaluesarelow,medium,high,noneandmszip.Thisisequivalenttothe-dcl:<level>switchinlight.exe.
DropUnrealTables Optionalbooleanparameter.
Specifiesthatthelinkershoulddropunrealtablesfromtheoutputimage.Thisisequivalenttothe-dutswitchinlight.exe.
ExactAssemblyVersions Optionalbooleanparameter.
Specifiesthatthelinkershoulduseexactassemblyversions.Thisisequivalenttothe-eavswitchinlight.exe.
Ices Optionalstringparameter.
Specifiesthatthelinkershouldrunspecificinternalconsistencyevaluators(ICEs).Thisisequivalenttothe-ice:<ICE>switchinlight.exe.
LeaveTemporaryFiles Optionalbooleanparameter.
Specifiesthatthelinkershouldnotdeletetemporaryfiles.Thisisequivalenttothe-notidyswitchinlight.exe.
LinkerAdditionalOptions Optionalstringparameter.
Specifiesadditionalcommandlineparameterstoappendwhencallinglight.exe.
LinkerBaseInputPaths Optionalstringparameter.
Specifiesabasepaththatthelinkershouldusetolocateallfiles.Thisisequivalenttothe-b<path>switchinlight.exe.
LinkerBindFiles Optionalbooleanparameter.
Specifiesthatthelinkershouldbindfilesintoa.wixoutfile.ThisisonlyvalidwhentheOutputAsXmlparameterisalsoprovided.Thisisequivalenttothe-bfswitchinlight.exe.
LinkerPedantic Optionalbooleanparameter.
Specifiesthatthelinkershoulddisplaypedanticmessages.Thisisequivalenttothe-pedanticswitchinlight.exe.
LinkerSuppressAllWarnings Optionalbooleanparameter.
Specifiesthatalllinkerwarningsshouldbesuppressed.Thisisequivalenttothe-swswitchinlight.exe.
LinkerSuppressIntermediateFileVersionMatching Optionalboolean
parameter.
Specifiesthatthelinkershouldsuppressintermediatefileversionmismatchchecking.Thisisequivalenttothe-svswitchinlight.exe.
LinkerSuppressSchemaValidation Optionalbooleanparameter.
Specifiesthatthelinkershouldsuppressschemavalidationofdocuments.Thisisequivalenttothe-ssswitchinlight.exe.
LinkerSuppressSpecificWarnings Optionalstringparameter.
Specifiesthatcertainlinkerwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switchinlight.exe.
LinkerTreatSpecificWarningsAsErrors Optionalstringparameter.
Specifiesthatcertainlinkerwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switchinlight.exe.
LinkerTreatWarningsAsErrors Optionalbooleanparameter.
Specifiesthatalllinkerwarningsshouldbetreatedaserrors.Thisis
equivalenttothe-wxswitchinlight.exe.
LinkerVerboseOutput Optionalbooleanparameter.
Specifiesthatthelinkershouldprovideverboseoutput.Thisisequivalenttothe-vswitchinlight.exe.
OutputAsXml Optionalbooleanparameter.
Specifiesthatthelinkershouldoutputa.wixoutfileinsteadofa.msifile.Thisisequivalenttothe-xoswitchinlight.exe.
PdbOutputFile Optionalstringparameter.
Specifiesthatthelinkershouldcreatetheoutput.wixpdbfilewiththeprovidedname.Thisisequivalenttothe-pdbout<output.wixpdb>switchinlight.exe.
ReuseCabinetCache Optionalbooleanparameter.
Specifiesthatthelinkershouldreusecabinetfilesfromthecabinetcache.Thisisequivalenttothe-reusecabswitchinlight.exe.
SetMsiAssemblyNameFileVersion Optionalbooleanparameter.
SpecifiesthatthelinkershouldaddafileVersionentrytotheMsiAssemblyNametableforeachassembly.Thisisequivalenttothe-fvswitchinlight.exe.
SuppressAclReset Optionalbooleanparameter.
SpecifiesthatthelinkershouldsuppressresettingACLs.Thisisusefulwhenlayingoutanimagetoanetworkshare.Thisisequivalenttothe-saclswitchinlight.exe.
SuppressAssemblies Optionalbooleanparameter.
Specifiesthatthelinkershouldnotgetassemblynameinformationforassemblies.Thisisequivalenttothe-saswitchinlight.exe.
SuppressDefaultAdminSequenceActions Optionalbooleanparameter.
Specifiesthatthelinkershouldsuppressdefaultadminsequenceactions.Thisisequivalenttothe-sadminswitchinlight.exe.
SuppressDefaultAdvSequenceActions Optionalboolean
parameter.
Specifiesthatthelinkershouldsuppressdefaultadvertisedsequenceactions.Thisisequivalenttothe-sadvswitchinlight.exe.
SuppressDefaultUISequenceActions Optionalbooleanparameter.
SpecifiesthatthelinkershouldsuppressdefaultUIsequenceactions.Thisisequivalenttothe-uiswitchinlight.exe.
SuppressFileHashAndInfo Optionalbooleanparameter.
Specifiesthatthelinkershouldsuppressgatheringfileinformation(hash,version,language,etc).Thisisequivalenttothe-shswitchinlight.exe.
SuppressFiles Optionalbooleanparameter.
Specifiesthatthelinkershouldsuppressgatheringallfiledata.ThishasthesameeffectassettingtheSuppressAssembliesadnSuppressFileHashAndInfoparameters.Thisisequivalenttothe-sfswitchinlight.exe.
SuppressIces Optionalstringparameter.
SpecifiesthatthelinkershouldsuppressrunningspecificICEs.Thisisequivalenttothe-sice:<ICE>switchinlight.exe.
SuppressLayout Optionalbooleanparameter.
Specifiesthatthelinkershouldsuppresslayoutcreation.Thisisequivalenttothe-slswitchinlight.exe.
SuppressMsiAssemblyTableProcessing Optionalbooleanparameter.
SpecifiesthatthelinkershouldsuppressprocessingthedataintheMsiAssemblytable.Thisisequivalenttothe-smaswitchinlight.exe.
SuppressPdbOutput Optionalbooleanparameter.
Specifiesthatthelinkershouldsuppressoutputting.wixpdbfiles.Thisisequivalenttothe-spdbswitchinlight.exe.
SuppressValidation Optionalbooleanparameter.
Specifiesthatthelinkershouldsuppress.msiand
.msmvalidation.Thisisequivalenttothe-svalswitchinlight.exe.
SuppressTagSectionIdAttributeOnTuples Optionalbooleanparameter.
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 DescriptionBindFiles Optionalboolean
parameter.
Specifiesthatthetoolshouldbindfilesintoa.wixoutfile.ThisisonlyvalidwhentheOutputAsXmlparameterisalsoprovided.Thisisequivalenttothe-bfswitch.
Pedantic Optionalbooleanparameter.
Specifiesthatthetoolshoulddisplaypedanticmessages.Thisisequivalenttothe-
pedanticswitch.SuppressAllWarnings Optionalboolean
parameter.
Specifiesthatallwarningsshouldbesuppressed.Thisisequivalenttothe-swswitch.
SuppressIntermediateFileVersionMatching Optionalbooleanparameter.
Specifiesthatthetoolshouldsuppressintermediatefileversionmismatchchecking.Thisisequivalenttothe-svswitch.
SuppressSchemaValidation Optionalbooleanparameter.
Specifiesthatschemavalidationofdocumentsshouldbesuppressed.Thisisequivalenttothe-ssswitch.
SuppressSpecificWarnings Optionalstringparameter.
Specifiesthatcertainwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switch.
TreatSpecificWarningsAsErrors Optionalstringparameter.
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.Thisisequivalenttothe-swswitchinlit.exe.
LibSuppressIntermediateFileVersionMatching Optionalbooleanparameter.
Specifiesthatthelibrarycreationtoolshouldsuppressintermediatefileversionmismatchchecking.Thisisequivalenttothe-svswitchinlit.exe.
LibSuppressSchemaValidation Optionalboolean
parameter.
Specifiesthatthelibrarycreationtoolshouldsuppressschemavalidationofdocuments.Thisisequivalenttothe-ssswitchinlit.exe.
LibSuppressSpecificWarnings Optionalstringparameter.
Specifiesthatcertainlibrarycreationtoolwarningsshouldbesuppressed.Thisisequivalenttothe-sw[N]switchinlit.exe.
LibTreatSpecificWarningsAsErrors Optionalstringparameter.
Specifiesthatcertainlibrarycreationtoolwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wx[N]switchinlit.exe.
LibTreatWarningsAsErrors Optionalbooleanparameter.
Specifiesthatalllibrarycreationtoolwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitchinlit.exe.
LibVerboseOutput Optionalboolean
parameter.
Specifiesthatthelibrarycreationtoolshouldprovideverboseoutput.Thisisequivalenttothe-vswitchinlit.exe.
LinkerBaseInputPaths Optionalstringparameter.
Specifiesabasepaththatthelibrarycreationtoolshouldusetolocateallfiles.Thisisequivalenttothe-b<path>switchinlit.exe.
WiXMSBuildTargetReferenceThissectionexplainsMSBuildtargetsthatareincludedwiththeWiXtoolset.
HarvestDirectoryTargetHarvestFileTargetHarvestProjectsTarget
HarvestDirectoryTargetTheHarvestDirectorytargetpassesHarvestDirectoryitemstotheHeatDirectorytasktogenerateauthoringfromafile.Authoringisgeneratedfortypelibrariesandself-registrationfromDllRegisterServerforanyfilesfoundindirectories.Thistargetisprocessedbeforecompilation.GeneratedauthoringisautomaticallyaddedtotheCompileitemgrouptobecompiledbytheCandletask.
<ItemGroup><HarvestDirectoryInclude="..\TestProject\Data"><DirectoryRefId>DataDir</DirectoryRefId></HarvestDirectory></ItemGroup>
ThefollowingtablesdescribethecommonWiXMSBuildpropertiesanditemsthatareapplicabletotheHarvestDirectorytarget.
ItemsThefollowingitemsanditemmetadataareusedbytheHarvestDirectorytarget.
ItemorMetadata Description@(HarvestDirectory) Requireditemgroup.
Thelistofdirectoriestoharvest.
%(HarvestDirectory.ComponentGroupName)
Optionalstringmetadata.
ThenameoftheComponentGrouptocreateforallthegeneratedauthoring.
%(HarvestDirectory.DirectoryRefId) Optionalstringmetadata.
TheIDofthedirectorytoreferenceinsteadofTARGETDIR.
%(HarvestDirectory.KeepEmptyDirectories)
Optionalbooleanmetadata.
WhethertocreateDirectoryentriesforemptydirectories.Thedefaultisfalse.
%(HarvestDirectory.PreprocessorVariable) Optionalstringmetadata.
SubstituteSourceDirforanothervariablename(ex:var.Dir).
%(HarvestDirectory.SuppressCom) Optionalbooleanmetadata.
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.
Thecomponentgroupnamethatwillcontainallgeneratedauthoring.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestDirectoryDirectoryRefId) Optionalstringproperty.
TheidentifieroftheDirectoryelementthatwillcontainallgeneratedauthoring.
ThisglobalpropertyisonlyusablewithMSBuild4.0orVisualStudio2010,andnewer.
$(HarvestDirectoryGenerateGuidsNow) Optionalboolean
WhethertogenerateauthoringthatgeneratesdurableGUIDswhenharvesting.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
WhethertosuppressgenerationofCOMregistryelementswhenharvestingfilesindirectories.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.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.
UsingWiXWithNAntToincludetheNAntbuildtasksinyouNAntprojectincludethefollowingcode:
<!--WiX3folder--><propertyname="wix.dir"value="${path::combine(environment::get-variable('WIX'),'bin')}"readonly="true<!--LoadtheWiX3tasks--><loadtasksassembly="${wix.dir}\Microsoft.Tools.WindowsInstallerXml.NAntTasks.dll"/>
Formoreinformationseethefollowingtopics:
CandletaskLighttaskLitTask
WiXNAntTaskReferenceThissectionexplainsMSBuildtasksthatareincludedwiththeWiXtoolset.
CandleTaskLightTaskLitTask
CandleTaskTheCandletaskwrapscandle.exe,theWiXcompiler.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.ThefollowingisasampleshowsatheNAntcodeusedtoruntheCandletask:
<candleexedir="${wix.dir}"out="${release.dir}\obj\\"rebuild="true"extensions="WixUIExtension;WixUtilExtension"warningsaserrors="true"><defines><definename="ProjectDir"value="${release.dir}"/><definename="Configuration"value="Release"/><definename="Version"value="${buildnumber.version}"/></defines><sourcesbasedir="${releasemsi.dir}"><includename="Product.wxs"/><includename="Files.wxs"/></sources></candle>
ThefollowingtabledescribesthecommonWiXNAntparametersthatareapplicabletotheCandletask.
Parameter Descriptionexedir Optionalstringparameter.
Setsthedirectorytothetoolexecutable.Defaultstothepathspecifiedbytheregistrykey"HKLM\SOFTWARE\Microsoft\WindowsInstallerXML\3.0\InstallRoot"whichissetbytheWiXinstallation.Ifnopathisfoundorspecifiedthetaskassumestheexecutableisonthepath.
out Requiredstringparameter.
Setsthefileordirectorytowritetheoutputto.Thisis
equivalenttothe-outswitch.extensions Optionalstringparameter.
Semi-colonseparatedlistofWiXextensionstoload.Thisisequivalenttothe-extswitch.
rebuild Optionalbooleanparameter.
InstructsNAnttorecompiletheoutputfileregardlessofthefiletimestamps..
sources RequiredNAntfileset.
Thesetofsourcefilesforcompilation.warningsaserrors Optionalbooleanparameter.
Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitch.
verbose Optionalbooleanparameter.
Specifiesthatthetoolshouldprovideverboseoutput.Thisisequivalenttothe-vswitch.
ThefollowingtabledescribestheparametersthatarespecifictotheCandletask.
Parameter Descriptiondefines OptionalNAntfileset.
Thisisequivalenttothe-d<name>[=<value>]switchincandle.exe.
includedirs OptionalNAntfileset.
Specifiesdirectoriestoaddtothecompilerincludesearchpath.Thisisequivalenttothe-I<dir>switchincandle.exe.
AdditionaloptionscanbeaddedbyusingthestandardNAnt<arg>elements,e.g.:
<argline="-pedantic"/>
LightTaskTheLighttaskwrapslight.exe,theWiXlinker.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.ThefollowingisasampleshowsatheNAntcodeusedtoruntheLighttask:
<lightexedir="${wix.dir}"out="${output.dir}\Setup.msi"warningsaserrors="true"suppressices="ICE57"cultures="en-us"extensions="WixUIExtension"rebuild="true"suppresspdb="true"><!--Specifyadditionaloptions--><argline="-fv"/><sourcesbasedir="${release.dir}\Setup\obj"><includename="*.wixobj"/></sources></light>
ThefollowingtabledescribesthecommonWiXNAntparametersthatareapplicabletotheLighttask.
Parameter Descriptionexedir Optionalstringparameter.
Setsthedirectorytothetoolexecutable.Defaultstothepathspecifiedbytheregistrykey"HKLM\SOFTWARE\Microsoft\WindowsInstallerXML\3.0\InstallRoot"whichissetbytheWiXinstallation.Ifnopathisfoundorspecifiedthetaskassumestheexecutableisonthepath.
out Requiredstringparameter.
Setsthefileordirectorytowritetheoutputto.Thisis
equivalenttothe-outswitch.extensions Optionalstringparameter.
Semi-colonseparatedlistofWiXextensionstoload.Thisisequivalenttothe-extswitch.
rebuild Optionalbooleanparameter.
InstructsNAnttorecompiletheoutputfileregardlessofthefiletimestamps..
sources RequiredNAntfileset.
Thesetofsourcefilesforcompilation.Thisisequivalenttothe-xxswitch.
warningsaserrors Optionalbooleanparameter.
Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitch.
verbose Optionalbooleanparameter.
Specifiesthatthetoolshouldprovideverboseoutput.Thisisequivalenttothe-vswitch.
ThefollowingtabledescribestheparametersthatarespecifictotheLighttask.
Parameter Descriptioncultures Optionalstringparameter.
Specifiesasemicolon-delimitedlistoflocalizedstringculturesthatthelinkershouldloadfromlibraries.Thisisequivalenttothe-culturesswitchinlight.exe.
localizations OptionalNAntfileset.
Thesetoflocalizationfiles(.wxl)toinclude.Thisisequivalenttothe-locswitchinlight.exe.
suppressices Optionalstringparameter.
Specifiesasemicolon-delimitedlistofICEvalidationsthatthelinkershouldsuppressrunning.Thisisequivalenttothe-sice:<ICE>switchinlight.exe.
suppresspdb Optionalbooleanparameter.
Specifiesthatthelinkershouldsuppressoutputting.wixpdbfiles.Thisisequivalenttothe-spdbswitchinlight.exe.
reusecab Optionalbooleanparameter.
Specifiesthatthelinkershouldreusecabinetfilesfromthecabinetcache.Thisisequivalenttothe-reusecabswitchinlight.exe.
cabcache Optionalstringparameter.
Specifiesapaththatthelinkershouldusetocachebuiltcabinetfiles.Thisisequivalenttothe-ccswitchinlight.exe.
fileversions Optionalbooleanparameter.
Specifiesthatthelinkershouldadda'fileVersion'entrytotheMsiAssemblyNametable.Thisisequivalenttothe-fvswitchinlight.exe.
AdditionaloptionscanbeaddedbyusingthestandardNAnt<arg>elements,e.g.:
<argline="-sacl"/>
LitTaskTheLighttaskwrapslit.exe,theWiXlibrarytool.Itsupportsavarietyofsettingsthataredescribedinmoredetailbelow.ThefollowingisasampleshowsatheNAntcodeusedtoruntheLittask:
<litexedir="${wix.dir}"out="${output.dir}\Setup.wixlib"bindfiles="true"rebuild="true"><sourcesbasedir="${release.dir}\Setup\obj"><includename="*.wixobj"/></sources></lit>
ThefollowingtabledescribesthecommonWiXNAntparametersthatareapplicabletotheLittask.
Parameter Descriptionexedir Optionalstringparameter.
Setsthedirectorytothetoolexecutable.Defaultstothepathspecifiedbytheregistrykey"HKLM\SOFTWARE\Microsoft\WindowsInstallerXML\3.0\InstallRoot"whichissetbytheWiXinstallation.Ifnopathisfoundorspecifiedthetaskassumestheexecutableisonthepath.
out Requiredstringparameter.
Setsthefileordirectorytowritetheoutputto.Thisisequivalenttothe-outswitch.
extensions Optionalstringparameter.
Semi-colonseparatedlistofWiXextensionstoload.Thisisequivalenttothe-extswitch.
rebuild Optionalbooleanparameter.
InstructsNAnttorecompiletheoutputfileregardlessofthefiletimestamps..
sources RequiredNAntfileset.
Thesetofsourcefilesforcompilation.Thisisequivalenttothe-xxswitch.
warningsaserrors Optionalbooleanparameter.
Specifiesthatcertainwarningsshouldbetreatedaserrors.Thisisequivalenttothe-wxswitch.
verbose Optionalbooleanparameter.
Specifiesthatthetoolshouldprovideverboseoutput.Thisisequivalenttothe-vswitch.
ThefollowingtabledescribestheparametersthatarespecifictotheLittask.
Parameter Descriptionbindfiles Optionalbooleanparameter.
Thisisequivalenttothe-bfswitchinlit.exe.localizations OptionalNAntfileset.
Thesetoflocalizationfiles(.wxl)toinclude.Thisisequivalenttothe-locswitchinlit.exe.
AdditionaloptionscanbeaddedbyusingthestandardNAnt<arg>elements,e.g.:
<argline="-ss"/>
HowToGuidesThissectionincludesHowTodocumentationforperformingcommonWiXtasks.
Files,ShortcutsandRegistryAddafiletoyourinstallerChecktheversionnumberofafileduringinstallationWritearegistryentryduringinstallationReadaregistryentryduringinstallationCreateashortcutontheStartMenuCreateashortcuttoawebpageCreateanuninstallshortcutNGenmanagedassembliesduringinstallationReferenceanotherDirectorySearchelementGettheparentdirectoryofafilesearch
RedistributablesandInstallChecksCheckfor.NETFrameworkversionsInstallthe.NETFrameworkusingabootstrapperInstallDirectX9.0withyourinstallerInstalltheVisualC++RedistributablewithyourinstallerBlockinstallationbasedonOSversion
UserInterfaceandLocalizationBuildalocalizedversionofyourinstallerMakeyourinstallerlocalizableRuntheinstalledapplicationaftersetupSetyourinstaller'siconinAdd/RemovePrograms
ProductUpdatesImplementamajorupgradeinyourinstaller
OthersGetalogofyourinstallationfordebuggingLookinsideyourMSIwithOrcaGenerateaGUIDUseWiXExtensionsOptimizebuildingcabinetfilesSpecifysourcefilelocations
HowTo:Files,ShortcutsandRegistryThissectionincludeshowtoguidesthatdemonstratehowtoworkwithfiles,shortcuts,andtheWindowsregistry.
HowTo:AddafiletoyourinstallerHowTo:ChecktheversionnumberofafileduringinstallationHowTo:WritearegistryentryduringinstallationHowTo:ReadaregistryentryduringinstallationHowTo:CreateashortcutontheStartMenuHowTo:CreateashortcuttoawebpageHowTo:CreateanuninstallshortcutHowTo:NGenmanagedassembliesduringinstallationHowTo:ReferenceanotherDirectorySearchelement
HowTo:AddaFileToYourInstallerInstallingfilesisthemostfundamentalaspectofanyinstaller,andisusuallywhatleadspeopletobuildaninstallerinthefirstplace.LearninghowtoplaceafileondiskusingWindowsInstallerbestpracticesnotonlyensuresmaintainabilitygoingforward,butalsoenablesyoutobuildpatcheslaterifnecessary.
Step1:DefinethedirectorystructureInstallersfrequentlyhavemanyfilestoinstallintoafewlocationsondisk.ToimprovethereadabilityoftheWiXfile,itisagoodpracticetodefineyourinstallationdirectoriesfirstbeforelistingthefilesyou'llinstall.Directoriesaredefinedusingthe<Directory>elementanddescribethehierarchyoffoldersyouwouldliketoseeonthetargetmachine.Thefollowingsampledefinesadirectoryfortheinstallationofthemainapplicationexecutable.
<DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"><DirectoryId="APPLICATIONROOTDIRECTORY"Name="MyApplicationName"/></Directory></Directory>
TheelementwiththeidTARGETDIRisrequiredbytheWindowsInstallerandistherootofalldirectorystructuresforyourinstallation.EveryWiXprojectwillhavethisdirectoryelement.Thesecondelement,withtheidProgramFilesFolder,usesapre-definedWindowsInstallerpropertytoreferencetheProgramFilesfolderontheuser'smachine.Inmostcasesthiswillresolvetoc:\ProgramFiles\.Thethirddirectoryelementcreatesyourapplication'sfolderunderProgramFiles,anditisgiventheidAPPLICATIONROOTDIRECTORYforlateruseintheWiXproject.TheidisinallcapitalletterstomakeitapublicpropertythatcanbesetfromUIorviathecommandline.
Theresultofthesetagsisac:\ProgramFiles\MyApplicationNamefolderonthetargetmachine.
Step2:AddfilestoyourinstallerpackageAfileisaddedtotheinstallerusingtwoelements:a<Component>elementtospecifyanatomicunitofinstallationanda<File>elementtospecifythefilethatshouldbeinstalled.
Thecomponentelementdescribesasetofresources(usuallyfiles,registryentries,andshortcuts)thatneedtobeinstalledasasingleunit.ThisisseparatefromwhetherthesetofitemsconsistofalogicalfeaturetheusercanselecttoinstallwhichisdiscussedinStep3.Whileitmaynotseemlikeabigdealwhenyouarefirstauthoringyourinstaller,componentsplayacriticalrolewhenyoudecidetobuildpatchesatalaterdate.
Ingeneral,youshouldrestrictyourselftoasinglefilepercomponent.TheWindowsInstallerisdesignedtosupportthousandsofcomponentsinasingleinstaller,sounlessyouhaveaverygoodreason,keeptoonefilepercomponent.EverycomponentmusthaveitsownuniqueGUID.Failuretofollowthesetwobasicrulescanleadtomanyproblemsdowntheroadwhenitcomestoservicing.
ThefollowingsampleusesthedirectorystructuredefinedinStep1toinstalltwofiles:anapplicationexecutableandadocumentationfile.
<DirectoryRefId="APPLICATIONROOTDIRECTORY"><ComponentId="myapplication.exe"Guid="PUT-GUID-HERE"><FileId="myapplication.exe"Source="MySourceFiles\MyApplication.exe"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.WhenyouhaveonefilepercomponentyoushouldalwayssettheKeyPathattributetoyes.TheChecksumattributeshouldbesettoyesforexecutablefilesthathaveachecksumvalueinthefileheader(thisisgenerallytrueforallexecutables),andisusedbytheWindowsInstallertoverifythevalidityofthefileonre-install.
Step3:TellWindowsInstallertoinstallthefilesAfterdefiningthedirectorystructureandlistingthefilestopackageintotheinstaller,thelaststepistotellWindowsInstallertoactuallyinstallthefiles.The<Feature>elementisusedtodothis,andiswhereyoubreakupyourinstallerintologicalpiecesthattheusercaninstallindependently.ThefollowingexamplecreatesasinglefeaturethatinstallstheapplicationexecutableanddocumentationfromStep2.
<FeatureId="MainApplication"Title="MainApplication"Level="1"><ComponentRefId="myapplication.exe"/><ComponentRefId="documentation.html"/></Feature>
TheFeatureisgivenaId.IfyouareusinganinstallerUIsequencethatincludesfeatureselection,theTitleattributecontainsthetextdisplayedintheUIforthefeature.TheLevelattributeshouldbesetto1toenabletheinstallationofthefeaturebydefault.
The<ComponentRef>elementisusedtoreferencethecomponentscreatedinStep2viatheIdattribute.
TheCompleteSampleThefollowingisacompletesamplethatusestheaboveconcepts.ThisexamplecanbeinsertedintoaWiXprojectandcompiled,orcompiledandlinkedfromthecommandline,togenerateaninstaller.
<?xmlversion="1.0"encoding="UTF-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><ProductId="*"UpgradeCode="PUT-GUID-HERE"Version="1.0.0.0"Language="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: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:ReadaRegistryEntryDuringInstallationInstallersoftenneedtolookupthevalueofaregistryentryduringtheinstallationprocess.Theresultingregistryvalueisoftenusedinaconditionalstatementlaterininstall,suchastoinstallaspecificcomponentifaregistryentryisnotfound.Thishowtodemonstratesreadinganintegervaluefromtheregistryandverifyingthatitexistsinalaunchcondition.
Step1:ReadtheregistryentryintoapropertyRegistryentriesarereadusingthe<RegistrySearch>element.Thefollowingsnippetlooksforthethepresenceofthekeythatidentifiestheinstallationof.NETFramework2.0onthetargetmachine*.
<PropertyId="NETFRAMEWORK20"><RegistrySearchId="NetFramework20"Root="HKLM"Key="Software\Microsoft\NETFrameworkSetup\NDP\v2.0.50727"Name="Install"Type="raw"/></Property>
TheRegistrySearchelementspecifiesauniqueid,therootintheregistrytosearch,andthekeytolookunder.Thenameattributespecifiesthespecificvaluetoquery.Thetypeattributespecifieshowthevalueshouldbetreated.Rawindicatesthatthevalueshouldbeprefixedaccordingtothedatatypeofthevalue.Inthiscase,sinceInstallisaDWORD,theresultingvaluewillbeprependedwitha#.
TheabovesamplewillsettheNETFRAMEWORK20propertyto"#1"iftheregistrykeywasfound,andtonothingifitwasn't.
Step2:UsethepropertyinaconditionAfterthepropertyissetyoucanuseitinaconditionanywhereinyourWiXproject.Thefollowingsnippetdemonstrateshowtouseittoblockinstallationif.NETFramework2.0isnotinstalled.
<ConditionMessage="Thisapplicationrequires.NETFramework2.0.Pleaseinstallthe.NETFrameworkthenrunthisinstalleragain."<![CDATA[InstalledORNETFRAMEWORK20]]></Condition>
InstalledisaWindowsInstallerpropertythatensuresthecheckisonlydonewhentheuserisinstallingtheapplication,ratherthanonarepairorremove.TheNETFRAMEWORK20partoftheconditionwillpassifthepropertywasset.Ifitisnotsettheinstallerwilldisplaytheerrormessagethenaborttheinstallationprocess.
*Thisregistryentryisusedforsamplepurposesonly.Ifyouwanttodetecttheinstalledversionof.NETFrameworkyoucanusethebuilt-inWiXsupport.FormoreinformationseeHowTo:Checkfor.NETFrameworkVersions.
HowTo:CreateaShortcutontheStartMenuWheninstallingapplicationsitisacommonrequirementtoplaceashortcutontheuser'sStartMenutoprovidealaunchingpointfortheprogram.Thishowtowalksthroughhowtocreateashortcutonthestartmenu.ItassumesyouhaveaWiXsourcefilebasedontheconceptsdescribedinHowTo:Addafiletoyourinstaller.
Step1:DefinethedirectorystructureStartMenushortcutsareinstalledinadifferentdirectorythanregularapplicationfiles,somodificationstotheinstaller'sdirectorystructurearerequired.ThefollowingWiXfragmentshouldbeplacedinsidea<Directory>elementwiththeTARGETDIRIDandaddsdirectorystructureinformationfortheStartMenu:
<DirectoryId="ProgramMenuFolder"><DirectoryId="ApplicationProgramsFolder"Name="MyApplicationName"/></Directory>
TheProgramMenuFolderIdisastandardWindowsInstallerpropertythatpointstotheStartMenufolderonthetargetmachine.ThesecondDirectoryelementcreatesasubfolderontheStartMenucalledMyApplicationName,andgivesitanidforuselaterintheWiXproject.
Step2:AddtheshortcuttoyourinstallerpackageAshortcutisaddedtotheinstallerusingthreeelements:a<Component>elementtospecifyanatomicunitofinstallation,a<Shortcut>elementtospecifytheshortcutthatshouldbeinstalled,anda<RemoveFolder>elementtoensurepropercleanupwhenyourapplicationisuninstalled.
ThefollowingsampleusesthedirectorystructuredefinedinStep1tocreatetheStartMenushortcut.
<DirectoryRefId="ApplicationProgramsFolder"><ComponentId="ApplicationShortcut"Guid="PUT-GUID-HERE"><ShortcutId="ApplicationStartMenuShortcut"Name="MyApplicationName"Description="MyApplicationDescription"Target="[APPLICATIONROOTDIRECTORY]MyApplication.exe"WorkingDirectory="APPLICATIONROOTDIRECTORY"/><RemoveFolderId="ApplicationProgramsFolder"On="uninstall"/><RegistryValueRoot="HKCU"Key="Software\Microsoft\MyApplicationName"Name="installed"Type</Component></DirectoryRef>
The<DirectoryRef>elementisusedtorefertothedirectorystructurecreatedinstep1.ByreferencingtheApplicationProgramsFolderdirectorytheshortcutwillbeinstalledintotheuser'sStartMenuinsidetheMyApplicationNamefolder.
UnderneaththeDirectoryRefisasingleComponenttogrouptheelementsusedtoinstalltheShortcut.ThefirstelementisShortcutanditcreatestheactualshortcutintheStartMenu.TheIdattributeisauniqueidfortheshortcut.TheNameattributeisthetextthatwillbedisplayedintheStartMenu.Thedescriptionisanoptionalattributeforanadditionalapplicationdescription.TheTargetattributepointstotheexecutabletolaunchondisk.NoticehowitusestheAPPLICATIONROOTDIRECTORYpropertypreviouslydefinedinthedirectorystructure.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="[APPLICATIONROOTDIRECTORY]MyApplication.exe"WorkingDirectory="APPLICATIONROOTDIRECTORY"/><RemoveFolderId="ApplicationProgramsFolder"On="uninstall"/><RegistryValueRoot="HKCU"Key="Software\Microsoft\MyApplicationName"Name="installed</Component></DirectoryRef>
<FeatureId="MainApplication"Title="MainApplication"Level="1"><ComponentRefId="myapplication.exe"/><ComponentRefId="documentation.html"/><!--Step3:TellWiXtoinstalltheshortcut-->
<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="[APPLICATIONROOTDIRECTORY]MyApplication.exe"WorkingDirectory="APPLICATIONROOTDIRECTORY"/><util:InternetShortcutId="OnlineDocumentationShortcut"Name="MyOnlineDocumentation"Target="http://www.wixwiki.com/"/><RemoveFolderId="ApplicationProgramsFolder"On="uninstall"/><RegistryValueRoot="HKCU"Key="Software\Microsoft\MyApplicationName"Name="installed"Type</Component></DirectoryRef>
TheInternetShortcutisgivenauniqueidwiththeIdattribute.inthiscasetheapplication'sStartMenufolder.TheNameattributespecifiesthenameoftheshortcutontheStartMenu.TheTargetattributespecifiesthedestinationaddressfortheshortcut.The<DirectoryRef>elementisusedtorefertothedirectorystructurealreadydefinedbytheprojectfile.ByreferencingtheApplicationProgramsFolderdirectorytheshortcutwillbeinstalledintotheuser'sStartMenuinsidetheMyApplicationNamefolder.
HowTo:CreateanUninstallShortcutWheninstallinganapplicationitisacommonrequirementtoplaceashortcutontheuser'sStartMenutoprovideamethodofuninstallingtheapplication.ThishowtodemonstratesthestepsrequiredtocreateanuninstallshortcutonthestartmenuthatpassesallICEvalidationchecks.
ThishowtoassumesyouarestartingwiththesampledescribedtheHowTo:CreateaShortcutontheStartMenutopic.
Step1:AddtheUninstallShortcutThe<Shortcut>elementisusedtoaddtheuninstallshortcuttothestartmenu,andtheshortcutpointstomsiexec.exe(theWindowsInstallerexecutableusedtoactuallyinvoketheuninstallprocess).AnywherewithintheexistingApplicationShortcutcomponentaddthefollowing:
<ShortcutId="UninstallProduct"Name="UninstallMyApplication"Target="[System64Folder]msiexec.exe"Arguments="/x[ProductCode]"Description="UninstallsMyApplication"/>
TheTargetattributepointstothelocationofmsiexec.exe.TheWindowsInstallerSystem64FolderpropertywillresolvetotheSystem32directoryon32-bitmachinesandtheSysWow64directoryon64-bitmachines.Usingthispropertyensuresmsiexec.execanalwaysbelocatedregardlessoftheoperatingsystemversiononthetargetmachine.TheArgumentsattributeisusedtoletmsiexec.exeknowwhichproducttouninstallbypassingintheProductCodefortheinstallpackage.
ToavoidICEvalidationerrorsatbuilditisimportanttocoupletheShortcutelementwitharegistryentryandaRemoteFolderelement.BothofthesearedescribedinmoredetailintheHowTo:CreateaShortcutontheStartMenutopic,andareshowninthecompletesamplebelow.
TheCompleteSampleThefollowingisacompletesamplethatusestheaboveconcepts.ThisexamplecanbeinsertedintoaWiXprojectandcompiled,orcompiledandlinkedfromthecommandline,togenerateaninstaller.
<?xmlversion="1.0"encoding="UTF-8"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><ProductId="*"UpgradeCode="PUT-GUID-HERE"Version="1.0.0.0"Language="1033"Name="MyApplicationName"<PackageInstallerVersion="300"Compressed="yes"/><MediaId="1"Cabinet="myapplication.cab"EmbedCab="yes"/>
<DirectoryId="TARGETDIR"Name="SourceDir"><DirectoryId="ProgramFilesFolder"><DirectoryId="APPLICATIONROOTDIRECTORY"Name="MyApplicationName"/></Directory><DirectoryId="ProgramMenuFolder"><DirectoryId="ApplicationProgramsFolder"Name="MyApplicationName"/></Directory></Directory>
<DirectoryRefId="APPLICATIONROOTDIRECTORY"><ComponentId="myapplication.exe"Guid="PUT-GUID-HERE"><FileId="myapplication.exe"Source="MySourceFiles\MyApplication.exe"KeyPath="yes"Checksum</Component><ComponentId="documentation.html"Guid="PUT-GUID-HERE"><FileId="documentation.html"Source="MySourceFiles\documentation.html"KeyPath="yes"/></Component></DirectoryRef>
<DirectoryRefId="ApplicationProgramsFolder"><ComponentId="ApplicationShortcut"Guid="PUT-GUID-HERE"><ShortcutId="ApplicationStartMenuShortcut"Name="MyApplicationName"Description="MyApplicationDescription"Target="[APPLICATIONROOTDIRECTORY]MyApplication.exe"WorkingDirectory="APPLICATIONROOTDIRECTORY"/><!--Step1:Addtheuninstallshortcuttoyourinstallerpackage--><ShortcutId="UninstallProduct"Name="UninstallMyApplication"Description="UninstallsMyApplication"Target="[System64Folder]msiexec.exe"Arguments="/x[ProductCode]"/><RemoveFolderId="ApplicationProgramsFolder"On="uninstall"/><RegistryValueRoot="HKCU"Key="Software\Microsoft\MyApplicationName"Name="installed</Component></DirectoryRef>
<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:RedistributablesandInstallChecksThissectionincludesguidesforcommonredistributableinstallationsandpre-installationchecks.
HowTo:Checkfor.NETFrameworkversionsHowTo:InstallDirectX9.0withyourinstallerHowTo:Installthe.NETFrameworkusingabootstrapperHowTo:InstalltheVisualC++RedistributablewithyourinstallerHowTo:BlockinstallationbasedonOSversion
HowTo:Checkfor.NETFrameworkVersionsWheninstallingapplicationswrittenusingmanagedcodeitisoftenusefultoverifythattheuser'smachinehasthenecessaryversionofthe.NETFrameworkpriortoinstallation.ThishowtodescribesusingtheWiXsupporttoverify.NETFrameworkversionsatinstalltime.Forinformationonhowtoinstallthe.NETFrameworkduringyourinstallationseeHowTo:Installthe.NETFrameworkusingabootstrapper.
Step1:AddtheWiX.NETextensionslibrarytoyourprojectTheWiXsupportforNGenisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommand-lineyouneedtoaddthefollowingtoyourcandleandlightcommandlines:
-extWiXNetFxExtension
IfyouareusingWiXinVisualStudioyoucanaddtheextensionsusingtheAddReferencedialog:
1. OpenyourWiXprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd
Reference...3. SelecttheWixNetFxExtension.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:ReferencetherequiredpropertiesinyourprojectThe.NETFrameworkextensionsforWiXdefinepropertiesforallcurrentversionsofthe.NETFramework,includingservicepacklevels.Tomakethesepropertiesavailabletoyourinstalleryouneedtoreferencethemusingthe<PropertyRef>element.Foreachpropertyyouwanttouse,addthecorrespondingPropertyReftoyourproject.Forexample,ifyouareinterestedindetecting.NETFramework2.0addthefollowing:
<PropertyRefId="NETFRAMEWORK20"/>
Step4:Usethepre-definedpropertiesinaconditionOncethepropertyisreferencedyoucanuseitinanyWiXconditionstatement.Forexample,thefollowingconditionblocksinstallationif.NETFramework2.0isnotinstalled.
<ConditionMessage="Thisapplicationrequires.NETFramework2.0.Pleaseinstallthe.NETFrameworkthenrunthisinstalleragain."<![CDATA[InstalledORNETFRAMEWORK20]]></Condition>
InstalledisaWindowsInstallerpropertythatensuresthecheckisonlydonewhentheuserisinstallingtheapplication,ratherthanonarepairorremove.TheNETFRAMEWORK20partoftheconditionwillpassif.NETFramework2.0installed.Ifitisnotsettheinstallerwilldisplaytheerrormessagethenaborttheinstallationprocess.
Tocheckagainsttheservicepackleveloftheframeworkusethe*_SP_LEVELproperties.Thefollowingconditionblocksinstallationif.NETFramework3.0SP1isnotpresentonthemachine.
<ConditionMessage="Thisapplicationrequires.NETFramework3.0SP1.Pleaseinstallthe.NETFrameworkthenrunthisinstalleragain."<![CDATA[InstalledOR(NETFRAMEWORK30_SP_LEVELandNOTNETFRAMEWORK30_SP_LEVEL="#0")</Condition>
AswiththepreviousexampleInstalledpreventsthecheckfromrunningwhentheuserisdoingarepairorremove.TheNETFRAMEWORK30_SP_LEVELpropertyissetto"#1"ifServicePack1ispresent.Sincethereisnowaytodoanumericalcomparisonagainstavaluewitha#infrontofit,theconditionfirstcheckstoseeiftheNETFRAMEWORK30_SP_LEVELissetandtheconfirmsthatitissettoanumber.Thiswillcorrectlyindicatewhetheranyservicepackfor.NET3.0isinstalled.
HowTo:Installthe.NETFrameworkUsingaBootstrapperApplicationswrittenusingthe.NETFrameworkoftenneedtoinstalltheframeworkaspartoftheirinstallationprocess.Duetodependenciesinthe.NETFrameworkinstallerthereisnowaytoincludetheframeworkdirectlywithinyourpackage(asyoucanwiththeVisualC++andDirectXruntimes).Insteadyouhavetorelyonabootstrapper:awrapperapplicationthatfirstinstallsthe.NETFrameworkandthenrunsyourapplication'sinstaller.
WiXdoesnotcurrentlyprovideabootstrapper,howeveryoucanusetheoneprovidedbytheClickOncedeploymentfeaturesinVisualStudio.ThisdocumentwalksthroughhowtomodifyaWiXprojecttogenerateaClickOncebootstrapperfor.NETFramework3.5.Similarstepscanbeusedtogenerateabootstrapperforothertechnologies,suchasSQLServerCompactEditionandVisualStudioToolsForOffice.
Step1:Openyour.wixprojfileforeditingToedityour.wixprojfileforeditinginVisualStudio:
1. OpentheprojectinVisualStudio2. InSolutionExplorerrightclickonyourprojectfileandselect
UnloadProject3. InSolutionExplorerrightclickonyourprojectfileandselectEdit
<projectname>
Step2:AdditemsforprerequisitesAnywhereinyourprojectfile,insidethe<Project>element,addthefollowing:
<ItemGroup><BootstrapperFileInclude="Microsoft.Net.Framework.3.5"><ProductName>.NETFramework3.5</ProductName></BootstrapperFile><BootstrapperFileInclude="Microsoft.Windows.Installer.3.1"><ProductName>WindowsInstaller3.1</ProductName></BootstrapperFile></ItemGroup>
Theseitemswillbeusedinstep3totellthebootstrapcreationtaskthelistofpackagestoinclude.Inthiscasethepackagesare.NETFramework3.5andWindowsInstaller3.1(whichisarequiredcomponentfor.NETFrameworkinstallation).
Step3:AddthebootstrapgenerationtaskInyourprojectfileuncommentthe<TargetName="AfterBuild"></Target>elementattheendofthefileandreplaceitwiththefollowing:
<TargetName="AfterBuild"><GenerateBootstrapperApplicationFile="$(TargetFileName)"ApplicationName="MyApplicationName"BootstrapperItems="@(BootstrapperFile)"ComponentsLocation="Relative"CopyComponents="True"OutputPath="$(OutputPath)"Path="C:\ProgramFiles\MicrosoftSDKs\Windows\v6.0A\Bootstrapper\"/></Target>
ThiswillinstructMSBuildtogeneratethebootstrapperafterthebuildofyourinstalleriscomplete.TheApplicationFileattributewillresolvetothelocationofyourapplication'sinstallerafterthebuildiscomplete.TheApplicationNameattributeistheapplicationnamedisplayedtotheuserwhilethebootstrapperisrunning.TheBootstrapperItemsattributeprovidesthelistofpre-requisitestoinclude(fromStep2).TheComponentsLocationattributeissettoRelativetoindicatethepre-requisiteswillbeinstalledfromthesamelocationasyourapplication'sinstaller.TheCopyComponentsattributeissettotruetocopythepre-requisitefilesintotheoutputdirectory.TheOutputPathattributeresolvestotheoutputlocationofyourinstallerondisk.
ThePathattributeindicatesthelocationonyourmachineofthepre-requisitepackages.ThelocationshownaboveisappropriateformachineswithVisualStudio2008installedtothedefaultlocation.FormachineswithVisualStudio2005thedefaultlocationisC:\ProgramFiles\MicrosoftVisualStudio8\SDK\v2.0\BootStrapper\Packages.
Step4:BuildtheprojectDothefollowingtore-opentheprojectforbuilding:
1. Savethechanges2. InSolutionExplorerrightclickonyourprojectfileandselect
ReloadProject3. IntheresultingconfirmationdialogselectYes
Thenbuildyourproject.Afteryourinstallerisbuiltthebootstrapperwillbuildandbeplacedintheoutputdirectory.
InstallingOtherPackagesOtherpackagescanbeinstalledusingthesamemechanismdescribedabove.TheonlyadditionalstepsaretomodifythelistofbootstrapperfilesinStep2.TheeasiestwaytoobtainthenecessaryentriesistousetheBootstrapperManifestGeneratortooltocreateanewMSBuildfilewiththerequiredpackagesselected.Thensavethegeneratedfile,openitinatexteditor,andcopyouttheappropriateentries.TheBootstrapManifestGeneratortoolcanalsobeusedtocreateyourowncustompackagesthataretheninstalledviatheClickOncebootstrapper.
HowTo:InstallDirectX9.0WithYourInstallerApplicationsthatrequirecomponentsfromDirectX9.0canbenefitfromincludingtheDirectX9.0Redistributableinsidetheirinstaller.Thissimplifiestheinstallationprocessforendusersandensurestherequiredcomponentsforyourapplicationarealwaysavailableonthetargetuser'smachine.
DirectX9.0canbere-distributedinseveraldifferentways,eachofwhichisoutlinedinMSDN'sInstallingDirectXwithDirectSetuparticle.Thishowtodescribesusingthedxsetup.exeapplicationtoinstallDirectX9.0onaVistamachineassumingtheapplicationbeinginstalledonlydependsonaspecificDirectXcomponent.
PriortoredistributingtheDirectXbinariesyoushouldreadandunderstandthelicenseagreementfortheredistributablefiles.ThelicenseagreementcanbefoundintheDocumentation\LicenseAgreements\DirectXRedist.txtfileinyourDirectXSDKinstallation.
Step1:AddtheinstallerfilestoyourWiXprojectAddingthefilestotheWiXprojectfollowsthesameprocessasdescribedinHowTo:Addafiletoyourinstaller.Thefollowingexampleillustratesatypicalfragmentthatincludesthenecessaryfiles:
<DirectoryRefId="APPLICATIONROOTDIRECTORY"><DirectoryId="DirectXRedistDirectory"Name="DirectX9.0c"><ComponentId="DirectXRedist"Guid="PUT-GUID-HERE"><FileId="DXSETUPEXE"Source="MySourceFiles\DirectXMinInstall\dxsetup.exe"KeyPath="yes"Checksum="yes"/><FileId="dxupdate.cab"Source="MySourceFiles\DirectXMinInstall\dxupdate.cab"/><FileId="dxdllreg_x86.cab"Source="MySourceFiles\DirectXMinInstall\dxdllreg_x86.cab"/><FileId="dsetup32.dll"Source="MySourceFiles\DirectXMinInstall\dsetup32.dll"/><FileId="dsetup.dll"Source="MySourceFiles\DirectXMinInstall\dsetup.dll"/><FileId="DEC2006_d3dx9_32_x86.cab"Source="MySourceFiles\DirectXMinInstall\DEC2006_d3dx9_32_x86.cab"/></Component></Directory></DirectoryRef>
<FeatureId="DirectXRedist"Title="!(loc.FeatureDirectX)"AllowAdvertise="no"Display="hidden"Level="1"><ComponentRefId="DirectXRedist"/></Feature>
ThefilesincludedaretheminimalsetoffilesrequiredbytheDirectX9.0installprocess,asdescribedintheMSDNdocumentation.Thelastfileinthelist,DEC2006_d3dx9_32_x86.cabcontainsthespecificDirectXcomponentrequiredbytheinstalledapplication.Thesefilesareallincludedinasinglecomponentas,eveninapatchingsituation,allthefilesmustgotogether.AFeatureelementisusedtocreateafeaturespecifictoDirectXinstallation,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: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: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:UpdatesThissectionincludesguidesforbuildingupdatesforyourinstaller.
HowTo:Implementamajorupgradeinyourinstaller
HowTo:ImplementaMajorUpgradeInYourInstallerWhencreatingan.msi-basedinstaller,youarestronglyencouragedtoincludelogicthatsupportsWindowsInstallermajorupgrades.Majorupgradesarethemostcommonformofupdatesfor.msi's,andincludingsupportinyourinitial.msireleasegivesyouflexibilityinthefuture.Withoutincludingsupportformajorupgradesyouriskgreatlycomplicatingyourdistributionstoryifyoueverneedtoreleaseupdateslateron.
Youcanusethefollowingstepstoenablemajorupgradesinyour.msi,buildmultipleversionsofyour.msiandtestmajorupgradescenarios.
Step1:AddupgradeinformationneededtocausenewversionstoupgradeolderversionsInordertoallowmajorupgrades,youmustincludethefollowinginformationinyour.msi:
AddauniqueIDtoidentifythattheproductcanbeupgraded
Toaccomplishthis,youmustincludeanUpgradeCodeattributeinyourProductelement.Thislookslikethefollowing:
<ProductId="*"UpgradeCode="PUT-GUID-HERE"Name="MyApplicationName"Language="1033"Version="1.0.1"Manufacturer="MyManufacturerName"/>
Definetherangeofoldversionsthatshouldbeupgradedbythenew.msi
TheUpgradeVersionelementwilluse3-partversionnumbers.Theminimumversionvalueistypicallysetto1.0.0,andthemaximumversionvalueistypicallysettothe3-partvalueofthecurrent.msi'sversion.Thislookslikethefollowing:
<UpgradeId="PUT-GUID-HERE"><UpgradeVersionMinimum="1.0.0"IncludeMinimum="yes"Maximum="1.0.1"Property="OLDERVERSIONBEINGUPGRADED"/></Upgrade>
TheexactnameofthepropertyspecifiedintheUpgradeVersionelementdoesnotmatter,butitmustbeinallcapitalletters.
Scheduletheremovalofoldversionsofthe.msi
ThereareseveraloptionsforwhereyoucanscheduletheRemoveExistingProductsactiontoremoveoldversionsofthe.msi.Youneedtoreviewtheoptionsandchoosetheonethatmakesthemostsenseforyourscenarios.YoucanfindasummaryoftheoptionsintheRemoveExistingProductsdocumentation.IfyouchoosetoscheduleitafterInstallInitialize,itwilllooklikethefollowing:
<InstallExecuteSequence><RemoveExistingProductsAfter="InstallInitialize"/></InstallExecuteSequence>
IfyoudonotscheduletheRemoveExistingProductsaction,youwillseeanerrorlikethefollowing:
errorLGHT0094:Unresolvedreferencetosymbol'WixAction:InstallExecuteSequence/RemoveExistingProducts'insection'Product:*'.
WindowsInstallerlooksforotherinstalled.msifileswiththesameUpgradeCodevalueduringtheFindRelatedProductsaction.IfyoudonotspecificallyscheduletheFindRelatedProductsactioninyoursetupauthoring,WiXwillautomaticallyscheduleitforyouwhenitcreatesyour.msi.
Step2:Addlogictohandleout-of-orderinstallations(installingversion2thentryingtoinstallversion1)Theinformationprovidedinstep1willallowyour.msitouninstallolderversionsofyour.msiduringtheinstallprocessfornewerversions.Inordertobecomplete,youshouldalsoincludeinformationinyour.msitohandlescenarioswhereauserattemptstoinstallanewerversionofyour.msiandtheninstallanolderversionafterwards(anout-of-orderinstallation).Thisstepisnotstrictlynecessary,butincludingthisinformationinyour.msiallowsyoutoprovideamoreuser-friendlyexperienceinthecaseofanout-of-orderinstallationscenario.
Detectinganout-of-orderinstallationrequiresauthoringanUpgradeVersionelementthatdefinesapropertythatwillbesetifanewerversionofthe.msiisfoundontheuser'ssystem.Thislookslikethefollowing:
<UpgradeId="PUT-GUID-HERE"><UpgradeVersionMinimum="1.0.1"OnlyDetect="yes"Property="NEWERVERSIONDETECTED"/></Upgrade>
Onceyouhavedefinedthedetectionproperty,youneedtodecidehowyouwantyour.msitobehaveinanout-of-orderinstallationscenarioandauthoranappropriatecustomaction.Thereareacoupleofoptions:
Option1:Blockinstallation
Youcanblocktheinstallationbyaddingalaunchconditionthatrunsiftheversiondetectionpropertyisset.Thislookslikethefollowing:
<ConditionMessage="Alaterversionof[ProductName]isalreadyinstalled.Setupwillnowexit.">NOTNEWERVERSIONDETECTEDORInstalled</Condition>
Option2:Immediatelyexitandreturnsuccess
Thisrequirescreatingacustomactionthatreturnsexitcode5(ERROR_NO_MORE_ITEMS).WiXhasabuilt-incustomactionnamedWixExitEarlyWithSuccessthatcanbeusedtoenablethisfunctionality.Tousethebuilt-incustomaction,youmustmakesurethatthepropertycreatedaboveisnamedNEWERVERSIONDETECTED.Then,youmustreferencethecustomactionbyaddingthefollowingtoyoursetupauthoring:
<CustomActionRefId="WixExitEarlyWithSuccess"/>
YoumustalsoreferencetheWixUtilExtensiontousetheWixExitEarlyWithSuccesscustomaction,eitherbyaddingittothereferenceslistforyourprojectifyouareusingVotiveandVisualStudio,orbypassingitintolight.exewiththe-extcommandlineswitch.
An.msimaywanttoimmediatelyexitandreturnsuccessinsteadofblockingandreturninganerrorinanout-of-orderinstallationscenariotosupportbackwardscompatibilityforcallingapplications.Thisisparticularlyusefulifthe.msiisaredistributablecomponentthatcanbeshippedandinstalledasapartofotherproducts.
Step3:Buildversion1andversion2ofyour.msiCreatingversion1ofyour.msiisassimpleasrunningyourstandardbuildprocess-thismeansyoucompileandlinkitwiththeWiXtoolset.Inordertocreateversion2ofyour.msi,youmustmakethefollowingchangestoyoursetupauthoring,thenre-runyourbuildprocesstocreateanew.msi:
IncrementtheVersionvalueinyourProductelementtobehigherthananypreviousversionsthatyouhaveshipped.WindowsInstalleronlyusesthefirst3partsoftheversioninupgradescenarios,somakesuretoincrementyourversionsuchthatoneofthefirst3partsishigherthananypreviouslyshippedversion.Forexample,ifyourversion1usesVersionvalue1.0.1.0,thenversion2shouldhaveaVersionvalueof1.0.2.0orhigher(1.0.1.1willnotworkhere).GenerateanewIdvalueintheProductelementofthenewversionofthe.msi.
Step4:Testupgradescenariosbeforeyoushipversion1Thisstepisveryimportantandistoooftenignored.Inordertomakesurethatupgradescenarioswillbehavethewayyouexpect,youshouldtestupgradesbeforeyoushipthefirstversionofyour.msi.Therearesomeupgrade-relatedbugsthatcanbefixedpurelybymakingfixesinversion2orhigherofyour.msi,buttherearesomebugsthataffecttheuninstallofversion1thatmustbefixedbeforeyoushipversion1.Onceversion1ships,youareessentiallylockedintotheuninstallbehaviorthatyoushipwithversion1,andthatimpactsmajorupgradescenariosbecauseWindowsInstallerperformsanuninstallofversion1behindthescenesduringversion2installation.
Herearesomeinterestingscenariostotest:
Installversion1,theninstallversion2.Makesurethatversion1iscorrectlyremovedandversion2functionscorrectly.Makesureversion2cleanlyuninstallsafterwards.Installversion2,thentrytoinstallversion1.Makesurethatversion1correctlydetectsthatversion2isalreadyinstalledandeitherblocksorsilentlyexits,dependingonwhatbehavioryouchoosetoimplementforyourout-of-orderinstallationscenarios.
Whentestingmajorupgradescenarios,makesuretopayparticularattentiontotheconditionsoncustomactionsinyour.msibecauseyoumayrunintoissuescausedbycustomactionsrunningduringamajorupgradeuninstallandleavingyourproductinapartiallyinstalledstate.TheUPGRADINGPRODUCTCODEpropertycanbeusefultopreventactionsfromrunningduringanuninstallthatisinvokedbytheRemoveExistingProductsaction.
Inaddition,payattentiontoassembliesthatneedtobeinstalledtotheGACortheWin32WinSxSstore.ThereissomeinformationaboutasequenceofeventsthatcanremoveassembliesfromtheGACandtheWinSxSstoreduringsomemajorupgradesinthisknowledgebasearticle.
HowTo:GeneralHowTosThissectionincludesguidestogeneraltopicssuchasdebuggingandlogginginstallations.
HowTo:GetalogofyourinstallationfordebuggingHowTo:LookinsideyourMSIwithOrcaHowTo:GenerateaGUID
HowTo:GetaLogofYourInstallationforDebuggingWhenauthoringinstallersitisoftennecessarytogetalogoftheinstallationfordebuggingpurposes.Thisisparticularlyhelpfulwhentryingtodebugfilesearchesandlaunchconditions.Toobtainalogofaninstallationusethecommandlinemsiexectool:
msiexec/iMyApplication.msi/l*vMyLogFile.txt
ThiswillinstallyourapplicationandwriteaverboselogtoMyLogFile.txtinthecurrentdirectory.
IfyouneedtogetalogofyourinstallerwhenitislaunchedfromtheAdd/RemoveProgramsdialogyoucanenableWindowsInstallerloggingviatheregistry.
HowTo:LookInsideYourMSIWithOrcaWhenbuildinginstallersitcanoftenbeusefultolookinsideyourinstallertoseetheactualtablesandvaluesthatwerecreatedbytheWiXbuildprocess.MicrosoftprovidesatoolwiththeWindowsInstaller4.5SDK,calledOrca,thatcanbeusedforthispurpose.ToinstallOrca,downloadandinstalltheWindowsInstaller4.5SDK.AftertheSDKinstallationiscompletenavigatetotheinstalldirectory(typicallyC:\ProgramFiles\WindowsInstaller4.5SDK)andopentheToolsfolder.InsidetheToolsfolderrunOrca.msitocompletetheinstallation.
OnceOrcaisinstalledyoucanrightclickonanyMSIfilefromWindowsExplorerandselectEditwithOrcatoviewthecontentsoftheMSI.
HowTo:GenerateaGUIDGUIDsareusedextensivelywiththeWindowsInstallertouniquelyidentifyproducts,components,upgrades,andotherkeyelementsoftheinstallationprocess.TogenerateGUIDsusetheguidgentoolthatshipswithVisualStudio,generallylocatedunderTools>CreateGUIDmenu,ortheGuidGen.comsite.GUIDsgeneratedthiswaywillworkfineinWiX,howeversincetheyareinmixedcasetheymaycauseissuesifyousharethemwithusersofother,non-WiXtools.ForcompletecompatibilitybesuretochangethelettersintheGUIDtouppercasepriortouse.
AllexamplesintheHowTodocumentationusethetextPUT-GUID-HEREforGUIDs.EveryPUT-GUID-HEREmustbereplacedwithanewly-generatedGUID.
The<Component>,<Package>,<Patch>,<Product>elementssupportauto-generationofGUIDseverytimeyoubuildyourprojectbyspecifyinga*inplaceoftheGUID.Forexample:
<ProductId="*"Version="1.0.0.0"Language="1033"Name="MyApplicationName"Manufacturer="MyManufacturerName">
FortheComponentelementthegeneratedGUIDisbasedontheinstalldirectoryandfilenameoftheKeyPathforthecomponent.ThisGUIDwillstayconsistentfrombuild-to-buildprovidedthedirectoryandfilenameoftheKeyPathdonotchange.
UsingWiXextensionsTheWiXextensionscanbeusedbothonthecommandlineandwithintheVisualStudioIDE.WhenyouuseWiXextensionsintheVisualStudioIDE,youcanalsoenableIntelliSenseforeachWiXextension.
UsingWiXextensionsonthecommandlineTouseaWiXextensionwhencallingtheWiXtoolsfromthecommandline,usethe-extcommandlineparameterandsupplytheextensionassembly(DLL)neededforyourproject.EachextensionDLLmustbepassedinviaseparate-extparameters.Forexample:
light.exeMySetup.wixobj-extWixUIExtension-extWixUtilExtension-ext"C:\MyWiXExtensions\FooExtension.dll"-outMySetup.msi
ExtensionassembliesinthesamedirectoryastheWiXtoolscanbereferredtowithoutpathor.dllextension.Extensionassembliesinotherdirectoriesmustuseacompletepathname,including.dllextension.
Note:CodeAccessSecuritymanagesthetrustlevelsofassembliesloadedbymanagedcode,includingWiXextensions.Bydefault,CASpreventsaWiXtoolrunningonalocalmachinefromloadingaWiXextensiononanetworkshare.
UsingWiXextensionsinVisualStudioTouseaWiXextensionwhenbuildinginVisualStudiowiththeWiXVisualStudiopackage:
1. Right-clickontheWiXprojectintheVisualStudiosolutionexplorerandselectAddReference...
2. IntheAddWiXLibraryReferencedialog,clickontheBrowsetabandbrowsetotheWiXextensionDLLthatyouwanttoinclude.
3. ClicktheAddbuttontoaddareferencetothechosenextensionDLL.
4. BrowseandaddotherextensionDLLsasneeded.
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.
OptimizingbuildsWiXprovidestwowaysofspeedingupthecreationofcabinetsforcompressingfiles:
Multithreadedcabinetcreation.Cabinetreuse.
MultithreadedcabinetcreationLightusesmultiplethreadstobuildmultiplecabinetsinasinglepackage.Unfortunately,becausetheCABAPIitselfisn'tmultithreaded,asinglecabinetisbuiltwithonethread.Lightusesmultiplethreadswhentherearemultiplecabinets,soeachcabinetisbuiltononethread.
Bydefault,Lightusesthenumberofprocessors/coresinthesystemasthenumberofthreadstousewhencreatingcabinets.YoucanoverridethedefaultusingLight's-ctswitchortheCabinetCreationThreadCountpropertyina.wixprojproject.
Youcanusemultiplecabinetsbothexternallyandembeddedinthe.msipackage(usingtheMedia/@EmbedCabattribute).
CabinetreuseIfyoubuildsetupswithfilesthatdon'tchangeoften,youcangeneratecabinetsforthosefilesonce,thenreusethemwithoutspendingtheCPUtimetore-buildandre-compressthem.
TherearetwoLight.exeswitchesinvolvedincabinetreuse:
-cc(CabinetCachePathpropertyin.wixprojprojects)Thevalueisthepathtousetobothwritenewcabinetsand,when-reusecab/ReuseCabinetCacheisspecified,lookforcachedcabinets.
-reusecab(ReuseCabinetCachepropertyin.wixprojprojects)When-cc/CabinetCachePathisalsospecified,WiXreusescabinetsthatdon'tneedtoberebuilt.
WiXautomaticallyvalidatesthatacachedcabinetisstillvalidbyensuringthat:
Thenumberoffilesinthecachedcabinetmatchesthenumberoffilesbeingbuilt.Thenamesofthefilesareallidentical.Theorderoffilesisidentical.Thetimestampsforallfilesallidentical.
SpecifyingsourcefilesWiXprovidestwowaysofidentifyingasetuppackage'spayload-thefilesthatareincludedinthesetupandinstalledontheuser'smachine.
Byfilenameanddirectorytree.Byexplicitsourcefile.
Compiling,linking,andbindingTheWiXtoolsetmodelsatypicalC/C++compilerishowauthoredisbuilt,withacompilerthatparsestheWiXsourceauthoringtoobjectfilesandalinkerthatcombinestheobjectfilesintoanoutput.ForWiX,theoutputisan.msipackage,.msmmergemodule,or.wixliblibrary,whichhaveathirdphase:bindingpayloadfilesintotheoutput.Light.exeincludesboththelinkerandbinder.
ThoughWiXsourceauthoringreferstopayloadfiles,thecompilerneverlooksatthem;instead,onlythebinderdoes,whenitcreatescabinetscontainingthemorcopiesthemtoanuncompressedlayout.
Youcanprovidethebinderwithoneormorebaseinputpathsitusestolookforfiles.Italsolooksforfilesrelativetothecurrentworkingdirectory.Light.exe's-bswitchandtheBaseInputPaths.wixprojpropertyletyouspecifyoneormorebaseinputpaths.
IdentifyingfilesbynameanddirectorytreeWhenyouusetheFile/@Nameattributeanddon'tusetheFile/@Sourceattribute,thecompilerconstructsanimplicitpathtothefilebasedonthefile'sparentcomponentdirectoryplusthenameyousupply.So,forexample,giventhepartialauthoring
<DirectoryId="TARGETDIR"><DirectoryName="foo"><DirectoryName="bar"><Component><FileName="baz.txt"/>
thebinderlooksforafilefoo\bar\baz.txtinthebaseinputpaths.
Overridingimplicitpayloaddirectories
TheFileSourceattributefortheDirectoryandDirectoryRefelementssetsanewdirectoryforfilesinthatdirectoryoranychilddirectories.Forexample,giventhepartialauthoring
<DirectoryId="TARGETDIR"><DirectoryName="foo"FileSource="build\retail\x86"><DirectoryName="bar"><Component><FileName="baz.txt"/>
thebinderlooksforafilebuild\retail\x86\bar\baz.txtinthebaseinputpaths.
TheFileSourceattributecanusepreprocessorvariablesorenvironmentvariables.Ifthevalueisanabsolutepath,thebinder'sbaseinputpathsaren'tused.
Preferreduse
Ifthebuildtreeservingasyourpayloadsourceisalmostidenticaltothe
treeofyourinstalledimageandyouhaveamoderate-to-deepdirectorytree,usingimplicitpathswillavoidrepetitioninyourauthoring.
Sourcedirectories
TheDirectory/@SourceNameattributecontrolsboththenameofthedirectorywhereLight.exelooksforfilesandthe"sourcedirectory"inthe.msipackage.Unlessyoualsowanttocontrolthesourcedirectory,justuseFileSource.
IdentifyingpayloadbysourcefilesTheFile/@Sourceattributeisapathtothepayloadfile.Itcanbeanabsolutepathorrelativetoanybaseinputpath.IfFile/@Sourceispresent,ittakesprecedenceovertheimplicitpathcreatedbyDirectory/@Name,Directory/@FileSource,andFile/@Name.
IfyouspecifyFile/@Source,youcanomitFile/@Namebecausethecompilerautomaticallysetsittothefilenameportionofthesourcepath.
Preferreduse
Ifthebuildtreeservingasyourpayloadsourceisdifferentfromthetreeofyourinstalledimage,usingFile/@Sourcemakesiteasytopickexplicitpathsthanaredifferentthanthe.msipackage'sdirectorytree.YoucanusemultiplebaseinputpathstoshortentheFile/@Sourcepaths.
Forexample,theWiXsetup.wixprojprojectpointstotheoutputtreeforthex86,x64,andia64platformsWiXsupportsandtheWiXsourcetree.Uniquefilenamescanbereferredtowithjusttheirfilenames;fileswiththesamenameacrossplatformsuserelativepaths.
SeetheWiXauthoringinsrc\Setup\*.wxsforexamples.
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.
UsingStandardCustomActionsCustomactionsaddtheabilitytoinstallandconfiguremanynewtypesofresources.EachoftheseresourcetypeshasoneormoreelementsthatallowyoutoinstallthemwithyourMSIpackage.Theonlythingsyouneedtodoareunderstandtheappropriateelementsfortheresourcesyouwanttoinstallandsettherequiredattributesontheseelements.TheelementsneedtobeprefixedwiththeappropriatenamespacefortheWiXextensiontheyaredefinedin.YoumustpassthefullpathtotheextensionDLLaspartofthecommandlinestothecompilerandlinkersotheyautomaticallyaddtheallofthepropererrormessages,customactionrecords,andbinaryrecordsintoyourfinalMSI.
ExampleFirst,let'stryanexamplethatcreatesauseraccountwhentheMSIisinstalled.ThisfunctionalityisdefinedinWixUtilExtension.dllandexposedtotheuserasthe<User>element.
<Wixxmlns='http://schemas.microsoft.com/wix/2006/wi'xmlns:util='http://schemas.microsoft.com/wix/UtilExtension'><ProductId='PutGuidHere'Name='TestUserProduct'Language='1033'Version='0.0.0.0'><PackageId='PUT-GUID-HERE'Description='TestUserPackage'InstallerVersion='200'Compressed='yes'/><DirectoryId='TARGETDIR'Name='SourceDir'><ComponentId='TestUserProductComponent'Guid='PutGuidHere'><util:UserId='TEST_USER1'Name='testName1'Password='pa$$$$word'/></Component></Directory>
<FeatureId='TestUserProductFeature'Title='TestUserProductFeature'Level='1'><ComponentRefId='TestUserProductComponent'/></Feature></Product></Wix>
Thisisasimpleexamplethatwillcreateanewuseronthemachinenamed"testName1"withthepassword"pa$$word"(thepreprocessorreplaces$$$$with$$).
TobuildtheMSIfromthisWiXauthoring:
1. Puttheabovecodeinafilenamedyourfile.wxs.2. Replacethe"PUT-GUID-HERE"attributeswithrealGUIDs.3. Run'candle.exeyourfile.wxs-ext%fullpathtoWixUtilExtension.dll%'4. Run'light.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.
WIX_ACCOUNT_LOCALSERVICE LocalizedqualifiednameoftheLocalServiceaccount.
WIX_ACCOUNT_NETWORKSERVICE LocalizedqualifiednameoftheNetworkServiceaccount.
WIX_ACCOUNT_ADMINISTRATORS LocalizedqualifiednameoftheAdministratorsgroup.
WIX_ACCOUNT_USERS LocalizedqualifiednameoftheUsersgroup.
WIX_ACCOUNT_GUESTS LocalizedqualifiednameoftheUsersgroup.
WixQueryOsDriverInfoproperties
WIX_WDDM_DRIVER_PRESENT Setto1ifthevideocarddriveronthetargetmachineisaWDDMdriver.ThispropertyisonlysetonmachinesrunningWindowsVistaorhigher.
WIX_DWM_COMPOSITION_ENABLED Setto1ifthetargetmachinehascompositionenabled.ThispropertyisonlysetonmachinesrunningWindowsVistaorhigher.
PerformanceCounterCustomActionThePerfCounterelement(partofWiXUtilExtension)allowsyoutoregisteryourperformancecounterswiththeWindowsAPI.Thereareseveralpiecesthatallworktogethertosuccessfullyregister:
YourperformanceDLL-TheDLLmustexportOpen,Collect,andClosemethods.SeeMSDNformoredetail.Performanceregistryvalues-TheregistrymustcontainkeyspointingtoyourDLLanditsOpen,Collect,andClosemethods.ThesearecreatedusingtheRegistryelement.PerfmonINIandHtextfiles-ThesecontainthetextdescriptionstodisplayintheUI.SeeMSDNforlodctrdocumentation.ThisMSDNdocumentationisagoodplacetostart.Seebelowforsamplesre-purposedfromMSDN.TheRegisterPerfmoncustomaction-YoucanlinkwiththeWiXUtilExtension.dlltoensurethatthecustomactionsareincludedinyourfinalMSI.SeeUsingStandardCustomActions.Thecustomactioncalls(Un)LoadPerfCounterTextStringstoregisteryourcounterswithWindows�PerfmonAPI.Toinvokethecustomaction,youcreateaPerfCounterelementnestedwithintheFileelementforthePerfmon.INIfile.ThePerfCounterelementcontainsasingleattribute:Name.TheNameattributeshouldmatchthenameintheRegistryandinthe.INIfile.SeebelowforsampleWIXusageofthe<PerfCounter>element.
SampleWIXsourcefragmentandPerfCounter.ini
<?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><Fragment><DirectoryRefId="BinDir"><ComponentId="SharedNative"DiskId="1"><RegistryId="Shared_r1"Root="HKLM"Key="SYSTEM\CurrentControlSet\Services\MyApplication\Performance"Name="Open"Value="OpenPerformanceData"Type="string"/><RegistryId="Shared_r2"Root="HKLM"Key="SYSTEM\CurrentControlSet\Services\MyApplication\Performance"Name="Collect"Value="CollectPerformanceData"Type="string"/><RegistryId="Shared_r3"Root="HKLM"Key="SYSTEM\CurrentControlSet\Services\MyApplication\Performance"Name="Close"Value="ClosePerformanceData"Type="string"/><RegistryId="Shared_r4"Root="HKLM"Key="SYSTEM\CurrentControlSet\Services\MyApplication\Performance"Name="Library"Value="[!PERFDLL.DLL]"Type="string"/><FileId="PERFDLL.DLL"Name="MyPerfDll.dll"Source="x86\debug\0\myperfdll.dll"/><FileId="PERFCOUNTERS.H"Name="PerfCounters.h"Source="x86\debug\0\perfcounters.h"/><FileId="PERFCOUNTERS.INI"Name="PerfCounters.ini"Source="x86\debug\0\perfcounters.ini"><PerfCounterName="MyApplication"/></File></Component></DirectoryRef></Fragment></Wix>
SamplePerfCounters.ini:[info]drivername=MyApplicationsymbolfile=PerfCounters.h[languages]009=English004=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=DisplaysperformancestatisticsofthedeviceinChineseDEVICE_COUNTER_1_009_NAME=NameoffirstcounterDEVICE_COUNTER_1_009_HELP=DisplaysthecurrentvalueofthefirstcounterDEVICE_COUNTER_1_004_NAME=NameofthefirstcounterinChineseDEVICE_COUNTER_1_004_HELP=DisplaysthevalueofthefirstcounterinChineseDEVICE_COUNTER_2_009_NAME=NameofthesecondcounterDEVICE_COUNTER_2_009_HELP=DisplaysthecurrentrateofthesecondcounterDEVICE_COUNTER_2_004_NAME=NameofthesecondcounterinChineseDEVICE_COUNTER_2_004_HELP=DisplaystherateofthesecondcounterinChinesePERF_OBJECT_1_009_NAME=NameofthethirdcounterPERF_OBJECT_1_009_HELP=DisplaysthecurrentrateofthethirdcounterPERF_OBJECT_1_004_NAME=NameofthethirdcounterinChinesePERF_OBJECT_1_004_HELP=DisplaystherateofthethirdcounterinChineseSamplePerfCounters.h:#defineOBJECT_10#defineDEVICE_COUNTER_12#defineDEVICE_COUNTER_24#definePERF_OBJECT_18
QuietExecutionCustomActionTheQtExeccustomactionallowsyoutorunanarbitrarycommandlineinanMSI-basedsetupinsilentmode.QtExeciscommonlyusedtosuppressconsolewindowsthatwouldotherwiseappearappearwheninvokingtheexecutabledirectly.ThecustomactionislocatedintheWixCAlibrary,whichisapartoftheWixUtilExtension.
ImmediateexecutionWhentheQtExecactionisrunasanimmediatecustomaction,itwilltrytoexecutethecommandstoredintheQtExecCmdLineproperty.ThefollowingisanexampleofauthoringanimmediateQtExeccustomaction:
<PropertyId="QtExecCmdLine"Value="commandlinetorun"/><CustomActionId="QtExecExample"BinaryKey="WixCA"DllEntry="CAQuietExec"Execute="immediate"Return="check"/>...<InstallExecuteSequence><CustomAction="QtExecExample"After="TheActionYouWantItAfter"/></InstallExecuteSequence>
Thiswillresultinrunningthecommandlineintheimmediatesequence.Iftheexitcodeofthecommandlineinthisexampleindicatesanerror(meaningthatthereturncodeisnotequalto0)thenthesetupwillfailbecausetheReturnvalueissetto“check."ChangingtheReturnvalueto"ignore"willcausethesetuptologthefailurebutskipitandcontinueinsteadoffailingtheentiresetup.
IfyouwanttorunmorethanonecommandlineintheimmediatesequencethenyouwillneedtoschedulemultipleQtExeccustomactionsandsettheQtExecCmdLinepropertytoanewvaluebyschedulingaproperty-settingcustomactionimmediatelybeforeeachinstanceoftheQtExeccustomaction.
DeferredexecutionWhentheQtExecactionisrunasadeferredcustomaction,itwilltrytoexecutethecommandlinestoredinthevalueofthecustomactiondata.FordeferredQtExeccustomactions,thecustomactiondataisapropertythathasthesameIdvalueasthecustomactionId.ThefollowingisanexampleofauthoringadeferredQtExeccustomaction:
<PropertyId="QtExecDeferredExample"Value="commandlinetorun"/><CustomActionId="QtExecDeferredExample"BinaryKey="WixCA"DllEntry="CAQuietExec"Execute="deferred"Return="check"Impersonate="no"/>...<InstallExecuteSequence><CustomAction="QtExecDeferredExample"After="TheActionYouWantItAfter"/></InstallExecuteSequence>
IfyouneedtosetacommandlinethatusesotherWindowsInstallerproperties,youmustscheduleanimmediatecustomactiontosetthecommandlinepropertyvalueandscheduleadeferredcustomactiontorunQtExec.ThePropertyvalueusedintheimmediatecustomactionmustmatchtheIdvalueusedinthedeferredcustomaction.AcommonuseofthispatternforQtExeccustomactionsistorunanexecutablethatwillbeinstalledasapartofthesetup.ThefollowingisanexampleofauthoringadeferredQtExeccustomactionthatreliesonanotherpropertyvalue:
<CustomActionId="QtExecDeferredExampleWithProperty_Cmd"Property="QtExecDeferredExampleWithProperty"Value=""[#MyExecutable.exe]""Execute="immediate"/><CustomActionId="QtExecDeferredExampleWithProperty"BinaryKey="WixCA"DllEntry="CAQuietExec"Execute="deferred"Return="check"Impersonate="no"/>...<InstallExecuteSequence>
<CustomAction="QtExecDeferredExampleWithProperty_Cmd"After="CostFinalize"/><CustomAction="QtExecDeferredExampleWithProperty"After="TheActionYouWantItAfter"/></InstallExecuteSequence>
Running64-bitexecutablesIfyouneedtoruna64-bitexecutable,usethe64-bitawareQtExec.Tousethe64-bitQtExecchangetheCustomActionelement'sDllEntryattributeto"CAQuietExec64"andforimmediateexecutionusethe"QtExec64CmdLine"property.Thefollowingexamplecombinestheexamplesabovethe64-bitawareQtExecforboth.NoticethattheCustomActionelement'sIdattributesdonotneedtochange:
<PropertyId="QtExec64CmdLine"Value="64-bitcommandlinetorun"/><CustomActionId="QtExecExample"BinaryKey="WixCA"DllEntry="CAQuietExec64"Execute="immediate"Return="check"/>...<CustomActionId="QtExecDeferredExampleWithProperty_Cmd"Property="QtExecDeferredExampleWithProperty"Value=""[#MyExecutable.exe]""Execute="immediate"Return="ignore"/><CustomActionId="QtExecDeferredExampleWithProperty"BinaryKey="WixCA"DllEntry="CAQuietExec64"Execute="deferred"Return="check"Impersonate="no"/>...<InstallExecuteSequence><CustomAction="QtExecExample"After="TheImmediateActionYouWantItAfter"/>
<CustomAction="QtExecDeferredExampleWithProperty_Cmd"After="CostFinalize"/><CustomAction="QtExecDeferredExampleWithProperty"After="TheDeferredActionYouWantItAfter"/></InstallExecuteSequence>
BuildinganMSIthatusesQtExecInordertouseQtExec,youmustincludeareferencetotheWixUtilExtensionwhenbuildingyourMSI.Todothis,addthecommandlineargument-extWixUtilExtension.dllwhencallingLight.exe.
ShellExecuteCustomActionTheWixShellExeccustomactioninwixca(partofWixUtilExtension)letsyouopendocumentorURLtargetsviatheWindowsshell.AcommonuseistolaunchreadmefilesorURLsusingtheirregistereddefaultapplicationsbasedontheirextension.NotethatWixShellExecutecanonlybeusedasanimmediatecustomactionasitlaunchesanapplicationwithoutwaitingforittoclose.WixShellExecreadsitstargetfromtheWixShellExecTargetproperty,formatsit,andthencallsShellExecutewiththeformattedvalue.Itusesthedefaultverb,whichisusually"open."Formoreinformation,seeShellExecuteFunction.
Forastep-by-stepexampleofhowtousetheShellExecutecustomactiontolaunchaprogramattheendofinstallseetheHowTo:RuntheInstalledApplicationAfterSetuptopic.
WixDirectXExtensionTheWixDirectXExtensionincludesacustomactionnamedWixQueryDirectXCapsthatsetspropertiesyoucanusetochecktheDirectXcapabilitiesoftheinstallinguser'svideocard.
WixDirectXExtensionproperties
WIX_DIRECTX_PIXELSHADERVERSION Pixelshaderversioncapability,expressedasmajor*100+minor.Forexample,ashadermodel3.0-compliantsystemwouldhaveaWIX_DIRECTX_PIXELSHADERVERSIONvalueof300.
WIX_DIRECTX_VERTEXSHADERVERSION Vertexshaderversioncapability,expressedasmajor*100+minor.Forexample,ashadermodel3.0-compliantsystemwouldhaveaWIX_DIRECTX_VERTEXSHADERVERSIONvalueof300.
TousetheWixDirectXExtensionpropertiesinanMSI,usethefollowingsteps:
AddPropertyRefelementsforitemslistedabovethatyouwanttouseinyourMSI.Addthe-ext<pathtoWixDirectXExtension.dll>commandlineparameterwhencallinglight.exetoincludetheWixDirectXExtensionintheMSIlinkingprocess.Or,usinganMSBuild-based.wixprojproject,add<pathtoWixDirectXExtension.dll>totheWixExtensionitemgroup.WhenusingVotiveinVisualStudio,thiscanbedonebyright-clickingontheReferencesnodeinaWiXproject,choosingAddReference...thenbrowsingforWixDirectXExtension.dllandaddingareference.
Forexample:
<PropertyRefId="WIX_DIRECTX_PIXELSHADERVERSION"/>
<CustomActionId="CA_CheckPixelShaderVersion"Error="[ProductName]requirespixelshaderversion3.0orgreater."/>
<InstallExecuteSequence><CustomAction="CA_CheckPixelShaderVersion"After="WixQueryDirectXCaps"><![CDATA[WIX_DIRECTX_PIXELSHADERVERSION<300]]></Custom></InstallExecuteSequence>
<InstallUISequence><CustomAction="CA_CheckPixelShaderVersion"After="WixQueryDirectXCaps"><![CDATA[WIX_DIRECTX_PIXELSHADERVERSION<300]]></Custom></InstallUISequence>
NotethattheWixDirectXExtensionpropertiesaresettothevalueNotSetbydefault.TheWixDirectXExtensioncustomactionisconfiguredtonotfailifitencountersanyerrorswhentryingtodetermineDirectXcapabilities.Inthistypeofscenario,thepropertieswillbesettotheirNotSetdefaultvalues.Inyoursetupauthoring,youcancomparethepropertyvaluestotheNotSetvalueortoaspecificvaluetodeterminewhetherWixDirectXExtensionwasabletoqueryDirectXcapabilitiesandifso,whattheyare.
WixExitEarlyWithSuccessCustomActionTheWixExitEarlyWithSuccesscustomactionisanimmediatecustomactionthatdoesnothingexceptreturnthevalueERROR_NO_MORE_ITEMS.ThisreturnvaluecausesWindowsInstallertoskipallremainingactionsinthe.msiandreturnaprocessexitcodethatindicatesasuccessfulinstallation.
Thiscustomactionisusefulincaseswhereyouwantsetuptoexitwithoutactuallyinstallinganything,butwantittoreturnsuccesstothecallingprocess.Acommonscenariowherethistypeofbehaviorisusefulisinanout-of-orderinstallationscenarioforan.msithatimplementsmajorupgrades.Whenauserhasversion2ofan.msiinstalledandthenattemptstoinstallversion1,thiscustomactioncanbeusedinconjunctionwiththeUpgradetabletodetectthatversion2isalreadyinstalledtocausesetuptoexitwithoutinstallinganythingandreturnsuccess.Ifanyapplicationsredistributeversion1ofthe.msi,theirinstallationprocesseswillcontinuetoworkeveniftheuserhasversion2ofthe.msiinstalledontheirsystem.
Thereare3stepsyouneedtotaketousetheWixExitEarlyWithSuccesscustomactioninyourMSI:
Step1:AddtheWiXutilitiesextensionslibrarytoyourprojectTheWiXsupportforWixExitEarlyWithSuccessisincludedinaWiXextensionlibrarythatmustbeaddedtoyourprojectpriortouse.IfyouareusingWiXonthecommandlineyouneedtoaddthefollowingtoyourlightcommandline:
light.exemyproject.wixobj-extWixUtilExtension
IfyouareusingVotiveyoucanaddtheextensionusingtheAddReferencedialog:
1. OpenyourVotiveprojectinVisualStudio2. RightclickonyourprojectinSolutionExplorerandselectAdd
Reference...3. SelecttheWixUtilExtension.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.
TheWixNetfxExtensionalsoincludesasetofpropertiesthatcanbeusedtodetectthepresenceofvariousversionsofthe.NETFramework,the.NETFrameworkSDKandtheWindowsSDK.Forinformationonhowtousethesepropertiestoverifytheuser's.NETFrameworkversionatinstalltimeseeHowTo:Checkfor.NETFrameworkVersions.
PropertiesThefollowingpropertyisapplicabletoallversionsofthe.NETFramework:
Propertyname Meaning
NETFRAMEWORKINSTALLROOTDIR Settotherootinstallationdirectoryforallversionsofthe.NETFramework(%windir%\Microsoft.NET\Framework\).
Hereisacompletelistofpropertiesforthe.NETFramework1.0productfamily:
Propertyname Meaning
NETFRAMEWORK10 Setto3321-3705ifthe.NETFramework1.0isinstalled(notsetotherwise).
NETFRAMEWORK10INSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework1.0(%windir%\Microsoft.NET\Framework\v1.0.3705).
Hereisacompletelistofpropertiesforthe.NETFramework1.1productfamily:
Propertyname Meaning
NETFRAMEWORK11 Setto#1ifthe.NETFramework1.1isinstalled(notsetotherwise).
NETFRAMEWORK11_SP_LEVEL Indicatestheservicepacklevelforthe.NETFramework1.1.
NETFRAMEWORK11INSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework1.1(%windir%\Microsoft.NET\Framework\v1.1.4322).
NETFRAMEWORK11_ZH_CN_LANGPACK Setto#1ifthe.NETFramework1.1Chinese(Simplified)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_ZH_TW_LANGPACK Setto#1ifthe.NETFramework1.1Chinese(Traditional)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_CS_CZ_LANGPACK Setto#1ifthe.NETFramework1.1Czechlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_DA_DK_LANGPACK Setto#1ifthe.NETFramework1.1Danishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_NL_NL_LANGPACK Setto#1ifthe.NETFramework1.1Dutchlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_FI_FI_LANGPACK Setto#1ifthe.NETFramework1.1Finnishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_FR_FR_LANGPACK Setto#1ifthe.NETFramework1.1Frenchlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_DE_DE_LANGPACK Setto#1ifthe.NETFramework1.1Germanlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_EL_GR_LANGPACK Setto#1ifthe.NETFramework1.1Greeklanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_HU_HU_LANGPACK Setto#1ifthe.NETFramework1.1Hungarianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_IT_IT_LANGPACK Setto#1ifthe.NETFramework1.1Italianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_JA_JP_LANGPACK Setto#1ifthe.NETFramework1.1Japaneselanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_KO_KR_LANGPACK Setto#1ifthe.NETFramework1.1Koreanlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_NB_NO_LANGPACK Setto#1ifthe.NETFramework1.1Norwegianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_PL_PL_LANGPACK Setto#1ifthe.NETFramework1.1Polishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_PT_BR_LANGPACK Setto#1ifthe.NETFramework1.1Portuguese(Brazil)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_PT_PT_LANGPACK Setto#1ifthe.NETFramework1.1Portuguese(Portugal)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_RU_RU_LANGPACK Setto#1ifthe.NETFramework1.1Russianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_ES_ES_LANGPACK Setto#1ifthe.NETFramework1.1Spanishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_SV_SE_LANGPACK Setto#1ifthe.NETFramework1.1Swedishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK11_TR_TR_LANGPACK Setto#1ifthe.NETFramework1.1Turkishlanguagepackisinstalled(notsetotherwise).
Hereisacompletelistofpropertiesforthe.NETFramework2.0productfamily:
Propertyname Meaning
NETFRAMEWORK20 Setto#1ifthe.NETFramework2.0isinstalled(notsetotherwise).
NETFRAMEWORK20_SP_LEVEL Indicatestheservicepacklevelforthe.NETFramework2.0.
NETFRAMEWORK20INSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework2.0(%windir%\Microsoft.NET\Framework\v2.0.50727).
NETFRAMEWORK20INSTALLROOTDIR64 Settotheinstallationdirectoryforthe64-bit.NETFramework2.0(%windir%\Microsoft.NET\Framework64\v2.0.50727).
NETFRAMEWORK20_ZH_CN_LANGPACK Setto#1ifthe.NETFramework2.0Chinese(Simplified)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_ZH_TW_LANGPACK Setto#1ifthe.NETFramework2.0Chinese(Traditional)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_CS_CZ_LANGPACK Setto#1ifthe.NETFramework2.0Czechlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_DA_DK_LANGPACK Setto#1ifthe.NETFramework2.0Danishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_NL_NL_LANGPACK Setto#1ifthe.NETFramework2.0Dutchlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_FI_FI_LANGPACK Setto#1ifthe.NETFramework2.0Finnishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_FR_FR_LANGPACK Setto#1ifthe.NETFramework2.0Frenchlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_DE_DE_LANGPACK Setto#1ifthe.NETFramework2.0Germanlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_EL_GR_LANGPACK Setto#1ifthe.NETFramework2.0Greeklanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_HU_HU_LANGPACK Setto#1ifthe.NETFramework2.0Hungarianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_IT_IT_LANGPACK Setto#1ifthe.NETFramework2.0Italianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_JA_JP_LANGPACK Setto#1ifthe.NETFramework2.0Japaneselanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_KO_KR_LANGPACK Setto#1ifthe.NETFramework2.0Koreanlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_NB_NO_LANGPACK Setto#1ifthe.NETFramework2.0Norwegianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_PL_PL_LANGPACK Setto#1ifthe.NETFramework2.0Polishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_PT_BR_LANGPACK Setto#1ifthe.NETFramework2.0Portuguese(Brazil)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_PT_PT_LANGPACK Setto#1ifthe.NETFramework2.0Portuguese
(Portugal)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_RU_RU_LANGPACK Setto#1ifthe.NETFramework2.0Russianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_ES_ES_LANGPACK Setto#1ifthe.NETFramework2.0Spanishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_SV_SE_LANGPACK Setto#1ifthe.NETFramework2.0Swedishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK20_TR_TR_LANGPACK Setto#1ifthe.NETFramework2.0Turkishlanguagepackisinstalled(notsetotherwise).
Hereisacompletelistofpropertiesforthe.NETFramework3.0productfamily:
Propertyname Meaning
NETFRAMEWORK30 Setto#1ifthe.NETFramework3.0isinstalled(notsetotherwise).
NETFRAMEWORK30_SP_LEVEL Indicatestheservicepacklevelforthe.NETFramework3.0.Thisvaluewillnotexistuntilaservicepackisinstalled.
NETFRAMEWORK30INSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework3.0(%windir%\Microsoft.NET\Framework\v3.0).
NETFRAMEWORK30INSTALLROOTDIR64 Settotheinstallationdirectoryforthe64-bit.NETFramework3.0(%windir%\Microsoft.NET\Framework64\v3.0).
NETFRAMEWORK30_ZH_CN_LANGPACK Setto#1ifthe.NETFramework3.0Chinese(Simplified)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_ZH_TW_LANGPACK Setto#1ifthe.NETFramework3.0Chinese(Traditional)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_CS_CZ_LANGPACK Setto#1ifthe.NETFramework3.0Czechlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_DA_DK_LANGPACK Setto#1ifthe.NETFramework3.0Danishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_NL_NL_LANGPACK Setto#1ifthe.NETFramework3.0Dutchlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_FI_FI_LANGPACK Setto#1ifthe.NETFramework3.0Finnishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_FR_FR_LANGPACK Setto#1ifthe.NETFramework3.0Frenchlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_DE_DE_LANGPACK Setto#1ifthe.NETFramework3.0Germanlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_EL_GR_LANGPACK Setto#1ifthe.NETFramework3.0Greeklanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_HU_HU_LANGPACK Setto#1ifthe.NETFramework3.0Hungarianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_IT_IT_LANGPACK Setto#1ifthe.NETFramework3.0Italianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_JA_JP_LANGPACK Setto#1ifthe.NETFramework3.0Japaneselanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_KO_KR_LANGPACK Setto#1ifthe.NETFramework3.0Koreanlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_NB_NO_LANGPACK Setto#1ifthe.NETFramework3.0Norwegianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_PL_PL_LANGPACK Setto#1ifthe.NETFramework3.0Polishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_PT_BR_LANGPACK Setto#1ifthe.NETFramework3.0Portuguese(Brazil)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_PT_PT_LANGPACK Setto#1ifthe.NETFramework3.0Portuguese(Portugal)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_RU_RU_LANGPACK Setto#1ifthe.NETFramework3.0Russianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_ES_ES_LANGPACK Setto#1ifthe.NETFramework3.0Spanishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_SV_SE_LANGPACK Setto#1ifthe.NETFramework3.0Swedishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK30_TR_TR_LANGPACK Setto#1ifthe.NETFramework3.0Turkishlanguagepackisinstalled(notsetotherwise).
Hereisacompletelistofpropertiesforthe.NETFramework3.5product
family:
Propertyname Meaning
NETFRAMEWORK35 Setto#1ifthe.NETFramework3.5isinstalled(notsetotherwise).
NETFRAMEWORK35_SP_LEVEL Indicatestheservicepacklevelforthe.NETFramework3.5.
NETFRAMEWORK35INSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework3.5(%windir%\Microsoft.NET\Framework\v3.5).
NETFRAMEWORK35INSTALLROOTDIR64 Settotheinstallationdirectoryforthe64-bit.NETFramework3.5(%windir%\Microsoft.NET\Framework64\v3.5).
NETFRAMEWORK35_ZH_CN_LANGPACK Setto#1ifthe.NETFramework3.5Chinese(Simplified)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_ZH_TW_LANGPACK Setto#1ifthe.NETFramework3.5Chinese(Traditional)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_CS_CZ_LANGPACK Setto#1ifthe.NETFramework3.5Czechlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_DA_DK_LANGPACK Setto#1ifthe.NETFramework3.5Danishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_NL_NL_LANGPACK Setto#1ifthe.NETFramework3.5Dutchlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_FI_FI_LANGPACK Setto#1ifthe.NETFramework3.5Finnishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_FR_FR_LANGPACK Setto#1ifthe.NETFramework3.5Frenchlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_DE_DE_LANGPACK Setto#1ifthe.NETFramework3.5Germanlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_EL_GR_LANGPACK Setto#1ifthe.NETFramework3.5Greeklanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_HU_HU_LANGPACK Setto#1ifthe.NETFramework3.5Hungarianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_IT_IT_LANGPACK Setto#1ifthe.NETFramework3.5Italianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_JA_JP_LANGPACK Setto#1ifthe.NETFramework3.5Japaneselanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_KO_KR_LANGPACK Setto#1ifthe.NETFramework3.5Koreanlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_NB_NO_LANGPACK Setto#1ifthe.NETFramework3.5Norwegianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_PL_PL_LANGPACK Setto#1ifthe.NETFramework3.5Polishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_PT_BR_LANGPACK Setto#1ifthe.NETFramework3.5Portuguese(Brazil)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_PT_PT_LANGPACK Setto#1ifthe.NETFramework3.5Portuguese(Portugal)languagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_RU_RU_LANGPACK Setto#1ifthe.NETFramework3.5Russianlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_ES_ES_LANGPACK Setto#1ifthe.NETFramework3.5Spanishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_SV_SE_LANGPACK Setto#1ifthe.NETFramework3.5Swedishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_TR_TR_LANGPACK Setto#1ifthe.NETFramework3.5Turkishlanguagepackisinstalled(notsetotherwise).
NETFRAMEWORK35_CLIENT Setto#1ifthe.NETFramework3.5clientprofileisinstalled(notsetotherwise).
NETFRAMEWORK35_CLIENT_SP_LEVEL Indicatestheservicepacklevelforthe.NETFramework3.5clientprofile.
Hereisacompletelistofpropertiesforthe.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).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_FR_FR_LANGPACK Setto#1ifthe.NETFramework4.0fullFrenchlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_DE_DE_LANGPACK Setto#1ifthe.NETFramework4.0fullGermanlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_EL_GR_LANGPACK Setto#1ifthe.NETFramework4.0fullGreeklanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_HE_IL_LANGPACK Setto#1ifthe.NETFramework4.0fullHebrewlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_HU_HU_LANGPACK Setto#1ifthe.NETFramework4.0fullHungarianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_IT_IT_LANGPACK Setto#1ifthe.NETFramework4.0fullItalian
languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_JA_JP_LANGPACK Setto#1ifthe.NETFramework4.0fullJapaneselanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_KO_KR_LANGPACK Setto#1ifthe.NETFramework4.0fullKoreanlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_NB_NO_LANGPACK Setto#1ifthe.NETFramework4.0fullNorwegianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_PL_PL_LANGPACK Setto#1ifthe.NETFramework4.0fullPolishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_PT_BR_LANGPACK Setto#1ifthe.NETFramework4.0fullPortuguese(Brazil)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_PT_PT_LANGPACK Setto#1ifthe.NETFramework4.0fullPortuguese(Portugal)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_RU_RU_LANGPACK Setto#1ifthe.NETFramework4.0fullRussianlanguagepackisinstalled(notsetotherwise).Thispropertyisavailablestarting
withWiXv3.5.
NETFRAMEWORK40FULL_ES_ES_LANGPACK Setto#1ifthe.NETFramework4.0fullSpanishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_SV_SE_LANGPACK Setto#1ifthe.NETFramework4.0fullSwedishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40FULL_TR_TR_LANGPACK Setto#1ifthe.NETFramework4.0fullTurkishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT Setto#1ifthe.NETFramework4.0clientprofileisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_SERVICING_LEVEL Indicatestheservicepacklevelforthe.NETFramework4.0clientprofile.ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENTINSTALLROOTDIR Settotheinstallationdirectoryforthe.NETFramework4.0full(%windir%\Microsoft.NET\Framework\v4.0).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENTINSTALLROOTDIR64 Settotheinstallationdirectoryforthe64-bit.NETFramework4.0full(%windir%\Microsoft.NET\Framework64\v4.0).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_AR_SA_LANGPACK Setto#1ifthe.NETFramework4.0clientArabiclanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_ZH_CN_LANGPACK Setto#1ifthe.NETFramework4.0clientChinese(Simplified)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_ZH_TW_LANGPACK Setto#1ifthe.NETFramework4.0clientChinese(Traditional)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_CS_CZ_LANGPACK Setto#1ifthe.NETFramework4.0clientCzechlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_DA_DK_LANGPACK Setto#1ifthe.NETFramework4.0clientDanishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_NL_NL_LANGPACK Setto#1ifthe.NETFramework4.0clientDutchlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_FI_FI_LANGPACK Setto#1ifthe.NETFramework4.0clientFinnishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_FR_FR_LANGPACK Setto#1ifthe.NETFramework4.0client
Frenchlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_DE_DE_LANGPACK Setto#1ifthe.NETFramework4.0clientGermanlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_EL_GR_LANGPACK Setto#1ifthe.NETFramework4.0clientGreeklanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_HE_IL_LANGPACK Setto#1ifthe.NETFramework4.0clientHebrewlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_HU_HU_LANGPACK Setto#1ifthe.NETFramework4.0clientHungarianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_IT_IT_LANGPACK Setto#1ifthe.NETFramework4.0clientItalianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_JA_JP_LANGPACK Setto#1ifthe.NETFramework4.0clientJapaneselanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_KO_KR_LANGPACK Setto#1ifthe.NETFramework4.0clientKoreanlanguagepackisinstalled(notsetotherwise).Thispropertyisavailablestarting
withWiXv3.5.
NETFRAMEWORK40CLIENT_NB_NO_LANGPACK Setto#1ifthe.NETFramework4.0clientNorwegianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_PL_PL_LANGPACK Setto#1ifthe.NETFramework4.0clientPolishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_PT_BR_LANGPACK Setto#1ifthe.NETFramework4.0clientPortuguese(Brazil)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_PT_PT_LANGPACK Setto#1ifthe.NETFramework4.0clientPortuguese(Portugal)languagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_RU_RU_LANGPACK Setto#1ifthe.NETFramework4.0clientRussianlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_ES_ES_LANGPACK Setto#1ifthe.NETFramework4.0clientSpanishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_SV_SE_LANGPACK Setto#1ifthe.NETFramework4.0clientSwedishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
NETFRAMEWORK40CLIENT_TR_TR_LANGPACK Setto#1ifthe.NETFramework4.0clientTurkishlanguagepackisinstalled(notsetotherwise).ThispropertyisavailablestartingwithWiXv3.5.
Hereisacompletelistofpropertiesforthe.NETFrameworkSDKandWindowsSDK:
Propertyname Meaning
NETFRAMEWORK11SDKDIR Thelocationofthe.NETFramework1.1SDKinstallationroot.
NETFRAMEWORK20SDKDIR Thelocationofthe.NETFramework2.0SDKinstallationroot.
WINDOWSSDKCURRENTVERSIONDIR ThelocationofthecurrentlyactiveversionoftheWindowsSDK.
WINDOWSSDKCURRENTVERSION TheversionnumberofthecurrentlyactiveversionoftheWindowsSDK.
WINDOWSSDK60ADIR ThelocationoftheWindowsSDK6.0ainstallationroot.
WINDOWSSDK61DIR ThelocationoftheWindowsSDK6.1installationroot.
WINDOWSSDK70ADIR ThelocationoftheWindowsSDK7.0ainstallationroot.ThispropertyisavailablestartingwithWiXv3.5.
UsingWixNetfxExtensionPropertiesTousetheWixNetfxExtensionpropertiesinanMSI,usethefollowingsteps:
AddPropertyRefelementsforitemslistedabovethatyouwanttouseinyourMSI.Addthe-ext<pathtoWixNetfxExtension.dll>commandlineparameterwhencallinglight.exetoincludetheWixNetfxExtensionintheMSIlinkingprocess.
Forexample:
<PropertyRefId="NETFRAMEWORK20"/>
WixVSExtensionTheWixVSExtensionincludesasetofcustomactionstomanagehelpcollections.ItalsoincludesasetofpropertiesandcustomactionsthatcanbeusedtodetectthepresenceofvariousversionsofVisualStudioandregisteradd-ins,projecttemplatesanditemtemplatesforuseinVisualStudio.
PropertiesHereisacompletelistofpropertiesfortheVisualStudio.NET2003productfamily:
Propertyname Meaning
VS2003DEVENV Fullpathtodevenv.exeforVisualStudio.NET2003ifitisinstalledonthesystem.
JSHARP_REDIST_11_INSTALLED IndicateswhetherornottheJ#redistributablepackage1.1isinstalledonthesystem.
HereisacompletelistofpropertiesfortheVisualStudio2005productfamily:
Propertyname Meaning
VS2005DEVENV Fullpathtodevenv.exeforVisualStudio2005ifitisinstalledonthesystem.
VS2005_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2005itemtemplatesdirectory.
VS2005_PROJECTTEMPLATES_DIR Fullpathtothe
VisualStudio2005projecttemplatesdirectory.
VS2005_SCHEMAS_DIR FullpathtotheVisualStudio2005XMLschemasdirectory.
VS2005PROJECTAGGREGATOR2 IndicateswhetherornottheVisualStudio2005projectaggregatorformanagedcodeadd-insisinstalledonthesystem.
VS2005_ROOT_FOLDER FullpathtotheVisualStudio2005rootinstallationdirectory.
VB2005EXPRESS_IDE Fullpathtovbexpress.exeifVisualBasic2005ExpressEditionisinstalledonthesystem.
VS2005_IDE_VB_PROJECTSYSTEM_INSTALLED Indicates
whetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualBasicprojectsystemisinstalledforit.
VC2005EXPRESS_IDE Fullpathtovcexpress.exeifVisualC++2005ExpressEditionisinstalledonthesystem.
VS2005_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualC++projectsystemisinstalledforit.
VCSHARP2005EXPRESS_IDE Fullpathtovcsexpress.exeifVisualC#2005ExpressEditionisinstalledonthesystem.
VS2005_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualC#projectsystemisinstalledforit.
VJSHARP2005EXPRESS_IDE Fullpathtovjsexpress.exeifVisualJ#2005ExpressEditionisinstalledonthesystem.
VS2005_IDE_VJSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualJ#projectsystemisinstalledforit.
VWD2005EXPRESS_IDE Fullpathtovwdexpress.exeifVisualWebDeveloper2005ExpressEditionisinstalledonthesystem.
VS2005_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2005StandardEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.
VS2005_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudioTeamTestprojectsystemisinstalledonthesystem.
VSEXTENSIONS_FOR_NETFX30_INSTALLED IndicateswhetherornottheVisualStudio2008DevelopmentToolsforthe.NETFramework3.0add-inforVisualStudio2005isinstalledonthesystem.
VS2005_WAP_PROJECT_INSTALLED IndicateswhetherornottheWebApplication
ProjecttemplateforVisualStudio2005isinstalledonthesystem.Thisprojecttemplateisavailableasastandaloneadd-inandasapartofvisualStudio2005SP1.
VS2005_SP_LEVEL IndicatestheservicepacklevelforVisualStudio2005StandardEditionandhigher.
VSTF2005_SP_LEVEL IndicatestheservicepacklevelforVisualStudio2005TeamFoundation.
VB2005EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualBasic2005ExpressEdition.
VC2005EXPRESS_SP_LEVEL Indicatestheservicepack
levelforVisualC++2005ExpressEdition.
VCSHARP2005EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualC#2005ExpressEdition.
VJSHARP2005EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualJ#2005ExpressEdition.
VWD2005EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualWebDeveloper2005ExpressEdition.
DEXPLORE_2005_INSTALLED IndicateswhetherornottheDocumentExplorer2005runtimecomponentspackageisinstalledonthesystem.
JSHARP_REDIST_20_INSTALLED Indicates
whetherornottheJ#redistributablepackage2.0isinstalledonthesystem.
JSHARP_REDIST_20SE_INSTALLED IndicateswhetherornottheJ#redistributablepackage2.0secondeditionisinstalledonthesystem.
HereisacompletelistofpropertiesfortheVisualStudio2008productfamily:
Propertyname Meaning
VS90DEVENV Fullpathtodevenv.exeforVisualStudio2008ifitisinstalledonthesystem.
VS90_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2008itemtemplatesdirectory.
VS90_PROJECTTEMPLATES_DIR FullpathtotheVisualStudio2008project
templatesdirectory.
VS90_SCHEMAS_DIR FullpathtotheVisualStudio2008XMLschemasdirectory.
VS90_ROOT_FOLDER FullpathtotheVisualStudio2008rootinstallationdirectory.
VB90EXPRESS_IDE Fullpathtovbexpress.exeifVisualBasic2008ExpressEditionisinstalledonthesystem.
VS90_IDE_VB_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2008StandardEditionorhigherisinstalledandtheVisualBasicprojectsystemisinstalledforit.
VC90EXPRESS_IDE Fullpathtovcexpress.exeifVisualC++
2008ExpressEditionisinstalledonthesystem.
VS90_IDE_VC_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2008StandardEditionorhigherisinstalledandtheVisualC++projectsystemisinstalledforit.
VCSHARP90EXPRESS_IDE Fullpathtovcsexpress.exeifVisualC#2008ExpressEditionisinstalledonthesystem.
VS90_IDE_VCSHARP_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2008StandardEditionorhigherisinstalledandtheVisualC#projectsystemisinstalledforit.
VWD90EXPRESS_IDE Fullpathtovwdexpress.exe
ifVisualWebDeveloper2008ExpressEditionisinstalledonthesystem.
VS90_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2008StandardEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.
VS90_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudioTeamTestprojectsystemisinstalledonthesystem.
VS90_BOOTSTRAPPER_PACKAGE_FOLDER ThelocationoftheVisualStudio2008bootstrapperpackagefolder.
VS90_SP1 Indicateswhetherornotservicepack1forVisual
Studio2008StandardEditionandhigherisinstalled.
VS90_SP_LEVEL IndicatestheservicepacklevelforVisualStudio2008StandardEditionandhigher.
VSTF90_SP_LEVEL IndicatestheservicepacklevelforVisualStudio2008TeamFoundation.
VB90EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualBasic2008ExpressEdition.
VB90EXPRESS_SP1 Indicateswhetherornotservicepack1forVisualBasic2008ExpressEditionisinstalled.
VC90EXPRESS_SP_LEVEL Indicatesthe
servicepacklevelforVisualC++2008ExpressEdition.
VC90EXPRESS_SP1 Indicateswhetherornotservicepack1forVisualC++2008ExpressEditionisinstalled.
VCSHARP90EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualC#2008ExpressEdition.
VCSHARP90EXPRESS_SP1 Indicateswhetherornotservicepack1forVisualC#2008ExpressEditionisinstalled.
VWD90EXPRESS_SP_LEVEL IndicatestheservicepacklevelforVisualWebDeveloper2008ExpressEdition.
VWD90EXPRESS_SP1 Indicates
whetherornotservicepack1forVisualWebDeveloper2008ExpressEditionisinstalled.
DEXPLORE_2008_INSTALLED IndicateswhetherornottheDocumentExplorer2008runtimecomponentspackageisinstalledonthesystem.
HereisacompletelistofpropertiesfortheVisualStudio2010productfamily:
Propertyname Meaning
VS2010DEVENV Fullpathtodevenv.exeforVisualStudio2010ifitisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_ITEMTEMPLATES_DIR FullpathtotheVisualStudio2010itemtemplates
directory.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_PROJECTTEMPLATES_DIR FullpathtotheVisualStudio2010projecttemplatesdirectory.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_SCHEMAS_DIR FullpathtotheVisualStudio2010XMLschemasdirectory.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_ROOT_FOLDER FullpathtotheVisualStudio2010rootinstallationdirectory.ThispropertyisavailablestartingwithWiXv3.5.
VB2010EXPRESS_IDE Fullpathto
vbexpress.exeifVisualBasic2010ExpressEditionisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.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.Thispropertyis
availablestartingwithWiXv3.5.
VWD2010EXPRESS_IDE Fullpathtovwdexpress.exeifVisualWebDeveloper2010ExpressEditionisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_IDE_VWD_PROJECTSYSTEM_INSTALLED IndicateswhetherVisualStudio2010StandardEditionorhigherisinstalledandtheVisualWebDeveloperprojectsystemisinstalledforit.ThispropertyisavailablestartingwithWiXv3.5.
VPD2010EXPRESS_IDE Fullpathtovpdexpress.exeifVisualStudio2010ExpressforWindowsPhoneis
installedonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_IDE_VSTS_TESTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010TeamTestprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_IDE_DB_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010Databaseprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_IDE_VSD_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010Deployment
projectsystem(setupproject)isinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_IDE_WIX_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010WindowsInstallerXMLprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_IDE_MODELING_PROJECTSYSTEM_INSTALLED IndicateswhetherornottheVisualStudio2010Modelingprojectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_IDE_FSHARP_PROJECTSYSTEM_INSTALLED Indicateswhetherornot
theVisualStudio2010F#projectsystemisinstalledonthesystem.ThispropertyisavailablestartingwithWiXv3.5.
VS2010_BOOTSTRAPPER_PACKAGE_FOLDER ThelocationoftheVisualStudio2010bootstrapperpackagefolder.ThispropertyisavailablestartingwithWiXv3.5.
CustomActionsHereisacompletelistofcustomactions:
Customactionname Meaning
VS2003Setup Runsdevenv.exe/setupifaVisualStudio.NET2003editionisfoundonthesystem.
VS2005Setup Runsdevenv.exe/setupifVisualStudio2005StandardEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2005DEVENVproperty.
VS2005InstallVSTemplates Runsdevenv.exe/InstallVSTemplatesifVisualStudio2005StandardEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS2005DEVENVproperty.
VB2005Setup Runsvbexpress.exe/setupifVisualBasic2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVB2005EXPRESS_IDEproperty.
VB2005InstallVSTemplates Runsvbexpress.exe/InstallVSTemplatesifVisualBasic2005ExpressEditionisfoundonthesystem.Includingthiscustom
actionautomaticallyaddstheVB2005EXPRESS_IDEproperty.
VC2005Setup Runsvcexpress.exe/setupifVisualC++2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVC2005EXPRESS_IDEproperty.
VC2005InstallVSTemplates Runsvcexpress.exe/InstallVSTemplatesifVisualC++2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVC2005EXPRESS_IDEproperty.
VCSHARP2005Setup Runsvcsexpress.exe/setupifVisualC#2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVCSHARP2005EXPRESS_IDEproperty.
VCSHARP2005InstallVSTemplates Runsvcsexpress.exe/InstallVSTemplatesifVisualC#2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVCSHARP2005EXPRESS_IDEproperty.
VJSHARP2005Setup Runsvjsexpress.exe/setupifVisualJ#2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVJSHARP2005EXPRESS_IDEproperty.
VJSHARP2005InstallVSTemplates Runsvjsexpress.exe/InstallVSTemplatesifVisualJ#2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVJSHARP2005EXPRESS_IDEproperty.
VWD2005Setup Runsvwdexpress.exe/setupifVisualWebDeveloper2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD2005EXPRESS_IDEproperty.
VWD2005InstallVSTemplates Runsvwdexpress.exe/InstallVSTemplatesifVisualWebDeveloper2005ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD2005EXPRESS_IDEproperty.
VS90Setup Runsdevenv.exe/setupifVisualStudio2008StandardEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS90DEVENVproperty.
VS90InstallVSTemplates Runsdevenv.exe/InstallVSTemplatesifVisualStudio2008StandardEditionorhigherisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVS90DEVENVproperty.
VB90Setup Runsvbexpress.exe/setupifVisualBasic2008ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVB90EXPRESS_IDEproperty.
VB90InstallVSTemplates Runsvbexpress.exe/InstallVSTemplatesifVisualBasic2008ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVB90EXPRESS_IDEproperty.
VC90Setup Runsvcexpress.exe/setupifVisualC++2008ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVC90EXPRESS_IDEproperty.
VC90InstallVSTemplates Runsvcexpress.exe/InstallVSTemplatesifVisualC++2008ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVC90EXPRESS_IDEproperty.
VCSHARP90Setup Runsvcsexpress.exe/setupifVisualC#2008ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVCSHARP90EXPRESS_IDEproperty.
VCSHARP90InstallVSTemplates Runsvcsexpress.exe/InstallVSTemplatesifVisualC#2008ExpressEditionisfoundon
thesystem.IncludingthiscustomactionautomaticallyaddstheVCSHARP90EXPRESS_IDEproperty.
VWD90Setup Runsvwdexpress.exe/setupifVisualWebDeveloper2008ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD90EXPRESS_IDEproperty.
VWD90InstallVSTemplates Runsvwdexpress.exe/InstallVSTemplatesifVisualWebDeveloper2008ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD90EXPRESS_IDEproperty.
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/InstallVSTemplatesifVisualBasic2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVB2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.
VC2010Setup Runsvcexpress.exe/setupifVisualC++2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVC2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.
VC2010InstallVSTemplates Runsvcexpress.exe/InstallVSTemplatesifVisualC++2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVC2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.
VCSHARP2010Setup Runsvcsexpress.exe/setupifVisualC#2010ExpressEditionisfoundonthesystem.Includingthis
customactionautomaticallyaddstheVCSHARP2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.
VCSHARP2010InstallVSTemplates Runsvcsexpress.exe/InstallVSTemplatesifVisualC#2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVCSHARP2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.
VWD2010Setup Runsvwdexpress.exe/setupifVisualWebDeveloper2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.
VWD2010InstallVSTemplates Runsvwdexpress.exe/InstallVSTemplatesifVisualWebDeveloper2010ExpressEditionisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVWD2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.
VPD2010Setup Runsvpdexpress.exe/setupifVisualStudio2010ExpressforWindowsPhoneisfoundonthesystem.Includingthiscustomactionautomaticallyaddsthe
VPD2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.
VPD2010InstallVSTemplates Runsvpdexpress.exe/InstallVSTemplatesifVisualStudio2010ExpressforWindowsPhoneisfoundonthesystem.IncludingthiscustomactionautomaticallyaddstheVPD2010EXPRESS_IDEproperty.ThiscustomactionisavailablestartingwithWiXv3.5.
UsingWixVSExtensionPropertiesorCustomActionsTousetheWixVSExtensionpropertiesorcustomactionsinanMSI,usethefollowingsteps:
AddPropertyReforCustomActionRefelementsforitemslistedabovethatyouwanttouseinyourMSI.Addthe-ext<pathtoWixVSExtension.dll>commandlineparameterwhencallinglight.exetoincludetheWixVSExtensionintheMSIlinkingprocess.
Forexample:
<PropertyRefId="VS2005_ROOT_FOLDER"/><CustomActionRefId="VS2005Setup"/>
Whenyoureferenceanyoftheabovepropertiesorcustomactions,theWixVSExtensionautomaticallyschedulesthecustomactionsandpullsinpropertiesusedinthecustomactionconditionsandexecutionlogic.
PatchBuildingPatchesareupdatestoaproductorproducts.WiXsupportstwodifferentwaysofcreatingthem:
UsingPatchCreationPropertieswhichrequiresthatyouhavetheWindowsInstaller3.0ornewerSDKinstalledforfullsupportofincludedexamples.UsingPurelyWiXwhichusesfunctionalityprovidedinWiXanddoesnotrequireadditionaltools.
Therearealsorestrictionsonhowpatchesarebuiltinordertoavoidproblemswheninstallingthem.
HowPatchesWorkPatchescontainacollectionoftransforms-mostoftenapairoftransformsforeachtargetproduct.Whenapatchisapplied,eachinstalledtargetproductisreinstalledindividuallywiththecorrespondingpatchtransformsapplied.Thesetransformscontainthedifferencesbetweenthattargetproductandtheupgradeproductthatmightcontainnewfileversionsandsizes,newregistrykeys,etc.
FormoreinformationaboutpatchingwithWindowsInstaller,readPatchingandUpgrades.
RestrictionsforPatchesTherearedifferentrestrictionsforpatchesbasedonwhattypeofpatchistobeinstalled.Therearethreetypesofpatches:
SmallupdatesdonotchangetheProductVersionpropertyofatargetproductandtypicallyrepresentasmallsubsetoffilestobeupdated.MinorupgradesdochangetheProductVersionpropertyofatargetproductandtypicallyrepresentalargersubsetoffilestobeupdated.MinorupgradesmightalsobeinstalledasupgradeMSIs.MajorupgradeschangeboththeProductVersionandProductCodeandcontainallfilesinaproduct.Shippingmajorupgradesasapatchis,however,notrecommendedandWiXdoesnotsupportbuildingmajorupgradepatchesbecauseoftheproblemstheycreate.
Forinformationaboutrestrictionsforeachtypeofpatch,readChangingtheProductCode.
UninstallablePatchesForapatchtobeuninstallable,theMsiPatchMetadatatablemustexistinthepatchpackageandmustcontaintheAllowRemovalpropertysetto1.ThiscanbeauthoredintothePatchCreationPropertiesfileusingthePatchMetadata/@AllowRemovalattributeorintothepatchXMLfileusingthePatch/@AllowRemovalattribute.
Besidethat,certaintablescannotbemodifiedintheupgradepackagefromwhichapatchisbuilt.ReadUninstallablePatchesforthecurrentlistoftables.Pyro.exewillerrorifoneofthesetableswouldbemodifiedwhenbuildingapatchXMLfile.
ThefollowingtableliststablesandcorrespondingelementsorattributesinWiX.
Table ElementorAttribute
BindImage File/@BindPath
Class Class
Complus Component/@ComPlusFlags
CreateFolder CreateFolder
DuplicateFile CopyFile
Environment Environment
Extension Extension
Font File/@FontTitle
IniFile IniFile
IsolatedComponent IsolatedComponent
LockPermissions Permission
MIME MIME
MoveFile CopyFile
ODBCAttribute ODBCDriver/Property
ODBCDataSource ODBCDataSource
ODBCDriver ODBCDriver
ODBCSourceAttribute ODBCDataSource/Property
ODBCTranslator ODBCTranslator
ProgId ProgId
PublishComponent Category
RemoveIniFile IniFile
SelfReg File/@SelfRegCost
ServiceControl ServiceControl
ServiceInstall ServiceInstall
TypeLib TypeLib
Verb Verb
Majorupgradepatchesarenotuninstallable.
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.
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.
WiXSchemaReferencesThissectioncontainsschemareferenceinformationforWiXandextensions.
WixschemaWixlocschemaDifxappschemaforWixDifxAppExtensionFirewallschemaforWixFirewallExtensionGamingschemaforWixGamingExtensionIisschemaforWixIIsExtensionIsolatedAppschemaforWixIsolatedAppExtensionLuxschemaforWixLuxExtensionNetfxschemaforWixNetFxExtensionOfficeAddinschemaforWixOfficeExtensionPsschemaforWixPSExtensionSqlschemaforWixSqlExtensionUtilschemaforWixUtilExtensionVsschemaforWixVSExtension
WixSchema
Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.
SchemafordescribingWindowsInstallerdatabasefiles(.msi/.msm/.pcp).
RootElementsIncludeWix
TargetNamespacehttp://schemas.microsoft.com/wix/2006/wi
DocumentShouldLookLike<?xmlversion="1.0"?><Includexmlns="http://schemas.microsoft.com/wix/2006/wi">...</Include><?xmlversion="1.0"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi">...</Wix>
Version3.5.1623.0
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.ResolveSource(min:0,max:unbounded):DeterminesthelocationofthesourceandsetstheSourceDirpropertyifthesourcehasnotbeenresolvedyet.
AttributesNone
SeeAlsoWixSchema
Version3.5.1623.0
AdminUISequenceElement
DescriptionNone
WindowsInstallerreferencesAdminUISequenceTable
ParentsFragment,Module,Product,UI
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
CostFinalize(min:0,max:unbounded):EndstheinternalinstallationcostingprocessbegunbytheCostInitializeaction.CostInitialize(min:0,max:unbounded):Initiatestheinternalinstallationcostingprocess.Custom(min:0,max:unbounded):Usetosequenceacustomaction.ExecuteAction(min:0,max:unbounded):Initiatestheexecutionsequence.FileCost(min:0,max:unbounded):Initiatesdynamiccostingofstandardinstallationactions.InstallAdminPackage(min:0,max:unbounded):Copiestheproductdatabasetotheadministrativeinstallationpoint.InstallFiles(min:0,max:unbounded):CopiesfilesspecifiedintheFiletablefromthesourcedirectorytothedestinationdirectory.InstallFinalize(min:0,max:unbounded):Markstheendofasequenceofactionsthatchangethesystem.InstallInitialize(min:0,max:unbounded):Marksthebeginningofasequenceofactionsthatchangethesystem.
InstallValidate(min:0,max:unbounded):Verifiesthatallcostedvolumeshaveenoughspacefortheinstallation.LaunchConditions(min:0,max:unbounded):QueriestheLaunchConditiontableandevaluateseachconditionalstatementrecordedthere.Show(min:0,max:unbounded)
AttributesNone
SeeAlsoWixSchema
Version3.5.1623.0
AdvertiseExecuteSequenceElement
DescriptionNone
WindowsInstallerreferencesAdvtExecuteSequenceTable
ParentsFragment,Module,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
CostFinalize(min:0,max:unbounded):EndstheinternalinstallationcostingprocessbegunbytheCostInitializeaction.CostInitialize(min:0,max:unbounded):Initiatestheinternalinstallationcostingprocess.CreateShortcuts(min:0,max:unbounded):Managesthecreationofshortcuts.Custom(min:0,max:unbounded):Usetosequenceacustomaction.TheonlycustomactionsthatareallowedintheAdvtExecuteSequencearetype19(0x013)type35(0x023)andtype51(0x033).InstallFinalize(min:0,max:unbounded):Markstheendofasequenceofactionsthatchangethesystem.InstallInitialize(min:0,max:unbounded):Marksthebeginningofasequenceofactionsthatchangethesystem.InstallValidate(min:0,max:unbounded):Verifiesthatallcostedvolumeshaveenoughspacefortheinstallation.MsiPublishAssemblies(min:0,max:unbounded):ManagestheadvertisementofCLRandWin32assemblies.PublishComponents(min:0,max:unbounded):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
Version3.5.1623.0
AllocateRegistrySpaceElement
DescriptionEnsurestheneededamountofspaceexistsintheregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesAllocateRegistrySpaceAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
AppDataElement
DescriptionOptionalwayfordefiningAppData,generallyusedforcomplexCDATA.
WindowsInstallerreferencesNone
ParentsCategory
SeeAlsoWixSchema
Version3.5.1623.0
AppIdElement
DescriptionApplicationIDcontainingDCOMinformationfortheassociatedapplicationGUID.IfthiselementisnestedunderaFragment,Module,orProductelement,itmustbeadvertised.
WindowsInstallerreferencesAppIdTable,RegistryTable
ParentsComponent,File,Fragment,Module,Product,TypeLib
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Class(min:0,max:unbounded)
Attributes
Name Type Description 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
Version3.5.1623.0
AppSearchElement
DescriptionUsesfilesignaturestosearchforexistingversionsofproducts.TheAppSearchactionmayusethisinformationtodeterminewhereupgradesaretobeinstalled.TheAppSearchactioncanalsobeusedtosetapropertytotheexistingvalueofanregistryor.inifileentry.AppSearchshouldbeauthoredintotheInstallUISequencetableandInstallExecuteSequencetable.TheinstallerpreventsTheAppSearchactionfromrunningintheInstallExecuteSequencesequenceiftheactionhasalreadyruninInstallUISequencesequence.TheAppSearchactionsearchesforfilesignaturesusingtheCompLocatortablefirst,theRegLocatortablenext,thentheIniLocatortable,andfinallytheDrLocatortable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesAppSearchTable,AppSearchAction
ParentsInstallExecuteSequence,InstallUISequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthatthisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Overridable YesNoType If"yes",thesequencingofthisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,ComponentSearch,FileSearch,IniFileSearch,RegistrySearch
Version3.5.1623.0
AssemblyNameElement
DescriptionTheMsiAssemblyNametablespecifiestheschemafortheelementsofastrongassemblycachenamefora.NETFrameworkorWin32assembly.ConsiderusingtheAssemblyattributeonFileelementtohavethetoolsetpopulatetheseentriesautomatically.
WindowsInstallerreferencesMsiAssemblyNameTable
ParentsFile
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String NameoftheattributeassociatedwiththevaluespecifiedintheValuecolumn.
Yes
Value String ValueassociatedwiththenamespecifiedintheNamecolumn.
SeeAlsoWixSchema
Version3.5.1623.0
BillboardElement
DescriptionBillboardtodisplayduringinstallofaFeature
WindowsInstallerreferencesBillboardTable,BBControlTable
ParentsBillboardAction
InnerTextNone
ChildrenSequence(min:1,max:1)1. Control(min:0,max:unbounded):Onlycontrolsofstatictype
suchas:Text,Bitmap,Icon,orcustomcontrolcanbeplacedonabillboard.
Attributes
Name Type Description Required
Id String UniqueidentifierfortheBillboard. Yes
Feature String FeaturewhosestatedeterminesiftheBillboardisshown.
SeeAlsoWixSchema
Version3.5.1623.0
BillboardActionElement
DescriptionBillboardactionduringwhichchildBillboardsaredisplayed
WindowsInstallerreferencesBillboardTable,BBControlTable
ParentsUI
InnerTextNone
ChildrenSequence(min:1,max:1)1. Billboard(min:1,max:unbounded):OrderofBillboardelements
determinesorderofdisplay
Attributes
Name Type Description Required
Id String ActionnamethatdetermineswhentheBillboardshouldbeshown.
Yes
SeeAlsoWixSchema
Version3.5.1623.0
BinaryElement
DescriptionBinarydatausedforCustomActionelementsandUIcontrols.
WindowsInstallerreferencesBinaryTable
ParentsControl,Fragment,Module,Product,UI
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
Attributes
Name Type Description Required
Id String TheIdcannotbylongerthan55characters.InordertopreventerrorsincaseswheretheIdismodularized,itshouldnotbelongerthan18characters.
Yes
SourceFile String Pathtothebinaryfile.
src String Thisattributehas
beendeprecated;pleaseusetheSourceFileattributeinstead.
SuppressModularization YesNoType UsetosuppressmodularizationofthisBinaryidentifierinmergemodules.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema
Version3.5.1623.0
BinaryRefElement
DescriptionUsedonlyforPatchFamiliestoincludeonlyabinarytableentryinapatch.
WindowsInstallerreferencesNone
ParentsPatchFamily
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifieroftheBinaryelementtoreference.
Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema
Version3.5.1623.0
BindImageElement
DescriptionBindseachexecutableorDLLthatmustbeboundtotheDLLsimportedbyit.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesBindImageTable,BindImageAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
BundleElement
DescriptionTherootelementforcreatingbundledpackages.
WindowsInstallerreferencesNone
ParentsWix
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Chain(min:1,max:1)Container(min:0,max:unbounded)ContainerRef(min:0,max:unbounded)LayoutDirectory(min:0,max:unbounded)LayoutDirectoryRef(min:0,max:unbounded)UX(min:1,max:1)Variable(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
ChainComponentSearchContainerContainerRefDirectorySearchFileSearchLayoutDirectoryLayoutDirectoryRef
ProductSearchRegistrySearchUXVariable
AttributesNone
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
ChainElement
DescriptionContainsthechainofpackagestoinstall.
WindowsInstallerreferencesNone
ParentsBundle
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
ExePackage(min:0,max:unbounded)MsiPackage(min:0,max:unbounded)MspPackage(min:0,max:unbounded)MsuPackage(min:0,max:unbounded)PackageGroupRef(min:0,max:unbounded)
AttributesNone
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
ComboBoxElement
DescriptionSetofitemsforaparticularComboBoxcontroltiedtoaninstallProperty
WindowsInstallerreferencesComboBoxTable,ControlTable,DialogTable
ParentsControl,UI
InnerTextNone
ChildrenSequence(min:1,max:1)1. ListItem(min:0,max:unbounded):entryforComboBoxtable
Attributes
Name Type Description Required
Property String Propertytiedtothisgroup Yes
SeeAlsoWixSchema
Version3.5.1623.0
ComplianceCheckElement
DescriptionAddsarowtotheCCPSearchtable.
WindowsInstallerreferencesCCPSearchTable,SignatureTable
ParentsFragment,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Sequence(min:1,max:1)1. ComplianceDrive(min:0,max:1):Startssearchesfromthe
CCP_DRIVE.2. ComponentSearch(min:0,max:unbounded)3. RegistrySearch(min:0,max:unbounded)4. IniFileSearch(min:0,max:unbounded)5. DirectorySearch(min:0,max:unbounded)
AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
AttributesNone
SeeAlsoWixSchema,Property
Version3.5.1623.0
ComplianceDriveElement
DescriptionSetstheparentofanestedDirectorySearchelementtoCCP_DRIVE.
WindowsInstallerreferencesNone
ParentsComplianceCheck,Property
InnerTextNone
ChildrenChoiceofelements(min:1,max:1)
DirectorySearch(min:1,max:1)DirectorySearchRef(min:1,max:1)
AttributesNone
SeeAlsoWixSchema
Version3.5.1623.0
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
EventSourceFileShareFirewallExceptionInternetShortcutMessageQueueMessageQueuePermissionPerformanceCategoryServiceConfigSqlDatabaseSqlScriptSqlStringUserWebAppPoolWebDirWebFilterWebPropertyWebServiceExtensionWebSiteWebVirtualDirXmlConfigXmlFile
Attributes
Name Type Description
ComPlusFlags Integer SetthisattributetocreateaComPlusentry.Thevalueshouldbetheexportflagsusedduringthegenerationofthe.msifile.FormoreinformationseetheCOM+documentationinthePlatformSDK.
Directory String SetstheDirectoryofthe
Component.IfthiselementisnestedunderaDirectoryelement,thisvaluedefaultstothevalueoftheparentDirectory/@Id.
DisableRegistryReflection YesNoType Setthisattributeto'yes'inordertodisableregistryreflectiononallexistingandnewregistrykeysaffectedbythiscomponent.Whensetto'yes',theWindowsInstallercallstheRegDisableReflectionKeyoneachkeybeingaccessedbythecomponent.ThisbitisavailablewithWindowsInstallerversion4.0andisignoredon32-bitsystems.
DiskId Integer ThisattributeprovidesadefaultDiskIdattributeforallchildFileelements.SpecifyingtheDiskIdonaComponentelementwilloverrideanyDiskIdattributessetbyparentDirectoryorDirectoryRefelements.SeetheFileelement'sDiskIdattributeformoreinformationaboutthepurposeoftheDiskId.
Feature String Identifiesafeaturetowhichthiscomponent
belongs,asashorthandforachildComponentRefelementoftheFeatureelement.ThevalueofthisattributeshouldcorrespondtotheIdattributeofaFeatureelementauthoredelsewhere.Notethatasinglecomponentcanbelongtomultiplefeaturesbutthisattributeallowsyoutospecifyonlyasinglefeature.
Guid ComponentGuid Thisvalueshouldbeaguidthatuniquelyidentifiesthiscomponent'scontents,language,platform,andversion.Ifomitted,thedefaultvalueis'*'whichindicatesthatthelinkershouldgenerateastableguid.Generatableguidsaresupportedonlyforcomponentswithasinglefileasthecomponent'skeypathornofilesandaregistryvalueasthekeypath.It'salsopossibletosetthevaluetoanemptystringtospecifyanunmanagedcomponent.Unmanagedcomponentsareasecurityvulnerabilitybecausethecomponentcannotberemovedor
repairedbyWindowsInstaller(itisessentiallyanunpatchable,permanentcomponent).Therefore,aguidshouldalwaysbespecifiedforanycomponentwhichcontainsresourcesthatmayneedtobepatchedinthefuture.
Id String Componentidentifier;thisistheprimarykeyforidentifyingcomponents.Ifomitted,thecompilerdefaultstheidentifiertotheidentifieroftheresourcethatistheexplicitkeypathofthecomponent(forexample,achildFileelementwithKeyPathattributewithvalue'yes'.
KeyPath YesNoType Ifthisattribute'svalueissetto'yes',thentheDirectoryofthisComponentisusedastheKeyPath.TosetaRegistrykeyorFileastheKeyPathofacomponent,settheKeyPathattributeto'yes'ononeofthosechildelements.
Location Enumeration Optionalvaluethatspecifiesthelocationthatthecomponentcanberunfrom.Thisattribute's
valuemustbeoneofthefollowing:local
Preventsthecomponentfromrunningfromthesourceorthenetwork(thisisthedefaultbehaviorifthisattributeisnotset).
sourceEnforcesthatthecomponentcanonlyberunfromthesource(itcannotberunfromtheuser'scomputer).
eitherAllowsthecomponenttorunfromsourceorlocally.
NeverOverwrite YesNoType Ifthisattributeissetto'yes',theinstallerdoesnotinstallorreinstallthecomponentifakeypathfileorakeypathregistryentryforthecomponentalreadyexists.Theapplicationdoesregisteritselfasaclientofthecomponent.UsethisflagonlyforcomponentsthatarebeingregisteredbytheRegistrytable.Donotusethisflagfor
componentsregisteredbytheAppId,Class,Extension,ProgId,MIME,andVerbtables.
Permanent YesNoType Ifthisattributeissetto'yes',theinstallerdoesnotremovethecomponentduringanuninstall.TheinstallerregistersanextrasystemclientforthecomponentintheWindowsInstallerregistrysettings(whichbasicallyjustmeansthatatleastoneproductisalwaysreferencingthiscomponent).Notethatthisoptiondiffersfromthebehaviorofnotsettingaguidbecausealthoughthecomponentispermanent,itisstillpatchable(becauseWindowsInstallerstilltracksit),it'sjustnotuninstallable.
Shared YesNoType Ifthisattribute'svalueissetto'yes',enablesadvancedpatchingsemanticsforComponentsthataresharedacrossmultipleProducts.Specifically,theWindowsInstallerwillcachethesharedfilestoimprovepatchuninstall.ThisfunctionalityisavailableinWindows
Installer4.5andlater.
SharedDllRefCount YesNoType Ifthisattribute'svalueissetto'yes',theinstallerincrementsthereferencecountinthesharedDLLregistryofthecomponent'skeyfile.Ifthisbitisnotset,theinstallerincrementsthereferencecountonlyifthereferencecountalreadyexists.
Transitive YesNoType Ifthisattributeissetto'yes',theinstallerreevaluatesthevalueofthestatementintheConditionuponareinstall.IfthevaluewaspreviouslyFalseandhaschangedtoTrue,theinstallerinstallsthecomponent.IfthevaluewaspreviouslyTrueandhaschangedtoFalse,theinstallerremovesthecomponentevenifthecomponenthasotherproductsasclients.
UninstallWhenSuperseded YesNoType Ifthisattributeissetto'yes',theinstallerwilluninstalltheComponent'sfilesandregistrykeyswhenitissupersededbyapatch.ThisfunctionalityisavailableinWindowsInstaller4.5andlater.
Win64 YesNoType Setthisattributeto'yes'tomarkthisasa64-bitcomponent.Thisattributefacilitatestheinstallationofpackagesthatincludeboth32-bitand64-bitcomponents.Ifthisbitnotset,thecomponentisregisteredasa32-bitcomponent.Ifthisisa64-bitcomponentreplacinga32-bitcomponent,setthisbitandassignanewGUIDintheGuidattribute.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
HowTosandExamplesHowTo:Addafiletoyourinstaller
SeeAlsoWixSchema,ComponentRef,Media
Version3.5.1623.0
ComponentGroupElement
DescriptionGroupstogethermultiplecomponentstobeusedinotherlocations.
WindowsInstallerreferencesNone
ParentsFragment,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Component(min:0,max:unbounded)ComponentGroupRef(min:0,max:unbounded)ComponentRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
Attributes
Name Type Description Required
Id String IdentifierfortheComponentGroup. Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,ComponentGroupRef
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
ComponentSearchElement
DescriptionSearchesforfileordirectoryandassignstovalueofparentProperty.
WindowsInstallerreferencesCompLocatorTable,SignatureTable
ParentsComplianceCheck,Property
InnerTextNone
ChildrenChoiceofelements(min:0,max:1)
DirectorySearch(min:0,max:1)DirectorySearchRef(min:0,max:1)FileSearch(min:0,max:1)FileSearchRef(min:0,max:1)
Attributes
Name Type Description Required
Id String Yes
Guid Guid ThecomponentIDofthecomponentwhosekeypathistobeusedforthesearch.
Type Enumeration MustbefileiflastchildisFileSearchelementandmustbedirectoryiflastchildisDirectorySearchelement.Thisattribute'svaluemustbeoneofthefollowing:directory
Thekeypathofthecomponentisadirectory.
fileThekeypathofthecomponentisafile.Thisisthedefaultvalue.
SeeAlsoWixSchema,IniFileSearch,RegistrySearch
Version3.5.1623.0
ConditionElement
DescriptionConditionsforcomponents,controls,features,andproducts.Theconditionisspecifiedintheinnertextoftheelement.
WindowsInstallerreferencesComponentTable,ControlConditionTable,ConditionTable,LaunchConditionTable
ParentsComponent,Control,Feature,Fragment,PermissionEx,Product
InnerText(xs:string)UnderaComponentelement,theconditionbecomestheconditionofthecomponent.UnderaControlelement,theconditionbecomesaControlConditionentry.UnderaFeatureelement,theconditionbecomesaConditionentry.UnderaFragmentorProductelement,theconditionbecomesaLaunchConditionentry.
ChildrenNone
Attributes
Name Type Description 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
Version3.5.1623.0
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
Version3.5.1623.0
ConfigurationDataElement
DescriptionDatatouseasinputtoaconfigurablemergemodule.
WindowsInstallerreferencesNone
ParentsMerge
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Name String KeyintotheModuleConfigurationtable.
Yes
Value String Valuetobepassedtoconfigurablemergemodule.
Yes
SeeAlsoWixSchema
Version3.5.1623.0
ContainerElement
DescriptionRepresentationofafilethatcontainsoneormorefiles.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Payload(min:0,max:unbounded)
Attributes
Name Type Description Required
Name String Thedestinationpathandfilenameforthiscontainer.
Yes
SeeAlsoWixSchema
Version3.5.1623.0
ContainerRefElement
DescriptionCreateareferencetoanexistingContainerelement.
WindowsInstallerreferencesNone
ParentsBundle
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifierofContainerelementtoreference.
Yes
SeeAlsoWixSchema,Container
Version3.5.1623.0
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
Version3.5.1623.0
CopyFileElement
DescriptionCopyormoveanexistingfileonthetargetmachine,orcopyafilethatisbeinginstalled,toanotherdestination.WhenthiselementisnestedunderaFileelement,theparentfilewillbeinstalled,thencopiedtothespecifieddestinationiftheparentcomponentofthefileisselectedforinstallationorremoval.WhenthiselementisnestedunderaComponentelementandnoFileIdattributeisspecified,thefiletocopyormovemustalreadybeonthetargetmachine.WhenthiselementisnestedunderaComponentelementandtheFileIdattributeisspecified,thespecifiedfileisinstalled,thencopiedtothespecifieddestinationiftheparentcomponentisselectedforinstallationorremoval(usethisoptiontocontrolthecopyofafileinadifferentcomponentbytheparentcomponent'sinstallationstate).Ifthespecifieddestinationdirectoryisthesameasthedirectorycontainingtheoriginalfileandthenamefortheproposedsourcefileisthesameastheoriginal,thennoactiontakesplace.
WindowsInstallerreferencesDuplicateFileTable,MoveFileTable
ParentsComponent,File
InnerTextNone
ChildrenNone
Attributes
Name Type 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
Version3.5.1623.0
CostFinalizeElement
DescriptionEndstheinternalinstallationcostingprocessbegunbytheCostInitializeaction.AnystandardorcustomactionsthataffectcostingshouldbesequencedbeforetheCostInitializeaction.CalltheFileCostactionimmediatelyfollowingtheCostInitializeactionandthencalltheCostFinalizeactiontomakeallfinalcostcalculationsavailabletotheinstallerthroughtheComponenttable.TheCostFinalizeactionmustbeexecutedbeforestartinganyuserinterfacesequencewhichallowstheusertoviewormodifyFeaturetableselectionsordirectories.TheCostFinalizeactionqueriestheConditiontabletodeterminewhichfeaturesarescheduledtobeinstalled.CostingisdoneforeachcomponentintheComponenttable.TheCostFinalizeactionalsoverifiesthatallthetargetdirectoriesarewritablebeforeallowingtheinstallationtocontinue.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesCostFinalizeAction
ParentsAdminExecuteSequence,AdminUISequence,AdvertiseExecuteSequence,InstallExecuteSequence,InstallUISequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethe
positionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,CostInitialize,FileCost
Version3.5.1623.0
CostInitializeElement
DescriptionInitiatestheinternalinstallationcostingprocess.AnystandardorcustomactionsthataffectcostingshouldbesequencedbeforetheCostInitializeaction.CalltheFileCostactionimmediatelyfollowingtheCostInitializeaction.ThencalltheCostFinalizeactionfollowingtheCostInitializeactiontomakeallfinalcostcalculationsavailabletotheinstallerthroughtheComponenttable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesCostInitializeAction
ParentsAdminExecuteSequence,AdminUISequence,AdvertiseExecuteSequence,InstallExecuteSequence,InstallUISequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,FileCost,CostFinalize
Version3.5.1623.0
CreateFolderElement
DescriptionCreatefolderaspartofparentComponent.
WindowsInstallerreferencesCreateFolderTable
ParentsComponent
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Permission(min:0,max:unbounded):ACLpermissionPermissionEx(min:0,max:unbounded):CanalsoconfiguretheACLsforthisfolder.Shortcut(min:0,max:unbounded):Non-advertisedshortcuttothisfolder,ShortcutTargetispresettothefolderAnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
PermissionEx
Attributes
Name Type Description Required
Directory String IdentifierofDirectorytocreate.DefaultstoDirectoryofparentComponent.
SeeAlsoWixSchema,RemoveFolder
Version3.5.1623.0
CreateFoldersElement
DescriptionCreatesemptyfoldersforcomponentsthataresettobeinstalled.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesCreateFoldersAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
CreateShortcutsElement
DescriptionManagesthecreationofshortcuts.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesCreateShortcutsAction
ParentsAdvertiseExecuteSequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
CustomActionElement
DescriptionSpecifiesacustomactiontobeaddedtotheMSICustomActiontable.Variouscombinationsoftheattributesforthiselementcorrespondtodifferentcustomactiontypes.FormoreinformationaboutcustomactionsseetheCustomActionTypestopiconMSDN.
WindowsInstallerreferencesCustomActionTable
ParentsFragment,Module,Product
InnerText(xs:string)ThetextnodeisonlyvalidiftheScriptattributeisspecified.Inthatcase,thetextnodecontainsthescripttoembed.
ChildrenNone
Attributes
Name Type Description
BinaryKey String ThisattributeisareferencetoaBinaryelementwithmatchingIdattribute.Thatbinarystreamcontainsthecustomactionforuseduringinstall.Thecustomactionwillnotbeinstalledintoatargetdirectory.ThisattributeiswiththeDllEntryattributetospecifythecustomactionDLLtouseforatype1customaction,withtheExeCommandattributetospecifyatype17customactionthatrunsanembeddedexecutable,orwiththeVBScriptCallorJScriptCallattributestospecifyatype5or6customaction.
Directory String ThisattributespecifiesareferencetoaDirectory
elementwithmatchingIdattributecontainingadirectorypath.ThisattributeistypicallyusedwiththeExeCommandattributetospecifythesourceexecutableforatype34orwiththeValueattributetospecifyaformattedstringtoplaceinthespecifiedDirectoryentryinatype35customaction.
DllEntry String Thisattributespecifiesthenameofafunctioninacustomactiontoexecute.ThisattributeisusedwiththeBinaryKeyattributetocreateatype1customaction,orwiththeFileKeyattributetocreateatype17customaction.
Error String ThisattributespecifiesanindexintheMSIErrortabletouseasanerrormessageforacustomactionthatdisplaystheerrormessageandabortsaproduct'sinstallation.
ExeCommand String Thisattributespecifiesthecommandlineparameterstosupplytoanexternallyexecutable.ThisattributeistypicallyusedwiththeBinaryKeyattributeforatype2customaction,theFileKeyattributeforatype18customaction,thePropertyattributeforatype50customaction,ortheDirectoryattributeforatype34customactionthatspecifytheexecutabletorun.
Execute Enumeration Thisattributeindicatestheschedulingofthecustomaction.Thisattribute'svaluemustbeoneofthefollowing:commit
Indicatesthatthecustomactionwillrunaftersuccessfulcompletionoftheinstallationscript(attheendoftheinstallation).
deferredIndicatesthatthecustomactionrunsin-script(possiblywithelevatedprivileges).
firstSequenceIndicatesthatthecustomactionwillonlyruninthefirstsequencethatrunsit.
immediateIndicatesthatthecustomactionwillrunduringnormalprocessingtimewithuserprivileges.Thisisthedefault.
oncePerProcessIndicatesthatthecustomactionwillonlyruninthefirstsequencethatrunsitinthesameprocess.
rollbackIndicatesthatacustomactionwillrunintherollbacksequencewhenafailureduringinstallation,usuallytoundochangesmadebyadeferredcustomaction.
secondSequenceIndicatesthatacustomactionshouldberunasecondtimeifitwaspreviouslyruninanearliersequence.
FileKey String ThisattributespecifiesareferencetoaFileelementwithmatchingIdattributethatexecutethecustomactioncodeinthefileafterthefileisinstalled.ThisattributeistypicallyusedwiththeExeCommandattributetospecifyatype18customactionthatrunsaninstalledexecutable,withtheDllEntryattributetospecifyaninstalledcustomactionDLLtouseforatype17customaction,orwiththeVBScriptCallorJScriptCallattributestospecifyatype21or22customaction.
HideTarget YesNoType EnsurestheinstallerdoesnotlogtheCustomActionDataforthedeferredcustomaction.
Id String Theidentifierofthecustomaction.
Impersonate YesNoType ThisattributespecifieswhethertheWindowsInstaller,whichexecutesasLocalSystem,shouldimpersonatetheusercontextoftheinstallinguserwhenexecutingthiscustomaction.Typicallythevalueshouldbe'yes',exceptwhenthecustomactionneedselevatedprivilegestoapplychangestothemachine.
JScriptCall String ThisattributespecifiesthenameoftheJScriptfunctiontoexecuteinascript.ThescriptmustbeprovidedinaBinaryelementidentifiedbytheBinaryKeyattributedescribedabove.Inotherwords,thisattributemustbespecifiedinconjunctionwiththeBinaryKeyattribute.
PatchUninstall YesNoType ThisattributespecifiesthattheWindowsInstaller,executethecustomactiononlywhenpatchisbeinguninstalled.ThesecustomactionsshouldalsobeconditionedusingtheMSIPATCHREMOVEpropertytoensureproperdownlevel(lessthanWindowsInstaller4.5)behavior.
Property String ThisattributespecifiesareferencetoaPropertyelementwithmatchingIdattributethatspecifiesthePropertytobeusedorupdatedonexecutionofthiscustomaction.ThisattributeisusedwiththeValueattributetocreateatype51customactionthatparsesthetextinValueandplacesitintothespecifiedProperty.attributeisalsousedwiththeExeCommandattributetocreateatype50customactionthatusesthevalueofthegivenpropertytospecifythepathtotheexecutable.Type51customactionsareoftenusefultopassvaluestoadeferredcustomaction.Seehttp://msdn.microsoft.com/library/aa370543.aspxformoreinformation.
Return Enumeration Setthisattributetosetthereturnbehaviorofthecustomaction.Thisattribute'svaluemustbeoneofthefollowing:asyncNoWait
Indicatesthatthecustomactionwillrunasyncronouslyandexecutionmaycontinueaftertheinstallerterminates.
asyncWaitIndicatesthatthecustomactionwillrunasynchronouslybuttheinstallerwillwaitforthereturncodeatsequenceend.
checkIndicatesthatthecustomactionwillrunsynchronouslyandthereturncodewillbecheckedforsuccess.Thisisthedefault.
ignoreIndicatesthatthecustomactionwillrunsynchronouslyandthereturncodewillnotbechecked.
Script Enumeration Createsatype37or38customaction.oftheelementshouldcontainthescripttobeembeddedinthepackage.Thisattribute'svaluemustbeoneofthefollowing:jscript
vbscript
SuppressModularization YesNoType Usetosuppressmodularizationofthiscustomactionnameinmergemodules.benecessaryfortable-drivencustomactionsbecausethetablenamewhichtheyinteractwithcannotbemodularized,sotherecanonlyoneinstanceofthetable.
TerminalServerAware YesNoType Thisattributespecifiescontrolswhetherthecustomactionwillimpersonatetheuserduringper-machineinstallsonTerminal
Servermachines.Deferredexecutioncustomactionsthatdonotspecifythisattribute,orexplicitlysetit'no',willrunwithnouserimpersonationonTerminalServermachinesduringper-machineinstallations.onlyapplicablewheninstallingontheServer2003family.
Value String Thisattributespecifiesastringvaluetouseinthecustomaction.ThisattributewiththePropertyattributetosetthepropertyaspartofatype51customactionorwiththeDirectoryattributetosetadirectorypathinthattableinatype35customaction.ThevaluecanbealiteralvalueorderivedfromaelementusingtheFormatted
VBScriptCall String ThisattributespecifiesthenameoftheVBScriptSubroutinetoexecuteinascript.ThescriptmustbeprovidedinaBinaryelementidentifiedbytheBinaryKeyattributedescribedabove.Inotherwords,thisattributemustbespecifiedinconjunctionwiththeBinaryKeyattribute.
Win64 YesNoType Specifiesthatascriptcustomactiontargetsa64-bitplatform.ValidonlywhenusedwithScript,VBScriptCall,andJScriptCallattributes.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,Custom,CustomActionRef
Version3.5.1623.0
CustomActionRefElement
DescriptionThiswillcausetheentirecontentsoftheFragmentcontainingthereferencedCustomActiontobeincludedintheinstallerdatabase.
WindowsInstallerreferencesNone
ParentsFragment,Module,PatchFamily,Product
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifieroftheCustomActiontoreference.
Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,CustomAction
Version3.5.1623.0
CustomPropertyElement
DescriptionAcustompropertyforthePatchMetadatatable.
WindowsInstallerreferencesNone
ParentsPatchMetadata
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Company String Thenameofthecompany. Yes
Property String Thenameofthemetadataproperty.
Yes
Value String Valueofthemetadataproperty. Yes
SeeAlsoWixSchema
Version3.5.1623.0
CustomTableElement
DescriptionDefinesacustomtableforusefromacustomaction.
WindowsInstallerreferencesNone
ParentsFragment,Module,Product
InnerTextNone
ChildrenSequence(min:1,max:1)1. Column(min:0,max:unbounded):Columndefinitionforthe
customtable.2. Row(min:0,max:unbounded):Rowdefinitionforthecustom
table.
Attributes
Name Type Description Required
Id String Identifierforthecustomtable. Yes
SeeAlsoWixSchema
Version3.5.1623.0
DataElement
DescriptionUsedforaCustomTable.SpecifiesthedatafortheparentRowandspecifiedColumn.
WindowsInstallerreferencesNone
ParentsRow
InnerText(xs:string)Adatavalue
ChildrenNone
Attributes
Name Type Description Required
Column String Specifiesinwhichcolumntoinsertthisdata.
Yes
SeeAlsoWixSchema
Version3.5.1623.0
DeleteServicesElement
DescriptionStopsaserviceandremovesitsregistrationfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesDeleteServicesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
DependencyElement
DescriptionDeclaresadependencyonanothermergemodule.
WindowsInstallerreferencesNone
ParentsModule
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
RequiredId String Identifierofthemergemodulerequiredbythemergemodule.
Yes
RequiredLanguage Integer NumericlanguageIDofthemergemoduleinRequiredID.
Yes
RequiredVersion String VersionofthemergemoduleinRequiredID.
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
DialogRefElement
DescriptionReferencetoaDialog.Thiswillcausetheentirereferencedsection'scontentstobeincludedintheinstallerdatabase.
WindowsInstallerreferencesNone
ParentsUI
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifieroftheDialogtoreference.
Yes
SeeAlsoWixSchema,Dialog
Version3.5.1623.0
DigitalCertificateElement
DescriptionAddsadigitalcertificate.
WindowsInstallerreferencesMsiDigitalCertificateTable
ParentsDigitalSignature,PackageCertificates,PatchCertificates
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierforacertificatefile. Yes
SourceFile String Thepathtothecertificatefile. Yes
SeeAlsoWixSchema
Version3.5.1623.0
DigitalSignatureElement
DescriptionAddsadigitalsignature.
WindowsInstallerreferencesMsiDigitalSignatureTable
ParentsMedia
InnerTextNone
ChildrenChoiceofelements(min:1,max:1)
DigitalCertificate(min:1,max:1)
Attributes
Name Type Description Required
SourceFile String Thepathtosignature'soptionalhashfile.
SeeAlsoWixSchema
Version3.5.1623.0
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,etc).isrecommendedthatthisattributebeavoidedandthatdevelopersinstalltheirComponentsunderstandarddirectorieswithuniquenamesinstead(forexample,"ProgramFilesFolder\CompanyNameProductNameVersion").ItisnotethatonceadirectoryisassignedaComponentGuidGenerationSeedthevaluemustnotchangeuntildirectorynamechanges.
DiskId Integer Setsthedefaultdiskidentifierforthefilescontainedinthisdirectory.Thisattribute'svaluemaybeoverriddenbyachildComponent,Directory,orFileelement.SeetheFileorMergeelements'DiskIdattributeformoreinformation.
FileSource String Usedtosetthefilesystemsourceforthisdirectory'schildelements.Formoreinformation,seesourcefiles.
LongName LongFileNameType Thisattributehasbeendeprecated;pleaseusetheNameattributeinstead.
LongSource LongFileNameType Thisattributehasbeendeprecated;pleaseusetheSourceNameattributeinstead.
Name LongFileNameType Thenameofthedirectory.
Donotspecifythisattribute(ortheLongNameattribute)ifthisdirectoryrepresentsdirectoryastheparent(seetheWindowsInstallerSDK'sDirectorytableinformationaboutthe"."operator).
InpriorversionsoftheWiXtoolset,thisattributespecifiedtheshortdirectoryname.attribute'svaluemaynowbeeitherashortorlongdirectoryname.Ifashortdirectorynameisspecified,theShortNameattributemaynotbespecified.nameisspecified,theLongNameattributemaynotbespecified.isalongdirectoryname,theShortNameattributemaybeomittedtoallowWiXtoattempttogenerateauniqueshortdirectoryname.However,ifthisnamecollideswithanotherdirectoryoryouwishtomanuallyspecifyshortdirectoryname,thentheShortNameattributemaybespecified.
ShortName ShortFileNameType Theshortnameofthedirectoryin8.3format.attributeshouldonlybesetifthereisaconflictbetween
generatedshortdirectorynamesortheuserwantstomanuallyspecifytheshortdirectoryname.
ShortSourceName ShortFileNameType Theshortnameofthedirectoryonthesourcemediain8.3format.shouldonlybesetifthereisaconflictbetweengeneratedshortdirectorynamesuserwantstomanuallyspecifytheshortsourcedirectoryname.
SourceName LongFileNameType Thenameofthedirectoryonthesourcemedia.attributeisnotspecified,WindowsInstallerwilldefaulttotheNameattribute.
InpriorversionsoftheWiXtoolset,thisattributespecifiedtheshortsourcedirectoryname.Thisattribute'svaluemaynowbeeitherashortorlongdirectoryname.directorynameisspecified,theShortSourceNameattributemaynotbespecified.Ifalongdirectorynameisspecified,theLongSourceattributemaynotbespecified.Also,ifthisvalueisalongdirectoryname,theShortSourceNameattributemaybeomittedtotoattempttogenerateauniqueshortdirectoryname.However,ifthisnamecollides
withanotherdirectoryoryouwishtomanuallyspecifyshortdirectoryname,thentheShortSourceNameattributemaybespecified.
src String Thisattributehasbeendeprecated;pleaseusetheFileSourceattributeinstead.
HowTosandExamplesHowTo:Addafiletoyourinstaller
SeeAlsoWixSchema,DirectoryRef
Version3.5.1623.0
DirectoryRefElement
DescriptionCreateareferencetoaDirectoryelementinanotherFragment.
WindowsInstallerreferencesNone
ParentsFragment,Module,PatchFamily,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Component(min:0,max:unbounded)Directory(min:0,max:unbounded)Merge(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
Attributes
Name Type Description Required
Id String TheidentifieroftheDirectoryelementtoreference.
Yes
DiskId Integer Setsthedefaultdiskidentifierforthefilescontainedinthisdirectory.Thisattribute'svaluemaybeoverriddenbyachildComponent,Directory,MergeorFileelement.SeetheFileorMergeelements'DiskIdattributeformoreinformation.
FileSource String UsedtosetthefilesystemsourceforthisDirectoryRef'schildelements.Formoreinformation,seeSpecifyingsourcefiles.
src String Thisattributehasbeendeprecated;pleaseusetheFileSourceattributeinstead.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
HowTosandExamplesHowTo:Addafiletoyourinstaller
SeeAlsoWixSchema,Directory
Version3.5.1623.0
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/@Depthattributeisgreaterthan1,theFileSearch/@IdattributemustbeabsentorthesameastheparentDirectorySearch/@Idattributevalue,unlesstheparentDirectorySearch/@AssignToPropertyattributevalueis'yes'.
HowTosandExamplesHowTo:ChecktheversionnumberofafileduringinstallationHowTo:ReferenceanotherDirectorySearchelementHowTo:Gettheparentdirectoryofafilesearch
SeeAlsoWixSchema,ComponentSearch,IniFileSearch,RegistrySearch
Version3.5.1623.0
DirectorySearchRefElement
DescriptionReferencesanexistingDirectorySearchelement.
WindowsInstallerreferencesNone
ParentsComplianceDrive,ComponentSearch,DirectorySearch,DirectorySearchRef,IniFileSearch,Property,RegistrySearch
InnerTextNone
ChildrenChoiceofelements(min:0,max:1)
DirectorySearch(min:0,max:1)DirectorySearchRef(min:0,max:1)FileSearch(min:0,max:1)FileSearchRef(min:0,max:1)
Attributes
Name Type Description 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
Version3.5.1623.0
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
Version3.5.1623.0
DuplicateFilesElement
DescriptionDuplicatesfilesinstalledbytheInstallFilesaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesDuplicateFilesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
EmbeddedChainerElement
DescriptionNone
WindowsInstallerreferencesMsiEmbeddedChainerTable
ParentsFragment,Module,Product
InnerText(xs:string)Elementvalueisthecondition.CDATAmaybeusedtowhenaconditioncontainsmanyXMLcharactersthatmustbeescaped.ItisimportanttonotethateachEmbeddedChainerelementmusthaveamutuallyexclusiveconditiontoensurethatonlyoneembeddedchainerwillexecuteatatime.Iftheconditionsarenotmutuallyexclusivethechainerthatexecutesisundeterministic.
ChildrenNone
Attributes
Name Type Description Required
Id String Uniqueidentifierforembeddedchainer.
Yes
BinarySource String ReferencetotheBinaryelementthatcontainsthechainerexecuteable.MutuallyexclusivewiththeFileSourceandPropertySourceattributes.
CommandLine String Valuetoappendtothetransactionhandleandpassedtothechainer
executable.
FileSource String ReferencetotheFileelementthatisthechainerexecuteable.MutuallyexclusivewiththeBinarySourceandPropertySourceattributes.
PropertySource String ReferencetoaPropertythatresolvestothefullpathtothechainerexecuteable.MutuallyexclusivewiththeBinarySourceandFileSourceattributes.
SeeAlsoWixSchema,Binary,File,Property,EmbeddedChainerRef
Version3.5.1623.0
EmbeddedChainerRefElement
DescriptionReferencetoanEmbeddedChainerelement.ThiswillforcetheentirereferencedFragment'scontentstobeincludedintheinstallerdatabase.
WindowsInstallerreferencesNone
ParentsFragment,Module,Product
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,EmbeddedChainer
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
ErrorElement
DescriptionNone
WindowsInstallerreferencesErrorTable
ParentsUI
InnerText(xs:string)ElementvalueisMessage,useCDATAifmessagecontainsdelimitercharacters
ChildrenNone
Attributes
Name Type Description Required
Id Integer Numberoftheerrorforwhichamessageisbeingprovided.SeeMSISDKforerrordefinitions.
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
ExecuteActionElement
DescriptionInitiatestheexecutionsequence.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesExecuteActionAction
ParentsAdminUISequence,InstallUISequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
ExePackageElement
DescriptionDescribesasingleexepackagetoinstall.
WindowsInstallerreferencesNone
ParentsChain,PackageGroup
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.Theextension'sCompilerExtension.ParseElement()methodwillbecalledwiththepackageidentifierasthefirstvalueincontextValues.
Attributes
Name Type Description Required
After String Theidentifierofanotherpackagethatthisoneshouldbeinstalledafter.
Cache YesNoType Whethertocachethepackage.
CacheId String Theidentifiertousewhencachingthe
package.
DownloadUrl String TheURLtousetodownloadthepackage.
Id String Identifierforthispackage,fororderingandcross-referencing.
InstallCommand String Thecommand-lineargumentstospecifytoindicateaninstall.
InstallCondition String Aconditiontoevaluatebeforeinstallingthepackage.Thepackagewillonlybeinstallediftheconditionevaluatestotrue.
Name String Thedestinationpathandfilenameforthischainpayload.Thedefaultisthesourcefilename.Usethisattributetorenamethechainentrypointorextractitintoasubfolder.
RepairCommand String Thecommand-lineargumentstospecifytoindicatearepair.
SourceFile String Locationofthepackage.
Yes
UninstallCommand String Thecommand-lineargumentstospecifytoindicatean
uninstall.
Vital YesNoType Whetherthepackageshouldbeconsidered"vital".
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.Theextension'sCompilerExtension.ParseAttribute()methodwillbecalledwiththepackageidentifierincontextValues["PackageId"].
SeeAlsoWixSchema
Version3.5.1623.0
ExtensionElement
DescriptionExtensionforaComponent
WindowsInstallerreferencesMIMETable,VerbTable,RegistryTable
ParentsComponent,ProgId
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
MIME(min:0,max:unbounded)Verb(min:0,max:unbounded)
Attributes
Name Type 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
Version3.5.1623.0
ExternalFileElement
DescriptionContainsinformationaboutspecificfilesthatarenotpartofaregulartargetimage.
WindowsInstallerreferencesNone
ParentsFamily
InnerTextNone
ChildrenSequence(min:1,max:1)1. ProtectRange(min:1,max:unbounded)2. SymbolPath(min:1,max:unbounded)3. Choiceofelements(min:0,max:unbounded)
IgnoreRange(min:0,max:unbounded)
Attributes
Name Type Description Required
File String ForeignkeyintotheFiletable. Yes
Order Int Specifiestheorderoftheexternalfilestousewhencreatingthepatch.
Yes
Source String Fullpathoftheexternalfile.
src String Thisattributehasbeendeprecated;pleaseusetheSourceattributeinstead.
SeeAlsoWixSchema
Version3.5.1623.0
FailureElement
DescriptionFailureactionforaServiceConfigFailureActionselement.
WindowsInstallerreferencesNone
ParentsServiceConfigFailureActions
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Action String Specifiestheactiontotakewhentheservicefails.Validvaluesare"none","restartComputer","restartService","runCommand"oraFormattedpropertythatresolvesto"0"(for"none"),"1"(for"restartService"),"2"(for"restartComputer")or"3"(for"runCommand").
Yes
Delay String SpecifiesthetimeinmillisecondstowaitbeforeperformingthevaluefromtheActionattribute.
Yes
SeeAlsoWixSchema
Version3.5.1623.0
FamilyElement
DescriptionGroupofoneormoreupgradedimagesofaproduct.
WindowsInstallerreferencesNone
ParentsPatchCreation
InnerTextNone
ChildrenSequence(min:1,max:1)1. UpgradeImage(min:1,max:unbounded)2. Choiceofelements(min:0,max:unbounded)
ExternalFile(min:0,max:unbounded)ProtectFile(min:0,max:unbounded)
Attributes
Name Type Description Required
DiskId Int EnteredintotheDiskIdfieldofthenewMediatablerecord.
DiskPrompt String Valuetodisplayinthe"[1]"oftheDiskPromptProperty.UsingthisattributewillrequireyoutodefineaDiskPromptProperty.
MediaSrcProp String EnteredintotheSourcefieldofthenewMediatableentryoftheupgradedimage.
Name String Identifierforthefamily. Yes
SequenceStart Int Sequencenumberforthestartingfile.
VolumeLabel String EnteredintotheVolumeLabelfieldofthenewMediatablerecord.
SeeAlsoWixSchema
Version3.5.1623.0
FeatureElement
DescriptionAfeaturefortheFeaturetable.Featuresarethesmallestinstallableunit.Seemsi.chmformoredetailedinformationonthemyriadinstallationoptionsforafeature.
WindowsInstallerreferencesFeatureTable
ParentsFeature,FeatureGroup,FeatureRef,Fragment,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Component(min:0,max:unbounded)ComponentGroupRef(min:0,max:unbounded)ComponentRef(min:0,max:unbounded)Condition(min:0,max:unbounded)Feature(min:0,max:unbounded)FeatureGroupRef(min:0,max:unbounded)FeatureRef(min:0,max:unbounded)MergeRef(min:0,max:unbounded)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).
Title String Shortstringoftextidentifyingthefeature.islistedasanitembytheSelectionTreecontroloftheSelectionDialog.
TypicalDefault Enumeration Thisattributedeterminesthedefaultadvertisestateofthefeature.Thisattribute'svaluemustbeoneofthefollowing:advertise
SetsthefeaturetobeadvertisedbysettingthemsidbFeatureAttributesFavorAdvertiseattribute.ThisvaluecannotbesetifthevalueoftheAllowAdvertiseattributeis'no'sincethatwouldasktheinstallertodisallowtheadvertisedstateforthisfeaturewhileatthesametimefavoringit.
installSetsthefeaturetothedefaultnon-advertisedinstallationoption.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
HowTosandExamplesHowTo:Addafiletoyourinstaller
SeeAlsoWixSchema,FeatureRef
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
FeatureRefElement
DescriptionCreateareferencetoaFeatureelementinanotherFragment.
WindowsInstallerreferencesNone
ParentsFeature,FeatureGroup,FeatureRef,Fragment,PatchFamily,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Component(min:0,max:unbounded)ComponentGroupRef(min:0,max:unbounded)ComponentRef(min:0,max:unbounded)Feature(min:0,max:unbounded)FeatureGroup(min:0,max:unbounded)FeatureGroupRef(min:0,max:unbounded)FeatureRef(min:0,max:unbounded)MergeRef(min:0,max:unbounded)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
Version3.5.1623.0
FileElement
DescriptionFilespecificationforFiletable,mustbechildnodeofComponent.
WindowsInstallerreferencesFileTable
ParentsComponent
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
AppId(min:0,max:unbounded)AssemblyName(min:0,max:unbounded)Class(min:0,max:unbounded)CopyFile(min:0,max:unbounded):Usedtocreateaduplicateofthisfileelsewhere.ODBCDriver(min:0,max:unbounded)ODBCTranslator(min:0,max:unbounded)Permission(min:0,max:unbounded):UsedtoconfiguretheACLsforthisfile.PermissionEx(min:0,max:unbounded):CanalsoconfiguretheACLsforthisfile.Shortcut(min:0,max:unbounded):Targetoftheshortcutwillbesettothisfile.SymbolPath(min:0,max:unbounded)TypeLib(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
EventManifest
FirewallExceptionFormatsFileGameHelpCollectionHelpFileNativeImagePerfCounterPerfCounterManifestPermissionExSnapInTypesFile
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.Thelistisusuallyalistofproperties,witheach
propertyenclosedinsidesquarebrackets.Thevaluemaybesettoanemptystring.IncludingthisattributewillcauseanentrytobegeneratedforthefileintheBindImagetable.
Checksum YesNoType Thisattributeshouldbesetto"yes"foreveryexecutablefileintheinstallationthathasavalidchecksumstoredinthePortableExecutable(PE)fileheader.Onlythosefilesthathavethisattributesetwillbeverifiedforvalidchecksumduringareinstall.
CompanionFile String Setthisattributetomakethisfileacompanionchildofanotherfile.Theinstallationstateofacompanionfiledependsnotonitsownfileversioninginformation,butontheversioningofitscompanionparent.filethatisthekeypathforitscomponentcannotbeacompanionfile(thatmeansthisattributecannotbesetifKeyPath="yes"forthisfile).TheVersionattributecannotbeset
alongwiththisattributesincecompanionfilesarenotinstalledbasedontheirownversion.
Compressed YesNoDefaultType Setsthefile'ssourcetypecompression.Asettingof"yes"or"no"willoverridethesettingintheWordCountSummaryProperty.
DefaultLanguage String Thisisthedefaultlanguageofthisfile.linkerwillreplacethisvaluefromthevalueinthefileifthesuppressfilesoptionisnotused.
DefaultSize Integer Thisisthedefaultsizeofthisfile.Thelinkerwillreplacethisvaluefromthevalueinthefileifthesuppressfilesoptionisnotused.
DefaultVersion String Thisisthedefaultversionofthisfile.Thelinkerwillreplacethisvaluefromthevalueinthefileifthesuppressfilesoptionisnotused.
DiskId Integer ThevalueofthisattributeshouldcorrespondtotheIdattributeofaMediaelementauthoredelsewhere.Bycreatingthisconnectionbetweenafileanditsmedia,you
setthepackagingoptionstothevaluesspecifiedintheMediaelement(valuessuchascompressionlevel,cabembedding,etc...).SpecifyingtheDiskIdattributeontheFileelementoverridesthedefaultDiskIdattributefromtheparentComponentelement.IfnoDiskIdattributeisspecified,thedefaultis"1".ThisDiskIdattributeisignoredwhencreatingamergemodulebecausemergemodulesdonothavemedia.
FontTitle String CausesanentrytobegeneratedforthefileintheFonttablewiththespecifiedFontTitle.Thisattributeisintendedtobeusedtoregisterthefileasanon-TrueTypefont.
Hidden YesNoType Settoyesinordertohavethefile'shiddenattributesetwhenitisinstalledonthetargetmachine.
Id String TheuniqueidentifierforthisFileelement.IfyouomitId,itdefaultstothefilenameportionoftheSourceattribute,if
specified.MaybereferencedasaPropertybyspecifying[#value].
KeyPath YesNoType Settoyesinordertoforcethisfiletobethekeypathfortheparentcomponent.
LongName LongFileNameType Thisattributehasbeendeprecated;pleaseusetheNameattributeinstead.
Name LongFileNameType InpriorversionsoftheWiXtoolset,thisattributespecifiedtheshortfilename.Thisattribute'svaluemaynowbeeitherashortorlongfilename.Ifashortfilenameisspecified,theShortNameattributemaynotbespecified.alongfilenameisspecified,theLongNameattributemaynotbespecified.Also,ifthisvalueisalongfilename,theShortNameattributemaybeomittedtoallowWiXtoattempttogenerateauniqueshortfilename.However,ifthisnamecollideswithanotherfileoryouwishtomanuallyspecifytheshortfilename,thenthe
ShortNameattributemaybespecified.Finally,ifthisattributeisomittedthenitsdefaultvalueisthefilenameportionoftheSourceattribute,ifoneisspecified,orthevalueoftheIdattribute,iftheSourceattributeisomittedordoesn'tcontainafilename.
PatchAllowIgnoreOnError YesNoType Settoindicatethatthepatchisnon-vital.
PatchGroup Integer Thisattributemustbesetforpatch-addedfiles.Eachpatchshouldbeassignedadifferentpatchgroupnumber.Patchgroupsnumbersmustbegreater0andshouldbeassignedconsecutively.Forexample,thefirstpatchshouldusePatchGroup='1',thesecondpatchwillhavePatchGroup='2',etc...
PatchIgnore YesNoType Preventstheupdatingofthefilethatisinfactchangedintheupgradedimagerelativetothetargetimages.
PatchWholeFile YesNoType Setiftheentirefileshouldbeinstalledratherthancreatinga
binarypatch.
ProcessorArchitecture Enumeration Specifiesthearchitectureforthisassembly.Thisattributeshouldonlybeusedon.NETFramework2.0orhigherassemblies.Thisattribute'svaluemustbeoneofthefollowing:msil
Thefileisa.NETFrameworkassemblythatisprocessor-neutral.
x86Thefileisa.NETFrameworkassemblyforthex86processor.
x64Thefileisa.NETFrameworkassemblyforthex64processor.
ia64Thefileisa.NETFrameworkassemblyfortheia64processor.
ReadOnly YesNoType Settoyesinordertohavethefile'sread-onlyattributesetwhenitisinstalledonthetargetmachine.
SelfRegCost Integer Thecostofregistering
thefileinbytes.Thismustbeanon-negativenumber.IncludingthisattributewillcauseanentrytobegeneratedforthefileintheSelfRegtable.
ShortName ShortFileNameType Theshortfilenameofthefilein8.3format.Thisattributeshouldonlybesetifthereisaconflictbetweengeneratedshortfilenamesortheuserwantstomanuallyspecifytheshortfilename.
Source String SpecifiesthepathtotheFileinthebuildprocess.OverridesdefaultsourcepathsetbyparentdirectoriesandNameattribute.Thisattributemustbesetifnosourceinformationcanbegatheredfromparentdirectories.Formoreinformation,seeSpecifyingsourcefiles
src String Thisattributehasbeendeprecated;pleaseusetheSourceattributeinstead.
System YesNoType Settoyesinordertohavethefile'ssystemattributesetwhenitisinstalledonthetarget
machine.
TrueType YesNoType CausesanentrytobegeneratedforthefileintheFonttablewithnoFontTitlespecified.ThisattributeisintendedtobeusedtoregisterthefileasaTrueTypefont.
Vital YesNoType Ifafileisvital,theninstallationcannotproceedunlessthefileissuccessfullyinstalled.Theuserwillhavenooptiontoignoreanerrorinstallingthisfile.Ifanerroroccurs,theycanmerelyretrytoinstallthefileoraborttheinstallation.Thedefaultis"yes,"unlessthe-sfdvitalswitch(candle.exe)orSuppressFileDefaultVitalproperty(.wixproj)isused.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
HowTosandExamplesHowTo:Addafiletoyourinstaller
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
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/@Depthattributeisgreaterthan1,theFileSearch/@Idattributemustbeabsentorthesameasthe
parentDirectorySearch/@Idattributevalue,unlesstheparentDirectorySearch/@AssignToPropertyattributevalueis'yes'.
HowTosandExamplesHowTo:Checktheversionnumberofafileduringinstallation
SeeAlsoWixSchema,ComponentSearch,DirectorySearch,DirectorySearchRef,FileSearchRef,IniFileSearch,RegistrySearch
Version3.5.1623.0
FileSearchRefElement
DescriptionReferencesanexistingFileSearchelement.
WindowsInstallerreferencesNone
ParentsComponentSearch,DirectorySearch,DirectorySearchRef,IniFileSearch,RegistrySearch
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String SpecifytheIdtotheFileSearchtoreference.
Yes
Remarks
AreferencetoanotherFileSearchelementmustreferencethesameIdandthesameParentId.IfanyoftheseattributevaluesaredifferentyoumustinsteaduseaFileSearchelement.
SeeAlsoWixSchema,FileSearch
Version3.5.1623.0
FileTypeMaskElement
DescriptionFileTypedataforclassIdregistration.
WindowsInstallerreferencesNone
ParentsClass
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Mask HexType HexvaluethatisAND'dagainstthebytesinthefileatOffset.
Yes
Offset Integer Offsetintofile.Ifpositive,offsetisfromthebeginning;ifnegative,offsetisfromtheend.
Yes
Value HexType IftheresultoftheAND'ingofMaskwiththebytesinthefileisValue,thefileisamatchforthisFileType.
Yes
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
FragmentElement
DescriptionTheFragmentelementisthebuildingblockofcreatinganinstallerdatabaseinWiX.Oncedefined,theFragmentbecomesanimmutable,atomicunitwhichcaneitherbecompletelyincludedorexcludedfromaproduct.ThecontentsofaFragmentelementcanbelinkedintoaproductbyutilizingoneofthemany*Refelements.WhenlinkinginaFragment,itwillbenecessarytolinkinallofitsindividualunits.Forinstance,ifagivenFragmentcontainstwoComponentelements,youmustlinkbothunderfeaturesusingComponentRefforeachlinkedComponent.Otherwise,youwillgetalinkerwarningandhaveafloatingComponentthatdoesnotappearunderanyFeature.
WindowsInstallerreferencesNone
ParentsWix
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
AppId(min:0,max:unbounded)Binary(min:0,max:unbounded)ComplianceCheck(min:0,max:unbounded)Component(min:0,max:unbounded)ComponentGroup(min:0,max:unbounded)Condition(min:0,max:unbounded)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)LayoutDirectory(min:0,max:unbounded)LayoutDirectoryRef(min:0,max:unbounded)Media(min:0,max:unbounded)PackageCertificates(min:0,max:unbounded)PackageGroup(min:0,max:unbounded)PatchCertificates(min:0,max:unbounded)PatchFamily(min:0,max:unbounded)PayloadGroup(min:0,max:unbounded)Property(min:0,max:unbounded)PropertyRef(min:0,max:unbounded)SetDirectory(min:0,max:unbounded)SetProperty(min:0,max:unbounded)SFPCatalog(min:0,max:unbounded)UI(min:0,max:unbounded)UIRef(min:0,max:unbounded)Upgrade(min:0,max:unbounded)WixVariable(min:0,max:unbounded)Sequence(min:1,max:1)1. InstallExecuteSequence(min:0,max:1)2. InstallUISequence(min:0,max:1)3. AdminExecuteSequence(min:0,max:1)4. AdminUISequence(min:0,max:1)
5. AdvertiseExecuteSequence(min:0,max:1)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
CloseApplicationComPlusApplicationComPlusApplicationRoleComPlusPartitionComPlusPartitionRoleComponentSearchDirectorySearchFileSearchGroupHelpCollectionRefHelpFilterLayoutDirectoryLayoutDirectoryRefMutationPackageGroupPayloadGroupProductSearchRegistrySearchSqlDatabaseUnitTestUnitTestRefUserUXWebApplicationWebAppPoolWebDirPropertiesWebLogWebSite
Attributes
Name Type Description Required
Id String OptionalidentifierforaFragment.Shouldonlybesetbyadvanceduserstotagsections.
SeeAlsoWixSchema
Version3.5.1623.0
IconElement
DescriptionIconusedforShortcut,ProgId,orClasselements(butnotUIcontrols)
WindowsInstallerreferencesIconTable
ParentsFragment,Module,Product,Shortcut
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheIdcannotbylongerthan55characters.InordertopreventerrorsincaseswheretheIdismodularized,itshouldnotbelongerthan18characters.
Yes
SourceFile String Pathtotheiconfile.
src String Thisattributehasbeendeprecated;pleaseusetheSourceFileattributeinstead.
HowTosandExamplesHowTo:Setyourinstaller'siconinAdd/RemoveProgramsHowTo:CreateashortcutontheStartMenu
SeeAlso
WixSchema
Version3.5.1623.0
IconRefElement
DescriptionUsedonlyforPatchFamiliestoincludeonlyaicontableentryinapatch.
WindowsInstallerreferencesNone
ParentsPatchFamily
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifieroftheIconelementtoreference.
Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
IgnoreRangeElement
DescriptionSpecifiespartofafilethatistobeignoredduringpatching.
WindowsInstallerreferencesNone
ParentsExternalFile,TargetFile
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Length Int Lengthoftherange. Yes
Offset Int Offsetofthestartoftherange. Yes
SeeAlsoWixSchema
Version3.5.1623.0
IgnoreTableElement
DescriptionSpecifiesatablefromthemergemodulethatisnotmergedintoan.msifile.Ifthetablealreadyexistsinan.msifile,itisnotmodifiedbythemerge.Thespecifiedtablecanthereforecontaindatathatisunneededafterthemerge.Tominimizethesizeofthe.msmfile,itisrecommendedthatdevelopersremoveunusedtablesfrommodulesintendedforredistributionratherthancreatingIgnoreTableelementsforthosetables.
WindowsInstallerreferencesNone
ParentsModule
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Thenameofthetableinthemergemodulethatisnottobemergedintothe.msifile.
Yes
SeeAlsoWixSchema
Version3.5.1623.0
IncludeElement
DescriptionThisisthetop-levelcontainerelementforeverywxifile.
WindowsInstallerreferencesNone
ParentsNone
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
AnyElement(namespace='##any'processContents='Lax')
AttributesNone
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
IniFileSearchElement
DescriptionSearchesforfile,directoryorregistrykeyandassignstovalueofparentProperty
WindowsInstallerreferencesIniLocatorTable,SignatureTable
ParentsComplianceCheck,Property
InnerTextNone
ChildrenChoiceofelements(min:0,max:1)
DirectorySearch(min:0,max:1)DirectorySearchRef(min:0,max:1)FileSearch(min:0,max:1)FileSearchRef(min:0,max:1)
Attributes
Name Type Description 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
Version3.5.1623.0
InstallAdminPackageElement
DescriptionCopiestheproductdatabasetotheadministrativeinstallationpoint.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesInstallAdminPackageAction
ParentsAdminExecuteSequence,AdminUISequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
InstallExecuteSequenceElement
DescriptionNone
WindowsInstallerreferencesInstallExecuteSequenceTable
ParentsFragment,Module,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
AllocateRegistrySpace(min:0,max:unbounded):Ensurestheneededamountofspaceexistsintheregistry.AppSearch(min:0,max:unbounded):Usesfilesignaturestosearchforexistingversionsofproducts.BindImage(min:0,max:unbounded):BindseachexecutableorDLLthatmustbeboundtotheDLLsimportedbyit.CCPSearch(min:0,max:unbounded):Usesfilesignaturestovalidatethatqualifyingproductsareinstalledonasystembeforeanupgradeinstallationisperformed.CostFinalize(min:0,max:unbounded):EndstheinternalinstallationcostingprocessbegunbytheCostInitializeaction.CostInitialize(min:0,max:unbounded):Initiatestheinternalinstallationcostingprocess.CreateFolders(min:0,max:unbounded):Createsemptyfoldersforcomponentsthataresettobeinstalled.CreateShortcuts(min:0,max:unbounded):Managesthecreationofshortcuts.Custom(min:0,max:unbounded):Usetosequenceacustomaction.
DeleteServices(min:0,max:unbounded):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
Version3.5.1623.0
InstallFilesElement
DescriptionCopiesfilesspecifiedintheFiletablefromthesourcedirectorytothedestinationdirectory.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesInstallFilesAction
ParentsAdminExecuteSequence,AdminUISequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
InstallFinalizeElement
DescriptionMarkstheendofasequenceofactionsthatchangethesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesInstallFinalizeAction
ParentsAdminExecuteSequence,AdminUISequence,AdvertiseExecuteSequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,InstallInitialize
Version3.5.1623.0
InstallInitializeElement
DescriptionMarksthebeginningofasequenceofactionsthatchangethesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesInstallInitializeAction
ParentsAdminExecuteSequence,AdminUISequence,AdvertiseExecuteSequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,InstallFinalize
Version3.5.1623.0
InstallODBCElement
DescriptionInstallsthedrivers,translators,anddatasourcesintheODBCDrivertable,ODBCTranslatortable,andODBCDataSourcetable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesInstallODBCAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
InstallServicesElement
DescriptionRegistersaserviceforthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesInstallServicesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
InstallValidateElement
DescriptionVerifiesthatallcostedvolumeshaveenoughspacefortheinstallation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesInstallValidateAction
ParentsAdminExecuteSequence,AdminUISequence,AdvertiseExecuteSequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
InstanceElement
DescriptionDefinesaninstancetransformforyourproduct.
WindowsInstallerreferencesNone
ParentsInstanceTransforms
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Theidentityoftheinstancetransform.Thisvaluewilldefinethenamebywhichtheinstanceshouldbereferredtoonthecommandline.Inaddition,thevalueofthethisattributewilldeterminewhatthevalueofthepropertyspecifiedinPropertyattributeonInstanceTransformswillchangetoforeachinstance.
Yes
ProductCode String TheProductCodeforthisinstance.
Yes
ProductName String TheProductNameforthisinstance.
SeeAlsoWixSchema
Version3.5.1623.0
InstanceTransformsElement
DescriptionUsethiselementtocontaindefinitionsforinstancetransforms.
WindowsInstallerreferencesNone
ParentsProduct
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Instance(min:0,max:unbounded)
Attributes
Name Type Description Required
Property String TheIdofthePropertywho'svalueshouldchangeforeachinstance.
Yes
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
IsolateComponentElement
DescriptionSharedComponenttobeprivatelyreplicatedinfolderofparentComponent
WindowsInstallerreferencesIsolateComponentTable
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Shared String SharedComponentforthisapplicationComponent.
Yes
SeeAlsoWixSchema
Version3.5.1623.0
IsolateComponentsElement
DescriptionInstallsacopyofacomponent(commonlyasharedDLL)intoaprivatelocationforusebyaspecificapplication(typicallyan.exe).Thisisolatestheapplicationfromothercopiesofthecomponentthatmaybeinstalledtoasharedlocationonthecomputer.TheactionreferstoeachrecordoftheIsolatedComponenttableandassociatesthefilesofthecomponentlistedintheComponent_SharedfieldwiththecomponentlistedintheComponent_Applicationfield.TheinstallerinstallsthefilesofComponent_SharedintothesamedirectoryasComponent_Application.Theinstallergeneratesafileinthisdirectory,zerobytesinlength,havingtheshortfilenamenameofthekeyfileforComponent_Application(typicallythisisthesamefilenameasthe.exe)appendedwith.local.TheIsolatedComponentactiondoesnotaffecttheinstallationofComponent_Application.UninstallingComponent_ApplicationalsoremovestheComponent_Sharedfilesandthe.localfilefromthedirectory.TheIsolateComponentsactioncanbeusedonlyintheInstallUISequencetableandtheInstallExecuteSequencetable.ThisactionmustcomeaftertheCostInitializeactionandbeforetheCostFinalizeaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesIsolateComponentsAction
ParentsInstallExecuteSequence,InstallUISequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,IsolateComponent
Version3.5.1623.0
LaunchConditionsElement
DescriptionQueriestheLaunchConditiontableandevaluateseachconditionalstatementrecordedthere.Ifanyoftheseconditionalstatementsfail,anerrormessageisdisplayedtotheuserandtheinstallationisterminated.TheLaunchConditionsactionisoptional.Thisactionisnormallythefirstinthesequence,buttheAppSearchActionmaybesequencedbeforetheLaunchConditionsaction.Iftherearelaunchconditionsthatdonotapplytoallinstallationmodes,theappropriateinstallationmodepropertyshouldbeusedinaconditionalexpressionintheappropriatesequencetable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesLaunchConditionsAction
ParentsAdminExecuteSequence,AdminUISequence,InstallExecuteSequence,InstallUISequence
InnerText(xs:string)Textnodespecifiestheconditionoftheaction.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofanactionthatthisactionshouldcomeafter.
Before String Thenameofanactionthatthisactionshouldcomebefore.
Overridable YesNoType If"yes",thesequencingof
thisactionmaybeoverriddenbysequencingelsewhere.
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema,Condition
Version3.5.1623.0
LayoutDirectoryElement
DescriptionRepresentationoflayoutdirectory.
WindowsInstallerreferencesNone
ParentsBundle,Fragment,LayoutDirectory,LayoutDirectoryRef,Module,Patch,PatchCreation,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
LayoutDirectory(min:0,max:unbounded)LayoutDirectoryRef(min:0,max:unbounded)LayoutFile(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String IdentifierforLayoutDirectory.OnlyrequiredifthisissharedandisreferencedbyLayoutDirectoryRef.
Name String Thedestinationpathofthislayout.Itcancontainmultiplelevelsofdirectorystructure(i.e.src\files\product)
Yes
SeeAlsoWixSchema
Version3.5.1623.0
LayoutDirectoryRefElement
DescriptionCreateareferencetoanexistingLayoutDirectoryelement.
WindowsInstallerreferencesNone
ParentsBundle,Fragment,LayoutDirectory,LayoutDirectoryRef,Module,Patch,PatchCreation,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
LayoutDirectory(min:0,max:unbounded)LayoutDirectoryRef(min:0,max:unbounded)LayoutFile(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String TheidentifierofLayoutDirectoryelementtoreference.
Yes
SeeAlsoWixSchema,LayoutDirectory
Version3.5.1623.0
LayoutFileElement
DescriptionDescribesthepayloadtoabootstrapper.
WindowsInstallerreferencesNone
ParentsLayoutDirectory,LayoutDirectoryRef
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Name String Thedestinationpathandfilenameforthisfile.Thedefaultisthesourcefilename.
SourceFile String Locationofthesourcefile. Yes
SeeAlsoWixSchema
Version3.5.1623.0
ListBoxElement
DescriptionSetofitemsforaparticularListBoxcontroltiedtoaninstallProperty
WindowsInstallerreferencesControlTable,DialogTable,ListViewTable
ParentsControl,UI
InnerTextNone
ChildrenSequence(min:1,max:1)1. ListItem(min:0,max:unbounded):entryforListBoxtable
Attributes
Name Type Description Required
Property String Propertytiedtothisgroup Yes
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
ListViewElement
DescriptionSetofitemsforaparticularListViewcontroltiedtoaninstallProperty
WindowsInstallerreferencesListViewTable,ControlTable,DialogTable
ParentsControl,UI
InnerTextNone
ChildrenSequence(min:1,max:1)1. ListItem(min:0,max:unbounded):entryforListViewtable
Attributes
Name Type Description Required
Property String Propertytiedtothisgroup Yes
SeeAlsoWixSchema
Version3.5.1623.0
MajorUpgradeElement
DescriptionSimplifiesauthoringformajorupgrades,includingsupportforpreventingdowngrades.
TheparentProductelementmusthavevalidUpgradeCodeandVersionattributes.
WindowsInstallerreferencesNone
ParentsProduct
InnerTextNone
ChildrenNone
Attributes
Name Type Description
AllowDowngrades YesNoType Whensettono(thedefault),productswithlowerversionnumbersareblockedfrominstallingwhenaproductwithahigherversionisinstalled;theDowngradeErrorMessageattributemustalsobespecified.
Whensettoyes,anyversioncanbeinstalledoveranyotherversion.
DowngradeErrorMessage String Themessagedisplayedif
userstrytoinstallaproductwithalowerversionnumberwhenaproductwithahigherversionisinstalled.UsedonlywhenAllowDowngradesisno(thedefault).
IgnoreRemoveFailure YesNoType Whensettoyes,failuresremovingtheinstalledproductduringtheupgradewillbeignored.
Whensettono(thedefault),failuresremovingtheinstalledproductduringtheupgradewillbeconsideredafailureand,dependingonthescheduling,rollbacktheupgrade.
MigrateFeatures YesNoType Whensettoyes(thedefault),theMigrateFeatureStatesstandardactionwillsetthefeaturestatesoftheupgradeproducttothoseoftheinstalledproduct.
Whensettono,theinstalledfeatureshavenoeffectontheupgradeinstallation.
RemoveFeatures String Aformattedstringthatcontainsthelistoffeaturestoremovefromtheinstalledproduct.Thedefaultistoremoveallfeatures.Notethatifyouuseformattedpropertyvaluesthatevaluatetoanemptystring,nofeatureswillberemoved;onlyomitting
thisattributedefaultstoremovingallfeatures.
Schedule Enumeration DeterminestheschedulingoftheRemoveExistingProductsstandardaction,whichiswhentheinstalledproductisremoved.Thedefaultis"afterInstallValidate"whichremovestheinstalledproductentirelybeforeinstallingtheupgradeproduct.It'sslowestbutgivesthemostflexibilityinchangingcomponentsandfeaturesintheupgradeproduct.
Formoreinformation,seeRemoveExistingProducts.Thisattribute'svaluemustbeoneofthefollowing:afterInstallValidate
(Default)SchedulesRemoveExistingProductsaftertheInstallValidatestandardaction.Thisschedulingremovestheinstalledproductentirelybeforeinstallingtheupgradeproduct.It'sslowestbutgivesthemostflexibilityinchangingcomponentsandfeaturesintheupgradeproduct.Notethatiftheinstallationoftheupgradeproductfails,themachinewillhaveneitherversion
installed.
afterInstallInitializeSchedulesRemoveExistingProductsaftertheInstallInitializestandardaction.ThisissimilartotheafterInstallValidatescheduling,butiftheinstallationoftheupgradeproductfails,WindowsInstalleralsorollsbacktheremovaloftheinstalledproduct--inotherwords,reinstallsit.
afterInstallExecuteSchedulesRemoveExistingProductsbetweentheInstallExecuteandInstallFinalizestandardactions.Thisschedulinginstallstheupgradeproduct"ontopof"theinstalledproductthenletsRemoveExistingProductsuninstallanycomponentsthatdon'talsoexistintheupgradeproduct.Notethatthisschedulingrequiresstrictadherencetothecomponentrulesbecauseitreliesoncomponentreferencecountstobeaccurateduringinstallationofthe
upgradeproductandremovaloftheinstalledproduct.Formoreinformation,seeBobArnson'sblogpost"PayingforUpgrades"fordetails.Ifinstallationoftheupgradeproductfails,WindowsInstalleralsorollsbacktheremovaloftheinstalledproduct--inotherwords,reinstallsit.
afterInstallExecuteAgainSchedulesRemoveExistingProductsbetweentheInstallExecuteAgainandInstallFinalizestandardactions.ThisisidenticaltotheafterInstallExecuteschedulingbutaftertheInstallExecuteAgainstandardactioninsteadofInstallExecute.
afterInstallFinalizeSchedulesRemoveExistingProductsaftertheInstallFinalizestandardaction.ThisissimilartotheafterInstallExecuteandafterInstallExecuteAgainschedulingsbuttakesplaceoutsidetheinstallationtransactionsoifinstallationoftheupgradeproductfails,
WindowsInstallerdoesnotrollbacktheremovaloftheinstalledproduct,sothemachinewillhavebothversionsinstalled.
SeeAlsoWixSchema
Version3.5.1623.0
MediaElement
DescriptionMediaelementdescribesadiskthatmakesupthesourcemediafortheinstallation.
WindowsInstallerreferencesMediaTable
ParentsFragment,Patch,Product
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
DigitalSignature(min:0,max:unbounded)PatchBaseline(min:0,max:unbounded)SymbolPath(min:0,max:unbounded)
Attributes
Name Type Description Required
Id Integer DiskidentifierforMediatable.Thisnumbermustbeequaltoorgreaterthan1.
Yes
Cabinet String Thenameofthecabinetifsomeorallofthefilesstoredonthemediaareinacabinetfile.Ifnocabinetsareused,thisattributemustnot
beset.
CompressionLevel Enumeration IndicatesthecompressionlevelfortheMedia'scabinet.ThisattributecanonlybeusedinconjunctionwiththeCabinetattribute.Thedefaultis'mszip'.Thisattribute'svaluemustbeoneofthefollowing:high
low
medium
mszip
none
DiskPrompt String Thediskname,whichisusuallythevisibletextprintedonthedisk.Thislocalizabletextisusedtoprompttheuserwhenthisdiskneedstobeinserted.Thisvaluewillbeusedinthe"[1]"oftheDiskPromptProperty.UsingthisattributewillrequireyoutodefineaDiskPromptProperty.
EmbedCab YesNoType Instructsthebindertoembedthecabinetintheproductif'yes'.
ThisattributecanonlybespecifiedinconjunctionwiththeCabinetattribute.
Layout String ThisattributespecifiestherootdirectoryfortheuncompressedfilesthatareapartofthisMediaelement.Bydefault,thesrcwillbetheoutputdirectoryforthefinalimage.Thedefaultvalueensuresthebindergeneratesaninstallableimage.Ifarelativepathisspecifiedinthesrcattribute,thevaluewillbeappendedtotheimage'soutputdirectory.Ifanabsolutepathisprovided,thatpathwillbeusedwithoutmodification.Thelattertwooptionsareprovidedtoeasethelayoutofanimageontomultiplemedias(CDs/DVDs).
Source String Optionalpropertythatidentifiesthesourceoftheembeddedcabinet.Ifacabinetisspecifiedforapatch,thispropertyshouldbedefinedandunique
toeachpatchsothattheembeddedcabinetcontainingpatchedandnewfilescanbelocatedinthepatchpackage.Ifthecabinetisnotembedded-thisisnottypical-thecabinetcanbefoundinthedirectoryreferencedinthiscolumn.Ifempty,theexternalcabinetmustbelocatedintheSourceDirdirectory.
src String Thisattributehasbeendeprecated;pleaseusetheLayoutattributeinstead.
VolumeLabel String Thelabelattributedtothevolume.ThisisthevolumelabelreturnedbytheGetVolumeInformationfunction.IftheSourceDirpropertyreferstoaremovable(floppyorCD-ROM)volume,thenthisvolumelabelisusedtoverifythattheproperdiskisinthedrivebeforeattemptingtoinstallfiles.Theentryinthiscolumnmustmatchthevolumelabelofthephysicalmedia.
SeeAlsoWixSchema
Version3.5.1623.0
MergeElement
DescriptionMergedirectivetobringinamergemodulethatwillberedirectedtotheparentdirectory.
WindowsInstallerreferencesNone
ParentsDirectory,DirectoryRef
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
ConfigurationData(min:0,max:unbounded):Datatouseasinputtoaconfigurablemergemodule.
Attributes
Name Type Description Required
Id String TheuniqueidentifierfortheMergeelementinthesourcecode.ReferencedbytheMergeRef/@Id.
Yes
DiskId String ThevalueofthisattributeshouldcorrespondtotheIdattributeofaMediaelementauthoredelsewhere.By
creatingthisconnectionbetweenthemergemoduleandMediaelement,yousetthepackagingoptionstothevaluesspecifiedintheMediaelement(valuessuchascompressionlevel,cabembedding,etc...).
FileCompression YesNoType Specifiesifthefilesinthemergemoduleshouldbecompressed.
Language LocalizableInteger SpecifiesthedecimalLCIDorlocalizationtokenforthelanguagetomergetheModuleinas.
Yes
SourceFile String Pathtothesourcelocationofthemergemodule.
src String Thisattributehasbeendeprecated;pleaseusetheSourceFileattributeinstead.
HowTosandExamplesHowTo:InstalltheVisualC++Redistributablewithyourinstaller
SeeAlsoWixSchema,MergeRef
Version3.5.1623.0
MergeRefElement
DescriptionMergereferencetoconnectaMergeModuletoparentFeature
WindowsInstallerreferencesNone
ParentsFeature,FeatureGroup,FeatureRef
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheuniqueidentifierfortheMergeelementtobereferenced.
Yes
Primary YesNoType SpecifieswhetherthefeaturecontainingthisMergeRefistheprimaryfeatureforadvertisingthemergemodule'scomponents.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
HowTosandExamplesHowTo:InstalltheVisualC++Redistributablewithyourinstaller
SeeAlsoWixSchema,Merge
Version3.5.1623.0
MigrateFeatureStatesElement
DescriptionUsedforupgradingorinstallingoveranexistingapplication.Readsfeaturestatesfromexistingapplicationandsetsthesefeaturestatesforthependinginstallation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesMigrateFeatureStatesAction
ParentsInstallExecuteSequence,InstallUISequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
ModuleElement
DescriptionTheModuleelementisanalogoustothemainfunctioninaCprogram.Whenlinking,onlyoneModulesectioncanbegiventothelinkertoproduceasuccessfulresult.Usingthiselementcreatesanmsmfile.
WindowsInstallerreferencesNone
ParentsWix
InnerTextNone
ChildrenSequence(min:1,max:1)1. Package(min:1,max:1)2. Choiceofelements(min:0,max:unbounded)
AppId(min:0,max:unbounded)Binary(min:0,max:unbounded)Component(min:0,max:unbounded)ComponentGroupRef(min:0,max:unbounded)ComponentRef(min:0,max:unbounded)Configuration(min:0,max:unbounded)CustomAction(min:0,max:unbounded)CustomActionRef(min:0,max:unbounded)CustomTable(min:0,max:unbounded)Dependency(min:0,max:unbounded)Directory(min:0,max:unbounded)DirectoryRef(min:0,max:unbounded)EmbeddedChainer(min:0,max:unbounded)
EmbeddedChainerRef(min:0,max:unbounded)EnsureTable(min:0,max:unbounded)Exclusion(min:0,max:unbounded)Icon(min:0,max:unbounded)IgnoreModularization(min:0,max:unbounded)IgnoreTable(min:0,max:unbounded)LayoutDirectory(min:0,max:unbounded)LayoutDirectoryRef(min:0,max:unbounded)Property(min:0,max:unbounded)PropertyRef(min:0,max:unbounded)SetDirectory(min:0,max:unbounded)SetProperty(min:0,max:unbounded)SFPCatalog(min:0,max:unbounded)Substitution(min:0,max:unbounded)UI(min:0,max:unbounded)UIRef(min:0,max:unbounded)WixVariable(min:0,max:unbounded)Sequence(min:1,max:1)1. InstallExecuteSequence(min:0,max:1)2. InstallUISequence(min:0,max:1)3. AdminExecuteSequence(min:0,max:1)4. AdminUISequence(min:0,max:1)5. AdvertiseExecuteSequence(min:0,max:1)
AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
CloseApplicationComPlusApplicationComPlusApplicationRoleComPlusPartitionComPlusPartitionRoleGroup
HelpCollectionRefHelpFilterLayoutDirectoryLayoutDirectoryRefSqlDatabaseUserWebApplicationWebAppPoolWebDirPropertiesWebLogWebSite
Attributes
Name Type Description Required
Id String Thenameofthemergemodule(notthefilename).
Yes
Codepage String ThecodepageintegervalueorwebnamefortheresultingMSM.Seeremarksformoreinformation.
Guid Guid Thisattributeisdeprecated.UsethePackage/@Idattributeinstead.
Language LocalizableInteger ThedecimallanguageID(LCID)ofthemergemodule.
Yes
Version String Themajorandminorversionsofthemergemodule.
Yes
Remarks
YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.
SeeAlsoWixSchema
Version3.5.1623.0
MoveFilesElement
DescriptionLocatesexistingfilesonthesystemandmovesorcopiesthosefilestoanewlocation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesMoveFileTable,MoveFilesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
MsiPackageElement
DescriptionDescribesasinglemsipackagetoinstall.
WindowsInstallerreferencesNone
ParentsChain,PackageGroup
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
MsiProperty(min:0,max:unbounded)Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.Theextension'sCompilerExtension.ParseElement()methodwillbecalledwiththepackageidentifierasthefirstvalueincontextValues.
MsiProperty
Attributes
Name Type Description Required
After String Theidentifierofanotherpackagethatthisoneshouldbeinstalledafter.
Cache YesNoType Whethertocachethepackage.
CacheId String Theidentifiertousewhencachingthepackage.
DownloadUrl String TheURLtousetodownloadthepackage.
Id String Identifierforthispackage,fororderingandcross-referencing.
InstallCondition String Aconditiontoevaluatebeforeinstallingthepackage.Thepackagewillonlybeinstallediftheconditionevaluatestotrue.
Name String Thedestinationpathandfilenameforthischainpayload.Thedefaultisthesourcefilename.Usethisattributetorenamethechainentrypointorextractitintoasubfolder.
SourceFile String Locationofthepackage. Yes
Vital YesNoType Whetherthepackageshouldbeconsidered"vital".
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.Theextension'sCompilerExtension.ParseAttribute()methodwillbecalledwiththepackageidentifierincontextValues["PackageId"].
SeeAlsoWixSchema
Version3.5.1623.0
MsiPropertyElement
DescriptionAllowsanMSIpropertytobesetbasedonthevalueofaburnengineexpression.
WindowsInstallerreferencesNone
ParentsMsiPackage
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Name String ThenameoftheMSIpropertytoset.
Yes
Value String Thevaluetosetthepropertyto.Thisstringisevaluatedbytheburnengineandcanbeassimpleasaburnenginevariablereferenceorascomplexasafullexpression.
Yes
SeeAlsoWixSchema
Version3.5.1623.0
MsiPublishAssembliesElement
DescriptionManagestheadvertisementofCLRandWin32assemblies.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesMsiPublishAssembliesAction
ParentsAdvertiseExecuteSequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
MsiUnpublishAssembliesElement
DescriptionManagestheunadvertisementofCLRandWin32assembliesthatarebeingremoved.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesMsiUnpublishAssembliesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
MspPackageElement
DescriptionDescribesasinglemsppackagetoinstall.
WindowsInstallerreferencesNone
ParentsChain,PackageGroup
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.Theextension'sCompilerExtension.ParseElement()methodwillbecalledwiththepackageidentifierasthefirstvalueincontextValues.
Attributes
Name Type Description Required
After String Theidentifierofanotherpackagethatthisoneshouldbeinstalledafter.
Cache YesNoType Whethertocachethepackage.
CacheId String Theidentifiertousewhencachingthepackage.
DownloadUrl String TheURLtousetodownloadthepackage.
Id String Identifierforthispackage,fororderingandcross-referencing.
InstallCondition String Aconditiontoevaluatebeforeinstallingthepackage.Thepackagewillonlybeinstallediftheconditionevaluatestotrue.
Name String Thedestinationpathandfilenameforthischainpayload.Thedefaultisthesourcefilename.Usethisattributetorenamethechainentrypointorextractitintoasubfolder.
SourceFile String Locationofthepackage. Yes
Vital YesNoType Whetherthepackageshouldbeconsidered"vital".
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.Theextension'sCompilerExtension.ParseAttribute()methodwillbecalledwiththepackageidentifierincontextValues["PackageId"].
SeeAlsoWixSchema
Version3.5.1623.0
MsuPackageElement
DescriptionDescribesasinglemsupackagetoinstall.
WindowsInstallerreferencesNone
ParentsChain,PackageGroup
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.Theextension'sCompilerExtension.ParseElement()methodwillbecalledwiththepackageidentifierasthefirstvalueincontextValues.
Attributes
Name Type Description Required
After String Theidentifierofanotherpackagethatthisoneshouldbeinstalledafter.
Cache YesNoType Whethertocachethepackage.
CacheId String Theidentifiertousewhencachingthepackage.
DownloadUrl String TheURLtousetodownloadthepackage.
Id String Identifierforthispackage,fororderingandcross-referencing.
InstallCondition String Aconditiontoevaluatebeforeinstallingthepackage.Thepackagewillonlybeinstallediftheconditionevaluatestotrue.
Name String Thedestinationpathandfilenameforthischainpayload.Thedefaultisthesourcefilename.Usethisattributetorenamethechainentrypointorextractitintoasubfolder.
SourceFile String Locationofthepackage. Yes
Vital YesNoType Whetherthepackageshouldbeconsidered"vital".
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.Theextension'sCompilerExtension.ParseAttribute()methodwillbecalledwiththepackageidentifierincontextValues["PackageId"].
SeeAlsoWixSchema
Version3.5.1623.0
MultiStringValueElement
DescriptionUseseveraloftheseelementstospecifyeachregistryvalueinamultiStringregistryvalue.ThiselementcannotbeusediftheValueattributeisspecifiedunlesstheTypeattributeissetto'multiString'.ThevaluesshouldgointhetextareaoftheMultiStringValueelement.
WindowsInstallerreferencesRegistryTable
ParentsRegistryValue
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
ODBCDriverElement
DescriptionODBCDriverforaComponent
WindowsInstallerreferencesODBCDriverTable
ParentsComponent,File
InnerTextNone
ChildrenSequence(min:1,max:1)1. Property(min:0,max:unbounded):Translatesinto
ODBCSourceAttributes2. ODBCDataSource(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifierforthedriver. Yes
File String RequiredifnotfoundaschildofFileelement
Name String Nameforthedriver. Yes
SetupFile String RequiredifnotfoundaschildofFileelementordifferentfromFileattributeabove
SeeAlsoWixSchema
Version3.5.1623.0
ODBCTranslatorElement
DescriptionODBCTranslatorforaComponent
WindowsInstallerreferencesODBCTranslatorTable
ParentsComponent,File
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierforthetranslator. Yes
File String RequiredifnotfoundaschildofFileelement
Name String Nameforthetranslator. Yes
SetupFile String RequiredifnotfoundaschildofFileelementordifferentfromFileattributeabove
SeeAlsoWixSchema
Version3.5.1623.0
OptimizeCustomActionsElement
DescriptionIndicateswhethercustomactionscanbeskippedwhenapplyingthepatch.
WindowsInstallerreferencesMsiPatchMetadataTable
ParentsPatch,PatchMetadata
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
SkipAssignment YesNoType Skipproperty(type51)anddirectory(type35)assignmentcustomactions.
SkipDeferred YesNoType Skipcustomactionsthatrunwithinthescript.
SkipImmediate YesNoType Skipimmediatecustomactionsthatarenotpropertyordirectoryassignmentcustomactions.
SeeAlsoWixSchema
Version3.5.1623.0
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.Thisattribute'svaluemustbeoneofthefollowing:x86
Setthisvaluetodeclarethatthepackageisanx86package.
ia64Setthisvaluetodeclarethatthepackageisania64package.ThisvaluerequiresthattheInstallerVersionpropertybesetto200orgreater.
x64Setthisvaluetodeclarethatthepackageisanx64package.Thisvaluerequires
thattheInstallerVersionpropertybesetto200orgreater.
intelThisvaluehasbeendeprecated.Use"x86"instead.
intel64Thisvaluehasbeendeprecated.Use"ia64"instead.
Platforms String Thisattributehasbeendeprecated;pleaseusethePlatformattributeinstead.
ReadOnly YesNoDefaultType Thevalueofthisattributeconveyswhetherthepackageshouldbeopenedasread-only.Adatabaseeditingtoolshouldnotmodifyaread-onlyenforceddatabaseandshouldissueawarningatattemptstomodifyaread-onlyrecommended
database.
ShortNames YesNoType Setto'yes'tohaveshortfilenamesinthesource.
SummaryCodepage String Thecodepageintegervalueorwebnameforsummaryinfostringsonly.Seeremarksformoreinformation.
Remarks
YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.
SeeAlsoWixSchema
Version3.5.1623.0
PackageCertificatesElement
DescriptionDigitalsignaturesthatidentifyinstallationpackagesinamulti-producttransaction.
WindowsInstallerreferencesMsiPackageCertificateTable
ParentsFragment,Product
InnerTextNone
ChildrenChoiceofelements(min:1,max:unbounded)
DigitalCertificate(min:1,max:unbounded)
AttributesNone
SeeAlsoWixSchema
Version3.5.1623.0
PackageGroupElement
DescriptionDescribesapackagegrouptoabootstrapper.
WindowsInstallerreferencesNone
ParentsFragment
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
ExePackage(min:0,max:unbounded)MsiPackage(min:0,max:unbounded)MspPackage(min:0,max:unbounded)MsuPackage(min:0,max:unbounded)PackageGroupRef(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifierforpackagegroup. Yes
SeeAlsoWixSchema
Version3.5.1623.0
PackageGroupRefElement
DescriptionCreateareferencetoPackageGroupelementthatexistsinsideaBundleorFragmentelement.
WindowsInstallerreferencesNone
ParentsChain,PackageGroup
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifierofthePackageGroupelementtoreference.
Yes
After String Theidentifierofapackagethatthisgroupshouldbeinstalledafter.
SeeAlsoWixSchema,PackageGroup
Version3.5.1623.0
PatchElement
DescriptionThePatchelementisanalogoustothemainfunctioninaCprogram.Whenlinking,onlyonePatchsectioncanbegiventothelinkertoproduceasuccessfulresult.UsingthiselementcreatesanMSPfile.
WindowsInstallerreferencesNone
ParentsWix
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
LayoutDirectory(min:0,max:unbounded)LayoutDirectoryRef(min:0,max:unbounded)Media(min:1,max:unbounded)OptimizeCustomActions(min:0,max:1):Indicateswhethercustomactionscanbeskippedwhenapplyingthepatch.PatchFamily(min:1,max:unbounded)PatchFamilyRef(min:0,max:unbounded)PatchInformation(min:0,max:1):Optionalelementthatallowsoverridingsummaryinformationproperties.PatchProperty(min:0,max:unbounded)TargetProductCodes(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
LayoutDirectory
LayoutDirectoryRef
Attributes
Name Type Description
AllowRemoval YesNoType Whetherthisisanuninstallablepatch.
ApiPatchingSymbolNoFailuresFlag YesNoType Flagusedwhencreatingabinaryfilepatch.Defaultis"no".Don'tfailpatchduetoimagehlpfailures.
ApiPatchingSymbolNoImagehlpFlag YesNoType Flagusedwhencreatingabinaryfilepatch.Defaultis"no".Don'tuseimagehlp.dll.
ApiPatchingSymbolUndecoratedTooFlag YesNoType Flagusedwhencreatingabinaryfilepatch.Defaultis"no".Aftermatchingdecoratedsymbols,trytomatchremainingbyundecoratednames.
Classification String Categoryof
updates.RecommendedvaluesareCriticalUpdate,Hotfix,SecurityRollup,SecurityUpdate,ServicePack,Update,UpdateRollup.
ClientPatchId String Aneasilyreferencedidentityuniquetoapatchthatcanbeusedinproductauthoring.Seeremarksformoreinformation.
Codepage String ThecodepageintegervalueorwebnamefortheresultingMSP.Seeremarksformoreinformation.
Comments String Optionalcommentsforbrowsing.
Description String Descriptionofthepatch.
DisplayName String Atitleforthe
patchthatissuitableforpublicdisplay.InAdd/RemoveProgramsfromXPSP2on.
Id AutogenGuid Patchcodeforthispatch.
Manufacturer String Vendorreleasingthepackage
MinorUpdateTargetRTM YesNoType IndicatesthatthepatchtargetstheRTMversionoftheproductorthemostrecentmajorupgradepatch.AuthorthisoptionalpropertyinminorupdatepatchesthatcontainsequencinginformationtoindicatethatthepatchremovesallpatchesuptotheRTMversionoftheproduct,oruptothemostrecentmajor
upgradepatch.ThispropertyisavailablebeginningwithWindowsInstaller3.1.
MoreInfoURL String AURLthatprovidesinformationspecifictothispatch.InAdd/RemoveProgramsfromXPSP2on.
OptimizedInstallMode YesNoType Ifthisattributeissetto'yes'inallthepatchestobeappliedinatransaction,theapplicationofthepatchisoptimizedifpossible.AvailablebeginningwithWindowsInstaller3.1.
OptimizePatchSizeForLargeFiles YesNoType Whenthisattributeisset,patchesforfilesgreaterthanapproximately4MBinsizemaybemadesmaller.
TargetProductName String Nameoftheapplicationortargetproductsuite.
Remarks
YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.
TheClientPatchIdattributeallowsyoutospecifyaneasilyreferencedidentitythatyoucanuseinproductauthoring.ThisidentityprefixespropertiesaddedbyWiXtoapatchtransform,suchasClientPatchId.PatchCodeandClientPatchId.AllowRemoval.IfthepatchcodeGUIDisauto-generatedyoucouldnotreferenceanypropertiesusingthisauto-generatedprefix.
Forexample,ifyouwereplanningtoshipapatchreferredtoas"QFE1"andneededtowriteyourownregistryvaluesforAdd/RemoveProgramsinproductauthoringsuchastheUninstallStringforthispatch,youcouldauthoraRegistryValuewiththenameUninstallStringandthevalue[SystemFolder]msiexec.exe/package[ProductCode]/uninstall[QFE1.PatchCode].InyourpatchauthoringyouwouldthensetClientPatchIdto"QFE1"andWiXwilladdtheQFE1.PatchCodepropertytothepatchtransformwhenthepatchiscreated.IftheIdattributespecifiedthepatchcodetobegeneratedautomatically,youcouldnotreferencetheprefix.PatchCodepropertyasshownabove.
ThesummaryinformationisautomaticallypopulatedfromattributevaluesofthePatchelementincludingthecodepage.Ifyouwanttooverridesomeofthesesummaryinformationpropertiesoruseadifferentcodepageforthesummaryinformationitself,authorthePatchInformationelement.
SeeAlsoWixSchema
Version3.5.1623.0
PatchBaselineElement
DescriptionIdentifiesasetofproductversions.
WindowsInstallerreferencesNone
ParentsMedia
InnerTextNone
ChildrenChoiceofelements(min:0,max:1)
Validate(min:0,max:1)
Attributes
Name Type Description Required
Id String Identifierforasetofproductversions.
Yes
SeeAlsoWixSchema
Version3.5.1623.0
PatchCertificatesElement
DescriptionIdentifiesthepossiblesignercertificatesusedtodigitallysignpatches.
WindowsInstallerreferencesMsiPatchCertificateTable
ParentsFragment,Product
InnerTextNone
ChildrenChoiceofelements(min:1,max:unbounded)
DigitalCertificate(min:1,max:unbounded)
AttributesNone
SeeAlsoWixSchema
Version3.5.1623.0
PatchCreationElement
DescriptionThePatchCreationelementisanalogoustothemainfunctioninaCprogram.Whenlinking,onlyonePatchCreationsectioncanbegiventothelinkertoproduceasuccessfulresult.Usingthiselementcreatesapcpfile.
WindowsInstallerreferencesNone
ParentsWix
InnerTextNone
ChildrenSequence(min:1,max:1)1. PatchInformation(min:1,max:1)2. PatchMetadata(min:0,max:1)3. Family(min:1,max:unbounded)4. Choiceofelements(min:0,max:unbounded)
LayoutDirectory(min:0,max:unbounded)LayoutDirectoryRef(min:0,max:unbounded)PatchProperty(min:0,max:unbounded)PatchSequence(min:0,max:unbounded)ReplacePatch(min:0,max:unbounded)TargetProductCode(min:0,max:unbounded)
Attributes
Name Type Description
Id Guid PatchCreationidentifier;thisistheprimarykeyforidentifyingpatches.
AllowMajorVersionMismatches YesNoType Usethistosetwhetherthemajorversionsbetweentheupgradeandtargetimagesmatch.SeeAllowProductVersionMajorMismatchesformoreinformation.
AllowProductCodeMismatches YesNoType Usethistosetwhethertheproductcodebetweentheupgradeandtargetimagesmatch.SeeAllowProductCodeMismatchesmoreinformation.
CleanWorkingFolder YesNoType UsethistosetwhetherPatchwizshouldcleanthetempfolderwhenfinished.SeeDontRemoveTempFolderWhenFinishedformoreinformation.
Codepage String ThecodepageintegervalueorwebnamefortheresultingPCP.Seeremarksformoreinformation.
OutputPath String Thefullpath,includingfilename,ofthepatchpackagefilethatistobegenerated.SeePatchOutputPathmoreinformation.
SourceList String Usedtolocatethe.mspfileforthepatchifthecachedcopyisunavailable.SeePatchSourceListformoreinformation.
SymbolFlags Int An8-digithexintegerrepresentingthecombinationofpatchsymbolusageflagstousewhencreatingabinaryfilepatch.SeeApiPatchingSymbolFlagsformoreinformation.
WholeFilesOnly YesNoType Usethistosetwhetherchangingfilesshouldbeincludedintheirentirety.SeeIncludeWholeFilesOnlyformoreinformation.
Remarks
YoucanspecifyanyvalidWindowscodebybyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.
SeeAlsoWixSchema
Version3.5.1623.0
PatchFamilyElement
DescriptionCollectionofitemsthatshouldbekeptfromthedifferencesbetweentwoproducts.
WindowsInstallerreferencesNone
ParentsFragment,Patch
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
BinaryRef(min:0,max:unbounded)ComponentRef(min:0,max:unbounded)CustomActionRef(min:0,max:unbounded)DirectoryRef(min:0,max:unbounded)FeatureRef(min:0,max:unbounded)IconRef(min:0,max:unbounded)PropertyRef(min:0,max:unbounded)UIRef(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
Attributes
Name Type Description Required
Id String Identifierwhichindicatesasequencefamilytowhich
Yes
thispatchbelongs.
ProductCode Guid SpecifiestheProductCodeoftheproductthatthisfamilyappliesto.
Supersede YesNoType Setthisvalueto'yes'toindicatethatthispatchwillsupersedeallpreviouspatchesinthispatchfamily.Thedefaultvalueis'no'.
Version String UsedtopopulatethesequencecolumnoftheMsiPatchSequencetableinthefinalMSPfile.Specifiedinx.x.x.xformat.SeedocumentationforSequencecolumnofMsiPatchSequencetableinMSISDK.
Yes
SeeAlsoWixSchema
Version3.5.1623.0
PatchFamilyRefElement
DescriptionThiswillcausetheentirecontentsoftheFragmentcontainingthereferencedPatchFamilytobeusedintheprocessofcreatingapatch.
WindowsInstallerreferencesNone
ParentsPatch
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifieroftheCustomActiontoreference.
Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,PatchFamily
Version3.5.1623.0
PatchFilesElement
DescriptionQueriesthePatchtabletodeterminewhichpatchesaretobeapplied.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesPatchFilesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
PatchMetadataElement
DescriptionPropertiesaboutthepatchtobeplacedinthePatchMetadatatable.
WindowsInstallerreferencesMsiPatchMetadataTable
ParentsPatchCreation
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
CustomProperty(min:0,max:unbounded):Acustompropertythatextendsthestandardset.OptimizeCustomActions(min:0,max:1):Indicateswhethercustomactionscanbeskippedwhenapplyingthepatch.
Attributes
Name Type Description 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
Version3.5.1623.0
PatchPropertyElement
DescriptionApropertyforthispatchdatabase.
WindowsInstallerreferencesMsiPatchMetadataTable
ParentsPatch,PatchCreation
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Company String Nameofthecompanyforacustommetadataproperty.
Name String Nameofthepatchproperty. Yes
Value String Valueofthepatchproperty. Yes
Remarks
WhenauthoredunderthePatchelement,thePatchPropertydefinesentriesintheMsiPatchMetadatatable.
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
PayloadElement
DescriptionDescribesapayloadtoabootstrapper.
WindowsInstallerreferencesNone
ParentsContainer,ExePackage,MsiPackage,MspPackage,MsuPackage,PayloadGroup,UX
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
DownloadUrl String TheURLtousetodownloadthepackage.
Name String Thedestinationpathandfilenameforthispayload.Thedefaultisthesourcefilename.
SourceFile String Locationofthesourcefile. Yes
SeeAlsoWixSchema
Version3.5.1623.0
PayloadGroupElement
DescriptionDescribesapayloadgrouptoabootstrapper.
WindowsInstallerreferencesNone
ParentsFragment
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifierforpayloadgroup. Yes
SeeAlsoWixSchema
Version3.5.1623.0
PayloadGroupRefElement
DescriptionCreateareferencetoPayloadGroupelementthatexistsinsideaBundleorFragmentelement.
WindowsInstallerreferencesNone
ParentsExePackage,MsiPackage,MspPackage,MsuPackage,PayloadGroup,UX
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifierofthePayloadGroupelementtoreference.
Yes
SeeAlsoWixSchema,PayloadGroup
Version3.5.1623.0
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
GenericAll YesNoType
GenericExecute YesNoType
GenericRead YesNoType specifyingthiswillfailtograntreadaccess
GenericWrite YesNoType
Notify YesNoType
Read YesNoType
ReadAttributes YesNoType
ReadExtendedAttributes YesNoType
ReadPermission YesNoType
Synchronize YesNoType
TakeOwnership YesNoType
Traverse YesNoType Foradirectory,therighttotraversethedirectory.Bydefault,usersareassignedtheBYPASS_TRAVERSE_CHECKINGprivilege,whichignorestheFILE_TRAVERSEaccessright.Onlyvalidundera'CreateFolder'parent.
User String
Write YesNoType
WriteAttributes YesNoType
WriteExtendedAttributes YesNoType
SeeAlsoWixSchema
Version3.5.1623.0
PermissionExElement
DescriptionSetsACLsonFile,Registry,orCreateFolder.WhenunderaRegistryelement,thiscannotbeusediftheActionattribute'svalueisremoveorremoveKeyOnInstall.ThiselementisonlyavailablewheninstallingwithMSI5.0.Fordownlevelsupport,seethePermissionExelementfromtheWixUtilExtension.
WindowsInstallerreferencesMsiLockPermissionsExTable
ParentsCreateFolder,File,Registry,RegistryKey,RegistryValue,ServiceInstall
InnerTextNone
ChildrenSequence(min:1,max:1)1. Condition(min:0,max:1):Optionalconditionthatcontrols
whetherthepermissionsareapplied.
Attributes
Name Type Description Required
Id String Primarykeyusedtoidentifythisparticularentry.Ifthisisnotspecifiedtheparentelement'sIdattributewillbeusedinstead.
Sddl String Securitydescriptortoapplytoparentobject.
Yes
SeeAlsoWixSchema
Version3.5.1623.0
ProcessComponentsElement
DescriptionRegistersandunregisterscomponents,theirkeypaths,andthecomponentclients.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesProcessComponentsAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
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)LayoutDirectory(min:0,max:unbounded)LayoutDirectoryRef(min:0,max:unbounded)MajorUpgrade(min:0,max:unbounded)Media(min:0,max:unbounded)PackageCertificates(min:0,max:unbounded)PatchCertificates(min:0,max:unbounded)Property(min:0,max:unbounded)PropertyRef(min:0,max:unbounded)SetDirectory(min:0,max:unbounded)SetProperty(min:0,max:unbounded)SFPCatalog(min:0,max:unbounded)SymbolPath(min:0,max:unbounded)UI(min:0,max:unbounded)UIRef(min:0,max:unbounded)Upgrade(min:0,max:unbounded)WixVariable(min:0,max:unbounded)Sequence(min:1,max:1)1. InstallExecuteSequence(min:0,max:1)2. InstallUISequence(min:0,max:1)3. AdminExecuteSequence(min:0,max:1)4. AdminUISequence(min:0,max:1)5. AdvertiseExecuteSequence(min:0,max:1)
AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
CloseApplication
ComPlusApplicationComPlusApplicationRoleComPlusPartitionComPlusPartitionRoleGroupHelpCollectionRefHelpFilterLayoutDirectoryLayoutDirectoryRefMajorUpgradeSqlDatabaseUnitTestRefUserWebApplicationWebAppPoolWebDirPropertiesWebLogWebSite
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
YoucanspecifyanyvalidWindowscodebyintegerlike1252,orbywebnamelikeWindows-1252.SeeCodePagesformoreinformation.
SeeAlsoWixSchema
Version3.5.1623.0
ProgIdElement
DescriptionProgIdregistrationforparentComponent.IfProgIdhasanassociatedClass,itmustbeachildofthatelement.
WindowsInstallerreferencesProgIdTable,ClassTable,RegistryTable,IconTable
ParentsClass,Component,ProgId
InnerTextNone
ChildrenSequence(min:1,max:1)1. ProgId(min:0,max:unbounded):Theversion-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
Version3.5.1623.0
ProgressTextElement
DescriptionNone
WindowsInstallerreferencesActionTextTable
ParentsUI
InnerText(xs:string)Elementvalueisprogressmessagetextforaction
ChildrenNone
Attributes
Name Type Description Required
Action String Yes
Template String usedtoformatActionDatamessagesfromactionprocessing
SeeAlsoWixSchema
Version3.5.1623.0
PropertyElement
DescriptionPropertyvalueforaProductorModule.
WindowsInstallerreferencesPropertyTable
ParentsControl,Fragment,Module,ODBCDataSource,ODBCDriver,Product,UI,Upgrade
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenChoiceofelements(min:0,max:unbounded)
Sequence(min:1,max:1)1. ComplianceDrive(min:0,max:1):Startssearchesfromthe
CCP_DRIVE.2. ComponentSearch(min:0,max:unbounded)3. RegistrySearch(min:0,max:unbounded)4. RegistrySearchRef(min:0,max:unbounded)5. IniFileSearch(min:0,max:unbounded)6. DirectorySearch(min:0,max:unbounded)7. DirectorySearchRef(min:0,max:unbounded)
AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
Attributes
Name Type Description Required
Id String UniqueidentifierforProperty.
Yes
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
Version3.5.1623.0
PropertyRefElement
DescriptionReferencetoaPropertyvalue.
WindowsInstallerreferencesNone
ParentsFragment,Module,PatchFamily,Product,UI
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String IdentifierofPropertytoreference. Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
HowTosandExamplesHowTo:Checkfor.NETFrameworkversions
SeeAlsoWixSchema,Property
Version3.5.1623.0
ProtectFileElement
DescriptionSpecifiesafiletobeprotected.
WindowsInstallerreferencesNone
ParentsFamily
InnerTextNone
ChildrenChoiceofelements(min:1,max:unbounded)
ProtectRange(min:1,max:unbounded)
Attributes
Name Type Description Required
File String ForeignkeyintotheFiletable. Yes
SeeAlsoWixSchema
Version3.5.1623.0
ProtectRangeElement
DescriptionSpecifiespartofafilethatcannotbeoverwrittenduringpatching.
WindowsInstallerreferencesNone
ParentsExternalFile,ProtectFile,TargetFile
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Length Int Lengthoftherange. Yes
Offset Int Offsetofthestartoftherange. Yes
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
PublishComponentsElement
DescriptionManagestheadvertisementofthecomponentsfromthePublishComponenttable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesPublishComponentsAction
ParentsAdvertiseExecuteSequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
PublishFeaturesElement
DescriptionWriteseachfeature'sstateintothesystemregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesPublishFeaturesAction
ParentsAdvertiseExecuteSequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
PublishProductElement
DescriptionManagestheadvertisementoftheproductinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesPublishProductAction
ParentsAdvertiseExecuteSequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
RadioButtonGroupElement
DescriptionSetofradiobuttonstiedtothespecifiedProperty
WindowsInstallerreferencesRadioButtonTable,ControlTable,DialogTable
ParentsControl,UI
InnerTextNone
ChildrenSequence(min:1,max:1)1. RadioButton(min:1,max:unbounded)
Attributes
Name Type Description Required
Property String Propertytiedtothisgroup. Yes
SeeAlsoWixSchema
Version3.5.1623.0
RegisterClassInfoElement
DescriptionManagestheregistrationofCOMclassinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRegisterClassInfoAction
ParentsAdvertiseExecuteSequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
RegisterComPlusElement
DescriptionRegistersCOM+applications.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRegisterComPlusAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
RegisterExtensionInfoElement
DescriptionManagestheregistrationofextensionrelatedinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRegisterExtensionInfoAction
ParentsAdvertiseExecuteSequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
RegisterFontsElement
DescriptionRegistersinstalledfontswiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRegisterFontsAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
RegisterMIMEInfoElement
DescriptionRegistersMIME-relatedregistryinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRegisterMIMEInfoAction
ParentsAdvertiseExecuteSequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
RegisterProductElement
DescriptionRegisterstheproductinformationwiththeinstaller.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRegisterProductAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
RegisterProgIdInfoElement
DescriptionManagestheregistrationofOLEProgIdinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRegisterProgIdInfoAction
ParentsAdvertiseExecuteSequence,InstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
RegisterTypeLibrariesElement
DescriptionRegisterstypelibrarieswiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRegisterTypeLibrariesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
RegisterUserElement
DescriptionRegisterstheuserinformationwiththeinstallertoidentifytheuserofaproduct.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRegisterUserAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
RegistryKeyElement
DescriptionUsedfororganizationofchildRegistryValueelementsortocreatearegistrykey(andoptionallyremoveitduringuninstallation).
WindowsInstallerreferencesRegistryTable
ParentsComponent,RegistryKey
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Permission(min:0,max:unbounded):ACLpermissionPermissionEx(min:0,max:unbounded):CanalsoconfiguretheACLsforthisregistrykey.RegistryKey(min:0,max:unbounded)RegistryValue(min:0,max:unbounded)AnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
PermissionEx
Attributes
Name Type Description Required
Action Enumeration Thisistheactionthatwillbetakenforthisregistryvalue.Thisattribute'svaluemustbeoneofthefollowing:create
Createsthekey,if
absent,whentheparentcomponentisinstalled.
createAndRemoveOnUninstallCreatesthekey,ifabsent,whentheparentcomponentisinstalledthenremovethekeywithallitsvaluesandsubkeyswhentheparentcomponentisuninstalled.
noneDoesnothing;thiselementisusedmerelyinWiXauthoringfororganizationanddoesnothingtothefinaloutput.Thisisthedefaultvalue.
Id String Primarykeyusedtoidentifythisparticularentry.Ifthisattributeisnotspecified,anidentifierwillbegeneratedbyhashingtheparentComponentidentifier,Root,Key,andName.
Key String Thelocalizablekeyfortheregistryvalue.IftheparentelementisaRegistryKey,thisvaluemaybeomittedtousethepathoftheparent,orifitsspecifieditwillbeappendedtothepathoftheparent.
Root RegistryRootType Thepredefinedrootkeyfortheregistryvalue.
HowTosandExamples
HowTo:ReadaregistryentryduringinstallationHowTo:Writearegistryentryduringinstallation
SeeAlsoWixSchema
Version3.5.1623.0
RegistrySearchElement
DescriptionSearchesforfile,directoryorregistrykeyandassignstovalueofparentProperty
WindowsInstallerreferencesRegLocatorTable,SignatureTable
ParentsComplianceCheck,Property
InnerTextNone
ChildrenChoiceofelements(min:0,max:1)
DirectorySearch(min:0,max:1)DirectorySearchRef(min:0,max:1)FileSearch(min:0,max:1)FileSearchRef(min:0,max:1)
Attributes
Name Type Description 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.ThedefaultvaluedependsonthevalueofthePackage/@Platformattribute:ifthe@Platformattributevalueis'x86',thedefault@Win64attributevalueis'no';otherwise,thedefaultvalueis'yes'.
Remarks
WhentheTypeattributevalueis'directory'theregistryvaluemust
specifythepathtoadirectoryexcludingthefilename.WhentheTypeattributevalueis'file'theregistryvaluemustspecifythepathtoafileincludingthefilename;however,ifthereisnochildFileSearchelementtheparentdirectoryofthefileisreturned.TheFileSearchelementrequiresthatyouauthorthenameofthefileyouaresearchingfor.IfyoudonotknowthefilenameyoumustsettheTypeattributeto'raw'toreturnthefullfilepathincludingthefilename.
HowTosandExamplesHowTo:Readaregistryentryduringinstallation
SeeAlsoWixSchema,ComponentSearch,IniFileSearch
Version3.5.1623.0
RegistrySearchRefElement
DescriptionReferencesanexistingRegistrySearchelement.
WindowsInstallerreferencesNone
ParentsProperty
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String SpecifytheIdoftheRegistrySearchtoreference.
Yes
SeeAlsoWixSchema,RegistrySearch
Version3.5.1623.0
RegistryValueElement
DescriptionUsedtocreatearegistryvalue.Formulti-stringvalues,thiscanbeusedtoprependorappendvalues.
Forlegacyauthoring:UseseveraloftheseelementstospecifyeachregistryvalueinamultiStringregistryvalue.ThiselementcannotbeusediftheValueattributeisspecifiedunlesstheTypeattributeissetto'multiString'.ThevaluesshouldgointhetextareaoftheRegistryValueelement.
WindowsInstallerreferencesRegistryTable
ParentsComponent,Registry,RegistryKey
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenChoiceofelements(min:0,max:unbounded)
MultiStringValue(min:0,max:unbounded)Permission(min:0,max:unbounded)PermissionEx(min:0,max:unbounded):CanalsoconfiguretheACLsforthisregistryvalue.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
Version3.5.1623.0
RemoveDuplicateFilesElement
DescriptionDeletesfilesinstalledbytheDuplicateFilesaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRemoveDuplicateFilesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
RemoveEnvironmentStringsElement
DescriptionModifiesthevaluesofenvironmentvariables.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRemoveEnvironmentStringsAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
RemoveFilesElement
DescriptionRemovesfilespreviouslyinstalledbytheInstallFilesaction.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRemoveFilesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
RemoveFoldersElement
DescriptionRemovesanyfolderslinkedtocomponentssettoberemovedorrunfromsource.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRemoveFoldersAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
RemoveIniValuesElement
DescriptionRemoves.inifileinformationspecifiedforremovalintheRemoveIniFiletableifthecomponentissettobeinstalledlocallyorrunfromsource.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRemoveIniValuesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
RemoveODBCElement
DescriptionRemovesthedatasources,translators,anddriverslistedforremovalduringtheinstallation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRemoveODBCAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
RemoveRegistryValuesElement
DescriptionRemovesaregistryvaluethathasbeenauthoredintotheregistrytableiftheassociatedcomponentwasinstalledlocallyorasrunfromsource,andisnowsettobeuninstalled.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRemoveRegistryValuesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
RemoveShortcutsElement
DescriptionManagestheremovalofanadvertisedshortcutwhosefeatureisselectedforuninstallationoranonadvertisedshortcutwhosecomponentisselectedforuninstallation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesRemoveShortcutsAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
ReplacePatchElement
DescriptionApatchthatisdeprecatedbythispatch.
WindowsInstallerreferencesNone
ParentsPatchCreation
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id Guid PatchGUIDtobeunregisteredifitexistsonthemachinetargetedbythispatch.
Yes
SeeAlsoWixSchema
Version3.5.1623.0
RequiredPrivilegeElement
DescriptionPrivilegerequiredbyserviceconfiguredbyServiceConfigparent.ValidvaluesareaprivilegeconstantoraFormattedpropertythatresolvestoaprivilegeconstant.
WindowsInstallerreferencesMsiServiceConfigTable
ParentsServiceConfig
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
RowElement
DescriptionRowdataforaCustomTable
WindowsInstallerreferencesNone
ParentsCustomTable
InnerTextNone
ChildrenSequence(min:1,max:1)1. Data(min:1,max:unbounded)
AttributesNone
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
SelfRegModulesElement
DescriptionProcessesallmoduleslistedintheSelfRegtableandregistersallinstalledmoduleswiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesSelfRegModulesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
SelfUnregModulesElement
DescriptionUnregistersallmoduleslistedintheSelfRegtablethatarescheduledtobeuninstalled.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesSelfUnregModulesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
ServiceArgumentElement
DescriptionArgumentusedinServiceControlparent
WindowsInstallerreferencesServiceControlTable
ParentsServiceControl
SeeAlsoWixSchema
Version3.5.1623.0
ServiceConfigElement
DescriptionConfiguresaservicebeinginstalledoronethatalreadyexists.Thiselement'sfunctionalityisavailablestartingwithMSI5.0.
WindowsInstallerreferencesMsiServiceConfigTable
ParentsComponent,ServiceInstall
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
RequiredPrivilege(min:0,max:unbounded):Listofprivilegestoapplytoservice.
Attributes
Name Type Description 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
Version3.5.1623.0
ServiceConfigFailureActionsElement
DescriptionConfiguresthefailureactionsforaservicebeinginstalledoronethatalreadyexists.Thiselement'sfunctionalityisavailablestartingwithMSI5.0.
WindowsInstallerreferencesMsiServiceConfigFailureActionsTable
ParentsComponent,ServiceInstall
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Failure(min:0,max:unbounded):Orderedlistoffailureactionstoapplytoservice.
Attributes
Name Type Description 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
Version3.5.1623.0
ServiceControlElement
DescriptionStarts,stops,andremovesservicesforparentComponent.ThiselementisusedtocontrolthestateofaserviceinstalledbytheMSIorMSMfilebyusingthestart,stopandremoveattributes.Forexample,Start='install'Stop='both'Remove='uninstall'wouldmean:starttheserviceoninstall,removetheservicewhentheproductisuninstalled,andstoptheservicebothoninstallanduninstall.
WindowsInstallerreferencesServiceControlTable
ParentsComponent
InnerTextNone
ChildrenSequence(min:1,max:1)1. ServiceArgument(min:0,max:unbounded):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
Version3.5.1623.0
ServiceDependencyElement
DescriptionServiceorgroupofservicesthatmuststartbeforetheparentservice.
WindowsInstallerreferencesServiceInstallTable
ParentsServiceInstall
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Thevalueofthisattributeshouldbeoneofthefollowing:1. Thename(notthedisplay
name)ofapreviouslyinstalledservice.
2. AforeignkeyreferringtoanotherServiceInstall/@Id.
3. Agroupofservices(inwhichcasetheGroupattributeshouldbesetto'yes').
Yes
Group YesNoType Setto'yes'toindicatethatthevalueintheIdattributeisthenameofagroupofservices.
SeeAlso
WixSchema
Version3.5.1623.0
ServiceInstallElement
DescriptionAddsandremovesservicesforparentComponent.
WindowsInstallerreferencesServiceInstallTable
ParentsComponent
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
PermissionEx(min:0,max:unbounded):ConfigurestheACLsforthisservice.ServiceConfig(min:0,max:unbounded)ServiceConfigFailureActions(min:0,max:unbounded)ServiceDependency(min:0,max:unbounded):orderedlistofdependencieswheninstallingservicesAnyElement(namespace='##other'processContents='Lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalelementsatthispointintheschema.
ServiceConfig
Attributes
Name Type Description Required
Account String Theaccountunderwhichtostarttheservice.ValidonlywhenServiceTypeisownProcess.
Arguments String Containsany
commandlineargumentsorpropertiesrequiredtoruntheservice.
Description String Setsthedescriptionoftheservice.
DisplayName String Thiscolumnisthelocalizablestringthatuserinterfaceprogramsusetoidentifytheservice.
EraseDescription YesNoType Determineswhethertheexistingservicedescriptionwillbeignored.If'yes',theservicedescriptionwillbenull,eveniftheDescriptionattributeisset.
ErrorControl Enumeration Determineswhatactionshouldbetakenonanerror.Thisattribute'svaluemustbeoneofthefollowing:ignore
Logstheerrorandcontinueswiththestartupoperation.
normalLogstheerror,displaysamessageboxandcontinuesthestartupoperation.
critical
Yes
Logstheerrorifitispossibleandthesystemisrestartedwiththelastconfigurationknowntobegood.Ifthelast-known-goodconfigurationisbeingstarted,thestartupoperationfails.
Id String Uniqueidentifierforthisserviceconfiguration.ThisvaluewilldefaulttotheNameattributeifnotspecified.
Interactive YesNoType Whetherornottheserviceinteractswiththedesktop.
LoadOrderGroup String Theloadorderinggroupthatthisserviceshouldbeapartof.
Name String Thiscolumnisthestringthatgivestheservicenametoinstall.
Yes
Password String Thepasswordfortheaccount.Validonlywhentheaccounthasapassword.
Start Enumeration Determineswhentheserviceshouldbestarted.TheWindowsInstallerdoesnot
Yes
supportbootorsystem.Thisattribute'svaluemustbeoneofthefollowing:auto
Theservicewillstartduringstartupofthesystem.
demandTheservicewillstartwhentheservicecontrolmanagercallstheStartServicefunction.
disabledTheservicecannolongerbestarted.
bootTheserviceisadevicedriverthatwillbestartedbytheoperatingsystembootloader.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.
systemTheserviceisadevicedriverthatwillbestartedbytheIoInitSystemfunction.Thisvalueisnot
currentlysupportedbytheWindowsInstaller.
Type Enumeration TheWindowsInstallerdoesnotcurrentlysupportkernelDriverorsystemDriverThisattribute'svaluemustbeoneofthefollowing:ownProcess
AWin32servicethatrunsitsownprocess.
shareProcessAWin32servicethatsharesaprocess.
kernelDriverAkerneldriverservice.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.
systemDriverAfilesystemdriverservice.ThisvalueisnotcurrentlysupportedbytheWindowsInstaller.
Yes
Vital YesNoType Theoverallinstallshouldfailifthisservicefailstoinstall.
RemarksTheserviceexecutableinstalledwillpointtotheKeyPathfortheComponent.Therefore,youmustensurethatthecorrectexecutableiseitherthefirstchildFileelementunderthisComponentorexplicitlymarktheappropriateFileelementasKeyPath='yes'.
SeeAlsoWixSchema
Version3.5.1623.0
SetDirectoryElement
DescriptionSetsaDirectorytoaparticularvalue.ThisisaccomplishedbycreatingaType51customactionthatisappropriatelyscheduledintheInstallUISequenceandInstallExecuteSequence.
WindowsInstallerreferencesCustomActionTable
ParentsFragment,Module,Product
InnerText(xs:string)TheconditionthatdetermineswhethertheDirectoryisset.Iftheconditionevaluatestofalse,theSetDirectoryisskipped.
ChildrenNone
Attributes
Name Type Description Required
Id String ThisattributespecifiesareferencetoaDirectoryelementwithmatchingIdattribute.ThepathoftheDirectorywillbesettotheValueattribute.
Sequence SequenceType ControlswhichsequencestheDirectoryassignmentissequencedin.For'execute',theassignmentisscheduledintheInstallExecuteSequence.For'ui',theassignmentisscheduledinthe
InstallUISequence.For'both',theassignmentisscheduledinboththeInstallUISequenceandtheInstallExecuteSequence.Thedefaultisboth.
Value String ThisattributespecifiesastringvaluetoassigntotheDirectory.ThevaluecanbealiteralvalueorderivedfromaPropertyelementusingtheFormattedsyntax.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,Custom,CustomActionRef,InstallUISequence,InstallExecuteSequence
Version3.5.1623.0
SetODBCFoldersElement
DescriptionChecksforexistingODBCdriversandsetsthetargetdirectoryforeachnewdrivertothelocationofanexistingdriver.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesSetODBCFoldersAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
SetPropertyElement
DescriptionSetsaPropertytoaparticularvalue.ThisisaccomplishedbycreatingaType51customactionthatisappropriatelyscheduledintheInstallUISequenceandInstallExecuteSequence.
WindowsInstallerreferencesCustomActionTable
ParentsFragment,Module,Product
InnerText(xs:string)TheconditionthatdetermineswhetherthePropertyisset.Iftheconditionevaluatestofalse,theSetisskipped.
ChildrenNone
Attributes
Name Type Description Required
After String Thenameofthestandardorcustomactionafterwhichthisactionshouldbeperformed.MutuallyexclusivewiththeBeforeattribute.ABeforeorAfterattributeisrequiredwhensettingaProperty.
Before String Thenameofthestandardorcustomactionbeforewhichthisactionshouldbeperformed.MutuallyexclusivewiththeAfterattribute.ABeforeorAfter
attributeisrequiredwhensettingaProperty.
Id String ThisattributespecifiesthePropertytosettotheValue.
Sequence SequenceType ControlswhichsequencesthePropertyassignmentissequencedin.For'execute',theassignmentisscheduledintheInstallExecuteSequence.For'ui',theassignmentisscheduledintheInstallUISequence.For'both',theassignmentisscheduledinboththeInstallUISequenceandtheInstallExecuteSequence.Thedefaultisboth.
Value String ThisattributespecifiesastringvaluetoassigntotheProperty.ThevaluecanbealiteralvalueorderivedfromaPropertyelementusingtheFormattedsyntax.
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,Custom,CustomActionRef,InstallUISequence,InstallExecuteSequence
Version3.5.1623.0
SFPCatalogElement
DescriptionAddsasystemfileprotectionupdatecatalogfile
WindowsInstallerreferencesSFPCatalogTable
ParentsFragment,Module,Product,SFPCatalog
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
SFPCatalog(min:0,max:unbounded)SFPFile(min:0,max:unbounded):PrimaryKeytoFileTable.
Attributes
Name Type Description Required
Dependency String Usedtodefinedependencyoutsideofthepackage.
Name String Filenameforcatalogfilewheninstalled.
SourceFile String Pathtocatalogfileinbinary.
SeeAlsoWixSchema
Version3.5.1623.0
SFPFileElement
DescriptionProvidesamany-to-manymappingfromtheSFPCatalogtabletotheFiletable
WindowsInstallerreferencesFileSFPCatalogTable
ParentsSFPCatalog
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String PrimaryKeytoFileTable. Yes
SeeAlsoWixSchema
Version3.5.1623.0
ShortcutElement
DescriptionShortcut,defaulttargetisparentFile,CreateFolder,orComponent'sDirectory
WindowsInstallerreferencesShortcutTable
ParentsComponent,CreateFolder,File
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Icon(min:0,max:unbounded)ShortcutProperty(min:0,max:unbounded)
Attributes
Name Type 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
Version3.5.1623.0
ShortcutPropertyElement
DescriptionPropertyvaluesforashortcut.Thiselement'sfunctionalityisavailablestartingwithMSI5.0.
WindowsInstallerreferencesMsiShortcutPropertyTable
ParentsShortcut
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Id String UniqueidentifierforMsiShortcutPropertytable.Ifomitted,astableidentifierwillbegeneratedfromtheparentshortcutidentifierandKeyvalue.
Key String Aformattedstringidentifyingthepropertytobeset.
Yes
Value String Aformattedstringsupplyingthevalueoftheproperty.
SeeAlsoWixSchema,Shortcut
Version3.5.1623.0
ShowElement
DescriptionNone
WindowsInstallerreferencesNone
ParentsAdminUISequence,InstallUISequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
After String
Before String
Dialog String Yes
OnExit ExitType mutuallyexclusivewithBefore,After,andSequenceattributes
Overridable YesNoType If"yes",thesequencingofthisdialogmaybeoverriddenbysequencingelsewhere.
Sequence Integer
SeeAlsoWixSchema
Version3.5.1623.0
StartServicesElement
DescriptionStartssystemservices.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesStartServicesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
StopServicesElement
DescriptionStopssystemservices.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesStopServicesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
SubscribeElement
DescriptionSetsattributesforeventsintheEventMappingtable
WindowsInstallerreferencesEventMappingTable
ParentsControl
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Attribute String ifnotpresentcanonlyhandleenable,disable,hide,unhideevents
Event String mustbeoneofthestandardcontrolevents'
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
SymbolPathElement
DescriptionApathtosymbols.
WindowsInstallerreferencesNone
ParentsComponent,Directory,ExternalFile,File,Media,Product,TargetFile,TargetImage,UpgradeFile,UpgradeImage
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Path String Thepath. Yes
SeeAlsoWixSchema
Version3.5.1623.0
TargetFileElement
DescriptionInformationaboutspecificfilesinatargetimage.
WindowsInstallerreferencesNone
ParentsTargetImage
InnerTextNone
ChildrenSequence(min:1,max:1)1. SymbolPath(min:0,max:1)2. Choiceofelements(min:0,max:unbounded)
IgnoreRange(min:0,max:unbounded)ProtectRange(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String ForeignkeyintotheFiletable. Yes
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
TargetProductCodeElement
DescriptionAproductcodeforaproductthatcanacceptthepatch.
WindowsInstallerreferencesNone
ParentsPatchCreation,TargetProductCodes
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Theproductcodeforaproductthatcanacceptthepatch.Thiscanbe'*'.Seeremarksformoreinformation.
Yes
Remarks
WhenusingthePatchCreationelement,iftheIdattributevalueis'*'orthiselementisnotauthored,theproductcodesofallproductsreferencedbytheTargetImageselementareused.
WhenusingthePatchelement,theIdattributevaluemustnotbe'*'.UsetheTargetProductCodes/@Replaceattributeinstead.
SeeAlsoWixSchema
Version3.5.1623.0
TargetProductCodesElement
DescriptionTheproductcodesforproductsthatcanacceptthepatch.
WindowsInstallerreferencesNone
ParentsPatch
InnerTextNone
ChildrenChoiceofelements(min:1,max:unbounded)
TargetProductCode(min:1,max:unbounded)
Attributes
Name Type Description Required
Replace YesNoType Whethertoreplacetheproductcodesthatcanacceptthepatchfromthetargetpackageswiththechildelements.
SeeAlsoWixSchema
Version3.5.1623.0
TextElement
DescriptionAnalternativetousingtheTextattributewhenthevaluecontainsspecialXMLcharacterslike<,>,or&.
WindowsInstallerreferencesNone
ParentsControl
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
SourceFile String Instructsthetexttobeimportedfromafileinsteadoftheelementvalueduringthebindingprocess.
src String Thisattributehasbeendeprecated;pleaseusetheSourceFileattributeinstead.
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
TypeLibElement
DescriptionRegisteratypelibrary(TypeLib).Pleasenotethatinordertoproperlyusethisnon-advertised,youwillneedusethiselementwithAdvertise='no'andalsoauthortheappropriatechildInterfaceelementsbyextractingthemfromthetypelibraryitself.
WindowsInstallerreferencesTypeLibTable,RegistryTable
ParentsComponent,File
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
AppId(min:0,max:unbounded)Class(min:0,max:unbounded)Interface(min:0,max:unbounded)
Attributes
Name Type Description 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
Version3.5.1623.0
UIElement
DescriptionEnclosingelementtocompartmentalizeUIspecifications.
WindowsInstallerreferencesNone
ParentsFragment,Module,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
BillboardAction(min:0,max:unbounded):BillboardtableitemwithchildControlsBinary(min:0,max:unbounded)ComboBox(min:0,max:unbounded):ComboBoxtablewithListItemchildrenDialog(min:0,max:unbounded):Dialogspecification,calledfromSequenceDialogRef(min:0,max:unbounded):ReferencetoaDialogspecification.EmbeddedUI(min:0,max:unbounded):EmbeddedUIdefinitionwithEmbeddedResourcechildren.Error(min:0,max:unbounded):ErrortextassociatedwithinstallerrorListBox(min:0,max:unbounded):ListBoxtablewithListItemchildrenListView(min:0,max:unbounded):ListViewtablewithListItemchildrenProgressText(min:0,max:unbounded):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
Version3.5.1623.0
UIRefElement
DescriptionReferencetoaUIelement.ThiswillforcetheentirereferencedFragment'scontentstobeincludedintheinstallerdatabase.
WindowsInstallerreferencesNone
ParentsFragment,Module,PatchFamily,Product,UI
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoWixSchema,UI
Version3.5.1623.0
UITextElement
DescriptionTextassociatedwithcertaincontrols
WindowsInstallerreferencesUITextTable
ParentsUI
InnerText(xs:string)Elementvalueistext,mayuseCDATAifneededtoescapeXMLdelimiters
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
SeeAlsoWixSchema
Version3.5.1623.0
UnpublishComponentsElement
DescriptionManagestheunadvertisementofcomponentslistedinthePublishComponenttable.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesUnpublishComponentsAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
UnpublishFeaturesElement
DescriptionRemovesselection-stateandfeature-componentmappinginformationfromtheregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesUnpublishFeaturesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
UnregisterClassInfoElement
DescriptionManagestheremovalofCOMclassinformationfromthesystemregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesUnregisterClassInfoAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
UnregisterComPlusElement
DescriptionRemovesCOM+applicationsfromtheregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesUnregisterComPlusAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
UnregisterExtensionInfoElement
DescriptionManagestheremovalofextension-relatedinformationfromthesystemregistry.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesUnregisterExtensionInfoAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
UnregisterFontsElement
DescriptionRemovesregistrationinformationaboutinstalledfontsfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesUnregisterFontsAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
UnregisterMIMEInfoElement
DescriptionUnregistersMIME-relatedregistryinformationfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesUnregisterMIMEInfoAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
UnregisterProgIdInfoElement
DescriptionManagestheunregistrationofOLEProgIdinformationwiththesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesUnregisterProgIdInfoAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
UnregisterTypeLibrariesElement
DescriptionUnregisterstypelibrariesfromthesystem.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesUnregisterTypeLibrariesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
UpgradeElement
DescriptionUpgradeinfoforaparticularUpgradeCode
WindowsInstallerreferencesUpgradeTable
ParentsFragment,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Property(min:0,max:unbounded):NestingaPropertyelementunderanUpgradeelementhasbeendeprecated.PleasenestPropertyelementsinanyoftheothersupportedlocations.UpgradeVersion(min:0,max:unbounded)
Attributes
Name Type Description Required
Id Guid ThisvaluespecifiestheupgradecodefortheproductsthataretobedetectedbytheFindRelatedProductsaction.
Yes
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
UpgradeImageElement
DescriptionContainsinformationabouttheupgradedimagesoftheproduct.
WindowsInstallerreferencesNone
ParentsFamily
InnerTextNone
ChildrenSequence(min:1,max:1)1. TargetImage(min:1,max:unbounded)2. Choiceofelements(min:0,max:unbounded)
SymbolPath(min:0,max:unbounded)UpgradeFile(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifiertoconnecttargetimageswithupgradedimage.
Yes
SourceFile String Fullpathtolocationofmsifileforupgradedimage.
SourcePatch String Modifiedcopyoftheupgradedinstallationdatabasethatcontainsadditionalauthoringspecifictopatching.
src String Thisattributehasbeendeprecated;pleaseusetheSourceFileattributeinstead.
srcPatch String Thisattributehasbeendeprecated;pleaseusetheSourcePatchattributeinstead.
SeeAlsoWixSchema
Version3.5.1623.0
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,thevalueofthispropertyisalistproductcodes,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
Version3.5.1623.0
UXElement
DescriptionContainsalltherelevantinformationaboutthesetupUI.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
Payload(min:0,max:unbounded)PayloadGroupRef(min:0,max:unbounded)
Attributes
Name Type Description Required
Name String ThedestinationpathandfilenameforthisUXpayload.Thedefaultisthesourcefilename.UsethisattributetorenametheUXentrypointorextractitintoasubfolder.
SourceFile String TheentrypointoftheUX.
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
ValidateProductIDElement
DescriptionSetstheProductIDpropertytothefullproductidentifier.ThisactionmustbesequencedbeforetheuserinterfacewizardintheInstallUISequencetableandbeforetheRegisterUseractionintheInstallExecuteSequencetable.Iftheproductidentifierhasalreadybeenvalidatedsuccessfully,theValidateProductIDactiondoesnothing.TheValidateProductIDactionalwaysreturnsasuccess,whetherornottheproductidentifierisvalid,sothattheproductidentifiercanbeenteredonthecommandlinethefirsttimetheproductisrun.TheproductidentifiercanbevalidatedwithouthavingtheuserreenterthisinformationbysettingthePIDKEYpropertyonthecommandlineorbyusingatransform.ThedisplayofthedialogboxrequestingtheusertoentertheproductidentifiercanthenbemadeconditionaluponthepresenceoftheProductIDproperty,whichissetwhenthePIDKEYpropertyisvalidated.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesValidateProductIDAction
ParentsInstallExecuteSequence,InstallUISequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
VariableElement
DescriptionDescribesaburnenginevariabletodefine.
WindowsInstallerreferencesNone
ParentsBundle
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Name String Thenameforthevariable. Yes
Type Enumeration Typeofthevariable,inferredfromthevalueifnotspecified.Thisattribute'svaluemustbeoneofthefollowing:string
numeric
version
Value String Startingvalueforthevariable. Yes
SeeAlsoWixSchema
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
WixVariableElement
DescriptionThiselementexposesadvancedWiXfunctionality.UsethiselementtodeclareWiXvariablesfromdirectlywithinyourauthoring.WiXvariablesarenotresolveduntilthefinalmsi/msm/pcpfileisactuallygenerated.WiXvariablesdonotpersistintothemsi/msm/pcpfile,sotheycannotbeusedwhenanMSIfileisbeinginstalled;it'saWiX-onlyconcept.
WindowsInstallerreferencesNone
ParentsFragment,Module,Product
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Thenameofthevariable. Yes
Overridable YesNoType Setthisvalueto'yes'inordertomakethevariable'svalueoverridableeitherbyanotherWixVariableentryorviathecommand-lineoption-d<name>=<value>forlight.exe.Ifthesamevariableisdeclaredoverridableinmultipleplacesitwillcauseanerror(sinceWiXwon'tknowwhichvalueiscorrect).
Thedefaultvalueis'no'.
Value String Thevalueofthevariable.Thevaluecannotbeanemptystringbecausethatwouldmakeitpossibletoaccidentallysetacolumntonull.
Yes
SeeAlsoWixSchema
Version3.5.1623.0
WriteEnvironmentStringsElement
DescriptionModifiesthevaluesofenvironmentvariables.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesWriteEnvironmentStringsAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
WriteIniValuesElement
DescriptionWritesthe.inifileinformationthattheapplicationneedswrittentoits.inifiles.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesWriteIniValuesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
WriteRegistryValuesElement
DescriptionSetsupanapplication'sregistryinformation.Theconditionforthisactionmaybespecifiedintheelement'sinnertext.
WindowsInstallerreferencesWriteRegistryValuesAction
ParentsInstallExecuteSequence
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Sequence Integer Avalueusedtoindicatethepositionofthisactioninasequence.
Suppress YesNoType Ifyes,thisactionwillnotoccur.
SeeAlsoWixSchema
Version3.5.1623.0
AutogenGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.
SeeAlsoWixSchema
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoWixSchema
ExitType(SimpleType)
DescriptionTODO:Whatdoesthistypemean?
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
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoWixSchema
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,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
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoWixSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoWixSchema
WixlocSchema
Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.
SchemafordescribingWindowsInstallerXmlLocalizationfiles(.wxl).
RootElementWixLocalization
TargetNamespacehttp://schemas.microsoft.com/wix/2006/localization
DocumentShouldLookLike<?xmlversion="1.0"?><WixLocalizationxmlns="http://schemas.microsoft.com/wix/2006/localization">...</WixLocalization>
Version3.5.1623.0
StringElement
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
Version3.5.1623.0
WixLocalizationElement
DescriptionNone
WindowsInstallerreferencesNone
ParentsNone
InnerTextNone
ChildrenSequence(min:0,max:unbounded)1. String(min:0,max:unbounded)
Attributes
Name Type Description Required
Codepage String Thecodepageintegervalueorwebnamefortheresultingdatabase.Youcanalsospecify-1whichwillnotresetthedatabasecodepage.Seeremarksformoreinformation.
Culture String Cultureofthelocalizationstrings. Yes
Remarks
YoucanspecifyanyvalidWindowscodebyintegerlike1252,orbywebnamelikeWindows-1252oriso-8859-1.SeeCodePagesformoreinformation.
HowTosandExamplesHowTo:Buildalocalizedversionofyourinstaller
HowTo:Makeyourinstallerlocalizable
SeeAlsoWixlocSchema
Version3.5.1623.0
LocalizationYesNoType(SimpleType)
DescriptionNone
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoWixlocSchema
ComplusSchema
Copyright(c)MicrosoftCorporation.Allrightsreserved.
TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.
Youmustnotremovethisnotice,oranyother,fromthissoftware.
ThesourcecodeschemafortheWindowsInstallerXMLToolsetCOM+Extension.
TargetNamespacehttp://schemas.microsoft.com/wix/ComPlusExtension
ChildElementsComPlusApplicationComPlusApplicationRoleComPlusAssemblyComPlusAssemblyDependencyComPlusComponentComPlusGroupInApplicationRoleComPlusGroupInPartitionRoleComPlusInterfaceComPlusMethodComPlusPartitionComPlusPartitionRoleComPlusPartitionUserComPlusRoleForComponentComPlusRoleForInterface
ComPlusRoleForMethodComPlusSubscriptionComPlusUserInApplicationRoleComPlusUserInPartitionRole
Version3.5.1623.0
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
Version3.5.1623.0
ComPlusApplicationRoleElement(ComplusExtension)
DescriptionDefinesanapplicationrole.IfthiselementisadescendentofaComponentelement,theapplicationrolewillbecreatedinassociationwiththiscomponent.IftheelementisachildofanyoftheFragment,ModuleorProductelementsitisconsideredtobealocater,referencinganexistingapplicationrole.
WindowsInstallerreferencesNone
ParentsComPlusApplication,Component,Fragment,Module,Product
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
ComPlusGroupInApplicationRole(min:0,max:unbounded)ComPlusUserInApplicationRole(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
Application String IftheelementisnotachildofaComPlusApplicationelement,thisattributeshouldbeprovidedwiththeidofaComPlusApplicationelementrepresentingtheapplicationtherolebelongsto.
Description String
Name String Nameoftheapplicationrole. Yes
SeeAlsoComplusSchema
Version3.5.1623.0
ComPlusAssemblyElement(ComplusExtension)
DescriptionRepresentsaDLLorassemblytoberegisteredwithCOM+.IfthiselementisachildofaComPlusApplicationelement,theassemblywillberegisteredinthisapplication.OtherwaystheApplicationattributemustbesettoanapplication.TheelementmustbeadescendentofaComponentelement,itcannotbeachildofaComPlusApplicationlocatorelement.
WindowsInstallerreferencesNone
ParentsComPlusApplication,Component
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
ComPlusAssemblyDependency(min:0,max:unbounded)ComPlusComponent(min:0,max:unbounded)
Attributes
Name Type Description 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
Version3.5.1623.0
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
Version3.5.1623.0
ComPlusComponentElement(ComplusExtension)
DescriptionRepresentsaCOM+componentinanassembly.
WindowsInstallerreferencesNone
ParentsComPlusAssembly
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
ComPlusInterface(min:0,max:unbounded)ComPlusRoleForComponent(min:0,max:unbounded)ComPlusSubscription(min:0,max:unbounded)
Attributes
Name Type 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
Version3.5.1623.0
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
Version3.5.1623.0
ComPlusGroupInPartitionRoleElement(ComplusExtension)
DescriptionThiselementrepresentsasecuritygroupmembershipinapartitionrole.Whentheparentcomponentofthiselementisinstalled,thesecuritygroupwillbeaddedtotheassociatedpartitionrole.
WindowsInstallerreferencesNone
ParentsComPlusPartitionRole,Component
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
Group String ForeignkeyintotheGrouptable. Yes
PartitionRole String TheidofaComPlusPartitionRoleelementrepresentingthepartitiontheusershouldbeaddedto.
SeeAlsoComplusSchema
Version3.5.1623.0
ComPlusInterfaceElement(ComplusExtension)
DescriptionRepresentsaninterfaceforaCOM+component.
WindowsInstallerreferencesNone
ParentsComPlusComponent
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
ComPlusMethod(min:0,max:unbounded)ComPlusRoleForInterface(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
Description String
IID Uuid IIDoftheinterface. Yes
QueuingEnabled YesNoType
SeeAlsoComplusSchema
Version3.5.1623.0
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
Version3.5.1623.0
ComPlusPartitionElement(ComplusExtension)
DescriptionDefinesaCOM+partition.IfthiselementisachildofaComponentelement,thepartitionwillbecreatedinassociationwiththiscomponent.IftheelementisachildofanyoftheFragment,ModuleorProductelementsitisconsideredtobealocater,referencinganexistingpartition.
WindowsInstallerreferencesNone
ParentsComponent,Fragment,Module,Product
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
ComPlusApplication(min:0,max:unbounded)ComPlusPartitionRole(min:0,max:unbounded)ComPlusPartitionUser(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
Changeable YesNoType
Deleteable YesNoType
Description String
Name String Nameofthepartition.Thisattributecanbeomittediftheelementisalocater,andavalueisprovidedforthePartitionIdattribute.
PartitionId String Idforthepartition.Thisattributecanbeomitted,inwhichcaseanidwillbegeneratedoninstall.Iftheelementisalocater,thisattributecanbeomittedifavalueisprovidedfortheNameattribute.
SeeAlsoComplusSchema
Version3.5.1623.0
ComPlusPartitionRoleElement(ComplusExtension)
DescriptionDefinesaCOM+partitionrole.Partitionrolescannotbecreated;thiselementcanonlybeusedasalocatertoreferenceanexistingrole.
WindowsInstallerreferencesNone
ParentsComPlusPartition,Component,Fragment,Module,Product
InnerTextNone
ChildrenSequence(min:1,max:1)1. Choiceofelements(min:0,max:unbounded)
ComPlusGroupInPartitionRole(min:0,max:unbounded)ComPlusUserInPartitionRole(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
Name String Nameofthepartitionrole. Yes
Partition String TheidofaComPlusPartitionelementrepresentingthepartitiontherolebelongsto.
SeeAlsoComplusSchema
Version3.5.1623.0
ComPlusPartitionUserElement(ComplusExtension)
DescriptionRepresentsadefaultpartitiondefinitionforauser.Whentheparentcomponentofthiselementisinstalled,thedefaultpartitionoftheuserwillbesettothereferencedpartition.
WindowsInstallerreferencesNone
ParentsComPlusPartition,Component
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
Partition String TheidofaComPlusPartitionelementrepresentingthepartitionthatwillbethedefaultpartitionfortheuser.
User String ForeignkeyintotheUsertable. Yes
SeeAlsoComplusSchema
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
ComPlusUserInPartitionRoleElement(ComplusExtension)
DescriptionThiselementrepresentsausermembershipinapartitionrole.Whentheparentcomponentofthiselementisinstalled,theuserwillbeaddedtotheassociatedpartitionrole.
WindowsInstallerreferencesNone
ParentsComPlusPartitionRole,Component
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierfortheelement. Yes
PartitionRole String TheidofaComPlusPartitionRoleelementrepresentingthepartitiontheusershouldbeaddedto.
User String ForeignkeyintotheUsertable. Yes
SeeAlsoComplusSchema
Version3.5.1623.0
AutogenGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.
SeeAlsoComplusSchema
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoComplusSchema
ExitType(SimpleType)
DescriptionTODO:Whatdoesthistypemean?
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
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoComplusSchema
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,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
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoComplusSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoComplusSchema
DifxappSchema
Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.
ThesourcecodeschemafortheWindowsInstallerXMLToolsetDriverInstallFrameworksforApplicationsExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/DifxAppExtension
ChildElementsDriver
Version3.5.1623.0
DriverElement(DifxappExtension)
DescriptionInstallsadriver.Tousethiselement,youneedtoreferencetheWixDifxAppExtensionextensionandaddthe.wixlibappropriateforthetargetplatform(difxapp_x86.wixlib,difxapp_x64.wixlib,ordifxapp_ia64.wixlib)toyourproject.
WindowsInstallerreferencesNone
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description
AddRemovePrograms YesNoType SpecifiesthattheDIFxAppCustomActionsshouldaddanentryintheAdd/RemoveProgramsControlThedefaultis'yes'.
DeleteFiles YesNoType Ifsetto"yes",configuresDIFxApptodeletebinaryfilesthatwerecopiedtothesystemfromthedriveradriverpackagewasinstalled.Ifthisattributeissetto"no"ornotpresent,DIFxAppdoesnotfromasystem.NotethatconfiguringDIFxApptodeletethesefilesiscontrolledbytheFlagsentryvalueofthecomponentthatrepresentsthedriverpackageintheMsiDriverPackagescustomtable.DriverDeleteFilesto"yes"setsthecorrespondingbitintheFlagsentryvalue.SettingDriverLegacycorrespondingbitintheFlagsentryvalue.Ifthisattribute
isnotpresent,DIFxAppusesadefaultvalueof"no".
ForceInstall YesNoType SpecifiesthattheDIFxAppCustomActionsshouldforcetheinstallationofanewPlugandPlaydriverevenifthecurrentlyinstalleddriveronthedeviceisabettermatchthanthenewdriver.excellentwaytoensuretheDIFxAppCustomActionsrecognizetheComponentcontainsThedefaultisnullwhichmeanstheComponentdoesnotinstalladriverviaDIFxAppCustomActions.Seehttp://www.microsoft.com/whdc/driver/install/difxtools.mspxformoreinformation.
Legacy YesNoType Ifsetto"yes",configuresDIFxApptoinstallunsigneddriverpackagesanddriverpackageswithmissingFormoreinformation,see"InstallingUnsignedDriverPackagesinLegacyMode"earlierinthispaper.attributeissetto"no"ornotpresent,DIFxAppwillinstallonlysigneddriverpackages.NoteDIFxApptoinstallunsigneddriversiscontrolledbytheFlagsentryvalueofthecomponentdriverpackageintheMsiDriverPackagescustomtable.SettingDriverLegacyto"yes"setstheFlagsentryvalue.SettingDriverLegacyto"no"clearsthebitintheFlagsentryvaluethatconfiguresDIFxApptoinstallunsigneddriverpackages.Ifthisattributeisnotpresent,DIFxAppusesadefaultvalueof"no".
PlugAndPlayPrompt YesNoType SpecifiesthattheDIFxAppCustomActionsshouldprompttheusertoconnectthePlugandPlayconnected.Thedefaultis'yes'.
Sequence Integer Specifiesanoptionalinstallationsequencenumber.DIFxAppCustomActionsinstallthedriverpackagesininstallationpackageintheorderofincreasingsequencenumbers.Thesamesequencenumbercanbeusedmorethanonedriver;however,theorderinwhichpackageswiththesamesequencenumberareactuallyinstalledcannotbedetermined.
SeeAlso
DifxappSchema
Version3.5.1623.0
AutogenGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.
SeeAlsoDifxappSchema
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoDifxappSchema
ExitType(SimpleType)
DescriptionTODO:Whatdoesthistypemean?
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
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoDifxappSchema
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,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
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoDifxappSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoDifxappSchema
FirewallSchema
Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.
ThesourcecodeschemafortheWindowsInstallerXMLToolsetFirewallExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/FirewallExtension
ChildElementsFirewallExceptionRemoteAddress
Version3.5.1623.0
FirewallExceptionElement(FirewallExtension)
DescriptionRegistersanexceptionforaprogramoraspecificportandprotocolintheWindowsFirewallonWindowsXPSP2,WindowsServer2003SP1,andlater.FormoreinformationabouttheWindowsFirewall,seeAboutWindowsFirewallAPI.
WindowsInstallerreferencesNone
ParentsComponent,File
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
RemoteAddress(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String UniqueIDofthisfirewallexception.
Yes
File String Identifierofafiletobegrantedaccesstoallincomingportsandprotocols.IfyouuseFile,youcannotalsouseProgram,Port,orProtocol.
IgnoreFailure YesNoType If"yes,"failurestoregisterthisfirewallexceptionwill
besilentlyignored.If"no"(thedefault),failureswillcauserollback.
Name String Nameofthisfirewallexception,visibletotheuserinthefirewallcontrolpanel.
Yes
Port String Porttoallowthroughthefirewallforthisexception.IfyouusePort,youcannotalsouseFileorProgram.
Profile Enumeration Profiletypeforthisfirewallexception.Defaultis"all".Thisattribute'svaluemustbeoneofthefollowing:domain
private
public
all
Program String Pathtoatargetprogramtobegrantedaccesstoallincomingportsandprotocols.Notethatthisisaformattedfield,soyoucanuse[#fileId]syntaxtorefertoafilebeinginstalled.IfyouuseProgram,youcannotalsouseFile,Port,orProtocol.
Protocol Enumeration IPprotocolusedforthisfirewallexception.Ifnotspecified,"tcp"isassumed.IfyouuseProtocol,youmustalso
specifyPortandyoucannotalsouseFileorProgram.Thisattribute'svaluemustbeoneofthefollowing:tcp
udp
Scope Enumeration Thescopeofthisfirewallexception,whichindicateswhetherincomingconnectionscancomefromanycomputerincludingthoseontheInternetoronlythoseonthelocalnetworksubnet.Tomorepreciselyspecifyallowedremoteaddress,specifyacustomscopeusingRemoteAddresschildelements.Thisattribute'svaluemustbeoneofthefollowing:any
localSubnet
SeeAlsoFirewallSchema
Version3.5.1623.0
RemoteAddressElement(FirewallExtension)
DescriptionAremoteaddresstowhichtheportorprogramcanlisten.AddressformatsvarybasedontheversionofWindowsandWindowsFirewalltheprogramisbeinginstalledon.ForWindowsXPSP2andWindowsServer2003SP1,seeRemoteAddressesProperty.ForWindowsVistaandWindowsServer2008,seeRemoteAddressesProperty.
WindowsInstallerreferencesNone
ParentsFirewallException
InnerText(xs:string)Aremoteaddress.
ChildrenNone
AttributesNone
SeeAlsoFirewallSchema
Version3.5.1623.0
AutogenGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.
SeeAlsoFirewallSchema
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoFirewallSchema
ExitType(SimpleType)
DescriptionTODO:Whatdoesthistypemean?
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
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoFirewallSchema
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,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
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoFirewallSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoFirewallSchema
GamingSchema
Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.
ThesourcecodeschemafortheWindowsInstallerXMLToolsetGamingExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/GamingExtension
ChildElementsGamePlayTaskSupportTask
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
SupportTaskElement(GamingExtension)
DescriptionCreatesanInternetshortcutandregistersitasa"supporttask"inGameExplorer.Formoreinformation,seeGameExplorerTasks.SupportTaskshouldnotbeusedwhenauthoringthetasksintheGDFusingExtendedProperties\GameTasksavailableinWindows7.
WindowsInstallerreferencesNone
ParentsGame
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Address String URIforthistask.
Name String User-visibletasknameGameExplorershowsonitscontextmenu.Notethatthefirsttaskisnamed"Play"regardlessofthenameyouprovide.
Yes
SeeAlsoGamingSchema
Version3.5.1623.0
IsRichSavedGameAttribute(GamingExtension)
DescriptionRegistersthisextensionfortherichsavedgamespropertyhandleronWindowsVistaandlater.
WindowsInstallerreferencesNone
ParentsExtension
SeeAlsoGamingSchema
Version3.5.1623.0
AutogenGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.
SeeAlsoGamingSchema
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoGamingSchema
ExitType(SimpleType)
DescriptionTODO:Whatdoesthistypemean?
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
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoGamingSchema
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,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
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoGamingSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoGamingSchema
IisSchema
Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.
ThesourcecodeschemafortheWindowsInstallerXMLToolsetInternetInformationServicesExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/IIsExtension
ChildElementsCertificateCertificateRefHttpHeaderMimeMapRecycleTimeWebAddressWebApplicationWebApplicationExtensionWebAppPoolWebDirWebDirPropertiesWebErrorWebFilterWebLogWebPropertyWebServiceExtensionWebSite
WebVirtualDir
Version3.5.1623.0
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
Version3.5.1623.0
CertificateRefElement(IisExtension)
DescriptionAssociatesacertificatewiththeparentWebSite.TheCertificateelementshouldbeinthesameComponentastheparentWebSite.
WindowsInstallerreferencesNone
ParentsWebSite
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifierofthereferencedCertificate.
Yes
SeeAlsoIisSchema,Certificate
Version3.5.1623.0
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
Version3.5.1623.0
MimeMapElement(IisExtension)
DescriptionMimeMapdefinitionforIISresources.
WindowsInstallerreferencesNone
ParentsWebSite,WebVirtualDir
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String IdfortheMimeMap. Yes
Extension String ExtensioncoveredbytheMimeMap.Mustbeginwithadot.
Yes
Type String Mime-typecoveredbytheMimeMap.
Yes
SeeAlsoIisSchema
Version3.5.1623.0
RecycleTimeElement(IisExtension)
DescriptionIIS6ApplicationPoolRecycleTimeson24hourclock.
WindowsInstallerreferencesNone
ParentsWebAppPool
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Value String Pattern:'\d{1,2}:\d{2}'. Yes
SeeAlsoIisSchema
Version3.5.1623.0
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
Version3.5.1623.0
WebApplicationElement(IisExtension)
DescriptionDefinespropertiesforawebapplication.Thesepropertiescanbeusedformorethanoneapplicationdefinedinawebsiteorvroot,bydefiningthiselementinacommonlocationandreferringtoitbysettingtheWebApplicationattributeoftheWebSiteandWebVirtualDirelements.
WindowsInstallerreferencesNone
ParentsFragment,Module,Product,WebSite,WebVirtualDir
InnerTextNone
ChildrenSequence(min:1,max:1)1. WebApplicationExtension(min:0,max:unbounded)
Attributes
Name Type Description 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 SetsthetimeoutvalueforexecutingASPscripts.
ServerDebugging YesNoDefaultType EnableASPserver-sidescriptdebugging.
SessionTimeout Integer Setsthetimeoutvaluefor
sessionsinminutes.
WebAppPool String ReferencestheIdattributeofaWebAppPoolelementtouseastheapplicationpoolforthisapplicationinIIS6applications.
SeeAlsoIisSchema
Version3.5.1623.0
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
Version3.5.1623.0
WebAppPoolElement(IisExtension)
DescriptionIIS6ApplicationPool
WindowsInstallerreferencesNone
ParentsComponent,Fragment,Module,Product
InnerTextNone
ChildrenSequence(min:1,max:1)1. RecycleTime(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String IdoftheAppPool. Yes
CpuAction Enumeration ActiontakenwhenCPUexceedsmaximumCPUuse(asdefinedwithMaxCpuUsageandRefreshCpu).Thisattribute'svaluemustbeoneofthefollowing:none
shutdown
Identity Enumeration IdentityyouwanttheAppPooltorununder.Usethe'other'valueinconjunctionwiththeUserattributetospecifynon-standarduser.Thisattribute'svaluemustbeoneofthefollowing:networkService
localService
localSystem
other
IdleTimeout Integer Shutdownworkerprocessafterbeingidlefor(timeinminutes).
MaxCpuUsage PercentType MaximumCPUusage(percent).
MaxWorkerProcesses Integer Maximumnumberofworkerprocesses.
Name String NameoftheAppPooltobeshowninIIs.
Yes
PrivateMemory Integer Specifiestheamountofprivatememory(inKB)thataworkerprocesscanuse
beforetheworkerprocessrecycles.Themaximumvaluesupportedforthisattributeis4,294,967KB.
QueueLimit Integer Limitthekernelrequestqueue(numberofrequests).
RecycleMinutes Integer Howoften,inminutes,youwanttheAppPooltoberecycled.
RecycleRequests Integer Howoften,inrequests,youwanttheAppPooltoberecycled.
RefreshCpu Integer RefreshCPUusagenumbers(inminutes).
User String UseraccounttoruntheAppPoolas.Tousethis,youmustsettheIdentityattributeto'other'.
VirtualMemory Integer Specifiestheamountofvirtualmemory(inKB)thataworkerprocesscanusebeforetheworkerprocessrecycles.
Themaximumvaluesupportedforthisattributeis4,294,967KB.
SeeAlsoIisSchema
Version3.5.1623.0
WebDirElement(IisExtension)
DescriptionDefinesasubdirectorywithinanIISwebsite.WhenthiselementisachildofWebSite,thewebdirectoryisdefinedwithinthatwebsite.OtherwisethewebdirectorymustreferenceaWebSiteelementviatheWebSiteattribute.
WindowsInstallerreferencesNone
ParentsComponent,WebSite
InnerTextNone
ChildrenChoiceofelements(min:1,max:1)
WebDirProperties(min:0,max:1)
Attributes
Name Type Description Required
Id String Yes
DirProperties String ReferencestheIdattributeforaWebDirPropertieselementthatspecifiesthesecurityandaccesspropertiesforthiswebdirectory.ThisattributemaynotbespecifiedifaWebDirPropertieselementisdirectlynestedinthiselement.
Path String Specifiesthenameofthiswebdirectory.
Yes
WebSite String ReferencestheIdattributeforaWebSiteelementinwhichthisdirectorybelongs.RequiredwhenthiselementisnotachildofaWebSiteelement.
SeeAlsoIisSchema
Version3.5.1623.0
WebDirPropertiesElement(IisExtension)
DescriptionWebDirPropertiesusedbyoneormoreWebSites.ListspropertiescommontoIISwebsitesandvroots.CorrespondingpropertiescanbeviewedthroughtheIISManagersnap-in.OnepropertyentrycanbereusedbymultiplesitesorvrootsusingtheIdfieldasareference,usingWebVirtualDir.DirProperties,WebSite.DirProperties,orWebDir.DirProperties.
WindowsInstallerreferencesNone
ParentsFragment,Module,Product,WebDir,WebSite,WebVirtualDir
InnerTextNone
ChildrenNone
Attributes
Name Type 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
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
WebSiteElement(IisExtension)
DescriptionIIsWebSite
WindowsInstallerreferencesNone
ParentsComponent,Fragment,Module,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
CertificateRef(min:0,max:unbounded)HttpHeader(min:0,max:unbounded)MimeMap(min:0,max:unbounded)WebAddress(min:1,max:unbounded)WebApplication(min:0,max:1)WebDir(min:0,max:unbounded)WebDirProperties(min:0,max:1)WebError(min:0,max:unbounded)WebFilter(min:0,max:unbounded)WebVirtualDir(min:0,max:unbounded)
Attributes
Name Type Description 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
Version3.5.1623.0
WebVirtualDirElement(IisExtension)
DescriptionDefinesanIISvirtualdirectory.WhenthiselementisachildofWebSiteelement,thevirtualdirectoryisdefinedwithinthatwebsite.OtherwisethisvirtualdirectorymustreferenceaWebSiteelementviatheWebSiteattribute
WindowsInstallerreferencesNone
ParentsComponent,WebSite,WebVirtualDir
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
HttpHeader(min:0,max:unbounded)MimeMap(min:0,max:unbounded)WebApplication(min:0,max:1)WebDirProperties(min:0,max:1)WebError(min:0,max:unbounded)WebVirtualDir(min:0,max:unbounded)
Attributes
Name Type Description 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
Version3.5.1623.0
AutogenGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.
SeeAlsoIisSchema
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoIisSchema
ExitType(SimpleType)
DescriptionTODO:Whatdoesthistypemean?
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
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoIisSchema
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,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
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoIisSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoIisSchema
IsolatedAppSchema
Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.
SchemafordescribingIsolatedApplications.
RootElementIsolatedApp
TargetNamespacehttp://wix.sourceforge.net/schemas/clickthrough/isolatedapp/2006
DocumentShouldLookLike<?xmlversion="1.0"?><IsolatedAppxmlns="http://wix.sourceforge.net/schemas/clickthrough/isolatedapp/2006">...</IsolatedApp>
Version3.5.1623.0
ApplicationElement(IsolatedAppExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsIsolatedApp
InnerTextNone
ChildrenChoiceofelements(min:0,max:1)
Details(min:0,max:1)EntryPoint(min:0,max:1)Icon(min:0,max:1)Id(min:0,max:1)Name(min:0,max:1)Source(min:0,max:1)
AttributesNone
SeeAlsoIsolatedAppSchema
Version3.5.1623.0
DescriptionElement(IsolatedAppExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsPackage
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoIsolatedAppSchema
Version3.5.1623.0
DetailsElement(IsolatedAppExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsApplication
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoIsolatedAppSchema
Version3.5.1623.0
EntryPointElement(IsolatedAppExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsApplication
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
PackageVersion Boolean
SeeAlsoIsolatedAppSchema
Version3.5.1623.0
FeedElement(IsolatedAppExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsPackage
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoIsolatedAppSchema
Version3.5.1623.0
IconElement(IsolatedAppExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsApplication,Package
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Index Integer
SeeAlsoIsolatedAppSchema
Version3.5.1623.0
IdElement(IsolatedAppExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsApplication,Package
InnerText(uuid)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoIsolatedAppSchema
Version3.5.1623.0
IsolatedAppElement(IsolatedAppExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsNone
InnerTextNone
ChildrenSequence(min:1,max:1)1. Package(min:1,max:1)2. Application(min:1,max:1)3. PreviousFeed(min:0,max:1)
AttributesNone
SeeAlsoIsolatedAppSchema
Version3.5.1623.0
ManufacturerElement(IsolatedAppExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsPackage
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoIsolatedAppSchema
Version3.5.1623.0
NameElement(IsolatedAppExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsApplication
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoIsolatedAppSchema
Version3.5.1623.0
PackageElement(IsolatedAppExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsIsolatedApp
InnerTextNone
ChildrenChoiceofelements(min:0,max:1)
Description(min:0,max:1)Feed(min:0,max:1)Icon(min:0,max:1)Id(min:0,max:1)Manufacturer(min:0,max:1)UpdateRate(min:0,max:1)Version(min:0,max:1)
AttributesNone
SeeAlsoIsolatedAppSchema
Version3.5.1623.0
PreviousFeedElement(IsolatedAppExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsIsolatedApp
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoIsolatedAppSchema
Version3.5.1623.0
SourceElement(IsolatedAppExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsApplication
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoIsolatedAppSchema
Version3.5.1623.0
UpdateRateElement(IsolatedAppExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsPackage
InnerText(xs:integer)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoIsolatedAppSchema
Version3.5.1623.0
VersionElement(IsolatedAppExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsPackage
InnerText(VersionType)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoIsolatedAppSchema
Version3.5.1623.0
uuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?'.
SeeAlsoIsolatedAppSchema
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoIsolatedAppSchema
LuxSchema
Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.
ThesourcecodeschemafortheWindowsInstallerXMLToolsetLuxExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/2009/Lux
ChildElementsConditionExpressionMutationUnitTestUnitTestRef
Version3.5.1623.0
ConditionElement(LuxExtension)
DescriptionConditionsforaunittest.
WindowsInstallerreferencesNone
ParentsUnitTest
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoLuxSchema
Version3.5.1623.0
ExpressionElement(LuxExtension)
DescriptionAnexpressionthatmustevaluatetotruetosucceed.CannotbespecifiedifPropertyisspecified.
WindowsInstallerreferencesNone
ParentsUnitTest
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoLuxSchema
Version3.5.1623.0
MutationElement(LuxExtension)
DescriptionTestmutationsletyouauthorunittestswithdifferentexpectedresults.ThemutationidispassedasthevalueoftheWIXLUX_RUNNING_MUTATIONproperty.Yourcustomaction,typicallyinan'#ifdefDEBUG'block,canretrievetheWIXLUX_RUNNING_MUTATIONpropertyandhard-codedifferentbehaviorbasedonthemutation.Toauthortestmutations,usetheMutationelementwithUnitTestelementsaschildren.
WindowsInstallerreferencesNone
ParentsFragment
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
UnitTest(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String ValueoftheWIXLUX_RUNNING_MUTATIONpropertysetbythemutation.
SeeAlsoLuxSchema
Version3.5.1623.0
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
Version3.5.1623.0
UnitTestRefElement(LuxExtension)
DescriptionIdentifiesaunittesttobelinkedintoaproject.
WindowsInstallerreferencesNone
ParentsFragment,Product
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Identifieroftheunittesttobeincluded.
SeeAlsoLuxSchema
Version3.5.1623.0
AutogenGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.
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
ExitType(SimpleType)
DescriptionTODO:Whatdoesthistypemean?
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
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoLuxSchema
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,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
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoLuxSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoLuxSchema
MsmqSchema
Copyright(c)MicrosoftCorporation.Allrightsreserved.
TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.
Youmustnotremovethisnotice,oranyother,fromthissoftware.
ThesourcecodeschemafortheWindowsInstallerXMLToolsetMSMQExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/MsmqExtension
ChildElementsMessageQueueMessageQueuePermission
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
AutogenGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.
SeeAlsoMsmqSchema
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoMsmqSchema
ExitType(SimpleType)
DescriptionTODO:Whatdoesthistypemean?
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
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoMsmqSchema
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,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
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoMsmqSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoMsmqSchema
NetfxSchema
Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.
ThesourcecodeschemafortheWindowsInstallerXMLToolset.NETFrameworkExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/NetFxExtension
ChildElementsNativeImage
Version3.5.1623.0
NativeImageElement(NetfxExtension)
DescriptionImprovestheperformanceofmanagedapplicationsbycreatingnativeimages.Requiresthe.NETFramework2.0ornewertobeinstalledonthetargetmachinesinceitrunsNGen.
WindowsInstallerreferencesNone
ParentsFile
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String TheidentifierforthisNativeImage.
Yes
AppBaseDirectory String Theidentifierofthedirectorytouseforlocatingdependentassemblies.ForDLLassembliesandassembliesinstalledtotheGlobalAssemblyCache(GAC),thisattributeshouldbesettothedirectoryoftheapplicationwhichloadsthisassembly.ForEXEassemblies,thisattribute
doesnotneedtobesetbecauseNGenwillusethedirectoryoftheassemblyfilebydefault.
AssemblyApplication String Theidentifieroftheapplicationwhichwillloadthisassembly.ForDLLassemblieswhichareloadedviareflection,thisattributeshouldbesettoindicatetheapplicationwhichwillloadthisassembly.Theconfigurationoftheapplication(usuallyspecifiedviaanexe.configfile)willbeusedtodeterminehowtoresolvedependenciesforthisassembly.Whenasharedcomponentisloadedatruntime,usingtheLoadmethod,theapplication'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.0ornewerisnotpresentonthetargetmachine,nativeimagecustomactionswillnotbescheduled.
allAttempttogeneratenativeimagesforthe32-bitand64-bitversionsofthe.NETFrameworkonthetargetmachine.Ifaversionofthe.NETFramework2.0ornewerisnotpresentonthetargetmachineforaprocessor
architecture,nativeimagecustomactionswillnotbescheduledforthatprocessorarchitecture.
Priority Enumeration Setsthepriorityofgeneratingthenativeimagesforthisassembly.Thisattribute'svaluemustbeoneofthefollowing:0
Thisisthehighestpriority,itmeansthatimagegenerationoccurssyncronouslyduringthesetupprocess.Thisoptionwillslowdownsetupperformance.
1ThiswillqueueimagegenerationtotheNGenservicetooccurimmediately.Thisoptionwillslowdownsetupperformance.
2ThiswillqueueimagegenerationtotheNGenservicetooccurafterallpriority1assemblieshavecompleted.Thisoptionwillslowdownsetupperformance.
3
Thisisthelowestpriority,itwillqueueimagegenerationtooccurwhenthemachineisidle.Thisoptionshouldnotslowdownsetupperformance.Thisisthedefaultvalue.
Profile YesNoType Setto"yes"togeneratenativeimagesthatcanbeusedunderaprofiler.Thedefaultvalueis"no".
RemarksNativeimagesarefilescontainingcompiledprocessor-specificmachinecode,whichareinstalledintothenativeimagecacheonthelocalcomputer.Theruntimecanusenativeimagesfromthecacheinsteadusingthejust-in-time(JIT)compilertocompiletheoriginalassembly.Thenativeimagecustomactionsareconfiguredtoignorefailuressothatfailingtogenerateorremoveanativeimagewillnotcausesetuptofailandrollback.
SeeAlsoNetfxSchema
Version3.5.1623.0
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoNetfxSchema
OfficeAddinSchema
Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.
SchemafordescribingOfficeAddins.
RootElementOfficeAddin
TargetNamespacehttp://wix.sourceforge.net/schemas/clickthrough/officeaddin/2006
DocumentShouldLookLike<?xmlversion="1.0"?><OfficeAddinxmlns="http://wix.sourceforge.net/schemas/clickthrough/officeaddin/2006">...</OfficeAddin>
Version3.5.1623.0
ApplicationElement(OfficeAddinExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsOfficeAddin
InnerTextNone
ChildrenChoiceofelements(min:0,max:1)
Details(min:0,max:1)EntryPoint(min:0,max:1)ExtendsApplication(min:0,max:1)Icon(min:0,max:1)Id(min:0,max:1)Name(min:0,max:1)Source(min:0,max:1)
AttributesNone
SeeAlsoOfficeAddinSchema
Version3.5.1623.0
DescriptionElement(OfficeAddinExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsPackage
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoOfficeAddinSchema
Version3.5.1623.0
DetailsElement(OfficeAddinExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsApplication
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoOfficeAddinSchema
Version3.5.1623.0
EntryPointElement(OfficeAddinExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsApplication
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoOfficeAddinSchema
Version3.5.1623.0
ExtendsApplicationElement(OfficeAddinExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsApplication
InnerText(SupportedOfficeApplications)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoOfficeAddinSchema
Version3.5.1623.0
FeedElement(OfficeAddinExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsPackage
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoOfficeAddinSchema
Version3.5.1623.0
IconElement(OfficeAddinExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsApplication,Package
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
Attributes
Name Type Description Required
Index Integer
SeeAlsoOfficeAddinSchema
Version3.5.1623.0
IdElement(OfficeAddinExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsApplication,Package
InnerText(uuid)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoOfficeAddinSchema
Version3.5.1623.0
ManufacturerElement(OfficeAddinExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsPackage
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoOfficeAddinSchema
Version3.5.1623.0
NameElement(OfficeAddinExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsApplication
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoOfficeAddinSchema
Version3.5.1623.0
OfficeAddinElement(OfficeAddinExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsNone
InnerTextNone
ChildrenSequence(min:1,max:1)1. Package(min:1,max:1)2. Application(min:1,max:1)3. PreviousFeed(min:0,max:1)
AttributesNone
SeeAlsoOfficeAddinSchema
Version3.5.1623.0
PackageElement(OfficeAddinExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsOfficeAddin
InnerTextNone
ChildrenChoiceofelements(min:0,max:1)
Description(min:0,max:1)Feed(min:0,max:1)Icon(min:0,max:1)Id(min:0,max:1)Manufacturer(min:0,max:1)UpdateRate(min:0,max:1)Version(min:0,max:1)
AttributesNone
SeeAlsoOfficeAddinSchema
Version3.5.1623.0
PreviousFeedElement(OfficeAddinExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsOfficeAddin
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoOfficeAddinSchema
Version3.5.1623.0
SourceElement(OfficeAddinExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsApplication
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoOfficeAddinSchema
Version3.5.1623.0
UpdateRateElement(OfficeAddinExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsPackage
InnerText(xs:integer)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoOfficeAddinSchema
Version3.5.1623.0
VersionElement(OfficeAddinExtension)
DescriptionNone
WindowsInstallerreferencesNone
ParentsPackage
InnerText(VersionType)Thiselementmayhaveinnertext.
ChildrenNone
AttributesNone
SeeAlsoOfficeAddinSchema
Version3.5.1623.0
SupportedOfficeApplications(SimpleType)
DescriptionNone
EnumerationTypePossiblevalues:{Excel2003,Outlook2003,PowerPoint2003,Word2003}
SeeAlsoOfficeAddinSchema
uuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?'.
SeeAlsoOfficeAddinSchema
VersionType(SimpleType)
DescriptionValuesofthistypewilllooklike:"x.x.x.x"wherexisanintegerfrom0to65534.
PatternTypeMustmatchtheregularexpression:'(\d{1,5}\.){3}\d{1,5}'.
SeeAlsoOfficeAddinSchema
PsSchema
Copyright(c)MicrosoftCorporation.Allrightsreserved.
TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.
Youmustnotremovethisnotice,oranyother,fromthissoftware.
ThesourcecodeschemafortheWindowsInstallerXMLToolsetPowerShellExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/PSExtension
ChildElementsFormatsFileSnapInTypesFile
Version3.5.1623.0
FormatsFileElement(PsExtension)
DescriptionIdentifiestheparentFileasaformatsXMLfileforthereferencedPowerShellsnap-in.
WindowsInstallerreferencesNone
ParentsFile,SnapIn
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
FileId String ReferencetotheformatsFileID.ThisisrequiredwhennestedundertheSnapInelement.
SnapIn String ReferencetothePowerShellsnap-inIDforwhichthisformatsfileisassociated.ThisisrequiredwhennestedundertheFileelement.
RemarksAformatsXMLfilethatdefinesoutputformatsforobjectsonthepipeline.
SeeAlsoPsSchema
Version3.5.1623.0
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
Version3.5.1623.0
TypesFileElement(PsExtension)
DescriptionIdentifiestheparentFileasatypesXMLfileforthereferencedPowerShellsnap-in.
WindowsInstallerreferencesNone
ParentsFile,SnapIn
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
FileId String ReferencetothetypesFileID.ThisisrequiredwhennestedundertheSnapInelement.
SnapIn String ReferencetothePowerShellsnap-inIDforwhichthistypesfileisassociated.ThisisrequiredwhennestedundertheFileelement.
RemarksAtypesXMLfileusedbytheextensibletypesystem.
SeeAlsoPsSchema
Version3.5.1623.0
RequiredVersionAttribute(PsExtension)
DescriptionTheversionofthisextensionrequiredtocompilethedefiningsource.
WindowsInstallerreferencesNone
ParentsWix
SeeAlsoPsSchema
Version3.5.1623.0
AutogenGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.
SeeAlsoPsSchema
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoPsSchema
EmbeddedResource(SimpleType)
Description
ValuesshouldbeintheformatResourceName,StringName,whereResourceNameisthenameoftheembeddedresourceinyourassemblysansthe".resources"extension,andStringNameisthenameofthestringresourceintheembeddedresource.
Example:UtilityMshSnapInResources,Description
SeeAlsoPsSchema
ExitType(SimpleType)
DescriptionTODO:Whatdoesthistypemean?
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
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoPsSchema
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,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
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoPsSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoPsSchema
SqlSchema
Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.
ThesourcecodeschemafortheWindowsInstallerXMLToolsetSQLServerExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/SqlExtension
ChildElementsSqlDatabaseSqlFileSpecSqlLogFileSpecSqlScriptSqlString
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
AutogenGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.
SeeAlsoSqlSchema
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoSqlSchema
ExitType(SimpleType)
DescriptionTODO:Whatdoesthistypemean?
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
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoSqlSchema
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,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
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoSqlSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoSqlSchema
UtilSchema
Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.
ThesourcecodeschemafortheWindowsInstallerXMLToolsetUtilityExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/UtilExtension
ChildElementsCloseApplicationComponentSearchDirectorySearchEventManifestEventSourceFileSearchFileShareFileSharePermissionGroupGroupRefInternetShortcutPerfCounterPerfCounterManifestPerformanceCategoryPerformanceCounterPermissionExProductSearch
RegistrySearchServiceConfigUserXmlConfigXmlFile
Version3.5.1623.0
CloseApplicationElement(UtilExtension)
DescriptionClosesapplicationsorschedulesarebootifapplicationcannotbeclosed.
WindowsInstallerreferencesNone
ParentsFragment,Module,Product
InnerText(xs:string)Conditionthatdeterminesiftheapplicationshouldbeclosed.Mustbeblankorevaluatetotruefortheapplicationtobescheduledforclosing.
ChildrenNone
Attributes
Name Type Description Required
Id String Identifierforthecloseapplication(primarykey).
Yes
CloseMessage YesNoType Optionallysendsaclosemessagetotheapplication.Defaultisno.
Description String Descriptiontoshowifapplicationisrunningand
needstobeclosed.
ElevatedCloseMessage YesNoType Optionallysendsaclosemessagetotheapplicationfromdefferedactionwithoutimpersonation.Defaultisno.
Property String Propertytobesetifapplicationisstillrunning.UsefulforlaunchconditionsortoconditionalizecustomUItoaskusertoshutdownapps.
RebootPrompt YesNoType Optionallypromptsforrebootifapplicationisstillrunning.Defaultisyes.
Sequence Integer Optionallyorderstheapplicationstobeclosed.
Target String Nameoftheexectuabletobeclosed.Thisshouldonlybefilename.
Yes
SeeAlsoUtilSchema
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
FileShareElement(UtilExtension)
DescriptionCreatesafileshareoutofthecomponent'sdirectory.
WindowsInstallerreferencesNone
ParentsComponent
InnerTextNone
ChildrenSequence(min:1,max:1)1. FileSharePermission(min:1,max:unbounded):ACLpermission
Attributes
Name Type Description Required
Id String Identifierforthefileshare(primarykey).
Yes
Description String Descriptionofthefileshare.
Name String Nameofthefileshare. Yes
SeeAlsoUtilSchema
Version3.5.1623.0
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
Version3.5.1623.0
GroupElement(UtilExtension)
DescriptionFindsusergroupsonthelocalmachineorspecifiedActiveDirectorydomain.ThelocalmachinewillbesearchedforthegroupfirstthenfallbacktolookinginActiveDirectory.Thiselementisnotcapableofcreatingnewgroupsbutcanbeusedtoaddneworexistinguserstoanexistinggroup.
WindowsInstallerreferencesNone
ParentsFragment,Module,Product
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Uniqueidentifierinyourinstallationpackageforthisgroup.
Yes
Domain String AnoptionalFormattedstringthatspecifiesthedomainforthegroup.
Name String AFormattedstringthatcontainsthenameofthegrouptobefound.
Yes
SeeAlsoUtilSchema
Version3.5.1623.0
GroupRefElement(UtilExtension)
DescriptionUsedtojoinausertoagroup
WindowsInstallerreferencesNone
ParentsUser
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String Yes
SeeAlsoUtilSchema
Version3.5.1623.0
InternetShortcutElement(UtilExtension)
DescriptionCreatesashortcuttoaURL.
WindowsInstallerreferencesNone
ParentsComponent
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String UniqueidentifierinyourinstallationpackageforthisInternetshortcut.
Yes
Directory String IdentifierreferencetoDirectoryelementwhereshortcutistobecreated.Thisattribute'svaluedefaultstotheparentComponentdirectory.
Name String Thenameoftheshortcutfile,whichisvisibletotheuser.(The.lnkextensionisaddedautomaticallyandbydefault,isnotshowntotheuser.)
Yes
Target String URLthatshouldbeopened Yes
whentheuserselectstheshortcut.WindowsopenstheURLintheappropriatehandlerfortheprotocolspecifiedintheURL.Notethatthisisaformattedfield,soyoucanuse[#fileId]syntaxtorefertoafilebeinginstalled(usingthefile:protocol).
Type Enumeration Whichtypeofshortcutshouldbecreated.Thisattribute'svaluemustbeoneofthefollowing:url
Creates.urlfilesusingIUniformResourceLocatorW.
linkCreates.lnkfilesusingIShellLinkW(default).
HowTosandExamplesHowTo:Createashortcuttoawebpage
SeeAlsoUtilSchema
Version3.5.1623.0
PerfCounterElement(UtilExtension)
DescriptionThiselementhasbeendeprecated;pleaseusethePerformanceCounterelementinstead.
WindowsInstallerreferencesNone
ParentsFile
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Name String
SeeAlsoUtilSchema
Version3.5.1623.0
PerfCounterManifestElement(UtilExtension)
DescriptionUsedtoinstallPerfmonCounterManifests.
WindowsInstallerreferencesNone
ParentsFile
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
ResourceFileDirectory String Thedirectorythatholdstheresourcefileoftheprovidersintheperfmoncountermanifest.Oftentheresourcefilepathcannotbedetermineduntilsetuptime.Putthedirectoryhereandduringperfmonmanifestregistrtionthepathwillbeupdatedintheregistry.Ifnotspecified,Perfmonwilllookfortheresource
fileinthesamedirectoryoftheperfmoncountermanifestfile.
SeeAlsoUtilSchema
Version3.5.1623.0
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
Version3.5.1623.0
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
Version3.5.1623.0
PermissionExElement(UtilExtension)
DescriptionSetsACLsonFile,Registry,CreateFolder,orServiceInstall.WhenunderaRegistryelement,thiscannotbeusediftheActionattribute'svalueisremoveorremoveKeyOnInstall.ThiselementhasnoIdattribute.Thetableandkeyaretakenfromtheparentelement.TousePermissionExwithanIA-64MSI,youmustcompileallofyoursourcefileswiththe"-archia64"switch,toensuretheIA-64customactionisused,andnotthex64customaction.
WindowsInstallerreferencesNone
ParentsCreateFolder,File,Registry,RegistryKey,RegistryValue
InnerTextNone
ChildrenNone
Attributes
Name Type 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 RequiredtocalltheEnumDependentServicesfunction
toenumeratealltheservicesdependentontheservice.validundera'ServiceInstall'parent.
ServiceInterrogate YesNoType RequiredtocalltheControlServicefunctiontoasktheservicetoreportitsstatusimmediately.Onlyvalidundera'ServiceInstall'parent.
ServicePauseContinue YesNoType RequiredtocalltheControlServicefunctiontopauseorcontinuetheservice.Onlyvalidundera'ServiceInstall'parent.
ServiceQueryConfig YesNoType RequiredtocalltheQueryServiceConfigandQueryServiceConfig2functionstoquerytheserviceconfiguration.Onlyvalidundera'ServiceInstall'parent.
ServiceQueryStatus YesNoType RequiredtocalltheQueryServiceStatusfunctiontoasktheservicecontrolmanageraboutthestatusoftheservice.undera'ServiceInstall'parent.
ServiceStart YesNoType RequiredtocalltheStartServicefunctiontostarttheservice.validundera'ServiceInstall'parent.
ServiceStop YesNoType RequiredtocalltheControlServicefunctiontostoptheservice.validundera'ServiceInstall'parent.
ServiceUserDefinedControl YesNoType RequiredtocalltheControlServicefunctiontospecifyauser-definedcontrolcode.Onlyvalidundera'ServiceInstall'parent.
Synchronize YesNoType
TakeOwnership YesNoType
Traverse YesNoType Foradirectory,therighttotraversethedirectory.Bydefault,usersareassignedtheBYPASS_TRAVERSE_CHECKINGprivilege,whichignorestheFILE_TRAVERSEaccessright.Onlyvalidundera'CreateFolder'parent.
User String
Write YesNoType
WriteAttributes YesNoType
WriteExtendedAttributes YesNoType
SeeAlsoUtilSchema
Version3.5.1623.0
ProductSearchElement(UtilExtension)
DescriptionDescribesaproductsearch.
WindowsInstallerreferencesNone
ParentsBundle,Fragment
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
After String Idofthesearchthatthisoneshouldcomeafter.
Condition String Conditionforevaluatingthesearch.Ifthisevaluatestofalse,thesearchisnotexecutedatall.
Guid String ProductCodetosearchfor. Yes
Id String Idofthesearchfororderinganddependency.
Result Enumeration Ratherthansavingtheproductversionintothevariable,aProductSearchcansaveanotherattributeofthe
matchingproductinstead.Thisattribute'svaluemustbeoneofthefollowing:Version
Savestheversionofamatchingproductiffound;0.0.0.0otherwise.Thisisthedefault.
LanguageSavesthelanguageofamatchingproductiffound;emptyotherwise.
StateSavesthestateoftheproduct:advertised(1),absent(2),orlocallyinstalled(3).
AssignmentSavestheassignmenttypeoftheproduct:per-user(0),orper-machine(1).
Variable String Nameofthevariableinwhichtoplacetheresultofthesearch.
Yes
SeeAlsoUtilSchema
Version3.5.1623.0
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 NMTOKEN Ratherthansavingthematchingregistryvalueintothevariable,aRegistrySearchcansaveanattributeofthematchingentryinstead.Pattern:'Exists'.
Root Enumeration Registryroothivetosearchunder.Thisattribute'svaluemustbeoneofthefollowing:HKLM
HKEY_LOCAL_MACHINE
HKCUHKEY_CURRENT_USER
HKCRHKEY_CLASSES_ROOT
HKUHKEY_USERS
Value String Optionalvaluetosearchfor
underthegivenKey.
Variable String Nameofthevariableinwhichtoplacetheresultofthesearch.
SeeAlsoUtilSchema
Version3.5.1623.0
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.
RebootMessage String Ifanyofthethree*ActionTypeattributesis"reboot",thisspecifiesthemessagetobroadcasttoserverusersbeforedoingso.
ResetPeriodInDays Integer Numberofdaysafterwhichtoresetthefailurecounttozeroiftherearenofailures.
RestartServiceDelayInSeconds Integer Ifanyofthethree*ActionTypeattributesis"restart",thisspecifiesthenumberofsecondstowaitbeforedoingso.
SecondFailureActionType Enumeration Actiontotake Yes
onthesecondfailureoftheservice.Thisattribute'svaluemustbeoneofthefollowing:none
reboot
restart
runCommand
ServiceName String RequiredifnotunderaServiceInstallelement.
ThirdFailureActionType Enumeration Actiontotakeonthethirdfailureoftheservice.Thisattribute'svaluemustbeoneofthefollowing:none
reboot
restart
runCommand
Yes
RemarksNestingaServiceConfigelementunderaServiceInstallelementwillresultintheservicebeinginstalledtobeconfigured.
NestingaServiceConfigelementunderacomponentelementwillresultinanalreadyinstalledservicetobeconfigured.IftheservicedoesnotexistpriortotheinstalloftheMSIpackage,theinstallwillfail.
SeeAlsoUtilSchema
Version3.5.1623.0
UserElement(UtilExtension)
DescriptionUserforallkindsofthings.WhenitisnotnestedunderacomponentitisincludedintheMSIsoitcanbereferencedbyotherelementssuchastheUserattributeintheAppPoolelement.WhenitisnestedunderaComponentelement,theUserwillbecreatedoninstallandcanalsobeusedforreference.
WindowsInstallerreferencesNone
ParentsComponent,Fragment,Module,Product
InnerTextNone
ChildrenSequence(min:1,max:1)1. GroupRef(min:0,max:unbounded)
Attributes
Name Type 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.
LogonAsService YesNoType Indicateswhetherornottheusercanlogonasaserivce.Usercreationcanbeskippedifallthatisdesiredistosetthisaccessrightontheuser.
Name String AFormattedstringthatcontainsthenameoftheuseraccount.
Password String UsuallyaPropertythatispassedinonthecommand-linetokeepitmoresecure.
PasswordExpired YesNoType Indicateswhethertheusermustchangetheirpasswordontheirfirstlogin.
PasswordNeverExpires YesNoType Theaccount'spasswordneverexpires.EquivalenttoUF_DONT_EXPIRE_PASSWD.
RemoveOnUninstall YesNoType Indicateswhethertheuseraccountshouldberemovedorleftbehindonuninstall.
UpdateIfExists YesNoType Indicatesiftheuseraccountpropertiesshouldbeupdatediftheuseralreadyexists.
SeeAlsoUtilSchema,Group,GroupRef
Version3.5.1623.0
XmlConfigElement(UtilExtension)
DescriptionAddsorremoves.xmlfileentries.IfyouusetheXmlConfigelementyoumustreferenceWixUtilExtension.dllasitcontainstheXmlConfigcustomactions.
WindowsInstallerreferencesNone
ParentsComponent,XmlConfig
InnerText(xs:string)Thiselementmayhaveinnertext.
ChildrenSequence(min:1,max:1)1. XmlConfig(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String Identifierforxmlfilemodification.
Yes
Action Enumeration Thisattribute'svaluemustbeoneofthefollowing:create
delete
ElementId String TheIdofanotherXmlConfigtoaddattributesto.Inthiscase,the
'Action''Node'and'On'attributesmustbeleftunspecified.
ElementPath String TheXPathoftheparentelementbeingmodified.Notethatthisisaformattedfieldandtherefore,squarebracketsintheXPathmustbeescaped.
File String Pathofthe.xmlfiletoconfigure.
Yes
Name String NameofXMLnodetoset/addtothespecifiedelement.Notsettingthisattributecausestheelement'stextvaluetobeset.Otherwisethisspecifiedtheattributenamethatisset.
Node Enumeration Thisattribute'svaluemustbeoneofthefollowing:element
value
document
On Enumeration Thisattribute'svaluemustbeoneofthefollowing:install
uninstall
PreserveModifiedDate YesNoType Specifieswheterornotthemodificationshouldpreservethemodifieddate.Preservingthemodifieddatewillallowthefiletobepatchedifnoothermodificationshavebeenmade.
Sequence Integer SpecifiestheorderinwhichthemodificationistobeattemptedontheXMLfile.Itisimportanttoensurethatnewelementsarecreatedbeforeyouattempttoaddanattributetothem.
Value String Thevaluetobewritten.SeetheFormattedtopicforinformationhowtoescapesquarebrackets
inthevalue.
VerifyPath String TheXPathtotheelementbeingmodified.Thisisrequiredfor'delete'actions.For'create'actions,VerifyPathisusedtodecideiftheelementalreadyexists.
SeeAlsoUtilSchema
Version3.5.1623.0
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.
Yes
File String Pathofthe.xmlfiletoconfigure.
Yes
Name String NameofXMLnodetoset/addtothespecifiedelement.Notsettingthis
attributecausestheelement'stextvaluetobeset.Otherwisethisspecifiedtheattributenamethatisset.
Permanent YesNoType Specifieswhetherornotthemodificationshouldberemovedonuninstall.ThishasnoeffectonuninstalliftheactionwasdeleteValue.
PreserveModifiedDate YesNoType Specifieswheterornotthemodificationshouldpreservethemodifieddate.Preservingthemodifieddatewillallowthefiletobepatchedifnoothermodificationshavebeenmade.
SelectionLanguage Enumeration SpecifywhethertheDOMobjectshoulduseXPathlanguageortheoldXSLPatternlanguage(default)asthequerylanguage.Thisattribute'svalue
mustbeoneofthefollowing:XPath
XSLPattern
Sequence Integer SpecifiestheorderinwhichthemodificationistobeattemptedontheXMLfile.Itisimportanttoensurethatnewelementsarecreatedbeforeyouattempttoaddanattributetothem.
Value String Thevaluetobewritten.SeetheFormattedtopicforinformationhowtoescapesquarebracketsinthevalue.
SeeAlsoUtilSchema
Version3.5.1623.0
AutogenGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}".AGUIDcanbeauto-generatedbysettingthevalueto"*".Alsoallows"PUT-GUID-HERE"foruseinexamples.
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*'.
SeeAlsoUtilSchema
ComponentGuid(SimpleType)
DescriptionValuesofthistypewilllooklike:"01234567-89AB-CDEF-0123-456789ABCDEF"or"{01234567-89AB-CDEF-0123-456789ABCDEF}",butalsoallows"PUT-GUID-HERE"foruseinexamples.It'salsopossibletohaveanemptyvalue"".
PatternTypeMustmatchtheregularexpression:'[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$'.
SeeAlsoUtilSchema
ExitType(SimpleType)
DescriptionTODO:Whatdoesthistypemean?
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
RegistryRootType(SimpleType)
DescriptionValuesofthistyperepresentpossibleregistryroots.
EnumerationTypePossiblevalues:{HKMU,HKCR,HKCU,HKLM,HKU}
SeeAlsoUtilSchema
SequenceType(SimpleType)
DescriptionControlswhichsequencestheitemassignmentissequencedin.
EnumerationTypePossiblevalues:{both,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
YesNoDefaultType(SimpleType)
DescriptionValuesofthistypewilleitherbe"default","yes",or"no".
EnumerationTypePossiblevalues:{default,no,yes}
SeeAlsoUtilSchema
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoUtilSchema
VsSchema
Copyright(c)MicrosoftCorporation.Allrightsreserved.TheuseanddistributiontermsforthissoftwarearecoveredbytheCommonPublicLicense1.0(http://opensource.org/licenses/cpl.php)whichcanbefoundinthefileCPL.TXTattherootofthisdistribution.Byusingthissoftwareinanyfashion,youareagreeingtobeboundbythetermsofthislicense.Youmustnotremovethisnotice,oranyother,fromthissoftware.
ThesourcecodeschemafortheWindowsInstallerXMLToolsetVisualStudioExtension.
TargetNamespacehttp://schemas.microsoft.com/wix/VSExtension
ChildElementsHelpCollectionHelpCollectionRefHelpFileHelpFileRefHelpFilterHelpFilterRefPlugCollectionInto
Version3.5.1623.0
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
Version3.5.1623.0
HelpCollectionRefElement(VsExtension)
DescriptionCreateareferencetoaHelpCollectionelementinanotherFragment.
WindowsInstallerreferencesNone
ParentsFragment,Module,Product
InnerTextNone
ChildrenChoiceofelements(min:0,max:unbounded)
HelpFileRef(min:0,max:unbounded)
Attributes
Name Type Description Required
Id String PrimaryKeyforHelpNamespaceTable.
Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoVsSchema
Version3.5.1623.0
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
Version3.5.1623.0
HelpFileRefElement(VsExtension)
DescriptionCreateareferencetoaHelpFileelementinanotherFragment.
WindowsInstallerreferencesNone
ParentsHelpCollection,HelpCollectionRef
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String PrimaryKeyforHelpFileTable. Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoVsSchema
Version3.5.1623.0
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
Version3.5.1623.0
HelpFilterRefElement(VsExtension)
DescriptionCreateareferencetoaHelpFileelementinanotherFragment.
WindowsInstallerreferencesNone
ParentsHelpCollection
InnerTextNone
ChildrenNone
Attributes
Name Type Description Required
Id String PrimaryKeyforHelpFilter. Yes
AnyAttribute(namespace='##other'processContents='lax')ExtensibilitypointintheWiXXMLSchema.Schemaextensionscanregisteradditionalattributesatthispointintheschema.
SeeAlsoVsSchema
Version3.5.1623.0
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
Version3.5.1623.0
YesNoType(SimpleType)
DescriptionValuesofthistypewilleitherbe"yes"or"no".
EnumerationTypePossiblevalues:{no,yes}
SeeAlsoVsSchema
DevelopingforWiXThissectioncoversthefollowingtopicsfordeveloperswhowanttocontributetotheWiXcodebase:
HowtobeaWindowsInstallerXMLDeveloperBuildingWiXNAntConventionsExtensionDevelopmentDevelopingforVotiveAddingtotheWiXDocumentationTestingWiX
SoyouwanttobeaWindowsInstallerXMLdeveloper?PeoplehavestartedexpressinginterestinjoiningtheWindowsInstallerXMLtoolsetdevelopmentcommunitysoIfiguredIshouldgetsomeadministrativedetailsoutoftheway.IfyouareinterestedincontributingcodetotheWindowsInstallerXMLtoolset,itisveryimportanttoreadthroughallfourofthesetopics.
1)TheWindowsInstallerXMLtoolsetcopyrightisheldbyMicrosoft.
IwanttobeveryupfrontaboutthecopyrightoftheWindowsInstallerXMLtoolsetandhowitaffectsusasdevelopers.MicrosoftisthesponsoroftheWindowsInstallerXMLproject.BeforeacontributioncanbeacceptedintotheWiXproject,thelawyershaveaskedthatweassignourrightstothosecontributionstoMicrosoft.Byhavingdeveloperssignacopyrightassignmentagreement,Microsoftcanmaintainsinglelegalcontroloftheproject.ThatsinglelegalcontrolenablesMicrosofttobestdefendtheprojectinthefutureiftherewaseveranysortoflegalchallenge.
Beforejumpingtoanyconspiracytheories,pleasenotethatthiscopyrightassignmentisexactlythesameprocesstheFreeSoftwareFoundationhasyougothroughifyouworkonaprojecttheysponsor.Also,inClause5oftheWindowsInstallerXMLassignmentagreementyourrightstoyourcontributionareexplicitlygrantedbacktoyou.Ifyouwouldlikeacopyoftheassignmentagreement,[email protected].
2)TheWindowsInstallerXMLprojectisabenevolentdictatorship.
Inordertoensureconsistencyintheschemaandmaintainthequalityofthetools,theWindowsInstallerXMLproject’sCVStreeislockeddown.Inotherwords,commitstothecode-basebythegeneralpopulaceareprevented.Ifyouattemptcommitchanges,CVSwillinformyouthatyouhave"InsufficientKarmatocompletethetask."
Tohaveyourcontributionsubmittedtotheproject,pleasesubmitan
assignmentagreementasdescribedabove(youonlyneedtodosoonce)thensendyourcodedifftoWiX-devs@lists.sourceforge.net.ThedeveloperstherewillreviewthechangesandsomeonewillapplythemtoCVSasquicklyaspossible.
3)TheWindowsInstallerXMLcommunityisameritocracy.
ThoseindividualsinthecommunitywhodemonstrateanunderstandingofthecodebasebyactivelyparticipatingontheWindowsInstallerXMLmailinglistsandconsistentlysubmittinghighqualitydiffswillbegivena“Karmaboost”.WithenoughKarmayouwillearntheabilitytocommitchangesdirectlytotheWindowsInstallerXMLproject’sCVStree.
Commitprivilegesshouldnotbetakenlightly.ItisveryimportantthattheWiXtoolsetmaintainahighqualitybarbecausemanypeopledependonthetoolsworkingproperly.Veryfewdevelopersearntheseprivileges.Infact,inoverfouryearsofdevelopment,onlyfivedevelopershaveearnedcommitprivilegestotheinternalWindowsInstallerXMLproject.
4)TheWindowsInstallerXMLdevelopersareallvolunteers.
Everyone(tothebestofmyknowledge)thatworksontheWindowsInstallerXMLtoolsetdoessoinhisorherfreetime.Pleasekeepthatfactinmindwhenaskingforhelp,submittingcodediffs,orinteractingwithanymembersoftheproject.WeallwanttohelptomaketheWindowsInstallerXMLtoolsetassolidatoolaspossible,butsometimes“realjobs”and“significantothers”havetotakeahigherprecedence.
Ifworsecomestoworse,youhaveaccesstothesourcecode.Tryreadingforawhile.:)
Reprintedfromhttp://blogs.msdn.com/robmen/archive/2004/04/14/112970.aspx.Copyright�RobMensching
BuildingWiXSimplyrun"nant"fromthedev\wixdirectory.Thiswillbuilddebugbitsintothe"target"directorybydefault.Tobuildreleasebits,run"nant-D:flavor=ship".YoucandisablebuildingIA64-specificpartsofthecustomactionlibrarybyrunning"nant-D:ia64=false".
InordertofullybuildWiX,youmusthavethefollowingFrameworksandSDKsinstalled:
NAnt(build2008-02-10-0.86orlater)ThefollowingcomponentsfromtheWindowsSDKforWindowsServer2008and.NETFramework3.5,VisualStudio2008,MicrosoftWindows7SDK,and/orVisualStudio2010:
x86andx64compilers,headersandlibrariesIA64headersandlibrariesareoptional,buttheyarenecessaryforIA64customactionsupportIfyouwanttobeabletobuildoptimizedIA64binaries,you'llneedboththeWindowsSDKforWindowsServer2008and.NETFramework3.5SDKANDVisualStudio2008installed;ortheMicrosoftWindows7SDKANDVisualStudio2010.
HTMLHelpSDK1.4orhigher[installedtoProgramFilesorProgramFiles(x86)]
TobuildSconceandVotive,youmusthavethefollowingSDKsinstalled:
VisualStudio2005SDKVersion4.0VisualStudio2008SDK
MoreinformationabouttheVisualStudioSDKcanbefoundattheVisualStudioExtensibilityCenter.
ToinstallVotiveonVisualStudio2005,2008,or2010,youmusthavetheStandardEditionorhigher.
TosuccessfullybuildWiXwithonlyWindowsServer2008and.NETFramework3.5SDK(withoutVisualStudio2008),youneedtomodifyyourNAnt.exe.configfiletosupporttheWindowsServer2008and.NETFramework3.5SDK.
<readregistryproperty="sdkInstallRoot"key="SOFTWARE\Microsoft\MicrosoftSDKs\Windows\v6.0a\WinSDKNetFxTools\InstallationFolder"hive="LocalMachine"failonerror="false"/>
Replacethiswiththefollowingelement:
<readregistryproperty="sdkInstallRoot"key="SOFTWARE\Microsoft\MicrosoftSDKs\Windows\v6.1\WinSDKNetFxTools\InstallationFolder"hive="LocalMachine"failonerror="false"/>
Notetheonlydifferenceisthatthe"v6.0a"changedto"v6.1"inthe"key"attribute.
TosuccessfullybuildWiXwithonlytheMicrosoftWindows7SDKand/orVisualStudio2010,youneedtomodifyyourNAnt.exe.configfiletosupporteitherandthe.NETFramework4.0.SeeNAntConfigurationforanexample.
TobuildDTFhelpfiles,youneedthefollowingtools:
SandcastleJanuary2008ReleaseSandcastleHelpFileBuilder1.6.0.4
TheDTFhelpbuildlooksfortheminan"external"directoryparalleltotheWiX"src"directory:
SandcastleJanuary2008Release:external\SandcastleSandcastleHelpFileBuilder1.6.0.4:external\SandcastleBuilder
NAntConfiguration
Microsoft.NETFramework4.0SupportInordertobuildWiXusingNAntwithonlyMicrosoftVisualStudio2010andthe.NETFramework4.0,youneedtoaddthefollowingtothelistofframeworkssupportedbyNAnt.
<frameworkname="net-4.0"family="net"version="4.0"description="Microsoft.NETFramework4.0"sdkdirectory="${path::combine(sdkInstallRoot,'bin')}"frameworkdirectory="${installRoot}"frameworkassemblydirectory="${installRoot}"clrversion="4.0"><!--${installVersion}--><runtime><probing-paths><directoryname="lib/net/4.0"/><directoryname="lib/net/neutral"/><directoryname="lib/common/4.0"/><directoryname="lib/common/neutral"/></probing-paths><modes><strict><environment><variablename="COMPLUS_VERSION"value="v${installVersion}"/></environment></strict></modes></runtime><reference-assembliesbasedir="${path::combine(installRoot,'v'+${installVersion})}"><includename="Accessibility.dll"/><includename="mscorlib.dll"/><includename="Microsoft.Build.Utilities.dll"/><includename="Microsoft.Vsa.dll"/><includename="Microsoft.VisualBasic.dll"/><includename="Microsoft.VisualBasic.Compatibility.dll"/><includename="Microsoft.VisualBasic.Compatibility.Data.dll"/><includename="System.Configuration.dll"/><includename="System.Configuration.Install.dll"/>
<includename="System.Data.dll"/><includename="System.Data.OracleClient.dll"/><includename="System.Data.SqlXml.dll"/><includename="System.Deployment.dll"/><includename="System.Design.dll"/><includename="System.DirectoryServices.dll"/><includename="System.dll"/><includename="System.Drawing.Design.dll"/><includename="System.Drawing.dll"/><includename="System.EnterpriseServices.dll"/><includename="System.Management.dll"/><includename="System.Messaging.dll"/><includename="System.Runtime.Remoting.dll"/><includename="System.Runtime.Serialization.Formatters.Soap.dll"/><includename="System.Security.dll"/><includename="System.ServiceProcess.dll"/><includename="System.Transactions.dll"/><includename="System.Web.dll"/><includename="System.Web.Mobile.dll"/><includename="System.Web.RegularExpressions.dll"/><includename="System.Web.Services.dll"/><includename="System.Windows.Forms.dll"/><includename="System.Xml.dll"/><includename="Microsoft.Build.Engine.dll"/><includename="Microsoft.Build.Framework.dll"/><includename="System.AddIn.Contract.dll"/><includename="System.AddIn.dll"/><includename="System.Core.dll"/><includename="System.Data.DataSetExtensions.dll"/><includename="System.Data.Linq.dll"/><includename="System.DirectoryServices.AccountManagement.dll"/><includename="System.Management.Instrumentation.dll"/><includename="System.Net.dll"/><includename="System.ServiceModel.Web.dll"/><includename="System.Web.Extensions.Design.dll"/><includename="System.Web.Extensions.dll"/><includename="System.Windows.Presentation.dll"/><includename="System.WorkflowServices.dll"/><includename="System.Xml.Linq.dll"/>
<includename="System.IdentityModel.dll"/><includename="System.IdentityModel.Selectors.dll"/><includename="System.IO.Log.dll"/><includename="System.Printing.dll"/><includename="System.Runtime.Serialization.dll"/><includename="System.ServiceModel.dll"/><includename="System.Speech.dll"/><includename="System.Workflow.Activities.dll"/><includename="System.Workflow.ComponentModel.dll"/><includename="System.Workflow.Runtime.dll"/><includename="WindowsBase.dll"/></reference-assemblies><task-assemblies><!--includeMS.NETversion-neutralassemblies--><includename="extensions/net/neutral/**/*.dll"/><!--includeMS.NET4.0specificassemblies--><includename="extensions/net/4.0/**/*.dll"/><!--includeMS.NETspecifictaskassembly--><includename="NAnt.MSNetTasks.dll"/><!--includeMS.NETspecifictestassembly--><includename="NAnt.MSNet.Tests.dll"/><!--include.NET4.0specificassemblies--><includename="extensions/common/4.0/**/*.dll"/></task-assemblies><tool-paths><directoryname="${path::combine(sdkInstallRoot,'bin')}"if="${property::exists('sdkInstallRoot')}"/><directoryname="${installRoot}"/></tool-paths><project><readregistryproperty="installRoot"key="SOFTWARE\Microsoft\NETFrameworkSetup\NDP\v4\Client\InstallPath"hive="LocalMachine"/><readregistryproperty="installVersion"key="SOFTWARE\Microsoft\NETFrameworkSetup\NDP\v4\Client\Version"hive="LocalMachine"/><readregistryproperty="sdkInstallRoot"key="SOFTWARE\Microsoft\MicrosoftSDKs\Windows\v7.0\WinSDK\InstallationFolder"hive="LocalMachine"failonerror="false"/><readregistryproperty="sdkInstallRoot"unless="${property::exists('sdkInstallRoot')}"key="SOFTWARE\Microsoft\MicrosoftSDKs\Windows\v7.0A\InstallationFolder"hive="LocalMachine"failonerror="false"/></project><tasks><taskname="csc"><attributename="supportsnowarnlist">true</attribute><attributename="supportswarnaserrorlist">true</attribute><attributename="supportskeycontainer">true</attribute>
<attributename="supportskeyfile">true</attribute><attributename="supportsdelaysign">true</attribute><attributename="supportsplatform">true</attribute><attributename="supportslangversion">true</attribute></task><taskname="vbc"><attributename="supportsdocgeneration">true</attribute><attributename="supportsnostdlib">true</attribute><attributename="supportsnowarnlist">true</attribute><attributename="supportskeycontainer">true</attribute><attributename="supportskeyfile">true</attribute><attributename="supportsdelaysign">true</attribute><attributename="supportsplatform">true</attribute><attributename="supportswarnaserrorlist">true</attribute></task><taskname="jsc"><attributename="supportsplatform">true</attribute></task><taskname="vjc"><attributename="supportsnowarnlist">true</attribute><attributename="supportskeycontainer">true</attribute><attributename="supportskeyfile">true</attribute><attributename="supportsdelaysign">true</attribute></task><taskname="resgen"><attributename="supportsassemblyreferences">true</attribute><attributename="supportsexternalfilereferences">true</attribute></task><taskname="delay-sign"><attributename="exename">sn</attribute></task><taskname="license"><attributename="exename">lc</attribute><attributename="supportsassemblyreferences">true</attribute></task></tasks></framework>
NAntConventions
BuildFileFormatInordertopromoteconsitencyandreadability,the.buildfileswillbelaidoutinthefollowingway.<TODOJRock:addtherestofthecontent>
Properties
Prefixes
Sincepropertiesdefinedina.buildfilearevisibletoother.buildfilesthatuse<include>,eachproject's.buildfileshouldusethefilenameforitsprefixonproperties.Forexample,thecandle.buildprojectshouldusetheprefix'candle.'beforeanylocalproperties.Globalproperties(thosethatappearinthewix.includefile)donothaveaprefix.
DevelopingforVotiveIfyouwanttocontributecodetotheVotiveprojectordebugVotive,youmustdownloadandinstalltheVisualStudio2005SDK,availableattheVisualStudioExtensibilityDeveloperCenter.TheVisualStudio2005SDKisnon-invasiveandwillcreateanexperimentalhiveintheregistrythatwillleaveyourretailversionofVisualStudio2005unaffected.
TostartdebuggingVotive,setyourbreakpointsthenpressF5intheWix.slnforVisualStudio.ThecustombuildactionsintheVotiveprojectwillsetupandregisterVotiveintheexperimentalhive,sorunningWix3.msiisnotrequired,norsuggested.
AddingtotheWiXDocumentationWiXdocumentationiscompiledintothefileWiX.chmasapartoftheWiXbuildprocess.Thesourcefilesforhelparelocatedinthewix\src\chmdirectory.
WhattheWiXhelpcompilerdoesTheWiXhelpcompilerdoesthefollowing:
ParsesthefileTOC.xmltodeterminethetableofcontentstoconstructintheCHMfileanddeterminewhatHTMLfilestoincludeintheCHMfile.Includesallthe.htmfileslistedintheprojectfileinthelistofdocumentationtobuildintotheCHMParses.xsdschemafilesreferencedinTOC.xmlandgenerateshelptopicsfortheattributesandelementsthatareannotatedinthe.xsdfiles.
HowtoaddanewtopictoWiX.chmAddinganewtopictoWiX.chmrequiresthefollowingsteps:
AddanewHTMLfilewiththecontentsofthenewtopictotheWiXsourcetreeundersrc\chm\html.AddanentryforthenewHTMLtothesrc\chm\chm.projfile.Addanyrelevantimagestothesrc\chm\imgs\sub-directoryintheWiXsourcetree.Addanentryforthenewimagestothesrc\chm\chm.projfile.AddareferencetothenewHTMLfiletoTOC.xmlinthedesiredlocationinthetableofcontents.
HelptopicsmaycontainlinkstoexternalWebpages,andmayalsocontainrelativelinkstootherhelptopicsorattributesorelementsdefinedinoneofthe.xsdschemafiles.
Tobuildthenewcontenttypemsbuildfromthecommandlineinthesrc\chmdirectory.
TestingWiXThissectioncontainsdocumentsonhowtocreateandexecutetestsfortheWindowsInstallerXMLToolset.
RunningTestsWritingTests
RunningWiXTestsThereisasuiteofteststhatareincludedwithWiX.Theycanbeusedtoverifythatchangestothetoolsetdonotregressexistingfunctionality.
BuildingtheTestsThetestswillbuildaspartofthenormalWiXbuild.TheyhaveadependencyonMicrosoft.VisualStudio.QualityTools.UnitTestFramework9.0.0.0assemblythatshipswiththefollowingeditionsofVisualStudio:
VisualStudio2008ProfessionalEditionVisualStudioTeamSystem2008DatabaseEditionVisualStudioTeamSystem2008DevelopmentEditionVisualStudioTeamSystem2008TeamSuiteVisualStudioTeamSystem2008TestEdition
Thebuildsystemsearchestheregistrytodetectifoneoftheabovementionededitionsisinstalledonthemachine.IfthedetectionkeycannotbefoundthenthetestswillnotbuildfromNantbuttheycanstillbebuiltbyMSBuildiftherequiredUnitTestFrameworkassemblyexists.
Thetestsarebuiltintoanassemblycalledwixtests.dlltothesamelocationastheotherWiXbinaries.
BuildingthetestsusingNant
NantmustberunfromtheWiXrootdirectory.Tobuildonlythetests,specifythe'wixtests'target.
c:\delivery\dev\wix>nant.exewixtests
BuildingthetestsinVisualStudio
Openc:\delivery\dev\wix\test\wixtests.slnfromaWiXcommandwindow.ThesolutionshouldbuildfromwithinVisualStudio.
devenv.exec:\delivery\dev\wix\test\wixtests.sln
RunningthetestsThetestscanberunfromwithinVisualStudioorfromthecommandline.Beforethetestsarerun,theenvironmentvariable'WIX_ROOT'mustbesettotheWiXrootdirectory.ItshouldbesetifyouareinaWiXcommandwindow,butifitisnot:
setWIX_ROOT=c:\delivery\dev\wix
TheWIX_ROOTenvironmentvariablerequirementisusedinmanyteststolocatetestdata.
RunningthetestsfromthecommandlinewithMSTest.bat
Thereisabatchfile,test.bat,whichcanbeusedtorunthetests.
c:\delivery\dev\wix\test\test.bat[all|smoke|testname]
RunningthetestsfromthecommandlinewithMSTest.exe
RunMSTestwiththetestbinaries.
mstest.exec:\delivery\Dev\wix\build\debug\x86\wixtests.dll
RunningthetestsfromVisualStudio
Openwixtests.slnfromaWiXcommandwindow.
devenv.exec:\delivery\dev\wix\test\wixtests.sln
RunthetestsfromVisualStudioTestManager.
WritingWiXTestsThisdocumentdescribeshowtowritetestsforWiX.
LocationoftheTestsTherootdirectoryforthetestsis%WIX_ROOT%\test.Therearethreemainsubdirectories:
data:containstestdata,egwxsfilessrc:containssourcecodeforthetestsWixTestTools:containssourcecodefortheWixTestToolslibrary
Thedataandsrcdirectoriesarefurtherorganizedbyfeaturearea:
Examples:ExampletestsExtensions:TestsforWiXextensionsIntegration:Testsforintegrationoftwoormoretools.Eg.BuildinganMSIfromsourcewithCandleandLight.QTests:TestsmigratedfromtheprevioustestinfrastructureSharedData:TestdatathatissharedacrossmultipletestsTools:Testsforaparticulartool'scommandlineoptionsWixproj:Testsforbuilding.wixproj'swithMSBuild
WixTestsSolutionThetestsolutionfile,WixTests.sln,islocatedin%WIX_ROOT%\test\WixTests.sln.TheWixTestssolutioncurrentlycontainstwoprojects:
WixTests:ContainsallofthetestsWixTestsTools:Alibraryofwrapperclassesandverificationmethodsusedbythetests
ThesolutionshouldbeopenedfromtheWiXcommandwindowtoensurethatthe%WIX_ROOT%environmentvariableisset.
ExampleTests
Example:BuildandVerifyanMSI
ThefollowingexampleshowshowtotestbuildinganMSIfromWiXsource.
[TestMethod][Description("AnexampletestthatverifiesanMSIisbuiltcorrectly")][Priority(3)]publicvoidExampleTest1(){//UsetheBuildPackagemethodtobuildanMSIfromsourcestringactualMSI=Builder.BuildPackage(@"%WIX_ROOT%\test\data\SharedData\Authoring\BasicProduct.wxs");
//TheexpectedMSItocompareagainststringexpectedMSI=@"%WIX_ROOT%\test\data\SharedData\Baselines\MSIs\BasicProduct.msi";
//UsetheVerifyResultsmethodtocomparetheactualandexpectedMSIsVerifier.VerifyResults(expectedMSI,actualMSI);}
Example:CheckforaWarningandQueryanMSI
ThefollowingexampleshowshowtobuildanMSIusingtheCandleandLightwrapperclasses.ItalsodemonstrateshowtocheckforawarningfromLightandquerytheresulingMSI.
[TestMethod][Description("AnexampletestthatchecksforaLightwarningandqueriestheresultingMSI")][Priority(3)]publicvoidExampleTest2()
{//CompileawxsfileCandlecandle=newCandle();candle.SourceFiles.Add(@"%WIX_ROOT%\test\data\Examples\ExampleTest2\product.wxs");candle.Run();
//CreateaLightobjectthatusessomepropertiesoftheCandleobjectLightlight=newLight(candle);
//DefinetheLightwarningthatweexpecttoseeWixMessageLGHT1079=newWixMessage(1079,WixMessage.MessageTypeEnum.Warning);light.ExpectedWixMessages.Add(LGHT1079);
//Linklight.Run();//QuerytheresultingMSIforverificationstringquery="SELECT`Value`FROM`Property`WHERE`Property`='Manufacturer'";Verifier.VerifyQuery(light.OutputFile,query,"MicrosoftCorporation");}
Example:ICEValidationwithSmoke
ThefollowingexampleshowshowtoverifythatSmokecatchesaparticularICEviolationandhowtousetheResultobjecttoperformfurtherverification.
[TestMethod][Description("AnexampletestthatverifiesanICEviolationiscaughtbysmoke")][Priority(3)]publicvoidExampleTest3(){stringtestDirectory=Environment.ExpandEnvironmentVariables(@"%WIX_ROOT%\test\data\Examples\ExampleTest3");
//BuildtheMSIthatwillberunagainstSmoke.Passthe-svalargumenttodelayvalidationuntilSmokeisrunstringmsi=Builder.BuildPackage(testDirectory,"product.wxs","product.msi",null,"-sval");
//CreateanewSmokeobjectSmokesmoke=newSmoke();smoke.DatabaseFiles.Add(msi);smoke.CubFiles.Add(@"%WIX_ROOT%\test\data\Examples\ExampleTest3\test.cub");
//DefinetheexpectedICEerrorWixMessageLGHT1076=newWixMessage(1076,"ICE1000:Component'ExtraICE.0.ProductComponent'installsintodirectory'TARGETDIR',whichwillgetinstalledintothevolumewiththemostfreespaceunlessexplicitlyset.",WixMessage.MessageTypeEnum.Warning);smoke.ExpectedWixMessages.Add(LGHT1076);
//RunSmokeandkeepareferencetotheResultobjectthatisreturnedbytheRun()methodResultresult=smoke.Run();
//UsetheResultobjecttoverifytheexitcode//Note:checkingforanexitcodeof0isdoneimplicitlyintheRun()methodbut//thisisjustfordemonstrationpurposes.Assert.AreEqual(0,result.ExitCode,"Actualexitcodedidnotmatchexpectedexitcode");}
DevelopingWiXExtensionsThissectioncoversthefollowingtopicsfordeveloperswhowanttocreatetheirownWiXextensions:
IntroductiontoDevelopingWiXExtensionsCreatingaSkeletonExtensionCreatingaPreprocessorExtension
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:
PreprocessorExtensionsallowclientstomodifyauthoringfilesbeforetheyareprocessedbythecompiler.CompilerExtensionsallowclientstocustomcompileauthoredXMLintointernaltablerepresentationbeforeitiswrittentobinaryform.BinderExtensionsallowclientstomodifythebehavioroftheBinder.DecompilerExtensionsallowclientstodecompilecustomtablesintoXML.ValidatorExtensionsallowclientstoprocessvalidationmessages.Bydefault,validationmessagesareoutputtotheconsole.MutatorExtensionsallowclientstomodifythebehavioroftheMutator.HarvesterExtensionsallowclientstomodifythebehavioroftheHarvester.UnbinderExtensionsallowclientstomodifythebehavioroftheUnbinder.
ForinformationonhowtouseWiXextensionsonthecommandlineorinsidetheVisualStudioIDE,pleasevisittheUsingWiXextensionstopic.
ForinformationonhowtouselocalizedWiXextensions,pleasevisittheLocalizedextensionstopic.
CreatingaSkeletonWiXExtensionWiXextensionsareusedtoextendandcustomizewhatWiXbuildsandhowitbuildsit.
ThefirststepincreatingaWiXextensionistocreateaclassthatextendstheWixExtensionclass.Thisclasswillbethecontainerforalltheextensionsyouplanonimplementing.Thiscanbedonebyusingthefollowingsteps:
1. InVisualStudio,createanewC#library(.dll)projectnamedSampleWixExtension.
2. Addareferencetowix.dlltoyourproject.3. Addausingstatementthatreferstothe
Microsoft.Tools.WindowsInstallerXmlnamespace.
usingMicrosoft.Tools.WindowsInstallerXml;
4. MakeyourSampleWixExtensionclassinheritfromWixExtension.
publicclassSampleWixExtension:WixExtension{}
5. AddtheAssemblyDefaultWixExtensionAttributetoyourAssemblyInfo.cs.
[assembly:AssemblyDefaultWixExtension(typeof(SampleWixExtension.SampleWixExtension))]
6. Buildtheproject.
AlthoughthisWiXextensionwillnotdoanythingyet,youcannowpassthenewlybuiltSampleWixExtension.dllonthecommandlinetotheCandleandLightbyusingthe-extflaglikethefollowing:
candle.exeProduct.wxs-extSampleWixExtension.dlllight.exeProduct.wxs-extSampleWixExtension.dll
Thiscoversthebasicsofcreatingtheskeletonofanextension.Youcan
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='MicrosoftCorporation'><PackageDescription='MyfirstWindowsInstallerpackage'Comments='ThisismyfirstattemptatcreatingaWindowsInstallerdatabase'Manufacturer='MicrosoftCorporation'InstallerVersion='200'Compressed='yes'/><MediaId='1'Cabinet='product.cab'EmbedCab='yes'/><DirectoryId='TARGETDIR'Name='SourceDir'><DirectoryId='ProgramFilesFolder'Name='PFiles'><DirectoryId='MyDir'Name='TestProgram'><ComponentId='MyComponent'Guid='PUT-GUID-HERE'><FileId='readme'Name='readme.txt'DiskId='1'Source='readme.txt'/></Component><MergeId='MyModule'Language='1033'SourceFile='module.msm'DiskId='1'/></Directory></Directory></Directory><FeatureId='MyFeature'Title='My1stFeature'Level='1'><ComponentRefId='MyComponent'/><MergeRefId='MyModule'/></Feature>
<InstallExecuteSequence><CustomAction='FooAction'After='InstallFiles'/></InstallExecuteSequence></Product>
</Wix>
ThosethreelinesareallyouneedtoaddtoyourWindowsInstallerpackagesourcefiletocallthe"FooAction"CustomAction.Nowthatwehavetwofilestolinktogetherourcalltolight.exegetsalittlemorecomplicated.Herearethecompile,link,andinstallationsteps.
C:\test>candleproduct.wxsca.wxsC:\test>lightproduct.wixobjca.wixobj–outproduct.msiC:\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
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="[INSTALLLOCATION]"Operator="equal"/></Fragment>
Whenthetestruns,LuxcomparesthevalueoftheSIMPLEpropertyagainstthe(formatted)value[INSTALLLOCATION].Ifthetwomatch(becausetheoperatoris"equal"),thetestpasses.LegalvaluesoftheOperatorattributeare:
equal(Default)ComparesPropertytoValueandsucceedsiftheyareequal.
notEqualComparesPropertytoValueandsucceedsiftheyareNOTequal.
caseInsensitiveEqualComparesPropertytoValueandsucceedsiftheyareequal(ignoringcase).
caseInsensitiveNotEqualComparesPropertytoValueandsucceedsiftheyareNOTequal(ignoringcase).
TestconditionsConditionsletyouvalidatecodepathsinyourcustomaction.Forexample,ifyourcustomactionbehavesdifferentlyonWindowsXPthanitdoesonWindowsVistaandlater,youcancreatetwotestswithmutuallyexclusiveconditions:
<Fragment><lux:UnitTestCustomAction="TestCustomActionSimple"Property="SIMPLE"Value="[INSTALLLOCATION]"><lux:Condition><![CDATA[VersionNT<600]]></lux:Condition></lux:UnitTest><lux:UnitTestCustomAction="TestCustomActionSimple"Property="SIMPLE"Value="[INSTALLLOCATION]"><lux:Condition><![CDATA[VersionNT>=600]]></lux:Condition></lux:UnitTest></Fragment>
Ifatesthasacondition,thetestrunsonlyifitsconditionistrue.
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="[INSTALLLOCATION]"><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="[INSTALLLOCATION]"/><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:Microsoft(R)WindowsInstallerXmlUnitTestRunnerversion3.5.1204.0Copyright(C)MicrosoftCorporation.Allrightsreserved.TestluxB21F0D12E0701DBA30FFB92A532A5390passed:Property'SIMPLE'matchedexpectedvalue'[INSTALLLOCATION]'.TestTestConditionBeforeVistapassed:Property'SIMPLE'matchedexpectedvalue'[INSTALLLOCATION]'.TestTestConditionVistaOrLaterpassed:Property'SIMPLE'matchedexpectedvalue'[INSTALLLOCATION]'.TestTestExpressionTruthpassed:Expression'NOTMsiSystemRebootPendingANDSIMPLE'evaluatedtotrue.nit.exe:errorNIT8103:TestluxA6D27EC5903612D7F3786FF71952E314failed:Property'MULTIVALUE'expectedvalue'2'butactualvaluewas'1'.Testlux210257649C16AFA33793F1CDDF575505passed:Property'MULTIVALUE'matchedexpectedvalue'[INSTALLLOCATION]'.nit.exe:errorNIT8103:Testlux402940A90D3ADAD181D599AB8C260FA0failed:Property'MULTIVALUE'expectedvalue'xxxWIXEAST'butactualvaluewas'WIXEAST'.Testlux453EC8DB458A8F66F0D22970CFF2AE99passed:Property'NAMEVALUEPAIRS'matchedexpectedvalue'[INSTALLLOCATION]'.Testlux20CB4F88795F22D15631FD60BA03AFEBpassed:Property'NAMEVALUEPAIRS'matchedexpectedvalue'WIXWEST'.nit.exe:errorNIT8102:2testsfailed.7testspassed.DoneBuildingProject"C:\Delivery\Dev\wix35\src\lux\samples\LuxSample1\LuxSample1.wixproj"(Testtarget(s))--FAILED.
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.