Revision: 77
http://svn.sourceforge.net/nmailserver/?rev=77&view=rev
Author: tmyroadctfig
Date: 2006-11-07 04:27:42 -0800 (Tue, 07 Nov 2006)
Log Message:
-----------
Changes to smooth installation process and ability to run Win32 service in the right location.
Modified Paths:
--------------
NMail/branches/luke-dev/Installer/NMail-Installer.wxs
NMail/branches/luke-dev/NMail.MessageRouter/Configuration/MessageRouterConfiguration.cs
NMail/branches/luke-dev/NMail.Server/NMailServer.cs
NMail/branches/luke-dev/NMail.Server.Service/NMailService.cs
Modified: NMail/branches/luke-dev/Installer/NMail-Installer.wxs
===================================================================
--- NMail/branches/luke-dev/Installer/NMail-Installer.wxs 2006-11-07 12:25:09 UTC (rev 76)
+++ NMail/branches/luke-dev/Installer/NMail-Installer.wxs 2006-11-07 12:27:42 UTC (rev 77)
@@ -135,6 +135,9 @@
<Component Id="component15" DiskId="1" Guid="3E8F5756-8B2B-44dc-BCAB-CDBA16EF695E">
<File Id="file15" Name="WEB_1.SIT" LongName="Web.sitemap" Checksum="yes" Compressed="yes" Vital="yes" src="obj\NMail.Administration.Web.Compiled\Web.sitemap" />
</Component>
+ <Component Id="component39" DiskId="1" Guid="567BD98A-B437-4d06-A236-4710D647D0BE">
+ <File Id="file39" Name="tasklist.asc" LongName="TaskList.ascx" Checksum="yes" Compressed="yes" Vital="yes" src="obj\NMail.Administration.Web.Compiled\TaskList.ascx" />
+ </Component>
<Directory Id="directory1" Name="bin">
<Component Id="component16" DiskId="1" Guid="F1DDFAF8-BB62-45d2-BEAA-CCF24A85B6AE">
<File Id="file40" Name="APP_CO_1.COM" LongName="App_Code.compiled" Checksum="yes" Compressed="yes" Vital="yes" src="obj\NMail.Administration.Web.Compiled\bin\App_Code.compiled" />
@@ -153,6 +156,7 @@
<File Id="file53" Name="log4net.dll" Checksum="yes" Compressed="yes" Vital="yes" src="obj\NMail.Administration.Web.Compiled\bin\log4net.dll" />
<File Id="file54" Name="NMail.dll" Checksum="yes" Compressed="yes" Vital="yes" src="obj\NMail.Administration.Web.Compiled\bin\NMail.dll" />
<File Id="file55" Name="NMAILS_1.DLL" LongName="NMail.Server.dll" Checksum="yes" Compressed="yes" Vital="yes" src="obj\NMail.Administration.Web.Compiled\bin\NMail.Server.dll" />
+ <File Id="file56" Name="APP_WE_4.DLL" LongName="App_Web_tasklist.ascx.cdcab7d2.dll" Checksum="yes" Compressed="yes" Vital="yes" src="obj\NMail.Administration.Web.Compiled\bin\App_Web_tasklist.ascx.cdcab7d2.dll" />
</Component>
</Directory>
<Directory Id="directory2" Name="Images">
@@ -198,6 +202,17 @@
</Component>
</Directory>
</Directory>
+
+ <Directory Id="D_App_Themes" Name="AppTheme" LongName="App_Themes">
+ <Directory Id="D_Default" Name="Default">
+ <Component Id="component37" DiskId="1" Guid="FD0DED72-FFA7-4f3d-8640-1592535663B9">
+ <File Id="file37" Name="def.skn" LongName="Default.skin" Checksum="yes" Compressed="yes" Vital="yes" src="obj\NMail.Administration.Web.Compiled\App_Themes\Default\Default.skin" />
+ </Component>
+ <Component Id="component38" DiskId="1" Guid="153879DA-AAF8-4a49-8DDD-4D3EFAC7C71C">
+ <File Id="file38" Name="s.css" LongName="StyleSheet.css" Checksum="yes" Compressed="yes" Vital="yes" src="obj\NMail.Administration.Web.Compiled\App_Themes\Default\StyleSheet.css" />
+ </Component>
+ </Directory>
+ </Directory>
</Directory>
<!-- <Component Id="C_VirtualWebDir" Guid="45A1A00F-7CAB-462f-A361-18566149FEBF">
@@ -226,6 +241,8 @@
<Component Id="C_NMail.dll" Guid="0A709B39-711B-46a0-911A-05D12E66BBDD">
<File Id="NMail.dll" Name="NMail.dll" LongName="NMail.dll" DiskId="1" Source="obj\NMail.dll" Vital="yes" />
+ <Registry Id='R_NMail' Root='HKLM' Key='Software\NMail\NMail Server 1.0' Name='InstallDirectory' Action='write' Type='string' Value='[INSTALLDIR]' />
+ <RemoveFile Id='NMail.log' On='uninstall' Name='NMail.log' LongName='NMail.log' />
</Component>
<Component Id="C_NMail.DnsClient.dll" Guid="527A7514-6746-4ead-9E0C-60986478FB6A">
@@ -359,11 +376,10 @@
<Binary Id="B_NMail.PostInstall.exe" SourceFile="obj\NMail.PostInstall.exe" />
<CustomAction Id="CA_PostInstall" BinaryKey="B_NMail.PostInstall.exe" ExeCommand="" />
- <CustomAction Id="CA_SetupWizard" FileKey="NMail.SetupWizard.exe" ExeCommand="" Return="asyncNoWait"/>
+ <CustomAction Id="CA_FinalUninstall" BinaryKey="B_NMail.PostInstall.exe" ExeCommand="/u" />
<InstallExecuteSequence>
- <Custom Action="CA_PostInstall" After="InstallFinalize" />
- <Custom Action="CA_SetupWizard" After="CA_PostInstall" />
+ <Custom Action="CA_PostInstall" After="InstallFinalize">$C_NMail.dll>2</Custom>
</InstallExecuteSequence>
@@ -459,6 +475,9 @@
<ComponentRef Id="component34"/>
<ComponentRef Id="component35"/>
<ComponentRef Id="component36"/>
+ <ComponentRef Id="component37"/>
+ <ComponentRef Id="component38"/>
+ <ComponentRef Id="component39"/>
</Feature>
<Feature Id="F_DeveloperDoc" Display="expand" Title="Developer Documentation" Level="3"
Modified: NMail/branches/luke-dev/NMail.MessageRouter/Configuration/MessageRouterConfiguration.cs
===================================================================
--- NMail/branches/luke-dev/NMail.MessageRouter/Configuration/MessageRouterConfiguration.cs 2006-11-07 12:25:09 UTC (rev 76)
+++ NMail/branches/luke-dev/NMail.MessageRouter/Configuration/MessageRouterConfiguration.cs 2006-11-07 12:27:42 UTC (rev 77)
@@ -38,6 +38,15 @@
}
/// <summary>
+ /// Remove the config section from the config file.
+ /// </summary>
+ public static void RemoveFromConfigFile() {
+ if (NMailConfigFile.Current.Sections["NMail.MessageRouter"] != null) {
+ NMailConfigFile.Current.Sections.Remove("NMail.MessageRouter");
+ }
+ }
+
+ /// <summary>
/// Returns true if a message router configuration section exists in the current
/// configuration.
/// </summary>
Modified: NMail/branches/luke-dev/NMail.Server/NMailServer.cs
===================================================================
--- NMail/branches/luke-dev/NMail.Server/NMailServer.cs 2006-11-07 12:25:09 UTC (rev 76)
+++ NMail/branches/luke-dev/NMail.Server/NMailServer.cs 2006-11-07 12:27:42 UTC (rev 77)
@@ -19,6 +19,7 @@
using System.Collections;
using System.Threading;
+using Microsoft.Win32;
using log4net;
using NMail.Authentication;
@@ -316,5 +317,22 @@
return NMailConfiguration.Current.AuthenticationProvider;
}
}
+
+ /// <summary>
+ /// Gets the NMail install directory from the registery.
+ /// </summary>
+ /// <returns>The install location or null if an error occurs.</returns>
+ public static string GetInstallDirectory() {
+ string installDirectory = null;
+ RegistryKey nmailServerKey = Registry.LocalMachine.OpenSubKey(@"Software\NMail\NMail Server 1.0", false);
+
+ if (nmailServerKey != null) {
+ installDirectory = nmailServerKey.GetValue("InstallDirectory") as string;
+
+ nmailServerKey.Close();
+ }
+
+ return installDirectory;
+ }
}
}
Modified: NMail/branches/luke-dev/NMail.Server.Service/NMailService.cs
===================================================================
--- NMail/branches/luke-dev/NMail.Server.Service/NMailService.cs 2006-11-07 12:25:09 UTC (rev 76)
+++ NMail/branches/luke-dev/NMail.Server.Service/NMailService.cs 2006-11-07 12:27:42 UTC (rev 77)
@@ -20,6 +20,7 @@
using System.ServiceProcess;
using System.Threading;
+using Microsoft.Win32;
using log4net;
using NMail.Configuration;
@@ -33,13 +34,16 @@
private static ILog log = LogManager.GetLogger(typeof(NMailService));
private NMailServer server;
-
+
public NMailService() {
try {
+ // Change the working directory from System32 to our install directory
+ Environment.CurrentDirectory = NMailServer.GetInstallDirectory();
+
log.Debug("Switching to event log...");
log4net.Layout.ILayout layout = new log4net.Layout.SimpleLayout();
- //log4net.Appender.IAppender appender = new log4net.Appender.FileAppender(layout, "NMail.log", true);
- log4net.Appender.IAppender appender = new log4net.Appender.EventLogAppender(layout);
+ log4net.Appender.IAppender appender = new log4net.Appender.FileAppender(layout, "NMail.log", true);
+ //log4net.Appender.IAppender appender = new log4net.Appender.EventLogAppender(layout);
log4net.Config.BasicConfigurator.Configure(appender);
log.Debug("Now logging to event log.");
@@ -78,9 +82,6 @@
// configure logging
log4net.Config.BasicConfigurator.Configure();
- // TODO: lookup from somewhere
- Environment.CurrentDirectory = @"C:\Program Files\NMail\NMail Server 1.0\";
-
ServiceBase.Run(new NMailService());
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|