We will use sample product.wxs file again in this example
<?xml version='1.0'?>
<WiX xmlns='http://schemas.microsoft.com/wix/2003/01/wi'>
<Product Id='12345678-1234-1234-1234-123456789012' Name='Test Package' Language='1033'
Version='1.0.0.0' Manufacturer='Microsoft Corporation'>
<Package Id='12345678-1234-1234-1234-123456789012'
Description='My first Windows Installer package'
Comments='This is my first attempt at creating a Windows Installer database'
Manufacturer='Microsoft Corporation' InstallerVersion='200' Compressed='yes' />
<Media Id='1' Cabinet='product.cab' EmbedCab='yes' />
<Directory Id='TARGETDIR' Name='SourceDir'>
<Directory Id='ProgramFilesFolder' Name='PFiles'>
<Directory Id='MyDir' Name='TestProg' LongName='Test Program'>
<Component Id='MyComponent' Guid='12345678-1234-1234-1234-123456789012'>
<File Id='readme' Name='readme.txt' DiskId='1' src='readme.txt' />
</Component>
</Directory>
</Directory>
</Directory>
<Feature Id='MyFeature' Title='My 1st Feature' Level='1'>
<ComponentRef Id='MyComponent' />
</Feature>
<InstallExecuteSequence>
<Custom Action="test" Sequence='1'/>
</InstallExecuteSequence>
<Binary Id='Customization.vbs' src='Customization.vbs'/>
<CustomAction Id='test' BinaryKey='Customization.vbs' VBScriptCall='Hello' Return='check'/>
</Product>
</WiX>
function Hello
msgbox Session.Property("MYPARAM")
end function
In the above VBS customization code, Session.Property is being used to retrieve to properties defined in your MSI.
If the property MYPARAM is not defined in your wxs file, you can directly it as a command line parameter
like below. MSI will automatically append it into its property list.
c:\wix\candle product.wxs
c:\wix\light product.wixobj
c:\wix\msiexec /i product.msi MYPARAM="WiX is cool."
You will see the setup code pops up a dialog with the message "WiX is cool."
<InstallExecuteSequence>
<Custom Action="test" After='InstallFinalize'/> Note: "test" will run after "InstallFinalize"
</InstallExecuteSequence>
<InstallExecuteSequence>
<Custom Action="test" After='InstallFinalize'><![CDATA[ $MyComponent > 2 ]]> </Custom>
</InstallExecuteSequence>
THIS POST IS PROVIDED "AS-IS" WITH NO WARRANTIES AND CONFERS NO RIGHTS. Build time: Sun 01/27/2008 . ©2007 Dalun Software. All rights reserved. Back to Article List