diff --git a/.gitignore b/.gitignore
index 6c925f2..b9a8678 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,6 +14,7 @@
 [Dd]ebug/
 [Dd]ebugPublic/
 [Rr]elease/
+!src/site/xdoc/release/
 [Rr]eleases/
 x64/
 x86/
@@ -137,7 +138,7 @@
 # Publish Web Output
 *.[Pp]ublish.xml
 *.azurePubxml
-# TODO: Comment the next line if you want to checkin your web deploy settings 
+# TODO: Comment the next line if you want to checkin your web deploy settings
 # but database connection strings (with potential passwords) will be unencrypted
 *.pubxml
 *.publishproj
@@ -235,4 +236,3 @@
 # other files to ignore
 old-log4net.snk
 src/GeneratedAssemblyInfo.cs
-
diff --git a/Jenkinsfile b/Jenkinsfile
index 43215b5..9d53023 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -19,13 +19,13 @@
 
 pipeline {
 	options {
-		timeout(time: 1, unit: 'HOURS')
+		timeout(time: 4, unit: 'HOURS')
 		buildDiscarder(logRotator(numToKeepStr: '3'))
 		skipDefaultCheckout()
 		disableConcurrentBuilds()
 	}
 	agent {
-		label 'ubuntu'
+		label 'ubuntu&&!H26'
 	}
 	stages {
 		// prepare node for builds
@@ -37,11 +37,11 @@
 		}
 
 		// builds
-		stage('build netstandard') {
+		stage('build netstandard-1.3') {
 			steps {
 				script {
 					checkout scm
-					def builder_dir = "buildtools/docker/builder-netstandard"
+					def builder_dir = "buildtools/docker/builder-netstandard-1.3"
 
 					// calculate args required to build the docker container
 					def JENKINS_UID = sh (
@@ -52,34 +52,40 @@
 						script: "stat -c \"%g\" $builder_dir",
 						returnStdout: true
 					).trim()
-					echo "$JENKINS_UID"
-					echo "$JENKINS_GID"
 
 					// build docker container
-					def builder = docker.build 'builder-netstandard:latest', "--file $builder_dir/Dockerfile --build-arg JENKINS_UID=$JENKINS_UID --build-arg JENKINS_GID=$JENKINS_GID $builder_dir"
+					def builder = docker.build 'builder-netstandard-1.3:latest', "--file $builder_dir/Dockerfile --build-arg JENKINS_UID=$JENKINS_UID --build-arg JENKINS_GID=$JENKINS_GID $builder_dir"
 
 					// run docker container
 					builder.inside {
 						// compile
-						sh "nant compile-netstandard"
-						stash includes: 'bin/**/*.*', name: 'netstandard-assemblies'
+						sh "nant compile-netstandard-1.3"
+						stash includes: 'bin/**/*.*', name: 'netstandard-1.3-assemblies'
 
 						// test
-						sh 'cd netstandard/log4net.tests && dotnet test'
+						sh "nant -buildfile:tests/nant.build runtests-netstandard-1.3"
+						stash includes: 'tests/bin/**/*.trx', name: 'netstandard-1.3-testresults', allowEmpty: true
+						stash includes: 'tests/bin/**/*.log', name: 'netstandard-1.3-testlogs', allowEmpty: true
 					}
 				}
-
-
-				// compile 
-				// sh 'nant compile-netstandard'
-				// stash includes: 'bin/**/*.*', name: 'netstandard-assemblies'
-
-				// test
-				// sh 'cd netstandard/log4net.tests && dotnet test'
+			}
+		}
+		stage('build net-2.0') {
+			agent { label 'windows-2012-1||windows-2012-2||windows-2012-3' }
+			environment {
+				NANT_BIN = 'F:\\jenkins\\tools\\nant\\nant-0.92\\bin\\NAnt.exe'
+			}
+			steps {
+				deleteDir()
+				checkout scm
+				bat "${NANT_BIN} -t:net-2.0 -buildfile:log4net.build compile-net-2.0"
+				stash includes: 'bin/**/*.*', name: 'net-2.0-assemblies'
+				bat "${NANT_BIN} -t:net-2.0 -buildfile:tests/nant.build runtests-net-2.0"
+				stash includes: 'tests/bin/**/*.nunit.xml', name: 'net-2.0-testresults'
 			}
 		}
 		stage('build net-3.5') {
-			agent { label 'Windows' }
+			agent { label 'windows-2012-1||windows-2012-2||windows-2012-3' }
 			environment {
 				NANT_BIN = 'F:\\jenkins\\tools\\nant\\nant-0.92\\bin\\NAnt.exe'
 			}
@@ -93,7 +99,7 @@
 			}
 		}
 		stage('build net-3.5-cp') {
-			agent { label 'Windows' }
+			agent { label 'windows-2012-1||windows-2012-2||windows-2012-3' }
 			environment {
 				NANT_BIN = 'F:\\jenkins\\tools\\nant\\nant-0.92\\bin\\NAnt.exe'
 			}
@@ -107,7 +113,7 @@
 			}
 		}
 		stage('build net-4.0') {
-			agent { label 'Windows' }
+			agent { label 'windows-2012-1||windows-2012-2||windows-2012-3' }
 			environment {
 				NANT_BIN = 'F:\\jenkins\\tools\\nant\\nant-0.92\\bin\\NAnt.exe'
 			}
@@ -121,7 +127,7 @@
 			}
 		}
 		stage('build net-4.0-cp') {
-			agent { label 'Windows' }
+			agent { label 'windows-2012-1||windows-2012-2||windows-2012-3' }
 			environment {
 				NANT_BIN = 'F:\\jenkins\\tools\\nant\\nant-0.92\\bin\\NAnt.exe'
 			}
@@ -135,7 +141,7 @@
 			}
 		}
 		stage('build net-4.5') {
-			agent { label 'Windows' }
+			agent { label 'windows-2012-1||windows-2012-2||windows-2012-3' }
 			environment {
 				NANT_BIN = 'F:\\jenkins\\tools\\nant\\nant-0.92\\bin\\NAnt.exe'
 			}
@@ -200,7 +206,7 @@
 			}
 		}
 		stage('build site') {
-			agent { label 'Windows' }
+			agent { label 'windows-2012-1||windows-2012-2||windows-2012-3' }
 			tools {
 				maven 'Maven 3.3.9 (Windows)'
 				jdk 'JDK 1.8 (latest)'
@@ -230,7 +236,7 @@
 					unstash 'mono-2.0-assemblies'
 					unstash 'mono-3.5-assemblies'
 					unstash 'mono-4.0-assemblies'
-					unstash 'netstandard-assemblies'
+					unstash 'netstandard-1.3-assemblies'
 
 					// unstash test results
 					unstash 'net-3.5-testresults'
@@ -241,11 +247,13 @@
 					unstash 'mono-2.0-testresults'
 					unstash 'mono-3.5-testresults'
 					unstash 'mono-4.0-testresults'
+					unstash 'netstandard-1.3-testresults'
+					unstash 'netstandard-1.3-testlogs'
 
 					// unstash site
 					unstash 'site'
 				}
-				
+
 				// move site
 				sh 'mv package/target/site/ package/site/'
 				sh 'rmdir -p --ignore-fail-on-non-empty package/target'
@@ -277,6 +285,14 @@
 							pattern              : 'package/tests/bin/**/*.nunit.xml',
 							skipNoTestFiles      : true,
 							stopProcessingIfError: true
+						],
+						[
+							$class               : 'MSTestJunitHudsonTestType',
+							deleteOutputFiles    : false,
+							failIfNotNew         : true,
+							pattern              : 'package/**/*.trx',
+							skipNoTestFiles      : true,
+							stopProcessingIfError: true
 						]
 					]
 				])
@@ -295,8 +311,7 @@
 	post {
 		failure {
 			// TODO: change this to dev@
-			step([$class: 'Mailer', notifyEveryUnstableBuild: false, recipients: 'commits@logging.apache.org'])
+			step([$class: 'Mailer', notifyEveryUnstableBuild: false, recipients: 'notifications@logging.apache.org'])
 		}
 	}
 }
-
diff --git a/NOTICE b/NOTICE
index 86d4dfe..d6ed9b6 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,5 +1,5 @@
    Apache log4net
-   Copyright 2004-2017 The Apache Software Foundation
+   Copyright 2004-2018 The Apache Software Foundation
 
    This product includes software developed at
    The Apache Software Foundation (http://www.apache.org/).
diff --git a/buildtools/docker/build-builder-netstandard.sh b/buildtools/docker/build-builder-netstandard-1.3.sh
similarity index 94%
rename from buildtools/docker/build-builder-netstandard.sh
rename to buildtools/docker/build-builder-netstandard-1.3.sh
index e3871c5..f1fc772 100755
--- a/buildtools/docker/build-builder-netstandard.sh
+++ b/buildtools/docker/build-builder-netstandard-1.3.sh
@@ -8,7 +8,7 @@
   exit 1  # fail
 fi
 
-NAME="builder-netstandard"
+NAME="builder-netstandard-1.3"
 JENKINS_UID=$2
 if [ -z "$JENKINS_UID" ] ; then
   JENKINS_UID="`stat -c \"%u\" $0`"
diff --git a/buildtools/docker/builder-mono-2.0/Dockerfile b/buildtools/docker/builder-mono-2.0/Dockerfile
index 016d55b..39014e2 100644
--- a/buildtools/docker/builder-mono-2.0/Dockerfile
+++ b/buildtools/docker/builder-mono-2.0/Dockerfile
@@ -1,9 +1,13 @@
-# Name of container: docker-ubuntu-latest-nant
-FROM ubuntu:latest
+# Name of container
+FROM ubuntu:16.04
 
 # set the maintainer of this docker image
 MAINTAINER "dev@logging.apache.org"
 
+# set the timezone
+RUN ln -fs /usr/share/zoneinfo/Universal /etc/localtime
+RUN echo "Universal" > /etc/timezone
+
 # install dependencies
 RUN apt-get update && apt-get install -y nant git mono-complete mono-reference-assemblies-2.0
 
diff --git a/buildtools/docker/builder-mono-3.5/Dockerfile b/buildtools/docker/builder-mono-3.5/Dockerfile
index 709f0fd..adecc33 100644
--- a/buildtools/docker/builder-mono-3.5/Dockerfile
+++ b/buildtools/docker/builder-mono-3.5/Dockerfile
@@ -1,9 +1,13 @@
 # Name of container: docker-ubuntu-latest-nant
-FROM ubuntu:latest
+FROM ubuntu:16.04
 
 # set the maintainer of this docker image
 MAINTAINER "dev@logging.apache.org"
 
+# set the timezone
+RUN ln -fs /usr/share/zoneinfo/Universal /etc/localtime
+RUN echo "Universal" > /etc/timezone
+
 # install nant
 RUN apt-get update && apt-get install -y nant git mono-complete mono-reference-assemblies-2.0 mono-reference-assemblies-3.5
 
diff --git a/buildtools/docker/builder-mono-4.0/Dockerfile b/buildtools/docker/builder-mono-4.0/Dockerfile
index 28bd0e0..8de952c 100644
--- a/buildtools/docker/builder-mono-4.0/Dockerfile
+++ b/buildtools/docker/builder-mono-4.0/Dockerfile
@@ -1,9 +1,13 @@
 # Name of container: docker-ubuntu-latest-nant
-FROM ubuntu:latest
+FROM ubuntu:16.04
 
 # set the maintainer of this docker image
 MAINTAINER "dev@logging.apache.org"
 
+# set the timezone
+RUN ln -fs /usr/share/zoneinfo/Universal /etc/localtime
+RUN echo "Universal" > /etc/timezone
+
 # install nant
 RUN apt-get update && apt-get install -y nant git mono-complete mono-reference-assemblies-4.0
 
diff --git a/buildtools/docker/builder-netstandard/Dockerfile b/buildtools/docker/builder-netstandard-1.3/Dockerfile
similarity index 83%
rename from buildtools/docker/builder-netstandard/Dockerfile
rename to buildtools/docker/builder-netstandard-1.3/Dockerfile
index 2dc5f54..6e43e81 100644
--- a/buildtools/docker/builder-netstandard/Dockerfile
+++ b/buildtools/docker/builder-netstandard-1.3/Dockerfile
@@ -1,5 +1,4 @@
-# Name of container: docker-ubuntu-latest-nant
-FROM microsoft/dotnet
+FROM microsoft/dotnet:2-sdk-jessie
 
 # define arguments passed in as environment variables
 ARG JENKINS_UID
@@ -8,9 +7,6 @@
 # set the maintainer of this docker image
 MAINTAINER "dev@logging.apache.org"
 
-RUN echo $JENKINS_UID
-RUN echo $JENKINS_GID
-
 # add custom workspace that can be written by anyone
 RUN mkdir -p /var/workspaces && chmod 0777 /var/workspaces
 
@@ -20,4 +16,3 @@
 
 # install dependencies
 RUN apt-get update && apt-get install -y nant git
-
diff --git a/buildtools/docker/run-builder-netstandard.sh b/buildtools/docker/run-builder-netstandard-1.3.sh
similarity index 87%
rename from buildtools/docker/run-builder-netstandard.sh
rename to buildtools/docker/run-builder-netstandard-1.3.sh
index e3d2794..f97f54b 100755
--- a/buildtools/docker/run-builder-netstandard.sh
+++ b/buildtools/docker/run-builder-netstandard-1.3.sh
@@ -14,5 +14,5 @@
 	WORKING_DIR=$(pwd)
 fi
 
-$MY_PATH/run.sh "builder-netstandard" $WORKING_DIR
+$MY_PATH/run.sh "builder-netstandard-1.3" $WORKING_DIR
 
diff --git a/log4net.build b/log4net.build
index 6961d8b..c94d344 100644
--- a/log4net.build
+++ b/log4net.build
@@ -1,10 +1,10 @@
 <?xml version="1.0"?>
 <!--
-Licensed to the Apache Software Foundation (ASF) under one or more 
+Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements. See the NOTICE file distributed with
-this work for additional information regarding copyright ownership. 
+this work for additional information regarding copyright ownership.
 The ASF licenses this file to you under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with 
+(the "License"); you may not use this file except in compliance with
 the License. You may obtain a copy of the License at
 
 http://www.apache.org/licenses/LICENSE-2.0
@@ -201,8 +201,8 @@
     <call target="compile-mono-4.0"/>
     <!-- SSCLI_1_0 -->
     <call target="compile-sscli-1.0"/>
-    <!-- netstandard -->
-    <call target="compile-netstandard"/>
+    <!-- netstandard-1.3 -->
+    <call target="compile-netstandard-1.3"/>
   </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">
@@ -544,12 +544,12 @@
       <echo message="Skipping build; required framework is not available: .NET Framework 2.0"/>
     </if>
     <if test="${framework::exists('net-2.0')}">
+      <call target="set-net-2.0-runtime-configuration"/>
+      <call target="check-log4net-basedir"/>
+      <call target="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}">
-        <call target="set-net-2.0-runtime-configuration"/>
-        <call target="check-log4net-basedir"/>
-        <call target="clean-current-bin-dir"/>
         <!-- 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}">
