[mapguide-commits] r5409 - in trunk/Installer: . Bootstrapper Custom/apache_actions Custom/iis_actions FdoRegUtil Installers/MapGuide Libraries/MapGuide Server Libraries/MapGuide Web Extensions Support/Web/x64/Apache2/conf Support/Web/x64/Php Support/Web/x86/Apache2/conf Support/Web/x86/Php

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Sat Nov 27 06:32:05 EST 2010


Author: jng
Date: 2010-11-27 03:32:05 -0800 (Sat, 27 Nov 2010)
New Revision: 5409

Added:
   trunk/Installer/Bootstrapper/vcredist_x64.exe
   trunk/Installer/Bootstrapper/vcredist_x86.exe
   trunk/Installer/InstallerPreReq.sln
   trunk/Installer/InstallerWix.sln
Removed:
   trunk/Installer/Bootstrapper/Bootstrap-x64.proj
   trunk/Installer/Bootstrapper/Bootstrap-x86.proj
   trunk/Installer/Installer.sln
Modified:
   trunk/Installer/Bootstrapper/Setup.nsi
   trunk/Installer/Custom/apache_actions/StdAfx.h
   trunk/Installer/Custom/apache_actions/apache_actions.cpp
   trunk/Installer/Custom/iis_actions/CustomAction.cpp
   trunk/Installer/Custom/iis_actions/stdafx.h
   trunk/Installer/FdoRegUtil/
   trunk/Installer/Installers/MapGuide/MapGuide.wxs
   trunk/Installer/Libraries/MapGuide Server/FDO.wxs
   trunk/Installer/Libraries/MapGuide Web Extensions/IIS.wxs
   trunk/Installer/Support/Web/x64/Apache2/conf/httpd.conf
   trunk/Installer/Support/Web/x64/Php/php.ini
   trunk/Installer/Support/Web/x86/Apache2/conf/httpd.conf
   trunk/Installer/Support/Web/x86/Php/php.ini
   trunk/Installer/build.bat
   trunk/Installer/build64.bat
Log:
This submission includes the following changes:
 - Fix #1540: Post 2.2 installer breakage.
   - Update FDO file references to match FDO 3.6 distribution
 - Fix #1426: Externalize references to isapi_MapAgent.dll and php5isapi.dll to make updating easier in the future
 - Fix #1532: Enable the php_gd2.dll PHP extension to prevent breaking the new QuickPlot functionality
 - Fix #1411: Make the Installer buildable with VS express
   - Split Installer.sln into custom action (InstallerPreReq.sln) and Wix (InstallerWix.sln) to workaround the homogeneous solution limitation of VS express
   - Update build.bat and build64.bat with new version numbers and the split solutions
   - Rewrite the Apache custom action using C++ standard libraries, removing the MFC dependency. Fix httpd.conf to conform to the updated actions
   - Remove the use of CComPtr in the IIS custom action (as this is an ATL class and ATL is not included in VS express)
   - Remove the VS bootstrapper (not included in VS express). Update the NSIS installer to include the bootstrapping logic for installing the VC runtime if not installed.
 - Fix #1280: Change version number to 2.3

Deleted: trunk/Installer/Bootstrapper/Bootstrap-x64.proj
===================================================================
--- trunk/Installer/Bootstrapper/Bootstrap-x64.proj	2010-11-27 05:16:58 UTC (rev 5408)
+++ trunk/Installer/Bootstrapper/Bootstrap-x64.proj	2010-11-27 11:32:05 UTC (rev 5409)
@@ -1,15 +0,0 @@
-<Project ToolsVersion="3.5" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-    <ItemGroup>
-		<BootstrapperFile Include="Microsoft.Visual.C++.9.0.x64" />
-    </ItemGroup>
-    <Target Name="BuildBootstrapper">
-        <GenerateBootstrapper
-            ApplicationFile="$(TargetFile)"
-            ApplicationName="MapGuide Open Source"
-            BootstrapperItems="@(BootstrapperFile)"
-			CopyComponents="true"
-			ComponentsLocation="Relative"
-			Culture="$(Culture)"
-            OutputPath="..\Output\$(Culture)" />
-    </Target>
-</Project>

Deleted: trunk/Installer/Bootstrapper/Bootstrap-x86.proj
===================================================================
--- trunk/Installer/Bootstrapper/Bootstrap-x86.proj	2010-11-27 05:16:58 UTC (rev 5408)
+++ trunk/Installer/Bootstrapper/Bootstrap-x86.proj	2010-11-27 11:32:05 UTC (rev 5409)
@@ -1,15 +0,0 @@
-<Project ToolsVersion="3.5" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-    <ItemGroup>
-		<BootstrapperFile Include="Microsoft.Visual.C++.9.0.x86" />
-    </ItemGroup>
-    <Target Name="BuildBootstrapper">
-        <GenerateBootstrapper
-            ApplicationFile="$(TargetFile)"
-            ApplicationName="MapGuide Open Source"
-            BootstrapperItems="@(BootstrapperFile)"
-			CopyComponents="true"
-			ComponentsLocation="Relative"
-			Culture="$(Culture)"
-            OutputPath="..\Output\$(Culture)" />
-    </Target>
-</Project>

Modified: trunk/Installer/Bootstrapper/Setup.nsi
===================================================================
--- trunk/Installer/Bootstrapper/Setup.nsi	2010-11-27 05:16:58 UTC (rev 5408)
+++ trunk/Installer/Bootstrapper/Setup.nsi	2010-11-27 11:32:05 UTC (rev 5409)
@@ -1,9 +1,9 @@
 !ifdef MAXCOMPRESSION
 
-SetCompressor /FINAL /SOLID lzma
-SetCompressorDictSize 64
+;SetCompressor /FINAL /SOLID lzma
+;SetCompressorDictSize 64
 
-FileBufSize 256
+;FileBufSize 256
 
 !endif
 
@@ -35,18 +35,55 @@
 FunctionEnd
 
 Section Main
+	SetOutPath $TEMP
+	SetOverwrite On
+	
+	Push $R0
+    ClearErrors
+;
+; http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/639e2cfd-bb61-425b-a087-a2442df23402   
+;
+!if ${CPU} = "x64"
+	SetRegView 64
+    ReadRegDword $R0 HKLM "SOFTWARE\Microsoft\DevDiv\VC\Servicing\9.0\RED\1033" "SP"
+    IfErrors InstallVSRedist BeginInstall
+!else
+	SetRegView 32
+    ; Reg key for 32-bit OS
+    ReadRegDword $R0 HKLM "SOFTWARE\Microsoft\DevDiv\VC\Servicing\9.0\RED\1033" "SP"
+    IfErrors CheckWow32Registry BeginInstall
+	
+CheckWow32Registry:	
+	SetRegView 64
+    ; Reg key for 64-bit OS (WoW32)
+    ReadRegDword $R0 HKLM "SOFTWARE\Microsoft\DevDiv\VC\Servicing\9.0\RED\1033" "SP"
+    IfErrors InstallVSRedist BeginInstall
+!endif
+
+InstallVSRedist:
+	MessageBox MB_OK "Installing VS redist"
+!if ${CPU} = "x64"
+	File /r "${INSTALLER_OUTPUT}\vcredist_x64.exe"
+	ExecWait '"$OUTDIR\vcredist_x64.exe" /q:a"'
+!else
+	File /r "${INSTALLER_OUTPUT}\vcredist_x86.exe"
+	ExecWait '"$OUTDIR\vcredist_x86.exe" /q:a'
+!endif
+
+BeginInstall:
+	MessageBox MB_OK "Begin main installation"
 	Banner::show /NOUNLOAD "Extracting files. Please Wait"
 	Banner::getWindow /NOUNLOAD
-	
-	SetOutPath $TEMP
-	SetOverwrite On
 	File "${INSTALLER_OUTPUT}\${OUTNAME}.msi"
-	File "${INSTALLER_OUTPUT}\setup.exe"
+	Banner::destroy
+	; Run the MGOS installer
+	ExecWait '"msiexec" /i "$OUTDIR\${OUTNAME}.msi"'
+	; Delete the MGOS installer and any other extracted after completion
+	Delete "$OUTDIR\${OUTNAME}.msi"
 !if ${CPU} = "x64"
-	File /r "${INSTALLER_OUTPUT}\vcredist_x64"
+	Delete "$OUTDIR\vcredist_x64.exe"
 !else
-	File /r "${INSTALLER_OUTPUT}\vcredist_x86"
+	Delete "$OUTDIR\vcredist_x86.exe"
 !endif
-	Banner::destroy
-	ExecWait '"$OUTDIR\setup.exe"'
+	
 SectionEnd
\ No newline at end of file

Added: trunk/Installer/Bootstrapper/vcredist_x64.exe
===================================================================
(Binary files differ)


Property changes on: trunk/Installer/Bootstrapper/vcredist_x64.exe
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: trunk/Installer/Bootstrapper/vcredist_x86.exe
===================================================================
(Binary files differ)


Property changes on: trunk/Installer/Bootstrapper/vcredist_x86.exe
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Modified: trunk/Installer/Custom/apache_actions/StdAfx.h
===================================================================
--- trunk/Installer/Custom/apache_actions/StdAfx.h	2010-11-27 05:16:58 UTC (rev 5408)
+++ trunk/Installer/Custom/apache_actions/StdAfx.h	2010-11-27 11:32:05 UTC (rev 5409)
@@ -14,7 +14,11 @@
 // Insert your headers here
 #define WIN32_LEAN_AND_MEAN		// Exclude rarely-used stuff from Windows headers
 
-#include <afxwin.h>
+// Windows Header Files:
+#include <windows.h>
+#include <tchar.h>
+#include <strsafe.h>
+#include <msiquery.h>
 
 // TODO: reference additional headers your program requires here
 

Modified: trunk/Installer/Custom/apache_actions/apache_actions.cpp
===================================================================
--- trunk/Installer/Custom/apache_actions/apache_actions.cpp	2010-11-27 05:16:58 UTC (rev 5408)
+++ trunk/Installer/Custom/apache_actions/apache_actions.cpp	2010-11-27 11:32:05 UTC (rev 5409)
@@ -26,22 +26,46 @@
 #include "stdafx.h"
 #include "apache_actions.h"
 
+#include <string>
+#include <vector>
+#include <iostream>
+#include <istream>
+#include <ostream>
+#include <iterator>
+#include <sstream>
+#include <algorithm>
+#include <fstream>
+
 #define NULL_CHAR '\0'
 
-void ConvertToApachePath(char * str);
+void Tokenize(const std::string& str, std::vector<std::string>& tokens, const std::string& delimiters);
+void FindAndReplace(std::string& str, const std::string& find, const std::string& replace);
 
-/*****************************************************************************
-* Name	        : ConverToApachePath
-* Description   : Converts a path to a apache-friendly format
-* Parameters    : str
-* Return        : none
-*****************************************************************************/
-void ConvertToApachePath(char * str) 
+void Tokenize(const std::string& str, std::vector<std::string>& tokens, const std::string& delimiters)
 {
-	for(unsigned int i = 0; i < strlen(str); i++)
+	// Skip delimiters at beginning.
+	std::string::size_type lastPos = str.find_first_not_of(delimiters, 0);
+    // Find first "non-delimiter".
+    std::string::size_type pos     = str.find_first_of(delimiters, lastPos);
+
+    while (std::string::npos != pos || std::string::npos != lastPos)
+    {
+        // Found a token, add it to the vector.
+        tokens.push_back(str.substr(lastPos, pos - lastPos));
+        // Skip delimiters.  Note the "not_of"
+        lastPos = str.find_first_not_of(delimiters, pos);
+        // Find next "non-delimiter"
+        pos = str.find_first_of(delimiters, lastPos);
+    }
+}
+
+void FindAndReplace(std::string& str, const std::string& find, const std::string& replace)
+{
+	size_t pos = 0;
+	while ((pos = str.find(find, pos)) != std::string::npos)
 	{
-		if(str[i] == '\\')
-			str[i] = '/';
+		str.replace(pos, find.length(), replace);
+		pos += replace.length();
 	}
 }
 
