logging-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bode...@apache.org
Subject svn commit: r1172533 [2/2] - /logging/log4net/trunk/log4net.build
Date Mon, 19 Sep 2011 09:17:40 GMT

Modified: logging/log4net/trunk/log4net.build
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/log4net.build?rev=1172533&r1=1172532&r2=1172533&view=diff
==============================================================================
--- logging/log4net/trunk/log4net.build (original)
+++ logging/log4net/trunk/log4net.build Mon Sep 19 09:17:40 2011
@@ -16,686 +16,374 @@ See the License for the specific languag
 limitations under the License.
 -->
 <project name="log4net" default="compile-all" xmlnds="http://tempuri.org/nant-vs.xsd">
-    <!-- Global project settings -->
-    <property name="log4net.basedir" value="." />
-    <property name="project.build.config" value="debug" />
-    <property name="project.build.package" value="false" />
+  <!-- Global project settings -->
+  <property name="log4net.basedir" value="." />
+  <property name="project.build.config" value="debug" />
+  <property name="project.build.package" value="false" />
 
   <!-- Include log4net helpers -->
-    <include buildfile="${log4net.basedir}/log4net.include" />
-    <!-- Targets that should always be executed -->
-    <call target="set-build-configuration" />
-    <call target="set-framework-configuration" />
-    <!-- Targets that check settings -->
-    <target name="check-package-version">
-        <fail 
-            message="A package version has not been specified." 
-            if="${not property::exists('package.version')}" />
-    </target>
-    <target name="check-package-dir">
-        <property name="package.dir" value="build/package" overwrite="false" />
-        <mkdir dir="${package.dir}" />
-    </target>
-    <target name="check-current-package-dir">
-        <fail 
-            message="The current package directory has not been specified."
-            if="${not property::exists('current.package.dir')}" />
-        <mkdir dir="${current.package.dir}" />
-    </target>
-    <target name="check-current-package-zipfile">
-        <fail 
-            message="The current package zipfile has not been specified."
-            if="${not property::exists('current.package.zipfile')}" />
-    </target>
-    <target name="check-htmlhelp-compiler">
-        <if test="${not property::exists('htmlhelp.compiler')}">
-            <readregistry
-                property="htmlhelp.workshop.installroot"
-                key="SOFTWARE\Microsoft\HTML Help Workshop\InstallDir"
-                hive="CurrentUser"
-                failonerror="false" />
-            <if test="${property::exists('htmlhelp.workshop.installroot')}">
-                <property 
-                    name="htmlhelp.compiler"
-                    value="${htmlhelp.workshop.installroot}/hhc.exe" />
-            </if>
-        </if>
-        <if test="${not property::exists('htmlhelp.compiler')}">
-            <!-- sysinfo task fails under x64 due to invalid property names - https://sourceforge.net/tracker/?func=detail&atid=402868&aid=1213185&group_id=31650 -->
-            <sysinfo failonerror="false" />
-            <property 
-                name="htmlhelp.compiler"
-                value="${sys.os.folder.programfiles}/HTML Help Worshop/hhc.exe" />
-        </if>
-    </target>
-    <!-- Target for cleaning up the current package directory -->
-    <target name="clean-current-package-dir" depends="check-current-package-dir" description="Cleans the current package directory">
-        <echo message="Cleaning the ${current.package.dir} package directory." />
-        <delete dir="${current.package.dir}" if="${directory::exists(current.package.dir)}" />
-        <mkdir dir="${current.package.dir}" />
-    </target>
-    <!-- Displays configuration info, usefull for working out why log4net doesn't build -->
-    <target name="display-setup" depends="check-htmlhelp-compiler">
-        <!-- .NET Framework 1.0 -->
-        <if test="${framework::exists('net-1.0')}">
-            <property name="nant.settings.currentframework" value="net-1.0" />
-            <call target="display-target-framework" />
-        </if>
-        <if test="${not framework::exists('net-1.0')}">
-            <echo message=".NET Framework 1.0 runtime is not available." />
-        </if>
-        <!-- .NET Framework 1.1 -->
-        <if test="${framework::exists('net-1.1')}">
-            <property name="nant.settings.currentframework" value="net-1.1" />
-            <call target="display-target-framework" />
-        </if>
-        <if test="${not framework::exists('net-1.1')}">
-            <echo message=".NET Framework 1.1 runtime is not available." />
-        </if>
-        <!-- .NET Framework 2.0 -->
-        <if test="${framework::exists('net-2.0')}">
-            <property name="nant.settings.currentframework" value="net-2.0" />
-            <call target="display-target-framework" />
-        </if>
-        <if test="${not framework::exists('net-2.0')}">
-            <echo message=".NET Framework 2.0 runtime is not available." />
-        </if>
-        <!-- .NET Framework 3.0 -->
-        <if test="${framework::exists('net-3.0')}">
-          <property name="nant.settings.currentframework" value="net-3.0" />
-          <call target="display-target-framework" />
-        </if>
-        <if test="${not framework::exists('net-3.0')}">
-          <echo message=".NET Framework 3.0 runtime is not available." />
-        </if> 
-        <!-- .NET Framework 3.5 -->
-        <if test="${framework::exists('net-3.5')}">
-          <property name="nant.settings.currentframework" value="net-3.5" />
-          <call target="display-target-framework" />
-        </if>
-        <if test="${not framework::exists('net-3.5')}">
-          <echo message=".NET Framework 3.5 runtime is not available." />
-        </if>
-        <!-- .NET Framework 4.0 -->
-        <if test="${framework::exists('net-4.0')}">
-          <property name="nant.settings.currentframework" value="net-4.0" />
-          <call target="display-target-framework" />
-        </if>
-        <if test="${not framework::exists('net-4.0')}">
-          <echo message=".NET Framework 4.0 runtime is not available." />
-        </if>
-        <!-- .NET Compact Framework 1.0 -->
-        <if test="${framework::exists('netcf-1.0')}">
-            <property name="nant.settings.currentframework" value="netcf-1.0" />
-            <call target="display-target-framework" />
-        </if>
-        <if test="${not framework::exists('netcf-1.0')}">
-            <echo message=".NET Compact Framework 1.0 runtime is not available." />
-        </if>
-        <!-- .NET Compact Framework 2.0 -->
-        <if test="${framework::exists('netcf-2.0')}">
-            <property name="nant.settings.currentframework" value="netcf-2.0" />
-            <call target="display-target-framework" />
-        </if>
-        <if test="${not framework::exists('netcf-2.0')}">
-            <echo message=".NET Compact Framework 2.0 runtime is not available." />
-        </if>
-        <!-- Mono 1.0 -->
-        <if test="${framework::exists('mono-1.0')}">
-            <property name="nant.settings.currentframework" value="mono-1.0" />
-            <call target="display-target-framework" />
-        </if>
-        <if test="${not framework::exists('mono-1.0')}">
-            <echo message="Mono 1.0 runtime is not available." />
-        </if>
-        <!-- Mono 2.0 -->
-        <if test="${framework::exists('mono-2.0')}">
-            <property name="nant.settings.currentframework" value="mono-2.0" />
-            <call target="display-target-framework" />
-        </if>
-        <if test="${not framework::exists('mono-2.0')}">
-            <echo message="Mono 2.0 runtime is not available." />
-        </if>
-        <!-- SSCLI 1.0 -->
-        <if test="${framework::exists('sscli-1.0')}">
-            <property name="nant.settings.currentframework" value="sscli-1.0" />
-            <call target="display-target-framework" />
-        </if>
-        <if test="${not framework::exists('sscli-1.0')}">
-            <echo message="SSCLI 1.0 runtime is not available." />
-        </if>
-        <!-- HTML Help Compiler -->
-        <echo message="htmlhelp.compiler: ${htmlhelp.compiler}" />
-    </target>
-    <target name="display-target-framework">
-        <echo message="" />
-        <echo message="----------------------------------------------------------" />
-        <echo message=" ${framework::get-description(framework::get-target-framework())}" />
-        <echo message="----------------------------------------------------------" />
-        <echo message="" />
-        <echo message="framework : ${framework::get-target-framework()}" />
-        <echo message="description : ${framework::get-description(framework::get-target-framework())}" />
-        <if test="${framework::sdk-exists(framework::get-target-framework())}">
-            <echo message="sdk directory : ${framework::get-sdk-directory(framework::get-target-framework())}" />
-        </if>
-        <if test="${not framework::sdk-exists(framework::get-target-framework())}">
-            <echo message="sdk directory : &lt;not configured/available&gt;" />
-        </if>
-        <echo message="framework directory : ${framework::get-framework-directory(framework::get-target-framework())}" />
-        <echo message="assembly directory : ${framework::get-assembly-directory(framework::get-target-framework())}" />
-        <echo message="" />
-    </target>
-    <!-- Target for setting the package configuration -->
-    <target name="set-package-configuration" depends="check-package-dir, check-package-version">
-        <property name="current.package.name" value="${nant.project.name}-${package.version}" />
-        <property name="current.package.dir" value="${package.dir}/${current.package.name}" />
-        <property name="log4net.basedir" value="${current.package.dir}" />
-        <property name="current.package.zipfile" value="${project::get-name()}-${package.version}.zip" />
-        <property name="bin.dir" value="${current.package.dir}/bin" />
-        <property name="doc.dir" value="${current.package.dir}/doc" />
-        <property name="sdkdoc.dir" value="${doc.dir}/sdk" />
-        <delete dir="${current.package.dir}" if="${directory::exists(current.package.dir)}" />
-        <mkdir dir="${current.package.dir}" />
-    </target>
-    <!-- Target for compiling all build configurations for all runtime configurations -->
-    <target name="compile-all" description="Compile all build configurations for all runtime configurations">
-        <echo message="Compiling all build configurations for all runtime configurations." />
-        <call target="set-debug-build-configuration" />
-        <call target="compile-build" />
-        <call target="set-release-build-configuration" />
-        <call target="compile-build" />
-    </target>
-    <!-- Target for compiling all build configurations for the current runtime configurations -->
-    <target name="compile-runtime" description="Compile all build configurations for the current target framework">
-        <echo message="Compiling all build configurations for ${framework::get-description(framework::get-target-framework())}." />
-        <call target="set-debug-build-configuration" />
-        <!-- make sure that the runtime properties that rely on build configuration information are refreshed -->
-        <call target="set-runtime-configuration" />
-        <call target="compile-${framework::get-target-framework()}" />
-        <call target="set-release-build-configuration" />
-        <!-- make sure that the runtime properties that rely on build configuration information are refreshed -->
-        <call target="set-runtime-configuration" />
-        <call target="compile-${framework::get-target-framework()}" />
-    </target>
-    <!-- Target for compiling all runtime configurations in the current build configuration -->
-    <target name="compile-build" description="Compile current build configurations for all runtime configurations">
-        <echo message="Compiling all framework versions for the ${current.build.config} build configuration." />
-        <!-- NETCF_1_0 -->
-        <if test="${framework::exists('netcf-1.0')}">
-            <call target="compile-netcf-1.0" />
-        </if>
-        <if test="${not framework::exists('netcf-1.0')}">
-            <if test="${property::exists('project.build.package') and project.build.package}">
-                <fail message="The .NET Compact Framework 1.0 is not available." />
-            </if>
-            <if test="${not(property::exists('project.build.package') and project.build.package)}">
-                <echo 
-                    message="The .NET Compact Framework 1.0 is not available. Build skipped." />
-            </if>
-        </if>
-        <!-- NETCF_2_0 -->
-        <if test="${framework::exists('netcf-2.0')}">
-            <call target="compile-netcf-2.0" />
-        </if>
-        <if test="${not framework::exists('netcf-2.0')}">
-            <if test="${property::exists('project.build.package') and project.build.package}">
-                <fail message="The .NET Compact Framework 2.0 is not available." />
-            </if>
-            <if test="${not(property::exists('project.build.package') and project.build.package)}">
-                <echo 
-                    message="The .NET Compact Framework 2.0 is not available. Build skipped." />
-            </if>
-        </if>
-        <!-- NET_1_0 -->
-        <if test="${framework::exists('net-1.0')}">
-            <call target="compile-net-1.0" />
-            <call target="compile-cli-1.0" />
-        </if>
-        <if test="${not framework::exists('net-1.0')}">
-            <if test="${property::exists('project.build.package') and project.build.package}">
-                <fail message="The .NET Framework 1.0 is not available." />
-            </if>
-            <if test="${not(property::exists('project.build.package') and project.build.package)}">
-                <echo message="The .NET Framework 1.0 is not available. Build skipped." />
-            </if>
-        </if>
-        <!-- NET_1_1 -->
-        <if test="${framework::exists('net-1.1')}">
-            <call target="compile-net-1.1" />
-        </if>
-        <if test="${not framework::exists('net-1.1')}">
-            <if test="${property::exists('project.build.package') and project.build.package}">
-                <fail message="The .NET Framework 1.1 is not available." />
-            </if>
-            <if test="${not(property::exists('project.build.package') and project.build.package)}">
-                <echo message="The .NET Framework 1.1 is not available. Build skipped." />
-            </if>
-        </if>
-        <!-- NET_2_0 -->
-        <if test="${framework::exists('net-2.0')}">
-            <call target="compile-net-2.0" />
-        </if>
-        <if test="${not framework::exists('net-2.0')}">
-            <if test="${property::exists('project.build.package') and project.build.package}">
-                <fail message="The .NET Framework 2.0 is not available." />
-            </if>
-            <if test="${not(property::exists('project.build.package') and project.build.package)}">
-                <echo message="The .NET Framework 2.0 is not available. Build skipped." />
-            </if>
-        </if>
-        <!-- NET_3_0 -->
-        <if test="${framework::exists('net-3.0')}">
-          <call target="compile-net-3.0" />
-        </if>
-        <if test="${not framework::exists('net-3.0')}">
-          <if test="${property::exists('project.build.package') and project.build.package}">
-            <fail message="The .NET Framework 3.0 is not available." />
-          </if>
-          <if test="${not(property::exists('project.build.package') and project.build.package)}">
-            <echo message="The .NET Framework 3.0 is not available. Build skipped." />
-          </if>
-        </if>
-        <!-- NET_3_5 -->
-        <if test="${framework::exists('net-3.5')}">
-          <call target="compile-net-3.5" />
-          <call target="compile-net-3.5-cp" />
-        </if>
-        <if test="${not framework::exists('net-3.5')}">
-          <if test="${property::exists('project.build.package') and project.build.package}">
-            <fail message="The .NET Framework 3.5 is not available." />
-          </if>
-          <if test="${not(property::exists('project.build.package') and project.build.package)}">
-            <echo message="The .NET Framework 3.5 is not available. Build skipped." />
-          </if>
-        </if>
-        <!-- NET_4_0 -->
-        <if test="${framework::exists('net-4.0')}">
-          <call target="compile-net-4.0" />
-          <call target="compile-net-4.0-cp" />
-        </if>
-        <if test="${not framework::exists('net-4.0')}">
-          <if test="${property::exists('project.build.package') and project.build.package}">
-            <fail message="The .NET Framework 4.0 is not available." />
-          </if>
-          <if test="${not(property::exists('project.build.package') and project.build.package)}">
-            <echo message="The .NET Framework 4.0 is not available. Build skipped." />
-          </if>
-        </if>
-        <!-- MONO_1_0 -->
-        <if test="${framework::exists('mono-1.0')}">
-            <call target="compile-mono-1.0" />
-        </if>
-        <if test="${not framework::exists('mono-1.0')}">
-            <if test="${property::exists('project.build.package') and project.build.package}">
-                <fail message="Mono 1.0 is not available." />
-            </if>
-            <if test="${not(property::exists('project.build.package') and project.build.package)}">
-                <echo message="Mono 1.0 is not available. Build skipped." />
-            </if>
-        </if>
-        <!-- MONO_2_0 -->
-        <if test="${framework::exists('mono-2.0')}">
-            <call target="compile-mono-2.0" />
-        </if>
-        <if test="${not framework::exists('mono-2.0')}">
-            <if test="${property::exists('project.build.package') and project.build.package}">
-                <fail message="Mono 2.0 is not available." />
-            </if>
-            <if test="${not(property::exists('project.build.package') and project.build.package)}">
-                <echo message="Mono 2.0 is not available. Build skipped." />
-            </if>
-        </if>
-        <!-- SSCLI_1_0 -->
-        <if test="${framework::exists('sscli-1.0')}">
-            <call target="compile-sscli-1.0" />
-        </if>
-        <if test="${not framework::exists('sscli-1.0')}">
-            <if test="${property::exists('project.build.package') and project.build.package}">
-                <fail message="SSCLI 1.0 is not available." />
-            </if>
-            <if test="${not(property::exists('project.build.package') and project.build.package)}">
-                <echo message="SSCLI 1.0 is not available. Build skipped." />
-            </if>
-        </if>
-    </target>
-    <target name="compile" description="Builds the current build configuration for the current target framework." depends="check-current-build-config">
-        <call target="compile-${framework::get-target-framework()}" />
-    </target>
-    <target name="compile-netcf-1.0" description="Builds .NET Compact Framework 1.0 version" depends="set-netcf-1.0-runtime-configuration, check-log4net-basedir, clean-current-bin-dir">
-        <!-- initialize the temp.build.skip property to false -->
-        <property name="temp.build.skip" value="false" />
-        <if test="${current.build.config.release}">
-            <!-- check if the log4net key file is available -->
-            <if test="${not file::exists(log4net.basedir + '/log4net.snk')}">
-                <if test="${property::exists('project.build.package') and project.build.package}">
-                    <fail message="Key file not found." />
-                </if>
-                <if test="${not(property::exists('project.build.package') and project.build.package)}">
-                    <echo message="Key file not found. You can generate a key file by running 'sn -k log4net.snk'." />
-                    <echo message="The generated key file should be stored in the log4net base directory." />
-                    <echo message="The release build will be skipped." />
-                    <property name="temp.build.skip" value="true" />
-                </if>
-            </if>
-            <if test="${file::exists(log4net.basedir + '/log4net.snk')}">
-                <!-- copy the log4net key file to the location where the compiler expects it to be -->
-                <copy file="${log4net.basedir}/log4net.snk" todir="${current.bin.dir}/../../../" />
-            </if>
-        </if>
-        <if test="${not temp.build.skip}">
-            <csc warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml">
-                <sources basedir="${log4net.basedir}/src">
-                    <include name="**/*.cs" />
-                </sources>
-                <resources failonempty="true">
-                    <include name="${log4net.basedir}/NOTICE" />
-                    <include name="${log4net.basedir}/LICENSE" />
-                </resources>
-                <references>
-                    <include name="mscorlib.dll" />
-                    <include name="System.dll" />
-                    <include name="System.Data.dll" />
-                    <include name="System.Xml.dll" />
-                    <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
-                    <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
-                </references>
-            </csc>
-        </if>
-    </target>
-    <target name="compile-netcf-2.0" description="Builds .NET Compact Framework 2.0 version" depends="set-netcf-2.0-runtime-configuration, check-log4net-basedir, clean-current-bin-dir">
-        <!-- initialize the temp.build.skip property to false -->
-        <property name="temp.build.skip" value="false" />
-        <if test="${current.build.config.release}">
-            <!-- check if the old log4net key file is available -->
-            <if test="${not file::exists(log4net.basedir + '/old-log4net.snk')}">
-                <if test="${property::exists('project.build.package') and project.build.package}">
-                    <fail message="Old key file not found." />
-                </if>
-                <if test="${not(property::exists('project.build.package') and project.build.package)}">
-                    <echo message="Old key file not found."/>
-                    <echo message="The release build using the old key will be skipped." />
-                    <property name="temp.build.skip" value="true" />
-                </if>
-            </if>
-        </if>
-        <if test="${not temp.build.skip}">
-            <csc if="${current.build.config.release}" keyfile="${path::combine(log4net.basedir, 'old-log4net.snk')}" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/../oldkey/log4net.dll" doc="${current.bin.dir}/../oldkey/log4net.xml">
-                <sources basedir="${log4net.basedir}/src">
-                    <include name="**/*.cs" />
-                </sources>
-                <resources failonempty="true">
-                    <include name="${log4net.basedir}/NOTICE" />
-                    <include name="${log4net.basedir}/LICENSE" />
-                </resources>
-                <references>
-                    <include name="mscorlib.dll" />
-                    <include name="System.dll" />
-                    <include name="System.Data.dll" />
-                    <include name="System.Xml.dll" />
-                    <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
-                    <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
-                </references>
-            </csc>
-        </if>
-            <csc if="${current.build.config.release}" keyfile="${path::combine(log4net.basedir, 'log4net.snk')}" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml">
-                <sources basedir="${log4net.basedir}/src">
-                    <include name="**/*.cs" />
-                </sources>
-                <resources failonempty="true">
-                    <include name="${log4net.basedir}/NOTICE" />
-                    <include name="${log4net.basedir}/LICENSE" />
-                </resources>
-                <references>
-                    <include name="mscorlib.dll" />
-                    <include name="System.dll" />
-                    <include name="System.Data.dll" />
-                    <include name="System.Xml.dll" />
-                    <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
-                    <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
-                </references>
-            </csc>
-            <csc if="${current.build.config.debug}" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml">
-                <sources basedir="${log4net.basedir}/src">
-                    <include name="**/*.cs" />
-                </sources>
-                <resources failonempty="true">
-                    <include name="${log4net.basedir}/NOTICE" />
-                    <include name="${log4net.basedir}/LICENSE" />
-                </resources>
-                <references>
-                    <include name="mscorlib.dll" />
-                    <include name="System.dll" />
-                    <include name="System.Data.dll" />
-                    <include name="System.Xml.dll" />
-                    <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
-                    <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
-                </references>
-            </csc>
-    </target>
-    <target name="compile-net-1.0" description="Builds .NET Framework 1.0 version" depends="set-net-1.0-runtime-configuration, check-log4net-basedir, clean-current-bin-dir">
-        <!-- initialize the temp.build.skip property to false -->
-        <property name="temp.build.skip" value="false" />
-        <if test="${current.build.config.release}">
-            <!-- check if the log4net key file is available -->
-            <if test="${not file::exists(log4net.basedir + '/log4net.snk')}">
-                <if test="${property::exists('project.build.package') and project.build.package}">
-                    <fail message="Old key file not found." />
-                </if>
-                <if test="${not(property::exists('project.build.package') and project.build.package)}">
-                    <echo message="Old key file not found."/>
-                    <echo message="The release build using the old key will be skipped." />
-                    <property name="temp.build.skip" value="true" />
-                </if>
-            </if>
-            <if test="${file::exists(log4net.basedir + '/old-log4net.snk')}">
-                <!-- copy the log4net key file to the location where
-                     the compiler expects it to be -->
-                <copy file="${log4net.basedir}/old-log4net.snk"
-                      tofile="${current.bin.dir}/../../../log4net.snk"
-                      overwrite="true"/>
-            </if>
-        </if>
-        <if test="${not temp.build.skip}">
-            <csc if="${current.build.config.release}" nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/../oldkey/log4net.dll" doc="${current.bin.dir}/../oldkey/log4net.xml">
-                <sources basedir="${log4net.basedir}/src">
-                    <include name="**/*.cs" />
-                </sources>
-                <resources failonempty="true">
-                    <include name="${log4net.basedir}/NOTICE" />
-                    <include name="${log4net.basedir}/LICENSE" />
-                </resources>
-                <references>
-                    <include name="mscorlib.dll" />
-                    <include name="System.dll" />
-                    <include name="System.Data.dll" />
-                    <include name="System.Web.dll" />
-                    <include name="System.Xml.dll" />
-                    <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
-                    <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
-                </references>
-            </csc>
-        </if>
-        <copy file="${log4net.basedir}/log4net.snk"
-              todir="${current.bin.dir}/../../../"
-              overwrite="true"/>
-            <csc nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml">
-                <sources basedir="${log4net.basedir}/src">
-                    <include name="**/*.cs" />
-                </sources>
-                <resources failonempty="true">
-                    <include name="${log4net.basedir}/NOTICE" />
-                    <include name="${log4net.basedir}/LICENSE" />
-                </resources>
-                <references>
-                    <include name="mscorlib.dll" />
-                    <include name="System.dll" />
-                    <include name="System.Data.dll" />
-                    <include name="System.Web.dll" />
-                    <include name="System.Xml.dll" />
-                    <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
-                    <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
-                </references>
-            </csc>
-    </target>
-    <target name="compile-net-1.1" description="Builds .NET Framework 1.1 version" depends="set-net-1.1-runtime-configuration, check-log4net-basedir, clean-current-bin-dir">
-        <!-- initialize the temp.build.skip property to false -->
-        <property name="temp.build.skip" value="false" />
-        <if test="${current.build.config.release}">
-            <!-- check if the log4net key file is available -->
-            <if test="${not file::exists(log4net.basedir + '/log4net.snk')}">
-                <if test="${property::exists('project.build.package') and project.build.package}">
-                    <fail message="Old key file not found." />
-                </if>
-                <if test="${not(property::exists('project.build.package') and project.build.package)}">
-                    <echo message="Old key file not found."/>
-                    <echo message="The release build using the old key will be skipped." />
-                    <property name="temp.build.skip" value="true" />
-                </if>
-            </if>
-            <if test="${file::exists(log4net.basedir + '/old-log4net.snk')}">
-                <!-- copy the log4net key file to the location where
-                     the compiler expects it to be -->
-                <copy file="${log4net.basedir}/old-log4net.snk"
-                      tofile="${current.bin.dir}/../../../log4net.snk"
-                      overwrite="true"/>
-            </if>
-        </if>
-        <if test="${not temp.build.skip}">
-            <csc if="${current.build.config.release}" nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/../oldkey/log4net.dll" doc="${current.bin.dir}/../oldkey/log4net.xml">
-                <sources basedir="${log4net.basedir}/src">
-                    <include name="**/*.cs" />
-                </sources>
-                <resources failonempty="true">
-                    <include name="${log4net.basedir}/NOTICE" />
-                    <include name="${log4net.basedir}/LICENSE" />
-                </resources>
-                <references>
-                    <include name="mscorlib.dll" />
-                    <include name="System.dll" />
-                    <include name="System.Data.dll" />
-                    <include name="System.Web.dll" />
-                    <include name="System.Xml.dll" />
-                    <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
-                    <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
-                </references>
-            </csc>
-        </if>
-        <copy file="${log4net.basedir}/log4net.snk"
-              todir="${current.bin.dir}/../../../"
-              overwrite="true"/>
-            <csc nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml">
-                <sources basedir="${log4net.basedir}/src">
-                    <include name="**/*.cs" />
-                </sources>
-                <resources failonempty="true">
-                    <include name="${log4net.basedir}/NOTICE" />
-                    <include name="${log4net.basedir}/LICENSE" />
-                </resources>
-                <references>
-                    <include name="mscorlib.dll" />
-                    <include name="System.dll" />
-                    <include name="System.Data.dll" />
-                    <include name="System.Web.dll" />
-                    <include name="System.Xml.dll" />
-                    <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
-                    <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
-                </references>
-            </csc>
-    </target>
-    <target name="compile-net-2.0" description="Builds .NET Framework 2.0 version" depends="set-net-2.0-runtime-configuration, check-log4net-basedir, clean-current-bin-dir">
-        <!-- initialize the temp.build.skip property to false -->
-        <property name="temp.build.skip" value="false" />
-        <if test="${current.build.config.release}">
-            <!-- check if the old log4net key file is available -->
-            <if test="${not file::exists(log4net.basedir + '/old-log4net.snk')}">
-                <if test="${property::exists('project.build.package') and project.build.package}">
-                    <fail message="Old key file not found." />
-                </if>
-                <if test="${not(property::exists('project.build.package') and project.build.package)}">
-                    <echo message="Old key file not found."/>
-                    <echo message="The release build using the old key will be skipped." />
-                    <property name="temp.build.skip" value="true" />
-                </if>
-            </if>
-        </if>
-        <if test="${not temp.build.skip}">
-            <csc if="${current.build.config.release}" keyfile="${path::combine(log4net.basedir, 'old-log4net.snk')}" nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/../oldkey/log4net.dll" doc="${current.bin.dir}/../oldkey/log4net.xml">
-                <sources basedir="${log4net.basedir}/src">
-                    <include name="**/*.cs" />
-                </sources>
-                <resources failonempty="true">
-                    <include name="${log4net.basedir}/NOTICE" />
-                    <include name="${log4net.basedir}/LICENSE" />
-                </resources>
-                <references>
-                    <include name="mscorlib.dll" />
-                    <include name="System.dll" />
-                    <include name="System.Data.dll" />
-                    <include name="System.Web.dll" />
-                    <include name="System.Xml.dll" />
-                    <include name="System.Configuration.dll" />
-                    <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
-                    <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
-                </references>
-            </csc>
-        </if>
-            <csc if="${current.build.config.release}" keyfile="${path::combine(log4net.basedir, 'log4net.snk')}" nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml">
-                <sources basedir="${log4net.basedir}/src">
-                    <include name="**/*.cs" />
-                </sources>
-                <resources failonempty="true">
-                    <include name="${log4net.basedir}/NOTICE" />
-                    <include name="${log4net.basedir}/LICENSE" />
-                </resources>
-                <references>
-                    <include name="mscorlib.dll" />
-                    <include name="System.dll" />
-                    <include name="System.Data.dll" />
-                    <include name="System.Web.dll" />
-                    <include name="System.Xml.dll" />
-                    <include name="System.Configuration.dll" />
-                    <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
-                    <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
-                </references>
-            </csc>
-            <csc if="${current.build.config.debug}" nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml">
-                <sources basedir="${log4net.basedir}/src">
-                    <include name="**/*.cs" />
-                </sources>
-                <resources failonempty="true">
-                    <include name="${log4net.basedir}/NOTICE" />
-                    <include name="${log4net.basedir}/LICENSE" />
-                </resources>
-                <references>
-                    <include name="mscorlib.dll" />
-                    <include name="System.dll" />
-                    <include name="System.Data.dll" />
-                    <include name="System.Web.dll" />
-                    <include name="System.Xml.dll" />
-                    <include name="System.Configuration.dll" />
-                    <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
-                    <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
-                </references>
-            </csc>
-    </target>
-  <target name="compile-net-3.0" description="Builds .NET Framework 3.0 version" depends="set-net-3.0-runtime-configuration, check-log4net-basedir, clean-current-bin-dir">
+  <include buildfile="${log4net.basedir}/log4net.include" />
+  <!-- Targets that should always be executed -->
+  <call target="set-build-configuration" />
+  <call target="set-framework-configuration" />
+  <!-- Targets that check settings -->
+  <target name="check-package-version">
+    <fail 
+        message="A package version has not been specified." 
+        if="${not property::exists('package.version')}" />
+  </target>
+  <target name="check-package-dir">
+    <property name="package.dir" value="build/package" overwrite="false" />
+    <mkdir dir="${package.dir}" />
+  </target>
+  <target name="check-current-package-dir">
+    <fail 
+        message="The current package directory has not been specified."
+        if="${not property::exists('current.package.dir')}" />
+    <mkdir dir="${current.package.dir}" />
+  </target>
+  <target name="check-current-package-zipfile">
+    <fail 
+        message="The current package zipfile has not been specified."
+        if="${not property::exists('current.package.zipfile')}" />
+  </target>
+  <target name="check-htmlhelp-compiler">
+    <if test="${not property::exists('htmlhelp.compiler')}">
+      <readregistry
+          property="htmlhelp.workshop.installroot"
+          key="SOFTWARE\Microsoft\HTML Help Workshop\InstallDir"
+          hive="CurrentUser"
+          failonerror="false" />
+      <if test="${property::exists('htmlhelp.workshop.installroot')}">
+        <property 
+            name="htmlhelp.compiler"
+            value="${htmlhelp.workshop.installroot}/hhc.exe" />
+      </if>
+    </if>
+    <if test="${not property::exists('htmlhelp.compiler')}">
+      <!-- sysinfo task fails under x64 due to invalid property names - https://sourceforge.net/tracker/?func=detail&atid=402868&aid=1213185&group_id=31650 -->
+      <sysinfo failonerror="false" />
+      <property 
+          name="htmlhelp.compiler"
+          value="${sys.os.folder.programfiles}/HTML Help Worshop/hhc.exe" />
+    </if>
+  </target>
+  <!-- Target for cleaning up the current package directory -->
+  <target name="clean-current-package-dir" depends="check-current-package-dir" description="Cleans the current package directory">
+    <echo message="Cleaning the ${current.package.dir} package directory." />
+    <delete dir="${current.package.dir}" if="${directory::exists(current.package.dir)}" />
+    <mkdir dir="${current.package.dir}" />
+  </target>
+  <!-- Displays configuration info, usefull for working out why log4net doesn't build -->
+  <target name="display-setup" depends="check-htmlhelp-compiler">
+    <!-- .NET Framework 1.0 -->
+    <if test="${framework::exists('net-1.0')}">
+      <property name="nant.settings.currentframework" value="net-1.0" />
+      <call target="display-target-framework" />
+    </if>
+    <if test="${not framework::exists('net-1.0')}">
+      <echo message=".NET Framework 1.0 runtime is not available." />
+    </if>
+    <!-- .NET Framework 1.1 -->
+    <if test="${framework::exists('net-1.1')}">
+      <property name="nant.settings.currentframework" value="net-1.1" />
+      <call target="display-target-framework" />
+    </if>
+    <if test="${not framework::exists('net-1.1')}">
+      <echo message=".NET Framework 1.1 runtime is not available." />
+    </if>
+    <!-- .NET Framework 2.0 -->
+    <if test="${framework::exists('net-2.0')}">
+      <property name="nant.settings.currentframework" value="net-2.0" />
+      <call target="display-target-framework" />
+    </if>
+    <if test="${not framework::exists('net-2.0')}">
+      <echo message=".NET Framework 2.0 runtime is not available." />
+    </if>
+    <!-- .NET Framework 3.0 -->
+    <if test="${framework::exists('net-3.0')}">
+      <property name="nant.settings.currentframework" value="net-3.0" />
+      <call target="display-target-framework" />
+    </if>
+    <if test="${not framework::exists('net-3.0')}">
+      <echo message=".NET Framework 3.0 runtime is not available." />
+    </if> 
+    <!-- .NET Framework 3.5 -->
+    <if test="${framework::exists('net-3.5')}">
+      <property name="nant.settings.currentframework" value="net-3.5" />
+      <call target="display-target-framework" />
+    </if>
+    <if test="${not framework::exists('net-3.5')}">
+      <echo message=".NET Framework 3.5 runtime is not available." />
+    </if>
+    <!-- .NET Framework 4.0 -->
+    <if test="${framework::exists('net-4.0')}">
+      <property name="nant.settings.currentframework" value="net-4.0" />
+      <call target="display-target-framework" />
+    </if>
+    <if test="${not framework::exists('net-4.0')}">
+      <echo message=".NET Framework 4.0 runtime is not available." />
+    </if>
+    <!-- .NET Compact Framework 1.0 -->
+    <if test="${framework::exists('netcf-1.0')}">
+      <property name="nant.settings.currentframework" value="netcf-1.0" />
+      <call target="display-target-framework" />
+    </if>
+    <if test="${not framework::exists('netcf-1.0')}">
+      <echo message=".NET Compact Framework 1.0 runtime is not available." />
+    </if>
+    <!-- .NET Compact Framework 2.0 -->
+    <if test="${framework::exists('netcf-2.0')}">
+      <property name="nant.settings.currentframework" value="netcf-2.0" />
+      <call target="display-target-framework" />
+    </if>
+    <if test="${not framework::exists('netcf-2.0')}">
+      <echo message=".NET Compact Framework 2.0 runtime is not available." />
+    </if>
+    <!-- Mono 1.0 -->
+    <if test="${framework::exists('mono-1.0')}">
+      <property name="nant.settings.currentframework" value="mono-1.0" />
+      <call target="display-target-framework" />
+    </if>
+    <if test="${not framework::exists('mono-1.0')}">
+      <echo message="Mono 1.0 runtime is not available." />
+    </if>
+    <!-- Mono 2.0 -->
+    <if test="${framework::exists('mono-2.0')}">
+      <property name="nant.settings.currentframework" value="mono-2.0" />
+      <call target="display-target-framework" />
+    </if>
+    <if test="${not framework::exists('mono-2.0')}">
+      <echo message="Mono 2.0 runtime is not available." />
+    </if>
+    <!-- SSCLI 1.0 -->
+    <if test="${framework::exists('sscli-1.0')}">
+      <property name="nant.settings.currentframework" value="sscli-1.0" />
+      <call target="display-target-framework" />
+    </if>
+    <if test="${not framework::exists('sscli-1.0')}">
+      <echo message="SSCLI 1.0 runtime is not available." />
+    </if>
+    <!-- HTML Help Compiler -->
+    <echo message="htmlhelp.compiler: ${htmlhelp.compiler}" />
+  </target>
+  <target name="display-target-framework">
+    <echo message="" />
+    <echo message="----------------------------------------------------------" />
+    <echo message=" ${framework::get-description(framework::get-target-framework())}" />
+    <echo message="----------------------------------------------------------" />
+    <echo message="" />
+    <echo message="framework : ${framework::get-target-framework()}" />
+    <echo message="description : ${framework::get-description(framework::get-target-framework())}" />
+    <if test="${framework::sdk-exists(framework::get-target-framework())}">
+      <echo message="sdk directory : ${framework::get-sdk-directory(framework::get-target-framework())}" />
+    </if>
+    <if test="${not framework::sdk-exists(framework::get-target-framework())}">
+      <echo message="sdk directory : &lt;not configured/available&gt;" />
+    </if>
+    <echo message="framework directory : ${framework::get-framework-directory(framework::get-target-framework())}" />
+    <echo message="assembly directory : ${framework::get-assembly-directory(framework::get-target-framework())}" />
+    <echo message="" />
+  </target>
+  <!-- Target for setting the package configuration -->
+  <target name="set-package-configuration" depends="check-package-dir, check-package-version">
+    <property name="current.package.name" value="${nant.project.name}-${package.version}" />
+    <property name="current.package.dir" value="${package.dir}/${current.package.name}" />
+    <property name="log4net.basedir" value="${current.package.dir}" />
+    <property name="current.package.zipfile" value="${project::get-name()}-${package.version}.zip" />
+    <property name="bin.dir" value="${current.package.dir}/bin" />
+    <property name="doc.dir" value="${current.package.dir}/doc" />
+    <property name="sdkdoc.dir" value="${doc.dir}/sdk" />
+    <delete dir="${current.package.dir}" if="${directory::exists(current.package.dir)}" />
+    <mkdir dir="${current.package.dir}" />
+  </target>
+  <!-- Target for compiling all build configurations for all runtime configurations -->
+  <target name="compile-all" description="Compile all build configurations for all runtime configurations">
+    <echo message="Compiling all build configurations for all runtime configurations." />
+    <call target="set-debug-build-configuration" />
+    <call target="compile-build" />
+    <call target="set-release-build-configuration" />
+    <call target="compile-build" />
+  </target>
+  <!-- Target for compiling all build configurations for the current runtime configurations -->
+  <target name="compile-runtime" description="Compile all build configurations for the current target framework">
+    <echo message="Compiling all build configurations for ${framework::get-description(framework::get-target-framework())}." />
+    <call target="set-debug-build-configuration" />
+    <!-- make sure that the runtime properties that rely on build configuration information are refreshed -->
+    <call target="set-runtime-configuration" />
+    <call target="compile-${framework::get-target-framework()}" />
+    <call target="set-release-build-configuration" />
+    <!-- make sure that the runtime properties that rely on build configuration information are refreshed -->
+    <call target="set-runtime-configuration" />
+    <call target="compile-${framework::get-target-framework()}" />
+  </target>
+  <!-- Target for compiling all runtime configurations in the current build configuration -->
+  <target name="compile-build" description="Compile current build configurations for all runtime configurations">
+    <echo message="Compiling all framework versions for the ${current.build.config} build configuration." />
+    <!-- NETCF_1_0 -->
+    <if test="${framework::exists('netcf-1.0')}">
+      <call target="compile-netcf-1.0" />
+    </if>
+    <if test="${not framework::exists('netcf-1.0')}">
+      <if test="${property::exists('project.build.package') and project.build.package}">
+        <fail message="The .NET Compact Framework 1.0 is not available." />
+      </if>
+      <if test="${not(property::exists('project.build.package') and project.build.package)}">
+        <echo 
+            message="The .NET Compact Framework 1.0 is not available. Build skipped." />
+      </if>
+    </if>
+    <!-- NETCF_2_0 -->
+    <if test="${framework::exists('netcf-2.0')}">
+      <call target="compile-netcf-2.0" />
+    </if>
+    <if test="${not framework::exists('netcf-2.0')}">
+      <if test="${property::exists('project.build.package') and project.build.package}">
+        <fail message="The .NET Compact Framework 2.0 is not available." />
+      </if>
+      <if test="${not(property::exists('project.build.package') and project.build.package)}">
+        <echo 
+            message="The .NET Compact Framework 2.0 is not available. Build skipped." />
+      </if>
+    </if>
+    <!-- NET_1_0 -->
+    <if test="${framework::exists('net-1.0')}">
+      <call target="compile-net-1.0" />
+      <call target="compile-cli-1.0" />
+    </if>
+    <if test="${not framework::exists('net-1.0')}">
+      <if test="${property::exists('project.build.package') and project.build.package}">
+        <fail message="The .NET Framework 1.0 is not available." />
+      </if>
+      <if test="${not(property::exists('project.build.package') and project.build.package)}">
+        <echo message="The .NET Framework 1.0 is not available. Build skipped." />
+      </if>
+    </if>
+    <!-- NET_1_1 -->
+    <if test="${framework::exists('net-1.1')}">
+      <call target="compile-net-1.1" />
+    </if>
+    <if test="${not framework::exists('net-1.1')}">
+      <if test="${property::exists('project.build.package') and project.build.package}">
+        <fail message="The .NET Framework 1.1 is not available." />
+      </if>
+      <if test="${not(property::exists('project.build.package') and project.build.package)}">
+        <echo message="The .NET Framework 1.1 is not available. Build skipped." />
+      </if>
+    </if>
+    <!-- NET_2_0 -->
+    <if test="${framework::exists('net-2.0')}">
+      <call target="compile-net-2.0" />
+    </if>
+    <if test="${not framework::exists('net-2.0')}">
+      <if test="${property::exists('project.build.package') and project.build.package}">
+        <fail message="The .NET Framework 2.0 is not available." />
+      </if>
+      <if test="${not(property::exists('project.build.package') and project.build.package)}">
+        <echo message="The .NET Framework 2.0 is not available. Build skipped." />
+      </if>
+    </if>
+    <!-- NET_3_0 -->
+    <if test="${framework::exists('net-3.0')}">
+      <call target="compile-net-3.0" />
+    </if>
+    <if test="${not framework::exists('net-3.0')}">
+      <if test="${property::exists('project.build.package') and project.build.package}">
+        <fail message="The .NET Framework 3.0 is not available." />
+      </if>
+      <if test="${not(property::exists('project.build.package') and project.build.package)}">
+        <echo message="The .NET Framework 3.0 is not available. Build skipped." />
+      </if>
+    </if>
+    <!-- NET_3_5 -->
+    <if test="${framework::exists('net-3.5')}">
+      <call target="compile-net-3.5" />
+      <call target="compile-net-3.5-cp" />
+    </if>
+    <if test="${not framework::exists('net-3.5')}">
+      <if test="${property::exists('project.build.package') and project.build.package}">
+        <fail message="The .NET Framework 3.5 is not available." />
+      </if>
+      <if test="${not(property::exists('project.build.package') and project.build.package)}">
+        <echo message="The .NET Framework 3.5 is not available. Build skipped." />
+      </if>
+    </if>
+    <!-- NET_4_0 -->
+    <if test="${framework::exists('net-4.0')}">
+      <call target="compile-net-4.0" />
+      <call target="compile-net-4.0-cp" />
+    </if>
+    <if test="${not framework::exists('net-4.0')}">
+      <if test="${property::exists('project.build.package') and project.build.package}">
+        <fail message="The .NET Framework 4.0 is not available." />
+      </if>
+      <if test="${not(property::exists('project.build.package') and project.build.package)}">
+        <echo message="The .NET Framework 4.0 is not available. Build skipped." />
+      </if>
+    </if>
+    <!-- MONO_1_0 -->
+    <if test="${framework::exists('mono-1.0')}">
+      <call target="compile-mono-1.0" />
+    </if>
+    <if test="${not framework::exists('mono-1.0')}">
+      <if test="${property::exists('project.build.package') and project.build.package}">
+        <fail message="Mono 1.0 is not available." />
+      </if>
+      <if test="${not(property::exists('project.build.package') and project.build.package)}">
+        <echo message="Mono 1.0 is not available. Build skipped." />
+      </if>
+    </if>
+    <!-- MONO_2_0 -->
+    <if test="${framework::exists('mono-2.0')}">
+      <call target="compile-mono-2.0" />
+    </if>
+    <if test="${not framework::exists('mono-2.0')}">
+      <if test="${property::exists('project.build.package') and project.build.package}">
+        <fail message="Mono 2.0 is not available." />
+      </if>
+      <if test="${not(property::exists('project.build.package') and project.build.package)}">
+        <echo message="Mono 2.0 is not available. Build skipped." />
+      </if>
+    </if>
+    <!-- SSCLI_1_0 -->
+    <if test="${framework::exists('sscli-1.0')}">
+      <call target="compile-sscli-1.0" />
+    </if>
+    <if test="${not framework::exists('sscli-1.0')}">
+      <if test="${property::exists('project.build.package') and project.build.package}">
+        <fail message="SSCLI 1.0 is not available." />
+      </if>
+      <if test="${not(property::exists('project.build.package') and project.build.package)}">
+        <echo message="SSCLI 1.0 is not available. Build skipped." />
+      </if>
+    </if>
+  </target>
+  <target name="compile" description="Builds the current build configuration for the current target framework." depends="check-current-build-config">
+    <call target="compile-${framework::get-target-framework()}" />
+  </target>
+  <target name="compile-netcf-1.0" description="Builds .NET Compact Framework 1.0 version" depends="set-netcf-1.0-runtime-configuration, check-log4net-basedir, clean-current-bin-dir">
     <!-- initialize the temp.build.skip property to false -->
     <property name="temp.build.skip" value="false" />
     <if test="${current.build.config.release}">
