diff options
Diffstat (limited to 'win/packaging/extra.wxs.in')
-rw-r--r-- | win/packaging/extra.wxs.in | 839 |
1 files changed, 839 insertions, 0 deletions
diff --git a/win/packaging/extra.wxs.in b/win/packaging/extra.wxs.in new file mode 100644 index 00000000..056a7ec4 --- /dev/null +++ b/win/packaging/extra.wxs.in @@ -0,0 +1,839 @@ +<?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 
'[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="&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="&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="&Back"> + <Publish Event="NewDialog" Value="LicenseAgreementDlg">1</Publish> + </Control> + <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Text="&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="&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="&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="&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="&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="
" /> + <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=""[DATADIR]my.ini"" + Directory="ShortcutFolder" + Description="Edit database configuration" /> + <Shortcut Id="shortcut.errorlog" + Name="Error log (@CPACK_WIX_PACKAGE_NAME@)" + Target="[System64Folder]notepad.exe" + Arguments=""[DATADIR][ComputerName].err"" + 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 " "[D.bin]mysql.exe" "--defaults-file=[DATADIR]my.ini" -uroot -p"" + 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 "set MYSQL_HOME=[DATADIR]&& set PATH=[D.bin];%PATH%;&&echo Setting environment for [ProductName] "" + 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 "set PATH=[D.bin];%PATH%;&&echo Setting environment for [ProductName] "" + 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= + ""[#F.bin.mysql_install_db.exe]" "--service=[SERVICENAME]" --port=[PORT] --innodb-page-size=[PAGESIZE] "--password=[ESCAPEDPASSWORD]" "--datadir=[DATADIR]\" [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> |