@@ -1748,14 +1748,14 @@
       </csc>
     </if>
   </target>
-  <!-- these targets build lognet assemblies against .NET Core (.net standard 1.0.4)-->
-  <target name="compile-netstandard" description="Builds .NET Core">
+  <!-- these targets build lognet assemblies against .NET Core (.net standard 1.3)-->
+  <target name="compile-netstandard-1.3" description="Builds .NET Core">
     <call target="set-debug-build-configuration"/>
-    <call target="compile-netstandard-current-configuration"/>
+    <call target="compile-netstandard-1.3-current-configuration"/>
     <call target="set-release-build-configuration"/>
-    <call target="compile-netstandard-current-configuration"/>
+    <call target="compile-netstandard-1.3-current-configuration"/>
   </target>
-  <target name="compile-netstandard-current-configuration">
+  <target name="compile-netstandard-1.3-current-configuration">
     <echo message="dotnet --version"/>
     <exec program="dotnet" workingdir="netstandard" failonerror="false" resultproperty="dotnet.available">
       <arg value="--version"/>
@@ -1765,7 +1765,7 @@
     </if>
     <if test="${dotnet.available == '0'}">
       <echo message="dotnet restore log4net.netstandard.sln"/>
-      <exec program="dotnet" workingdir="netstandard">
+	  <exec program="dotnet" workingdir="netstandard/1.3">
         <arg value="restore"/>
         <arg value="log4net.netstandard.sln"/>
       </exec>
@@ -1775,7 +1775,7 @@
       <if test="${current.build.config.release == '-c'}">
         <echo message="dotnet build log4net -c Release"/>
       </if>
-      <exec program="dotnet" workingdir="netstandard">
+	  <exec program="dotnet" workingdir="netstandard/1.3">
         <arg value="build"/>
         <arg value="log4net"/>
         <arg if="${current.build.config.release}" value="-c"/>
@@ -1784,14 +1784,14 @@
       <mkdir dir="${log4net.basedir}/bin/netstandard/1.3"/>
       <if test="${current.build.config.release}">
         <move todir="${log4net.basedir}/bin/netstandard/1.3/release">
-          <fileset basedir="netstandard/log4net/bin/Release/netstandard1.3"/>
+          <fileset basedir="netstandard/1.3/log4net/bin/Release/netstandard1.3"/>
         </move>
       </if>
-      <ifnot test="${current.build.config.release}">
+      <if test="${current.build.config.debug}">
         <move todir="${log4net.basedir}/bin/netstandard/1.3/debug">
-          <fileset basedir="netstandard/log4net/bin/Debug/netstandard1.3"/>
+          <fileset basedir="netstandard/1.3/log4net/bin/Debug/netstandard1.3"/>
         </move>
-      </ifnot>
+      </if>
     </if>
   </target>
   <!-- Target for generating docs for all runtime configurations -->
diff --git a/log4net.include b/log4net.include
index 7cfe8e1..6597dd4 100644
--- a/log4net.include
+++ b/log4net.include
@@ -132,7 +132,7 @@
         </if>
     </target>
     <target name="check-log4net-assembly" depends="check-current-build-config, check-log4net-output-dir">
-	<echo message="Testing if file exists: ${path::combine(log4net.output.dir, 'log4net.dll')} "/>
+    <echo message="Testing if file exists: ${path::combine(log4net.output.dir, 'log4net.dll')} "/>
         <if test="${not file::exists(path::combine(log4net.output.dir, 'log4net.dll'))}">
             <fail message="The log4net '${current.build.config}' assembly for ${framework::get-description(framework::get-target-framework())} is not available." />
         </if>
@@ -235,83 +235,83 @@
     </target>
     <!-- uses NET_2_0 defines plus NET_3_5 -->
     <target name="set-net-3.5-runtime-configuration" depends="check-bin-dir, check-sdkdoc-dir, check-sdkdoc-debug, check-current-build-config, check-build-debug, check-build-defines">
-      <property name="nant.settings.currentframework" value="net-3.5" />
-      <property name="current.build.debug" value="${build.debug}" dynamic="true" />
-      <property name="current.build.optimize" value="${build.optimize}" dynamic="true" />
-      <property name="current.build.defines.csc" value="${build.defines.csc},NET,NET_2_0,NET_3_5" dynamic="true" />
-      <property name="current.build.defines.jsc" value="${build.defines.jsc},NET,NET_2_0,NET_3_5" dynamic="true" />
-      <property name="current.build.defines.vbc" value="${build.defines.vbc},NET=True,NET_2_0=True,NET_3_5=True" dynamic="true" />
-      <property name="current.build.defines.vjc" value="${build.defines.vjc},NET,NET_2_0,NET_3_5" dynamic="true" />
-      <property name="current.build.defines.cl" value="${build.defines.cl} /D NET /D NET_2_0 /D NET_3_5" dynamic="true" />
-      <property name="current.build.configuration.dir" value="${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}" />
+        <property name="nant.settings.currentframework" value="net-3.5" />
+        <property name="current.build.debug" value="${build.debug}" dynamic="true" />
+        <property name="current.build.optimize" value="${build.optimize}" dynamic="true" />
+        <property name="current.build.defines.csc" value="${build.defines.csc},NET,NET_2_0,NET_3_5" dynamic="true" />
+        <property name="current.build.defines.jsc" value="${build.defines.jsc},NET,NET_2_0,NET_3_5" dynamic="true" />
+        <property name="current.build.defines.vbc" value="${build.defines.vbc},NET=True,NET_2_0=True,NET_3_5=True" dynamic="true" />
+        <property name="current.build.defines.vjc" value="${build.defines.vjc},NET,NET_2_0,NET_3_5" dynamic="true" />
+        <property name="current.build.defines.cl" value="${build.defines.cl} /D NET /D NET_2_0 /D NET_3_5" dynamic="true" />
+        <property name="current.build.configuration.dir" value="${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}" />
         <property name="current.bin.dir" value="${bin.dir}/${current.build.configuration.dir}"/>
-      <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
-      <property name="current.sdkdoc.dir" value="${sdkdoc.dir}/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}" />      
-      <property name="current.sdkdoc.debug" value="${sdkdoc.debug}" dynamic="true" />
+        <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
+        <property name="current.sdkdoc.dir" value="${sdkdoc.dir}/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}" />      
+        <property name="current.sdkdoc.debug" value="${sdkdoc.debug}" dynamic="true" />
     </target>
     <!-- uses NET_2_0 defines plus NET_3_5 and CLIENT_PROFILE-->
     <target name="set-net-3.5-cp-runtime-configuration" depends="check-bin-dir, check-sdkdoc-dir, check-sdkdoc-debug, check-current-build-config, check-build-debug, check-build-defines">
-      <property name="nant.settings.currentframework" value="net-3.5" />
-      <property name="current.build.debug" value="${build.debug}" dynamic="true" />
-      <property name="current.build.optimize" value="${build.optimize}" dynamic="true" />
-      <property name="current.build.defines.csc" value="${build.defines.csc},NET,NET_2_0,NET_3_5,CLIENT_PROFILE" dynamic="true" />
-      <property name="current.build.defines.jsc" value="${build.defines.jsc},NET,NET_2_0,NET_3_5,CLIENT_PROFILE" dynamic="true" />
-      <property name="current.build.defines.vbc" value="${build.defines.vbc},NET=True,NET_2_0=True,NET_3_5=True,CLIENT_PROFILE=True" dynamic="true" />
-      <property name="current.build.defines.vjc" value="${build.defines.vjc},NET,NET_2_0,NET_3_5,CLIENT_PROFILE" dynamic="true" />
-      <property name="current.build.defines.cl" value="${build.defines.cl} /D NET /D NET_2_0 /D NET_3_5 /D CLIENT_PROFILE" dynamic="true" />
-      <property name="current.build.configuration.dir" value="${framework::get-family(framework::get-target-framework())}-cp/${framework::get-version(framework::get-target-framework())}/${current.build.config}" />
+        <property name="nant.settings.currentframework" value="net-3.5" />
+        <property name="current.build.debug" value="${build.debug}" dynamic="true" />
+        <property name="current.build.optimize" value="${build.optimize}" dynamic="true" />
+        <property name="current.build.defines.csc" value="${build.defines.csc},NET,NET_2_0,NET_3_5,CLIENT_PROFILE" dynamic="true" />
+        <property name="current.build.defines.jsc" value="${build.defines.jsc},NET,NET_2_0,NET_3_5,CLIENT_PROFILE" dynamic="true" />
+        <property name="current.build.defines.vbc" value="${build.defines.vbc},NET=True,NET_2_0=True,NET_3_5=True,CLIENT_PROFILE=True" dynamic="true" />
+        <property name="current.build.defines.vjc" value="${build.defines.vjc},NET,NET_2_0,NET_3_5,CLIENT_PROFILE" dynamic="true" />
+        <property name="current.build.defines.cl" value="${build.defines.cl} /D NET /D NET_2_0 /D NET_3_5 /D CLIENT_PROFILE" dynamic="true" />
+        <property name="current.build.configuration.dir" value="${framework::get-family(framework::get-target-framework())}-cp/${framework::get-version(framework::get-target-framework())}/${current.build.config}" />
         <property name="current.bin.dir" value="${bin.dir}/${current.build.configuration.dir}"/>