-      <!-- check if the old log4net key file is available -->
-      <if test="${not file::exists(log4net.basedir + '/old-log4net.snk')}">
+      <!-- check if the log4net key file is available -->
+      <if test="${not file::exists(log4net.basedir + '/log4net.snk')}">
         <if test="${property::exists('project.build.package') and project.build.package}">
-          <fail message="Old key file not found." />
+          <fail message="Key file not found." />
         </if>
         <if test="${not(property::exists('project.build.package') and project.build.package)}">
-          <echo message="Old key file not found."/>
-          <echo message="The release build using the old key will be skipped." />
+          <echo message="Key file not found. You can generate a key file by running 'sn -k log4net.snk'." />
+          <echo message="The generated key file should be stored in the log4net base directory." />
+          <echo message="The release build will be skipped." />
           <property name="temp.build.skip" value="true" />
         </if>
       </if>
+      <if test="${file::exists(log4net.basedir + '/log4net.snk')}">
+        <!-- copy the log4net key file to the location where the compiler expects it to be -->
+        <copy file="${log4net.basedir}/log4net.snk" todir="${current.bin.dir}/../../../" />
+      </if>
     </if>
     <if test="${not temp.build.skip}">
-      <csc if="${current.build.config.release}" keyfile="${path::combine(log4net.basedir, 'old-log4net.snk')}" nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/../oldkey/log4net.dll" doc="${current.bin.dir}/../oldkey/log4net.xml">
+      <csc warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml">
         <sources basedir="${log4net.basedir}/src">
           <include name="**/*.cs" />
         </sources>