@@ -127,101 +151,64 @@
 UINT __stdcall
 UpdatePhpIni(MSIHANDLE hMSI)
 {
-	DWORD   dwDataLen = MAX_BUFFER;
-	WCHAR   wszCustomActionData[MAX_BUFFER + 1] = L"";
-	CHAR    szCustomActionData[MAX_BUFFER];
-	CHAR    szPhpDir[MAX_BUFFER];
+	// Method overview:
+	//
+	// We extract the value of the MSI property "CustomActionData" which will
+	// be of the form:
+	//
+	// [PHPLOCATION];[WEBSERVERTYPE];[WEBTEMPLOCATION]
+	//
+	// With this, we update php.ini as follows:
+	//
+	// replace %MG_WEB_PHP% with [PHPLOCATION]
+	// replace %MG_WEB_TEMP% with [WEBTEMPLOCATION]
+	// if [WEBSERVERTYPE] == "2" replace "; cgi.force_redirect = 1" with "cgi.force_redirect = 0"
 
-	CHAR	szWebTempDir[MAX_BUFFER];
-	CHAR    szWebServerType[MAX_BUFFER];
-	CHAR    szFile[MAX_BUFFER];
-	CHAR    szFind[MAX_BUFFER];
-	CHAR    szReplace[MAX_BUFFER];
-	int     nLen;
+	CHAR szCustomActionData[MAX_BUFFER];
+	DWORD dwDataLen = MAX_BUFFER;
 
-	// retrieve the CustomActionData
-	dwDataLen = MAX_BUFFER;
-	MsiGetPropertyW(hMSI, L"CustomActionData", wszCustomActionData, &dwDataLen);
+	MsiGetProperty(hMSI, "CustomActionData", szCustomActionData, &dwDataLen);
 
-	nLen = WideCharToMultiByte(CP_ACP, 0, wszCustomActionData, dwDataLen, szCustomActionData, MAX_BUFFER, NULL, NULL);
-	szCustomActionData[nLen] = NULL_CHAR;
+	std::string szMsiData = szCustomActionData;
+	
+	std::vector<std::string> tokens;
+	Tokenize(szMsiData, tokens, ";");
 
-	szPhpDir[0] = NULL_CHAR;
-	szWebServerType[0] = NULL_CHAR;
+	if (tokens.size() == 3)
+	{
+		std::string szPhpDir = tokens[0];
+		std::string szWebType = tokens[1];
+		std::string szTmpDir = tokens[2];
 
-	//::MessageBoxW(NULL, wszCustomActionData, L"CustomActionData", MB_OK);
+		std::string szFileName = szPhpDir + "php.ini";
+		const char* szFile = szFileName.c_str();
 
-	//[PHPLOCATION];[WEBSERVERTYPE];[WEBTEMPLOCATION]
-	char * tok = strtok(szCustomActionData, ";");
-	//[PHPLOCATION]
-	if(tok)
-	{
-		strcpy(szPhpDir, tok);
-		tok = strtok(NULL, ";");
-		//[WEBSERVERTYPE]
-		if(tok)
+		if (FileExists(szFile))
 		{
-			strcpy(szWebServerType, tok);
-			tok = strtok(NULL, ";");
-		}
-		//[WEBTEMPLOCATION]
-		if(tok)
-		{
-			strcpy(szWebTempDir, tok);
-			tok = strtok(NULL, ";");
-		}
-	}
+			std::ifstream fin(szFile);
 
-	// create the file path to php.ini
-	strcpy(szFile, szPhpDir);
-	strcat(szFile, "php.ini");
+			std::string buffer;
+			std::string line;
+			while(!fin.eof())
+			{
+				std::getline(fin, line);
 
-	//::MessageBox(NULL, szFile, "Test", MB_OK);
+				FindAndReplace(line, "%MG_WEB_PHP%", szPhpDir);
+				FindAndReplace(line, "%MG_WEB_TEMP%", szTmpDir);
+				if (strcmp(szWebType.c_str(), "2") == 0)
+				{
+					FindAndReplace(line, "; cgi.force_redirect = 1", "cgi.force_redirect = 0");
+				}
 
-	if( FileExists(szFile) )
-	{
-		//::MessageBoxW(NULL, L"File found", L"Test", MB_OK);
-		// Opening the file to read and write.
-		//
-		CFile cfInFile(szFile, CFile::modeRead);
-		DWORD dwFileLen = cfInFile.GetLength();
+				buffer += line + "\n";
+			}
+			fin.close();
 
-		// Read the entire contents of the file.
-		//
-		char *szBuff = new char[dwFileLen + 1];
-		cfInFile.Read(szBuff, dwFileLen);
-		szBuff[dwFileLen] = NULL_CHAR;                   // Add ending null to buffer.
-
-		cfInFile.Close();
-
-		// Creating a CString object to store the contents and help
-		// us to add the desired configuration.
-		//
-		CString csBuff(szBuff);
-		strcpy(szFind,"%MG_WEB_PHP%");
-		csBuff.Replace(szFind,szPhpDir);
-
-		strcpy(szFind,"%MG_WEB_TEMP%");
-		csBuff.Replace(szFind,szWebTempDir);
-
-		if ( strcmp(szWebServerType,"2") == 0 )
-		{
-			strcpy(szFind,"; cgi.force_redirect = 1");
-			strcpy(szReplace,"cgi.force_redirect = 0");
-			csBuff.Replace(szFind,szReplace);
+			std::ofstream fout(szFile);
+			fout << buffer;
+			fout.close();
 		}
-
-		CFile cfOutFile(szFile, CFile::modeWrite);
-
-		// Write and modify the contents.
-		//
-		DWORD dwNewLength = csBuff.GetLength();
-		cfOutFile.SeekToBegin();
-		cfOutFile.Write(csBuff, dwNewLength);
-		cfOutFile.SetLength(dwNewLength);
-		cfOutFile.Close();
 	}
-
 	return ERROR_SUCCESS;
 }
 
@@ -241,269 +228,144 @@
 UINT __stdcall
 UpdateApacheConfig(MSIHANDLE hMSI)
 {
+	// Method overview:
+	//
+	// Extract the value of the MSI property: CustomActionData
+	//
+	// The value is of the form: [WEBEXTENSIONSLOCATION];[APACHE_API_TYPE];[APACHE_PORT];[APACHELOCATION];[PHPLOCATION];[WEBROOTLOCATION];[VIRTUALDIR]
+	//
+	// Then in [APACHELOCATION]\conf\httpd.conf, perform the following replacements:
+	//
+	// %MG_WEB_ROOT% for [WEBROOTLOCATION]
+	// %MG_WEB_PORT% for [APACHE_PORT]
+	// %MG_WEB_PHP% for [PHPLOCATION]
+	// %MG_WEB_APACHE% for [APACHELOCATION]
+	// %MG_VIRTUAL_DIR% for [VIRTUALDIR]
+	//
+	// %MG_INCLUDE_TOMCAT% for "Include conf/tomcat.conf" if java config otherwise
+	// "#Uncomment to enable the Java API\n#Include conf/tomcat.conf"
+	//
+	// %MG_PHP_API% for "#" if java config otherwise ""
+	// %MG_JAVA_API% for "" if java config otherwise "#"
+	//
+	// If java config perform the following additional replacements in the
+	// file [APACHELOCATION]\conf\tomcat.conf
+	//
+	// %MG_WEB_APACHE% for [APACHELOCATION]
+	// %MG_VIRTUAL_DIR% for [VIRTUALDIR]
+
 	DWORD   dwDataLen = MAX_BUFFER;
-	WCHAR   wszCustomActionData[MAX_BUFFER + 1] = L"";
 	CHAR    szCustomActionData[MAX_BUFFER];
-	CHAR    szInstallDir[MAX_BUFFER];
-	CHAR    szApacheDir[MAX_BUFFER];
-	CHAR    szPhpDir[MAX_BUFFER];
-	CHAR    szWebDir[MAX_BUFFER];
-	CHAR	szVirtualDir[MAX_BUFFER];
-	CHAR    szApiType[MAX_BUFFER];
-	CHAR    szServerPort[MAX_BUFFER];
-	CHAR    szFile[MAX_BUFFER];
-	CHAR    szFind[MAX_BUFFER];
-	CHAR    szReplace[MAX_BUFFER];
-	bool    bJava = false;
-	int     nLen;
 
-	// retrieve the CustomActionData
-	dwDataLen = MAX_BUFFER;
-	MsiGetPropertyW(hMSI, L"CustomActionData", wszCustomActionData, &dwDataLen);
+	MsiGetProperty(hMSI, "CustomActionData", szCustomActionData, &dwDataLen);
 
-	nLen = WideCharToMultiByte(CP_ACP, 0, wszCustomActionData, dwDataLen, szCustomActionData, MAX_BUFFER, NULL, NULL);
-	szCustomActionData[nLen] = NULL_CHAR;
+	std::string szMsiData = szCustomActionData;
+	
+	std::vector<std::string> tokens;
+	Tokenize(szMsiData, tokens, ";");
 
-	szInstallDir[0] = NULL_CHAR;
-	szApacheDir[0] = NULL_CHAR;
-	szPhpDir[0] = NULL_CHAR;
-	szWebDir[0] = NULL_CHAR;
-	szApiType[0] = NULL_CHAR;
-	szServerPort[0] = NULL_CHAR;
-
-	//[WEBEXTENSIONSLOCATION];[APACHE_API_TYPE];[APACHE_PORT];[APACHELOCATION];[PHPLOCATION];[WEBROOTLOCATION]
-	char * tok = strtok(szCustomActionData, ";");
-	//[WEBEXTENSIONSLOCATION]
-	if(tok)
+	if (tokens.size() == 7)
 	{
-		strcpy(szInstallDir, tok);
-		tok = strtok(NULL, ";");
-		//[APACHE_API_TYPE]
-		if(tok)
-		{
-			strcpy(szApiType, tok);
-			tok = strtok(NULL, ";");
-		}
-		//[APACHE_PORT]
-		if(tok)
-		{
-			strcpy(szServerPort, tok);
-			tok = strtok(NULL, ";");
-		}
-		//[APACHELOCATION]
-		if(tok)
-		{
-			strcpy(szApacheDir, tok);
-			tok = strtok(NULL, ";");
-		}
-		//[PHPLOCATION]
-		if(tok)
-		{
-			strcpy(szPhpDir, tok);
-			tok = strtok(NULL, ";");
-		}
-		//[WEBROOTLOCATION]
-		if(tok)
-		{
-			strcpy(szWebDir, tok);
-			tok = strtok(NULL, ";");
-		}
-		//[VIRTUALDIR]
-		if(tok)
-		{
-			strcpy(szVirtualDir, tok);
-		}
-	}
+		std::string szWebExtDir = tokens[0];
+		std::string szApiType = tokens[1];
+		std::string szPortNo = tokens[2];
+		std::string szApacheDir = tokens[3];
+		std::string szPhpDir = tokens[4];
+		std::string szWebRootDir = tokens[5];
+		std::string szVirtualDir = tokens[6];
 
-	bJava = ( strcmp(szApiType,"JAVA") == 0 );
+		//Apach-ify these paths
+		FindAndReplace(szWebExtDir, "\\", "/");
+		FindAndReplace(szPhpDir, "\\", "/");
+		FindAndReplace(szWebRootDir, "\\", "/");
+		FindAndReplace(szApacheDir, "\\", "/");
 
-	ConvertToApachePath(szInstallDir);
-	ConvertToApachePath(szPhpDir);
-	ConvertToApachePath(szWebDir);
-	ConvertToApachePath(szApacheDir);
+		//Strip trailing slashes if there is one
+		std::string::size_type pos = szWebExtDir.find_last_of("/");
+		if (pos != std::string::npos && pos == szWebExtDir.length() - 1)
+			szWebExtDir.erase(pos);
 
-	// The directory will have a fwd slash, so the last char should be null-terminated
-	szApacheDir[strlen(szApacheDir)-1] = NULL_CHAR;
+		pos = szPhpDir.find_last_of("/");
+		if (pos != std::string::npos && pos == szPhpDir.length() - 1)
+			szPhpDir.erase(pos);
 
-	// create the file path to http.conf
-	strcpy(szFile, szApacheDir);
-	strcat(szFile, "\\conf\\httpd.conf");
+		pos = szWebRootDir.find_last_of("/");
+		if (pos != std::string::npos && pos == szWebRootDir.length() - 1)
+			szWebRootDir.erase(pos);
 
-	if( FileExists(szFile) )
-	{
-		//::MessageBoxW(NULL, L"httpd.conf found", L"Test", MB_OK);
-		// Opening the file to read and write.
-		//
-		CFile cfInFile(szFile, CFile::modeRead);
-		DWORD dwFileLen = cfInFile.GetLength();
+		pos = szApacheDir.find_last_of("/");
+		if (pos != std::string::npos && pos == szApacheDir.length() - 1)
+			szApacheDir.erase(pos);
 
-        //CHAR msg[20];
-        //sprintf(msg, "Length: %d", dwFileLen);
-        //::MessageBox(NULL, msg, "Test", MB_OK);
-        
+		std::string szFileName = szApacheDir + "\\conf\\httpd.conf";
+		const char* szHttpdConf = szFileName.c_str();
+		bool bJava = (strcmp(szApiType.c_str(), "JAVA") == 0);
 
-		// Read the entire contents of the file.
-		//
-		char *szBuff = new char[dwFileLen + 1];
-		cfInFile.Read(szBuff, dwFileLen);
-		szBuff[dwFileLen] = '\0';                   // Add ending null to buffer.
+		if (FileExists(szHttpdConf))
+		{
+			std::ifstream fin(szHttpdConf);
+			
+			std::string buffer;
+			std::string line;
+			while(!fin.eof())
+			{
+				std::getline(fin, line);
 
-		cfInFile.Close();
-        //::MessageBoxW(NULL, L"read httpd.conf contents", L"Test", MB_OK);
+				//Process this line
 
-		// Creating a CString object to store the contents and help
-		// us to add the desired configuration.
-		//
-		CString csBuff(szBuff);
+				FindAndReplace(line, "%MG_WEB_ROOT%", szWebRootDir);
+				FindAndReplace(line, "%MG_WEB_PORT%", szPortNo);
+				FindAndReplace(line, "%MG_WEB_PHP%", szPhpDir);
+				FindAndReplace(line, "%MG_WEB_APACHE%", szApacheDir);
+				FindAndReplace(line, "%MG_VIRTUAL_DIR%", szVirtualDir);
+				if (bJava)
+				{
+					FindAndReplace(line, "%MG_INCLUDE_TOMCAT%", "Include conf/tomcat.conf");
+					FindAndReplace(line, "%MG_PHP_API%", "#");
+					FindAndReplace(line, "%MG_JAVA_API%", "");
+				}
+				else
+				{
+					FindAndReplace(line, "%MG_INCLUDE_TOMCAT%", "#Uncomment to enable the Java API\n#Include conf/tomcat.conf");
+					FindAndReplace(line, "%MG_PHP_API%", "");
+					FindAndReplace(line, "%MG_JAVA_API%", "#");
+				}
 
-		// Replace %MG_WEB_ROOT%
-		strcpy(szFind,"%MG_WEB_ROOT%");
-		strcpy(szReplace, szWebDir);
-		csBuff.Replace(szFind,szReplace);
+				buffer += line + "\n";
+			}
+			fin.close();
+			
+			std::ofstream fout(szHttpdConf);
+			fout << buffer;
+			fout.close();
+		}
 
-        //::MessageBox(NULL, TEXT("Replace MG_WEB_ROOT"), TEXT("Test"), MB_OK);
+		szFileName = szApacheDir + "\\conf\\tomcat.conf";
+		const char* szTomcatConf = szFileName.c_str();
 
-		// Replace %MG_WEB_PORT%
-		strcpy(szFind,"%MG_WEB_PORT%");
-		strcpy(szReplace, szServerPort);
-		csBuff.Replace(szFind,szReplace);
+		if (FileExists(szTomcatConf))
+		{
+			std::ifstream fin(szTomcatConf);
+			
+			std::string buffer;
+			std::string line;
+			while(!fin.eof())
+			{
+				std::getline(fin, line);
 
-        //::MessageBox(NULL, TEXT("Replace MG_WEB_PORT"), TEXT("Test"), MB_OK);
+				//Process this line
+				FindAndReplace(line, "%MG_WEB_APACHE%", szApacheDir);
+				FindAndReplace(line, "%MG_VIRTUAL_DIR%", szVirtualDir);
 
-		// Replace %MG_WEB_PHP%
-		strcpy(szFind,"%MG_WEB_PHP%");
-		strcpy(szReplace, szPhpDir);
-		csBuff.Replace(szFind,szReplace);
+				buffer += line + "\n";
+			}
+			fin.close();
 
-        //::MessageBox(NULL, TEXT("Replace MG_WEB_PHP"), TEXT("Test"), MB_OK);
-
-		// Replace %MG_WEB_APACHE%
-		strcpy(szFind,"%MG_WEB_APACHE%");
-		strcpy(szReplace, szApacheDir);
-		csBuff.Replace(szFind, szReplace);
-
-        //::MessageBox(NULL, TEXT("Replace MG_WEB_APACHE"), TEXT("Test"), MB_OK);
-
-		// Replace %MG_VIRTUAL_DIR%
-		strcpy(szFind, "%MG_VIRTUAL_DIR%");
-		strcpy(szReplace, szVirtualDir);
-		csBuff.Replace(szFind, szReplace);
-
-        //::MessageBox(NULL, TEXT("Replace MG_VIRTUAL_DIR"), TEXT("Test"), MB_OK);
-
-		// If java, then include the tomcat configuration
-		strcpy(szFind, "%MG_INCLUDE_TOMCAT%");
-		csBuff.Replace(szFind, bJava ? "Include conf/tomcat.conf" : "#Uncomment to enable the Java API\n#Include conf/tomcat.conf");
-
-        //::MessageBox(NULL, TEXT("Set Tomcat"), TEXT("Test"), MB_OK);
-
-		// Toggle PHP API section
-		strcpy(szFind, "%MG_PHP_API%");
-		strcpy(szReplace, bJava ? "#" : "");
-		csBuff.Replace(szFind, szReplace);
-
-        //::MessageBox(NULL, TEXT("Toggle PHP API"), TEXT("Test"), MB_OK);
-
-		// Toggle Java API section
-		strcpy(szFind, "%MG_JAVA_API%");
-		strcpy(szReplace, bJava ? "" : "#");
-		csBuff.Replace(szFind, szReplace);
-
-        //::MessageBox(NULL, TEXT("Toggle Java API"), TEXT("Test"), MB_OK);
-
-		CFile cfOutFile(szFile, CFile::modeWrite);
-
-		// Write and modify the contents.
-		//
-		DWORD dwNewLength = csBuff.GetLength();
-		cfOutFile.SeekToBegin();
-		cfOutFile.Write(csBuff, dwNewLength);
-		cfOutFile.SetLength(dwNewLength);
-		cfOutFile.Close();
-
-        //::MessageBoxW(NULL, L"httpd.conf updated", L"Test", MB_OK);
+			std::ofstream fout(szTomcatConf);
+			fout << buffer;
+			fout.close();
+		}
 	}
-
-	//Check if the tomcat.conf file was included in httpd.conf, if so we need to do placeholder substitution there too.
-	strcpy(szFile, szApacheDir);
-	strcat(szFile, "\\conf\\tomcat.conf");
-
-	if(FileExists(szFile))
-	{
-        //::MessageBoxW(NULL, L"tomcat.conf found", L"Test", MB_OK);
-
-		CFile cfInFile(szFile, CFile::modeRead);
-		DWORD dwFileLen = cfInFile.GetLength();
-
-		// Read the entire contents of the file.
-		//
-		char *szBuff = new char[dwFileLen + 1];
-		cfInFile.Read(szBuff, dwFileLen);
-		szBuff[dwFileLen] = '\0';                   // Add ending null to buffer.
-
-		cfInFile.Close();
-
-		CString csBuff(szBuff);
-		// Replace %MG_WEB_APACHE%
-		strcpy(szFind,"%MG_WEB_APACHE%");
-		strcpy(szReplace, szApacheDir);
-		csBuff.Replace(szFind,szReplace);
-
-		// Replace %MG_VIRTUAL_DIR%
-		strcpy(szFind, "%MG_VIRTUAL_DIR%");
-		strcpy(szReplace, szVirtualDir);
-		csBuff.Replace(szFind, szReplace);
-
-		CFile cfOutFile(szFile, CFile::modeWrite);
-
-		// Write and modify the contents.
-		//
-		DWORD dwNewLength = csBuff.GetLength();
-		cfOutFile.SeekToBegin();
-		cfOutFile.Write(csBuff, dwNewLength);
-		cfOutFile.SetLength(dwNewLength);
-		cfOutFile.Close();
-	}
-
-	strcpy(szFile, szInstallDir);
-	strcat(szFile, "Tomcat\\conf\\Catalina\\localhost\\mapguide.xml");
-
-	if( FileExists(szFile) )
-	{
-		// Opening the file to read and write.
-		//
-		CFile cfInFile(szFile, CFile::modeRead);
-		DWORD dwFileLen = cfInFile.GetLength();
-
-		// Read the entire contents of the file.
-		//
-		char *szBuff = new char[dwFileLen + 1];
-		cfInFile.Read(szBuff, dwFileLen);
-		szBuff[dwFileLen] = '\0';                   // Add ending null to buffer.
-
-		cfInFile.Close();
-
-		// Creating a CString object to store the contents and help
-		// us to add the desired configuration.
-		//
-		CString csBuff(szBuff);
-		// Replace %MG_WEB_ROOT%
-		strcpy(szFind,"%MG_WEB_ROOT%");
-		//CString csWebDir(szWebDir);
-		//csWebDir.Replace("\\", "/");
-		strcpy(szReplace, szWebDir);
-		csBuff.Replace(szFind,szReplace);
-
-		CFile cfOutFile(szFile, CFile::modeWrite);
-
-		// Write and modify the contents.
-		//
-		DWORD dwNewLength = csBuff.GetLength();
-		cfOutFile.SeekToBegin();
-		cfOutFile.Write(csBuff, dwNewLength);
-		cfOutFile.SetLength(dwNewLength);
-		cfOutFile.Close();
-	}
 	return ERROR_SUCCESS;
 }
 

Modified: trunk/Installer/Custom/iis_actions/CustomAction.cpp
===================================================================
--- trunk/Installer/Custom/iis_actions/CustomAction.cpp	2010-11-27 05:16:58 UTC (rev 5408)
+++ trunk/Installer/Custom/iis_actions/CustomAction.cpp	2010-11-27 11:32:05 UTC (rev 5409)
@@ -21,7 +21,7 @@
 	char szMsg[256];
 	PBYTE pbBuffer = NULL;
 
-	CComPtr<IMSAdminBase> pIMeta;
+	IMSAdminBase* pIMeta = NULL;
 
 	hr = WcaInitialize(hInstall, "PopulateWebSites");
 	ExitOnFailure(hr, "Failed to initialize");
@@ -103,11 +103,17 @@
 	WcaLog(LOGMSG_STANDARD, "Finalizing");
 	sprintf(szMsg, "Final error code: %d", er);
 	WcaLog(LOGMSG_STANDARD, szMsg);
+	if (pIMeta)
+	{
+		pIMeta->Release();
+		pIMeta = NULL;
+	}
 	if (pbBuffer)
 	{
 		delete pbBuffer;
 		pbBuffer = NULL;
 	}
+	CoUninitialize();
 	if (hDb)
 		MsiCloseHandle(hDb);
 	return WcaFinalize(er);

Modified: trunk/Installer/Custom/iis_actions/stdafx.h
===================================================================
--- trunk/Installer/Custom/iis_actions/stdafx.h	2010-11-27 05:16:58 UTC (rev 5408)
+++ trunk/Installer/Custom/iis_actions/stdafx.h	2010-11-27 11:32:05 UTC (rev 5409)
@@ -14,7 +14,6 @@
 #include <strsafe.h>
 #include <msiquery.h>
 
-#include "atlBase.h"
 #include <initguid.h>
 #include "iadmw.h"
 #include "iiscnfg.h"


Property changes on: trunk/Installer/FdoRegUtil
___________________________________________________________________
Modified: svn:ignore
   - Release

   + Release
Release64
*.user
*.ncb


Deleted: trunk/Installer/Installer.sln
===================================================================
--- trunk/Installer/Installer.sln	2010-11-27 05:16:58 UTC (rev 5408)
+++ trunk/Installer/Installer.sln	2010-11-27 11:32:05 UTC (rev 5409)
@@ -1,132 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual Studio 2008
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Installers", "Installers", "{27ADF4E3-77AC-4645-B1BC-9408943D19D3}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{D2A5CB4A-4494-4083-9FBE-64ED543F8FBD}"
-EndProject
-Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "MapGuide Server", "Libraries\MapGuide Server\MapGuide Server.wixproj", "{715E2D88-E822-4A9A-A5A2-DBB71CD9B320}"
-EndProject
-Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "MapGuide", "Installers\MapGuide\MapGuide.wixproj", "{12C62F60-6F52-4112-84AB-0FA8ED44EE77}"
-EndProject
-Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "MapGuide Web Extensions", "Libraries\MapGuide Web Extensions\MapGuide Web Extensions.wixproj", "{D41D53C4-433E-47B5-B663-E79B5569EE22}"
-	ProjectSection(ProjectDependencies) = postProject
-		{03FD713E-15EB-453E-AFDF-21F8DB45C11E} = {03FD713E-15EB-453E-AFDF-21F8DB45C11E}
-	EndProjectSection
-EndProject
-Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "CS Map", "Libraries\CS Map\CS Map.wixproj", "{01313DB9-2AAF-4791-9B81-69BCE3194531}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Custom Actions", "Custom Actions", "{9AB6202A-055B-49E8-9623-986202F0EAD8}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "apache_actions", "Custom\apache_actions\apache_actions.vcproj", "{03FD713E-15EB-453E-AFDF-21F8DB45C11E}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iis_actions", "Custom\iis_actions\iis_actions.vcproj", "{13697B62-C1CD-47EF-9D9B-39F5B01693BB}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Mixed Platforms = Debug|Mixed Platforms
-		Debug|Win32 = Debug|Win32
-		Debug|x64 = Debug|x64
-		Debug|x86 = Debug|x86
-		Release|Mixed Platforms = Release|Mixed Platforms
-		Release|Win32 = Release|Win32
-		Release|x64 = Release|x64
-		Release|x86 = Release|x86
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{715E2D88-E822-4A9A-A5A2-DBB71CD9B320}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
-		{715E2D88-E822-4A9A-A5A2-DBB71CD9B320}.Debug|Mixed Platforms.Build.0 = Debug|x86
-		{715E2D88-E822-4A9A-A5A2-DBB71CD9B320}.Debug|Win32.ActiveCfg = Debug|x86
-		{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}.Debug|x86.ActiveCfg = Debug|x86
-		{715E2D88-E822-4A9A-A5A2-DBB71CD9B320}.Debug|x86.Build.0 = Debug|x86
-		{715E2D88-E822-4A9A-A5A2-DBB71CD9B320}.Release|Mixed Platforms.ActiveCfg = Release|x86
-		{715E2D88-E822-4A9A-A5A2-DBB71CD9B320}.Release|Mixed Platforms.Build.0 = Release|x86
-		{715E2D88-E822-4A9A-A5A2-DBB71CD9B320}.Release|Win32.ActiveCfg = Release|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
-		{12C62F60-6F52-4112-84AB-0FA8ED44EE77}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
-		{12C62F60-6F52-4112-84AB-0FA8ED44EE77}.Debug|Mixed Platforms.Build.0 = Debug|x86
-		{12C62F60-6F52-4112-84AB-0FA8ED44EE77}.Debug|Win32.ActiveCfg = Debug|x86
-		{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}.Debug|x86.ActiveCfg = Debug|x86
-		{12C62F60-6F52-4112-84AB-0FA8ED44EE77}.Debug|x86.Build.0 = Debug|x86
-		{12C62F60-6F52-4112-84AB-0FA8ED44EE77}.Release|Mixed Platforms.ActiveCfg = Release|x86
-		{12C62F60-6F52-4112-84AB-0FA8ED44EE77}.Release|Mixed Platforms.Build.0 = Release|x86
-		{12C62F60-6F52-4112-84AB-0FA8ED44EE77}.Release|Win32.ActiveCfg = Release|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
-		{D41D53C4-433E-47B5-B663-E79B5569EE22}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
-		{D41D53C4-433E-47B5-B663-E79B5569EE22}.Debug|Mixed Platforms.Build.0 = Debug|x86
-		{D41D53C4-433E-47B5-B663-E79B5569EE22}.Debug|Win32.ActiveCfg = Debug|x86
-		{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}.Debug|x86.ActiveCfg = Debug|x86
-		{D41D53C4-433E-47B5-B663-E79B5569EE22}.Debug|x86.Build.0 = Debug|x86
-		{D41D53C4-433E-47B5-B663-E79B5569EE22}.Release|Mixed Platforms.ActiveCfg = Release|x86
-		{D41D53C4-433E-47B5-B663-E79B5569EE22}.Release|Mixed Platforms.Build.0 = Release|x86
-		{D41D53C4-433E-47B5-B663-E79B5569EE22}.Release|Win32.ActiveCfg = Release|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
-		{01313DB9-2AAF-4791-9B81-69BCE3194531}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
-		{01313DB9-2AAF-4791-9B81-69BCE3194531}.Debug|Mixed Platforms.Build.0 = Debug|x86
-		{01313DB9-2AAF-4791-9B81-69BCE3194531}.Debug|Win32.ActiveCfg = Debug|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}.Debug|x86.ActiveCfg = Debug|x86
-		{01313DB9-2AAF-4791-9B81-69BCE3194531}.Debug|x86.Build.0 = Debug|x86
-		{01313DB9-2AAF-4791-9B81-69BCE3194531}.Release|Mixed Platforms.ActiveCfg = Release|x86
-		{01313DB9-2AAF-4791-9B81-69BCE3194531}.Release|Mixed Platforms.Build.0 = Release|x86
-		{01313DB9-2AAF-4791-9B81-69BCE3194531}.Release|Win32.ActiveCfg = Release|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
-		{03FD713E-15EB-453E-AFDF-21F8DB45C11E}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
-		{03FD713E-15EB-453E-AFDF-21F8DB45C11E}.Debug|Mixed Platforms.Build.0 = Debug|Win32
-		{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|x64
-		{03FD713E-15EB-453E-AFDF-21F8DB45C11E}.Debug|x64.Build.0 = Debug|x64
-		{03FD713E-15EB-453E-AFDF-21F8DB45C11E}.Debug|x86.ActiveCfg = Debug|Win32
-		{03FD713E-15EB-453E-AFDF-21F8DB45C11E}.Release|Mixed Platforms.ActiveCfg = Release|Win32
-		{03FD713E-15EB-453E-AFDF-21F8DB45C11E}.Release|Mixed Platforms.Build.0 = Release|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}.Release|x64.ActiveCfg = Release|Win32
-		{03FD713E-15EB-453E-AFDF-21F8DB45C11E}.Release|x64.Build.0 = Release|Win32
-		{03FD713E-15EB-453E-AFDF-21F8DB45C11E}.Release|x86.ActiveCfg = Release|Win32
-		{13697B62-C1CD-47EF-9D9B-39F5B01693BB}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
-		{13697B62-C1CD-47EF-9D9B-39F5B01693BB}.Debug|Mixed Platforms.Build.0 = Debug|Win32
-		{13697B62-C1CD-47EF-9D9B-39F5B01693BB}.Debug|Win32.ActiveCfg = Debug|Win32
-		{13697B62-C1CD-47EF-9D9B-39F5B01693BB}.Debug|Win32.Build.0 = Debug|Win32
-		{13697B62-C1CD-47EF-9D9B-39F5B01693BB}.Debug|x64.ActiveCfg = Debug|x64
-		{13697B62-C1CD-47EF-9D9B-39F5B01693BB}.Debug|x64.Build.0 = Debug|x64
-		{13697B62-C1CD-47EF-9D9B-39F5B01693BB}.Debug|x86.ActiveCfg = Debug|Win32
-		{13697B62-C1CD-47EF-9D9B-39F5B01693BB}.Release|Mixed Platforms.ActiveCfg = Release|Win32
-		{13697B62-C1CD-47EF-9D9B-39F5B01693BB}.Release|Mixed Platforms.Build.0 = Release|Win32
-		{13697B62-C1CD-47EF-9D9B-39F5B01693BB}.Release|Win32.ActiveCfg = Release|Win32
-		{13697B62-C1CD-47EF-9D9B-39F5B01693BB}.Release|Win32.Build.0 = Release|Win32
-		{13697B62-C1CD-47EF-9D9B-39F5B01693BB}.Release|x64.ActiveCfg = Release|Win32
-		{13697B62-C1CD-47EF-9D9B-39F5B01693BB}.Release|x64.Build.0 = Release|Win32
-		{13697B62-C1CD-47EF-9D9B-39F5B01693BB}.Release|x86.ActiveCfg = Release|Win32
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-	GlobalSection(NestedProjects) = preSolution
-		{12C62F60-6F52-4112-84AB-0FA8ED44EE77} = {27ADF4E3-77AC-4645-B1BC-9408943D19D3}
-		{715E2D88-E822-4A9A-A5A2-DBB71CD9B320} = {D2A5CB4A-4494-4083-9FBE-64ED543F8FBD}
-		{D41D53C4-433E-47B5-B663-E79B5569EE22} = {D2A5CB4A-4494-4083-9FBE-64ED543F8FBD}
-		{01313DB9-2AAF-4791-9B81-69BCE3194531} = {D2A5CB4A-4494-4083-9FBE-64ED543F8FBD}
-		{03FD713E-15EB-453E-AFDF-21F8DB45C11E} = {9AB6202A-055B-49E8-9623-986202F0EAD8}
-		{13697B62-C1CD-47EF-9D9B-39F5B01693BB} = {9AB6202A-055B-49E8-9623-986202F0EAD8}
-	EndGlobalSection
-EndGlobal

