mariadb/win/packaging/extra.wxs.in
Vladislav Vaintroub eb25f47423 Merge branch '10.7' into 10.8
# Conflicts:
#	storage/innobase/btr/btr0pcur.cc
#	storage/innobase/log/log0log.cc
2022-02-17 12:43:29 +01:00

839 lines
44 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<Fragment>
<!--
Check, if upgrade wizard was built
It currently requires MFC, which is not in SDK
neither in express edítions of VS.
-->
<?ifndef HaveUpgradeWizard ?>
<?define HaveUpgradeWizard="1"?>
<?endif?>
<!-- If Innodb is compiled in, enable "optimize for transactions" checkbox -->
<?ifndef HaveInnodb ?>
<?define HaveInnodb="1"?>
<?endif?>
<Property Id="PortTemplate" Value="#####" />
<?if $(var.HaveInnodb) = "1" ?>
<Property Id="BufferPoolSizeTemplate" Value="#######" />
<?endif?>
<!--
Installation parameters that can be passed via msiexec command line
For "booleans" (like skip networking), just providing any value means property set to "yes".
-->
<!-- instalation directory (default under program files)-->
<!--- (defined elsewhere) <Property Id="INSTALLDIR" Secure="yes" /> -->
<!-- Database data directory (default under INSTALLDIR\data) -->
<!--- (defined elsewhere) <Property Id="DATADIR" Secure="yes"/> -->
<!-- Service name of database instanced (default MySQL in GUI, nothing with command line) -->
<!-- (defined elsewhere) <Property Id="SERVICENAME" Secure="yes" /> -->
<!-- Root password -->
<Property Id="PASSWORD" Hidden="yes" Secure="yes" />
<Property Id="ESCAPEDPASSWORD" Hidden="yes" Secure="yes" />
<!-- Database port -->
<Property Id="PORT" Value="3306" Secure="yes"/>
<!-- Whether to allow remote access for root user -->
<Property Id="ALLOWREMOTEROOTACCESS" Secure="yes" />
<!-- Skip networking. This will switch configuration to use named pipe-->
<Property Id="SKIPNETWORKING" Secure="yes"/>
<!-- Whether to keep default (unauthenticated) user. Default is no-->
<Property Id="DEFAULTUSER" Secure="yes"/>
<!-- Set server character set to UTF8 -->
<Property Id="UTF8" Secure="yes"/>
<!-- Whether to data on uninstall (default yes, after asking user consent) -->
<Property Id="CLEANUPDATA" Secure="yes" Value="1"/>
<!-- Force per machine installation -->
<Property Id="ALLUSERS" Secure="yes" Value="1"/>
<!-- Disable advertised shortcuts weirdness -->
<Property Id="DISABLEADVTSHORTCUTS" Secure="yes" Value="1"/>
<!-- Quick configuration : set default storage engine to innodb, use strict sql_mode -->
<Property Id="STDCONFIG" Secure="yes" Value="1"/>
<!-- Innodb Buffer pool size in MB-->
<Property Id="BUFFERPOOLSIZE" Secure="yes"/>
<!-- Innodb page size -->
<Property Id="PAGESIZE" Secure="yes" Value="16K"/>
<CustomAction Id="LaunchUrl" BinaryKey="WixCA" DllEntry="WixShellExec" Execute="immediate" Return="check" Impersonate="yes" />
<!--
User interface dialogs
-->
<WixVariable Id='WixUIBannerBmp' Value='@SRCDIR@\WixUIBannerBmp.jpg' />
<WixVariable Id='WixUIDialogBmp' Value='@SRCDIR@\WixUIDialogBmp.jpg' />
<UI>
<!-- Dialog on uninstall of the database -->
<Dialog Id="ConfirmDataCleanupDlg" Width="370" Height="270" Title="[ProductName] Setup" NoMinimize="yes">
<!--<Control Id="CleanupDataCheckBox" Type="CheckBox" X="20" Y="100" Height="30" Property="CLEANUPDATA" Width="300" CheckBoxValue="1"
Text="{\Font1}Remove default database directory &#xD;&#xA;'[DATADIR]'"/>
-->
<Control Id="RemoveDatadirButton" Type="PushButton" X="40" Y="65" Width="80" Height="18"
Text="Remove data">
<Publish Property="CLEANUPDATA" Value="1">1</Publish>
<Publish Event="NewDialog" Value="VerifyReadyDlg">WixUI_InstallMode</Publish>
<Publish Event="EndDialog" Value="Return">NOT WixUI_InstallMode</Publish>
</Control>
<Control Id="RemoveDatadirText" Type="Text" X="60" Y="85" Width="280" Height="30">
<Text>Remove [DATADIR]. Ensures proper cleanup on uninstall.</Text>
</Control>
<Control Id="KeepDatadirButton" Type="PushButton" X="40" Y="128" Width="80" Height="18"
Text="Keep data">
<Publish Property="CLEANUPDATA">1</Publish>
<Publish Event="NewDialog" Value="VerifyReadyDlg">WixUI_InstallMode</Publish>
<Publish Event="EndDialog" Value="Return">NOT WixUI_InstallMode</Publish>
</Control>
<Control Id="KeepDataDirText" Type="Text" X="60" Y="148" Width="280" Height="70" >
<Text>Do not remove [DATADIR]. Choose this option if you intend to use data in the future</Text>
</Control>
<!-- Navigation buttons-->
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back">
<Publish Event="NewDialog" Value="CustomizeDlg">WixUI_InstallMode="Change"</Publish>
<Condition Action="disable">NOT WixUI_InstallMode</Condition>
</Control>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Disabled="yes" Text="&amp;Next">
<Publish Event="NewDialog" Value="VerifyReadyDlg">WixUI_InstallMode</Publish>
<Publish Event="EndDialog" Value="Return">NOT WixUI_InstallMode</Publish>
</Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="WixUI_Bmp_Banner" />
<Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes">
<Text>Remove default [ProductName] database</Text>
</Control>
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes">
<Text>{\WixUI_Font_Title}Default instance properties</Text>
</Control>
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
</Dialog>
<!-- Dialog new or upgrade instance -->
<Property Id="CreateOrUpgradeChoice" Value="Create"/>
<Dialog Id="NewOrUpgradeInstanceDlg" Width="370" Height="270" Title="[ProductName] Setup" NoMinimize="yes">
<Control Id="Text" Type="Text" X="40" Y="65" Width="270" Height="30">
<Text>Setup found existing database instances that can be upgraded to [ProductName].You can create a new instance and/or upgrade existing one.
</Text>
</Control>
<Control Id="CreateOrUpgradeButton"
Type="RadioButtonGroup" X="40" Y="100" Width="300" Height="70"
Property="CreateOrUpgradeChoice" Text="Specify what to do">
<RadioButtonGroup Property="CreateOrUpgradeChoice">
<RadioButton Value="Create" X="0" Y="0" Width="300" Height="25"
Text="{\Font1}Create new database instance."/>
<RadioButton Value="Upgrade" X="0" Y="30" Width="300" Height="25"
Text="{\Font1}Do not create a new database. Optionally upgrade existing instances." />
</RadioButtonGroup>
</Control>
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back">
<Publish Event="NewDialog" Value="LicenseAgreementDlg">1</Publish>
</Control>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Text="&amp;Next">
<Publish Event="Remove" Value="DBInstance">CreateOrUpgradeChoice = "Upgrade" </Publish>
<Publish Event="AddLocal" Value="DBInstance">CreateOrUpgradeChoice = "Create"</Publish>
<Publish Property="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="[NonExistentProperty]">CreateOrUpgradeChoice = "Create"</Publish>
<Publish Property="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="[NonExistentProperty]">CreateOrUpgradeChoice = "Create"</Publish>
<Publish Property="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1">CreateOrUpgradeChoice = "Upgrade"</Publish>
<Publish Event="NewDialog" Value="CustomizeDlg">1</Publish>
</Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="WixUI_Bmp_Banner" />
<Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes">
<Text>Create or upgrade database instance</Text>
</Control>
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes">
<Text>{\WixUI_Font_Title}[ProductName] setup</Text>
</Control>
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
</Dialog>
<!-- Error popup dialog -->
<Dialog Id="WarningDlg" Width="320" Height="85" Title="[ProductName] Setup" NoMinimize="yes">
<Control Id="Icon" Type="Icon" X="15" Y="15" Width="24" Height="24"
ToolTip="Information icon" FixedSize="yes" IconSize="32" Text="WixUI_Ico_Info" />
<Control Id="Ok" Type="PushButton" X="132" Y="57" Width="56" Height="17"
Default="yes" Cancel="yes" Text="OK">
<Publish Property="WarningText">1</Publish>
<Publish Event="EndDialog" Value="Return">1</Publish>
</Control>
<Control Id="Text" Type="Text" X="48" Y="15" Width="260" Height="30">
<Text>[WarningText]</Text>
</Control>
</Dialog>
<Property Id="ModifyRootPassword" Value="1"/>
<TextStyle Id="Font1" FaceName="Tahoma" Size="8" Red="0" Green="0" Blue="0" Bold="yes" />
<!-- Root password plus default user dialog -->
<Dialog Id="UserSettingsDlg" X="50" Y="50" Width="370" Height="270" Title="User settings">
<Control Id="EditRootPassword" Type="Edit" X="104" Y="82" Width="91" Height="15" Property="PASSWORD" Password="yes" TabSkip="no">
<Text>{100}</Text>
<Condition Action="enable">ModifyRootPassword</Condition>
<Condition Action="disable">NOT ModifyRootPassword</Condition>
</Control>
<Control Id="EditRootPasswordConfirm" Type="Edit" X="104" Y="103" Width="91" Height="15" Property="RootPasswordConfirm" Password="yes" TabSkip="no">
<Text>{100}</Text>
<Condition Action="enable">ModifyRootPassword</Condition>
<Condition Action="disable">NOT ModifyRootPassword</Condition>
</Control>
<Control Id="CheckBoxModifyRootPassword" Type="CheckBox" X="8" Y="62" Width="222" Height="18" Property="ModifyRootPassword" CheckBoxValue="1" TabSkip="no">
<Text>{\Font1}Modify password for database user 'root'</Text>
<Publish Property="PASSWORD" >NOT ModifyRootPassword</Publish>
<Publish Property="RootPasswordConfirm">NOT ModifyRootPassword</Publish>
<Publish Property="ALLOWREMOTEROOTACCESS">NOT ModifyRootPassword</Publish>
<Publish Property="ALLOWREMOTEROOTACCESS" Value="1">ModifyRootPassword</Publish>
</Control>
<Control Id="Text5" Type="Text" X="23" Y="82" Width="77" Height="14" TabSkip="yes">
<Text>New root password:</Text>
</Control>
<Control Id="Text6" Type="Text" X="201" Y="85" Width="100" Height="17" TabSkip="yes">
<Text>Enter new root password</Text>
</Control>
<Control Id="Text8" Type="Text" X="23" Y="105" Width="75" Height="17" TabSkip="yes">
<Text>Confirm:</Text>
</Control>
<Control Id="Text10" Type="Text" X="201" Y="104" Width="100" Height="17" TabSkip="yes">
<Text>Retype the password</Text>
</Control>
<Control Id="CheckBoxALLOWREMOTEROOTACCESS" Type="CheckBox" X="23" Y="122" Width="196" Height="18" Property="ALLOWREMOTEROOTACCESS"
CheckBoxValue="--allow-remote-root-access" TabSkip="no">
<Text>{\Font1}Enable access from remote machines for 'root' user</Text>
<Condition Action="enable">ModifyRootPassword</Condition>
<Condition Action="disable">NOT ModifyRootPassword</Condition>
</Control>
<Control Id="CheckBoxUTF8" Type="CheckBox" X="8" Y="154" Width="250" Height="18" Property="UTF8" CheckBoxValue="1" TabSkip="no">
<Text>{\Font1}Use UTF8 as default server's character set</Text>
</Control>
<Control Type="Text" Id="Text11" Width="67" Height="17" X="8" Y="190" Text="{\Font1}Data directory" />
<Control Type="PathEdit" Id="TxtDir" Width="175" Height="18" X="80" Y="190" Property="DATADIR">
</Control>
<Control Id="btnDirBrowse" Type="PushButton" Width="56" Height="17" X="278" Y="190" Text="Browse...">
<Publish Property="_BrowseProperty" Value="DATADIR" Order="1">1</Publish>
<Publish Event="SpawnDialog" Value="BrowseDlg" Order="2">1</Publish>
</Control>
<!-- Navigation buttons-->
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back">
<Publish Event="NewDialog" Value="CustomizeDlg">1</Publish>
</Control>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="&amp;Next">
<Publish Event="DoAction" Value="CheckDataDirectory">1</Publish>
<Publish Property="WarningText" Value="Invalid data directory, choose a different one. Error: [DATADIRERROR]">
DATADIRERROR
</Publish>
<Publish Property="WarningText" Value="Passwords do not match."><![CDATA[PASSWORD <> RootPasswordConfirm]]></Publish>
<Publish Event="SpawnDialog" Value="WarningDlg"><![CDATA[WarningText <>""]]></Publish>
<Publish Property="SERVICENAME" Value="MariaDB">NOT SERVICENAME AND NOT WarningText</Publish>
<Publish Event="NewDialog" Value="ServicePortDlg"><![CDATA[WarningText=""]]></Publish>
<Condition Action="enable"><![CDATA[NOT ModifyRootPassword OR PASSWORD]]> </Condition>
<Condition Action="disable"><![CDATA[ModifyRootPassword AND (NOT PASSWORD)]]> </Condition>
</Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="WixUI_Bmp_Banner" />
<Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes">
<Text> [ProductName] database configuration</Text>
</Control>
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes">
<Text>{\WixUI_Font_Title}Default instance properties</Text>
</Control>
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
</Dialog>
<Property Id="InstallService" Value="1"/>
<Property Id="EnableNetworking" Value="1"/>
<!-- Service and port configuration -->
<Dialog Id="ServicePortDlg" Width="370" Height="270" Title="Database settings">
<Control Id="InstallAsService" Type="CheckBox" X="9" Y="61" Width="222" Height="19" Property="InstallService" CheckBoxValue="1" TabSkip="no">
<Text>{\Font1}Install as service</Text>
</Control>
<Control Id="EditServiceName" Type="Edit" X="104" Y="82" Width="91" Height="15" Property="SERVICENAME" TabSkip="no">
<Text>{20}</Text>
<Condition Action="enable">InstallService</Condition>
<Condition Action="disable">Not InstallService</Condition>
</Control>
<Control Id="Text5" Type="Text" X="25" Y="82" Width="77" Height="14" TabSkip="yes">
<Text>Service Name:</Text>
</Control>
<Control Id="CheckBoxEnableNetworking" Type="CheckBox" Height="18" Width="102" X="9" Y="117" Property="EnableNetworking" CheckBoxValue="1">
<Text>{\Font1}Enable networking</Text>
<!--<Publish Property="PORT">NOT EnableNetworking</Publish>-->
<Publish Property="SKIPNETWORKING" Value="--skip-networking">NOT EnableNetworking</Publish>
<Publish Property="SKIPNETWORKING">EnableNetworking</Publish>
</Control>
<Control Id="LabelTCPPort" Type="Text" Height="17" Width="75" X="25" Y="142" Text="TCP port:" />
<Control Id="Port" Type="MaskedEdit" X="104" Y="140" Width="28" Height="15" Property="PORT" Sunken="yes" Text="[PortTemplate]">
<Condition Action="enable" >EnableNetworking</Condition>
<Condition Action="disable">Not EnableNetworking</Condition>
</Control>
<Control Id="LabelInnodbSettings" Type="Text" Height="18" Width="220" X="25" Y="171" >
<Text>{\Font1}Innodb engine settings</Text>
</Control>
<Control Id="LabelInnodbBufferpool" Type="Text" Height="17" Width="77" X="25" Y="190" Text="Buffer pool size:" />
<Control Id="BPSize" Type="MaskedEdit" X="104" Y="188" Width="40" Height="15" Property="BUFFERPOOLSIZE" Sunken="yes" Text="[BufferPoolSizeTemplate]"/>
<Control Id="LabelMB" Type="Text" Height="17" Width="15" X="150" Y="190" Text="MB" />
<Control Id="LabelInnodbPageSize" Type="Text" Height="17" Width="77" X="25" Y="208" Text="Page size:" />
<Control Id="LabelKB" Type="Text" Height="17" Width="15" X="150" Y="210" Text="KB" />
<Control Id="ComboBoxInnodbPageSize" Type="ComboBox" X="104" Y="208" Width="30" Height="17" ComboList="yes" Sorted="yes" Property="PAGESIZE" >
<ComboBox Property="PAGESIZE">
<ListItem Text=" 4" Value="4K"/>
<ListItem Text=" 8" Value="8K"/>
<ListItem Text="16" Value="16K"/>
<ListItem Text="32" Value="32K"/>
<ListItem Text="64" Value="64K"/>
</ComboBox>
</Control>
<!-- Navigation buttons-->
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back">
<Publish Event="NewDialog" Value="UserSettingsDlg">1</Publish>
</Control>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="no" Text="&amp;Next">
<Publish Property="SERVICENAME">NOT InstallService</Publish>
<Publish Property="WarningText" Value="Please enter valid port or uncheck 'Enable Networking' checkbox">
<![CDATA[EnableNetworking AND NOT PORT AND NOT WarningText]]>
</Publish>
<Publish Property="WarningText" Value="Please enter valid service name port or uncheck 'Install Service' checkbox">
<![CDATA[InstallService AND NOT SERVICENAME AND NOT WarningText]]>
</Publish>
<Publish Event="DoAction" Value="CheckDatabaseProperties">NOT WarningText</Publish>
<Publish Event="SpawnDialog" Value="WarningDlg">WarningText</Publish>
<Publish Event="NewDialog" Value="VerifyReadyDlg">Not WarningText</Publish>
</Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="no" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="WixUI_Bmp_Banner" />
<Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes">
<Text>[ProductName] database configuration</Text>
</Control>
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="2" />
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes">
<Text>{\WixUI_Font_Title}Default instance properties</Text>
</Control>
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="2" />
</Dialog>
</UI>
<Property Id="CRLF" Value="&#xD;&#xA;" />
<CustomAction Id="CheckDataDirectory" BinaryKey="wixca.dll" DllEntry="CheckDataDirectory" Execute="immediate" Impersonate="yes"/>
<CustomAction Id="CheckInstallDirectory" BinaryKey="wixca.dll" DllEntry="CheckInstallDirectory" Execute="immediate" Impersonate="yes"/>
<!-- What to do when navigation buttons are clicked -->
<UI Id="MyWixUI_Mondo">
<UIRef Id="WixUI_FeatureTree" />
<UIRef Id="WixUI_ErrorProgressText" />
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="999">
OLDERVERSIONBEINGUPGRADED
</Publish>
<Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="NewOrUpgradeInstanceDlg" Order="999">
NOT Installed AND UpgradableServiceFound
</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="ServicePortDlg" Order="3" ><![CDATA[&DBInstance=3 AND NOT !DBInstance=3]]></Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="3"> <![CDATA[OLDERVERSIONBEINGUPGRADED <>""]]></Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="ConfirmDataCleanupDlg" Order="1" ><![CDATA[(&DBInstance=2) AND (!DBInstance=3)]]></Publish>
<Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="NewOrUpgradeInstanceDlg" Order="999">
NOT Installed AND UpgradableServiceFound
</Publish>
<Publish Dialog="CustomizeDlg" Control="Next" Event="DoAction" Value="CheckInstallDirectory" Order="1">NOT Installed</Publish>
<Publish Dialog="CustomizeDlg" Control="Next" Property="WarningText" Order="2"
Value="[INSTALLDIRERROR]">
INSTALLDIRERROR
</Publish>
<Publish Dialog="CustomizeDlg" Control="Next" Event="SpawnDialog" Value="WarningDlg" Order="3">WarningText</Publish>
<Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="ConfirmDataCleanupDlg" Order="4">
<![CDATA[(&DBInstance=2) AND (!DBInstance=3)]]>
</Publish>
<Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="UserSettingsDlg" Order="5">
<![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND NOT WarningText]]>
</Publish>
<Publish Dialog="ConfirmDataCleanupDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg">WixUI_InstallMode = "Change"</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="ConfirmDataCleanupDlg" Order="999">
!DBInstance=3 AND (CLEANUPDATA Or USECONFIRMDATACLEANUPDLG)
</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Property="USECONFIRMDATACLEANUPDLG" Value="1" Order="999">
!DBInstance=3 AND CLEANUPDATA
</Publish>
<Publish Dialog="ConfirmDataCleanupDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg">WixUI_InstallMode = "Remove"</Publish>
</UI>
<!-- End of UI section -->
<!-- Extra folders we need (DATADIR and shortcut folder) -->
<DirectoryRef Id='INSTALLDIR'>
<Directory Id="DATADIR" Name="data">
</Directory>
<Directory Id="ProgramMenuFolder">
<Directory Id="ShortcutFolder" Name="@CPACK_WIX_PACKAGE_NAME@">
</Directory>
</Directory>
</DirectoryRef>
<!-- Extra feature (database instance). This could be split to several subfeatures if desired (e.g firewall exception)-->
<Feature Id='DBInstance'
Title='Database instance'
Description=
'Install database instance. Only new database can be installed with this feature.'
ConfigurableDirectory='DATADIR'
AllowAdvertise='no'
Level='1'>
<!-- Data directory with some reasonable security settings -->
<Component Id="C.datadir" Guid="*" Directory="DATADIR">
<RegistryValue Root='HKLM'
Key='SOFTWARE\@CPACK_WIX_PACKAGE_NAME@'
Name='DATADIR' Value='[DATADIR]' Type='string' KeyPath='yes'/>
</Component>
<Component Id="C.datadir.permissions" Directory="DATADIR">
<Condition>
<!--
Skip setting permissions for LogonUser, if package is installed by
service user (e.g LocalSystem)
-->
<![CDATA[ (UserSID <> "S-1-5-18") AND (UserSID <> "S-1-5-19") AND (UserSID <> "S-1-5-20") ]]>
</Condition>
<RegistryValue Root='HKLM'
Key='SOFTWARE\@CPACK_WIX_PACKAGE_NAME@'
Name='InstalledBy' Value='[USER_DOMAIN]\[LogonUser]' Type='string' KeyPath='yes'/>
<CreateFolder>
<util:PermissionEx User="[LogonUser]" Domain="[USER_DOMAIN]" GenericAll="yes" />
</CreateFolder>
</Component>
<!-- Database service conditioned on SERVICENAME property-->
<Component Id="C.service" Guid="*" Directory="DATADIR">
<Condition>SERVICENAME</Condition>
<RegistryValue Root='HKLM'
Key='SOFTWARE\@CPACK_WIX_PACKAGE_NAME@'
Name='SERVICENAME' Value='[SERVICENAME]' Type='string' KeyPath='yes'/>
<ServiceControl Id='DBInstanceServiceStop' Name='[SERVICENAME]' Stop='both' Remove='uninstall' Wait='yes'/>
<ServiceControl Id='DBInstanceServiceStart' Name='[SERVICENAME]' Start='install' Wait='yes'/>
</Component>
<Component Id="C.myiniconfig" Guid="*" Directory="DATADIR">
<RegistryValue Root='HKLM'
Key='SOFTWARE\@CPACK_WIX_PACKAGE_NAME@'
Name='STDCONFIG' Value='1' Type='string' KeyPath='yes'/>
<IniFile Id="Ini3"
Action="createLine"
Directory="DATADIR"
Section="mysqld"
Name="my.ini"
Key="innodb_buffer_pool_size"
Value="[BUFFERPOOLSIZE]M" />
</Component>
<Component Id="C.utf8" Guid="*" Directory="DATADIR">
<Condition>UTF8</Condition>
<RegistryValue Root='HKLM'
Key='SOFTWARE\@CPACK_WIX_PACKAGE_NAME@'
Name='UTF8' Value='1' Type='string' KeyPath='yes'/>
<IniFile Id="Ini6"
Action="createLine"
Directory="DATADIR"
Section="mysqld"
Name="my.ini"
Key="character-set-server"
Value="utf8mb4" />
</Component>
<!-- Shortcuts in program menu (mysql client etc) -->
<Component Id="c.shortcuts" Guid="*" Directory="ShortcutFolder">
<!-- shortcut to my.ini-->
<RegistryValue Root="HKCU" Key="Software\@CPACK_WIX_PACKAGE_NAME@\Uninstall" Name="shortcuts" Value="1" Type="string" KeyPath="yes" />
<RemoveFolder Id="RemoveShorcutFolder" On="uninstall" />
<Shortcut Id="shortcut.my.ini"
Name="my.ini (@CPACK_WIX_PACKAGE_NAME@)"
Target="[System64Folder]notepad.exe"
Arguments="&quot;[DATADIR]my.ini&quot;"
Directory="ShortcutFolder"
Description="Edit database configuration" />
<Shortcut Id="shortcut.errorlog"
Name="Error log (@CPACK_WIX_PACKAGE_NAME@)"
Target="[System64Folder]notepad.exe"
Arguments="&quot;[DATADIR][ComputerName].err&quot;"
Directory="ShortcutFolder"
Description="View Database Error log" />
<Shortcut Id="shortcut.dbfolder" Name="Database directory (@CPACK_WIX_PACKAGE_NAME@)"
Target="[DATADIR]" />
</Component>
<!-- add reference so mysql client won't get uninstalled and we have a shortcut pointing to nowhere-->
<ComponentRef Id="C.bin.mysql.exe"/>
<Component Id="c.shortcuts.commandline" Guid="*" Directory="ShortcutFolder">
<RegistryValue
Root="HKCU" Key="Software\@CPACK_WIX_PACKAGE_NAME@\Uninstall"
Name="shortcuts.commandline"
Value="1" Type="string" KeyPath="yes" />
<!-- shortcut to client-->
<Shortcut Id="shortcut.mysql.exe"
Name="MySQL Client (@CPACK_WIX_PACKAGE_NAME@)"
Target="[System64Folder]cmd.exe"
Arguments="/k &quot; &quot;[D.bin]mysql.exe&quot; &quot;--defaults-file=[DATADIR]my.ini&quot; -uroot -p&quot;"
Directory="ShortcutFolder"
WorkingDirectory="D.bin"
Description="Starts mysql.exe for root user" />
</Component>
<Component Id="c.shortcuts.commandprompt.db" Guid="*" Directory="ShortcutFolder" Transitive="yes">
<Condition>SERVICENAME</Condition>
<RegistryValue
Root="HKCU" Key="Software\@CPACK_WIX_PACKAGE_NAME@\Uninstall"
Name="shortcuts.commandprompt.db"
Value="1" Type="string" KeyPath="yes" />
<!-- just command prompt in the bin directory (so all utilities can be called) -->
<Shortcut Id="shortcut.commandprompt.exe.db"
Name="Command Prompt (@CPACK_WIX_PACKAGE_NAME@)"
Target="[System64Folder]cmd.exe"
Directory="ShortcutFolder"
Arguments="/k &quot;set MYSQL_HOME=[DATADIR]&amp;&amp; set PATH=[D.bin];%PATH%;&amp;&amp;echo Setting environment for [ProductName] &quot;"
Description="Opens command line in the installation bin directory" />
</Component>
</Feature>
<Feature Id="SharedClientServerComponents"
Title='Utilities used by both server and client.'
Description=
'Client utilities that are also used with server.Required for upgrade.'
ConfigurableDirectory='INSTALLDIR'
AllowAdvertise='no'
Level='1'
Display='hidden'>
<Component Id="C_Permissions.bin" Guid="2ce05496-3273-4866-a5b5-1eff2837b4cb" Directory="D.bin">
<!-- in case service is installed now on it the future -->
<CreateFolder>
<util:PermissionEx User="ALL SERVICES" Domain="NT SERVICE" GenericRead="yes" GenericExecute="yes" />
</CreateFolder>
<Condition>SERVICENAME</Condition>
</Component>
<Component Id="C_Permissions.lib.plugin" Guid="ff2e8f47-83fd-4dee-9e22-f103600cfc80" Directory="D.lib.plugin">
<CreateFolder>
<util:PermissionEx User="ALL SERVICES" Domain="NT SERVICE" GenericRead="yes" GenericExecute="yes" />
</CreateFolder>
<Condition>SERVICENAME</Condition>
</Component>
<Component Id="C_Permissions.share" Guid="be8ee2fb-a837-4b31-b59a-68a506d97d81" Directory="D.share">
<CreateFolder>
<util:PermissionEx User="ALL SERVICES" Domain="NT SERVICE" GenericRead="yes" GenericExecute="yes" />
</CreateFolder>
<Condition>SERVICENAME</Condition>
</Component>
<ComponentRef Id='C.bin.mysql.exe'/>
<ComponentRef Id='C.bin.mysqladmin.exe'/>
<ComponentRef Id='C.bin.mysql_upgrade.exe'/>
<ComponentRef Id='C.bin.mysqlcheck.exe'/>
<Component Id="c.shortcuts.commandprompt.nodb" Guid="*" Directory="ShortcutFolder" Transitive="yes">
<Condition>NOT SERVICENAME</Condition>
<RegistryValue
Root="HKCU" Key="Software\@CPACK_WIX_PACKAGE_NAME@\Uninstall"
Name="shortcuts.commandprompt.nodb"
Value="1" Type="string" KeyPath="yes" />
<!-- just command prompt in the bin directory (so all utilities can be called) -->
<Shortcut Id="shortcut.commandprompt.exe.nodb"
Name="Command Prompt (@CPACK_WIX_PACKAGE_NAME@)"
Target="[System64Folder]cmd.exe"
Directory="ShortcutFolder"
Arguments="/k &quot;set PATH=[D.bin];%PATH%;&amp;&amp;echo Setting environment for [ProductName] &quot;"
Description="Opens command line in the installation bin directory" />
</Component>
<?if $(var.HaveUpgradeWizard) != "0" ?>
<ComponentRef Id='C.bin.mysql_upgrade_wizard.exe'/>
<?endif?>
</Feature>
<!-- Optional 3rd party tools -->
<DirectoryRef Id='TARGETDIR'>
<Directory Id='CommonFilesFolder'>
<Directory Id='MariaDBShared' Name='MariaDBShared'/>
</Directory>
<Directory Id='DesktopFolder'/>
</DirectoryRef>
<?if "@WITH_THIRD_PARTY@" != "" ?>
<!-- Include definition of 3party components -->
<?foreach tool in @WITH_THIRD_PARTY@ ?>
<?include "${CMAKE_CURRENT_BINARY_DIR}\$(var.tool).wxi" ?>
<?endforeach ?>
<Feature Id="ThirdPartyTools"
Title='Third party tools'
Description= 'Third party tools'
AllowAdvertise='no'
Level='1'
Display='expand'>
@THIRD_PARTY_FEATURE_CONDITION@
<!-- Include definition of 3rd party features -->
<?foreach tool in @WITH_THIRD_PARTY@ ?>
<?include "${CMAKE_CURRENT_BINARY_DIR}\$(var.tool)_feature.wxi" ?>
<?endforeach ?>
</Feature>
<?endif ?>
<!-- Custom action, call mysql_install_db -->
<SetProperty Sequence='execute' Before='CreateDatabaseCommand' Id="SKIPNETWORKING" Value="--skip-networking" >SKIPNETWORKING</SetProperty>
<SetProperty Sequence='execute' Before='CreateDatabaseCommand' Id="ALLOWREMOTEROOTACCESS" Value="--allow-remote-root-access">ALLOWREMOTEROOTACCESS</SetProperty>
<SetProperty Sequence='execute' Before='CreateDatabaseCommand' Id="DEFAULTUSER" Value="--default-user">DEFAULTUSER</SetProperty>
<CustomAction Id='CheckDatabaseProperties' BinaryKey='wixca.dll' DllEntry='CheckDatabaseProperties' />
<CustomAction Id='PresetDatabaseProperties' BinaryKey='wixca.dll' DllEntry='PresetDatabaseProperties' />
<CustomAction Id="CreateDatabaseCommand" Property="CreateDatabase"
Value=
"&quot;[#F.bin.mysql_install_db.exe]&quot; &quot;--service=[SERVICENAME]&quot; --port=[PORT] --innodb-page-size=[PAGESIZE] &quot;--password=[ESCAPEDPASSWORD]&quot; &quot;--datadir=[DATADIR]\&quot; [SKIPNETWORKING] [ALLOWREMOTEROOTACCESS] [DEFAULTUSER] --verbose-bootstrap"
Execute="immediate"
HideTarget="yes"
/>
<CustomAction Id="CreateDatabaseRollbackCommand" Property="CreateDatabaseRollback"
Value="[SERVICENAME]\[DATADIR]"
Execute="immediate"/>
<CustomAction Id="CreateDatabase" BinaryKey="WixCA" DllEntry="@CA_QUIET_EXEC@"
Execute="deferred" Return="check" Impersonate="no" />
<CustomAction Id="CreateDatabaseRollback" BinaryKey="wixca.dll" DllEntry="CreateDatabaseRollback"
Execute="rollback" Return="check" Impersonate="no"/>
<UI>
<ProgressText Action="CreateDatabase">Running mariadb-install-db.exe</ProgressText>
</UI>
<!-- Error injection script activated by TEST_FAIL=1 passed to msiexec (to see how good custom action rollback works) -->
<Property Id="FailureProgram">
<![CDATA[
Function Main()
Main = 3
End Function
]]>
</Property>
<CustomAction Id="FakeFailure"
VBScriptCall="Main"
Property="FailureProgram"
Execute="deferred" />
<CustomAction Id='ErrorDataDir'
Error='Invalid data directory, choose a different one. Error : [DATADIRERROR]'/>
<CustomAction Id="ErrorInstallDir"
Error="[INSTALLDIRERROR]" />
<InstallExecuteSequence>
<Custom Action="CheckDataDirectory" After="CostFinalize">
<![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND OLDERVERSIONBEINGUPGRADED=""]]>
</Custom>
<Custom Action="ErrorDataDir" After="CheckDataDirectory">DATADIRERROR</Custom>
<Custom Action="CheckInstallDirectory" After="CostFinalize">
NOT Installed AND OLDERVERSIONBEINGUPGRADED=""
</Custom>
<Custom Action="ErrorInstallDir" After="CheckInstallDirectory">INSTALLDIRERROR</Custom>
<Custom Action="CheckDatabaseProperties" Before="CreateDatabaseCommand">SERVICENAME</Custom>
<Custom Action="CreateDatabaseCommand" After="CostFinalize" >
<![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND OLDERVERSIONBEINGUPGRADED=""]]>
</Custom>
<Custom Action="CreateDatabase" After="InstallFiles">
<![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND OLDERVERSIONBEINGUPGRADED=""]]>
</Custom>
<Custom Action="CreateDatabaseRollbackCommand" After="CostFinalize">
<![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND OLDERVERSIONBEINGUPGRADED=""]]>
</Custom>
<Custom Action="CreateDatabaseRollback" Before="CreateDatabase">
<![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND OLDERVERSIONBEINGUPGRADED=""]]>
</Custom>
<Custom Action='FakeFailure' Before='InstallFinalize'>
<![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND OLDERVERSIONBEINGUPGRADED="" AND TESTFAIL]]>
</Custom>
</InstallExecuteSequence>
<!-- Custom action to remove data on uninstall -->
<Binary Id='wixca.dll' SourceFile='@WIXCA_LOCATION@' />
<CustomAction Id="RemoveDataDirectory.SetProperty" Return="check"
Property="RemoveDataDirectory" Value="[DATADIR]" />
<CustomAction Id="RemoveDataDirectory" BinaryKey="wixca.dll"
DllEntry="RemoveDataDirectory"
Execute="deferred"
Impersonate="no"
Return="ignore" />
<InstallExecuteSequence>
<Custom Action="RemoveDataDirectory.SetProperty" After="CreateDatabaseCommand" >
<![CDATA[($C.datadir=2) AND (CLEANUPDATA) AND NOT UPGRADINGPRODUCTCODE]]>
</Custom>
<Custom Action="RemoveDataDirectory" Before="RemoveFiles">
<![CDATA[($C.datadir=2) AND (CLEANUPDATA) AND NOT UPGRADINGPRODUCTCODE]]>
</Custom>
</InstallExecuteSequence>
<InstallExecuteSequence>
<StopServices>SERVICENAME</StopServices>
<DeleteServices>SERVICENAME</DeleteServices>
</InstallExecuteSequence>
<CustomAction Id="CheckDBInUse" Return="ignore"
BinaryKey="wixca.dll" DllEntry="CheckDBInUse" Execute="firstSequence"/>
<InstallExecuteSequence>
<Custom Action="CheckDBInUse" Before="LaunchConditions">Installed</Custom>
<Custom Action="PresetDatabaseProperties" After="CheckDBInUse"></Custom>
</InstallExecuteSequence>
<InstallUISequence>
<Custom Action="CheckDBInUse" Before="LaunchConditions">Installed</Custom>
<Custom Action="PresetDatabaseProperties" After="CheckDBInUse"></Custom>
</InstallUISequence>
<!-- Store some properties persistently in registry, mainly for upgrades -->
<Feature Id='StoreInstallLocation' Level='1' Absent='disallow' Display='hidden'>
<Component Directory='INSTALLDIR' Guid='*' Id='C.storeinstalllocation'>
<RegistryValue Root='HKLM' Key='SOFTWARE\@CPACK_WIX_PACKAGE_NAME@'
Name='INSTALLDIR' Value='[INSTALLDIR]' Type='string' KeyPath='yes'/>
</Component>
</Feature>
<?foreach STOREDVAR in SERVICENAME;DATADIR;INSTALLDIR?>
<Property Id='$(var.STOREDVAR)' Secure='yes'>
<RegistrySearch Id='$(var.STOREDVAR)Property' Root='HKLM'
Key='SOFTWARE\@CPACK_WIX_PACKAGE_NAME@'
Name='$(var.STOREDVAR)' Type='raw' />
</Property>
<CustomAction Id='SaveCmdLineValue_$(var.STOREDVAR)' Property='CMDLINE_$(var.STOREDVAR)'
Value='[$(var.STOREDVAR)]' Execute='firstSequence' />
<CustomAction Id='SetFromCmdLineValue_$(var.STOREDVAR)' Property='$(var.STOREDVAR)'
Value='[CMDLINE_$(var.STOREDVAR)]' Execute='firstSequence' />
<InstallUISequence>
<Custom Action='SaveCmdLineValue_$(var.STOREDVAR)' Before='AppSearch' />
<Custom Action='SetFromCmdLineValue_$(var.STOREDVAR)' After='AppSearch'>CMDLINE_$(var.STOREDVAR)</Custom>
</InstallUISequence>
<InstallExecuteSequence>
<Custom Action='SaveCmdLineValue_$(var.STOREDVAR)' Before='AppSearch' />
<Custom Action='SetFromCmdLineValue_$(var.STOREDVAR)' After='AppSearch'>CMDLINE_$(var.STOREDVAR)</Custom>
</InstallExecuteSequence>
<?endforeach?>
<!--
Optionally, start upgrade wizard on exit.
-->
<?if $(var.HaveUpgradeWizard) != "0" ?>
<UI>
<Publish Dialog="ExitDialog"
Control="Finish"
Event="DoAction"
Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
</UI>
<Property
Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT"
Value="Launch wizard to upgrade existing MariaDB or MySQL services." />
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="0"/>
<Property Id="WixShellExecTarget" Value="[#F.bin.mysql_upgrade_wizard.exe]" />
<CustomAction Id="LaunchApplication"
BinaryKey="WixCA"
DllEntry="WixShellExec"
Impersonate="yes" />
<CustomAction
Id="CheckServiceUpgrades" Return="ignore" BinaryKey="wixca.dll"
DllEntry="CheckServiceUpgrades"
Execute="immediate" />
<InstallUISequence>
<Custom Action="CheckServiceUpgrades" After="CostFinalize">
$C.bin.mysql_upgrade_wizard.exe = 3 AND NOT Installed AND NOT OLDERVERSIONBEINGUPGRADED
</Custom>
</InstallUISequence>
<SetProperty Before="ExecuteAction" Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT"
Sequence="ui" Value="[NonExistentProperty]">
<![CDATA[($C.bin.mysql_upgrade_wizard.exe <> 3) AND NOT Installed OR OLDERVERSIONBEINGUPGRADED]]>
</SetProperty>
<SetProperty Before="ExecuteAction" Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX"
Sequence="ui" Value="[NonExistentProperty]">
<![CDATA[($C.bin.mysql_upgrade_wizard.exe <> 3) AND NOT Installed OR OLDERVERSIONBEINGUPGRADED]]>
</SetProperty>
<?endif ?> <!-- HaveUpgradeWizard -->
<!--
Author the registry entries for "add or remove programs"
We choose to define ARPSYSTEMCOMPONENT to 1 because we want to show
"do you want to remove data directory" on uninstall
-->
<Property Id="ARPSYSTEMCOMPONENT" Value="1" Secure="yes" />
<Property Id="ARPINSTALLLOCATION" Secure="yes"/>
<SetProperty Id="ARPINSTALLLOCATION" Value="[INSTALLDIR]" After="InstallValidate" Sequence="execute"/>
<SetProperty Id="USER_DOMAIN" Value="[%USERDOMAIN]" After="LaunchConditions" Sequence="first" />
<Feature Id='ARPRegistryEntries'
Title='Add or remove program entries'
Description='Add or remove program entries'
AllowAdvertise='no'
Absent='disallow' Display='hidden'
Level='1'>
<Component Id="C.arp_entries" Guid="*" Directory="INSTALLDIR">
<RemoveFolder Id="RemoveINSTALLDIR" On="uninstall"/>
<RegistryValue Root='HKLM'
Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@'
Name='DisplayName' Value='[ProductName]' Type='string' KeyPath='yes'/>
<RegistryValue Root='HKLM'
Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@'
Name='Publisher' Value='@MANUFACTURER@' Type='string'/>
<RegistryValue Root='HKLM'
Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@'
Name='DisplayVersion' Value='[ProductVersion]' Type='string'/>
<RegistryValue Root='HKLM'
Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@'
Name='InstallLocation' Value='[INSTALLDIR]' Type='string'/>
<RegistryValue Root='HKLM'
Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@'
Name='UninstallString' Value='msiexec.exe /I [ProductCode]' Type='string'/>
<RegistryValue Root='HKLM'
Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@'
Name='MajorVersion' Value='@MAJOR_VERSION@' Type='string'/>
<RegistryValue Root='HKLM'
Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@'
Name='MinorVersion' Value='@MINOR_VERSION@' Type='string'/>
</Component>
</Feature>
<Condition Message=
'Setting the ALLUSERS property is not allowed because [ProductName] is a per-machine application. Setup will now exit.'>
<![CDATA[ALLUSERS = "1"]]>
</Condition>
<Condition Message='This application is only supported on Windows 10, Windows Server 2016, or higher.'>
<![CDATA[Installed OR (VersionNT >= 603)]]>
</Condition>
</Fragment>
</Wix>