@@ -707,15 +395,31 @@ limitations under the License.
           <include name="mscorlib.dll" />
           <include name="System.dll" />
           <include name="System.Data.dll" />
-          <include name="System.Web.dll" />
           <include name="System.Xml.dll" />
-          <include name="System.Configuration.dll" />
           <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
           <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
         </references>
       </csc>
     </if>
-      <csc if="${current.build.config.release}" keyfile="${path::combine(log4net.basedir, 'log4net.snk')}" nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml">
+  </target>
+  <target name="compile-netcf-2.0" description="Builds .NET Compact Framework 2.0 version" depends="set-netcf-2.0-runtime-configuration, check-log4net-basedir, clean-current-bin-dir">
+    <!-- initialize the temp.build.skip property to false -->
+    <property name="temp.build.skip" value="false" />
+    <if test="${current.build.config.release}">
+      <!-- check if the old log4net key file is available -->
+      <if test="${not file::exists(log4net.basedir + '/old-log4net.snk')}">
+        <if test="${property::exists('project.build.package') and project.build.package}">
+          <fail message="Old key file not found." />
+        </if>
+        <if test="${not(property::exists('project.build.package') and project.build.package)}">
+          <echo message="Old key file not found."/>
+          <echo message="The release build using the old key will be skipped." />
+          <property name="temp.build.skip" value="true" />
+        </if>
+      </if>
+    </if>
+    <if test="${not temp.build.skip}">
+      <csc if="${current.build.config.release}" keyfile="${path::combine(log4net.basedir, 'old-log4net.snk')}" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/../oldkey/log4net.dll" doc="${current.bin.dir}/../oldkey/log4net.xml">
         <sources basedir="${log4net.basedir}/src">
           <include name="**/*.cs" />
         </sources>