Added: trunk/Installer/InstallerPreReq.sln
===================================================================
--- trunk/Installer/InstallerPreReq.sln	                        (rev 0)
+++ trunk/Installer/InstallerPreReq.sln	2010-11-27 11:32:05 UTC (rev 5409)
@@ -0,0 +1,45 @@
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual C++ Express 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "apache_actions", "Custom\apache_actions\apache_actions.vcproj", "{03FD713E-15EB-453E-AFDF-21F8DB45C11E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iis_actions", "Custom\iis_actions\iis_actions.vcproj", "{13697B62-C1CD-47EF-9D9B-39F5B01693BB}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FdoRegUtil", "FdoRegUtil\FdoRegUtil.vcproj", "{F671A5C4-A796-4CF4-A71F-97B0265B4FBE}"
+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}.Release|x64.ActiveCfg = Release|Win32
+		{03FD713E-15EB-453E-AFDF-21F8DB45C11E}.Release|x64.Build.0 = Release|Win32
+		{13697B62-C1CD-47EF-9D9B-39F5B01693BB}.Debug|Win32.ActiveCfg = Debug|Win32
+		{13697B62-C1CD-47EF-9D9B-39F5B01693BB}.Debug|Win32.Build.0 = Debug|Win32
+		{13697B62-C1CD-47EF-9D9B-39F5B01693BB}.Debug|x64.ActiveCfg = Debug|Win32
+		{13697B62-C1CD-47EF-9D9B-39F5B01693BB}.Debug|x64.Build.0 = Debug|Win32
+		{13697B62-C1CD-47EF-9D9B-39F5B01693BB}.Release|Win32.ActiveCfg = Release|Win32
+		{13697B62-C1CD-47EF-9D9B-39F5B01693BB}.Release|Win32.Build.0 = Release|Win32
+		{13697B62-C1CD-47EF-9D9B-39F5B01693BB}.Release|x64.ActiveCfg = Release|Win32
+		{13697B62-C1CD-47EF-9D9B-39F5B01693BB}.Release|x64.Build.0 = Release|Win32
+		{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
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

Added: trunk/Installer/InstallerWix.sln
===================================================================
--- trunk/Installer/InstallerWix.sln	                        (rev 0)
+++ trunk/Installer/InstallerWix.sln	2010-11-27 11:32:05 UTC (rev 5409)
@@ -0,0 +1,38 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "CS Map", "Libraries\CS Map\CS Map.wixproj", "{01313DB9-2AAF-4791-9B81-69BCE3194531}"
+EndProject
+Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "MapGuide Server", "Libraries\MapGuide Server\MapGuide Server.wixproj", "{715E2D88-E822-4A9A-A5A2-DBB71CD9B320}"
+EndProject
+Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "MapGuide Web Extensions", "Libraries\MapGuide Web Extensions\MapGuide Web Extensions.wixproj", "{D41D53C4-433E-47B5-B663-E79B5569EE22}"
+EndProject
+Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "MapGuide", "Installers\MapGuide\MapGuide.wixproj", "{12C62F60-6F52-4112-84AB-0FA8ED44EE77}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|x86 = Debug|x86
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{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|x86.ActiveCfg = Release|x86
+		{01313DB9-2AAF-4791-9B81-69BCE3194531}.Release|x86.Build.0 = Release|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|x86.ActiveCfg = Release|x86
+		{715E2D88-E822-4A9A-A5A2-DBB71CD9B320}.Release|x86.Build.0 = Release|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|x86.ActiveCfg = Release|x86
+		{D41D53C4-433E-47B5-B663-E79B5569EE22}.Release|x86.Build.0 = Release|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|x86.ActiveCfg = Release|x86
+		{12C62F60-6F52-4112-84AB-0FA8ED44EE77}.Release|x86.Build.0 = Release|x86
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

Modified: trunk/Installer/Installers/MapGuide/MapGuide.wxs
===================================================================
--- trunk/Installer/Installers/MapGuide/MapGuide.wxs	2010-11-27 05:16:58 UTC (rev 5408)
+++ trunk/Installer/Installers/MapGuide/MapGuide.wxs	2010-11-27 11:32:05 UTC (rev 5409)
@@ -49,14 +49,14 @@
         <Property Id="APACHE_PORT" Secure="yes" Value="8008" />
         <Property Id="APACHE_VERSION" Secure="yes" Value="2.2.11" />
         <Property Id="PHP_VERSION" Secure="yes" Value="5.3.2" />
-        <Property Id="MG_VERSION_MAJOR_MINOR" Secure="yes" Value="2.2" />
+        <Property Id="MG_VERSION_MAJOR_MINOR" Secure="yes" Value="2.3" />
         <!-- Server Port Settings  -->
         <Property Id="MG_ADMIN_PORT" Secure="yes" Value="2810" />
         <Property Id="MG_CLIENT_PORT" Secure="yes" Value="2811" />
         <Property Id="MG_SITE_PORT" Secure="yes" Value="2812" />
         <!-- Used by FdoRegUtil.exe -->
-        <Property Id="FDO_VERSION" Secure="yes" Value="3.5.0.0" />
-        <Property Id="FDO_VERSION_SMALL" Secure="yes" Value="3.5" />
+        <Property Id="FDO_VERSION" Secure="yes" Value="3.6.0.0" />
+        <Property Id="FDO_VERSION_SMALL" Secure="yes" Value="3.6" />
 
         <!-- 
         These are currently static, though there is opportunity in the future for these
@@ -445,7 +445,6 @@
             <Publish Dialog="WebServerConfigDlgIIS" Control="Next" Event="Remove" Value="FdoArcSdeProviderFeature" Order="3">1</Publish>
             <Publish Dialog="WebServerConfigDlgIIS" Control="Next" Event="Remove" Value="FdoKingOracleProviderFeature" Order="4">1</Publish>
             <Publish Dialog="WebServerConfigDlgIIS" Control="Next" Event="Remove" Value="FdoMySqlProviderFeature" Order="5">1</Publish>
-            <Publish Dialog="WebServerConfigDlgIIS" Control="Next" Event="Remove" Value="FdoPostGisProviderFeature" Order="6">1</Publish>
             <Publish Dialog="WebServerConfigDlgIIS" Control="Next" Event="Remove" Value="FdoPostgreSqlProviderFeature" Order="7">1</Publish>
             <!-- If Apache, or IIS and the .Net Framework is not installed, set feature default for the ASPX viewer to not install -->
             <Publish Dialog="WebServerConfigDlgIIS" Control="Next" Event="Remove" Value="WebExtMapViewerASPXFeature" Order="7">(MGWEB_CONFIG=&quot;APACHE&quot;) OR (MGWEB_CONFIG=&quot;IIS&quot; AND NOT NETFRAMEWORK20)</Publish>
@@ -677,8 +676,7 @@
             <Custom Action="FdoRegMySqlCmd" After="FdoRegOdbcCmd">&amp;FdoMySqlProviderFeature&gt;2</Custom>
             <Custom Action="FdoRegGdalCmd" After="FdoRegMySqlCmd">&amp;FdoGdalProviderFeature&gt;2</Custom>
             <Custom Action="FdoRegOgrCmd" After="FdoRegGdalCmd">&amp;FdoOgrProviderFeature&gt;2</Custom>
-            <Custom Action="FdoRegPostGisCmd" After="FdoRegOgrCmd">&amp;FdoPostGisProviderFeature&gt;2</Custom>
-            <Custom Action="FdoRegPostgreSqlCmd" After="FdoRegPostGisCmd">&amp;FdoPostgreSqlProviderFeature&gt;2</Custom>
+            <Custom Action="FdoRegPostgreSqlCmd" After="FdoRegOgrCmd">&amp;FdoPostgreSqlProviderFeature&gt;2</Custom>
             <Custom Action="FdoRegOracleCmd" After="FdoRegPostgreSqlCmd">&amp;FdoKingOracleProviderFeature&gt;2</Custom>
             <Custom Action="FdoRegSqlServerCmd" After="FdoRegOracleCmd">&amp;FdoSqlServerSpatialProviderFeature&gt;2</Custom>
             <Custom Action="FdoRegSltCmd" After="FdoRegSqlServerCmd">&amp;FdoSltProviderFeature&gt;2</Custom>
@@ -693,8 +691,7 @@
             <Custom Action="FdoRegMySql" After="FdoRegOdbc">&amp;FdoMySqlProviderFeature&gt;2</Custom>
             <Custom Action="FdoRegGdal" After="FdoRegMySql">&amp;FdoGdalProviderFeature&gt;2</Custom>
             <Custom Action="FdoRegOgr" After="FdoRegGdal">&amp;FdoOgrProviderFeature&gt;2</Custom>
-            <Custom Action="FdoRegPostGis" After="FdoRegOgr">&amp;FdoPostGisProviderFeature&gt;2</Custom>
-            <Custom Action="FdoRegPostgreSql" After="FdoRegPostGis">&amp;FdoPostgreSqlProviderFeature&gt;2</Custom>
+            <Custom Action="FdoRegPostgreSql" After="FdoRegOgr">&amp;FdoPostgreSqlProviderFeature&gt;2</Custom>
             <Custom Action="FdoRegOracle" After="FdoRegPostgreSql">&amp;FdoKingOracleProviderFeature&gt;2</Custom>
             <Custom Action="FdoRegSqlServer" After="FdoRegOracle">&amp;FdoSqlServerSpatialProviderFeature&gt;2</Custom>
             <Custom Action="FdoRegSlt" After="FdoRegSqlServer">&amp;FdoSltProviderFeature&gt;2</Custom>
@@ -709,8 +706,7 @@
             <Custom Action="FdoUnRegMySqlCmd" After="FdoUnRegOdbcCmd">&amp;FdoMySqlProviderFeature=2</Custom>
             <Custom Action="FdoUnRegGdalCmd" After="FdoUnRegMySqlCmd">&amp;FdoGdalProviderFeature=2</Custom>
             <Custom Action="FdoUnRegOgrCmd" After="FdoUnRegGdalCmd">&amp;FdoOgrProviderFeature=2</Custom>
-            <Custom Action="FdoUnRegPostGisCmd" After="FdoUnRegOgrCmd">&amp;FdoPostGisProviderFeature=2</Custom>
-            <Custom Action="FdoUnRegPostgreSqlCmd" After="FdoUnRegPostGisCmd">&amp;FdoPostgreSqlProviderFeature=2</Custom>
+            <Custom Action="FdoUnRegPostgreSqlCmd" After="FdoUnRegOgrCmd">&amp;FdoPostgreSqlProviderFeature=2</Custom>
             <Custom Action="FdoUnRegOracleCmd" After="FdoUnRegPostgreSqlCmd">&amp;FdoKingOracleProviderFeature=2</Custom>
             <Custom Action="FdoUnRegSqlServerCmd" After="FdoUnRegOracleCmd">&amp;FdoSqlServerSpatialProviderFeature=2</Custom>
             <Custom Action="FdoUnRegSltCmd" After="FdoUnRegSqlServerCmd">&amp;FdoSltProviderFeature=2</Custom>
@@ -725,8 +721,7 @@
             <Custom Action="FdoUnRegMySql" After="FdoUnRegOdbc">&amp;FdoMySqlProviderFeature=2</Custom>
             <Custom Action="FdoUnRegGdal" After="FdoUnRegMySql">&amp;FdoGdalProviderFeature=2</Custom>
             <Custom Action="FdoUnRegOgr" After="FdoUnRegGdal">&amp;FdoOgrProviderFeature=2</Custom>
-            <Custom Action="FdoUnRegPostGis" After="FdoUnRegOgr">&amp;FdoPostGisProviderFeature=2</Custom>
-            <Custom Action="FdoUnRegPostgreSql" After="FdoUnRegPostGis">&amp;FdoPostgreSqlProviderFeature=2</Custom>
+            <Custom Action="FdoUnRegPostgreSql" After="FdoUnRegOgr">&amp;FdoPostgreSqlProviderFeature=2</Custom>
             <Custom Action="FdoUnRegOracle" After="FdoUnRegPostgreSql">&amp;FdoKingOracleProviderFeature=2</Custom>
             <Custom Action="FdoUnRegSqlServer" After="FdoUnRegOracle">&amp;FdoSqlServerSpatialProviderFeature=2</Custom>
             <Custom Action="FdoUnRegSlt" After="FdoUnRegSqlServer">&amp;FdoSltProviderFeature=2</Custom>

Modified: trunk/Installer/Libraries/MapGuide Server/FDO.wxs
===================================================================
--- trunk/Installer/Libraries/MapGuide Server/FDO.wxs	2010-11-27 05:16:58 UTC (rev 5408)
+++ trunk/Installer/Libraries/MapGuide Server/FDO.wxs	2010-11-27 11:32:05 UTC (rev 5409)
@@ -19,7 +19,6 @@
       <CustomAction Execute="immediate" Id="FdoRegMySqlCmd" Property="FdoRegMySql" Value="[FdoReg] -r &quot;OSGeo.MySQL.[FDO_VERSION_SMALL]&quot; &quot;!(loc.MySqlProvider)&quot; &quot;!(loc.MySqlProviderDesc)&quot; &quot;[FDO_VERSION]&quot; &quot;[FDO_VERSION]&quot; &quot;.\MySQLProvider.dll&quot;" />
       <CustomAction Execute="immediate" Id="FdoRegGdalCmd" Property="FdoRegGdal" Value="[FdoReg] -r &quot;OSGeo.Gdal.[FDO_VERSION_SMALL]&quot; &quot;!(loc.GdalProvider)&quot; &quot;!(loc.GdalProviderDesc)&quot; &quot;[FDO_VERSION]&quot; &quot;[FDO_VERSION]&quot; &quot;.\GRFPProvider.dll&quot;" />
       <CustomAction Execute="immediate" Id="FdoRegOgrCmd" Property="FdoRegOgr" Value="[FdoReg] -r &quot;OSGeo.OGR.[FDO_VERSION_SMALL]&quot; &quot;!(loc.OgrProvider)&quot; &quot;!(loc.OgrProviderDesc)&quot; &quot;[FDO_VERSION]&quot; &quot;[FDO_VERSION]&quot; &quot;.\OGRProvider.dll&quot;" />
-      <CustomAction Execute="immediate" Id="FdoRegPostGisCmd" Property="FdoRegPostGis" Value="[FdoReg] -r &quot;OSGeo.PostGIS.[FDO_VERSION_SMALL]&quot; &quot;!(loc.PostGisProvider)&quot; &quot;!(loc.PostGisProviderDesc)&quot; &quot;[FDO_VERSION]&quot; &quot;[FDO_VERSION]&quot; &quot;.\PostGISProvider.dll&quot;" />
       <CustomAction Execute="immediate" Id="FdoRegPostgreSqlCmd" Property="FdoRegPostgreSql" Value="[FdoReg] -r &quot;OSGeo.PostgreSQL.[FDO_VERSION_SMALL]&quot; &quot;!(loc.PostgreSqlProvider)&quot; &quot;!(loc.PostgreSqlProviderDesc)&quot; &quot;[FDO_VERSION]&quot; &quot;[FDO_VERSION]&quot; &quot;.\PostgreSQLProvider.dll&quot;" />
       <CustomAction Execute="immediate" Id="FdoRegOracleCmd" Property="FdoRegOracle" Value="[FdoReg] -r &quot;King.Oracle.[FDO_VERSION_SMALL]&quot; &quot;!(loc.KingOracleProvider)&quot; &quot;!(loc.KingOracleProviderDesc)&quot; &quot;[FDO_VERSION]&quot; &quot;[FDO_VERSION]&quot; &quot;.\KingOracleProvider.dll&quot;" />
       <CustomAction Execute="immediate" Id="FdoRegSqlServerCmd" Property="FdoRegSqlServer" Value="[FdoReg] -r &quot;OSGeo.SQLServerSpatial.[FDO_VERSION_SMALL]&quot; &quot;!(loc.SqlServerProvider)&quot; &quot;!(loc.SqlServerProviderDesc)&quot; &quot;[FDO_VERSION]&quot; &quot;[FDO_VERSION]&quot; &quot;.\SQLServerSpatialProvider.dll&quot;" />
@@ -34,7 +33,6 @@
       <CustomAction Id="FdoRegMySql" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="ignore" Impersonate="no"/>
       <CustomAction Id="FdoRegGdal" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="ignore" Impersonate="no"/>
       <CustomAction Id="FdoRegOgr" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="ignore" Impersonate="no"/>
-      <CustomAction Id="FdoRegPostGis" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="ignore" Impersonate="no"/>
       <CustomAction Id="FdoRegPostgreSql" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="ignore" Impersonate="no"/>
       <CustomAction Id="FdoRegOracle" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="ignore" Impersonate="no"/>
       <CustomAction Id="FdoRegSqlServer" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="ignore" Impersonate="no"/>
@@ -49,7 +47,6 @@
       <CustomAction Execute="immediate" Id="FdoUnRegMySqlCmd" Property="FdoUnRegMySql" Value="[FdoReg] -u &quot;OSGeo.MySQL.[FDO_VERSION_SMALL]&quot;" />
       <CustomAction Execute="immediate" Id="FdoUnRegGdalCmd" Property="FdoUnRegGdal" Value="[FdoReg] -u &quot;OSGeo.Gdal.[FDO_VERSION_SMALL]&quot;" />
       <CustomAction Execute="immediate" Id="FdoUnRegOgrCmd" Property="FdoUnRegOgr" Value="[FdoReg] -u &quot;OSGeo.OGR.[FDO_VERSION_SMALL]&quot;" />
-      <CustomAction Execute="immediate" Id="FdoUnRegPostGisCmd" Property="FdoUnRegPostGis" Value="[FdoReg] -u &quot;OSGeo.PostGIS.[FDO_VERSION_SMALL]&quot;" />
       <CustomAction Execute="immediate" Id="FdoUnRegPostgreSqlCmd" Property="FdoUnRegPostgresSql" Value="[FdoReg] -u &quot;OSGeo.PostgreSQL.[FDO_VERSION_SMALL]&quot;" />
       <CustomAction Execute="immediate" Id="FdoUnRegOracleCmd" Property="FdoUnRegOracle" Value="[FdoReg] -u &quot;King.Oracle.[FDO_VERSION_SMALL]&quot;" />
       <CustomAction Execute="immediate" Id="FdoUnRegSqlServerCmd" Property="FdoUnRegSqlServer" Value="[FdoReg] -u &quot;OSGeo.SQLServerSpatial.[FDO_VERSION_SMALL]&quot;" />
@@ -64,7 +61,6 @@
       <CustomAction Id="FdoUnRegMySql" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="ignore" Impersonate="no"/>
       <CustomAction Id="FdoUnRegGdal" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="ignore" Impersonate="no"/>
       <CustomAction Id="FdoUnRegOgr" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="ignore" Impersonate="no"/>
-      <CustomAction Id="FdoUnRegPostGis" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="ignore" Impersonate="no"/>
       <CustomAction Id="FdoUnRegPostgreSql" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="ignore" Impersonate="no"/>
       <CustomAction Id="FdoUnRegOracle" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="ignore" Impersonate="no"/>
       <CustomAction Id="FdoUnRegSqlServer" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="ignore" Impersonate="no"/>
@@ -92,8 +88,8 @@
           <!-- FDO Core -->
           <Component Id="FdoCoreCompnent" Win64="$(var.Win64)" Guid="90F4CB26-524F-499B-AA22-BD17036B167D">
               <File Id="FdoRegUtil" Checksum="yes" Source="$(var.MgSource)\Server\FDO\FdoRegUtil.exe" />
-              <File Id="FdoBoostDateTime" Checksum="yes" Source="$(var.MgSource)\Server\FDO\boost_date_time-vc90-mt-1_34_1.dll" />
-              <File Id="FdoBoostThread" Checksum="yes" Source="$(var.MgSource)\Server\FDO\boost_thread-vc90-mt-1_34_1.dll" />
+              <File Id="FdoBoostDateTime" Checksum="yes" Source="$(var.MgSource)\Server\FDO\boost_date_time-vc90-mt-1_42.dll" />
+              <File Id="FdoBoostThread" Checksum="yes" Source="$(var.MgSource)\Server\FDO\boost_thread-vc90-mt-1_42.dll" />
               <File Id="FdoExpressionEngine" Checksum="yes" Source="$(var.MgSource)\Server\FDO\ExpressionEngine.dll" />
               <File Id="FdoCore" Checksum="yes" Source="$(var.MgSource)\Server\FDO\FDO.dll" />
               <File Id="FdoCommon" Checksum="yes" Source="$(var.MgSource)\Server\FDO\FDOCommon.dll" />
@@ -101,10 +97,10 @@
               <File Id="FdoMessage" Checksum="yes" Source="$(var.MgSource)\Server\FDO\FDOMessage.dll" />
               <File Id="FdoSpatial" Checksum="yes" Source="$(var.MgSource)\Server\FDO\FDOSpatial.dll" />
               <File Id="FdoOWS" Checksum="yes" Source="$(var.MgSource)\Server\FDO\OWS.dll" />
-              <File Id="GdalLib" Checksum="yes" Source="$(var.MgSource)\Server\FDO\gdal16.dll" />
-              <File Id="XalanLib" Checksum="yes" Source="$(var.MgSource)\Server\FDO\Xalan-C_1_7_0.dll" />
-              <File Id="XalanMessagesLib" Checksum="yes" Source="$(var.MgSource)\Server\FDO\XalanMessages_1_7_0.dll" />
-              <File Id="XercesLib" Checksum="yes" Source="$(var.MgSource)\Server\FDO\xerces-c_2_5_0.dll" />
+              <File Id="GdalLib" Checksum="yes" Source="$(var.MgSource)\Server\FDO\gdal17.dll" />
+              <File Id="XalanLib" Checksum="yes" Source="$(var.MgSource)\Server\FDO\Xalan-C_1_11.dll" />
+              <File Id="XalanMessagesLib" Checksum="yes" Source="$(var.MgSource)\Server\FDO\XalanMessages_1_11.dll" />
+              <File Id="XercesLib" Checksum="yes" Source="$(var.MgSource)\Server\FDO\xerces-c_3_1.dll" />
               <!-- Generic RDBMS -->
               <File Id="RdbmsMsg" Checksum="yes" Source="$(var.MgSource)\Server\FDO\RdbmsMsg.dll" />
               <File Id="RdbmsOverrides" Checksum="yes" Source="$(var.MgSource)\Server\FDO\RdbmsOverrides.dll" />
@@ -142,12 +138,6 @@
           <Component Id="FdoOgrProviderComponent" Win64="$(var.Win64)" Guid="7FB890D4-8824-478E-83F6-E14DF2A3F949">
               <File Id="OgrProvider" Checksum="yes" Source="$(var.MgSource)\Server\FDO\OGRProvider.dll" />
           </Component>
-          <!-- PostGIS (legacy) Provider -->
-          <Component Id="FdoPostGisProviderComponent" Win64="$(var.Win64)" Guid="1D51342F-3ECC-4053-8475-F70333B4B22D">
-              <File Id="PostGisMessage" Checksum="yes" Source="$(var.MgSource)\Server\FDO\PostGISMessage.dll" />
-              <File Id="PostGisOverrides" Checksum="yes" Source="$(var.MgSource)\Server\FDO\PostGISOverrides.dll" />
-              <File Id="PostGisProvider" Checksum="yes" Source="$(var.MgSource)\Server\FDO\PostGISProvider.dll" />
-          </Component>
           <!-- PostGIS (new) Provider -->
           <Component Id="FdoPostgreSqlProviderComponent" Win64="$(var.Win64)" Guid="550B6CA0-10F8-444B-B51B-8569FF23B8C2">
               <File Id="PostgreSqlOverrides" Checksum="yes" Source="$(var.MgSource)\Server\FDO\PostgreSQLOverrides.dll" />
@@ -208,9 +198,6 @@
         <Feature Id="FdoOgrProviderFeature" Title="!(loc.OgrProvider)" Level="1" Description="!(loc.OgrProviderDesc)" AllowAdvertise="no" TypicalDefault="install" InstallDefault="local">
             <ComponentRef Id="FdoOgrProviderComponent" />
         </Feature>
-        <Feature Id="FdoPostGisProviderFeature" Title="!(loc.PostGisProvider)" Level="1" Description="!(loc.PostGisProviderDesc)" AllowAdvertise="no" TypicalDefault="install" InstallDefault="local">
-            <ComponentRef Id="FdoPostGisProviderComponent" />
-        </Feature>
         <Feature Id="FdoPostgreSqlProviderFeature" Title="!(loc.PostgreSqlProvider)" Level="1" Description="!(loc.PostgreSqlProviderDesc)" AllowAdvertise="no" TypicalDefault="install" InstallDefault="local">
             <ComponentRef Id="FdoPostgreSqlProviderComponent" />
         </Feature>

Modified: trunk/Installer/Libraries/MapGuide Web Extensions/IIS.wxs
===================================================================
--- trunk/Installer/Libraries/MapGuide Web Extensions/IIS.wxs	2010-11-27 05:16:58 UTC (rev 5408)
+++ trunk/Installer/Libraries/MapGuide Web Extensions/IIS.wxs	2010-11-27 11:32:05 UTC (rev 5409)
@@ -9,6 +9,10 @@
        <?define Win64 = "no" ?>
        <?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
     <?endif ?>
+	<!-- isapi_MapAgent.dll -->
+    <?define FCGI_MAP = "[!file_MAPAGENTFILES_100]" ?>
+	<!-- php5isapi.dll -->
+    <?define PHP_MAP = "[!file_PHPFILES_43]" ?>
     <Fragment>
         <Property Id="FRAMEWORKDIR">
             <RegistrySearch
@@ -59,7 +63,7 @@
                 <iis:WebVirtualDir Id="IIS5MapGuideVDir" Alias="[VIRTUALDIR]" Directory="WEBROOTLOCATION" WebSite="IISDefaultWebSite">
                     <iis:WebDirProperties Id="IIS5MapGuideDocuments" DefaultDocuments="index.php,index.html,index.htm,default.aspx,index.aspx,default.htm,default.html" AnonymousAccess="yes" BasicAuthentication="no" WindowsAuthentication="no"/>
                     <iis:WebApplication Id="IIS5MapGuideWebApp" Name="[VIRTUALDIR]">
-                        <iis:WebApplicationExtension Extension="php" Script="yes" Verbs="GET,POST" CheckPath="no" Executable="[!file_PHPFILES_42]" />
+                        <iis:WebApplicationExtension Extension="php" Script="yes" Verbs="GET,POST" CheckPath="no" Executable="$(var.PHP_MAP)" />
                     </iis:WebApplication>
                     <iis:WebVirtualDir Id="IIS5MapAgentVDir" Alias="mapagent" Directory="dir_mapagent_0" >
                         <iis:WebDirProperties Id="IIS5MapAgentProperties" DefaultDocuments="index.html" AnonymousAccess="yes" BasicAuthentication="no" WindowsAuthentication="no"/>
@@ -70,8 +74,8 @@
                         <iis:WebError ErrorCode="401" SubCode="4" />
                         <iis:WebError ErrorCode="401" SubCode="5" />
                         <iis:WebApplication Id="IIS5MapAgentWebApp" Name="mapagent" >
-                            <iis:WebApplicationExtension Extension="fcgi" Script="yes" Verbs="GET,POST" CheckPath="no" Executable="[!file_MAPAGENTFILES_98]" />
-                            <iis:WebApplicationExtension Extension="php" Script="yes" Verbs="GET,POST" CheckPath="no" Executable="[!file_PHPFILES_42]" />
+                            <iis:WebApplicationExtension Extension="fcgi" Script="yes" Verbs="GET,POST" CheckPath="no" Executable="$(var.FCGI_MAP)" />
+                            <iis:WebApplicationExtension Extension="php" Script="yes" Verbs="GET,POST" CheckPath="no" Executable="$(var.PHP_MAP)" />
                         </iis:WebApplication>
                     </iis:WebVirtualDir>
                     <iis:WebVirtualDir Id="IIS5MapAdminVDir" Alias="mapadmin" Directory="dir_mapadmin_0" >
@@ -115,13 +119,13 @@
                 <Condition>MGWEB_CONFIG=&quot;IIS&quot; AND IISVERSIONMAJOR=&quot;#6&quot;</Condition>
                 <CreateFolder />
                 <iis:WebAppPool Id="IIS6MapGuideAppPool" Name="[APP_POOL_NAME]" />
-                <iis:WebServiceExtension Id="IIS6PhpWebServiceExt" Allow="yes" Description="MapGuide PHP ISAPI Extension" File="[!file_PHPFILES_42]" />
-                <iis:WebServiceExtension Id="IIS6MapGuideWebServiceExt" Allow="yes" Description="MapGuide MapAgent ISAPI Extension" File="[!file_MAPAGENTFILES_98]" />
+                <iis:WebServiceExtension Id="IIS6PhpWebServiceExt" Allow="yes" Description="MapGuide PHP ISAPI Extension" File="$(var.PHP_MAP)" />
+                <iis:WebServiceExtension Id="IIS6MapGuideWebServiceExt" Allow="yes" Description="MapGuide MapAgent ISAPI Extension" File="$(var.FCGI_MAP)" />
                 <iis:WebVirtualDir Id="IIS6MapGuideVDir" Alias="[VIRTUALDIR]" Directory="WEBROOTLOCATION" WebSite="IISDefaultWebSite" >
                     <iis:WebDirProperties Id="IIS6MapGuideDocuments" DefaultDocuments="index.php,index.html,index.htm,default.aspx,index.aspx,default.htm,default.html"  AnonymousAccess="yes" BasicAuthentication="no" WindowsAuthentication="no" />
                     <iis:MimeMap Id="IIS6JsonMimeType" Type="application/json" Extension =".json" />
                     <iis:WebApplication Id="IIS6MapGuideWebApp" Name="[VIRTUALDIR]" WebAppPool="IIS6MapGuideAppPool" >
-                        <iis:WebApplicationExtension Extension="php" Script="yes" Verbs="GET,POST" CheckPath="no" Executable="[!file_PHPFILES_42]" />
+                        <iis:WebApplicationExtension Extension="php" Script="yes" Verbs="GET,POST" CheckPath="no" Executable="$(var.PHP_MAP)" />
                     </iis:WebApplication>
                     <iis:WebVirtualDir Id="IIS6MapAgentVDir" Alias="mapagent" Directory="dir_mapagent_0" >
                         <iis:WebDirProperties Id="IIS6MapAgentProperties" DefaultDocuments="index.html" AnonymousAccess="yes" BasicAuthentication="no" WindowsAuthentication="no" />
@@ -132,8 +136,8 @@
                         <iis:WebError ErrorCode="401" SubCode="4" />
                         <iis:WebError ErrorCode="401" SubCode="5" />
                         <iis:WebApplication Id="IIS6MapAgentWebApp" Name="mapagent" WebAppPool="IIS6MapGuideAppPool">
-                            <iis:WebApplicationExtension Extension="fcgi" Script="yes" Verbs="GET,POST" CheckPath="no" Executable="[!file_MAPAGENTFILES_98]" />
-                            <iis:WebApplicationExtension Extension="php" Script="yes" Verbs="GET,POST" CheckPath="no" Executable="[!file_PHPFILES_42]" />
+                            <iis:WebApplicationExtension Extension="fcgi" Script="yes" Verbs="GET,POST" CheckPath="no" Executable="$(var.FCGI_MAP)" />
+                            <iis:WebApplicationExtension Extension="php" Script="yes" Verbs="GET,POST" CheckPath="no" Executable="$(var.PHP_MAP)" />
                         </iis:WebApplication>
                     </iis:WebVirtualDir>
                     <iis:WebVirtualDir Id="IIS6MapAdminVDir" Alias="mapadmin" Directory="dir_mapadmin_0" >

Modified: trunk/Installer/Support/Web/x64/Apache2/conf/httpd.conf
===================================================================
--- trunk/Installer/Support/Web/x64/Apache2/conf/httpd.conf	2010-11-27 05:16:58 UTC (rev 5408)
+++ trunk/Installer/Support/Web/x64/Apache2/conf/httpd.conf	2010-11-27 11:32:05 UTC (rev 5409)
@@ -120,16 +120,16 @@
 #Listen 12.34.56.78:80
 Listen %MG_WEB_PORT%
 
-LoadFile "%MG_WEB_PHP%php5ts.dll"
-LoadFile "%MG_WEB_PHP%ACE.dll"
-LoadFile "%MG_WEB_PHP%MgHttpHandler.dll"
-LoadFile "%MG_WEB_PHP%MgFoundation.dll"
-LoadFile "%MG_WEB_PHP%MgGeometry.dll"
-LoadFile "%MG_WEB_PHP%MgMapGuideCommon.dll"
-LoadFile "%MG_WEB_PHP%MgMdfModel.dll"
-LoadFile "%MG_WEB_PHP%MgMdfParser.dll"
-LoadFile "%MG_WEB_PHP%MgPlatformBase.dll"
-LoadFile "%MG_WEB_PHP%MgWebApp.dll"
+LoadFile "%MG_WEB_PHP%/php5ts.dll"
+LoadFile "%MG_WEB_PHP%/ACE.dll"
+LoadFile "%MG_WEB_PHP%/MgHttpHandler.dll"
+LoadFile "%MG_WEB_PHP%/MgFoundation.dll"
+LoadFile "%MG_WEB_PHP%/MgGeometry.dll"
+LoadFile "%MG_WEB_PHP%/MgMapGuideCommon.dll"
+LoadFile "%MG_WEB_PHP%/MgMdfModel.dll"
+LoadFile "%MG_WEB_PHP%/MgMdfParser.dll"
+LoadFile "%MG_WEB_PHP%/MgPlatformBase.dll"
+LoadFile "%MG_WEB_PHP%/MgWebApp.dll"
 
 #
 # Dynamic Shared Object (DSO) Support

Modified: trunk/Installer/Support/Web/x64/Php/php.ini
===================================================================
--- trunk/Installer/Support/Web/x64/Php/php.ini	2010-11-27 05:16:58 UTC (rev 5408)
+++ trunk/Installer/Support/Web/x64/Php/php.ini	2010-11-27 11:32:05 UTC (rev 5409)
@@ -628,7 +628,7 @@
 ;extension=php_exif.dll
 ;extension=php_fdf.dll
 ;extension=php_filepro.dll
-;extension=php_gd2.dll
+extension=php_gd2.dll
 ;extension=php_gettext.dll
 ;extension=php_ifx.dll
 ;extension=php_iisfunc.dll

Modified: trunk/Installer/Support/Web/x86/Apache2/conf/httpd.conf
===================================================================
--- trunk/Installer/Support/Web/x86/Apache2/conf/httpd.conf	2010-11-27 05:16:58 UTC (rev 5408)
+++ trunk/Installer/Support/Web/x86/Apache2/conf/httpd.conf	2010-11-27 11:32:05 UTC (rev 5409)
@@ -120,16 +120,16 @@
 #Listen 12.34.56.78:80
 Listen %MG_WEB_PORT%
 
-LoadFile "%MG_WEB_PHP%php5ts.dll"
-LoadFile "%MG_WEB_PHP%ACE.dll"
-LoadFile "%MG_WEB_PHP%MgHttpHandler.dll"
-LoadFile "%MG_WEB_PHP%MgFoundation.dll"
-LoadFile "%MG_WEB_PHP%MgGeometry.dll"
-LoadFile "%MG_WEB_PHP%MgMapGuideCommon.dll"
-LoadFile "%MG_WEB_PHP%MgMdfModel.dll"
-LoadFile "%MG_WEB_PHP%MgMdfParser.dll"
-LoadFile "%MG_WEB_PHP%MgPlatformBase.dll"
-LoadFile "%MG_WEB_PHP%MgWebApp.dll"
+LoadFile "%MG_WEB_PHP%/php5ts.dll"
+LoadFile "%MG_WEB_PHP%/ACE.dll"
+LoadFile "%MG_WEB_PHP%/MgHttpHandler.dll"
+LoadFile "%MG_WEB_PHP%/MgFoundation.dll"
+LoadFile "%MG_WEB_PHP%/MgGeometry.dll"
+LoadFile "%MG_WEB_PHP%/MgMapGuideCommon.dll"
+LoadFile "%MG_WEB_PHP%/MgMdfModel.dll"
+LoadFile "%MG_WEB_PHP%/MgMdfParser.dll"
+LoadFile "%MG_WEB_PHP%/MgPlatformBase.dll"
+LoadFile "%MG_WEB_PHP%/MgWebApp.dll"
 
 #
 # Dynamic Shared Object (DSO) Support

Modified: trunk/Installer/Support/Web/x86/Php/php.ini
===================================================================
--- trunk/Installer/Support/Web/x86/Php/php.ini	2010-11-27 05:16:58 UTC (rev 5408)
+++ trunk/Installer/Support/Web/x86/Php/php.ini	2010-11-27 11:32:05 UTC (rev 5409)
@@ -628,7 +628,7 @@
 ;extension=php_exif.dll
 ;extension=php_fdf.dll
 ;extension=php_filepro.dll
-;extension=php_gd2.dll
+extension=php_gd2.dll
 ;extension=php_gettext.dll
 ;extension=php_ifx.dll
 ;extension=php_iisfunc.dll

Modified: trunk/Installer/build.bat
===================================================================
--- trunk/Installer/build.bat	2010-11-27 05:16:58 UTC (rev 5408)
+++ trunk/Installer/build.bat	2010-11-27 11:32:05 UTC (rev 5409)
@@ -44,10 +44,10 @@
 SET CPUTYPE=x86
 SET TYPEBUILD=Release
 SET CULTURE=en-US
-SET INSTALLER_VERSION_MAJOR_MINOR_REV=2.2.0
+SET INSTALLER_VERSION_MAJOR_MINOR_REV=2.3.0
 SET INSTALLER_NAME=MapGuideOpenSource-%INSTALLER_VERSION_MAJOR_MINOR_REV%-Trunk-%CULTURE%-%TYPEBUILD%-%CPUTYPE%
 SET INSTALLER_VERSION=%INSTALLER_VERSION_MAJOR_MINOR_REV%.0
-SET INSTALLER_TITLE="MapGuide Open Source 2.2 Trunk (%TYPEBUILD%)"
+SET INSTALLER_TITLE="MapGuide Open Source 2.3 Trunk (%TYPEBUILD%)"
 SET MG_REG_KEY=Software\OSGeo\MapGuide\%INSTALLER_VERSION_MAJOR_MINOR_REV%
 SET MG_SOURCE=%CD%\..\MgDev\%TYPEBUILD%
 SET MG_SOURCE_INC=
@@ -58,7 +58,7 @@
 rem MapGuide Installer vars
 rem ==================================================
 SET INSTALLER_DEV=%CD%
-SET INSTALLER_OUTPUT=%INSTALLER_DEV%\Output\%CULTURE%\%TYPEBUILD%
+SET INSTALLER_OUTPUT=%INSTALLER_DEV%\Output\%CULTURE%
 SET INSTALLER_DEV_SUPPORT=%INSTALLER_DEV%\Support
 SET INSTALLER_DEV_BOOTSTRAP=%INSTALLER_DEV%\Bootstrapper
 
@@ -71,7 +71,7 @@
 
 SET NSIS=%CD%\Support\NSIS
 SET PARAFFIN=%CD%
-SET PATH=%PATH%;%PARAFFIN%;%NSIS%
+SET PATH=%PATH%;%PARAFFIN%;%NSIS%;%WIX%\bin\
 
 rem ==================================================
 rem MSBuild Settings
@@ -150,9 +150,9 @@
 
 :get_conf
 SET TYPEBUILD=%2
-SET INSTALLER_OUTPUT=%CD%\Installers\MapGuide\bin\%TYPEBUILD%
-SET MSBUILD=msbuild.exe /nologo /m:%CPU_CORES% /p:Configuration=%TYPEBUILD% %MSBUILD_VERBOSITY% %MSBUILD_LOG%
-SET MSBUILD_CLEAN=msbuild.exe /nologo /m:%CPU_CORES% /p:Configuration=%TYPEBUILD% /t:Clean %MSBUILD_VERBOSITY%
+REM SET INSTALLER_OUTPUT=%CD%\Installers\MapGuide\bin\%TYPEBUILD%
+SET MSBUILD=msbuild.exe /nologo /m:%CPU_CORES% /p:Configuration=%TYPEBUILD% /p:Platform=Win32 %MSBUILD_VERBOSITY% %MSBUILD_LOG%
+SET MSBUILD_CLEAN=msbuild.exe /nologo /m:%CPU_CORES% /p:Configuration=%TYPEBUILD% /p:Platform=Win32 /t:Clean %MSBUILD_VERBOSITY%
 SET MG_SOURCE=%CD%\..\MgDev\%TYPEBUILD%
 IF NOT ""=="%MG_SOURCE_INC%" SET MG_SOURCE_INC=%MG_SOURCE%
 
@@ -190,25 +190,10 @@
 if "%TYPEACTION%"=="regen" goto regen
 
 :clean
-echo [clean]: FdoRegUtil
-pushd %INSTALLER_FDO_REG_UTIL%
-%MSBUILD_CLEAN% FdoRegUtil.vcproj
-popd
-echo [clean]: CS-Map
-pushd "%INSTALLER_DEV_CSMAP%"
-%MSBUILD_CLEAN% "CS Map.wixproj"
-popd
-echo [clean]: MapGuide Server
-pushd "%INSTALLER_DEV_MGSERVER%"
-%MSBUILD_CLEAN% "MapGuide Server.wixproj"
-popd
-echo [clean]: MapGuide Web
-pushd "%INSTALLER_DEV_MGWEB%"
-%MSBUILD_CLEAN% "MapGuide Web Extensions.wixproj"
-popd
+echo [clean]: Installer Pre-Reqs
+%MSBUILD_CLEAN% InstallerPreReq.sln
 echo [clean]: Installer
-%MSBUILD_CLEAN% Installer.sln
-popd
+%MSBUILD_CLEAN% InstallerWix.sln
 goto quit
 
 :prepare
@@ -216,9 +201,8 @@
 if not exist "%MG_SOURCE%\Server" goto error_mg_server_not_found
 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] FdoRegUtil.exe
-pushd %INSTALLER_FDO_REG_UTIL%
-%MSBUILD% FdoRegUtil.vcproj
+echo [prepare] Installer Pre-Requisites
+%MSBUILD% InstallerPreReq.sln
 copy %INSTALLER_FDO_REG_UTIL%\%TYPEBUILD%\FdoRegUtil.exe %MG_SOURCE%\Server\FDO
 popd
 rem copy support files into server and web directories
@@ -398,15 +382,14 @@
 goto quit
 
 :build
-echo [build]: Installer
 SET RUN_BUILD=%MSBUILD% /p:OutputName=%INSTALLER_NAME%;MgCulture=%CULTURE%;MgTitle=%INSTALLER_TITLE%;MgVersion=%INSTALLER_VERSION%;MgRegKey=%MG_REG_KEY%;MgPlatform=%CPUTYPE%
 if not ""=="%MG_SOURCE_INC%" set RUN_BUILD=%RUN_BUILD%;MgSource=%MG_SOURCE_INC%
-set RUN_BUILD=%RUN_BUILD% Installer.sln
-%RUN_BUILD% 
+echo [build]: Installer 
+%RUN_BUILD% InstallerWix.sln
 if "%errorlevel%"=="1" goto error
 pushd "%INSTALLER_DEV_BOOTSTRAP%"
-echo [bootstrap]: Creating
-%MSBUILD% /p:TargetFile=%INSTALLER_NAME%.msi Bootstrap-x86.proj
+echo [bootstrap]: Copying vcredist
+copy /Y vcredist_x86.exe "%INSTALLER_OUTPUT%\vcredist_x86.exe"
 popd
 if "%errorlevel%"=="1" goto error
 if "%MAX_COMPRESSION%"=="YES" goto build_max_compress

Modified: trunk/Installer/build64.bat
===================================================================
--- trunk/Installer/build64.bat	2010-11-27 05:16:58 UTC (rev 5408)
+++ trunk/Installer/build64.bat	2010-11-27 11:32:05 UTC (rev 5409)
@@ -45,10 +45,10 @@
 SET CONFIGURATION=Release
 SET PLATFORM=x64
 SET CULTURE=en-US
-SET INSTALLER_VERSION_MAJOR_MINOR_REV=2.2.0
+SET INSTALLER_VERSION_MAJOR_MINOR_REV=2.3.0
 SET INSTALLER_NAME=MapGuideOpenSource-%INSTALLER_VERSION_MAJOR_MINOR_REV%-Trunk-%CULTURE%-%TYPEBUILD%-%PLATFORM%
 SET INSTALLER_VERSION=%INSTALLER_VERSION_MAJOR_MINOR_REV%.0
-SET INSTALLER_TITLE="MapGuide Open Source 2.2 Trunk (%TYPEBUILD%)"
+SET INSTALLER_TITLE="MapGuide Open Source 2.3 Trunk (%TYPEBUILD%)"
 SET MG_REG_KEY=Software\OSGeo\MapGuide\%INSTALLER_VERSION_MAJOR_MINOR_REV%
 SET MG_SOURCE=%CD%\..\MgDev\%TYPEBUILD%
 SET MG_SOURCE_INC=
@@ -239,9 +239,8 @@
 if not exist "%MG_SOURCE%\Server" goto error_mg_server_not_found
 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] FdoRegUtil.exe