-      <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
-      <property name="current.sdkdoc.dir" value="${sdkdoc.dir}/${framework::get-family(framework::get-target-framework())}-cp/${framework::get-version(framework::get-target-framework())}" />      
-      <property name="current.sdkdoc.debug" value="${sdkdoc.debug}" dynamic="true" />
+        <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
+        <property name="current.sdkdoc.dir" value="${sdkdoc.dir}/${framework::get-family(framework::get-target-framework())}-cp/${framework::get-version(framework::get-target-framework())}" />      
+        <property name="current.sdkdoc.debug" value="${sdkdoc.debug}" dynamic="true" />
     </target>
     <!-- uses NET_2_0 plus NET_4_0 defines -->
     <target name="set-net-4.0-runtime-configuration" depends="check-bin-dir, check-sdkdoc-dir, check-sdkdoc-debug, check-current-build-config, check-build-debug, check-build-defines">
-      <property name="nant.settings.currentframework" value="net-4.0" />
-      <property name="current.build.debug" value="${build.debug}" dynamic="true" />
-      <property name="current.build.optimize" value="${build.optimize}" dynamic="true" />
-      <property name="current.build.defines.csc" value="${build.defines.csc},NET,NET_2_0,NET_4_0" dynamic="true" />
-      <property name="current.build.defines.jsc" value="${build.defines.jsc},NET,NET_2_0,NET_4_0" dynamic="true" />
-      <property name="current.build.defines.vbc" value="${build.defines.vbc},NET=True,NET_2_0=True,NET_4_0=True" dynamic="true" />
-      <property name="current.build.defines.vjc" value="${build.defines.vjc},NET,NET_2_0,NET_4_0" dynamic="true" />
-      <property name="current.build.defines.cl" value="${build.defines.cl} /D NET /D NET_2_0 /D NET_4_0" dynamic="true" />
-      <property name="current.build.configuration.dir" value="${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}" />
+        <property name="nant.settings.currentframework" value="net-4.0" />
+        <property name="current.build.debug" value="${build.debug}" dynamic="true" />
+        <property name="current.build.optimize" value="${build.optimize}" dynamic="true" />
+        <property name="current.build.defines.csc" value="${build.defines.csc},NET,NET_2_0,NET_4_0" dynamic="true" />
+        <property name="current.build.defines.jsc" value="${build.defines.jsc},NET,NET_2_0,NET_4_0" dynamic="true" />
+        <property name="current.build.defines.vbc" value="${build.defines.vbc},NET=True,NET_2_0=True,NET_4_0=True" dynamic="true" />
+        <property name="current.build.defines.vjc" value="${build.defines.vjc},NET,NET_2_0,NET_4_0" dynamic="true" />
+        <property name="current.build.defines.cl" value="${build.defines.cl} /D NET /D NET_2_0 /D NET_4_0" dynamic="true" />
+        <property name="current.build.configuration.dir" value="${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}" />
         <property name="current.bin.dir" value="${bin.dir}/${current.build.configuration.dir}"/>
-      <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
-      <property name="current.sdkdoc.dir" value="${sdkdoc.dir}/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}" />      
-      <property name="current.sdkdoc.debug" value="${sdkdoc.debug}" dynamic="true" />
+        <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
+        <property name="current.sdkdoc.dir" value="${sdkdoc.dir}/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}" />      
+        <property name="current.sdkdoc.debug" value="${sdkdoc.debug}" dynamic="true" />
     </target>
     <!-- uses NET_2_0 plus NET_4_0 and CLIENT_PROFILE defines -->
     <target name="set-net-4.0-cp-runtime-configuration" depends="check-bin-dir, check-sdkdoc-dir, check-sdkdoc-debug, check-current-build-config, check-build-debug, check-build-defines">
-      <property name="nant.settings.currentframework" value="net-4.0" />
-      <property name="current.build.debug" value="${build.debug}" dynamic="true" />
-      <property name="current.build.optimize" value="${build.optimize}" dynamic="true" />
-      <property name="current.build.defines.csc" value="${build.defines.csc},NET,NET_2_0,NET_4_0,CLIENT_PROFILE" dynamic="true" />
-      <property name="current.build.defines.jsc" value="${build.defines.jsc},NET,NET_2_0,NET_4_0,CLIENT_PROFILE" dynamic="true" />
-      <property name="current.build.defines.vbc" value="${build.defines.vbc},NET=True,NET_2_0=True,NET_4_0=True,CLIENT_PROFILE=True" dynamic="true" />
-      <property name="current.build.defines.vjc" value="${build.defines.vjc},NET,NET_2_0,NET_4_0,CLIENT_PROFILE" dynamic="true" />
-      <property name="current.build.defines.cl" value="${build.defines.cl} /D NET /D NET_2_0 /D NET_4_0 /D CLIENT_PROFILE" dynamic="true" />
-      <property name="current.build.configuration.dir" value="${framework::get-family(framework::get-target-framework())}-cp/${framework::get-version(framework::get-target-framework())}/${current.build.config}" />
+        <property name="nant.settings.currentframework" value="net-4.0" />
+        <property name="current.build.debug" value="${build.debug}" dynamic="true" />
+        <property name="current.build.optimize" value="${build.optimize}" dynamic="true" />
+        <property name="current.build.defines.csc" value="${build.defines.csc},NET,NET_2_0,NET_4_0,CLIENT_PROFILE" dynamic="true" />
+        <property name="current.build.defines.jsc" value="${build.defines.jsc},NET,NET_2_0,NET_4_0,CLIENT_PROFILE" dynamic="true" />
+        <property name="current.build.defines.vbc" value="${build.defines.vbc},NET=True,NET_2_0=True,NET_4_0=True,CLIENT_PROFILE=True" dynamic="true" />
+        <property name="current.build.defines.vjc" value="${build.defines.vjc},NET,NET_2_0,NET_4_0,CLIENT_PROFILE" dynamic="true" />
+        <property name="current.build.defines.cl" value="${build.defines.cl} /D NET /D NET_2_0 /D NET_4_0 /D CLIENT_PROFILE" dynamic="true" />
+        <property name="current.build.configuration.dir" value="${framework::get-family(framework::get-target-framework())}-cp/${framework::get-version(framework::get-target-framework())}/${current.build.config}" />
         <property name="current.bin.dir" value="${bin.dir}/${current.build.configuration.dir}"/>
-      <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
-      <property name="current.sdkdoc.dir" value="${sdkdoc.dir}/${framework::get-family(framework::get-target-framework())}-cp/${framework::get-version(framework::get-target-framework())}" />      
-      <property name="current.sdkdoc.debug" value="${sdkdoc.debug}" dynamic="true" />
+        <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
+        <property name="current.sdkdoc.dir" value="${sdkdoc.dir}/${framework::get-family(framework::get-target-framework())}-cp/${framework::get-version(framework::get-target-framework())}" />      
+        <property name="current.sdkdoc.debug" value="${sdkdoc.debug}" dynamic="true" />
     </target>
     <!-- uses NET_4_0 plus NET_4_5 defines -->
     <target name="set-net-4.5-runtime-configuration" depends="check-bin-dir, check-sdkdoc-dir, check-sdkdoc-debug, check-current-build-config, check-build-debug, check-build-defines">
-      <property name="nant.settings.currentframework" value="net-4.0" />
-      <property name="current.build.debug" value="${build.debug}" dynamic="true" />
-      <property name="current.build.optimize" value="${build.optimize}" dynamic="true" />
-      <property name="current.build.defines.csc" value="${build.defines.csc},NET,NET_2_0,NET_4_0,NET_4_5" dynamic="true" />
-      <property name="current.build.defines.jsc" value="${build.defines.jsc},NET,NET_2_0,NET_4_0,NET_4_5" dynamic="true" />
-      <property name="current.build.defines.vbc" value="${build.defines.vbc},NET=True,NET_2_0=True,NET_4_0=True,NET_4_5=True" dynamic="true" />
-      <property name="current.build.defines.vjc" value="${build.defines.vjc},NET,NET_2_0,NET_4_0,NET_4_5" dynamic="true" />
-      <property name="current.build.defines.cl" value="${build.defines.cl} /D NET /D NET_2_0 /D NET_4_0 /D NET_4_5" dynamic="true" />
-      <property name="current.build.configuration.dir" value="${framework::get-family(framework::get-target-framework())}/4.5/${current.build.config}" />
+        <property name="nant.settings.currentframework" value="net-4.0" />
+        <property name="current.build.debug" value="${build.debug}" dynamic="true" />
+        <property name="current.build.optimize" value="${build.optimize}" dynamic="true" />
+        <property name="current.build.defines.csc" value="${build.defines.csc},NET,NET_2_0,NET_4_0,NET_4_5" dynamic="true" />
+        <property name="current.build.defines.jsc" value="${build.defines.jsc},NET,NET_2_0,NET_4_0,NET_4_5" dynamic="true" />
+        <property name="current.build.defines.vbc" value="${build.defines.vbc},NET=True,NET_2_0=True,NET_4_0=True,NET_4_5=True" dynamic="true" />
+        <property name="current.build.defines.vjc" value="${build.defines.vjc},NET,NET_2_0,NET_4_0,NET_4_5" dynamic="true" />
+        <property name="current.build.defines.cl" value="${build.defines.cl} /D NET /D NET_2_0 /D NET_4_0 /D NET_4_5" dynamic="true" />
+        <property name="current.build.configuration.dir" value="${framework::get-family(framework::get-target-framework())}/4.5/${current.build.config}" />
         <property name="current.bin.dir" value="${bin.dir}/${current.build.configuration.dir}"/>
-      <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
-      <property name="current.sdkdoc.dir" value="${sdkdoc.dir}/${framework::get-family(framework::get-target-framework())}/4.5" />      
-      <property name="current.sdkdoc.debug" value="${sdkdoc.debug}" dynamic="true" />
+        <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
+        <property name="current.sdkdoc.dir" value="${sdkdoc.dir}/${framework::get-family(framework::get-target-framework())}/4.5" />      
+        <property name="current.sdkdoc.debug" value="${sdkdoc.debug}" dynamic="true" />
     </target>
     <target name="set-netcf-1.0-runtime-configuration" depends="check-bin-dir, check-sdkdoc-dir, check-sdkdoc-debug, check-current-build-config, check-build-debug, check-build-defines">
         <property name="nant.settings.currentframework" value="netcf-1.0" />
@@ -324,11 +324,11 @@
         <property name="current.build.defines.cl" value="${build.defines.cl} /D NETCF /D NETCF_1_0" dynamic="true" />
         <property name="current.build.configuration.dir" value="${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}" />
         <property name="current.bin.dir" value="${bin.dir}/${current.build.configuration.dir}"/>
-      <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
+        <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
         <property name="current.sdkdoc.dir" value="${sdkdoc.dir}/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}" />
         <property name="current.sdkdoc.debug" value="${sdkdoc.debug}" dynamic="true" />
     </target>
-	<target name="set-netcf-2.0-runtime-configuration" depends="check-bin-dir, check-sdkdoc-dir, check-sdkdoc-debug, check-current-build-config, check-build-debug, check-build-defines">
+    <target name="set-netcf-2.0-runtime-configuration" depends="check-bin-dir, check-sdkdoc-dir, check-sdkdoc-debug, check-current-build-config, check-build-debug, check-build-defines">
         <property name="nant.settings.currentframework" value="netcf-2.0" />
         <property name="current.build.debug" value="${build.debug}" dynamic="true" />
         <property name="current.build.optimize" value="${build.optimize}" dynamic="true" />
@@ -339,7 +339,7 @@
         <property name="current.build.defines.cl" value="${build.defines.cl} /D NETCF /D NETCF_2_0" dynamic="true" />
         <property name="current.build.configuration.dir" value="${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}" />
         <property name="current.bin.dir" value="${bin.dir}/${current.build.configuration.dir}"/>
-      <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
+        <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
         <property name="current.sdkdoc.dir" value="${sdkdoc.dir}/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}" />
         <property name="current.sdkdoc.debug" value="${sdkdoc.debug}" dynamic="true" />
     </target>
@@ -354,7 +354,7 @@
         <property name="current.build.defines.cl" value="${build.defines.cl} /D MONO /D MONO_1_0" dynamic="true" />
         <property name="current.build.configuration.dir" value="${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}" />
         <property name="current.bin.dir" value="${bin.dir}/${current.build.configuration.dir}"/>
-      <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
+        <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
         <property name="current.sdkdoc.dir" value="${sdkdoc.dir}/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}" />
         <property name="current.sdkdoc.debug" value="${sdkdoc.debug}" dynamic="true" />
     </target>