@@ -727,14 +431,72 @@ limitations under the License.
           <include name="mscorlib.dll" />
           <include name="System.dll" />
           <include name="System.Data.dll" />
-          <include name="System.Web.dll" />
           <include name="System.Xml.dll" />
-          <include name="System.Configuration.dll" />
           <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
           <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
         </references>
       </csc>
-      <csc if="${current.build.config.debug}" nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml">
+    </if>
+    <csc if="${current.build.config.release}" keyfile="${path::combine(log4net.basedir, 'log4net.snk')}" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml">
+      <sources basedir="${log4net.basedir}/src">
+        <include name="**/*.cs" />
+      </sources>
+      <resources failonempty="true">
+        <include name="${log4net.basedir}/NOTICE" />
+        <include name="${log4net.basedir}/LICENSE" />
+      </resources>
+      <references>
+        <include name="mscorlib.dll" />
+        <include name="System.dll" />
+        <include name="System.Data.dll" />
+        <include name="System.Xml.dll" />
+        <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
+        <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
+      </references>
+    </csc>
+    <csc if="${current.build.config.debug}" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml">
+      <sources basedir="${log4net.basedir}/src">
+        <include name="**/*.cs" />
+      </sources>
+      <resources failonempty="true">
+        <include name="${log4net.basedir}/NOTICE" />
+        <include name="${log4net.basedir}/LICENSE" />
+      </resources>
+      <references>
+        <include name="mscorlib.dll" />
+        <include name="System.dll" />
+        <include name="System.Data.dll" />
+        <include name="System.Xml.dll" />
+        <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
+        <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
+      </references>
+    </csc>
+  </target>
+  <target name="compile-net-1.0" description="Builds .NET Framework 1.0 version" depends="set-net-1.0-runtime-configuration, check-log4net-basedir, clean-current-bin-dir">
+    <!-- initialize the temp.build.skip property to false -->
+    <property name="temp.build.skip" value="false" />
+    <if test="${current.build.config.release}">
+      <!-- check if the log4net key file is available -->
+      <if test="${not file::exists(log4net.basedir + '/log4net.snk')}">
+        <if test="${property::exists('project.build.package') and project.build.package}">
+          <fail message="Old key file not found." />
+        </if>
+        <if test="${not(property::exists('project.build.package') and project.build.package)}">
+          <echo message="Old key file not found."/>
+          <echo message="The release build using the old key will be skipped." />
+          <property name="temp.build.skip" value="true" />
+        </if>
+      </if>
+      <if test="${file::exists(log4net.basedir + '/old-log4net.snk')}">
+        <!-- copy the log4net key file to the location where
+             the compiler expects it to be -->
+        <copy file="${log4net.basedir}/old-log4net.snk"
+              tofile="${current.bin.dir}/../../../log4net.snk"
+              overwrite="true"/>
+      </if>
+    </if>
+    <if test="${not temp.build.skip}">
+      <csc if="${current.build.config.release}" nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/../oldkey/log4net.dll" doc="${current.bin.dir}/../oldkey/log4net.xml">
         <sources basedir="${log4net.basedir}/src">
           <include name="**/*.cs" />
         </sources>
