Issue #25144: Ensures TargetDir is set before continuing with custom install.
diff --git a/Misc/NEWS b/Misc/NEWS
index ea20f1a..bc323e3 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -333,6 +333,9 @@
 Windows
 -------
 
+- Issue #25144: Ensures TargetDir is set before continuing with custom
+  install.
+
 - Issue #1602: Windows console doesn't input or print Unicode (PEP 528)
 
 - Issue #27781: Change file system encoding on Windows to UTF-8 (PEP 529)
diff --git a/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp b/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
index 67726d6..e88981f 100644
--- a/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
+++ b/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
@@ -323,6 +323,9 @@
         case ID_CUSTOM_INSTALL_BUTTON:
             SavePageSettings();
 
+            hr = EnsureTargetDir();
+            ExitOnFailure(hr, L"Failed to set TargetDir");
+
             hr = BalGetStringVariable(L"TargetDir", &targetDir);
             if (SUCCEEDED(hr)) {
                 // TODO: Check whether directory exists and contains another installation