XML::API::WIX2 is a WIX source file generation through an object API.
SYNOPSIS
As a simple example the following perl code:
use XML::API;
my $m_wxs = new XML::API('doctype' => 'WIX2', 'encoding' => 'UTF-8');
$m_wxs->Product_open({
Id => '12345678-1234-1234-1234-123456789012',
Name => 'Test Package',
Language => '1033',
Version => '1.0.0.0',
Manufacturer => 'Microsoft Corporation',
});
$m_wxs->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',
});
$m_wxs->Media({ Id =>'1', Cabinet => 'product.cab', EmbedCab => 'yes'});
$m_wxs->Directory_open({ Id => 'TARGETDIR', Name => 'SourceDir'});
$m_wxs->Directory_open({ Id => "ProgramFilesFolder", Name => "PFiles"});
$m_wxs->Directory_open({ Id => "TESTFILEPRODUCTDIR", Name => "TFolder", LongName => "TestFolder"});
$m_wxs->Component_open({ Id => 'License', Guid => '12345678-1234-1234-1234-123456789012'});
$m_wxs->File({ Id => "License", Name => "License.rtf", DiskId => "1", Source => "License.rtf"});
$m_wxs->Component_close();
$m_wxs->Directory_close();
$m_wxs->Directory_close();
$m_wxs->Directory_close();
$m_wxs->Feature_open({ Id => 'License', Title => 'License files', Level => '1'});
$m_wxs->ComponentRef({ Id => 'License' });
$m_wxs->Feature_close();
$m_wxs->Property({Id => "WIXUI_INSTALLDIR", Value => "TESTFILEPRODUCTDIR"});
$m_wxs->UIRef({Id => "WixUI_Mondo"});
$m_wxs->Product_close();
$m_wxs->_print;
will produce the following nicely rendered output:
< ?xml version="1.0" encoding="UTF-8" ?>
< Wix xmlns="http://schemas.microsoft.com/wix/2003/01/wi">
< Product Id="12345678-1234-1234-1234-123456789012" Language="1033" Manufacturer="Microsoft Corporation" Name="Test Package" Version="1.0.0.0">
< Package Comments="This is my first attempt at creating a Windows Installer database" Compressed="yes" Description="My first Windows Installer package" Id="12345678-1234-1234-1234-123456789012" InstallerVersion="200" Manufacturer="Microsoft Corporation" />
< Media Cabinet="product.cab" EmbedCab="yes" Id="1" />
< Directory Id="TARGETDIR" Name="SourceDir">
< Directory Id="ProgramFilesFolder" Name="PFiles">
< Directory Id="TESTFILEPRODUCTDIR" LongName="TestFolder" Name="TFolder">
< Component Guid="12345678-1234-1234-1234-123456789012" Id="License">
< File DiskId="1" Id="License" Name="License.rtf" Source="License.rtf" />
< /Component> < !-- Guid="12345678-1234-1234-1234-123456789012" Id="License"-->
< /Directory> < !-- Id="TESTFILEPRODUCTDIR" LongName="TestFolder" Name="TFolder"-->
< /Directory> < !-- Id="ProgramFilesFolder" Name="PFiles"-->
< /Directory> < !-- Id="TARGETDIR" Name="SourceDir"-->
< Feature Id="License" Level="1" Title="License files">
< ComponentRef Id="License" />
< /Feature> < !-- Id="License" Level="1" Title="License files"-->
< Property Id="WIXUI_INSTALLDIR" Value="TESTFILEPRODUCTDIR" />
< UIRef Id="WixUI_Mondo" />
< /Product> < !-- Id="12345678-1234-1234-1234-123456789012" Language="1033" Manufacturer="Microsoft Corporation" Name="Test Package" Version="1.0.0.0"-->
< /Wix> < !-- xmlns="http://schemas.microsoft.com/wix/2003/01/wi"-->
Product's homepage
Requirements:
· Perl