@@ -748,30 +510,58 @@ limitations under the License.
           <include name="System.Data.dll" />
           <include name="System.Web.dll" />
           <include name="System.Xml.dll" />
-          <include name="System.Configuration.dll" />
           <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
           <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
         </references>
       </csc>
+    </if>
+    <copy file="${log4net.basedir}/log4net.snk"
+          todir="${current.bin.dir}/../../../"
+          overwrite="true"/>
+    <csc nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml">
+      <sources basedir="${log4net.basedir}/src">
+        <include name="**/*.cs" />
+      </sources>
+      <resources failonempty="true">
+        <include name="${log4net.basedir}/NOTICE" />
+        <include name="${log4net.basedir}/LICENSE" />
+      </resources>
+      <references>
+        <include name="mscorlib.dll" />
+        <include name="System.dll" />
+        <include name="System.Data.dll" />
+        <include name="System.Web.dll" />
+        <include name="System.Xml.dll" />
+        <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
+        <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
+      </references>
+    </csc>
   </target>
-  <target name="compile-net-3.5" description="Builds .NET Framework 3.5 version" depends="set-net-3.5-runtime-configuration, check-log4net-basedir, clean-current-bin-dir">
+  <target name="compile-net-1.1" description="Builds .NET Framework 1.1 version" depends="set-net-1.1-runtime-configuration, check-log4net-basedir, clean-current-bin-dir">
     <!-- initialize the temp.build.skip property to false -->
     <property name="temp.build.skip" value="false" />
     <if test="${current.build.config.release}">
