From svn_mapguide at osgeo.org Wed Sep 9 07:29:46 2026
From: svn_mapguide at osgeo.org (svn_mapguide at osgeo.org)
Date: Wed, 9 Sep 2026 07:29:46 -0700
Subject: [mapguide-commits] r10210 - in trunk/Tools/MgInstantSetup: .
InstantSetupCmd
Message-ID: <20260909142946.5E02B1C0882@trac.osgeo.org>
Author: jng
Date: 2026-09-09 07:29:44 -0700 (Wed, 09 Sep 2026)
New Revision: 10210
Removed:
trunk/Tools/MgInstantSetup/.nuget/
trunk/Tools/MgInstantSetup/InstantSetupCmd/packages.config
Modified:
trunk/Tools/MgInstantSetup/InstantSetupCmd/InstantSetupCmd.csproj
trunk/Tools/MgInstantSetup/MgInstantSetup.sln
Log:
Remove "legacy" nuget package restoration
Modified: trunk/Tools/MgInstantSetup/InstantSetupCmd/InstantSetupCmd.csproj
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetupCmd/InstantSetupCmd.csproj 2026-08-24 07:40:13 UTC (rev 10209)
+++ trunk/Tools/MgInstantSetup/InstantSetupCmd/InstantSetupCmd.csproj 2026-09-09 14:29:44 UTC (rev 10210)
@@ -13,8 +13,6 @@
512
- ..\
- true
AnyCPU
@@ -43,9 +41,6 @@
app.manifest
-
- ..\packages\CommandLineParser.1.9.71\lib\net40\CommandLine.dll
-
@@ -55,6 +50,9 @@
+
+
+
@@ -62,7 +60,6 @@
-
@@ -71,13 +68,6 @@
-
-
-
- This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
-
-
Modified: sandbox/jng/installer_wix6/Libraries/MapGuide Web Extensions/Apache.wxs
===================================================================
--- sandbox/jng/installer_wix6/Libraries/MapGuide Web Extensions/Apache.wxs 2026-09-11 09:04:17 UTC (rev 10213)
+++ sandbox/jng/installer_wix6/Libraries/MapGuide Web Extensions/Apache.wxs 2026-09-11 14:35:46 UTC (rev 10214)
@@ -1,7 +1,6 @@
?
Deleted: sandbox/jng/installer_wix6/Paraffin.exe
===================================================================
(Binary files differ)
From svn_mapguide at osgeo.org Sun Sep 13 02:13:41 2026
From: svn_mapguide at osgeo.org (svn_mapguide at osgeo.org)
Date: Sun, 13 Sep 2026 02:13:41 -0700
Subject: [mapguide-commits] r10215 - in sandbox/jng/installer_wix6:
Libraries/MapGuide Web Extensions scripts
Message-ID: <20260913091341.CA8DF1B6432@trac.osgeo.org>
Author: jng
Date: 2026-09-13 02:13:38 -0700 (Sun, 13 Sep 2026)
New Revision: 10215
Modified:
sandbox/jng/installer_wix6/Libraries/MapGuide Web Extensions/HarvestFiles.wxs
sandbox/jng/installer_wix6/scripts/List-MsiFiles.ps1
Log:
Fix some incorrect file > feature assignments and ensure List-MsiFiles.ps1 releases its msi file handles.
Modified: sandbox/jng/installer_wix6/Libraries/MapGuide Web Extensions/HarvestFiles.wxs
===================================================================
--- sandbox/jng/installer_wix6/Libraries/MapGuide Web Extensions/HarvestFiles.wxs 2026-09-11 14:35:46 UTC (rev 10214)
+++ sandbox/jng/installer_wix6/Libraries/MapGuide Web Extensions/HarvestFiles.wxs 2026-09-13 09:13:38 UTC (rev 10215)
@@ -64,7 +64,6 @@
-
@@ -72,6 +71,7 @@
+
Modified: sandbox/jng/installer_wix6/scripts/List-MsiFiles.ps1
===================================================================
--- sandbox/jng/installer_wix6/scripts/List-MsiFiles.ps1 2026-09-11 14:35:46 UTC (rev 10214)
+++ sandbox/jng/installer_wix6/scripts/List-MsiFiles.ps1 2026-09-13 09:13:38 UTC (rev 10215)
@@ -129,7 +129,15 @@
if (-not (Test-Path -LiteralPath $Msi)) { throw "MSI file not found: $Msi" }
$full = (Resolve-Path -LiteralPath $Msi).Path
$installer = New-Object -ComObject WindowsInstaller.Installer
- return $installer.GetType().InvokeMember('OpenDatabase', 'InvokeMethod', $null, $installer, @($full, 0))
+ try {
+ return $installer.GetType().InvokeMember('OpenDatabase', 'InvokeMethod', $null, $installer, @($full, 0))
+ }
+ finally {
+ # Release the Installer COM object immediately so it cannot keep the MSI open.
+ if ($null -ne $installer) {
+ try { [void][System.Runtime.InteropServices.Marshal]::FinalReleaseComObject($installer) } catch { }
+ }
+ }
}
function Split-FeatureList {
@@ -157,6 +165,7 @@
function Read-MsiData {
param([string]$Msi)
$db = Open-Msi -Msi $Msi
+ try {
$dirs = @{}
foreach ($rec in (Invoke-MsiQuery $db 'SELECT `Directory`, `Directory_Parent`, `DefaultDir` FROM `Directory`')) {
@@ -225,6 +234,13 @@
CompFeat = $compFeat
Files = $files
}
+ }
+ finally {
+ # Release the Database COM object so the MSI file handle is closed immediately.
+ if ($null -ne $db) {
+ try { [void][System.Runtime.InteropServices.Marshal]::FinalReleaseComObject($db) } catch { }
+ }
+ }
}
function Resolve-DirectoryPath {
From svn_mapguide at osgeo.org Mon Sep 21 05:39:48 2026
From: svn_mapguide at osgeo.org (svn_mapguide at osgeo.org)
Date: Mon, 21 Sep 2026 05:39:48 -0700
Subject: [mapguide-commits] r10216 - in branches/4.0/MgDev: Common/Renderers
Oem/DWFTK/develop/global/src/dwf Oem/DWFTK/develop/global/src/dwf/whiptk
Server/src/UnitTesting
Message-ID: <20260921123949.09207157FBC@trac.osgeo.org>
Author: jng
Date: 2026-09-21 05:39:45 -0700 (Mon, 21 Sep 2026)
New Revision: 10216
Modified:
branches/4.0/MgDev/Common/Renderers/AGGRenderer.cpp
branches/4.0/MgDev/Common/Renderers/AGGRenderer.h
branches/4.0/MgDev/Common/Renderers/DWFRenderer.cpp
branches/4.0/MgDev/Common/Renderers/DWFRenderer.h
branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/CMakeLists.txt
branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/color.cpp
branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/ellipse.cpp
branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/plotinfo.cpp
branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/plotinfo.h
branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/transform.h
branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/typedefs_defines.h
branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/usrhatchpat.cpp
branches/4.0/MgDev/Server/src/UnitTesting/TestDrawingService.cpp
Log:
Fix MgDrawingService::EnumerateLayers() returning an empty list on Linux
Like our initial woes porting MapGuide to 64-bit Linux, the issue ultimately was incorrect typedefs on fundamental integral types in DWF Toolkit that caused the reading of DWF content to mis-behave due to these incorrect typedefs.
Our long-disabled test case for this API has been re-activated as proof this API is now working as advertised.
Fixes #2500
Modified: branches/4.0/MgDev/Common/Renderers/AGGRenderer.cpp
===================================================================
--- branches/4.0/MgDev/Common/Renderers/AGGRenderer.cpp 2026-09-13 09:13:38 UTC (rev 10215)
+++ branches/4.0/MgDev/Common/Renderers/AGGRenderer.cpp 2026-09-21 12:39:45 UTC (rev 10216)
@@ -3159,7 +3159,7 @@
// of the destination DWF or be much larger, we need to take that scaling
// into account when carrying over things like line weight, font height,
// etc. This helper function determines and applies that scale.
-double AGGRenderer::ScaleW2DNumber(WT_File& file, WT_Integer32 number)
+double AGGRenderer::ScaleW2DNumber(WT_File& file, int number)
{
WT_Matrix xform = file.desired_rendition().drawing_info().units().dwf_to_application_adjoint_transform();
Modified: branches/4.0/MgDev/Common/Renderers/AGGRenderer.h
===================================================================
--- branches/4.0/MgDev/Common/Renderers/AGGRenderer.h 2026-09-13 09:13:38 UTC (rev 10215)
+++ branches/4.0/MgDev/Common/Renderers/AGGRenderer.h 2026-09-21 12:39:45 UTC (rev 10216)
@@ -338,7 +338,7 @@
WT_Logical_Point* srcpts,
int numpts,
bool checkInBounds);
- /*Do not export from DLL*/ double ScaleW2DNumber(WT_File& file, long number);
+ /*Do not export from DLL*/ double ScaleW2DNumber(WT_File& file, int number);
private:
void AddW2DContent(RS_InputStream* in, CSysTransformer* xformer, const RS_String& w2dfilter);
Modified: branches/4.0/MgDev/Common/Renderers/DWFRenderer.cpp
===================================================================
--- branches/4.0/MgDev/Common/Renderers/DWFRenderer.cpp 2026-09-13 09:13:38 UTC (rev 10215)
+++ branches/4.0/MgDev/Common/Renderers/DWFRenderer.cpp 2026-09-21 12:39:45 UTC (rev 10216)
@@ -3636,7 +3636,7 @@
//scaling into account when carrying over things like line weight,
//font height, etc. this helper funtion determines and applies
//that scale
-WT_Integer32 DWFRenderer::ScaleW2DNumber(WT_File& file, WT_Integer32 number)
+int DWFRenderer::ScaleW2DNumber(WT_File& file, int number)
{
WT_Matrix xform = file.desired_rendition().drawing_info().units().dwf_to_application_adjoint_transform();
@@ -3662,7 +3662,7 @@
dDstSpace *= m_scale;
}
- return (WT_Integer32)dDstSpace;
+ return (int)dDstSpace;
}
Modified: branches/4.0/MgDev/Common/Renderers/DWFRenderer.h
===================================================================
--- branches/4.0/MgDev/Common/Renderers/DWFRenderer.h 2026-09-13 09:13:38 UTC (rev 10215)
+++ branches/4.0/MgDev/Common/Renderers/DWFRenderer.h 2026-09-21 12:39:45 UTC (rev 10216)
@@ -384,8 +384,8 @@
int numpts
);
- /*Do not export from DLL*/ long ScaleW2DNumber(WT_File& file,
- long number);
+ /*Do not export from DLL*/ int ScaleW2DNumber(WT_File& file,
+ int number);
/*Do not export from DLL*/ void UpdateSymbolTrans(WT_File& file, WT_Viewport& viewport);
Modified: branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/CMakeLists.txt
===================================================================
--- branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/CMakeLists.txt 2026-09-13 09:13:38 UTC (rev 10215)
+++ branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/CMakeLists.txt 2026-09-21 12:39:45 UTC (rev 10216)
@@ -1,6 +1,33 @@
include_directories(${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/..)
+# Sanity-check the whiptk fundamental type sizes at configure time.
+# The W2D binary parser reads and writes 32-bit fields using WT_Integer32 /
+# WT_Unsigned_Integer32. If those are not exactly 4 bytes the parser silently
+# desynchronizes (e.g. `long` is 8 bytes on 64-bit Linux), producing empty or
+# corrupted drawing results. Fail the build early rather than at runtime.
+include(CheckCXXSourceCompiles)
+
+set(CMAKE_REQUIRED_INCLUDES
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/..)
+
+check_cxx_source_compiles(
+ "#include \"whiptk/typedefs_defines.h\"
+ typedef char DWFTK_WT_INT32_MUST_BE_4_BYTES[(sizeof(WT_Integer32) == 4) ? 1 : -1];
+ typedef char DWFTK_WT_UINT32_MUST_BE_4_BYTES[(sizeof(WT_Unsigned_Integer32) == 4) ? 1 : -1];
+ typedef char DWFTK_WT_INT16_MUST_BE_2_BYTES[(sizeof(WT_Integer16) == 2) ? 1 : -1];
+ typedef char DWFTK_WT_UINT16_MUST_BE_2_BYTES[(sizeof(WT_Unsigned_Integer16) == 2) ? 1 : -1];
+ typedef char DWFTK_WT_BYTE_MUST_BE_1_BYTE[(sizeof(WT_Byte) == 1) ? 1 : -1];
+ int main() { return 0; }"
+ DWFTK_WT_TYPES_HAVE_EXPECTED_SIZES)
+
+unset(CMAKE_REQUIRED_INCLUDES)
+
+if(NOT DWFTK_WT_TYPES_HAVE_EXPECTED_SIZES)
+ message(FATAL_ERROR "DWFTK whiptk fundamental types have unexpected sizes. WT_Integer32/WT_Unsigned_Integer32 must be exactly 4 bytes; see whiptk/typedefs_defines.h")
+endif()
+
set (dwftk_SRCS
Toolkit.cpp
#dwfx
Modified: branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/color.cpp
===================================================================
--- branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/color.cpp 2026-09-13 09:13:38 UTC (rev 10215)
+++ branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/color.cpp 2026-09-21 12:39:45 UTC (rev 10216)
@@ -43,7 +43,7 @@
{
// calc heidi color
// cube index
- long lr,lg,lb;
+ WT_Integer32 lr,lg,lb;
short sr,sg,sb;
lr = ( rgba.m_rgb.r * 6 ) << 8;
lg = ( rgba.m_rgb.g * 6 ) << 8;
Modified: branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/ellipse.cpp
===================================================================
--- branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/ellipse.cpp 2026-09-13 09:13:38 UTC (rev 10215)
+++ branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/ellipse.cpp 2026-09-21 12:39:45 UTC (rev 10216)
@@ -214,8 +214,8 @@
else
{
// merge any ellipse tilt into the circle angles
- long start = ((long)m_start + (long)m_tilt) & 0x0000FFFF;
- long end = ((long)m_end + (long)m_tilt) & 0x0000FFFF;
+ WT_Integer32 start = ((WT_Integer32)m_start + (WT_Integer32)m_tilt) & 0x0000FFFF;
+ WT_Integer32 end = ((WT_Integer32)m_end + (WT_Integer32)m_tilt) & 0x0000FFFF;
// Output a circle in ASCII
if (start != end)
Modified: branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/plotinfo.cpp
===================================================================
--- branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/plotinfo.cpp 2026-09-13 09:13:38 UTC (rev 10215)
+++ branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/plotinfo.cpp 2026-09-21 12:39:45 UTC (rev 10216)
@@ -132,7 +132,7 @@
else
{
WD_CHECK( file.read_ascii(m_rotation) );
- m_rotation = ((long)((m_rotation / 90.0) + 0.5)) * 90; // Only allow 90 degree rotations in this release
+ m_rotation = ((WT_Integer32)((m_rotation / 90.0) + 0.5)) * 90; // Only allow 90 degree rotations in this release
}
}
m_stage = Getting_Units_String;
Modified: branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/plotinfo.h
===================================================================
--- branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/plotinfo.h 2026-09-13 09:13:38 UTC (rev 10215)
+++ branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/plotinfo.h 2026-09-21 12:39:45 UTC (rev 10216)
@@ -59,7 +59,7 @@
WT_Paper_Units m_units;
WT_Boolean m_show;
WT_String m_temp_string;
- long m_rotation;
+ WT_Integer32 m_rotation;
enum WT_Materialize_Stage
{ Eating_Initial_Whitespace,
@@ -117,9 +117,9 @@
/// Returns the paper width (in paper units.)
inline const double& paper_width() const { return m_width; }
/// Returns a writable accessor to the rotation angle (in degrees, one of 0, 90, 180, 270.)
- inline const long& rotation() const { return m_rotation; }
+ inline const WT_Integer32& rotation() const { return m_rotation; }
/// Returns a the pre-applied rotation angle (in degrees, one of 0, 90, 180, 270, typically portrait==0 or landscape==90.)
- inline long& rotation() { return m_rotation; }
+ inline WT_Integer32& rotation() { return m_rotation; }
/// Returns a writable accessor to the 3x3 matrix which facilitates transforming DWF coordinate space to paper coordinate space.
inline WT_Matrix2D& to_paper() { return m_dwf2paper; }
/// Returns the 3x3 matrix which facilitates transforming DWF coordinate space to paper coordinate space.
Modified: branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/transform.h
===================================================================
--- branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/transform.h 2026-09-13 09:13:38 UTC (rev 10215)
+++ branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/transform.h 2026-09-21 12:39:45 UTC (rev 10216)
@@ -32,7 +32,7 @@
WT_Logical_Point m_translate; /**< \brief Translation vector. */
double m_x_scale; /**< \brief X scale factor. */
double m_y_scale; /**< \brief Y scale factor. */
- long m_rotation; /**< \brief Rotation (in degrees, one of 0, 90, 180, 270). */
+ WT_Integer32 m_rotation; /**< \brief Rotation (in degrees, one of 0, 90, 180, 270). */
/// Constructs a WT_Transform object.
WT_Transform()
@@ -66,13 +66,13 @@
double rotation /**< Rotation (in degrees, one of 0, 90, 180, 270). */
)
{
- switch ((long)rotation)
+ switch ((WT_Integer32)rotation)
{
case 0:
case 90:
case 180:
case 270:
- m_rotation = (long)rotation;
+ m_rotation = (WT_Integer32)rotation;
break;
default:
m_rotation = 0;
@@ -81,7 +81,7 @@
}
/// Returns the rotation value (in degrees, one of 0, 90, 180, 270).
- long rotation() const
+ WT_Integer32 rotation() const
{ return m_rotation; }
};
Modified: branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/typedefs_defines.h
===================================================================
--- branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/typedefs_defines.h 2026-09-13 09:13:38 UTC (rev 10215)
+++ branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/typedefs_defines.h 2026-09-21 12:39:45 UTC (rev 10216)
@@ -29,19 +29,33 @@
/// \brief Simple boolean.
typedef char WT_Boolean;
+// The W2D binary format stores 32-bit integers as exactly 4 bytes.
+// On Windows `long` is 4 bytes, but on 64-bit Linux (LP64) `long` is
+// 8 bytes, which silently desynchronizes the W2D parser. Keep the
+// original Windows typedefs and use fixed 4-byte types elsewhere.
+#if defined(_WIN32)
/// \typedef typedef long WT_Integer32
/// \brief 32-bit signed integer.
typedef long WT_Integer32;
-/// \typedef typedef long WT_Integer16
-/// \brief 16-bit signed integer.
-typedef short WT_Integer16;
-
/// \typedef typedef unsigned long WT_Unsigned_Integer32
/// \brief 32-bit unsigned integer.
typedef unsigned long WT_Unsigned_Integer32;
+#else
+/// \typedef typedef int WT_Integer32
+/// \brief 32-bit signed integer.
+typedef int WT_Integer32;
-/// \typedef typedef unsigned long WT_Unsigned_Integer16
+/// \typedef typedef unsigned int WT_Unsigned_Integer32
+/// \brief 32-bit unsigned integer.
+typedef unsigned int WT_Unsigned_Integer32;
+#endif
+
+/// \typedef typedef short WT_Integer16
+/// \brief 16-bit signed integer.
+typedef short WT_Integer16;
+
+/// \typedef typedef unsigned short WT_Unsigned_Integer16
/// \brief 16-bit unsigned integer.
typedef unsigned short WT_Unsigned_Integer16;
Modified: branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/usrhatchpat.cpp
===================================================================
--- branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/usrhatchpat.cpp 2026-09-13 09:13:38 UTC (rev 10215)
+++ branches/4.0/MgDev/Oem/DWFTK/develop/global/src/dwf/whiptk/usrhatchpat.cpp 2026-09-21 12:39:45 UTC (rev 10216)
@@ -18,7 +18,7 @@
#include "whiptk/pch.h"
-#define DOUBLE_TO_LONG_BIT_SHIFT_16(x) (long) ((float)x * 65536)
+#define DOUBLE_TO_LONG_BIT_SHIFT_16(x) (WT_Integer32) ((float)x * 65536)
#define LONG_TO_DOUBLE_BIT_SHIFT_16(x) (double) ((double)x * 0.0000152587890625)
///////////////////////////////////////////////////////////////////////////
WT_User_Hatch_Pattern::WT_User_Hatch_Pattern(WT_User_Hatch_Pattern const & pattern)
Modified: branches/4.0/MgDev/Server/src/UnitTesting/TestDrawingService.cpp
===================================================================
--- branches/4.0/MgDev/Server/src/UnitTesting/TestDrawingService.cpp 2026-09-13 09:13:38 UTC (rev 10215)
+++ branches/4.0/MgDev/Server/src/UnitTesting/TestDrawingService.cpp 2026-09-21 12:39:45 UTC (rev 10216)
@@ -109,11 +109,7 @@
}
}
-#ifdef _WIN32
TEST_CASE("EnumerateLayers", "[DrawingService]")
-#else
-TEST_CASE("EnumerateLayers", "[Broken]")
-#endif
{
try
{
From svn_mapguide at osgeo.org Mon Sep 21 05:56:43 2026
From: svn_mapguide at osgeo.org (svn_mapguide at osgeo.org)
Date: Mon, 21 Sep 2026 05:56:43 -0700
Subject: [mapguide-commits] r10217 - in trunk/Installer: .
Custom/apache_actions FdoRegUtil Installers/MapGuide
Installers/MapGuide/Lang Libraries/CS Map Libraries/CS Map/Lang
Libraries/MapGuide Server Libraries/MapGuide Server/Lang Libraries/MapGuide
Web Extensions Libraries/MapGuide Web Extensions/Lang Support scripts
Message-ID: <20260921125643.ED782157972@trac.osgeo.org>
Author: jng
Date: 2026-09-21 05:56:43 -0700 (Mon, 21 Sep 2026)
New Revision: 10217
Added:
trunk/Installer/Libraries/CS Map/HarvestFiles.wxs
trunk/Installer/Libraries/MapGuide Server/HarvestFiles.wxs
trunk/Installer/Libraries/MapGuide Web Extensions/HarvestFiles.wxs
trunk/Installer/scripts/List-MsiFiles.ps1
Removed:
trunk/Installer/Features.xml
trunk/Installer/Paraffin.exe
trunk/Installer/Support/Paraffin/
Modified:
trunk/Installer/
trunk/Installer/Custom/apache_actions/apache_actions.vcxproj
trunk/Installer/FdoRegUtil/FdoRegUtil.vcxproj
trunk/Installer/InstallerPreReq.sln
trunk/Installer/InstallerWix.sln
trunk/Installer/Installers/MapGuide/Lang/MapGuide_en-US.wxl
trunk/Installer/Installers/MapGuide/MapGuide.wixproj
trunk/Installer/Installers/MapGuide/MapGuide.wxs
trunk/Installer/Libraries/CS Map/CS Map.wixproj
trunk/Installer/Libraries/CS Map/CSMap.wxs
trunk/Installer/Libraries/CS Map/Lang/CSMap_en-US.wxl
trunk/Installer/Libraries/MapGuide Server/FDO.wxs
trunk/Installer/Libraries/MapGuide Server/InstallService.wxs
trunk/Installer/Libraries/MapGuide Server/Lang/MapGuideServer_en-US.wxl
trunk/Installer/Libraries/MapGuide Server/MapGuide Server.wixproj
trunk/Installer/Libraries/MapGuide Server/MapGuideServer.wxs
trunk/Installer/Libraries/MapGuide Web Extensions/Apache.wxs
trunk/Installer/Libraries/MapGuide Web Extensions/IIS7.wxs
trunk/Installer/Libraries/MapGuide Web Extensions/Lang/MapGuideWebExtensions_en-US.wxl
trunk/Installer/Libraries/MapGuide Web Extensions/MapGuide Web Extensions.wixproj
trunk/Installer/Libraries/MapGuide Web Extensions/MapGuideWebExtensions.wxs
trunk/Installer/Libraries/MapGuide Web Extensions/Shortcuts.wxs
trunk/Installer/build.bat
Log:
Update Windows installer to target Wix 6.x. Remove paraffin (Wix 6.x supports native file harvesting) and remove 32-bit targets on some projects.
Index: trunk/Installer
===================================================================
--- trunk/Installer 2026-09-21 12:39:45 UTC (rev 10216)
+++ trunk/Installer 2026-09-21 12:56:43 UTC (rev 10217)
Property changes on: trunk/Installer
___________________________________________________________________
Modified: svn:ignore
## -3,3 +3,4 ##
*.ncb
*.cache
ipch
+.vs
Modified: svn:mergeinfo
## -1,6 +1,7 ##
/branches/2.4/Installer:6987-6988
/branches/3.0/Installer:8611,8688
/branches/3.1/Installer:9025,9325,9327-9328,9330,9373,9427,9429,9454
+/sandbox/jng/installer_wix6:10207-10216
/sandbox/jng/php56x_installer:8976-8978
/sandbox/jng/rfc155_installer:8873-8885
/trunk/Installer:8690-8872
\ No newline at end of property
Modified: trunk/Installer/Custom/apache_actions/apache_actions.vcxproj
===================================================================
--- trunk/Installer/Custom/apache_actions/apache_actions.vcxproj 2026-09-21 12:39:45 UTC (rev 10216)
+++ trunk/Installer/Custom/apache_actions/apache_actions.vcxproj 2026-09-21 12:56:43 UTC (rev 10217)
@@ -1,18 +1,10 @@
?
-
- Debug
- Win32
-
Debug
x64
-
- Release
- Win32
-
Release
x64
@@ -25,20 +17,11 @@
10.0
-
- DynamicLibrary
- MultiByte
- v142
-
DynamicLibrary
MultiByte
v142
-
- DynamicLibrary
- v142
-
DynamicLibrary
v142
@@ -46,18 +29,10 @@
-
-
-
-
-
-
-
-
@@ -65,13 +40,7 @@
<_ProjectFileVersion>10.0.40219.1
- .\bin$(PlatformToolsetVersion)_$(Platform)\
- .\Release$(PlatformToolsetVersion)_$(Platform)\
- false
false
- .\Debug$(PlatformToolsetVersion)_$(Platform)\
- .\Debug$(PlatformToolsetVersion)_$(Platform)\
- true
true
@@ -82,54 +51,6 @@
.\Debug$(PlatformToolsetVersion)_$(Platform)\
.\Debug$(PlatformToolsetVersion)_$(Platform)\
-
-
- NDEBUG;%(PreprocessorDefinitions)
- true
- true
- Win32
- .\../bin/apache_actions.tlb
-
-
-
-
- MaxSpeed
- OnlyExplicitInline
- WIN32;NDEBUG;_WINDOWS;APACHE_ACTIONS_EXPORTS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- MultiThreaded
- true
- Use
- stdafx.h
- .\Release$(PlatformToolsetVersion)_$(Platform)\apache_actions.pch
-
-
- .\Release$(PlatformToolsetVersion)_$(Platform)\
- .\Release$(PlatformToolsetVersion)_$(Platform)\
- Level3
- true
-
-
- NDEBUG;%(PreprocessorDefinitions)
- 0x0409
-
-
- msi.lib;%(AdditionalDependencies)
- $(OutDir)$(ProjectName).dll
- true
- .\apache_actions.def
- .\bin$(PlatformToolsetVersion)_$(Platform)\apache_actions.pdb
- false
-
-
- .\bin$(PlatformToolsetVersion)_$(Platform)\apache_actions.lib
- MachineX86
-
-
- true
- .\../bin/apache_actions.bsc
-
-
NDEBUG;%(PreprocessorDefinitions)
@@ -176,54 +97,6 @@
.\../bin/apache_actions.bsc
-
-
- _DEBUG;%(PreprocessorDefinitions)
- true
- true
- Win32
- .\Debug/apache_actions.tlb
-
-
-
-
- Disabled
- WIN32;_DEBUG;_WINDOWS;_USRDLL;APACHE_ACTIONS_EXPORTS;%(PreprocessorDefinitions)
- true
- EnableFastChecks
- MultiThreadedDebug
- Use
- stdafx.h
- .\Debug$(PlatformToolsetVersion)_$(Platform)\apache_actions.pch
- .\Debug$(PlatformToolsetVersion)_$(Platform)\
- .\Debug$(PlatformToolsetVersion)_$(Platform)\
- .\Debug$(PlatformToolsetVersion)_$(Platform)\
- Level3
- true
- EditAndContinue
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0409
-
-
- odbc32.lib;odbccp32.lib;msi.lib;%(AdditionalDependencies)
- .\Debug$(PlatformToolsetVersion)_$(Platform)\apache_actions.dll
- true
- .\apache_actions.def
- true
- .\Debug$(PlatformToolsetVersion)_$(Platform)\apache_actions.pdb
- false
-
-
- .\Debug$(PlatformToolsetVersion)_$(Platform)\apache_actions.lib
- MachineX86
-
-
- true
- .\Debug/apache_actions.bsc
-
-
_DEBUG;%(PreprocessorDefinitions)
@@ -271,17 +144,12 @@
- %(PreprocessorDefinitions)
%(PreprocessorDefinitions)
- %(PreprocessorDefinitions)
%(PreprocessorDefinitions)
- %(PreprocessorDefinitions)
%(PreprocessorDefinitions)
- %(PreprocessorDefinitions)
%(PreprocessorDefinitions)
- Create
Create
Modified: trunk/Installer/FdoRegUtil/FdoRegUtil.vcxproj
===================================================================
--- trunk/Installer/FdoRegUtil/FdoRegUtil.vcxproj 2026-09-21 12:39:45 UTC (rev 10216)
+++ trunk/Installer/FdoRegUtil/FdoRegUtil.vcxproj 2026-09-21 12:56:43 UTC (rev 10217)
@@ -1,18 +1,10 @@
?
-
- Debug
- Win32
-
Debug
x64
-
- Release
- Win32
-
Release
x64
@@ -21,21 +13,10 @@
{F671A5C4-A796-4CF4-A71F-97B0265B4FBE}
FdoRegUtil
- Win32Proj
+ ConsoleApplication
10.0
-
- Application
- Unicode
- true
- v142
-
-
- Application
- Unicode
- v142
-
Application
Unicode
@@ -50,12 +31,6 @@
-
-
-
-
-
-
@@ -65,39 +40,13 @@
<_ProjectFileVersion>10.0.40219.1
- .\Debug\
- .\Debug\
- true
.\Debug64\
.\Debug64\
true
- .\Release\
- .\Release\
- false
.\Release64\
.\Release64\
false
-
-
- Disabled
- ..\..\MgDev\Oem\Fdo\Inc;%(AdditionalIncludeDirectories)
- WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
- EnableFastChecks
- MultiThreadedDebugDLL
- Use
- Level3
- EditAndContinue
-
-
- FDO.lib;FDOCommon.lib;%(AdditionalDependencies)
- ..\..\MgDev\Oem\Fdo\Lib;%(AdditionalLibraryDirectories)
- true
- Console
- MachineX86
-
-
X64
@@ -121,28 +70,6 @@
MachineX64
-
-
- MaxSpeed
- true
- ..\..\MgDev\Oem\Fdo\Inc;%(AdditionalIncludeDirectories)
- WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- MultiThreadedDLL
- true
- Use
- Level3
- ProgramDatabase
-
-
- FDO.lib;FDOCommon.lib;%(AdditionalDependencies)
- ..\..\MgDev\Oem\Fdo\Lib;%(AdditionalLibraryDirectories)
- true
- Console
- true
- true
- MachineX86
-
-
X64
@@ -171,9 +98,7 @@
- Create
Create
- Create
Create
Deleted: trunk/Installer/Features.xml
===================================================================
--- trunk/Installer/Features.xml 2026-09-21 12:39:45 UTC (rev 10216)
+++ trunk/Installer/Features.xml 2026-09-21 12:56:43 UTC (rev 10217)
@@ -1,13 +0,0 @@
-?
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
Modified: trunk/Installer/InstallerPreReq.sln
===================================================================
--- trunk/Installer/InstallerPreReq.sln 2026-09-21 12:39:45 UTC (rev 10216)
+++ trunk/Installer/InstallerPreReq.sln 2026-09-21 12:56:43 UTC (rev 10217)
@@ -8,26 +8,16 @@
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
- Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {03FD713E-15EB-453E-AFDF-21F8DB45C11E}.Debug|Win32.ActiveCfg = Debug|Win32
- {03FD713E-15EB-453E-AFDF-21F8DB45C11E}.Debug|Win32.Build.0 = Debug|Win32
- {03FD713E-15EB-453E-AFDF-21F8DB45C11E}.Debug|x64.ActiveCfg = Debug|Win32
- {03FD713E-15EB-453E-AFDF-21F8DB45C11E}.Debug|x64.Build.0 = Debug|Win32
- {03FD713E-15EB-453E-AFDF-21F8DB45C11E}.Release|Win32.ActiveCfg = Release|Win32
- {03FD713E-15EB-453E-AFDF-21F8DB45C11E}.Release|Win32.Build.0 = Release|Win32
+ {03FD713E-15EB-453E-AFDF-21F8DB45C11E}.Debug|x64.ActiveCfg = Debug|x64
+ {03FD713E-15EB-453E-AFDF-21F8DB45C11E}.Debug|x64.Build.0 = Debug|x64
{03FD713E-15EB-453E-AFDF-21F8DB45C11E}.Release|x64.ActiveCfg = Release|x64
{03FD713E-15EB-453E-AFDF-21F8DB45C11E}.Release|x64.Build.0 = Release|x64
- {F671A5C4-A796-4CF4-A71F-97B0265B4FBE}.Debug|Win32.ActiveCfg = Debug|Win32
- {F671A5C4-A796-4CF4-A71F-97B0265B4FBE}.Debug|Win32.Build.0 = Debug|Win32
{F671A5C4-A796-4CF4-A71F-97B0265B4FBE}.Debug|x64.ActiveCfg = Debug|x64
{F671A5C4-A796-4CF4-A71F-97B0265B4FBE}.Debug|x64.Build.0 = Debug|x64
- {F671A5C4-A796-4CF4-A71F-97B0265B4FBE}.Release|Win32.ActiveCfg = Release|Win32
- {F671A5C4-A796-4CF4-A71F-97B0265B4FBE}.Release|Win32.Build.0 = Release|Win32
{F671A5C4-A796-4CF4-A71F-97B0265B4FBE}.Release|x64.ActiveCfg = Release|x64
{F671A5C4-A796-4CF4-A71F-97B0265B4FBE}.Release|x64.Build.0 = Release|x64
EndGlobalSection
Modified: trunk/Installer/InstallerWix.sln
===================================================================
--- trunk/Installer/InstallerWix.sln 2026-09-21 12:39:45 UTC (rev 10216)
+++ trunk/Installer/InstallerWix.sln 2026-09-21 12:56:43 UTC (rev 10217)
@@ -11,39 +11,25 @@
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
- Debug|x86 = Debug|x86
Release|x64 = Release|x64
- Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {01313DB9-2AAF-4791-9B81-69BCE3194531}.Debug|x64.ActiveCfg = Debug|x86
- {01313DB9-2AAF-4791-9B81-69BCE3194531}.Debug|x86.ActiveCfg = Debug|x86
- {01313DB9-2AAF-4791-9B81-69BCE3194531}.Debug|x86.Build.0 = Debug|x86
- {01313DB9-2AAF-4791-9B81-69BCE3194531}.Release|x64.ActiveCfg = Release|x86
- {01313DB9-2AAF-4791-9B81-69BCE3194531}.Release|x64.Build.0 = Release|x86
- {01313DB9-2AAF-4791-9B81-69BCE3194531}.Release|x86.ActiveCfg = Release|x86
- {01313DB9-2AAF-4791-9B81-69BCE3194531}.Release|x86.Build.0 = Release|x86
- {715E2D88-E822-4A9A-A5A2-DBB71CD9B320}.Debug|x64.ActiveCfg = Debug|x86
- {715E2D88-E822-4A9A-A5A2-DBB71CD9B320}.Debug|x86.ActiveCfg = Debug|x86
- {715E2D88-E822-4A9A-A5A2-DBB71CD9B320}.Debug|x86.Build.0 = Debug|x86
- {715E2D88-E822-4A9A-A5A2-DBB71CD9B320}.Release|x64.ActiveCfg = Release|x86
- {715E2D88-E822-4A9A-A5A2-DBB71CD9B320}.Release|x64.Build.0 = Release|x86
- {715E2D88-E822-4A9A-A5A2-DBB71CD9B320}.Release|x86.ActiveCfg = Release|x86
- {715E2D88-E822-4A9A-A5A2-DBB71CD9B320}.Release|x86.Build.0 = Release|x86
- {D41D53C4-433E-47B5-B663-E79B5569EE22}.Debug|x64.ActiveCfg = Debug|x86
- {D41D53C4-433E-47B5-B663-E79B5569EE22}.Debug|x86.ActiveCfg = Debug|x86
- {D41D53C4-433E-47B5-B663-E79B5569EE22}.Debug|x86.Build.0 = Debug|x86
- {D41D53C4-433E-47B5-B663-E79B5569EE22}.Release|x64.ActiveCfg = Release|x86
- {D41D53C4-433E-47B5-B663-E79B5569EE22}.Release|x64.Build.0 = Release|x86
- {D41D53C4-433E-47B5-B663-E79B5569EE22}.Release|x86.ActiveCfg = Release|x86
- {D41D53C4-433E-47B5-B663-E79B5569EE22}.Release|x86.Build.0 = Release|x86
- {12C62F60-6F52-4112-84AB-0FA8ED44EE77}.Debug|x64.ActiveCfg = Debug|x86
- {12C62F60-6F52-4112-84AB-0FA8ED44EE77}.Debug|x86.ActiveCfg = Debug|x86
- {12C62F60-6F52-4112-84AB-0FA8ED44EE77}.Debug|x86.Build.0 = Debug|x86
- {12C62F60-6F52-4112-84AB-0FA8ED44EE77}.Release|x64.ActiveCfg = Release|x86
- {12C62F60-6F52-4112-84AB-0FA8ED44EE77}.Release|x64.Build.0 = Release|x86
- {12C62F60-6F52-4112-84AB-0FA8ED44EE77}.Release|x86.ActiveCfg = Release|x86
- {12C62F60-6F52-4112-84AB-0FA8ED44EE77}.Release|x86.Build.0 = Release|x86
+ {01313DB9-2AAF-4791-9B81-69BCE3194531}.Debug|x64.ActiveCfg = Debug|x64
+ {01313DB9-2AAF-4791-9B81-69BCE3194531}.Debug|x64.Build.0 = Debug|x64
+ {01313DB9-2AAF-4791-9B81-69BCE3194531}.Release|x64.ActiveCfg = Release|x64
+ {01313DB9-2AAF-4791-9B81-69BCE3194531}.Release|x64.Build.0 = Release|x64
+ {715E2D88-E822-4A9A-A5A2-DBB71CD9B320}.Debug|x64.ActiveCfg = Debug|x64
+ {715E2D88-E822-4A9A-A5A2-DBB71CD9B320}.Debug|x64.Build.0 = Debug|x64
+ {715E2D88-E822-4A9A-A5A2-DBB71CD9B320}.Release|x64.ActiveCfg = Release|x64
+ {715E2D88-E822-4A9A-A5A2-DBB71CD9B320}.Release|x64.Build.0 = Release|x64
+ {D41D53C4-433E-47B5-B663-E79B5569EE22}.Debug|x64.ActiveCfg = Debug|x64
+ {D41D53C4-433E-47B5-B663-E79B5569EE22}.Debug|x64.Build.0 = Debug|x64
+ {D41D53C4-433E-47B5-B663-E79B5569EE22}.Release|x64.ActiveCfg = Release|x64
+ {D41D53C4-433E-47B5-B663-E79B5569EE22}.Release|x64.Build.0 = Release|x64
+ {12C62F60-6F52-4112-84AB-0FA8ED44EE77}.Debug|x64.ActiveCfg = Debug|x64
+ {12C62F60-6F52-4112-84AB-0FA8ED44EE77}.Debug|x64.Build.0 = Debug|x64
+ {12C62F60-6F52-4112-84AB-0FA8ED44EE77}.Release|x64.ActiveCfg = Release|x64
+ {12C62F60-6F52-4112-84AB-0FA8ED44EE77}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Modified: trunk/Installer/Installers/MapGuide/Lang/MapGuide_en-US.wxl
===================================================================
--- trunk/Installer/Installers/MapGuide/Lang/MapGuide_en-US.wxl 2026-09-21 12:39:45 UTC (rev 10216)
+++ trunk/Installer/Installers/MapGuide/Lang/MapGuide_en-US.wxl 2026-09-21 12:56:43 UTC (rev 10217)
@@ -1,149 +1,148 @@
-
-
+?
- 1033
- MapGuide Open Source 2.4
- Open Source Geospatial Foundation
+
+
+
- [ProductName] Setup
+
- MapGuide
- MapGuide Install Location
+
+
- Next
- Back
- Cancel
+
+
+
- Disabled Features
- Some features will not be available
- IIS is not installed, so it will not be available as an installation choice.
- The .NET Framework 4.0 was not found, so the .NET Web Extensions for IIS will not be available
- If you want to use these features, click on cancel and correct the problem before proceeding with installation
+
+
+
+
+
- FastCGI is required
- FastCGI needs to be installed
- MapGuide IIS Configuration requires FastCGI to be installed on this system
- You can follow the link below for more information on how to enable FastCGI
- http://www.iis.net/fastcgi/configuration
- You can ignore this message if FastCGI for IIS is already enabled. Otherwise you must cancel this installation and enable FastCGI first
+
+
+
+
+
+
- Server Port Configuration
- Set up the listening ports for MapGuide Server
- MapGuide Server will be installed using the following port numbers. The Server and Web Tier configuration files will be set to use the specified port numbers below.
- Admin Connection Port
- Client Connection Port
- Site Connection Port
+
+
+
+
+
+
- Select configuration type
- Select the type of web server configuration you want
- Bundled Configuration
- IIS Configuration
- Manual Configuration
- Install and configure Apache, PHP, and Tomcat.
- Install PHP and auto-configure IIS.
- Manually install and configure MapGuide.
+
+
+
+
+
+
+
+
- Bundled Configuration Settings
- Set up the development environment
- Web Server Port Number
- Development Environment
- Virtual Directory Name
+
+
+
+
+
- IIS Configuration Settings
- Set up the development environment
- Development Environment
- Virtual Directory Name
+
+
+
+
- IIS 6.0 Configuration
- Configure IIS 6.0 Settings
- Install Web Extensions to the following website
- Create an application pool
- An application pool allows MapGuide applications to be isolated from other applications running on the web server
+
+
+
+
+
- IIS not found
- IIS not found
- IIS could not be found on your system. Please go back and choose a different web configuration or install IIS.
+
+
+
- Server IP address
- Enter the MapGuide Server site server IP address.
- Enter the MapGuide Server site server IP address:
- The site server IP address defaults to localhost (127.0.0.1)
+
+
+
+
- Setting values for httpd.conf
- Setting values for php.ini
- Installing Apache Service
- Installing Tomcat Service
- Installing MapGuide Service
- Removing MapGuide Service
- Removing Apache Service
- Removing Tomcat Service
+
+
+
+
+
+
+
+
- Unlocking site handler config
- Creating IIS application pool
- Creating FastCgi application mapping
- Setting Application Pool properties
- Creating mapguide virtual dir
- Applying compatibility settings for selection XML to work
- Creating PHP handler mapping
- Creating mapagent virtual dir
- Setting access policy for mapagent virtual dir
- Creating handler mapping for mapagent virtual dir
- Enabling mapagent ISAPI extension
- Assigning application pool to mapguide virtual dir
- Assigning application pool to mapagent virtual dir
- Unlocking http errors config
- Unlocking http errors config for web site
- Unlocking http errors config for mapguide virtual dir
- Resetting 401 handler
- Adding JSON mime type
- Creating mapviewerajax virtual dir to point to mapviewerphp
- Setting default document for mapviewerajax virtual dir
- Setting application pool for mapviewerajax
- Creating mapviewerajax virtual dir to point to mapviewernet
- Setting default document for mapviewerajax virtual dir
- Setting application pool for mapviewerajax
- Creating mapviewernet virtual dir
- Setting default document for mapviewernet virtual dir
- Setting application pool for mapviewernet virtual dir
- Creating dotnetviewersample virtual dir
- Setting default document for dotnetviewersample virtual dir
- Setting application pool for dotnetviewersample virtual dir
- Creating dotnetsamples virtual dir
- Setting default document for dotnetsamples virtual dir
- Setting application pool for dotnetsamples virtual dir
- Clearing mapagent restrictions
- Removing mapviewerajax virtual dir
- Removing mapagent virtual dir
- Removing mapguide virtual dir
- Deleting application pool
- Registering ASP.net
- Registering FDO Provider: OSGeo.ArcSDE
- Registering FDO Provider: OSGeo.SDF
- Registering FDO Provider: OSGeo.SHP
- Registering FDO Provider: OSGeo.WFS
- Registering FDO Provider: OSGeo.WMS
- Registering FDO Provider: OSGeo.ODBC
- Registering FDO Provider: OSGeo.MySQL
- Registering FDO Provider: OSGeo.Gdal
- Registering FDO Provider: OSGeo.OGR
- Registering FDO Provider: OSGeo.PostgreSQL
- Registering FDO Provider: King.Oracle
- Registering FDO Provider: OSGeo.SQLServerSpatial
- Registering FDO Provider: OSGeo.SQLite
- Un-registering FDO Provider: OSGeo.ArcSDE
- Un-registering FDO Provider: OSGeo.SDF
- Un-registering FDO Provider: OSGeo.SHP
- Un-registering FDO Provider: OSGeo.WFS
- Un-registering FDO Provider: OSGeo.WMS
- Un-registering FDO Provider: OSGeo.ODBC
- Un-registering FDO Provider: OSGeo.MySQL
- Un-registering FDO Provider: OSGeo.Gdal
- Un-registering FDO Provider: OSGeo.OGR
- Un-registering FDO Provider: OSGeo.PostgreSQL
- Un-registering FDO Provider: King.Oracle
- Un-registering FDO Provider: OSGeo.SQLServerSpatial
- Un-registering FDO Provider: OSGeo.SQLite
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Modified: trunk/Installer/Installers/MapGuide/MapGuide.wixproj
===================================================================
--- trunk/Installer/Installers/MapGuide/MapGuide.wixproj 2026-09-21 12:39:45 UTC (rev 10216)
+++ trunk/Installer/Installers/MapGuide/MapGuide.wixproj 2026-09-21 12:56:43 UTC (rev 10217)
@@ -1,48 +1,30 @@
?
-
+
- Debug
- x86
- 3.0
- {12c62f60-6f52-4112-84ab-0fa8ed44ee77}
- 2.0
- MapGuideOpenSource
+ Debug
+ x64
+ false
+ MapGuideOpenSource
Package
- $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets
MapGuide
- en-US
- MapGuide Open Source 2.1.0 Ux
- 2.1.0.0
- Software\OSGeo\MapGuide
- $(MSBuildProjectDirectory)\..\..\..\MgDev\$(Configuration)
+ en-US
+ MapGuide Open Source 2.1.0 Ux
+ 2.1.0.0
+ Software\OSGeo\MapGuide
+ $(MSBuildProjectDirectory)\..\..\..\MgDev\$(Configuration)
+ $([System.String]::Copy('$(MgSource)').Replace('"', ''))
-
- bin\$(Configuration)\
- obj\$(Configuration)\
- Debug;MgTitle=$(MgTitle);MgVersion=$(MgVersion);MgRegKey=$(MgRegKey);MgSource=$(MgSource);MgPlatform=$(MgPlatform);Have_ArcSde=$(Have_ArcSde)
+
+ Debug;MgTitle=$(MgTitle);MgVersion=$(MgVersion);MgRegKey=$(MgRegKey);MgSource=$(MgSourceSanitized);MgPlatform=$(Platform);Have_ArcSde=$(Have_ArcSde)
$(MgCulture)
ICE47
-
-
- ..\..\Output\
- obj\$(Configuration)\
- False
- True
- MgTitle=$(MgTitle);MgVersion=$(MgVersion);MgRegKey=$(MgRegKey);MgSource=$(MgSource);MgPlatform=$(MgPlatform);Have_ArcSde=$(Have_ArcSde)
- $(MgCulture)
- ICE47
-
-
- Debug;MgTitle=$(MgTitle);MgVersion=$(MgVersion);MgRegKey=$(MgRegKey);MgSource=$(MgSource);MgPlatform=$(MgPlatform);Have_ArcSde=$(Have_ArcSde)
- $(MgCulture)
- ICE47
bin\$(Platform)\$(Configuration)\
obj\$(Platform)\$(Configuration)\
-
+
False
True
- MgTitle=$(MgTitle);MgVersion=$(MgVersion);MgRegKey=$(MgRegKey);MgSource=$(MgSource);MgPlatform=$(MgPlatform);Have_ArcSde=$(Have_ArcSde)
+ MgTitle=$(MgTitle);MgVersion=$(MgVersion);MgRegKey=$(MgRegKey);MgSource=$(MgSourceSanitized);MgPlatform=$(Platform);Have_ArcSde=$(Have_ArcSde)
$(MgCulture)
ICE47
bin\$(Platform)\$(Configuration)\
@@ -57,10 +39,6 @@
-
-
-
-
CS Map
{01313db9-2aaf-4791-9b81-69bce3194531}
@@ -81,30 +59,9 @@
-
- $(WixExtDir)\WixUtilExtension.dll
- WixUtilExtension
-
-
- $(WixExtDir)\WixUIExtension.dll
- WixUIExtension
-
-
- $(WixExtDir)\WixNetFxExtension.dll
- WixNetFxExtension
-
-
- $(WixExtDir)\WixIIsExtension.dll
- WixIIsExtension
-
+
+
+
+
-
-
\ No newline at end of file
Modified: trunk/Installer/Installers/MapGuide/MapGuide.wxs
===================================================================
--- trunk/Installer/Installers/MapGuide/MapGuide.wxs 2026-09-21 12:39:45 UTC (rev 10216)
+++ trunk/Installer/Installers/MapGuide/MapGuide.wxs 2026-09-21 12:56:43 UTC (rev 10217)
@@ -1,48 +1,19 @@
-
-
+
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
-
+
@@ -50,13 +21,7 @@
-
+
@@ -77,22 +42,10 @@
-->
-
+
-
+
@@ -100,50 +53,22 @@
- 1
-
-
+
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
+
@@ -197,12 +122,8 @@
-
- NOT IISVERSIONMAJOR="#0"
-
-
- NETFRAMEWORK40FULL
-
+
+
@@ -444,38 +365,38 @@
- 1
- "1"]]>
+
+
- 1
+
- 1
- LicenseAccepted="1"
- LicenseAccepted="1" AND (IISVERSIONMAJOR="#0" OR (NOT NETFRAMEWORK40FULL))
+
+
+
- 1
- 1
- 1
+
+
+
- NOT IISVERSIONMAJOR="#0"
- IISVERSIONMAJOR="#0"
- 1
- 1
+
+
+
+
- 1
+
- 1
+
- 1
- 1
- 1
+
+
+
- (MGWEB_CONFIG="APACHE") OR (MGWEB_CONFIG="IIS" AND NOT NETFRAMEWORK40FULL)
- MGWEB_CONFIG="APACHE"
- MGWEB_CONFIG="IIS"
+
+
+
- MGWEB_CONFIG="IIS"
- MGWEB_CONFIG="IIS"
- MGWEB_CONFIG="IIS"
- MGWEB_CONFIG="IIS"
- MGWEB_CONFIG="IIS"
- MGWEB_CONFIG="IIS"
- MGWEB_CONFIG="IIS"
- MGWEB_CONFIG="MANUAL"
- 1
- 1
+
+
+
+
+
+
+
+
+
+
- MGWEB_CONFIG="IIS" AND NETFRAMEWORK40FULL
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND (NOT NETFRAMEWORK40FULL)
- 1
- 1
+
+
+
+
- 1
+
- 1
+
- 1
- 1
- 1
- 1
+
+
+
+
- MGWEB_CONFIG="APACHE"
- MGWEB_CONFIG="APACHE"
- MGWEB_CONFIG="APACHE"
- MGWEB_CONFIG="APACHE"
- MGWEB_CONFIG="MANUAL"
- 1
- 1
+
+
+
+
+
+
+
- 1
+
- APACHE_API_TYPE="JAVA"
- APACHE_API_TYPE="JAVA"
- APACHE_API_TYPE="JAVA"
- APACHE_API_TYPE="JAVA"
- APACHE_API_TYPE="JAVA"
- APACHE_API_TYPE="JAVA"
- APACHE_API_TYPE="JAVA"
- APACHE_API_TYPE="JAVA"
+
+
+
+
+
+
+
+
- APACHE_API_TYPE="PHP"
- APACHE_API_TYPE="PHP"
- APACHE_API_TYPE="PHP"
- APACHE_API_TYPE="PHP"
- APACHE_API_TYPE="PHP"
- APACHE_API_TYPE="PHP"
- APACHE_API_TYPE="PHP"
- APACHE_API_TYPE="PHP"
+
+
+
+
+
+
+
+
- IISVERSIONMAJOR="#0"
- IISVERSIONMAJOR="#0"
- NOT IISVERSIONMAJOR="#0"
- NOT IISVERSIONMAJOR="#0"
- 1
+
+
+
+
+
- (NOT IISVERSIONMAJOR="#0")
+
- IIS_API_TYPE="PHP"
- IIS_API_TYPE="PHP"
- IIS_API_TYPE="PHP"
- IIS_API_TYPE="PHP"
+
+
+
+
- IIS_API_TYPE="DOTNET"
- IIS_API_TYPE="DOTNET"
- IIS_API_TYPE="DOTNET"
- IIS_API_TYPE="DOTNET"
+
+
+
+
- 1
- 1
- 1
+
+
+
- 1
- NETFRAMEWORK40FULL
- NOT NETFRAMEWORK40FULL
- NOT NETFRAMEWORK40FULL
- 1
+
+
+
+
+
- 1
- (NOT IISVERSIONMAJOR="#0") AND MGWEB_CONFIG="IIS"
- MGWEB_CONFIG="APACHE"
- (NOT IISVERSIONMAJOR="#0") AND ( (IISVERSIONMAJOR="#5" AND (NOT NETFRAMEWORK40FULL)) OR (MGWEB_CONFIG="MANUAL" ))
- (NOT IISVERSIONMAJOR="#0") AND ( (IISVERSIONMAJOR="#5" AND (NOT NETFRAMEWORK40FULL) AND MGWEB_CONFIG="IIS" ) OR (MGWEB_CONFIG="MANUAL" ))
- IISVERSIONMAJOR="#0"
- IISVERSIONMAJOR="#0" AND MGWEB_CONFIG="MANUAL"
- 1
+
+
+
+
+
+
+
+
- 1
- 1
- 1
- "1"]]>
-
- 1
- 1
+
+
+
+
+
+
+
- Installed
- NOT Installed
- 1
+
+
+
- NOT Installed OR WixUI_InstallMode = "Change"
- Installed
+
+
- 1
+
- 1
- 1
- 1
- 1
+
+
+
+
- 1
+
- !(loc.UpdateApacheConfig)
- !(loc.UpdatePhpIni)
- !(loc.InstallApacheServiceCA)
- !(loc.InstallTomcatServiceCA)
- !(loc.MgServerInstallCA)
- !(loc.MgServerUninstallCA)
- !(loc.RemoveApacheServiceCA)
- !(loc.RemoveTomcatServiceCA)
- !(loc.MapGuideIIS7_I_UnlockSiteHandlers)
- !(loc.MapGuideIIS7_I_CreateMapGuideApp)
- !(loc.MapGuideIIS7_I_SelectXmlCompat)
- !(loc.MapGuideIIS7_I_CreatePhpScriptMapping)
- !(loc.MapGuideIIS7_I_CreateMapAgentApp)
- !(loc.MapGuideIIS7_I_SetMapAgentHandlerAccess)
- !(loc.MapGuideIIS7_I_CreateMapAgentScriptHandling)
- !(loc.MapGuideIIS7_I_EnableMapAgentExtension)
- !(loc.MapGuideIIS7_I_AssignMapGuideAppPool)
- !(loc.MapGuideIIS7_I_AssignMapAgentAppPool)
- !(loc.MapGuideIIS7_I_UnlockHttpErrorsMain)
- !(loc.MapGuideIIS7_I_UnlockHttpErrorsWebSite)
- !(loc.MapGuideIIS7_I_UnlockHttpErrorsMapGuide)
- !(loc.MapGuideIIS7_I_Reset401Handler)
- !(loc.MapGuideIIS7_I_AddJsonMime)
- !(loc.MapGuideIIS7_I_CreateViewerPhp)
- !(loc.MapGuideIIS7_I_SetViewerDocPhp)
- !(loc.MapGuideIIS7_I_AssignViewerAppPoolPhp)
- !(loc.MapGuideIIS7_I_CreateViewerNet)
- !(loc.MapGuideIIS7_I_SetViewerDocNet)
- !(loc.MapGuideIIS7_I_AssignViewerAppPoolNet)
- !(loc.MapGuideIIS7_I_CreateMapViewerNet)
- !(loc.MapGuideIIS7_I_SetMapViewerDocNet)
- !(loc.MapGuideIIS7_I_AssignMapViewerAppPoolNet)
- !(loc.MapGuideIIS7_I_CreateViewerSampleNet)
- !(loc.MapGuideIIS7_I_SetViewerDocViewerSampleNet)
- !(loc.MapGuideIIS7_I_AssignViewerAppPoolViewerSampleNet)
- !(loc.MapGuideIIS7_I_CreateViewerDevGuideSamplesNet)
- !(loc.MapGuideIIS7_I_SetViewerDocDevGuideSamplesNet)
- !(loc.MapGuideIIS7_I_AssignViewerAppPoolDevGuideSamplesNet)
- !(loc.MapGuideIIS7_U_ClearMapAgentRestriction)
- !(loc.MapGuideIIS7_U_RemoveViewer)
- !(loc.MapGuideIIS7_U_RemoveMapAgent)
- !(loc.MapGuideIIS7_U_RemoveMapGuide)
- !(loc.MapGuideIIS7_U_DeleteAppPool)
- !(loc.AspNetRegIIS)
- !(loc.FdoRegArcSde)
- !(loc.FdoRegSdf)
- !(loc.FdoRegShp)
- !(loc.FdoRegWfs)
- !(loc.FdoRegWms)
- !(loc.FdoRegOdbc)
- !(loc.FdoRegMySql)
- !(loc.FdoRegGdal)
- !(loc.FdoRegOgr)
- !(loc.FdoRegPostgreSql)
- !(loc.FdoRegOracle)
- !(loc.FdoRegSqlServer)
- !(loc.FdoRegSlt)
- !(loc.FdoUnRegArcSde)
- !(loc.FdoUnRegSdf)
- !(loc.FdoUnRegShp)
- !(loc.FdoUnRegWfs)
- !(loc.FdoUnRegWms)
- !(loc.FdoUnRegOdbc)
- !(loc.FdoUnRegMySql)
- !(loc.FdoUnRegGdal)
- !(loc.FdoUnRegOgr)
- !(loc.FdoUnRegPostgreSql)
- !(loc.FdoUnRegOracle)
- !(loc.FdoUnRegSqlServer)
- !(loc.FdoUnRegSlt)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -707,210 +628,198 @@
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
+
+
+
+
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
-
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
-
+
+
+
+
+
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="PHP" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="PHP" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="PHP" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
+
+
+
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="DOTNET" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="DOTNET" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="DOTNET" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
+
+
+
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="DOTNET" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="DOTNET" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="DOTNET" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
+
+
+
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="DOTNET" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2 AND &WebExtDotNetViewerSampleFeature>2
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="DOTNET" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2 AND &WebExtDotNetViewerSampleFeature>2
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="DOTNET" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2 AND &WebExtDotNetViewerSampleFeature>2
+
+
+
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="DOTNET" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2 AND &WebExtDotNetDevGuideSamplesFeature>2
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="DOTNET" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2 AND &WebExtDotNetDevGuideSamplesFeature>2
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="DOTNET" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2 AND &WebExtDotNetDevGuideSamplesFeature>2
+
+
+
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
+
+
+
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
-
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
-
+
+
+
+
+
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="PHP" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="PHP" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="PHP" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
+
+
+
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="DOTNET" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="DOTNET" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="DOTNET" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2
+
+
+
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="DOTNET" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2 AND &WebExtMapViewerASPXFeature>2
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="DOTNET" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2 AND &WebExtMapViewerASPXFeature>2
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="DOTNET" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2 AND &WebExtMapViewerASPXFeature>2
+
+
+
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="DOTNET" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2 AND &WebExtDotNetViewerSampleFeature>2
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="DOTNET" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2 AND &WebExtDotNetViewerSampleFeature>2
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="DOTNET" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2 AND &WebExtDotNetViewerSampleFeature>2
+
+
+
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="DOTNET" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2 AND &WebExtDotNetDevGuideSamplesFeature>2
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="DOTNET" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2 AND &WebExtDotNetDevGuideSamplesFeature>2
- MGWEB_CONFIG="IIS" AND IIS_API_TYPE="DOTNET" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature>2 AND &WebExtDotNetDevGuideSamplesFeature>2
+
+
+
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature=2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature=2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature=2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature=2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature=2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature=2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature=2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature=2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature=2
+
+
+
+
+
+
+
+
+
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature=2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature=2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature=2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature=2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature=2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature=2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature=2
- MGWEB_CONFIG="IIS" AND (NOT IISVERSIONMAJOR="#0") AND &WebExtensionsFeature=2
+
+
+
+
+
+
+
+
- &FdoArcSdeProviderFeature>2
- &FdoSdfProviderFeature>2
- &FdoShpProviderFeature>2
- &FdoWfsProviderFeature>2
- &FdoWmsProviderFeature>2
- &FdoOdbcProviderFeature>2
- &FdoMySqlProviderFeature>2
- &FdoGdalProviderFeature>2
- &FdoOgrProviderFeature>2
- &FdoPostgreSqlProviderFeature>2
- &FdoKingOracleProviderFeature>2
- &FdoSqlServerSpatialProviderFeature>2
- &FdoSltProviderFeature>2
+
+
+
+
+
+
+
+
+
+
+
+
+
- &FdoArcSdeProviderFeature>2
- &FdoSdfProviderFeature>2
- &FdoShpProviderFeature>2
- &FdoWfsProviderFeature>2
- &FdoWmsProviderFeature>2
- &FdoOdbcProviderFeature>2
- &FdoMySqlProviderFeature>2
- &FdoGdalProviderFeature>2
- &FdoOgrProviderFeature>2
- &FdoPostgreSqlProviderFeature>2
- &FdoKingOracleProviderFeature>2
- &FdoSqlServerSpatialProviderFeature>2
- &FdoSltProviderFeature>2
+
+
+
+
+
+
+
+
+
+
+
+
+
- &FdoArcSdeProviderFeature=2
- &FdoSdfProviderFeature=2
- &FdoShpProviderFeature=2
- &FdoWfsProviderFeature=2
- &FdoWmsProviderFeature=2
- &FdoOdbcProviderFeature=2
- &FdoMySqlProviderFeature=2
- &FdoGdalProviderFeature=2
- &FdoOgrProviderFeature=2
- &FdoPostgreSqlProviderFeature=2
- &FdoKingOracleProviderFeature=2
- &FdoSqlServerSpatialProviderFeature=2
- &FdoSltProviderFeature=2
+
+
+
+
+
+
+
+
+
+
+
+
+
- &FdoArcSdeProviderFeature=2
- &FdoSdfProviderFeature=2
- &FdoShpProviderFeature=2
- &FdoWfsProviderFeature=2
- &FdoWmsProviderFeature=2
- &FdoOdbcProviderFeature=2
- &FdoMySqlProviderFeature=2
- &FdoGdalProviderFeature=2
- &FdoOgrProviderFeature=2
- &FdoPostgreSqlProviderFeature=2
- &FdoKingOracleProviderFeature=2
- &FdoSqlServerSpatialProviderFeature=2
- &FdoSltProviderFeature=2
+
+
+
+
+
+
+
+
+
+
+
+
+
- &WebExtPhpFeature>2 AND &WebExtApacheFeature>2
- &WebExtPhpFeature>2 AND &WebExtApacheFeature>2
- &WebExtPhpFeature>2
- &WebExtPhpFeature>2
- MGWEB_CONFIG="APACHE" AND &WebExtApacheFeature>2
- MGWEB_CONFIG="APACHE" AND &WebExtApacheFeature>2
+
+
+
+
+
+
- &ServerFeature>2
- &ServerFeature=2
- MGWEB_CONFIG="APACHE" AND &WebExtApacheFeature=2
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Modified: trunk/Installer/Libraries/CS Map/CS Map.wixproj
===================================================================
--- trunk/Installer/Libraries/CS Map/CS Map.wixproj 2026-09-21 12:39:45 UTC (rev 10216)
+++ trunk/Installer/Libraries/CS Map/CS Map.wixproj 2026-09-21 12:56:43 UTC (rev 10217)
@@ -1,55 +1,28 @@
?
-
+
- Debug
- x86
- 3.0
- {01313db9-2aaf-4791-9b81-69bce3194531}
- 2.0
+ Debug
+ x64
+ false
CS Map
Library
- $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets
- SOFTWARE\OSGeo\MapGuide
- $(MSBuildProjectDirectory)\..\..\..\MgDev\$(Configuration)
+ SOFTWARE\OSGeo\MapGuide
+ $(MSBuildProjectDirectory)\..\..\..\MgDev\$(Configuration)
+ $([System.String]::Copy('$(MgSource)').Replace('"', ''))
-
- bin\$(Configuration)\
- obj\$(Configuration)\
- Debug;MgRegKey=$(MgRegKey);MgSource=$(MgSource);MgPlatform=$(MgPlatform)
-
-
- bin\$(Configuration)\
- obj\$(Configuration)\
- MgRegKey=$(MgRegKey);MgSource=$(MgSource);MgPlatform=$(MgPlatform)
-
-
- Debug;MgRegKey=$(MgRegKey);MgSource=$(MgSource);MgPlatform=$(MgPlatform)
+
+ Debug;MgRegKey=$(MgRegKey);MgSource=$(MgSourceSanitized);MgPlatform=$(Platform)
bin\$(Platform)\$(Configuration)\
obj\$(Platform)\$(Configuration)\
-
- MgRegKey=$(MgRegKey);MgSource=$(MgSource);MgPlatform=$(MgPlatform)
+
+ MgRegKey=$(MgRegKey);MgSource=$(MgSourceSanitized);MgPlatform=$(Platform)
bin\$(Platform)\$(Configuration)\
obj\$(Platform)\$(Configuration)\
-
+
-
-
-
-
-
-
-
-
\ No newline at end of file
Modified: trunk/Installer/Libraries/CS Map/CSMap.wxs
===================================================================
--- trunk/Installer/Libraries/CS Map/CSMap.wxs 2026-09-21 12:39:45 UTC (rev 10216)
+++ trunk/Installer/Libraries/CS Map/CSMap.wxs 2026-09-21 12:56:43 UTC (rev 10217)
@@ -1,37 +1,25 @@
-
-
+
-
+
-
-
+
+
-
+
-
+
+
-
-
+
+
-
-
-
+
+
+
Copied: trunk/Installer/Libraries/CS Map/HarvestFiles.wxs (from rev 10216, sandbox/jng/installer_wix6/Libraries/CS Map/HarvestFiles.wxs)
===================================================================
--- trunk/Installer/Libraries/CS Map/HarvestFiles.wxs (rev 0)
+++ trunk/Installer/Libraries/CS Map/HarvestFiles.wxs 2026-09-21 12:56:43 UTC (rev 10217)
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
Modified: trunk/Installer/Libraries/CS Map/Lang/CSMap_en-US.wxl
===================================================================
--- trunk/Installer/Libraries/CS Map/Lang/CSMap_en-US.wxl 2026-09-21 12:39:45 UTC (rev 10216)
+++ trunk/Installer/Libraries/CS Map/Lang/CSMap_en-US.wxl 2026-09-21 12:56:43 UTC (rev 10217)
@@ -1,5 +1,4 @@
-
-
- CS-Map
- CS-Map Open Source is a required component for MapGuide Server and Web Extensions.
+?
+
+
\ No newline at end of file
Modified: trunk/Installer/Libraries/MapGuide Server/FDO.wxs
===================================================================
--- trunk/Installer/Libraries/MapGuide Server/FDO.wxs 2026-09-21 12:39:45 UTC (rev 10216)
+++ trunk/Installer/Libraries/MapGuide Server/FDO.wxs 2026-09-21 12:56:43 UTC (rev 10217)
@@ -1,17 +1,23 @@
-
-
+
-
+
-
-
+
+
-
+
+
+
+
+
+
+
+
-
+
@@ -19,24 +25,24 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -52,41 +58,35 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
@@ -106,43 +106,43 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -153,32 +153,32 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -185,8 +185,8 @@
-
-
+
+
@@ -193,11 +193,11 @@
-
+
-
+
Copied: trunk/Installer/Libraries/MapGuide Server/HarvestFiles.wxs (from rev 10216, sandbox/jng/installer_wix6/Libraries/MapGuide Server/HarvestFiles.wxs)
===================================================================
--- trunk/Installer/Libraries/MapGuide Server/HarvestFiles.wxs (rev 0)
+++ trunk/Installer/Libraries/MapGuide Server/HarvestFiles.wxs 2026-09-21 12:56:43 UTC (rev 10217)
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Modified: trunk/Installer/Libraries/MapGuide Server/InstallService.wxs
===================================================================
--- trunk/Installer/Libraries/MapGuide Server/InstallService.wxs 2026-09-21 12:39:45 UTC (rev 10216)
+++ trunk/Installer/Libraries/MapGuide Server/InstallService.wxs 2026-09-21 12:56:43 UTC (rev 10217)
@@ -1,24 +1,12 @@
-
-
+?
-
+
-
+
Modified: trunk/Installer/Libraries/MapGuide Server/Lang/MapGuideServer_en-US.wxl
===================================================================
--- trunk/Installer/Libraries/MapGuide Server/Lang/MapGuideServer_en-US.wxl 2026-09-21 12:39:45 UTC (rev 10216)
+++ trunk/Installer/Libraries/MapGuide Server/Lang/MapGuideServer_en-US.wxl 2026-09-21 12:56:43 UTC (rev 10217)
@@ -1,51 +1,50 @@
-
-
- Server
- MapGuide Server provides geographic analysis and rendering services.
- Log Files
- You may choose a location to place the server logfiles.
- Packages
- You may choose a location where the server will access Packages (*.mgp).
- Repositories
- You may choose a parent location for the server repositories.
- Library
- You may choose a location for the Library repository.
- Session
- You may choose a location for the Session repository.
- Site
- You may choose a location for the Site repository.
- TileCache
- You may choose a location for the Tile Cache repository.
- Temp Directory
- You may choose a location where MapGuide will store temporary files.
+?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- FDO (Feature Data Objects) allows abstract access to many different data sources.
- ArcSDE Provider
- Read/write access to an ESRI ArcSDE-based data store, using Oracle and SQL Server. (Requires external ArcSDE dlls)
- GDAL Provider
- FDO Raster Provider for GDAL
- Oracle Provider
- Read/write access to spatial and attribute data in an Oracle Spatial. (requires Oracle Instant Client libraries)
- MySQL Provider
- FDO Provider for MySQL (requires libmysql.dll)
- ODBC Provider
- FDO Provider for ODBC
- OGR Provider
- FDO Access to OGR Data Sources
- PostGIS Provider
- Read/write access to spatial and attribute data in a PostGIS database. (requires libpq.dll)
- PostgreSQL/PostGIS Provider
- Read/write access to PostgreSQL/PostGIS-based data store. Supports spatial data types and spatial query operations.
- SDF Provider
- Read/write access to Autodesk's spatial database format, a file-based personal geodatabase that supports multiple features/attributes, spatial indexing, and file-locking.
- SHP Provider
- Read/write access to spatial and attribute data in an ESRI SHP file.
- SQLite Provider
- The SQLite Provider
- MS SQL Server Spatial Provider
- Read/Write access to feature data in a MS SQL Server spatially enabled data store. Supports geospatial and non-geospatial data and schema.
- WFS Provider
- Read access to OGC WFS-based data store.
- WMS Provider
- Read access to OGC WMS-based data store.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Modified: trunk/Installer/Libraries/MapGuide Server/MapGuide Server.wixproj
===================================================================
--- trunk/Installer/Libraries/MapGuide Server/MapGuide Server.wixproj 2026-09-21 12:39:45 UTC (rev 10216)
+++ trunk/Installer/Libraries/MapGuide Server/MapGuide Server.wixproj 2026-09-21 12:56:43 UTC (rev 10217)
@@ -1,71 +1,37 @@
?
-
+
- Debug
- x86
- 3.0
- {715e2d88-e822-4a9a-a5a2-dbb71cd9b320}
- 2.0
+ Debug
+ x64
+ false
MapGuideServer
Library
- $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets
MapGuide Server
- SOFTWARE\OSGeo\MapGuide
- $(MSBuildProjectDirectory)\..\..\..\MgDev\$(Configuration)
+ SOFTWARE\OSGeo\MapGuide
+ $(MSBuildProjectDirectory)\..\..\..\MgDev\$(Configuration)
+ $([System.String]::Copy('$(MgSource)').Replace('"', ''))
-
- bin\$(Configuration)\
- obj\$(Configuration)\
- Debug;MgRegKey=$(MgRegKey);MgSource=$(MgSource);MgPlatform=$(MgPlatform);Have_ArcSde=$(Have_ArcSde)
+
+ Debug;MgRegKey=$(MgRegKey);MgSource=$(MgSourceSanitized);MgPlatform=$(Platform);Have_ArcSde=$(Have_ArcSde)
True
-
-
- bin\$(Configuration)\
- obj\$(Configuration)\
- MgCulture=$(MgCulture);MgRegKey=$(MgRegKey);MgSource=$(MgSource);MgPlatform=$(MgPlatform);Have_ArcSde=$(Have_ArcSde)
-
-
- Debug;MgRegKey=$(MgRegKey);MgSource=$(MgSource);MgPlatform=$(MgPlatform);Have_ArcSde=$(Have_ArcSde)
- True
bin\$(Platform)\$(Configuration)\
obj\$(Platform)\$(Configuration)\
-
- MgCulture=$(MgCulture);MgRegKey=$(MgRegKey);MgSource=$(MgSource);MgPlatform=$(MgPlatform);Have_ArcSde=$(Have_ArcSde)
+
+ MgCulture=$(MgCulture);MgRegKey=$(MgRegKey);MgSource=$(MgSourceSanitized);MgPlatform=$(Platform);Have_ArcSde=$(Have_ArcSde)
bin\$(Platform)\$(Configuration)\
obj\$(Platform)\$(Configuration)\
-
-
-
-
-
-
+
-
-
-
-
-
- $(WixExtDir)\WixUtilExtension.dll
- WixUtilExtension
-
+
-
-
\ No newline at end of file
Modified: trunk/Installer/Libraries/MapGuide Server/MapGuideServer.wxs
===================================================================
--- trunk/Installer/Libraries/MapGuide Server/MapGuideServer.wxs 2026-09-21 12:39:45 UTC (rev 10216)
+++ trunk/Installer/Libraries/MapGuide Server/MapGuideServer.wxs 2026-09-21 12:56:43 UTC (rev 10217)
@@ -1,230 +1,131 @@
-
-
+
-
+
-
-
+
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
Modified: trunk/Installer/Libraries/MapGuide Web Extensions/Apache.wxs
===================================================================
--- trunk/Installer/Libraries/MapGuide Web Extensions/Apache.wxs 2026-09-21 12:39:45 UTC (rev 10216)
+++ trunk/Installer/Libraries/MapGuide Web Extensions/Apache.wxs 2026-09-21 12:56:43 UTC (rev 10217)
@@ -1,25 +1,23 @@
-
-
+?
-
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
@@ -11,121 +8,98 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -206,44 +168,36 @@
-->
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
\ No newline at end of file
Modified: trunk/Installer/Libraries/MapGuide Web Extensions/Lang/MapGuideWebExtensions_en-US.wxl
===================================================================
--- trunk/Installer/Libraries/MapGuide Web Extensions/Lang/MapGuideWebExtensions_en-US.wxl 2026-09-21 12:39:45 UTC (rev 10216)
+++ trunk/Installer/Libraries/MapGuide Web Extensions/Lang/MapGuideWebExtensions_en-US.wxl 2026-09-21 12:56:43 UTC (rev 10217)
@@ -1,68 +1,67 @@
-
-
- Web
- MapGuide Web provides the components needed to serve MapGuide resources over the internet.
- Apache
- A bundled version of Apache with MapGuide enabled, running on port [APACHE_PORT].
- PHP
- A bundled version of PHP with MapGuide enabled.
- Tomcat
- A bundled version of Tomcat with MapGuide enabled.
- Development HTTP Server
- A simple development HTTP server to easily spin up a mapagent or static HTML/JS content for development/testing without IIS or Apache
- API Help
- Web Extension API documentation
- Map Viewer files
- The support files for the map viewer, language independent.
- PHP Viewer
- The PHP version of the map viewer.
- JSP Viewer
- The JSP version of the map viewer.
- .NET Viewer
- The .NET version of the map viewer.
- Samples
- Sample code and data
- Developer's Guide Sample Code (PHP)
- PHP sample code from the MapGuide Developer's Guide. This requires the Sheboygan sample data.
- Developer's Guide Sample Code (Java)
- Java sample code from the MapGuide Developer's Guide. This requires the Sheboygan sample data.
- Developer's Guide Sample Code (.net)
- .net sample code from the MapGuide Developer's Guide. This requires the Sheboygan sample data.
- Viewer Sample (PHP)
- Viewer Sample code (PHP)
- Viewer Sample (Java)
- Viewer Sample code (Java)
- Viewer Sample (.net)
- Viewer Sample code (.net)
-
-
- Localization Files
- Localization files for the web tier
- Fusion
- Fusion is a web-mapping application framework, allowing non-spatial web developers to build rich mapping applications quickly and easily
- Site Administrator
- The MapGuide Site Administrator is a web-based administrative front-end for the MapGuide Server
- Map Agent
- The map agent allows client applications to communicate with MapGuide over HTTP
- Schema Report
- The schema report allows the user to describe and preview MapGuide feature sources
- Standard Icons
- Icons for the AJAX viewer
- Temp Directory
- You may choose a location where MapGuide will store temporary files.
- mapagent test pages
- mapagent test harness web pages and scripts
+?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- MapGuide Developer's Guide
- Web API Documentation
- MapGuide Samples
- Autodesk WikiHelp
- Viewer API Documentation
- Fusion API Documentation
- MapGuide Site Administrator
- MapAgent Test Pages
- Get MapGuide Maestro
- MapGuide Project Home
- MapGuide Trac
- Start MapGuide Development HTTP Server
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Modified: trunk/Installer/Libraries/MapGuide Web Extensions/MapGuide Web Extensions.wixproj
===================================================================
--- trunk/Installer/Libraries/MapGuide Web Extensions/MapGuide Web Extensions.wixproj 2026-09-21 12:39:45 UTC (rev 10216)
+++ trunk/Installer/Libraries/MapGuide Web Extensions/MapGuide Web Extensions.wixproj 2026-09-21 12:56:43 UTC (rev 10217)
@@ -1,95 +1,38 @@
?
-
+
- Debug
- x86
- 3.0
- {d41d53c4-433e-47b5-b663-e79b5569ee22}
- 2.0
+ Debug
+ x64
+ false
MapGuide Web Extensions
Library
- $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets
- SOFTWARE\OSGeo\MapGuide
- $(MSBuildProjectDirectory)\..\..\..\MgDev\$(Configuration)
+ SOFTWARE\OSGeo\MapGuide
+ $(MSBuildProjectDirectory)\..\..\..\MgDev\$(Configuration)
+ $([System.String]::Copy('$(MgSource)').Replace('"', ''))
-
- bin\$(Configuration)\
- obj\$(Configuration)\
- Debug;MgRegKey=$(MgRegKey);MgSource=$(MgSource);MgPlatform=$(MgPlatform)
-
-
- bin\$(Configuration)\
- obj\$(Configuration)\
- MgRegKey=$(MgRegKey);MgSource=$(MgSource);MgPlatform=$(MgPlatform)
-
-
- Debug;MgRegKey=$(MgRegKey);MgSource=$(MgSource);MgPlatform=$(MgPlatform)
+
+ Debug;MgRegKey=$(MgRegKey);MgSource=$(MgSourceSanitized);MgPlatform=$(Platform)
bin\$(Platform)\$(Configuration)\
obj\$(Platform)\$(Configuration)\
-
- MgRegKey=$(MgRegKey);MgSource=$(MgSource);MgPlatform=$(MgPlatform)
+
+ MgRegKey=$(MgRegKey);MgSource=$(MgSourceSanitized);MgPlatform=$(Platform)
bin\$(Platform)\$(Configuration)\
obj\$(Platform)\$(Configuration)\
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
- $(WixExtDir)\WixUtilExtension.dll
- WixUtilExtension
-
-
- $(WixExtDir)\WixNetFxExtension.dll
- WixNetFxExtension
-
-
- $(WixExtDir)\WixIIsExtension.dll
- WixIIsExtension
-
+
+
+
-
-
\ No newline at end of file
Modified: trunk/Installer/Libraries/MapGuide Web Extensions/MapGuideWebExtensions.wxs
===================================================================
--- trunk/Installer/Libraries/MapGuide Web Extensions/MapGuideWebExtensions.wxs 2026-09-21 12:39:45 UTC (rev 10216)
+++ trunk/Installer/Libraries/MapGuide Web Extensions/MapGuideWebExtensions.wxs 2026-09-21 12:56:43 UTC (rev 10217)
@@ -1,47 +1,27 @@
-
-
+
-
+
-
-
+
+
-
+
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
@@ -50,15 +30,17 @@
-
+
-
+
+
+
-
+
-
-
+
+
+
+
+
-
+
@@ -97,7 +75,7 @@
-
+
@@ -105,54 +83,18 @@
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -160,56 +102,56 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
+
-
+
@@ -235,25 +177,26 @@
-
+
-
-
+
+
-
+
-
+
-
+
-
+
+
Modified: trunk/Installer/Libraries/MapGuide Web Extensions/Shortcuts.wxs
===================================================================
--- trunk/Installer/Libraries/MapGuide Web Extensions/Shortcuts.wxs 2026-09-21 12:39:45 UTC (rev 10216)
+++ trunk/Installer/Libraries/MapGuide Web Extensions/Shortcuts.wxs 2026-09-21 12:56:43 UTC (rev 10217)
@@ -1,262 +1,147 @@
-
-
+
-
+
-
-
+
+
-
+
-
+
\ No newline at end of file
Deleted: trunk/Installer/Paraffin.exe
===================================================================
(Binary files differ)
Modified: trunk/Installer/build.bat
===================================================================
--- trunk/Installer/build.bat 2026-09-21 12:39:45 UTC (rev 10216)
+++ trunk/Installer/build.bat 2026-09-21 12:56:43 UTC (rev 10217)
@@ -8,8 +8,8 @@
rem value of INSTALLER_OUTPUT defined in this file
rem
rem Requirements:
-rem 1. Wix 3.5 (http://wix.codeplex.com)
-rem 2. Paraffin (http://www.wintellect.com/CS/blogs/jrobbins/archive/2008/12/22/paraffin-3-0-now-with-full-wix-3-0-support.aspx)
+rem 1. WiX Toolset 6.0.2 SDK (restored through SDK-style .wixproj)
+rem 2. Staged MapGuide output under ..\MgDev\
rem
rem Usage:
rem
@@ -23,7 +23,7 @@
rem [-name=MapGuideInstallerFilename]
rem [-title=MapGuideInstallerTitle]
rem
-rem Action: build(default), clean, prepare, generate (only use generate when creating new GIDs)
+rem Action: build(default), clean, prepare, generate (generate is a no-op)
rem SourceDirectory: The directory that was used for MapGuide build output
rem MapGuideVersion: The version associated with the installer in the format 2.1.0.0
rem MapGuideInstallerFilename: File name of output .exe in the format MapGuideOpenSource-2.1.0-Something
@@ -38,6 +38,8 @@
rem Command Line Option Defaults
rem ==================================================
+SET TYPEBUILD=Release
+SET PLATFORM_CLR=x64
SET TYPEACTION=build
SET CULTURE=en-US
SET INSTALLER_VERSION_MAJOR_MINOR=4.0
@@ -74,8 +76,7 @@
SET INSTALLER_DEV_INSTALLER=%INSTALLER_DEV%\Installers\MapGuide
SET NSIS=%CD%\Support\NSIS
-SET PARAFFIN=%CD%
-SET PATH=%PATH%;%PARAFFIN%;%NSIS%;%WIX%\bin\;%CD%\..\MgDev\BuildTools\WebTools\7-Zip
+SET PATH=%PATH%;%NSIS%;%CD%\..\MgDev\BuildTools\WebTools\7-Zip
rem ==================================================
rem Web dependencies
@@ -101,6 +102,9 @@
if "%1"=="-lang" goto get_language
+if "%1"=="-build" goto get_typebuild
+if "%1"=="-platform" goto get_platform
+
if "%1"=="-source" goto get_source
if "%1"=="-version" goto get_version
@@ -114,6 +118,20 @@
shift
goto study_params
+:get_typebuild
+SET TYPEBUILD=%2
+SET INSTALLER_NAME=MapGuideOpenSource-%INSTALLER_VERSION_MAJOR_MINOR_REV%-Trunk-%CULTURE%-%TYPEBUILD%-%PLATFORM_CLR%
+SET INSTALLER_TITLE="MapGuide Open Source %INSTALLER_VERSION_MAJOR_MINOR% Trunk (%TYPEBUILD%)"
+SET MG_SOURCE=%CD%\..\MgDev\%TYPEBUILD%
+SET MG_SOURCE_INC=%MG_SOURCE%
+goto next_param
+
+:get_platform
+SET PLATFORM_CLR=%2
+SET INSTALLER_NAME=MapGuideOpenSource-%INSTALLER_VERSION_MAJOR_MINOR_REV%-Trunk-%CULTURE%-%TYPEBUILD%-%PLATFORM_CLR%
+SET PHP_TS_PACKAGE=php-%PHP_VERSION%-nts-Win32-vs16-%PLATFORM_CLR%.zip
+goto next_param
+
:get_language
SET CULTURE=%2
SET INSTALLER_OUTPUT=%INSTALLER_DEV%\Output\%CULTURE%
@@ -158,6 +176,8 @@
echo Bundling ArcSDE Provider: %MG_WITH_ARCSDE%
echo ===================================================
+if /I not "%PLATFORM_CLR%"=="x64" goto error_x64_only
+
if "%TYPEACTION%"=="build" goto build
if "%TYPEACTION%"=="prepare" goto prepare
if "%TYPEACTION%"=="clean" goto clean
@@ -165,9 +185,9 @@
:clean
echo [clean]: Installer Pre-Reqs
-%MSBUILD_CLEAN% InstallerPreReq.sln
+%MSBUILD_CLEAN% InstallerPreReq.sln /p:Platform=x64
echo [clean]: Installer
-%MSBUILD_CLEAN_CLR% InstallerWix.sln
+%MSBUILD_CLEAN_CLR% InstallerWix.sln /p:Platform=x64
goto quit
:prepare
@@ -176,7 +196,11 @@
if not exist "%MG_SOURCE%\Web" goto error_mg_web_not_found
if not exist "%MG_SOURCE%\CS-Map" goto error_mg_csmap_not_found
echo [prepare] Installer Pre-Requisites
-%MSBUILD% InstallerPreReq.sln
+%MSBUILD% InstallerPreReq.sln /p:Platform=x64
+if not exist "%INSTALLER_FDO_REG_UTIL%\%TYPEBUILD%\FdoRegUtil.exe" (
+ echo [prepare] FdoRegUtil.exe not found in [%INSTALLER_FDO_REG_UTIL%\%TYPEBUILD%]
+ goto error
+)
copy %INSTALLER_FDO_REG_UTIL%\%TYPEBUILD%\FdoRegUtil.exe %MG_SOURCE%\Server\FDO
popd
echo [prepare] Unpack Apache httpd
@@ -226,99 +250,12 @@
:generate
echo [generate]: MapGuide Installer
+echo [generate]: No-op. WiX-native harvesting is now defined in HarvestFiles.wxs.
-SET PARAFFIN=paraffin.exe -guids
-IF "%PLATFORM_CLR%" == "x64" SET PARAFFIN=paraffin.exe -Win64 -guids
-
-SET WIX_INC_SERVER="%INSTALLER_DEV%\Libraries\MapGuide Server\FileIncludes"
-SET WIX_INC_WEB="%INSTALLER_DEV%\Libraries\MapGuide Web Extensions\FileIncludes"
-SET WIX_INC_CSMAP="%INSTALLER_DEV%\Libraries\CS Map\FileIncludes"
-
-echo [generate]: Server - binaries
-%PARAFFIN% -dir %MG_SOURCE%\Server\bin -alias $(var.MgSource)\Server\bin -custom SRVBINFILES -dirref SERVERROOTLOCATION -norecurse %WIX_INC_SERVER%\incBinFiles.wxs
-
-echo [generate]: Server - RepositoryAdmin
-%PARAFFIN% -dir %MG_SOURCE%\Server\RepositoryAdmin -alias $(var.MgSource)\Server\RepositoryAdmin -custom SRVREPADMINFILES -dirref SERVERROOTLOCATION %WIX_INC_SERVER%\incRepositoryAdminFiles.wxs
-
-echo [generate]: Server - resources
-%PARAFFIN% -dir %MG_SOURCE%\Server\Resources -alias $(var.MgSource)\Server\Resources -custom SRVRESOURCESFILES -dirref SERVERROOTLOCATION %WIX_INC_SERVER%\incResourcesFiles.wxs
-
-echo [generate]: Server - schema
-%PARAFFIN% -dir %MG_SOURCE%\Server\Schema -alias $(var.MgSource)\Server\Schema -custom SRVSCHEMAFILES -dirref SERVERROOTLOCATION %WIX_INC_SERVER%\incSchemaFiles.wxs
-
-echo [generate]: Server - WMS
-%PARAFFIN% -dir %MG_SOURCE%\Server\wms -alias $(var.MgSource)\Server\wms -custom SRVWMSFILES -dirref SERVERROOTLOCATION -norecurse %WIX_INC_SERVER%\incWmsFiles.wxs
-
-echo [generate]: Server - WFS
-%PARAFFIN% -dir %MG_SOURCE%\Server\wfs -alias $(var.MgSource)\Server\wfs -custom SRVWFSFILES -dirref SERVERROOTLOCATION -norecurse %WIX_INC_SERVER%\incWfsFiles.wxs
-
-echo [generate]: CS-Map - dictionaries
-%PARAFFIN% -dir %MG_SOURCE%\CS-Map\Dictionaries -alias $(var.MgSource)\CS-Map\Dictionaries -custom CSMAPDICTFILES -dirref CSMAPLOCATION -ext ASC -ext C -ext CNT -ext GID -ext HLP -ext MAK -ext NMK -ext VCPROJ -ext USER %WIX_INC_CSMAP%\incCSMapDictionaryFiles.wxs
-
-echo [generate]: Web - Apache
-%PARAFFIN% -dir %MG_SOURCE%\Web\Apache24 -alias $(var.MgSource)\Web\Apache24 -custom APACHEFILES -dirref WEBEXTENSIONSLOCATION -dirExclude .svn %WIX_INC_WEB%\incApacheFiles.wxs
-
-echo [generate]: Web - Php TS
-%PARAFFIN% -dir %MG_SOURCE%\Web\Php -alias $(var.MgSource)\Web\Php -custom PHPFILES -dirref WEBEXTENSIONSLOCATION %WIX_INC_WEB%\incPhpFiles.wxs
-
-echo [generate]: Web - Tomcat
-%PARAFFIN% -dir %MG_SOURCE%\Web\Tomcat -alias $(var.MgSource)\Web\Tomcat -custom TOMCATFILES -dirref WEBEXTENSIONSLOCATION %WIX_INC_WEB%\incTomcatFiles.wxs
-
-echo [generate]: Web - DevHttpServer
-%PARAFFIN% -dir %MG_SOURCE%\Web\DevHttpServer -alias $(var.MgSource)\Web\DevHttpServer -custom DEVHTTPSERVER -dirref WEBEXTENSIONSLOCATION %WIX_INC_WEB%\incDevHttpServerFiles.wxs
-
-echo [generate]: Web - Help
-%PARAFFIN% -dir %MG_SOURCE%\Web\www\help -alias $(var.MgSource)\Web\www\help -custom HELPFILES -dirref WEBROOTLOCATION %WIX_INC_WEB%\incHelpFiles.wxs
-
-echo [generate]: Web - Developer's Guide Samples (PHP)
-%PARAFFIN% -dir %MG_SOURCE%\Web\www\phpsamples -alias $(var.MgSource)\Web\www\phpsamples -custom PHPDEVGUIDEFILES -dirref WEBROOTLOCATION %WIX_INC_WEB%\incPhpDevGuideFiles.wxs
-
-echo [generate]: Web - Developer's Guide Samples (Java)
-%PARAFFIN% -dir %MG_SOURCE%\Web\www\javasamples -alias $(var.MgSource)\Web\www\javasamples -custom JAVADEVGUIDEFILES -dirref WEBROOTLOCATION %WIX_INC_WEB%\incJavaDevGuideFiles.wxs
-
-echo [generate]: Web - Developer's Guide Samples (DotNet)
-%PARAFFIN% -dir %MG_SOURCE%\Web\www\dotnetsamples -alias $(var.MgSource)\Web\www\dotnetsamples -custom DOTNETDEVGUIDEFILES -dirref WEBROOTLOCATION %WIX_INC_WEB%\incDotNetDevGuideFiles.wxs
-
-echo [generate]: Web - Developer's Guide Samples (PHP)
-%PARAFFIN% -dir %MG_SOURCE%\Web\www\phpviewersample -alias $(var.MgSource)\Web\www\phpviewersample -custom PHPVIEWERSAMPLEFILES -dirref WEBROOTLOCATION %WIX_INC_WEB%\incPhpViewerSampleFiles.wxs
-
-echo [generate]: Web - Developer's Guide Samples (Java)
-%PARAFFIN% -dir %MG_SOURCE%\Web\www\javaviewersample -alias $(var.MgSource)\Web\www\javaviewersample -custom JAVAVIEWERSAMPLEFILES -dirref WEBROOTLOCATION %WIX_INC_WEB%\incJavaViewerSampleFiles.wxs
-
-echo [generate]: Web - Developer's Guide Samples (DotNet)
-%PARAFFIN% -dir %MG_SOURCE%\Web\www\dotnetviewersample -alias $(var.MgSource)\Web\www\dotnetviewersample -custom DOTNETVIEWERSAMPLEFILES -dirref WEBROOTLOCATION %WIX_INC_WEB%\incDotNetViewerSampleFiles.wxs
-
-echo [generate]: Web - OpenLayers Samples
-%PARAFFIN% -dir %MG_SOURCE%\Web\www\clientsamples -alias $(var.MgSource)\Web\www\clientsamples -custom OPENLAYERSSAMPLEFILES -dirref WEBROOTLOCATION %WIX_INC_WEB%\incOpenLayersSampleFiles.wxs
-
-echo [generate]: Web - mapagent
-%PARAFFIN% -dir %MG_SOURCE%\Web\www\mapagent -alias $(var.MgSource)\Web\www\mapagent -custom MAPAGENTFILES -dirref WEBROOTLOCATION %WIX_INC_WEB%\incMapAgentFiles.wxs
-
-echo [generate]: Web - mapviewernet
-%PARAFFIN% -dir %MG_SOURCE%\Web\www\mapviewernet -alias $(var.MgSource)\Web\www\mapviewernet -custom MAPVIEWERASPXFILES -dirref WEBROOTLOCATION %WIX_INC_WEB%\incMapViewerAspxFiles.wxs
-
-echo [generate]: Web - mapviewerphp
-%PARAFFIN% -dir %MG_SOURCE%\Web\www\mapviewerphp -alias $(var.MgSource)\Web\www\mapviewerphp -custom MAPVIEWERPHPFILES -dirref WEBROOTLOCATION %WIX_INC_WEB%\incMapViewerPhpFiles.wxs
-
-echo [generate]: Web - mapviewerjava
-%PARAFFIN% -dir %MG_SOURCE%\Web\www\mapviewerjava -alias $(var.MgSource)\Web\www\mapviewerjava -custom MAPVIEWERJSPFILES -dirref WEBROOTLOCATION %WIX_INC_WEB%\incMapViewerJspFiles.wxs
-
-echo [generate]: Web - fusion
-%PARAFFIN% -dir %MG_SOURCE%\Web\www\fusion -alias $(var.MgSource)\Web\www\fusion -custom FUSIONFILES -dirref WEBROOTLOCATION %WIX_INC_WEB%\incFusionFiles.wxs
-
-echo [generate]: Web - misc web root
-%PARAFFIN% -dir %MG_SOURCE%\Web\www -alias $(var.MgSource)\Web\www -custom WEBROOTFILES -dirref WEBEXTENSIONSLOCATION -norecurse %WIX_INC_WEB%\incWebRootFiles.wxs
-%PARAFFIN% -dir %MG_SOURCE%\Web\www\viewerfiles -alias $(var.MgSource)\Web\www\viewerfiles -custom MAPVIEWERFILES -dirref WEBROOTLOCATION %WIX_INC_WEB%\incMapViewerFiles.wxs
-%PARAFFIN% -dir %MG_SOURCE%\Web\www\stdicons -alias $(var.MgSource)\Web\www\stdicons -custom MAPVIEWERSTDICONFILES -dirref WEBROOTLOCATION %WIX_INC_WEB%\incMapViewerStdiconFiles.wxs
-%PARAFFIN% -dir %MG_SOURCE%\Web\www\schemareport -alias $(var.MgSource)\Web\www\schemareport -custom MAPVIEWERSCHEMAREPORTFILES -dirref WEBROOTLOCATION %WIX_INC_WEB%\incMapViewerSchemareportFiles.wxs
-%PARAFFIN% -dir %MG_SOURCE%\Web\www\mapadmin -alias $(var.MgSource)\Web\www\mapadmin -custom MAPVIEWERMAPADMINFILES -dirref WEBROOTLOCATION %WIX_INC_WEB%\incMapViewerMapAdminFiles.wxs
-%PARAFFIN% -dir %MG_SOURCE%\Web\www\localized -alias $(var.MgSource)\Web\www\localized -custom MAPVIEWERLOCALIZEDFILES -dirref WEBROOTLOCATION %WIX_INC_WEB%\incMapViewerLocalizedFiles.wxs
-%PARAFFIN% -dir %MG_SOURCE%\Web\www\WEB-INF -alias $(var.MgSource)\Web\www\WEB-INF -custom WEBINFFILES -dirref WEBROOTLOCATION %WIX_INC_WEB%\incWebInfFiles.wxs
-
goto quit
:build
-SET RUN_BUILD=%MSBUILD% /p:OutputName=%INSTALLER_NAME%;MgCulture=%CULTURE%;MgTitle=%INSTALLER_TITLE%;MgVersion=%INSTALLER_VERSION%;MgRegKey=%MG_REG_KEY%;MgPlatform=%PLATFORM_CLR%;Have_ArcSde=%MG_WITH_ARCSDE%
+SET RUN_BUILD=%MSBUILD% /restore /p:Platform=x64;OutputName=%INSTALLER_NAME%;MgCulture=%CULTURE%;MgTitle=%INSTALLER_TITLE%;MgVersion=%INSTALLER_VERSION%;MgRegKey=%MG_REG_KEY%;MgPlatform=%PLATFORM_CLR%;Have_ArcSde=%MG_WITH_ARCSDE%
if not ""=="%MG_SOURCE_INC%" set RUN_BUILD=%RUN_BUILD%;MgSource=%MG_SOURCE_INC%
echo [build]: Installer
@@ -325,6 +262,10 @@
%RUN_BUILD% InstallerWix.sln
if "%errorlevel%"=="1" goto error
if not exist "%INSTALLER_OUTPUT%" mkdir "%INSTALLER_OUTPUT%"
+echo [bootstrap]: Copying MSI
+if "%CONFIGURATION%"=="" SET CONFIGURATION=%TYPEBUILD:64=%
+copy /Y "%INSTALLER_DEV_INSTALLER%\bin\%PLATFORM_CLR%\%CONFIGURATION%\%CULTURE%\%INSTALLER_NAME%.msi" "%INSTALLER_OUTPUT%\%INSTALLER_NAME%.msi"
+if "%errorlevel%"=="1" goto error
pushd "%INSTALLER_DEV_BOOTSTRAP%"
echo [bootstrap]: Copying vcredist
copy /Y vc_redist.%PLATFORM_CLR%.exe "%INSTALLER_OUTPUT%\vc_redist.%PLATFORM_CLR%.exe"
@@ -363,6 +304,10 @@
echo [ERROR]: Could not find CS-Map directory at %MG_SOURCE%\CS-Map
exit /B 1
+:error_x64_only
+echo [ERROR]: x86/Win32 installer builds are no longer supported. Please use x64 build environment.
+exit /B 1
+
:error
echo [ERROR]: There was an error building the component
exit /B 1
@@ -380,6 +325,8 @@
echo ************************************************************************
echo build.bat [-h]
echo [-a=Action]
+echo [-build=TypeBuild]
+echo [-platform=PlatformCLR]
echo [-lang=Culture]
echo [-source=SourceDirectory]
echo [-version=MapGuideVersion]
@@ -387,7 +334,9 @@
echo [-title=MapGuideInstallerTitle]
echo
echo Help: -h
-echo Action: build(default), clean, prepare, generate (only use generate for creating new GIDs, or if not installing from ..\MgDev\Release)
+echo Action: build(default), clean, prepare, generate (generate is now a no-op)
+echo TypeBuild: Release(default) or Debug
+echo PlatformCLR: x64(default)
echo SourceDirectory: The directory that the MapGuide build process installed the source files into
echo MapGuideVersion: The version associated with the installer in the format 2.1.0.0
echo MapGuideInstallerFilename: File name of output .exe in the format MapGuideOpenSource-2.1.0-Something (such as Beta, RC1, Final, etc)
Copied: trunk/Installer/scripts/List-MsiFiles.ps1 (from rev 10216, sandbox/jng/installer_wix6/scripts/List-MsiFiles.ps1)
===================================================================
--- trunk/Installer/scripts/List-MsiFiles.ps1 (rev 0)
+++ trunk/Installer/scripts/List-MsiFiles.ps1 2026-09-21 12:56:43 UTC (rev 10217)
@@ -0,0 +1,371 @@
+<#
+.SYNOPSIS
+ Dumps the installable file listing (target paths) from one or more MSI files,
+ optionally filtered by which features are enabled/disabled.
+
+.DESCRIPTION
+ Uses the Windows Installer COM automation object (no extra dependencies) to read the
+ Directory, Component, Feature, FeatureComponents and File tables and reconstruct the
+ full target path of every file the MSI installs. Output is one path per line, sorted,
+ which makes it easy to diff two MSIs to confirm file coverage.
+
+ Feature support:
+ -ListFeatures Print the feature tree (id / title / parent) and exit.
+ -Features "A,B" Only list files belonging to the given features. Enabling a
+ feature also enables its descendant features (mirrors MSI).
+ -ExcludeFeatures "A,B" List all files EXCEPT those belonging to the given features
+ (and their descendants). Can be combined with -Features.
+
+.EXAMPLE
+ .\List-MsiFiles.ps1 .\MapGuide.msi -Features ServerFeature
+
+.EXAMPLE
+ .\List-MsiFiles.ps1 .\MapGuide.msi -ExcludeFeatures FdoArcSdeProviderFeature
+
+.EXAMPLE
+ # full coverage comparison between two MSIs
+ .\List-MsiFiles.ps1 .\old.msi -RelativeTo INSTALLLOCATION -Quiet > old.txt
+ .\List-MsiFiles.ps1 .\new.msi -RelativeTo INSTALLLOCATION -Quiet > new.txt
+ Compare-Object (Get-Content old.txt) (Get-Content new.txt)
+
+.PARAMETER Path
+ One or more MSI files to inspect.
+
+.PARAMETER RelativeTo
+ Optional Directory Id (e.g. INSTALLLOCATION). When specified, paths are printed
+ relative to that directory instead of as full absolute paths.
+
+.PARAMETER Quiet
+ Suppress the per-file header lines so only the paths are printed.
+
+.PARAMETER ListFeatures
+ List the feature tree instead of the file listing.
+
+.PARAMETER Features
+ Comma-separated feature Ids to include (plus their descendants).
+
+.PARAMETER ExcludeFeatures
+ Comma-separated feature Ids to exclude (plus their descendants).
+#>
+[CmdletBinding()]
+param(
+ [Parameter(Mandatory = $true, ValueFromRemainingArguments = $true, Position = 0)]
+ [string[]]$Path,
+
+ [Parameter()]
+ [string]$RelativeTo,
+
+ [Parameter()]
+ [switch]$Quiet,
+
+ [Parameter()]
+ [switch]$ListFeatures,
+
+ [Parameter()]
+ [string]$Features,
+
+ [Parameter()]
+ [string]$ExcludeFeatures
+)
+
+Set-StrictMode -Version 2.0
+$ErrorActionPreference = 'Stop'
+
+# Best-effort resolution of the standard directories that MSI resolves at install time.
+# Anything not listed here is left as its raw directory id (still fine for diffing).
+$script:StandardDirs = [ordered]@{
+ 'TARGETDIR' = ''
+ 'ProgramFilesFolder' = 'C:\Program Files (x86)'
+ 'ProgramFiles64Folder' = 'C:\Program Files'
+ 'CommonFilesFolder' = 'C:\Program Files (x86)\Common Files'
+ 'CommonFiles64Folder' = 'C:\Program Files\Common Files'
+ 'WindowsFolder' = 'C:\Windows'
+ 'SystemFolder' = 'C:\Windows\System32'
+ 'System32Folder' = 'C:\Windows\System32'
+ 'ProgramMenuFolder' = 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs'
+ 'StartupFolder' = 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup'
+ 'DesktopFolder' = 'C:\Users\Public\Desktop'
+ 'FavoritesFolder' = 'C:\Users\Public\Favorites'
+ 'FontsFolder' = 'C:\Windows\Fonts'
+ 'TempFolder' = 'C:\Windows\Temp'
+ 'TemplateFolder' = 'C:\ProgramData\Microsoft\Windows\Templates'
+}
+
+function Get-RecordField {
+ param([object]$Record, [int]$Index)
+ return $Record.GetType().InvokeMember('StringData', 'GetProperty', $null, $Record, @($Index))
+}
+
+function Invoke-MsiQuery {
+ param([object]$Db, [string]$Sql)
+ $view = $Db.GetType().InvokeMember('OpenView', 'InvokeMethod', $null, $Db, @($Sql))
+ [void]$view.GetType().InvokeMember('Execute', 'InvokeMethod', $null, $view, $null)
+ $rows = New-Object System.Collections.ArrayList
+ $rec = $view.GetType().InvokeMember('Fetch', 'InvokeMethod', $null, $view, $null)
+ while ($null -ne $rec) {
+ [void]$rows.Add($rec)
+ $rec = $view.GetType().InvokeMember('Fetch', 'InvokeMethod', $null, $view, $null)
+ }
+ [void]$view.GetType().InvokeMember('Close', 'InvokeMethod', $null, $view, $null)
+ return $rows
+}
+
+function Get-DirectoryName {
+ param([string]$DefaultDir)
+ if ([string]::IsNullOrEmpty($DefaultDir)) { return '' }
+ if ($DefaultDir -eq '.') { return '' }
+ # property-resolved directory marker (e.g. "name:." or ".:name")
+ $DefaultDir = $DefaultDir -replace ':+\.$', ''
+ $DefaultDir = $DefaultDir -replace '^\.:', ''
+ # short|long -> long
+ if ($DefaultDir.Contains('|')) {
+ return $DefaultDir.Substring($DefaultDir.IndexOf('|') + 1)
+ }
+ return $DefaultDir
+}
+
+function Open-Msi {
+ param([string]$Msi)
+ if (-not (Test-Path -LiteralPath $Msi)) { throw "MSI file not found: $Msi" }
+ $full = (Resolve-Path -LiteralPath $Msi).Path
+ $installer = New-Object -ComObject WindowsInstaller.Installer
+ try {
+ return $installer.GetType().InvokeMember('OpenDatabase', 'InvokeMethod', $null, $installer, @($full, 0))
+ }
+ finally {
+ # Release the Installer COM object immediately so it cannot keep the MSI open.
+ if ($null -ne $installer) {
+ try { [void][System.Runtime.InteropServices.Marshal]::FinalReleaseComObject($installer) } catch { }
+ }
+ }
+}
+
+function Split-FeatureList {
+ param([string]$Value)
+ if ([string]::IsNullOrWhiteSpace($Value)) { return ,@() }
+ $result = @($Value -split ',' | ForEach-Object { $_.Trim() } | Where-Object { $_ -ne '' })
+ return ,$result
+}
+
+function Get-DescendantFeatures {
+ param([string]$Root, [hashtable]$Children)
+ $result = New-Object System.Collections.Generic.HashSet[string]
+ $queue = New-Object System.Collections.Queue
+ [void]$queue.Enqueue($Root)
+ while ($queue.Count -gt 0) {
+ $cur = $queue.Dequeue()
+ if (-not $result.Add($cur)) { continue }
+ if ($Children.ContainsKey($cur)) {
+ foreach ($c in $Children[$cur]) { [void]$queue.Enqueue($c) }
+ }
+ }
+ return $result
+}
+
+function Read-MsiData {
+ param([string]$Msi)
+ $db = Open-Msi -Msi $Msi
+ try {
+
+ $dirs = @{}
+ foreach ($rec in (Invoke-MsiQuery $db 'SELECT `Directory`, `Directory_Parent`, `DefaultDir` FROM `Directory`')) {
+ $id = Get-RecordField $rec 1
+ $dirs[$id] = [pscustomobject]@{
+ Parent = Get-RecordField $rec 2
+ Name = Get-DirectoryName (Get-RecordField $rec 3)
+ IsStandard = $script:StandardDirs.Contains($id)
+ }
+ }
+
+ $compDir = @{}
+ foreach ($rec in (Invoke-MsiQuery $db 'SELECT `Component`, `Directory_` FROM `Component`')) {
+ $compDir[(Get-RecordField $rec 1)] = Get-RecordField $rec 2
+ }
+
+ # Features: id -> { Parent, Title, Level }
+ $featInfo = @{}
+ $featChildren = @{}
+ foreach ($rec in (Invoke-MsiQuery $db 'SELECT `Feature`, `Feature_Parent`, `Title`, `Level` FROM `Feature`')) {
+ $id = Get-RecordField $rec 1
+ $parent = Get-RecordField $rec 2
+ $featInfo[$id] = [pscustomobject]@{
+ Parent = $parent
+ Title = Get-RecordField $rec 3
+ Level = Get-RecordField $rec 4
+ }
+ if (-not [string]::IsNullOrEmpty($parent)) {
+ if (-not $featChildren.ContainsKey($parent)) { $featChildren[$parent] = New-Object System.Collections.ArrayList }
+ [void]$featChildren[$parent].Add($id)
+ }
+ }
+
+ # FeatureComponents: feature -> components ; component -> features
+ $featComp = @{}
+ $compFeat = @{}
+ foreach ($rec in (Invoke-MsiQuery $db 'SELECT `Feature_`, `Component_` FROM `FeatureComponents`')) {
+ $f = Get-RecordField $rec 1
+ $c = Get-RecordField $rec 2
+ if (-not $featComp.ContainsKey($f)) { $featComp[$f] = New-Object System.Collections.Generic.HashSet[string] }
+ [void]$featComp[$f].Add($c)
+ if (-not $compFeat.ContainsKey($c)) { $compFeat[$c] = New-Object System.Collections.ArrayList }
+ [void]$compFeat[$c].Add($f)
+ }
+
+ # File table -> FileName, Component_, FileSize
+ $files = New-Object System.Collections.ArrayList
+ foreach ($rec in (Invoke-MsiQuery $db 'SELECT `FileName`, `Component_`, `FileSize` FROM `File`')) {
+ $fileName = Get-RecordField $rec 1
+ $comp = Get-RecordField $rec 2
+ $size = Get-RecordField $rec 3
+ if ($fileName.Contains('|')) { $fileName = $fileName.Substring($fileName.IndexOf('|') + 1) }
+ [void]$files.Add([pscustomobject]@{
+ FileName = $fileName
+ Component = $comp
+ Size = if ([string]::IsNullOrEmpty($size)) { 0 } else { [long]$size }
+ })
+ }
+
+ return [pscustomobject]@{
+ Dirs = $dirs
+ CompDir = $compDir
+ FeatInfo = $featInfo
+ FeatChild = $featChildren
+ FeatComp = $featComp
+ CompFeat = $compFeat
+ Files = $files
+ }
+ }
+ finally {
+ # Release the Database COM object so the MSI file handle is closed immediately.
+ if ($null -ne $db) {
+ try { [void][System.Runtime.InteropServices.Marshal]::FinalReleaseComObject($db) } catch { }
+ }
+ }
+}
+
+function Resolve-DirectoryPath {
+ param([string]$Id, [hashtable]$Dirs)
+ $segments = New-Object System.Collections.ArrayList
+ $cur = $Id
+ $guard = 0
+ while ($null -ne $cur -and $Dirs.ContainsKey($cur)) {
+ $node = $Dirs[$cur]
+ if ($node.IsStandard) {
+ $prefix = $script:StandardDirs[$cur]
+ if ($prefix) { [void]$segments.Insert(0, $prefix.TrimEnd('\')) }
+ break
+ }
+ if ($node.Name) { [void]$segments.Insert(0, $node.Name) }
+ if ($null -eq $node.Parent -or $node.Parent -eq '') { break }
+ $cur = $node.Parent
+ if (++$guard -gt 1000) { break }
+ }
+ return ($segments -join '\')
+}
+
+function Write-FeatureTree {
+ param($Info, $Children, [string]$Root, [int]$Depth)
+ $pad = ' ' * $Depth
+ $node = $Info[$Root]
+ $title = if ($null -ne $node -and $node.Title) { $node.Title } else { '' }
+ Write-Output ("{0}{1} ({2})" -f $pad, $Root, $title)
+ if ($Children.ContainsKey($Root)) {
+ foreach ($c in ($Children[$Root] | Sort-Object)) {
+ Write-FeatureTree -Info $Info -Children $Children -Root $c -Depth ($Depth + 1)
+ }
+ }
+}
+
+foreach ($msi in $Path) {
+ $data = Read-MsiData -Msi $msi
+
+ if ($ListFeatures) {
+ if (-not $Quiet) {
+ Write-Output ("# {0}" -f (Split-Path -Leaf $msi))
+ }
+ # top-level features (no parent)
+ $roots = $data.FeatInfo.Keys | Where-Object { [string]::IsNullOrEmpty($data.FeatInfo[$_].Parent) } | Sort-Object
+ foreach ($r in $roots) {
+ Write-FeatureTree -Info $data.FeatInfo -Children $data.FeatChild -Root $r -Depth 0
+ }
+ if (-not $Quiet) { Write-Output '' }
+ continue
+ }
+
+ # --- Resolve which features are enabled / excluded ---
+ $enabled = $null
+ $excluded = $null
+
+ $incList = Split-FeatureList $Features
+ if ($incList.Count -gt 0) {
+ $enabled = New-Object System.Collections.Generic.HashSet[string]
+ foreach ($f in $incList) {
+ if (-not $data.FeatInfo.ContainsKey($f)) {
+ Write-Warning "Feature not found in MSI: $f"
+ continue
+ }
+ foreach ($d in (Get-DescendantFeatures -Root $f -Children $data.FeatChild)) {
+ [void]$enabled.Add($d)
+ }
+ }
+ }
+
+ $excList = Split-FeatureList $ExcludeFeatures
+ if ($excList.Count -gt 0) {
+ $excluded = New-Object System.Collections.Generic.HashSet[string]
+ foreach ($f in $excList) {
+ if (-not $data.FeatInfo.ContainsKey($f)) {
+ Write-Warning "Feature not found in MSI: $f"
+ continue
+ }
+ foreach ($d in (Get-DescendantFeatures -Root $f -Children $data.FeatChild)) {
+ [void]$excluded.Add($d)
+ }
+ }
+ }
+
+ # --- Anchor for relative output ---
+ $anchor = ''
+ if ($RelativeTo) {
+ if (-not $data.Dirs.ContainsKey($RelativeTo)) { throw "Directory id not found in MSI: $RelativeTo" }
+ $anchor = Resolve-DirectoryPath -Id $RelativeTo -Dirs $data.Dirs
+ }
+ $anchorPrefix = if ($anchor) { $anchor.TrimEnd('\') + '\' } else { '' }
+
+ # --- Build the file list, applying feature filter ---
+ $targets = New-Object System.Collections.ArrayList
+ foreach ($f in $data.Files) {
+ $fileFeats = @()
+ if ($data.CompFeat.ContainsKey($f.Component)) { $fileFeats = $data.CompFeat[$f.Component] }
+
+ if ($null -ne $enabled) {
+ $any = $false
+ foreach ($ff in $fileFeats) { if ($enabled.Contains($ff)) { $any = $true; break } }
+ if (-not $any) { continue }
+ }
+ if ($null -ne $excluded) {
+ $skip = $false
+ foreach ($ff in $fileFeats) { if ($excluded.Contains($ff)) { $skip = $true; break } }
+ if ($skip) { continue }
+ }
+
+ $dirId = $data.CompDir[$f.Component]
+ $dirPath = ''
+ if ($null -ne $dirId -and $dirId -ne '') {
+ $dirPath = Resolve-DirectoryPath -Id $dirId -Dirs $data.Dirs
+ }
+ $target = if ($dirPath) { "$dirPath\$($f.FileName)" } else { $f.FileName }
+
+ if ($anchorPrefix -and $target.StartsWith($anchorPrefix, [System.StringComparison]::OrdinalIgnoreCase)) {
+ $target = $target.Substring($anchorPrefix.Length)
+ }
+ [void]$targets.Add($target)
+ }
+
+ if (-not $Quiet) {
+ Write-Output ("# {0}" -f (Split-Path -Leaf $msi))
+ Write-Output ("# total files: {0}" -f $targets.Count)
+ }
+ $targets | Sort-Object -Unique | ForEach-Object { Write-Output $_ }
+ if (-not $Quiet) { Write-Output '' }
+}