-pushd %INSTALLER_FDO_REG_UTIL%
-%MSBUILD% FdoRegUtil.vcproj
+echo [prepare] Installer Pre-Requisites
+%MSBUILD% InstallerPreReq.sln
 copy %INSTALLER_FDO_REG_UTIL%\%TYPEBUILD%\FdoRegUtil.exe %MG_SOURCE%\Server\FDO
 popd
 rem copy support files into server and web directories
@@ -421,15 +420,14 @@
 goto quit
 
 :build
-echo [build]: Installer
 SET RUN_BUILD=%MSBUILD% /p:OutputName=%INSTALLER_NAME%;MgCulture=%CULTURE%;MgTitle=%INSTALLER_TITLE%;MgVersion=%INSTALLER_VERSION%;MgRegKey=%MG_REG_KEY%;MgPlatform=%PLATFORM%
 if not ""=="%MG_SOURCE_INC%" set RUN_BUILD=%RUN_BUILD%;MgSource=%MG_SOURCE_INC%
-set RUN_BUILD=%RUN_BUILD% Installer.sln
-%RUN_BUILD% 
+echo [build]: Installer 
+%RUN_BUILD% InstallerWix.sln
 if "%errorlevel%"=="1" goto error
 pushd "%INSTALLER_DEV_BOOTSTRAP%"
-echo [bootstrap]: Creating
-%MSBUILD% /p:TargetFile=%INSTALLER_NAME%.msi Bootstrap-x64.proj
+echo [bootstrap]: Copying vcredist
+copy /Y vcredist_x64.exe "%INSTALLER_OUTPUT%\vcredist_x64.exe"
 popd
 if "%errorlevel%"=="1" goto error
 if "%MAX_COMPRESSION%"=="YES" goto build_max_compress



More information about the mapguide-commits mailing list