@@ -369,7 +369,7 @@
         <property name="current.build.defines.cl" value="${build.defines.cl} /D MONO /D MONO_2_0" dynamic="true" />
         <property name="current.build.configuration.dir" value="${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}" />
         <property name="current.bin.dir" value="${bin.dir}/${current.build.configuration.dir}"/>
-      <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
+        <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
         <property name="current.sdkdoc.dir" value="${sdkdoc.dir}/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}" />
         <property name="current.sdkdoc.debug" value="${sdkdoc.debug}" dynamic="true" />
     </target>
@@ -384,7 +384,7 @@
         <property name="current.build.defines.cl" value="${build.defines.cl} /D MONO /D MONO_2_0" dynamic="true" />
         <property name="current.build.configuration.dir" value="${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}" />
         <property name="current.bin.dir" value="${bin.dir}/${current.build.configuration.dir}"/>
-      <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
+        <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
         <property name="current.sdkdoc.dir" value="${sdkdoc.dir}/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}" />
         <property name="current.sdkdoc.debug" value="${sdkdoc.debug}" dynamic="true" />
     </target>
@@ -399,7 +399,7 @@
         <property name="current.build.defines.cl" value="${build.defines.cl} /D MONO /D MONO_2_0 /D MONO_4_0" dynamic="true" />
         <property name="current.build.configuration.dir" value="${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}" />
         <property name="current.bin.dir" value="${bin.dir}/${current.build.configuration.dir}"/>
-      <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
+        <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
         <property name="current.sdkdoc.dir" value="${sdkdoc.dir}/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}" />
         <property name="current.sdkdoc.debug" value="${sdkdoc.debug}" dynamic="true" />
     </target>
@@ -414,7 +414,7 @@
         <property name="current.build.defines.cl" value="${build.defines.cl} /D MONO /D MONO_2_0 /D MONO_4_0 /D MONO_4_5" dynamic="true" />
         <property name="current.build.configuration.dir" value="${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}" />
         <property name="current.bin.dir" value="${bin.dir}/${current.build.configuration.dir}"/>
-      <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
+        <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
         <property name="current.sdkdoc.dir" value="${sdkdoc.dir}/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}" />
         <property name="current.sdkdoc.debug" value="${sdkdoc.debug}" dynamic="true" />
     </target>
@@ -429,7 +429,7 @@
         <property name="current.build.defines.cl" value="${build.defines.cl} /D SSCLI /D SSCLI_1_0" dynamic="true" />
         <property name="current.build.configuration.dir" value="${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}" />
         <property name="current.bin.dir" value="${bin.dir}/${current.build.configuration.dir}"/>
-      <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
+        <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
         <property name="current.sdkdoc.dir" value="${sdkdoc.dir}/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}" />
         <property name="current.sdkdoc.debug" value="${sdkdoc.debug}" dynamic="true" />
     </target>
@@ -444,7 +444,7 @@
         <property name="current.build.defines.cl" value="${build.defines.cl} /D CLI /D CLI_1_0" dynamic="true" />
         <property name="current.build.configuration.dir" value="cli/1.0/${current.build.config}" />
         <property name="current.bin.dir" value="${bin.dir}/${current.build.configuration.dir}"/>
-      <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
+        <property name="log4net.output.dir" value="${log4net.basedir}/${current.bin.dir}" />
         <property name="current.sdkdoc.dir" value="${sdkdoc.dir}" />
         <property name="current.sdkdoc.debug" value="${sdkdoc.debug}" dynamic="true" />
     </target>
diff --git a/log4net.nuspec b/log4net.nuspec
index ea0a9f0..19bbc64 100644
--- a/log4net.nuspec
+++ b/log4net.nuspec
@@ -25,9 +25,9 @@
     <version>2.0.9</version>
     <title>Apache log4net</title>
     <summary>The Apache log4net library is a tool to help the programmer output log statements to a variety of output targets.</summary>
-    <description>log4net is a tool to help the programmer output log statements to a variety of output targets. In case of problems with an application, it is helpful to enable logging so that the problem can be located. With log4net it is possible to enable logging at runtime without modifying the application binary. The log4net package is designed so that log statements can remain in shipped code without incurring a high performance cost. It follows that the speed of logging (or rather not logging) is crucial. 
+    <description>log4net is a tool to help the programmer output log statements to a variety of output targets. In case of problems with an application, it is helpful to enable logging so that the problem can be located. With log4net it is possible to enable logging at runtime without modifying the application binary. The log4net package is designed so that log statements can remain in shipped code without incurring a high performance cost. It follows that the speed of logging (or rather not logging) is crucial.
 
-At the same time, log output can be so voluminous that it quickly becomes overwhelming. One of the distinctive features of log4net is the notion of hierarchical loggers. Using these loggers it is possible to selectively control which log statements are output at arbitrary granularity. 
+At the same time, log output can be so voluminous that it quickly becomes overwhelming. One of the distinctive features of log4net is the notion of hierarchical loggers. Using these loggers it is possible to selectively control which log statements are output at arbitrary granularity.
 
 log4net is designed with two distinct goals in mind: speed and flexibility</description>
     <authors>The Apache Software Foundation</authors>
@@ -35,7 +35,7 @@
     <licenseUrl>http://logging.apache.org/log4net/license.html</licenseUrl>
     <projectUrl>http://logging.apache.org/log4net/</projectUrl>
     <iconUrl>https://www.apache.org/images/feather.png</iconUrl>
-    <copyright>Copyright 2004-2017 The Apache Software Foundation</copyright>
+    <copyright>Copyright 2004-2018 The Apache Software Foundation</copyright>
     <requireLicenseAcceptance>false</requireLicenseAcceptance>
     <tags>logging log tracing logfiles</tags>
     <dependencies>
diff --git a/log4net.shfbproj b/log4net.shfbproj
index 7f91938..393a7b3 100644
--- a/log4net.shfbproj
+++ b/log4net.shfbproj
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-Licensed to the Apache Software Foundation (ASF) under one or more 
+Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements. See the NOTICE file distributed with
-this work for additional information regarding copyright ownership. 
+this work for additional information regarding copyright ownership.
 The ASF licenses this file to you under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with 
+(the "License"); you may not use this file except in compliance with
 the License. You may obtain a copy of the License at
 
 http://www.apache.org/licenses/LICENSE-2.0
@@ -42,7 +42,7 @@
     <Preliminary>False</Preliminary>
     <NamingMethod>MemberName</NamingMethod>
     <HelpTitle>Apache log4net™ SDK Documentation</HelpTitle>
-    <CopyrightText>Copyright 2004-2017 The Apache Software Foundation</CopyrightText>
+    <CopyrightText>Copyright 2004-2018 The Apache Software Foundation</CopyrightText>
     <CopyrightHref>http://logging.apache.org/log4net/</CopyrightHref>
     <ContentPlacement>AboveNamespaces</ContentPlacement>
     <DocumentationSources>
