diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9b8d52feedb..1bae7e81f5a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -329,8 +329,8 @@ INCLUDE(cmake/abi_check.cmake)
INCLUDE(cmake/tags.cmake)
IF(WIN32)
- ADD_SUBDIRECTORY(win/packaging)
ADD_SUBDIRECTORY(win/upgrade_wizard)
+ ADD_SUBDIRECTORY(win/packaging)
ENDIF()
CONFIGURE_FILE(config.h.cmake ${CMAKE_BINARY_DIR}/include/my_config.h)
diff --git a/win/packaging/ca/CustomAction.cpp b/win/packaging/ca/CustomAction.cpp
index 50b39adc0b1..67a17c2cc19 100644
--- a/win/packaging/ca/CustomAction.cpp
+++ b/win/packaging/ca/CustomAction.cpp
@@ -895,7 +895,7 @@ extern "C" UINT __stdcall CheckServiceUpgrades(MSIHANDLE hInstall)
Only look for services that have mysqld.exe outside of the current
installation directory.
*/
- if(strstr(props.mysqld_exe,installDir) == 0)
+ if(installDir[0] == 0 || strstr(props.mysqld_exe,installDir) == 0)
{
WcaLog(LOGMSG_STANDARD, "found service %S, major=%d, minor=%d",
info[i].lpServiceName, props.version_major, props.version_minor);
diff --git a/win/packaging/extra.wxs.in b/win/packaging/extra.wxs.in
index ff1a529a2ee..e0a36ef2e41 100644
--- a/win/packaging/extra.wxs.in
+++ b/win/packaging/extra.wxs.in
@@ -151,6 +151,9 @@
CreateOrUpgradeChoice = "Upgrade"
CreateOrUpgradeChoice = "Create"
+ CreateOrUpgradeChoice = "Create"
+ CreateOrUpgradeChoice = "Create"
+ CreateOrUpgradeChoice = "Upgrade"
1
@@ -823,7 +826,7 @@
-
+
- $C.bin.mysql_upgrade_wizard.exe = 3 AND NOT Installed
+ $C.bin.mysql_upgrade_wizard.exe = 3 AND NOT Installed AND NOT OLDERVERSIONBEINGUPGRADED
- 3) AND NOT Installed]]>
+ 3) AND NOT Installed OR OLDERVERSIONBEINGUPGRADED]]>
- 3) AND NOT Installed]]>
+ 3) AND NOT Installed OR OLDERVERSIONBEINGUPGRADED]]>