-      <!-- check if the old log4net key file is available -->
-      <if test="${not file::exists(log4net.basedir + '/old-log4net.snk')}">
+      <!-- check if the log4net key file is available -->
+      <if test="${not file::exists(log4net.basedir + '/log4net.snk')}">
         <if test="${property::exists('project.build.package') and project.build.package}">
           <fail message="Old key file not found." />
         </if>
         <if test="${not(property::exists('project.build.package') and project.build.package)}">
-          <echo message="old key file not found."/>
+          <echo message="Old key file not found."/>
           <echo message="The release build using the old key will be skipped." />
           <property name="temp.build.skip" value="true" />
         </if>
       </if>
+      <if test="${file::exists(log4net.basedir + '/old-log4net.snk')}">
+        <!-- copy the log4net key file to the location where
+             the compiler expects it to be -->
+        <copy file="${log4net.basedir}/old-log4net.snk"
+              tofile="${current.bin.dir}/../../../log4net.snk"
+              overwrite="true"/>
+      </if>
     </if>
     <if test="${not temp.build.skip}">
-      <csc if="${current.build.config.release}" keyfile="${path::combine(log4net.basedir, 'old-log4net.snk')}" nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/../oldkey/log4net.dll" doc="${current.bin.dir}/../oldkey/log4net.xml">
+      <csc if="${current.build.config.release}" nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/../oldkey/log4net.dll" doc="${current.bin.dir}/../oldkey/log4net.xml">
         <sources basedir="${log4net.basedir}/src">
           <include name="**/*.cs" />
         </sources>