diff --git a/netstandard/1.3/log4net.netstandard.sln b/netstandard/1.3/log4net.netstandard.sln
new file mode 100644
index 0000000..e79c8d6
--- /dev/null
+++ b/netstandard/1.3/log4net.netstandard.sln
@@ -0,0 +1,54 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+VisualStudioVersion = 15.0.26114.2
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "log4net", "log4net\log4net.csproj", "{00764202-B361-4BC8-A1B9-01D87F9D2D51}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "log4net.tests", "log4net.tests\log4net.tests.csproj", "{6A78D53B-C864-4316-AA00-F2EBFE975223}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{4BB38D1C-1862-432B-881C-925714F7F997}"
+	ProjectSection(SolutionItems) = preProject
+		nuget.config = nuget.config
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{00764202-B361-4BC8-A1B9-01D87F9D2D51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{00764202-B361-4BC8-A1B9-01D87F9D2D51}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{00764202-B361-4BC8-A1B9-01D87F9D2D51}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{00764202-B361-4BC8-A1B9-01D87F9D2D51}.Release|Any CPU.Build.0 = Release|Any CPU
+		{6A78D53B-C864-4316-AA00-F2EBFE975223}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{6A78D53B-C864-4316-AA00-F2EBFE975223}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{6A78D53B-C864-4316-AA00-F2EBFE975223}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{6A78D53B-C864-4316-AA00-F2EBFE975223}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {8DFAD82F-72D1-4CE7-8CFB-06E7F7B2B0A9}
+	EndGlobalSection
+EndGlobal
diff --git a/netstandard/log4net.tests/ApplicationException.cs b/netstandard/1.3/log4net.tests/ApplicationException.cs
similarity index 100%
rename from netstandard/log4net.tests/ApplicationException.cs
rename to netstandard/1.3/log4net.tests/ApplicationException.cs
diff --git a/netstandard/log4net.tests/CompatibilityExtensions.cs b/netstandard/1.3/log4net.tests/CompatibilityExtensions.cs
similarity index 100%
rename from netstandard/log4net.tests/CompatibilityExtensions.cs
rename to netstandard/1.3/log4net.tests/CompatibilityExtensions.cs
diff --git a/netstandard/log4net.tests/ExpectedExceptionAttribute.cs b/netstandard/1.3/log4net.tests/ExpectedExceptionAttribute.cs
similarity index 100%
rename from netstandard/log4net.tests/ExpectedExceptionAttribute.cs
rename to netstandard/1.3/log4net.tests/ExpectedExceptionAttribute.cs
diff --git a/netstandard/1.3/log4net.tests/log4net.tests.csproj b/netstandard/1.3/log4net.tests/log4net.tests.csproj
new file mode 100755
index 0000000..157c6fa
--- /dev/null
+++ b/netstandard/1.3/log4net.tests/log4net.tests.csproj
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to you under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <VersionPrefix>2.0.9</VersionPrefix>
+    <TargetFramework>netcoreapp2.0</TargetFramework>
+    <DefineConstants>$(DefineConstants);NETSTANDARD1_3</DefineConstants>
+    <AssemblyName>log4net.tests</AssemblyName>
+    <PackageId>log4net.tests</PackageId>
+    <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
+    <AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8</AssetTargetFallback>
+    <RuntimeFrameworkVersion>2.0.7</RuntimeFrameworkVersion>
+    <GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
+    <GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
+    <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
+    <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
+  </PropertyGroup>
+
+  <PropertyGroup Condition="'$(OS)' != 'Windows_NT'">
+    <DefineConstants>$(DefineConstants);NET_STANDARD_1_ON_LINUX</DefineConstants>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Compile Include="../../../tests/src/*.cs;../../../tests/src/Appender/AppenderCollectionTest.cs;../../../tests/src/Appender/BufferingAppenderTest.cs;../../../tests/src/Appender/CountingAppender.cs;../../../tests/src/Appender/MemoryAppenderTest.cs;../../../tests/src/Appender/RollingFileAppenderTest.cs;../../../tests/src/Appender/SmtpPickupDirAppenderTest.cs;../../../tests/src/Appender/StringAppender.cs;../../../tests/src/Appender/TraceAppenderTest.cs;../../../tests/src/Context/LogicalThreadContextTest.cs;../../../tests/src/Context/ThreadContextTest.cs;../../../tests/src/Co../../../*.cs;../../../tests/src/DateFormatt../../../*.cs;../../../tests/src/Hierarc../../../*.cs;../../../tests/src/Layo../../../*.cs;../../../tests/src/LoggerReposito../../../*.cs;../../../tests/src/Util/CyclicBufferTest.cs;../../../tests/src/Util/LogLogTest.cs;../../../tests/src/Util/PatternConverterTest.cs;../../../tests/src/Util/RandomStringPatternConverterTest.cs;../../../tests/src/Util/SystemInfoTest.cs;../../../tests/src/Util/TransformTest.cs" Exclude="bin/**;obj/**;**/*.xproj;packages/**" />
+  </ItemGroup>
+
+  <ItemGroup Condition=" '$(TargetFramework)' == 'netcoreapp1.0' ">
+    <ProjectReference Include="../log4net/log4net.csproj" />
+    <PackageReference Include="NUnit" Version="3.9.0" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
+    <PackageReference Include="NUnit" Version="3.10.1" />
+    <PackageReference Include="NUnit3TestAdapter" Version="3.10.0" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\log4net\log4net.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git a/netstandard/log4net/CompatibilityExtensions.cs b/netstandard/1.3/log4net/CompatibilityExtensions.cs
similarity index 100%
rename from netstandard/log4net/CompatibilityExtensions.cs
rename to netstandard/1.3/log4net/CompatibilityExtensions.cs
diff --git a/netstandard/1.3/log4net/log4net.csproj b/netstandard/1.3/log4net/log4net.csproj
new file mode 100755
index 0000000..460d549
--- /dev/null
+++ b/netstandard/1.3/log4net/log4net.csproj
@@ -0,0 +1,79 @@
+<?xml version="1.0"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to you under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <Copyright>Copyright 2004-2018 The Apache Software Foundation.</Copyright>
+    <AssemblyTitle>Apache log4net for .NET Core</AssemblyTitle>
+    <VersionPrefix>2.0.9</VersionPrefix>
+    <TargetFramework>netstandard1.3</TargetFramework>
+    <AssemblyName>log4net</AssemblyName>
+    <PackageId>log4net</PackageId>
+    <GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
+    <GenerateAssemblyVersionAttribute>false</GenerateAssemblyVersionAttribute>
+    <GenerateAssemblyFileVersionAttribute>false</GenerateAssemblyFileVersionAttribute>
+    <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
+    <GenerateAssemblyCopyrightAttribute>false</GenerateAssemblyCopyrightAttribute>
+    <GenerateAssemblyInformationalVersionAttribute>false</GenerateAssemblyInformationalVersionAttribute>
+    <GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
+    <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
+    <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
+  </PropertyGroup>
+
+  <PropertyGroup Condition=" '$(TargetFramework)' == 'netstandard1.3' ">
+    <DefineConstants>$(DefineConstants);HAS_READERWRITERLOCKSLIM</DefineConstants>
+    <PublicSign>true</PublicSign>
+	<AssemblyOriginatorKeyFile>../../../log4net.snk</AssemblyOriginatorKeyFile>
+    <SignAssembly>true</SignAssembly>
+  </PropertyGroup>
+
+  <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard1.3' ">
+    <Compile Remove="..\..\..\src\Appender\AdoNetAppender.cs;..\..\..\src\Appender\AspNetTraceAppender.cs;..\..\..\src\Appender\ColoredConsoleAppender.cs;..\..\..\src\Appender\EventLogAppender.cs;..\..\..\src\Appender\NetSendAppender.cs;..\..\..\src\Appender\RemotingAppender.cs;..\..\..\src\Appender\SmtpAppender.cs;..\..\..\src\Config\DOMConfigurator.cs;..\..\..\src\Config\DOMConfiguratorAttribute.cs;..\..\..\src\Config\Log4NetConfigurationSectionHandler.cs;..\..\..\src\Layout\Pattern\AspNetCachePatternConverter.cs;..\..\..\src\Layout\Pattern\AspNetContextPatternConverter.cs;..\..\..\src\Layout\Pattern\AspNetPatternConverter.cs;..\..\..\src\Layout\Pattern\AspNetRequestPatternConverter.cs;..\..\..\src\Layout\Pattern\AspNetSessionPatternConverter.cs;..\..\..\src\Layout\Pattern\StackTraceDetailPatternConverter.cs;..\..\..\src\Layout\Pattern\StackTracePatternConverter.cs;..\..\..\src\Plugin\RemoteLoggingServerPlugin.cs;..\..\..\src\Util\PatternStringConverters\AppSettingPatternConverter.cs;..\..\..\src\Util\PatternStringConverters\EnvironmentFolderPathPatternConverter.cs;..\..\..\src\Util\NativeError.cs;..\..\..\src\Util\WindowsSecurityContext.cs" />
+   <Compile Include="..\..\..\src\**\*.cs" Exclude="..\..\..\src\Appender\AdoNetAppender.cs;..\..\..\src\Appender\AspNetTraceAppender.cs;..\..\..\src\Appender\ColoredConsoleAppender.cs;..\..\..\src\Appender\EventLogAppender.cs;..\..\..\src\Appender\NetSendAppender.cs;..\..\..\src\Appender\RemotingAppender.cs;..\..\..\src\Appender\SmtpAppender.cs;..\..\..\src\Config\DOMConfigurator.cs;..\..\..\src\Config\DOMConfiguratorAttribute.cs;..\..\..\src\Config\Log4NetConfigurationSectionHandler.cs;..\..\..\src\Layout\Pattern\AspNetCachePatternConverter.cs;..\..\..\src\Layout\Pattern\AspNetContextPatternConverter.cs;..\..\..\src\Layout\Pattern\AspNetPatternConverter.cs;..\..\..\src\Layout\Pattern\AspNetRequestPatternConverter.cs;..\..\..\src\Layout\Pattern\AspNetSessionPatternConverter.cs;..\..\..\src\Layout\Pattern\StackTraceDetailPatternConverter.cs;..\..\..\src\Layout\Pattern\StackTracePatternConverter.cs;..\..\..\src\Plugin\RemoteLoggingServerPlugin.cs;..\..\..\src\Util\PatternStringConverters\AppSettingPatternConverter.cs;..\..\..\src\Util\PatternStringConverters\EnvironmentFolderPathPatternConverter.cs;..\..\..\src\Util\NativeError.cs;..\..\..\src\Util\WindowsSecurityContext.cs;bin\**;obj\**;**\*.xproj;packages\**" />
+  </ItemGroup>
+
+  <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard1.3' ">
+    <PackageReference Include="System.AppContext" Version="4.3.0" />
+    <PackageReference Include="System.Collections.NonGeneric" Version="4.0.1" />
+    <PackageReference Include="System.Console" Version="4.3.0" />
+    <PackageReference Include="System.Diagnostics.Debug" Version="4.3.0" />
+    <PackageReference Include="System.Diagnostics.Process" Version="4.1.0" />
+    <PackageReference Include="System.Diagnostics.StackTrace" Version="4.0.1" />
+    <PackageReference Include="System.Diagnostics.TraceSource" Version="4.0.0" />
+    <PackageReference Include="System.IO.FileSystem" Version="4.3.0" />
+    <PackageReference Include="System.IO.FileSystem.Watcher" Version="4.0.0" />
+    <PackageReference Include="System.Linq" Version="4.3.0" />
+    <PackageReference Include="System.Net.NameResolution" Version="4.0.0" />
+    <PackageReference Include="System.Net.Requests" Version="4.0.11" />
+    <PackageReference Include="System.Net.Sockets" Version="4.3.0" />
+    <PackageReference Include="System.Reflection" Version="4.3.0" />
+    <PackageReference Include="System.Reflection.Extensions" Version="4.3.0" />
+    <PackageReference Include="System.Reflection.TypeExtensions" Version="4.3.0" />
+    <PackageReference Include="System.Runtime.Extensions" Version="4.3.0" />
+    <PackageReference Include="System.Runtime.InteropServices" Version="4.3.0" />
+    <PackageReference Include="System.Runtime.InteropServices.RuntimeInformation" Version="4.3.0" />
+    <PackageReference Include="System.Runtime.Serialization.Formatters" Version="4.3.0" />
+    <PackageReference Include="System.Text.RegularExpressions" Version="4.3.0" />
+    <PackageReference Include="System.Threading" Version="4.3.0" />
+    <PackageReference Include="System.Threading.Thread" Version="4.0.0" />
+    <PackageReference Include="System.Threading.Timer" Version="4.3.0" />
+    <PackageReference Include="System.Xml.ReaderWriter" Version="4.3.0" />
+    <PackageReference Include="System.Xml.XmlDocument" Version="4.0.1" />
+  </ItemGroup>
+
+</Project>
diff --git a/netstandard/log4net.netstandard.sln b/netstandard/log4net.netstandard.sln
deleted file mode 100644
index c578a2e..0000000
--- a/netstandard/log4net.netstandard.sln
+++ /dev/null
@@ -1,33 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.26114.2
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "log4net", "log4net\log4net.csproj", "{00764202-B361-4BC8-A1B9-01D87F9D2D51}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "log4net.tests", "log4net.tests\log4net.tests.csproj", "{6A78D53B-C864-4316-AA00-F2EBFE975223}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{4BB38D1C-1862-432B-881C-925714F7F997}"
-	ProjectSection(SolutionItems) = preProject
-		nuget.config = nuget.config
-	EndProjectSection
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Any CPU = Debug|Any CPU
-		Release|Any CPU = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{00764202-B361-4BC8-A1B9-01D87F9D2D51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{00764202-B361-4BC8-A1B9-01D87F9D2D51}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{00764202-B361-4BC8-A1B9-01D87F9D2D51}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{00764202-B361-4BC8-A1B9-01D87F9D2D51}.Release|Any CPU.Build.0 = Release|Any CPU
-		{6A78D53B-C864-4316-AA00-F2EBFE975223}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{6A78D53B-C864-4316-AA00-F2EBFE975223}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{6A78D53B-C864-4316-AA00-F2EBFE975223}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{6A78D53B-C864-4316-AA00-F2EBFE975223}.Release|Any CPU.Build.0 = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal
diff --git a/netstandard/log4net.tests/log4net.tests.csproj b/netstandard/log4net.tests/log4net.tests.csproj
deleted file mode 100755
index 69d5fcb..0000000
--- a/netstandard/log4net.tests/log4net.tests.csproj
+++ /dev/null
@@ -1,32 +0,0 @@
-﻿<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <VersionPrefix>2.0.9</VersionPrefix>
-    <TargetFramework>netcoreapp1.0</TargetFramework>
-    <DefineConstants>$(DefineConstants);NETSTANDARD1_3</DefineConstants>
-    <AssemblyName>log4net.tests</AssemblyName>
-    <PackageId>log4net.tests</PackageId>
-    <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
-    <PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8</PackageTargetFallback>
-    <RuntimeFrameworkVersion>1.0.4</RuntimeFrameworkVersion>
-    <GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
-    <GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
-    <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
-    <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <Compile Include="..\..\tests\src\*.cs;..\..\tests\src\Appender\AppenderCollectionTest.cs;..\..\tests\src\Appender\BufferingAppenderTest.cs;..\..\tests\src\Appender\CountingAppender.cs;..\..\tests\src\Appender\MemoryAppenderTest.cs;..\..\tests\src\Appender\RollingFileAppenderTest.cs;..\..\tests\src\Appender\SmtpPickupDirAppenderTest.cs;..\..\tests\src\Appender\StringAppender.cs;..\..\tests\src\Appender\TraceAppenderTest.cs;..\..\tests\src\Context\LogicalThreadContextTest.cs;..\..\tests\src\Context\ThreadContextTest.cs;..\..\tests\src\Core\**\*.cs;..\..\tests\src\DateFormatter\**\*.cs;..\..\tests\src\Hierarchy\**\*.cs;..\..\tests\src\Layout\**\*.cs;..\..\tests\src\LoggerRepository\**\*.cs;..\..\tests\src\Util\CyclicBufferTest.cs;..\..\tests\src\Util\LogLogTest.cs;..\..\tests\src\Util\PatternConverterTest.cs;..\..\tests\src\Util\RandomStringPatternConverterTest.cs;..\..\tests\src\Util\SystemInfoTest.cs;..\..\tests\src\Util\TransformTest.cs" Exclude="bin\**;obj\**;**\*.xproj;packages\**" />
-  </ItemGroup>
-
-  <ItemGroup Condition=" '$(TargetFramework)' == 'netcoreapp1.0' ">
-    <ProjectReference Include="../log4net/log4net.csproj" />
-    <PackageReference Include="dotnet-test-nunit" Version="3.4.0-beta-2" />
-    <PackageReference Include="NUnit" Version="3.4.1" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0-preview-20170106-08" />
-  </ItemGroup>
-
-</Project>
diff --git a/netstandard/log4net/log4net.csproj b/netstandard/log4net/log4net.csproj
deleted file mode 100755
index 05171e7..0000000
--- a/netstandard/log4net/log4net.csproj
+++ /dev/null
@@ -1,62 +0,0 @@
-﻿<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <Copyright>Copyright 2004-2017 The Apache Software Foundation.</Copyright>
-    <AssemblyTitle>Apache log4net for .NET Core</AssemblyTitle>
-    <VersionPrefix>2.0.9</VersionPrefix>
-    <TargetFramework>netstandard1.3</TargetFramework>
-    <AssemblyName>log4net</AssemblyName>
-    <PackageId>log4net</PackageId>
-    <GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
-    <GenerateAssemblyVersionAttribute>false</GenerateAssemblyVersionAttribute>
-    <GenerateAssemblyFileVersionAttribute>false</GenerateAssemblyFileVersionAttribute>
-    <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
-    <GenerateAssemblyCopyrightAttribute>false</GenerateAssemblyCopyrightAttribute>
-    <GenerateAssemblyInformationalVersionAttribute>false</GenerateAssemblyInformationalVersionAttribute>
-    <GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
-    <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
-    <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
-  </PropertyGroup>
-
-  <PropertyGroup Condition=" '$(TargetFramework)' == 'netstandard1.3' ">
-    <DefineConstants>$(DefineConstants);HAS_READERWRITERLOCKSLIM</DefineConstants>
-    <PublicSign>true</PublicSign>
-    <AssemblyOriginatorKeyFile>../../log4net.snk</AssemblyOriginatorKeyFile>
-    <SignAssembly>true</SignAssembly>
-  </PropertyGroup>
-
-  <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard1.3' ">
-    <Compile Remove="..\..\src\Appender\AdoNetAppender.cs;..\..\src\Appender\AspNetTraceAppender.cs;..\..\src\Appender\ColoredConsoleAppender.cs;..\..\src\Appender\EventLogAppender.cs;..\..\src\Appender\NetSendAppender.cs;..\..\src\Appender\RemotingAppender.cs;..\..\src\Appender\SmtpAppender.cs;..\..\src\Config\DOMConfigurator.cs;..\..\src\Config\DOMConfiguratorAttribute.cs;..\..\src\Config\Log4NetConfigurationSectionHandler.cs;..\..\src\Layout\Pattern\AspNetCachePatternConverter.cs;..\..\src\Layout\Pattern\AspNetContextPatternConverter.cs;..\..\src\Layout\Pattern\AspNetPatternConverter.cs;..\..\src\Layout\Pattern\AspNetRequestPatternConverter.cs;..\..\src\Layout\Pattern\AspNetSessionPatternConverter.cs;..\..\src\Layout\Pattern\StackTraceDetailPatternConverter.cs;..\..\src\Layout\Pattern\StackTracePatternConverter.cs;..\..\src\Plugin\RemoteLoggingServerPlugin.cs;..\..\src\Util\PatternStringConverters\AppSettingPatternConverter.cs;..\..\src\Util\PatternStringConverters\EnvironmentFolderPathPatternConverter.cs;..\..\src\Util\NativeError.cs;..\..\src\Util\WindowsSecurityContext.cs" />
-    <Compile Include="..\..\src\**\*.cs" Exclude="..\..\src\Appender\AdoNetAppender.cs;..\..\src\Appender\AspNetTraceAppender.cs;..\..\src\Appender\ColoredConsoleAppender.cs;..\..\src\Appender\EventLogAppender.cs;..\..\src\Appender\NetSendAppender.cs;..\..\src\Appender\RemotingAppender.cs;..\..\src\Appender\SmtpAppender.cs;..\..\src\Config\DOMConfigurator.cs;..\..\src\Config\DOMConfiguratorAttribute.cs;..\..\src\Config\Log4NetConfigurationSectionHandler.cs;..\..\src\Layout\Pattern\AspNetCachePatternConverter.cs;..\..\src\Layout\Pattern\AspNetContextPatternConverter.cs;..\..\src\Layout\Pattern\AspNetPatternConverter.cs;..\..\src\Layout\Pattern\AspNetRequestPatternConverter.cs;..\..\src\Layout\Pattern\AspNetSessionPatternConverter.cs;..\..\src\Layout\Pattern\StackTraceDetailPatternConverter.cs;..\..\src\Layout\Pattern\StackTracePatternConverter.cs;..\..\src\Plugin\RemoteLoggingServerPlugin.cs;..\..\src\Util\PatternStringConverters\AppSettingPatternConverter.cs;..\..\src\Util\PatternStringConverters\EnvironmentFolderPathPatternConverter.cs;..\..\src\Util\NativeError.cs;..\..\src\Util\WindowsSecurityContext.cs;bin\**;obj\**;**\*.xproj;packages\**" />
-  </ItemGroup>
-
-  <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard1.3' ">
-    <PackageReference Include="System.AppContext" Version="4.1.0" />
-    <PackageReference Include="System.Collections.NonGeneric" Version="4.0.1" />
-    <PackageReference Include="System.Console" Version="4.0.0" />
-    <PackageReference Include="System.Diagnostics.Debug" Version="4.0.11" />
-    <PackageReference Include="System.Diagnostics.Process" Version="4.1.0" />
-    <PackageReference Include="System.Diagnostics.StackTrace" Version="4.0.1" />
-    <PackageReference Include="System.Diagnostics.TraceSource" Version="4.0.0" />
-    <PackageReference Include="System.IO.FileSystem" Version="4.0.1" />
-    <PackageReference Include="System.IO.FileSystem.Watcher" Version="4.0.0" />
-    <PackageReference Include="System.Linq" Version="4.1.0" />
-    <PackageReference Include="System.Net.NameResolution" Version="4.0.0" />
-    <PackageReference Include="System.Net.Requests" Version="4.0.11" />
-    <PackageReference Include="System.Net.Sockets" Version="4.1.0" />
-    <PackageReference Include="System.Reflection" Version="4.3.0" />
-    <PackageReference Include="System.Reflection.Extensions" Version="4.0.1" />
-    <PackageReference Include="System.Reflection.TypeExtensions" Version="4.1.0" />
-    <PackageReference Include="System.Runtime.Extensions" Version="4.1.0" />
-    <PackageReference Include="System.Runtime.InteropServices" Version="4.1.0" />
-    <PackageReference Include="System.Runtime.InteropServices.RuntimeInformation" Version="4.0.0" />
-    <PackageReference Include="System.Runtime.Serialization.Formatters" Version="4.3.0" />
-    <PackageReference Include="System.Text.RegularExpressions" Version="4.1.0" />
-    <PackageReference Include="System.Threading" Version="4.0.11" />
-    <PackageReference Include="System.Threading.Thread" Version="4.0.0" />
-    <PackageReference Include="System.Threading.Timer" Version="4.0.1" />
-    <PackageReference Include="System.Xml.ReaderWriter" Version="4.0.11" />
-    <PackageReference Include="System.Xml.XmlDocument" Version="4.0.1" />
-  </ItemGroup>
-
-</Project>
diff --git a/src/Appender/AdoNetAppender.cs b/src/Appender/AdoNetAppender.cs
index 530d875..214660f 100644
--- a/src/Appender/AdoNetAppender.cs
+++ b/src/Appender/AdoNetAppender.cs
@@ -545,23 +545,31 @@
 
 					// Set the command type
 					dbCmd.CommandType = CommandType;
+
 					// Send buffer using the prepared command object
 					if (dbTran != null)
 					{
 						dbCmd.Transaction = dbTran;
 					}
+
+					// clear parameters that have been set
+					dbCmd.Parameters.Clear();
+					
+					// Add the query parameters
+					foreach (AdoNetAppenderParameter param in m_parameters)
+					{
+						param.Prepare(dbCmd);
+					}
+					
 					// prepare the command, which is significantly faster
 					dbCmd.Prepare();
+
 					// run for all events
 					foreach (LoggingEvent e in events)
 					{
-						// clear parameters that have been set
-						dbCmd.Parameters.Clear();
-
 						// Set the parameter values
 						foreach (AdoNetAppenderParameter param in m_parameters)
 						{
-							param.Prepare(dbCmd);
 							param.FormatValue(dbCmd, e);
 						}
 
diff --git a/src/AssemblyVersionInfo.cpp b/src/AssemblyVersionInfo.cpp
index 8e1dede..55e1062 100644
--- a/src/AssemblyVersionInfo.cpp
+++ b/src/AssemblyVersionInfo.cpp
@@ -1,9 +1,9 @@
 //
-// Licensed to the Apache Software Foundation (ASF) under one or more 
+// Licensed to the Apache Software Foundation (ASF) under one or more
 // contributor license agreements. See the NOTICE file distributed with
-// this work for additional information regarding copyright ownership. 
+// this work for additional information regarding copyright ownership.
 // The ASF licenses this file to you under the Apache License, Version 2.0
-// (the "License"); you may not use this file except in compliance with 
+// (the "License"); you may not use this file except in compliance with
 // the License. You may obtain a copy of the License at
 //
 // http://www.apache.org/licenses/LICENSE-2.0
@@ -24,11 +24,11 @@
 // Version information for an assembly consists of the following four values:
 //
 //      Major Version
-//      Minor Version 
+//      Minor Version
 //      Build Number
 //      Revision
 //
-// You can specify all the value or you can default the Revision and Build Numbers 
+// You can specify all the value or you can default the Revision and Build Numbers
 // by using the '*' as shown below:
 
 [assembly: AssemblyVersionAttribute("2.0.9.0")];
@@ -44,5 +44,5 @@
 //
 
 [assembly: AssemblyCompany("The Apache Software Foundation")];
-[assembly: AssemblyCopyright("Copyright 2004-2017 The Apache Software Foundation.")];
+[assembly: AssemblyCopyright("Copyright 2004-2018 The Apache Software Foundation.")];
 [assembly: AssemblyTrademark("Apache and Apache log4net are trademarks of The Apache Software Foundation")];
diff --git a/src/AssemblyVersionInfo.cs b/src/AssemblyVersionInfo.cs
index 0ed9380..31b6356 100644
--- a/src/AssemblyVersionInfo.cs
+++ b/src/AssemblyVersionInfo.cs
@@ -41,5 +41,5 @@
 //
 
 [assembly: System.Reflection.AssemblyCompany("The Apache Software Foundation")]
-[assembly: System.Reflection.AssemblyCopyright("Copyright 2004-2017 The Apache Software Foundation.")]
+[assembly: System.Reflection.AssemblyCopyright("Copyright 2004-2018 The Apache Software Foundation.")]
 [assembly: System.Reflection.AssemblyTrademark("Apache and Apache log4net are trademarks of The Apache Software Foundation")]
diff --git a/src/AssemblyVersionInfo.js b/src/AssemblyVersionInfo.js
index ed81785..4b14bf8 100644
--- a/src/AssemblyVersionInfo.js
+++ b/src/AssemblyVersionInfo.js
@@ -1,9 +1,9 @@
 //
-// Licensed to the Apache Software Foundation (ASF) under one or more 
+// Licensed to the Apache Software Foundation (ASF) under one or more
 // contributor license agreements. See the NOTICE file distributed with
-// this work for additional information regarding copyright ownership. 
+// this work for additional information regarding copyright ownership.
 // The ASF licenses this file to you under the Apache License, Version 2.0
-// (the "License"); you may not use this file except in compliance with 
+// (the "License"); you may not use this file except in compliance with
 // the License. You may obtain a copy of the License at
 //
 // http://www.apache.org/licenses/LICENSE-2.0
@@ -20,11 +20,11 @@
 // Version information for an assembly consists of the following four values:
 //
 //      Major Version
-//      Minor Version 
+//      Minor Version
 //      Build Number
 //      Revision
 //
-// You can specify all the values or you can default the Revision and Build Numbers 
+// You can specify all the values or you can default the Revision and Build Numbers
 // by using the '*' as shown below:
 
 // JScript.NET doesn't handle files with only custom attributes very well, adding
@@ -45,5 +45,5 @@
 //
 
 [assembly: AssemblyCompany("The Apache Software Foundation")]
-[assembly: AssemblyCopyright("Copyright 2004-2017 The Apache Software Foundation.")]
+[assembly: AssemblyCopyright("Copyright 2004-2018 The Apache Software Foundation.")]
 [assembly: AssemblyTrademark("Apache and Apache log4net are trademarks of The Apache Software Foundation")]
diff --git a/src/AssemblyVersionInfo.vb b/src/AssemblyVersionInfo.vb
index 8e6709e..656bade 100644
--- a/src/AssemblyVersionInfo.vb
+++ b/src/AssemblyVersionInfo.vb
@@ -1,10 +1,10 @@
 #Region "Apache License"
 '
-' Licensed to the Apache Software Foundation (ASF) under one or more 
+' Licensed to the Apache Software Foundation (ASF) under one or more
 ' contributor license agreements. See the NOTICE file distributed with
-' this work for additional information regarding copyright ownership. 
+' this work for additional information regarding copyright ownership.
 ' The ASF licenses this file to you under the Apache License, Version 2.0
-' (the "License"); you may not use this file except in compliance with 
+' (the "License"); you may not use this file except in compliance with
 ' the License. You may obtain a copy of the License at
 '
 ' http://www.apache.org/licenses/LICENSE-2.0
@@ -21,11 +21,11 @@
 ' Version information for an assembly consists of the following four values:
 '
 '      Major Version
-'      Minor Version 
+'      Minor Version
 '      Build Number
 '      Revision
 '
-' You can specify all the values or you can default the Revision and Build Numbers 
+' You can specify all the values or you can default the Revision and Build Numbers
 ' by using the '*' as shown below:
 
 <Assembly: System.Reflection.AssemblyVersion("2.0.9.0")>
@@ -42,5 +42,5 @@
 '
 
 <Assembly: System.Reflection.AssemblyCompany("The Apache Software Foundation")>
-<Assembly: System.Reflection.AssemblyCopyright("Copyright 2004-2017 The Apache Software Foundation.")> 
-<Assembly: System.Reflection.AssemblyTrademark("Apache and Apache log4net are trademarks of The Apache Software Foundation")> 
+<Assembly: System.Reflection.AssemblyCopyright("Copyright 2004-2018 The Apache Software Foundation.")>
+<Assembly: System.Reflection.AssemblyTrademark("Apache and Apache log4net are trademarks of The Apache Software Foundation")>
diff --git a/src/Config/XmlConfigurator.cs b/src/Config/XmlConfigurator.cs
index 7c81a36..f158a86 100644
--- a/src/Config/XmlConfigurator.cs
+++ b/src/Config/XmlConfigurator.cs
@@ -736,9 +736,9 @@
 #if NETSTANDARD1_3 // TODO DtdProcessing.Parse not yet available (https://github.com/dotnet/corefx/issues/4376)
 					settings.DtdProcessing = DtdProcessing.Ignore;
 #elif !NET_4_0 && !MONO_4_0
-					settings.ProhibitDtd = false;
+					settings.ProhibitDtd = true;
 #else
-					settings.DtdProcessing = DtdProcessing.Parse;
+					settings.DtdProcessing = DtdProcessing.Ignore;
 #endif
 
 					// Create a reader over the input stream
diff --git a/src/Repository/Hierarchy/Hierarchy.cs b/src/Repository/Hierarchy/Hierarchy.cs
index c45a56a..7d71872 100644
--- a/src/Repository/Hierarchy/Hierarchy.cs
+++ b/src/Repository/Hierarchy/Hierarchy.cs
@@ -21,7 +21,6 @@
 using System.Collections;
 using log4net.Appender;
 using log4net.Core;
-using log4net.Repository;
 using log4net.Util;
 
 namespace log4net.Repository.Hierarchy
@@ -236,7 +235,7 @@
 			{
 				if (m_root == null)
 				{
-					lock(this)
+					lock (this)
 					{
 						if (m_root == null)
 						{
@@ -297,7 +296,7 @@
 				throw new ArgumentNullException("name");
 			}
 
-			lock(m_ht)
+			lock (m_ht)
 			{
 				return m_ht[new LoggerKey(name)] as Logger;
 			}
@@ -319,12 +318,12 @@
 			// The accumulation in loggers is necessary because not all elements in
 			// ht are Logger objects as there might be some ProvisionNodes
 			// as well.
-			lock(m_ht)
+			lock (m_ht)
 			{
 				System.Collections.ArrayList loggers = new System.Collections.ArrayList(m_ht.Count);
 
 				// Iterate through m_ht values
-				foreach(object node in m_ht.Values)
+				foreach (object node in m_ht.Values)
 				{
 					if (node is Logger)
 					{
@@ -385,16 +384,16 @@
 		/// </remarks>
 		override public void Shutdown()
 		{
-			LogLog.Debug(declaringType, "Shutdown called on Hierarchy ["+this.Name+"]");
+			LogLog.Debug(declaringType, "Shutdown called on Hierarchy [" + this.Name + "]");
 
 			// begin by closing nested appenders
 			Root.CloseNestedAppenders();
 
-			lock(m_ht)
+			lock (m_ht)
 			{
 				ILogger[] currentLoggers = this.GetCurrentLoggers();
 
-				foreach(Logger logger in currentLoggers)
+				foreach (Logger logger in currentLoggers)
 				{
 					logger.CloseNestedAppenders();
 				}
@@ -402,7 +401,7 @@
 				// then, remove all appenders
 				Root.RemoveAllAppenders();
 
-				foreach(Logger logger in currentLoggers)
+				foreach (Logger logger in currentLoggers)
 				{
 					logger.RemoveAllAppenders();
 				}
@@ -437,11 +436,11 @@
 			Threshold = LevelMap.LookupWithDefault(Level.All);
 
 			// the synchronization is needed to prevent hashtable surprises
-			lock(m_ht)
+			lock (m_ht)
 			{
 				Shutdown(); // nested locks are OK
 
-				foreach(Logger l in this.GetCurrentLoggers())
+				foreach (Logger l in this.GetCurrentLoggers())
 				{
 					l.Level = null;
 					l.Additivity = true;
@@ -500,7 +499,7 @@
 
 			CollectAppenders(appenderList, Root);
 
-			foreach(Logger logger in GetCurrentLoggers())
+			foreach (Logger logger in GetCurrentLoggers())
 			{
 				CollectAppenders(appenderList, logger);
 			}
@@ -539,7 +538,7 @@
 		/// <param name="container"></param>
 		private static void CollectAppenders(System.Collections.ArrayList appenderList, IAppenderAttachable container)
 		{
-			foreach(Appender.IAppender appender in container.Appenders)
+			foreach (Appender.IAppender appender in container.Appenders)
 			{
 				CollectAppender(appenderList, appender);
 			}
@@ -700,7 +699,7 @@
 		/// </remarks>
 		public void Clear()
 		{
-			lock(m_ht)
+			lock (m_ht)
 			{
 				m_ht.Clear();
 			}
@@ -738,7 +737,7 @@
 			// GetEffectiveLevel() method) are possible only if variable
 			// assignments are non-atomic.
 
-			lock(m_ht)
+			lock (m_ht)
 			{
 				Logger logger = null;
 
@@ -842,7 +841,7 @@
 			bool parentFound = false;
 
 			// if name = "w.x.y.z", loop through "w.x.y", "w.x" and "w", but not "w.x.y.z"
-			for(int i = name.LastIndexOf('.', length-1); i >= 0; i = name.LastIndexOf('.', i-1))
+			for (int i = name.LastIndexOf('.', length - 1); i >= 0; i = name.LastIndexOf('.', i - 1))
 			{
 				string substr = name.Substring(0, i);
 
@@ -872,11 +871,12 @@
 						}
 						else
 						{
-							LogLog.Error(declaringType, "Unexpected object type ["+node.GetType()+"] in ht.", new LogException());
+							LogLog.Error(declaringType, "Unexpected object type [" + node.GetType() + "] in ht.", new LogException());
 						}
 					}
 				}
-				if (i == 0) {
+				if (i == 0)
+				{
 					// logger name starts with a dot
 					// and we've hit the start
 					break;
@@ -916,7 +916,7 @@
 		/// </remarks>
 		private static void UpdateChildren(ProvisionNode pn, Logger log)
 		{
-			for(int i = 0; i < pn.Count; i++)
+			for (int i = 0; i < pn.Count; i++)
 			{
 				Logger childLogger = (Logger)pn[i];
 
@@ -953,7 +953,7 @@
 				Level previousLevel = LevelMap[levelEntry.Name];
 				if (previousLevel == null)
 				{
-					throw new InvalidOperationException("Cannot redefine level ["+levelEntry.Name+"] because it is not defined in the LevelMap. To define the level supply the level value.");
+					throw new InvalidOperationException("Cannot redefine level [" + levelEntry.Name + "] because it is not defined in the LevelMap. To define the level supply the level value.");
 				}
 
 				levelEntry.Value = previousLevel.Value;
@@ -1031,7 +1031,7 @@
 			/// <returns>string info about this object</returns>
 			public override string ToString()
 			{
-				return "LevelEntry(Value="+m_levelValue+", Name="+m_levelName+", DisplayName="+m_levelDisplayName+")";
+				return "LevelEntry(Value=" + m_levelValue + ", Name=" + m_levelName + ", DisplayName=" + m_levelDisplayName + ")";
 			}
 		}
 
diff --git a/src/Util/ReadOnlyPropertiesDictionary.cs b/src/Util/ReadOnlyPropertiesDictionary.cs
index e7e0fe1..3efa0a9 100644
--- a/src/Util/ReadOnlyPropertiesDictionary.cs
+++ b/src/Util/ReadOnlyPropertiesDictionary.cs
@@ -216,13 +216,18 @@
 				string entryKey = entry.Key as string;
 				object entryValue = entry.Value;
 
+				if (entryKey == null || entryValue == null)
+				{
+					continue;
+				}
+
 				// If value is serializable then we add it to the list
 #if NETSTANDARD1_3
 				bool isSerializable = entryValue.GetType().GetTypeInfo().IsSerializable;
 #else
 				bool isSerializable = entryValue.GetType().IsSerializable;
 #endif
-				if (entryKey != null && entryValue != null && isSerializable)
+				if (isSerializable)
 				{
 					// Store the keys as an Xml encoded local name as it may contain colons (':')
 					// which are NOT escaped by the Xml Serialization framework.
diff --git a/src/site/site.xml b/src/site/site.xml
index aefdd5c..aa20cb6 100644
--- a/src/site/site.xml
+++ b/src/site/site.xml
@@ -30,6 +30,7 @@
 		<menu name="Apache log4net" inherit="top" img="icon-home">
 			<item name="About" href="/index.html"/>
 			<item name="Download" href="/download_log4net.cgi"/>
+			<item name="Security Reports" href="/release/security-reports.html"/>
 			<item name="Release Notes" href="/release/release-notes.html"/>
 			<item name="License" href="/license.html"/>
 		</menu>
@@ -66,8 +67,8 @@
                 </menu>
 
 		<menu name="Apache" inherit="top" img="icon-info-sign">
-			<item name="Home" href="http://www.apache.org/"/>	
-			<item name="License" href="http://www.apache.org/licenses/"/>	
+			<item name="Home" href="http://www.apache.org/"/>
+			<item name="License" href="http://www.apache.org/licenses/"/>
 			<item name="Sponsorship" href="http://www.apache.org/foundation/sponsorship.html"/>
 			<item name="Thanks" href="http://www.apache.org/foundation/thanks.html"/>
 			<item name="Security" href="http://www.apache.org/security/"/>
diff --git a/src/site/xdoc/release/security-reports.xml b/src/site/xdoc/release/security-reports.xml
new file mode 100644
index 0000000..30c57bd
--- /dev/null
+++ b/src/site/xdoc/release/security-reports.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<!--
+
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<document>
+    <properties>
+        <title>Apache log4net: Security Reports</title>
+        <author email="dev@logging.apache.org">Logging Documentation Team</author>
+    </properties>
+    <body>
+      <section name="General Information">
+        <p>For information about reporting or asking questions about
+        security problems, please see the <a
+        href="https://logging.apache.org/security.html">security page
+        of the Logging project</a>.</p>
+      </section>
+
+      <section name="Apache log4net Security Vulnerabilities">
+        <p>This page lists all security vulnerabilities fixed in
+        released versions of Apache log4net. Each
+        vulnerability is given a security impact rating by the
+        development team - please note that this rating may vary from
+        platform to platform. We also list the versions of log4net the
+		flaw is known to affect, and where a flaw has not
+        been verified list the version with a question mark.</p>
+
+        <p>Please note that binary patches are never provided. If you
+        need to apply a source code patch, use the building
+        instructions for the log4net version that you are
+        using.</p>
+
+        <p>If you need help on building log4net or other help
+        on following the instructions to mitigate the known
+        vulnerabilities listed here, please send your questions to the
+        public <a href="../mail-lists.html">Logging Users mailing
+        list</a>.</p>
+
+        <p>If you have encountered an unlisted security vulnerability
+        or other unexpected behaviour that has security impact, or if
+        the descriptions here are incomplete, please report them
+        privately to the Apache Security Team. Thank you.</p>
+
+	  </section>
+
+      <section name="Errors and Ommissions">
+        <p>Please report any errors or omissions to <a
+        href="../mail-lists.html">the dev mailing list</a>.</p>
+      </section>
+    </body>
+</document>
diff --git a/tests/nant.build b/tests/nant.build
index d18b3d1..9530685 100644
--- a/tests/nant.build
+++ b/tests/nant.build
@@ -1,10 +1,10 @@
 <?xml version="1.0" ?>
 <!--
-Licensed to the Apache Software Foundation (ASF) under one or more 
+Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements. See the NOTICE file distributed with
-this work for additional information regarding copyright ownership. 
+this work for additional information regarding copyright ownership.
 The ASF licenses this file to you under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with 
+(the "License"); you may not use this file except in compliance with
 the License. You may obtain a copy of the License at
 
 http://www.apache.org/licenses/LICENSE-2.0
@@ -25,16 +25,16 @@
     <call target="set-build-configuration" />
 
     <target name="install-nunit">
-      <if test="${not file::exists('lib/${current.build.configuration.dir}/nunit.framework.dll')}">
-	<get src="https://github.com/nunit/nunitv2/releases/download/2.6.4/NUnit-2.6.4.zip"
-	     dest=".tmp-nunit.zip"/>
-	<unzip zipfile=".tmp-nunit.zip"
-	       todir=".tmp-nunit"/>
-	<copy file=".tmp-nunit/NUnit-2.6.4/bin/nunit.framework.dll"
-	      todir="lib/${current.build.configuration.dir}"/>
-	<delete file=".tmp-nunit.zip"/>
-	<delete dir=".tmp-nunit"/>
-      </if>
+        <if test="${not file::exists('lib/${current.build.configuration.dir}/nunit.framework.dll')}">
+            <get src="https://www.nuget.org/api/v2/package/NUnit/2.6.4"
+                 dest=".tmp-nunit.zip"/>
+            <unzip zipfile=".tmp-nunit.zip"
+                   todir=".tmp-nunit"/>
+            <copy file=".tmp-nunit/lib/nunit.framework.dll"
+                  todir="lib/${current.build.configuration.dir}"/>
+            <delete file=".tmp-nunit.zip"/>
+            <delete dir=".tmp-nunit"/>
+        </if>
     </target>
 
     <!-- Target for compiling the tests on all frameworks -->
@@ -295,7 +295,7 @@
             <references defaultexcludes="true">
                 <include name="mscorlib.dll" />
                 <include name="System.dll" />
-		<include name="System.Configuration.dll" />
+        <include name="System.Configuration.dll" />
                 <include name="System.Data.dll" />
                 <include name="System.Web.dll" />
                 <include name="System.Xml.dll" />
@@ -351,7 +351,7 @@
             <references defaultexcludes="true">
                 <!-- include name="mscorlib.dll" / -->
                 <include name="System.dll" />
-		<include name="System.Configuration.dll" />
+        <include name="System.Configuration.dll" />
                 <include name="System.Data.dll" />
                 <include name="System.Web.dll" />
                 <include name="System.Xml.dll" />
@@ -407,7 +407,7 @@
             <references defaultexcludes="true">
                 <!-- include name="mscorlib.dll" / -->
                 <include name="System.dll" />
-		<include name="System.Configuration.dll" />
+        <include name="System.Configuration.dll" />
                 <include name="System.Core.dll" />
                 <include name="System.Data.dll" />
                 <include name="System.Web.dll" />
@@ -464,7 +464,7 @@
             <references defaultexcludes="true">
                 <!-- include name="mscorlib.dll" / -->
                 <include name="System.dll" />
-		<include name="System.Configuration.dll" />
+        <include name="System.Configuration.dll" />
                 <include name="System.Core.dll" />
                 <include name="System.Data.dll" />
                 <include name="System.Web.dll" />
@@ -521,7 +521,7 @@
             <references defaultexcludes="true">
                 <include name="mscorlib.dll" />
                 <include name="System.dll" />
-		<include name="System.Configuration.dll" />
+        <include name="System.Configuration.dll" />
                 <include name="System.Data.dll" />
                 <include name="System.Web.dll" />
                 <include name="System.Xml.dll" />
@@ -577,7 +577,7 @@
             <references defaultexcludes="true">
                 <include name="mscorlib.dll" />
                 <include name="System.dll" />
-		<include name="System.Configuration.dll" />
+        <include name="System.Configuration.dll" />
                 <include name="System.Data.dll" />
                 <include name="System.Xml.dll" />
                 <include name="System.Runtime.Remoting.dll" />
@@ -632,7 +632,7 @@
             <references defaultexcludes="true">
                 <include name="mscorlib.dll" />
                 <include name="System.dll" />
-		<include name="System.Configuration.dll" />
+        <include name="System.Configuration.dll" />
                 <include name="System.Core.dll" />
                 <include name="System.Data.dll" />
                 <include name="System.Web.dll" />
@@ -689,7 +689,7 @@
             <references defaultexcludes="true">
                 <include name="mscorlib.dll" />
                 <include name="System.dll" />
-		<include name="System.Configuration.dll" />
+        <include name="System.Configuration.dll" />
                 <include name="System.Core.dll" />
                 <include name="System.Data.dll" />
                 <include name="System.Xml.dll" />
@@ -745,7 +745,7 @@
             <references defaultexcludes="true">
                 <include name="mscorlib.dll" />
                 <include name="System.dll" />
-		<include name="System.Configuration.dll" />
+        <include name="System.Configuration.dll" />
                 <include name="System.Core.dll" />
                 <include name="System.Data.dll" />
                 <include name="System.Web.dll" />
@@ -764,30 +764,30 @@
     <!-- Currently we cannot run the tests in the environment of the target framework only in the host framework -->
 
     <target name="runtests" description="Runs log4net tests">
-		<!--
-			Because the <nunit2> task does not support multiple frameworks through the 
-			nant.settings.currentframework setting we cannot just run the tests for each framework.
-			Only the tests for the current framework are run.
-			
+        <!--
+            Because the <nunit2> task does not support multiple frameworks through the
+            nant.settings.currentframework setting we cannot just run the tests for each framework.
+            Only the tests for the current framework are run.
+
         <if test="${framework::exists('net-1.0')}">
-        	<call target="runtests-net-1.0" />
+            <call target="runtests-net-1.0" />
         </if>
         <if test="${framework::exists('net-1.1')}">
-        	<call target="runtests-net-1.1" />
+            <call target="runtests-net-1.1" />
         </if>
         <if test="${framework::exists('net-2.0')}">
-        	<call target="runtests-net-2.0" />
+            <call target="runtests-net-2.0" />
         </if>
         <if test="${framework::exists('mono-2.0')}">
-        	<call target="runtests-mono-2.0" />
+            <call target="runtests-mono-2.0" />
         </if>
-		-->
-		<if test="${target::exists('runtests-' + nant.settings.currentframework)}">
-			<echo message="Running tests for ${framework::get-target-framework()}" />
-			<call target="runtests-${nant.settings.currentframework}" />
-		</if>
+        -->
+        <if test="${target::exists('runtests-' + nant.settings.currentframework)}">
+            <echo message="Running tests for ${framework::get-target-framework()}" />
+            <call target="runtests-${nant.settings.currentframework}" />
+        </if>
     </target>
-    
+
     <target name="runtests-net-1.0" description="Runs log4net tests on .NET Framework 1.0 version" depends="compile-net-1.0">
         <nunit2 failonerror="false">
             <formatter type="Xml" usefile="true" extension=".nunit.xml" outputdir="${current.bin.dir}" />
@@ -865,4 +865,22 @@
         </nunit2>
     </target>
 
+    <target name="runtests-netstandard-1.3" description="Runs log4net tests on .NET Standard 1.3">
+        <exec program="dotnet" workingdir="${log4net.basedir}/netstandard/1.3" failonerror="false">
+            <arg value="test"/>
+            <arg value="--logger:trx"/>
+            <arg value="-d"/>
+            <arg value="test.diagnostics.log"/>
+            <arg value="log4net.tests/log4net.tests.csproj" />
+        </exec>
+        <!-- move netstandard/1.3 to tests/bin/netstandard/1.3 -->
+        <move todir="${log4net.basedir}/tests/bin/netstandard/1.3/"
+              failonerror="false">
+              <fileset basedir="${log4net.basedir}/netstandard/1.3">
+                <include name="**/*.log" />
+                <include name="**/*.trx" />
+            </fileset>
+        </move>
+    </target>
+
 </project>
diff --git a/tests/src/Appender/RollingFileAppenderTest.cs b/tests/src/Appender/RollingFileAppenderTest.cs
index 07ebfec..c9d92e9 100644
--- a/tests/src/Appender/RollingFileAppenderTest.cs
+++ b/tests/src/Appender/RollingFileAppenderTest.cs
@@ -1561,8 +1561,10 @@
 
 			Assert.IsTrue(locked, "File was not locked");
 #if !MONO || MONO_3_5 || MONO_4_0 // at least on Linux with Mono 2.4 exclusive locking doesn't work as one would expect
+#if !NET_STANDARD_1_ON_LINUX // exclusive locking doesn't seem to work properly on .NET Core 1.x on Linux
 			AssertFileEquals(filename, "This is a message" + Environment.NewLine + "This is a message 2" + Environment.NewLine);
 #endif
+#endif
 			Assert.AreEqual("", sh.Message, "Unexpected error message");
 		}
 
diff --git a/tests/src/Hierarchy/Hierarchy.cs b/tests/src/Hierarchy/Hierarchy.cs
index 8c83290..446090f 100644
--- a/tests/src/Hierarchy/Hierarchy.cs
+++ b/tests/src/Hierarchy/Hierarchy.cs
@@ -22,9 +22,7 @@
 using System;
 using System.Xml;
 using log4net.Config;
-using log4net.Core;
 using log4net.Repository;
-using log4net.Repository.Hierarchy;
 using log4net.Tests.Appender;
 using NUnit.Framework;
 
@@ -100,7 +98,7 @@
 		}
 
 		[Test]
-	// LOG4NET-343
+		// LOG4NET-343
 		public void LoggerNameCanConsistOfASingleDot()
 		{
 			XmlDocument log4netConfig = new XmlDocument();
@@ -123,6 +121,52 @@
 		}
 
 		[Test]
+		// LOG4NET-580
+		public void LoggerNameCanConsistOfANameStartingWithADot()
+		{
+			XmlDocument log4netConfig = new XmlDocument();
+			log4netConfig.LoadXml(@"
+				<log4net>
+				  <appender name=""StringAppender"" type=""log4net.Tests.Appender.StringAppender, log4net.Tests"">
+					<layout type=""log4net.Layout.SimpleLayout"" />
+				  </appender>
+				  <root>
+					<level value=""ALL"" />
+					<appender-ref ref=""StringAppender"" />
+				  </root>
+				  <logger name="".Name"">
+					<level value=""WARN"" />
+				  </logger>
+				</log4net>");
+
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
+		}
+
+		[Test]
+		// LOG4NET-580
+		public void LoggerNameCanConsistOfANameEndingWithADot()
+		{
+			XmlDocument log4netConfig = new XmlDocument();
+			log4netConfig.LoadXml(@"
+				<log4net>
+				  <appender name=""StringAppender"" type=""log4net.Tests.Appender.StringAppender, log4net.Tests"">
+					<layout type=""log4net.Layout.SimpleLayout"" />
+				  </appender>
+				  <root>
+					<level value=""ALL"" />
+					<appender-ref ref=""StringAppender"" />
+				  </root>
+				  <logger name=""Name."">
+					<level value=""WARN"" />
+				  </logger>
+				</log4net>");
+
+			ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+			XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
+		}
+
+		[Test]
 		public void LoggerNameCanConsistOfASingleNonDot()
 		{
 			XmlDocument log4netConfig = new XmlDocument();
diff --git a/tests/src/packages.config b/tests/src/packages.config
index e594870..bddd01c 100644
--- a/tests/src/packages.config
+++ b/tests/src/packages.config
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+﻿<?xml version="1.0" encoding="utf-8"?>
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more 
 contributor license agreements. See the NOTICE file distributed with
@@ -17,4 +17,5 @@
 -->
 <packages>
   <package id="NUnit" version="2.6.4" targetFramework="net4" />
-</packages>
+  <package id="NUnitTestAdapter" version="2.1.1" targetFramework="net45" />
+</packages>
\ No newline at end of file
