mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 04:22:27 +01:00
747493e3c0
MSI: Only call custom action if REMOVE=ALL is specified, this avoids accidential removing services if feature states are modified (reported by Iggy)
163 lines
6 KiB
Text
163 lines
6 KiB
Text
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
|
|
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
|
|
<Product
|
|
Id="*"
|
|
UpgradeCode="49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3"
|
|
Name="MySQL Server @MAJOR_VERSION@.@MINOR_VERSION@"
|
|
Version="@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH_VERSION@"
|
|
Language="1033"
|
|
Manufacturer="@MANUFACTURER@">
|
|
|
|
<Package Id='*'
|
|
Keywords='Installer'
|
|
Description="MySQL Database Server"
|
|
Manufacturer='@MANUFACTURER@'
|
|
InstallerVersion='200'
|
|
Languages='1033'
|
|
Compressed='yes'
|
|
SummaryCodepage='1252'
|
|
Platform='@Platform@'/>
|
|
|
|
<Media Id='1' Cabinet='product.cab' EmbedCab='yes' />
|
|
|
|
<!-- Upgrade -->
|
|
<Upgrade Id="49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3">
|
|
<UpgradeVersion
|
|
Minimum="@MAJOR_VERSION@.@MINOR_VERSION@.0"
|
|
IncludeMinimum="yes"
|
|
Maximum="@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH_VERSION@"
|
|
Property="OLDERVERSIONBEINGUPGRADED"
|
|
MigrateFeatures="yes"
|
|
/>
|
|
<UpgradeVersion
|
|
Minimum="@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH_VERSION@"
|
|
OnlyDetect="yes"
|
|
Property="NEWERVERSIONDETECTED" />
|
|
</Upgrade>
|
|
<Condition Message="A later version of [ProductName] is already installed. Setup will now exit.">
|
|
NOT NEWERVERSIONDETECTED OR Installed
|
|
</Condition>
|
|
<InstallExecuteSequence>
|
|
<RemoveExistingProducts After="InstallInitialize"/>
|
|
</InstallExecuteSequence>
|
|
|
|
<!-- Save/restore install location -->
|
|
<CustomAction Id="SaveTargetDir" Property="ARPINSTALLLOCATION" Value="[INSTALLDIR]" />
|
|
<InstallExecuteSequence>
|
|
<Custom Action="SaveTargetDir" After="InstallValidate">
|
|
NOT
|
|
Installed
|
|
</Custom>
|
|
</InstallExecuteSequence>
|
|
<InstallUISequence>
|
|
<!-- App search is what does FindInstallLocation, and it is dependent on FindRelatedProducts -->
|
|
<AppSearch After="FindRelatedProducts"/>
|
|
</InstallUISequence>
|
|
|
|
<!-- Find previous installation -->
|
|
<Property Id="INSTALLDIR">
|
|
<RegistrySearch Id="FindInstallLocation"
|
|
Root="HKLM"
|
|
Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[OLDERVERSIONBEINGUPGRADED]"
|
|
Name="InstallLocation"
|
|
Type="raw" />
|
|
</Property>
|
|
<Property Id="OLDERVERSION">
|
|
<RegistrySearch Id="FindOlderVersion"
|
|
Root="HKLM"
|
|
Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[OLDERVERSIONBEINGUPGRADED]"
|
|
Name="DisplayVersion"
|
|
Type="raw" />
|
|
</Property>
|
|
<Property Id="DATADIR">
|
|
<RegistrySearch Id="FindDataDir"
|
|
Root="HKLM"
|
|
Key="SOFTWARE\MySQL AB\[ProductName]"
|
|
Name="DataLocation"
|
|
Type="raw" />
|
|
</Property>
|
|
<Property Id="INSTALLDIR2">
|
|
<RegistrySearch Id="FindInstallLocation2"
|
|
Root="HKLM"
|
|
Key="SOFTWARE\MySQL AB\[ProductName]"
|
|
Name="Location"
|
|
Type="raw" />
|
|
</Property>
|
|
<CustomAction Id="SetInstallDir2" Property="INSTALLDIR" Value="[INSTALLDIR2]" />
|
|
<InstallUISequence>
|
|
<Custom Action="SetInstallDir2" After="AppSearch">INSTALLDIR2</Custom>
|
|
</InstallUISequence>
|
|
|
|
|
|
<!-- UI -->
|
|
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR"></Property>
|
|
<UIRef Id="@CPACK_WIX_UI@" />
|
|
<UIRef Id="WixUI_ErrorProgressText" />
|
|
<WixVariable
|
|
Id="WixUIBannerBmp"
|
|
Value="@CMAKE_CURRENT_SOURCE_DIR@/AdminHeader.jpg" />
|
|
<WixVariable
|
|
Id="WixUIDialogBmp"
|
|
Value="@CMAKE_CURRENT_SOURCE_DIR@/AdminBackground.jpg" />
|
|
<Icon
|
|
Id="icon.ico"
|
|
SourceFile="@CMAKE_CURRENT_SOURCE_DIR@/MySQLServer.ico"/>
|
|
<Property
|
|
Id="ARPPRODUCTICON"
|
|
Value="icon.ico" />
|
|
|
|
<!-- License -->
|
|
<WixVariable
|
|
Id="WixUILicenseRtf"
|
|
Value="@COPYING_RTF@"/>
|
|
|
|
<!-- How to remove the service on uninstall -->
|
|
<Binary Id='wixca.dll' SourceFile='@WIXCA_LOCATION@' />
|
|
<CustomAction Id="UnregisterProperty" Property="UnregisterService" Value="[INSTALLDIR]" Return="check" />
|
|
<CustomAction Id="UnregisterPropertySilent" Property="UnregisterServiceSilently" Value="[INSTALLDIR]" Return="check" />
|
|
<CustomAction Id="UnregisterService"
|
|
BinaryKey="wixca.dll"
|
|
DllEntry="RemoveService"
|
|
Execute="deferred"
|
|
Impersonate="no"
|
|
Return="check" />
|
|
<CustomAction Id="UnregisterServiceSilently"
|
|
BinaryKey="wixca.dll"
|
|
DllEntry="RemoveServiceNoninteractive"
|
|
Execute="deferred"
|
|
Impersonate="no"
|
|
Return="check" />
|
|
<InstallExecuteSequence>
|
|
<Custom Action="UnregisterProperty" After="InstallInitialize">Installed And Not UPGRADINGPRODUCTCODE And REMOVE="ALL"</Custom>
|
|
<Custom Action="UnregisterPropertySilent" After="InstallInitialize">Installed And Not UPGRADINGPRODUCTCODE And REMOVE="ALL"</Custom>
|
|
<Custom Action="UnregisterService" After="UnregisterProperty">Installed And Not UPGRADINGPRODUCTCODE And REMOVE="ALL" And UILevel>4</Custom>
|
|
<Custom Action="UnregisterServiceSilently" After="UnregisterPropertySilent">Installed And Not UPGRADINGPRODUCTCODE And REMOVE="ALL" And UILevel<=4</Custom>
|
|
</InstallExecuteSequence>
|
|
|
|
<!-- Installation root-->
|
|
<Directory Id='TARGETDIR' Name='SourceDir'>
|
|
<Directory Id='@PlatformProgramFilesFolder@'>
|
|
<Directory Id='directory.MySQL' Name='MySQL'>
|
|
<Directory Id='INSTALLDIR' Name='MySQL Server @MAJOR_VERSION@.@MINOR_VERSION@'>
|
|
</Directory>
|
|
</Directory>
|
|
</Directory>
|
|
</Directory>
|
|
|
|
<!-- CPACK_WIX_FEATURES -->
|
|
@CPACK_WIX_FEATURES@
|
|
|
|
<!-- CPACK_WIX_DIRECTORIES -->
|
|
@CPACK_WIX_DIRECTORIES@
|
|
|
|
<!--CPACK_WIX_COMPONENTS-->
|
|
@CPACK_WIX_COMPONENTS@
|
|
|
|
<!--CPACK_WIX_COMPONENTS_GROUPS -->
|
|
@CPACK_WIX_COMPONENT_GROUPS@
|
|
|
|
<!--CPACK_WIX_INCLUDES -->
|
|
@CPACK_WIX_INCLUDES@
|
|
</Product>
|
|
|
|
</Wix>
|