@@ -785,32 +575,51 @@ limitations under the License.
           <include name="System.Data.dll" />
           <include name="System.Web.dll" />
           <include name="System.Xml.dll" />
-          <include name="System.Configuration.dll" />
           <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
           <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
         </references>
-      </csc>      
+      </csc>
     </if>
-      <csc if="${current.build.config.release}" keyfile="${path::combine(log4net.basedir, 'log4net.snk')}" nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml">
-        <sources basedir="${log4net.basedir}/src">
-          <include name="**/*.cs" />
-        </sources>
-        <resources failonempty="true">
-          <include name="${log4net.basedir}/NOTICE" />
-          <include name="${log4net.basedir}/LICENSE" />
-        </resources>
-        <references>
-          <include name="mscorlib.dll" />
-          <include name="System.dll" />
-          <include name="System.Data.dll" />
-          <include name="System.Web.dll" />
-          <include name="System.Xml.dll" />
-          <include name="System.Configuration.dll" />
-          <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
-          <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
-        </references>
-      </csc>      
-      <csc if="${current.build.config.debug}" nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml">
+    <copy file="${log4net.basedir}/log4net.snk"
+          todir="${current.bin.dir}/../../../"
+          overwrite="true"/>
+    <csc nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml">
+      <sources basedir="${log4net.basedir}/src">
+        <include name="**/*.cs" />
+      </sources>
+      <resources failonempty="true">
+        <include name="${log4net.basedir}/NOTICE" />
+        <include name="${log4net.basedir}/LICENSE" />
+      </resources>
+      <references>
+        <include name="mscorlib.dll" />
+        <include name="System.dll" />
+        <include name="System.Data.dll" />
+        <include name="System.Web.dll" />
+        <include name="System.Xml.dll" />
+        <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
+        <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
+      </references>
+    </csc>
+  </target>
+  <target name="compile-net-2.0" description="Builds .NET Framework 2.0 version" depends="set-net-2.0-runtime-configuration, check-log4net-basedir, clean-current-bin-dir">
+    <!-- initialize the temp.build.skip property to false -->
+    <property name="temp.build.skip" value="false" />
+    <if test="${current.build.config.release}">
+      <!-- check if the old log4net key file is available -->
+      <if test="${not file::exists(log4net.basedir + '/old-log4net.snk')}">
+        <if test="${property::exists('project.build.package') and project.build.package}">
+          <fail message="Old key file not found." />
+        </if>
+        <if test="${not(property::exists('project.build.package') and project.build.package)}">
+          <echo message="Old key file not found."/>
+          <echo message="The release build using the old key will be skipped." />
+          <property name="temp.build.skip" value="true" />
+        </if>
+      </if>
+    </if>
+    <if test="${not temp.build.skip}">
+      <csc if="${current.build.config.release}" keyfile="${path::combine(log4net.basedir, 'old-log4net.snk')}" nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/../oldkey/log4net.dll" doc="${current.bin.dir}/../oldkey/log4net.xml">
         <sources basedir="${log4net.basedir}/src">
           <include name="**/*.cs" />
         </sources>
@@ -829,8 +638,47 @@ limitations under the License.
           <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
         </references>
       </csc>
+    </if>
+    <csc if="${current.build.config.release}" keyfile="${path::combine(log4net.basedir, 'log4net.snk')}" nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml">
+      <sources basedir="${log4net.basedir}/src">
+        <include name="**/*.cs" />
+      </sources>
+      <resources failonempty="true">
+        <include name="${log4net.basedir}/NOTICE" />
+        <include name="${log4net.basedir}/LICENSE" />
+      </resources>
+      <references>
+        <include name="mscorlib.dll" />
+        <include name="System.dll" />
+        <include name="System.Data.dll" />
+        <include name="System.Web.dll" />
+        <include name="System.Xml.dll" />
+        <include name="System.Configuration.dll" />
+        <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
+        <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
+      </references>
+    </csc>
+    <csc if="${current.build.config.debug}" nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml">
+      <sources basedir="${log4net.basedir}/src">
+        <include name="**/*.cs" />
+      </sources>
+      <resources failonempty="true">
+        <include name="${log4net.basedir}/NOTICE" />
+        <include name="${log4net.basedir}/LICENSE" />
+      </resources>
+      <references>
+        <include name="mscorlib.dll" />
+        <include name="System.dll" />
+        <include name="System.Data.dll" />
+        <include name="System.Web.dll" />
+        <include name="System.Xml.dll" />
+        <include name="System.Configuration.dll" />
+        <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
+        <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
+      </references>
+    </csc>
   </target>
-  <target name="compile-net-3.5-cp" description="Builds .NET Framework 3.5 Client Profile version" depends="set-net-3.5-cp-runtime-configuration, check-log4net-basedir, clean-current-bin-dir">
+  <target name="compile-net-3.0" description="Builds .NET Framework 3.0 version" depends="set-net-3.0-runtime-configuration, check-log4net-basedir, clean-current-bin-dir">
     <!-- initialize the temp.build.skip property to false -->
     <property name="temp.build.skip" value="false" />
     <if test="${current.build.config.release}">
@@ -859,14 +707,71 @@ limitations under the License.
           <include name="mscorlib.dll" />
           <include name="System.dll" />
           <include name="System.Data.dll" />
+          <include name="System.Web.dll" />
           <include name="System.Xml.dll" />
           <include name="System.Configuration.dll" />
           <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
           <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
         </references>
-      </csc>      
+      </csc>
     </if>
-      <csc if="${current.build.config.release}" keyfile="${path::combine(log4net.basedir, 'log4net.snk')}" nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml">
+    <csc if="${current.build.config.release}" keyfile="${path::combine(log4net.basedir, 'log4net.snk')}" nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml">
+      <sources basedir="${log4net.basedir}/src">
+        <include name="**/*.cs" />
+      </sources>
+      <resources failonempty="true">
+        <include name="${log4net.basedir}/NOTICE" />
+        <include name="${log4net.basedir}/LICENSE" />
+      </resources>
+      <references>
+        <include name="mscorlib.dll" />
+        <include name="System.dll" />
+        <include name="System.Data.dll" />
+        <include name="System.Web.dll" />
+        <include name="System.Xml.dll" />
+        <include name="System.Configuration.dll" />
+        <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
+        <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
+      </references>
+    </csc>
+    <csc if="${current.build.config.debug}" nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml">
+      <sources basedir="${log4net.basedir}/src">
+        <include name="**/*.cs" />
+      </sources>
+      <resources failonempty="true">
+        <include name="${log4net.basedir}/NOTICE" />
+        <include name="${log4net.basedir}/LICENSE" />
+      </resources>
+      <references>
+        <include name="mscorlib.dll" />
+        <include name="System.dll" />
+        <include name="System.Data.dll" />
+        <include name="System.Web.dll" />
+        <include name="System.Xml.dll" />
+        <include name="System.Configuration.dll" />
+        <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
+        <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
+      </references>
+    </csc>
+  </target>
+  <target name="compile-net-3.5" description="Builds .NET Framework 3.5 version" depends="set-net-3.5-runtime-configuration, check-log4net-basedir, clean-current-bin-dir">
+    <!-- initialize the temp.build.skip property to false -->
+    <property name="temp.build.skip" value="false" />
+    <if test="${current.build.config.release}">
+      <!-- check if the old log4net key file is available -->
+      <if test="${not file::exists(log4net.basedir + '/old-log4net.snk')}">
+        <if test="${property::exists('project.build.package') and project.build.package}">
+          <fail message="Old key file not found." />
+        </if>
+        <if test="${not(property::exists('project.build.package') and project.build.package)}">
+          <echo message="old key file not found."/>
+          <echo message="The release build using the old key will be skipped." />
+          <property name="temp.build.skip" value="true" />
+        </if>
+      </if>
+    </if>
+    <if test="${not temp.build.skip}">
+      <csc if="${current.build.config.release}" keyfile="${path::combine(log4net.basedir, 'old-log4net.snk')}" nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/../oldkey/log4net.dll" doc="${current.bin.dir}/../oldkey/log4net.xml">
         <sources basedir="${log4net.basedir}/src">
           <include name="**/*.cs" />
         </sources>
@@ -878,13 +783,71 @@ limitations under the License.
           <include name="mscorlib.dll" />
           <include name="System.dll" />
           <include name="System.Data.dll" />
+          <include name="System.Web.dll" />
           <include name="System.Xml.dll" />
           <include name="System.Configuration.dll" />
           <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
           <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
         </references>
-      </csc>      
-      <csc if="${current.build.config.debug}" nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml">
+      </csc>
+    </if>
+    <csc if="${current.build.config.release}" keyfile="${path::combine(log4net.basedir, 'log4net.snk')}" nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml">
+      <sources basedir="${log4net.basedir}/src">
+        <include name="**/*.cs" />
+      </sources>
+      <resources failonempty="true">
+        <include name="${log4net.basedir}/NOTICE" />
+        <include name="${log4net.basedir}/LICENSE" />
+      </resources>
+      <references>
+        <include name="mscorlib.dll" />
+        <include name="System.dll" />
+        <include name="System.Data.dll" />
+        <include name="System.Web.dll" />
+        <include name="System.Xml.dll" />
+        <include name="System.Configuration.dll" />
+        <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
+        <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
+      </references>
+    </csc>
+    <csc if="${current.build.config.debug}" nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml">
+      <sources basedir="${log4net.basedir}/src">
+        <include name="**/*.cs" />
+      </sources>
+      <resources failonempty="true">
+        <include name="${log4net.basedir}/NOTICE" />
+        <include name="${log4net.basedir}/LICENSE" />
+      </resources>
+      <references>
+        <include name="mscorlib.dll" />
+        <include name="System.dll" />
+        <include name="System.Data.dll" />
+        <include name="System.Web.dll" />
+        <include name="System.Xml.dll" />
+        <include name="System.Configuration.dll" />
+        <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework family>/<framework version>/<build configuration> directory -->
+        <include name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll" />
+      </references>
+    </csc>
+  </target>
+  <target name="compile-net-3.5-cp" description="Builds .NET Framework 3.5 Client Profile version" depends="set-net-3.5-cp-runtime-configuration, check-log4net-basedir, clean-current-bin-dir">
+    <!-- initialize the temp.build.skip property to false -->
+    <property name="temp.build.skip" value="false" />
+    <if test="${current.build.config.release}">
+      <!-- check if the old log4net key file is available -->
+      <if test="${not file::exists(log4net.basedir + '/old-log4net.snk')}">
+        <if test="${property::exists('project.build.package') and project.build.package}">

[... 1259 lines stripped ...]


Mime
View raw message