You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by dp...@apache.org on 2017/08/18 08:43:49 UTC

[01/13] logging-log4net git commit: add preprocessor directives

Repository: logging-log4net
Updated Branches:
  refs/heads/feature/netstandard-2.0 [created] 20cb82c49


add preprocessor directives


Project: http://git-wip-us.apache.org/repos/asf/logging-log4net/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4net/commit/62a10f7c
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4net/tree/62a10f7c
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4net/diff/62a10f7c

Branch: refs/heads/feature/netstandard-2.0
Commit: 62a10f7c6db261fcf5f0cbb2d3b1c82461d2eb7b
Parents: c7cf31f
Author: Charles Lowell <ch...@microsoft.com>
Authored: Wed Jun 21 18:00:15 2017 -0700
Committer: Charles Lowell <ch...@microsoft.com>
Committed: Wed Aug 16 09:32:07 2017 -0700

----------------------------------------------------------------------
 src/Appender/AppenderSkeleton.cs                      |  4 ++--
 src/Appender/ColoredConsoleAppender.cs                |  4 ++--
 src/Appender/FileAppender.cs                          |  8 ++++----
 src/Appender/LocalSyslogAppender.cs                   |  6 +++---
 src/Appender/NetSendAppender.cs                       |  2 +-
 src/Appender/OutputDebugStringAppender.cs             |  2 +-
 src/Appender/SmtpAppender.cs                          | 10 +++++-----
 src/Config/XmlConfigurator.cs                         |  4 ++--
 src/Core/LoggingEvent.cs                              |  4 ++--
 src/Layout/PatternLayout.cs                           |  2 +-
 src/Log4netAssemblyInfo.cs                            |  4 ++--
 src/Repository/Hierarchy/Logger.cs                    |  6 +++---
 src/Util/ILogExtensions.cs                            |  2 +-
 src/Util/LogicalThreadContextProperties.cs            | 14 +++++++-------
 src/Util/NativeError.cs                               |  4 ++--
 .../ProcessIdPatternConverter.cs                      |  2 +-
 .../UserNamePatternConverter.cs                       |  2 +-
 src/Util/ReadOnlyPropertiesDictionary.cs              |  2 +-
 src/Util/SystemInfo.cs                                | 12 ++++++------
 src/Util/SystemStringFormat.cs                        |  6 +++---
 20 files changed, 50 insertions(+), 50 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/62a10f7c/src/Appender/AppenderSkeleton.cs
----------------------------------------------------------------------
diff --git a/src/Appender/AppenderSkeleton.cs b/src/Appender/AppenderSkeleton.cs
index 37a7416..422c458 100644
--- a/src/Appender/AppenderSkeleton.cs
+++ b/src/Appender/AppenderSkeleton.cs
@@ -321,7 +321,7 @@ namespace log4net.Appender
 				{
 					ErrorHandler.Error("Failed in DoAppend", ex);
 				}
-#if !MONO && !NET_2_0 && !NETSTANDARD1_3
+#if !(MONO || NET_2_0 || NETSTANDARD1_3 || NETSTANDARD2_0)
 				// on .NET 2.0 (and higher) and Mono (all profiles),
 				// exceptions that do not derive from System.Exception will be
 				// wrapped in a RuntimeWrappedException by the runtime, and as
@@ -428,7 +428,7 @@ namespace log4net.Appender
 				{
 					ErrorHandler.Error("Failed in Bulk DoAppend", ex);
 				}
-#if !MONO && !NET_2_0 && !NETSTANDARD1_3
+#if !(MONO || NET_2_0 || NETSTANDARD1_3 || NETSTANDARD2_0)
 				// on .NET 2.0 (and higher) and Mono (all profiles),
 				// exceptions that do not derive from System.Exception will be
 				// wrapped in a RuntimeWrappedException by the runtime, and as

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/62a10f7c/src/Appender/ColoredConsoleAppender.cs
----------------------------------------------------------------------
diff --git a/src/Appender/ColoredConsoleAppender.cs b/src/Appender/ColoredConsoleAppender.cs
index a87ffd9..075c0d0 100644
--- a/src/Appender/ColoredConsoleAppender.cs
+++ b/src/Appender/ColoredConsoleAppender.cs
@@ -265,7 +265,7 @@ namespace log4net.Appender
 		/// The format of the output will depend on the appender's layout.
 		/// </para>
 		/// </remarks>
-#if NET_4_0 || MONO_4_0
+#if NET_4_0 || MONO_4_0 || NETSTANDARD2_0
 		[System.Security.SecuritySafeCritical]
 #endif
 		[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, UnmanagedCode = true)]
@@ -434,7 +434,7 @@ namespace log4net.Appender
 		/// Initialize the level to color mappings set on this appender.
 		/// </para>
 		/// </remarks>
-#if NET_4_0 || MONO_4_0
+#if NET_4_0 || MONO_4_0 || NETSTANDARD2_0
 		[System.Security.SecuritySafeCritical]
 #endif
 		[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, UnmanagedCode=true)]

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/62a10f7c/src/Appender/FileAppender.cs
----------------------------------------------------------------------
diff --git a/src/Appender/FileAppender.cs b/src/Appender/FileAppender.cs
index f6bc151..482151d 100644
--- a/src/Appender/FileAppender.cs
+++ b/src/Appender/FileAppender.cs
@@ -24,7 +24,7 @@ using System.Threading;
 using log4net.Util;
 using log4net.Layout;
 using log4net.Core;
-#if NET_4_5 || NETSTANDARD1_3
+#if NET_4_5 || NETSTANDARD1_3 || NETSTANDARD2_0
 using System.Threading.Tasks;
 #endif
 
@@ -208,7 +208,7 @@ namespace log4net.Appender
 			}
 #endif
 
-#if NET_4_5 || NETSTANDARD1_3
+#if NET_4_5 || NETSTANDARD1_3 || NETSTANDARD2_0
 			public override Task<int> ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
 			{
 				AssertLocked();
@@ -740,7 +740,7 @@ namespace log4net.Appender
 			/// -<see cref="ReleaseLock"/> and <see cref="CloseFile"/>.
 			/// </para>
 			/// </remarks>
-#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
+#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3 || NETSTANDARD2_0
 			[System.Security.SecuritySafeCritical]
 #endif
 			public override void OpenFile(string filename, bool append, Encoding encoding)
@@ -861,7 +861,7 @@ namespace log4net.Appender
 			{
 				if (m_mutex != null)
 				{
-#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
+#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3 || NETSTANDARD2_0
 					m_mutex.Dispose();
 #else
 					m_mutex.Close();

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/62a10f7c/src/Appender/LocalSyslogAppender.cs
----------------------------------------------------------------------
diff --git a/src/Appender/LocalSyslogAppender.cs b/src/Appender/LocalSyslogAppender.cs
index 5e7d5e0..9ecabfc 100644
--- a/src/Appender/LocalSyslogAppender.cs
+++ b/src/Appender/LocalSyslogAppender.cs
@@ -337,7 +337,7 @@ namespace log4net.Appender
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// </remarks>
-#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
+#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3 || NETSTANDARD2_0
 		[System.Security.SecuritySafeCritical]
 #endif
 		public override void ActivateOptions()
@@ -378,7 +378,7 @@ namespace log4net.Appender
 		/// The format of the output will depend on the appender's layout.
 		/// </para>
 		/// </remarks>
-#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
+#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3 || NETSTANDARD2_0
 		[System.Security.SecuritySafeCritical]
 #endif
 #if !NETSTANDARD1_3
@@ -402,7 +402,7 @@ namespace log4net.Appender
 		/// Close the syslog when the appender is closed
 		/// </para>
 		/// </remarks>
-#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
+#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3 || NETSTANDARD2_0
 		[System.Security.SecuritySafeCritical]
 #endif
 		protected override void OnClose()

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/62a10f7c/src/Appender/NetSendAppender.cs
----------------------------------------------------------------------
diff --git a/src/Appender/NetSendAppender.cs b/src/Appender/NetSendAppender.cs
index 1a9f9c0..f23559e 100644
--- a/src/Appender/NetSendAppender.cs
+++ b/src/Appender/NetSendAppender.cs
@@ -304,7 +304,7 @@ namespace log4net.Appender
 		/// Sends the event using a network message.
 		/// </para>
 		/// </remarks>
-#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
+#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3 || NETSTANDARD2_0
 		[System.Security.SecuritySafeCritical]
 #endif
 #if !NETSTANDARD1_3

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/62a10f7c/src/Appender/OutputDebugStringAppender.cs
----------------------------------------------------------------------
diff --git a/src/Appender/OutputDebugStringAppender.cs b/src/Appender/OutputDebugStringAppender.cs
index 5403a49..f9fec6b 100644
--- a/src/Appender/OutputDebugStringAppender.cs
+++ b/src/Appender/OutputDebugStringAppender.cs
@@ -75,7 +75,7 @@ namespace log4net.Appender
 		/// Write the logging event to the output debug string API
 		/// </para>
 		/// </remarks>
-#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
+#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3 || NETSTANDARD2_0
 		[System.Security.SecuritySafeCritical]
 #elif !NETCF
 		[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, UnmanagedCode = true)]

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/62a10f7c/src/Appender/SmtpAppender.cs
----------------------------------------------------------------------
diff --git a/src/Appender/SmtpAppender.cs b/src/Appender/SmtpAppender.cs
index 5cb4741..c20470e 100644
--- a/src/Appender/SmtpAppender.cs
+++ b/src/Appender/SmtpAppender.cs
@@ -25,7 +25,7 @@ using System;
 using System.IO;
 using System.Text;
 
-#if NET_2_0 || MONO_2_0
+#if NET_2_0 || MONO_2_0 || NETSTANDARD2_0
 using System.Net.Mail;
 #else
 using System.Web.Mail;
@@ -324,7 +324,7 @@ namespace log4net.Appender
 			set { m_mailPriority = value; }
 		}
 
-#if NET_2_0 || MONO_2_0
+#if NET_2_0 || MONO_2_0 || NETSTANDARD2_0
 		/// <summary>
 		/// Enable or disable use of SSL when sending e-mail message
 		/// </summary>
@@ -444,7 +444,7 @@ namespace log4net.Appender
 		/// <param name="messageBody">the body text to include in the mail</param>
 		virtual protected void SendEmail(string messageBody)
 		{
-#if NET_2_0 || MONO_2_0
+#if NET_2_0 || MONO_2_0 || NETSTANDARD2_0
 			// .NET 2.0 has a new API for SMTP email System.Net.Mail
 			// This API supports credentials and multiple hosts correctly.
 			// The old API is deprecated.
@@ -488,7 +488,7 @@ namespace log4net.Appender
 				{
 					// .NET 4.0 warning CS0618: 'System.Net.Mail.MailMessage.ReplyTo' is obsolete:
 					// 'ReplyTo is obsoleted for this type.  Please use ReplyToList instead which can accept multiple addresses. http://go.microsoft.com/fwlink/?linkid=14202'
-#if !NET_4_0 && !MONO_4_0
+#if !(NET_4_0 || MONO_4_0 || NETSTANDARD2_0)
 					mailMessage.ReplyTo = new MailAddress(m_replyTo);
 #else
 					mailMessage.ReplyToList.Add(new MailAddress(m_replyTo));
@@ -604,7 +604,7 @@ namespace log4net.Appender
 
 		private MailPriority m_mailPriority = MailPriority.Normal;
 
-#if NET_2_0 || MONO_2_0
+#if NET_2_0 || MONO_2_0 || NETSTANDARD2_0
 		private bool m_enableSsl = false;
 		private string m_replyTo;
 #endif

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/62a10f7c/src/Config/XmlConfigurator.cs
----------------------------------------------------------------------
diff --git a/src/Config/XmlConfigurator.cs b/src/Config/XmlConfigurator.cs
index 7c81a36..142e18b 100644
--- a/src/Config/XmlConfigurator.cs
+++ b/src/Config/XmlConfigurator.cs
@@ -969,7 +969,7 @@ namespace log4net.Config
 			/// Initializes a new instance of the <see cref="ConfigureAndWatchHandler" /> class.
 			/// </para>
 			/// </remarks>
-#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
+#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3 || NETSTANDARD2_0
 			[System.Security.SecuritySafeCritical]
 #endif
 			public ConfigureAndWatchHandler(ILoggerRepository repository, FileInfo configFile)
@@ -1049,7 +1049,7 @@ namespace log4net.Config
 			/// <summary>
 			/// Release the handles held by the watcher and timer.
 			/// </summary>
-#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
+#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3 || NETSTANDARD2_0
 			[System.Security.SecuritySafeCritical]
 #endif
 			public void Dispose()

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/62a10f7c/src/Core/LoggingEvent.cs
----------------------------------------------------------------------
diff --git a/src/Core/LoggingEvent.cs b/src/Core/LoggingEvent.cs
index dcb2f7c..e261a2e 100644
--- a/src/Core/LoggingEvent.cs
+++ b/src/Core/LoggingEvent.cs
@@ -897,7 +897,7 @@ namespace log4net.Core
 			{
 				if (m_data.UserName == null  && this.m_cacheUpdatable)
 				{
-#if (NETCF || SSCLI || NETSTANDARD1_3) // NETSTANDARD1_3 TODO requires platform-specific code
+#if (NETCF || SSCLI || NETSTANDARD1_3 || NETSTANDARD2_0) // NETSTANDARD TODO requires platform-specific code
 					// On compact framework there's no notion of current Windows user
 					m_data.UserName = SystemInfo.NotAvailableText;
 #else
@@ -1091,7 +1091,7 @@ namespace log4net.Core
 		/// is to be used outside that method.
 		/// </para>
 		/// </remarks>
-#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
+#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3 || NETSTANDARD2_0
 		[System.Security.SecurityCritical]
 #else
 		[System.Security.Permissions.SecurityPermissionAttribute(System.Security.Permissions.SecurityAction.Demand, SerializationFormatter=true)]

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/62a10f7c/src/Layout/PatternLayout.cs
----------------------------------------------------------------------
diff --git a/src/Layout/PatternLayout.cs b/src/Layout/PatternLayout.cs
index f4ccfe6..5ffd191 100644
--- a/src/Layout/PatternLayout.cs
+++ b/src/Layout/PatternLayout.cs
@@ -864,7 +864,7 @@ namespace log4net.Layout
 
 // .NET Compact Framework 1.0 has no support for ASP.NET
 // SSCLI 1.0 has no support for ASP.NET
-#if !NETCF && !SSCLI && !CLIENT_PROFILE && !NETSTANDARD1_3
+#if !(NETCF || SSCLI || CLIENT_PROFILE || NETSTANDARD1_3 || NETSTANDARD2_0)
 			s_globalRulesRegistry.Add("aspnet-cache", typeof(AspNetCachePatternConverter));
 			s_globalRulesRegistry.Add("aspnet-context", typeof(AspNetContextPatternConverter));
 			s_globalRulesRegistry.Add("aspnet-request", typeof(AspNetRequestPatternConverter));

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/62a10f7c/src/Log4netAssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/src/Log4netAssemblyInfo.cs b/src/Log4netAssemblyInfo.cs
index 5c84181..aceb984 100644
--- a/src/Log4netAssemblyInfo.cs
+++ b/src/Log4netAssemblyInfo.cs
@@ -59,8 +59,8 @@ namespace log4net {
 		public const string TargetFramework = "Mono";
 #elif SSCLI
 		public const string TargetFramework = "Shared Source CLI";
-#elif NETSTANDARD1_3
-		public const string TargetFramework = ".NET Core";
+#elif NETSTANDARD1_3 || NETSTANDARD2_0
+		public const string TargetFramework = ".NET Standard";
 #else
 		public const string TargetFramework = "Unknown";
 #endif

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/62a10f7c/src/Repository/Hierarchy/Logger.cs
----------------------------------------------------------------------
diff --git a/src/Repository/Hierarchy/Logger.cs b/src/Repository/Hierarchy/Logger.cs
index d65be9b..e115da1 100644
--- a/src/Repository/Hierarchy/Logger.cs
+++ b/src/Repository/Hierarchy/Logger.cs
@@ -432,7 +432,7 @@ namespace log4net.Repository.Hierarchy
 			{
 				log4net.Util.LogLog.Error(declaringType, "Exception while logging", ex);
 			}
-#if !NET_2_0 && !MONO_2_0 && !MONO_3_5 && !MONO_4_0 && !NETSTANDARD1_3
+#if !(MONO || NET_2_0 || NETSTANDARD1_3 || NETSTANDARD2_0)
 			catch
 			{
 				log4net.Util.LogLog.Error(declaringType, "Exception while logging");
@@ -469,7 +469,7 @@ namespace log4net.Repository.Hierarchy
 			{
 				log4net.Util.LogLog.Error(declaringType, "Exception while logging", ex);
 			}
-#if !NET_2_0 && !MONO_2_0 && !MONO_3_5 && !MONO_4_0 && !NETSTANDARD1_3
+#if !(MONO || NET_2_0 || NETSTANDARD1_3 || NETSTANDARD2_0)
 			catch
 			{
 				log4net.Util.LogLog.Error(declaringType, "Exception while logging");
@@ -509,7 +509,7 @@ namespace log4net.Repository.Hierarchy
 			{
 				log4net.Util.LogLog.Error(declaringType, "Exception while logging", ex);
 			}
-#if !NET_2_0 && !MONO_2_0 && !MONO_3_5 && !MONO_4_0 && !NETSTANDARD1_3
+#if !(MONO || NET_2_0 || NETSTANDARD1_3 || NETSTANDARD2_0)
 			catch
 			{
 				log4net.Util.LogLog.Error(declaringType, "Exception while logging");

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/62a10f7c/src/Util/ILogExtensions.cs
----------------------------------------------------------------------
diff --git a/src/Util/ILogExtensions.cs b/src/Util/ILogExtensions.cs
index 5a2ad50..2930dc1 100644
--- a/src/Util/ILogExtensions.cs
+++ b/src/Util/ILogExtensions.cs
@@ -17,7 +17,7 @@
 //
 #endregion
 
-#if NET_3_5 || NET_4_0 || MONO_3_5 || MONO_4_0 || NETSTANDARD1_3
+#if NET_3_5 || NET_4_0 || MONO_3_5 || MONO_4_0 || NETSTANDARD1_3 || NETSTANDARD2_0
 
 using System;
 

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/62a10f7c/src/Util/LogicalThreadContextProperties.cs
----------------------------------------------------------------------
diff --git a/src/Util/LogicalThreadContextProperties.cs b/src/Util/LogicalThreadContextProperties.cs
index 6a75619..f6b4d6e 100644
--- a/src/Util/LogicalThreadContextProperties.cs
+++ b/src/Util/LogicalThreadContextProperties.cs
@@ -21,11 +21,11 @@
 #if !NETCF
 
 using System;
-#if !NETSTANDARD1_3
+#if !(NETSTANDARD1_3 || NETSTANDARD2_0)
 using System.Runtime.Remoting.Messaging;
 #endif
 using System.Security;
-#if NETSTANDARD1_3
+#if NETSTANDARD1_3 || NETSTANDARD2_0
 using System.Threading;
 #endif
 
@@ -59,7 +59,7 @@ namespace log4net.Util
 	/// <author>Nicko Cadell</author>
 	public sealed class LogicalThreadContextProperties : ContextPropertiesBase
 	{
-		#if NETSTANDARD1_3
+		#if NETSTANDARD1_3 || NETSTANDARD2_0
 		private static readonly AsyncLocal<PropertiesDictionary> AsyncLocalDictionary = new AsyncLocal<PropertiesDictionary>();
 		#else
 		private const string c_SlotName = "log4net.Util.LogicalThreadContextProperties";
@@ -225,12 +225,12 @@ namespace log4net.Util
 		/// security link demand, therfore we must put the method call in a seperate method
 		/// that we can wrap in an exception handler.
 		/// </remarks>
-#if NET_4_0 || MONO_4_0
+#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3 || NETSTANDARD2_0
 		[System.Security.SecuritySafeCritical]
 #endif
 		private static PropertiesDictionary GetLogicalProperties()
 		{
-#if NETSTANDARD1_3
+#if NETSTANDARD1_3 || NETSTANDARD2_0
 			return AsyncLocalDictionary.Value;
 #elif NET_2_0 || MONO_2_0 || MONO_3_5 || MONO_4_0
 			return CallContext.LogicalGetData(c_SlotName) as PropertiesDictionary;
@@ -248,12 +248,12 @@ namespace log4net.Util
 		/// security link demand, therfore we must put the method call in a seperate method
 		/// that we can wrap in an exception handler.
 		/// </remarks>
-#if NET_4_0 || MONO_4_0
+#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3 || NETSTANDARD2_0
 		[System.Security.SecuritySafeCritical]
 #endif
 		private static void SetLogicalProperties(PropertiesDictionary properties)
 		{
-#if NETSTANDARD1_3
+#if NETSTANDARD1_3 || NETSTANDARD2_0
 			AsyncLocalDictionary.Value = properties;
 #elif NET_2_0 || MONO_2_0 || MONO_3_5 || MONO_4_0
 			CallContext.LogicalSetData(c_SlotName, properties);

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/62a10f7c/src/Util/NativeError.cs
----------------------------------------------------------------------
diff --git a/src/Util/NativeError.cs b/src/Util/NativeError.cs
index 73cc2f7..35095c7 100644
--- a/src/Util/NativeError.cs
+++ b/src/Util/NativeError.cs
@@ -114,7 +114,7 @@ namespace log4net.Util
 		/// native Win32 <c>FormatMessage</c> function.
 		/// </para>
 		/// </remarks>
-#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
+#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3 || NETSTANDARD2_0
 		[System.Security.SecuritySafeCritical]
 #elif !NETCF
 		[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, UnmanagedCode=true)]
@@ -157,7 +157,7 @@ namespace log4net.Util
 		/// using the native <c>FormatMessage</c> function.
 		/// </para>
 		/// </remarks>
-#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
+#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3 || NETSTANDARD2_0
 		[System.Security.SecuritySafeCritical]
 #elif !NETCF
 		[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, UnmanagedCode = true)]

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/62a10f7c/src/Util/PatternStringConverters/ProcessIdPatternConverter.cs
----------------------------------------------------------------------
diff --git a/src/Util/PatternStringConverters/ProcessIdPatternConverter.cs b/src/Util/PatternStringConverters/ProcessIdPatternConverter.cs
index 33ec9b4..dd9a609 100644
--- a/src/Util/PatternStringConverters/ProcessIdPatternConverter.cs
+++ b/src/Util/PatternStringConverters/ProcessIdPatternConverter.cs
@@ -46,7 +46,7 @@ namespace log4net.Util.PatternStringConverters
 		/// Write the current process ID to the output <paramref name="writer"/>.
 		/// </para>
 		/// </remarks>
-#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
+#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3 || NETSTANDARD2_0
 		[System.Security.SecuritySafeCritical]
 #endif
 		override protected void Convert(TextWriter writer, object state)

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/62a10f7c/src/Util/PatternStringConverters/UserNamePatternConverter.cs
----------------------------------------------------------------------
diff --git a/src/Util/PatternStringConverters/UserNamePatternConverter.cs b/src/Util/PatternStringConverters/UserNamePatternConverter.cs
index b4a15f9..43e3472 100644
--- a/src/Util/PatternStringConverters/UserNamePatternConverter.cs
+++ b/src/Util/PatternStringConverters/UserNamePatternConverter.cs
@@ -48,7 +48,7 @@ namespace log4net.Util.PatternStringConverters
 		/// </remarks>
 		override protected void Convert(TextWriter writer, object state)
 		{
-#if (NETCF || SSCLI || NETSTANDARD1_3)
+#if (NETCF || SSCLI || NETSTANDARD1_3 || NETSTANDARD2_0)
 			// On compact framework there's no notion of current Windows user
 			writer.Write( SystemInfo.NotAvailableText );
 #else

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/62a10f7c/src/Util/ReadOnlyPropertiesDictionary.cs
----------------------------------------------------------------------
diff --git a/src/Util/ReadOnlyPropertiesDictionary.cs b/src/Util/ReadOnlyPropertiesDictionary.cs
index e7e0fe1..a44598d 100644
--- a/src/Util/ReadOnlyPropertiesDictionary.cs
+++ b/src/Util/ReadOnlyPropertiesDictionary.cs
@@ -204,7 +204,7 @@ namespace log4net.Util
 		/// Serializes this object into the <see cref="SerializationInfo" /> provided.
 		/// </para>
 		/// </remarks>
-#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
+#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3 || NETSTANDARD2_0
 		[System.Security.SecurityCritical]
 #else
 		[System.Security.Permissions.SecurityPermissionAttribute(System.Security.Permissions.SecurityAction.Demand, SerializationFormatter=true)]

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/62a10f7c/src/Util/SystemInfo.cs
----------------------------------------------------------------------
diff --git a/src/Util/SystemInfo.cs b/src/Util/SystemInfo.cs
index 72e8453..a5c3727 100644
--- a/src/Util/SystemInfo.cs
+++ b/src/Util/SystemInfo.cs
@@ -174,7 +174,7 @@ namespace log4net.Util
 		{
 			get
 			{
-#if NETCF || NETSTANDARD1_3
+#if NETCF || NETSTANDARD1_3 || NETSTANDARD2_0
 				return SystemInfo.EntryAssemblyLocation+".config";
 #else
 				return System.AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
@@ -233,7 +233,7 @@ namespace log4net.Util
 			{
 #if NETCF_1_0
 				return System.Threading.Thread.CurrentThread.GetHashCode();
-#elif NET_2_0 || NETCF_2_0 || MONO_2_0 || MONO_3_5 || MONO_4_0 || NETSTANDARD1_3
+#elif NET_2_0 || NETCF_2_0 || MONO_2_0 || MONO_3_5 || MONO_4_0 || NETSTANDARD1_3 || NETSTANDARD2_0
 				return System.Threading.Thread.CurrentThread.ManagedThreadId;
 #else
 				return AppDomain.GetCurrentThreadId();
@@ -484,8 +484,8 @@ namespace log4net.Util
 		{
 #if NETCF
 			return "Not supported on Microsoft .NET Compact Framework";
-#elif NETSTANDARD1_3  // TODO Assembly.Location available in netstandard1.5
-			return "Not supported on .NET Core";
+#elif NETSTANDARD1_3
+			return "Not supported for .NET Standard 1.3";
 #else
 			if (myAssembly.GlobalAssemblyCache)
 			{
@@ -495,7 +495,7 @@ namespace log4net.Util
 			{
 				try
 				{
-#if NET_4_0 || MONO_4_0
+#if NET_4_0 || MONO_4_0 || NETSTANDARD2_0
 					if (myAssembly.IsDynamic)
 					{
 						return "Dynamic Assembly";
@@ -613,7 +613,7 @@ namespace log4net.Util
 		/// </remarks>
 		public static string AssemblyFileName(Assembly myAssembly)
 		{
-#if NETCF || NETSTANDARD1_3 // TODO Assembly.Location is in netstandard1.5 System.Reflection
+#if NETCF || NETSTANDARD1_3
 			// This is not very good because it assumes that only
 			// the entry assembly can be an EXE. In fact multiple
 			// EXEs can be loaded in to a process.

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/62a10f7c/src/Util/SystemStringFormat.cs
----------------------------------------------------------------------
diff --git a/src/Util/SystemStringFormat.cs b/src/Util/SystemStringFormat.cs
index 8a50433..62a0a27 100644
--- a/src/Util/SystemStringFormat.cs
+++ b/src/Util/SystemStringFormat.cs
@@ -109,7 +109,7 @@ namespace log4net.Util
 				log4net.Util.LogLog.Warn(declaringType, "Exception while rendering format ["+format+"]", ex);
 				return StringFormatError(ex, format, args);
 			}
-#if !NET_2_0 && !MONO_2_0 && !MONO_3_5 && !MONO_4_0 && !NETSTANDARD1_3
+#if !(MONO || NET_2_0 || NETSTANDARD1_3 || NETSTANDARD2_0)
 			catch
 			{
 				log4net.Util.LogLog.Warn(declaringType, "Exception while rendering format ["+format+"]");
@@ -148,7 +148,7 @@ namespace log4net.Util
 				log4net.Util.LogLog.Error(declaringType, "INTERNAL ERROR during StringFormat error handling", ex);
 				return "<log4net.Error>Exception during StringFormat. See Internal Log.</log4net.Error>";
 			}
-#if !NET_2_0 && !MONO_2_0 && !MONO_3_5 && !MONO_4_0 && !NETSTANDARD1_3
+#if !(MONO || NET_2_0 || NETSTANDARD1_3 || NETSTANDARD2_0)
 			catch
 			{
 				log4net.Util.LogLog.Error(declaringType, "INTERNAL ERROR during StringFormat error handling");
@@ -210,7 +210,7 @@ namespace log4net.Util
 				{
 					buffer.Append("<Exception: ").Append(ex.Message).Append(">");
 				}
-#if !NET_2_0 && !MONO_2_0 && !MONO_3_5 && !MONO_4_0 && !NETSTANDARD1_3
+#if !(MONO || NET_2_0 || NETSTANDARD1_3 || NETSTANDARD2_0)
 				catch
 				{
 					buffer.Append("<Exception>");


[07/13] logging-log4net git commit: throw PlatformNotSupportedException where Windows DLLs are pinvoked

Posted by dp...@apache.org.
throw PlatformNotSupportedException where Windows DLLs are pinvoked


Project: http://git-wip-us.apache.org/repos/asf/logging-log4net/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4net/commit/0fcbc268
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4net/tree/0fcbc268
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4net/diff/0fcbc268

Branch: refs/heads/feature/netstandard-2.0
Commit: 0fcbc268685c641263386651f76265c20a7a78df
Parents: b17cdf0
Author: Charles Lowell <ch...@microsoft.com>
Authored: Tue Aug 15 15:18:25 2017 -0700
Committer: Charles Lowell <ch...@microsoft.com>
Committed: Wed Aug 16 09:52:14 2017 -0700

----------------------------------------------------------------------
 src/Appender/ColoredConsoleAppender.cs | 12 ++++++++++++
 src/Appender/NetSendAppender.cs        |  8 +++++++-
 src/Util/NativeError.cs                |  6 ++++++
 src/log4net.csproj                     |  1 +
 4 files changed, 26 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/0fcbc268/src/Appender/ColoredConsoleAppender.cs
----------------------------------------------------------------------
diff --git a/src/Appender/ColoredConsoleAppender.cs b/src/Appender/ColoredConsoleAppender.cs
index 075c0d0..7618e5a 100644
--- a/src/Appender/ColoredConsoleAppender.cs
+++ b/src/Appender/ColoredConsoleAppender.cs
@@ -163,6 +163,12 @@ namespace log4net.Appender
 		/// </remarks>
 		public ColoredConsoleAppender()
 		{
+#if NETSTANDARD2_0
+			if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
+			{
+				throw new PlatformNotSupportedException($"{nameof(ColoredConsoleAppender)} is only available on Windows");
+			}
+#endif
 		}
 
 		/// <summary>
@@ -193,6 +199,12 @@ namespace log4net.Appender
 		[Obsolete("Instead use the default constructor and set the Layout & Target properties")]
 		public ColoredConsoleAppender(ILayout layout, bool writeToErrorStream)
 		{
+#if NETSTANDARD2_0
+			if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
+			{
+				throw new PlatformNotSupportedException($"{nameof(ColoredConsoleAppender)} is only available on Windows");
+			}
+#endif
 			Layout = layout;
 			m_writeToErrorStream = writeToErrorStream;
 		}

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/0fcbc268/src/Appender/NetSendAppender.cs
----------------------------------------------------------------------
diff --git a/src/Appender/NetSendAppender.cs b/src/Appender/NetSendAppender.cs
index f23559e..174dc7e 100644
--- a/src/Appender/NetSendAppender.cs
+++ b/src/Appender/NetSendAppender.cs
@@ -176,6 +176,12 @@ namespace log4net.Appender
 		/// </remarks>
 		public NetSendAppender()
 		{
+#if NETSTANDARD2_0
+			if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
+			{
+				throw new PlatformNotSupportedException($"{nameof(NetSendAppender)} is only available on Windows");
+			}
+#endif
 		}
 
 		#endregion
@@ -424,4 +430,4 @@ namespace log4net.Appender
 #endif // !CLI_1_0
 #endif // !SSCLI
 #endif // !MONO
-#endif // !NETCF
\ No newline at end of file
+#endif // !NETCF

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/0fcbc268/src/Util/NativeError.cs
----------------------------------------------------------------------
diff --git a/src/Util/NativeError.cs b/src/Util/NativeError.cs
index 35095c7..ab16185 100644
--- a/src/Util/NativeError.cs
+++ b/src/Util/NativeError.cs
@@ -121,6 +121,12 @@ namespace log4net.Util
 #endif
 		public static NativeError GetLastError()
 		{
+#if NETSTANDARD2_0
+			if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
+			{
+				throw new PlatformNotSupportedException($"{nameof(NativeError)} is only available on Windows");
+			}
+#endif
 			int number = Marshal.GetLastWin32Error();
 			return new NativeError(number, NativeError.GetErrorMessage(number));
 		}

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/0fcbc268/src/log4net.csproj
----------------------------------------------------------------------
diff --git a/src/log4net.csproj b/src/log4net.csproj
index 881f415..cf0f3f1 100644
--- a/src/log4net.csproj
+++ b/src/log4net.csproj
@@ -110,6 +110,7 @@
   <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
     <Compile Remove="Appender\EventLogAppender.cs;Appender\RemotingAppender.cs;**\AspNet*.cs;Util\WindowsSecurityContext.cs;Plugin\RemoteLoggingServerPlugin.cs" />
     <PackageReference Include="System.Configuration.ConfigurationManager" Version="4.4.0" />
+    <PackageReference Include="System.Runtime.InteropServices.RuntimeInformation" Version="4.3.0" />
   </ItemGroup>
 
 </Project>


[04/13] logging-log4net git commit: delete .xprojes

Posted by dp...@apache.org.
delete .xprojes


Project: http://git-wip-us.apache.org/repos/asf/logging-log4net/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4net/commit/3b90468f
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4net/tree/3b90468f
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4net/diff/3b90468f

Branch: refs/heads/feature/netstandard-2.0
Commit: 3b90468f647d8ee7853c6acd9bbbf01e61f1ec39
Parents: 1dedf87
Author: Charles Lowell <ch...@microsoft.com>
Authored: Wed Aug 9 13:19:09 2017 -0700
Committer: Charles Lowell <ch...@microsoft.com>
Committed: Wed Aug 16 09:52:13 2017 -0700

----------------------------------------------------------------------
 netstandard/log4net.netstandard.sln             | 33 --------
 .../log4net.tests/ApplicationException.cs       | 27 ------
 .../log4net.tests/CompatibilityExtensions.cs    | 38 ---------
 .../log4net.tests/ExpectedExceptionAttribute.cs | 85 -------------------
 netstandard/log4net.tests/log4net.tests.csproj  | 32 -------
 netstandard/log4net/CompatibilityExtensions.cs  | 53 ------------
 netstandard/log4net/log4net.csproj              | 62 --------------
 src/CompatibilityExtensions.cs                  | 53 ++++++++++++
 tests/src/ApplicationException.cs               | 29 +++++++
 tests/src/CompatibilityExtensions.cs            | 40 +++++++++
 tests/src/ExpectedExceptionAttribute.cs         | 87 ++++++++++++++++++++
 11 files changed, 209 insertions(+), 330 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/3b90468f/netstandard/log4net.netstandard.sln
----------------------------------------------------------------------
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

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/3b90468f/netstandard/log4net.tests/ApplicationException.cs
----------------------------------------------------------------------
diff --git a/netstandard/log4net.tests/ApplicationException.cs b/netstandard/log4net.tests/ApplicationException.cs
deleted file mode 100644
index 30bfe37..0000000
--- a/netstandard/log4net.tests/ApplicationException.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-#region Apache License
-//
-// 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.
-//
-#endregion
-
-using System;
-
-namespace log4net.Tests
-{
-	public class ApplicationException : Exception
-	{
-	}
-}

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/3b90468f/netstandard/log4net.tests/CompatibilityExtensions.cs
----------------------------------------------------------------------
diff --git a/netstandard/log4net.tests/CompatibilityExtensions.cs b/netstandard/log4net.tests/CompatibilityExtensions.cs
deleted file mode 100644
index a634ed0..0000000
--- a/netstandard/log4net.tests/CompatibilityExtensions.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-#region Apache License
-//
-// 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.
-//
-#endregion
-
-using System;
-using System.IO;
-using System.Reflection;
-using System.Threading;
-
-namespace log4net
-{
-	internal static class CompatibilityExtensions
-	{
-		public static void Close(this Mutex mutex) => mutex.Dispose();
-		public static void Close(this Stream stream) => stream.Dispose();
-		public static void Close(this StreamReader streamReader) => streamReader.Dispose();
-
-		public static ConstructorInfo GetConstructor(this Type type, BindingFlags bindingAttr, object binder, Type[] types, object[] modifiers)
-		{
-			return type.GetConstructor(types);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/3b90468f/netstandard/log4net.tests/ExpectedExceptionAttribute.cs
----------------------------------------------------------------------
diff --git a/netstandard/log4net.tests/ExpectedExceptionAttribute.cs b/netstandard/log4net.tests/ExpectedExceptionAttribute.cs
deleted file mode 100644
index 771922a..0000000
--- a/netstandard/log4net.tests/ExpectedExceptionAttribute.cs
+++ /dev/null
@@ -1,85 +0,0 @@
-#region Apache License
-//
-// 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.
-//
-#endregion
-
-// https://github.com/nunit/nunit-csharp-samples/blob/master/ExpectedExceptionExample/ExpectedExceptionAttribute.cs
-
-using System;
-using NUnit.Framework.Interfaces;
-using NUnit.Framework.Internal;
-using NUnit.Framework.Internal.Commands;
-
-namespace NUnit.Framework
-{
-	/// <summary>
-	/// A simple ExpectedExceptionAttribute
-	/// </summary>
-	[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)]
-	public class ExpectedExceptionAttribute : NUnitAttribute, IWrapTestMethod
-	{
-		private readonly Type _expectedExceptionType;
-
-		public ExpectedExceptionAttribute(Type type)
-		{
-			_expectedExceptionType = type;
-		}
-
-		public TestCommand Wrap(TestCommand command)
-		{
-			return new ExpectedExceptionCommand(command, _expectedExceptionType);
-		}
-
-		private class ExpectedExceptionCommand : DelegatingTestCommand
-		{
-			private readonly Type _expectedType;
-
-			public ExpectedExceptionCommand(TestCommand innerCommand, Type expectedType)
-				: base(innerCommand)
-			{
-				_expectedType = expectedType;
-			}
-
-			public override TestResult Execute(TestExecutionContext context)
-			{
-				Type caughtType = null;
-
-				try
-				{
-					innerCommand.Execute(context);
-				}
-				catch (Exception ex)
-				{
-					if (ex is NUnitException)
-						ex = ex.InnerException;
-					caughtType = ex.GetType();
-				}
-
-				if (caughtType == _expectedType)
-					context.CurrentResult.SetResult(ResultState.Success);
-				else if (caughtType != null)
-					context.CurrentResult.SetResult(ResultState.Failure,
-						string.Format("Expected {0} but got {1}", _expectedType.Name, caughtType.Name));
-				else
-					context.CurrentResult.SetResult(ResultState.Failure,
-						string.Format("Expected {0} but no exception was thrown", _expectedType.Name));
-
-				return context.CurrentResult;
-			}
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/3b90468f/netstandard/log4net.tests/log4net.tests.csproj
----------------------------------------------------------------------
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;packag
 es\**" />
-  </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>

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/3b90468f/netstandard/log4net/CompatibilityExtensions.cs
----------------------------------------------------------------------
diff --git a/netstandard/log4net/CompatibilityExtensions.cs b/netstandard/log4net/CompatibilityExtensions.cs
deleted file mode 100644
index 48957f2..0000000
--- a/netstandard/log4net/CompatibilityExtensions.cs
+++ /dev/null
@@ -1,53 +0,0 @@
-#region Apache License
-//
-// 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.
-//
-#endregion
-
-#if NETSTANDARD1_3
-
-using System;
-using System.Globalization;
-using System.IO;
-using System.Linq;
-using System.Net;
-using System.Net.Sockets;
-using System.Reflection;
-using System.Threading;
-using System.Xml;
-
-namespace log4net
-{
-	internal static class CompatibilityExtensions
-	{
-		public static void Close(this Mutex mutex) => mutex.Dispose();
-		public static void Close(this Socket socket) => socket.Dispose();
-		public static void Close(this Stream stream) => stream.Dispose();
-		public static void Close(this StreamWriter streamWriter) => streamWriter.Dispose();
-		public static void Close(this UdpClient client) => client.Dispose();
-		public static void Close(this WebResponse response) => response.Dispose();
-		public static void Close(this XmlWriter xmlWriter) => xmlWriter.Dispose();
-
-		public static Attribute[] GetCustomAttributes(this Type type, Type other, bool inherit) => type.GetTypeInfo().GetCustomAttributes(other, inherit).ToArray();
-		public static bool IsAssignableFrom(this Type type, Type other) => type.GetTypeInfo().IsAssignableFrom(other.GetTypeInfo());
-		public static bool IsSubclassOf(this Type type, Type t) => type.GetTypeInfo().IsSubclassOf(t);
-
-		public static string ToLower(this string s, CultureInfo cultureInfo) => cultureInfo.TextInfo.ToLower(s);
-		public static string ToUpper(this string s, CultureInfo cultureInfo) => cultureInfo.TextInfo.ToUpper(s);
-	}
-}
-
-#endif

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/3b90468f/netstandard/log4net/log4net.csproj
----------------------------------------------------------------------
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\EnvironmentFol
 derPathPatternConverter.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\PatternSt
 ringConverters\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>

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/3b90468f/src/CompatibilityExtensions.cs
----------------------------------------------------------------------
diff --git a/src/CompatibilityExtensions.cs b/src/CompatibilityExtensions.cs
new file mode 100644
index 0000000..c0a9076
--- /dev/null
+++ b/src/CompatibilityExtensions.cs
@@ -0,0 +1,53 @@
+#region Apache License
+//
+// 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.
+//
+#endregion
+
+#if NETSTANDARD1_3
+
+using System;
+using System.Globalization;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Net.Sockets;
+using System.Reflection;
+using System.Threading;
+using System.Xml;
+
+namespace log4net
+{
+    internal static class CompatibilityExtensions
+    {
+        public static void Close(this Mutex mutex) => mutex.Dispose();
+        public static void Close(this Socket socket) => socket.Dispose();
+        public static void Close(this Stream stream) => stream.Dispose();
+        public static void Close(this StreamWriter streamWriter) => streamWriter.Dispose();
+        public static void Close(this UdpClient client) => client.Dispose();
+        public static void Close(this WebResponse response) => response.Dispose();
+        public static void Close(this XmlWriter xmlWriter) => xmlWriter.Dispose();
+
+        public static Attribute[] GetCustomAttributes(this Type type, Type other, bool inherit) => type.GetTypeInfo().GetCustomAttributes(other, inherit).ToArray();
+        public static bool IsAssignableFrom(this Type type, Type other) => type.GetTypeInfo().IsAssignableFrom(other.GetTypeInfo());
+        public static bool IsSubclassOf(this Type type, Type t) => type.GetTypeInfo().IsSubclassOf(t);
+
+        public static string ToLower(this string s, CultureInfo cultureInfo) => cultureInfo.TextInfo.ToLower(s);
+        public static string ToUpper(this string s, CultureInfo cultureInfo) => cultureInfo.TextInfo.ToUpper(s);
+    }
+}
+
+#endif

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/3b90468f/tests/src/ApplicationException.cs
----------------------------------------------------------------------
diff --git a/tests/src/ApplicationException.cs b/tests/src/ApplicationException.cs
new file mode 100644
index 0000000..67f2590
--- /dev/null
+++ b/tests/src/ApplicationException.cs
@@ -0,0 +1,29 @@
+#if NETCOREAPP1_0
+#region Apache License
+//
+// 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.
+//
+#endregion
+
+using System;
+
+namespace log4net.Tests
+{
+	public class ApplicationException : Exception
+	{
+	}
+}
+#endif

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/3b90468f/tests/src/CompatibilityExtensions.cs
----------------------------------------------------------------------
diff --git a/tests/src/CompatibilityExtensions.cs b/tests/src/CompatibilityExtensions.cs
new file mode 100644
index 0000000..355a036
--- /dev/null
+++ b/tests/src/CompatibilityExtensions.cs
@@ -0,0 +1,40 @@
+#if NETCOREAPP1_0
+#region Apache License
+//
+// 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.
+//
+#endregion
+
+using System;
+using System.IO;
+using System.Reflection;
+using System.Threading;
+
+namespace log4net
+{
+	internal static class CompatibilityExtensions
+	{
+		public static void Close(this Mutex mutex) => mutex.Dispose();
+		public static void Close(this Stream stream) => stream.Dispose();
+		public static void Close(this StreamReader streamReader) => streamReader.Dispose();
+
+		public static ConstructorInfo GetConstructor(this Type type, BindingFlags bindingAttr, object binder, Type[] types, object[] modifiers)
+		{
+			return type.GetConstructor(types);
+		}
+	}
+}
+#endif

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/3b90468f/tests/src/ExpectedExceptionAttribute.cs
----------------------------------------------------------------------
diff --git a/tests/src/ExpectedExceptionAttribute.cs b/tests/src/ExpectedExceptionAttribute.cs
new file mode 100644
index 0000000..203cb8f
--- /dev/null
+++ b/tests/src/ExpectedExceptionAttribute.cs
@@ -0,0 +1,87 @@
+#if NETCOREAPP1_0 || NETCOREAPP2_0
+#region Apache License
+//
+// 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.
+//
+#endregion
+
+// https://github.com/nunit/nunit-csharp-samples/blob/master/ExpectedExceptionExample/ExpectedExceptionAttribute.cs
+
+using System;
+using NUnit.Framework.Interfaces;
+using NUnit.Framework.Internal;
+using NUnit.Framework.Internal.Commands;
+
+namespace NUnit.Framework
+{
+	/// <summary>
+	/// A simple ExpectedExceptionAttribute
+	/// </summary>
+	[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)]
+	public class ExpectedExceptionAttribute : NUnitAttribute, IWrapTestMethod
+	{
+		private readonly Type _expectedExceptionType;
+
+		public ExpectedExceptionAttribute(Type type)
+		{
+			_expectedExceptionType = type;
+		}
+
+		public TestCommand Wrap(TestCommand command)
+		{
+			return new ExpectedExceptionCommand(command, _expectedExceptionType);
+		}
+
+		private class ExpectedExceptionCommand : DelegatingTestCommand
+		{
+			private readonly Type _expectedType;
+
+			public ExpectedExceptionCommand(TestCommand innerCommand, Type expectedType)
+				: base(innerCommand)
+			{
+				_expectedType = expectedType;
+			}
+
+			public override TestResult Execute(TestExecutionContext context)
+			{
+				Type caughtType = null;
+
+				try
+				{
+					innerCommand.Execute(context);
+				}
+				catch (Exception ex)
+				{
+					if (ex is NUnitException)
+						ex = ex.InnerException;
+					caughtType = ex.GetType();
+				}
+
+				if (caughtType == _expectedType)
+					context.CurrentResult.SetResult(ResultState.Success);
+				else if (caughtType != null)
+					context.CurrentResult.SetResult(ResultState.Failure,
+						string.Format("Expected {0} but got {1}", _expectedType.Name, caughtType.Name));
+				else
+					context.CurrentResult.SetResult(ResultState.Failure,
+						string.Format("Expected {0} but no exception was thrown", _expectedType.Name));
+
+				return context.CurrentResult;
+			}
+		}
+	}
+}
+#endif


[06/13] logging-log4net git commit: replace nant with dotnet cli in build-netstandard stage

Posted by dp...@apache.org.
replace nant with dotnet cli in build-netstandard stage


Project: http://git-wip-us.apache.org/repos/asf/logging-log4net/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4net/commit/b17cdf0f
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4net/tree/b17cdf0f
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4net/diff/b17cdf0f

Branch: refs/heads/feature/netstandard-2.0
Commit: b17cdf0f1a8852c15d6c740739f2ee40f026cd15
Parents: 883fa67
Author: Charles Lowell <ch...@microsoft.com>
Authored: Mon Aug 14 14:13:42 2017 -0700
Committer: Charles Lowell <ch...@microsoft.com>
Committed: Wed Aug 16 09:52:14 2017 -0700

----------------------------------------------------------------------
 Jenkinsfile                                      | 15 ++++-----------
 buildtools/docker/builder-netstandard/Dockerfile |  7 +------
 2 files changed, 5 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/b17cdf0f/Jenkinsfile
----------------------------------------------------------------------
diff --git a/Jenkinsfile b/Jenkinsfile
index 43215b5..0d9386e 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -61,21 +61,14 @@ pipeline {
 					// run docker container
 					builder.inside {
 						// compile
-						sh "nant compile-netstandard"
+						sh "dotnet build src/log4net.csproj -c Release -f netstandard1.3 -o ../bin/netstandard1.3"
+						sh "dotnet build src/log4net.csproj -c Release -f netstandard2.0 -o ../bin/netstandard2.0"
 						stash includes: 'bin/**/*.*', name: 'netstandard-assemblies'
 
 						// test
-						sh 'cd netstandard/log4net.tests && dotnet test'
+						sh "dotnet test tests/src/log4net.Tests.csproj"
 					}
 				}
-
-
-				// compile 
-				// sh 'nant compile-netstandard'
-				// stash includes: 'bin/**/*.*', name: 'netstandard-assemblies'
-
-				// test
-				// sh 'cd netstandard/log4net.tests && dotnet test'
 			}
 		}
 		stage('build net-3.5') {
@@ -245,7 +238,7 @@ pipeline {
 					// unstash site
 					unstash 'site'
 				}
-				
+
 				// move site
 				sh 'mv package/target/site/ package/site/'
 				sh 'rmdir -p --ignore-fail-on-non-empty package/target'

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/b17cdf0f/buildtools/docker/builder-netstandard/Dockerfile
----------------------------------------------------------------------
diff --git a/buildtools/docker/builder-netstandard/Dockerfile b/buildtools/docker/builder-netstandard/Dockerfile
index 2dc5f54..4834253 100644
--- a/buildtools/docker/builder-netstandard/Dockerfile
+++ b/buildtools/docker/builder-netstandard/Dockerfile
@@ -1,5 +1,4 @@
-# Name of container: docker-ubuntu-latest-nant
-FROM microsoft/dotnet
+FROM microsoft/dotnet:2.0.0-sdk-stretch
 
 # define arguments passed in as environment variables
 ARG JENKINS_UID
@@ -17,7 +16,3 @@ RUN mkdir -p /var/workspaces && chmod 0777 /var/workspaces
 # add jenkins user that maps to the custom workspace
 RUN groupadd -r -g $JENKINS_GID jenkins-slave
 RUN useradd --base-dir /var/workspaces --create-home --shell /bin/bash --uid $JENKINS_UID --gid $JENKINS_GID --groups $JENKINS_GID -p -M jenkins
-
-# install dependencies
-RUN apt-get update && apt-get install -y nant git
-


[10/13] logging-log4net git commit: update compile-netstandard nant target

Posted by dp...@apache.org.
update compile-netstandard nant target


Project: http://git-wip-us.apache.org/repos/asf/logging-log4net/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4net/commit/4f8ce10f
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4net/tree/4f8ce10f
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4net/diff/4f8ce10f

Branch: refs/heads/feature/netstandard-2.0
Commit: 4f8ce10f5883970da433951de6d1f7f1aafd8932
Parents: 0fcbc26
Author: Charles Lowell <ch...@microsoft.com>
Authored: Tue Aug 15 16:03:44 2017 -0700
Committer: Charles Lowell <ch...@microsoft.com>
Committed: Wed Aug 16 09:52:15 2017 -0700

----------------------------------------------------------------------
 log4net.build | 50 +++++++++++++++++++++++++++++++++-----------------
 1 file changed, 33 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/4f8ce10f/log4net.build
----------------------------------------------------------------------
diff --git a/log4net.build b/log4net.build
index 6961d8b..f3a75c7 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
@@ -1748,8 +1748,8 @@ limitations under the License.
       </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 Standard 1.3 and 2.0 -->
+  <target name="compile-netstandard" description="Builds .NET Standard">
     <call target="set-debug-build-configuration"/>
     <call target="compile-netstandard-current-configuration"/>
     <call target="set-release-build-configuration"/>
@@ -1757,39 +1757,55 @@ limitations under the License.
   </target>
   <target name="compile-netstandard-current-configuration">
     <echo message="dotnet --version"/>
-    <exec program="dotnet" workingdir="netstandard" failonerror="false" resultproperty="dotnet.available">
+    <exec program="dotnet" workingdir="${log4net.basedir}" failonerror="false" resultproperty="dotnet.available">
       <arg value="--version"/>
     </exec>
     <if test="${dotnet.available != '0'}">
       <echo message="Skipping build; required framework is not available: netstandard"/>
     </if>
     <if test="${dotnet.available == '0'}">
-      <echo message="dotnet restore log4net.netstandard.sln"/>
-      <exec program="dotnet" workingdir="netstandard">
-        <arg value="restore"/>
-        <arg value="log4net.netstandard.sln"/>
-      </exec>
       <if test="${current.build.config.release != '-c'}">
-        <echo message="dotnet build log4net"/>
+        <echo message="dotnet build log4net.csproj"/>
       </if>
       <if test="${current.build.config.release == '-c'}">
-        <echo message="dotnet build log4net -c Release"/>
+        <echo message="dotnet build log4net.csproj -c Release"/>
       </if>
-      <exec program="dotnet" workingdir="netstandard">
+      <exec program="dotnet" workingdir="${log4net.basedir}/src">
         <arg value="build"/>
-        <arg value="log4net"/>
+        <arg value="log4net.csproj"/>
+        <arg value="-f"/>
+        <arg value="netstandard1.3"/>
         <arg if="${current.build.config.release}" value="-c"/>
         <arg if="${current.build.config.release}" value="Release"/>
       </exec>
       <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="${log4net.basedir}/src/bin/Release/netstandard1.3"/>
         </move>
       </if>
       <ifnot test="${current.build.config.release}">
         <move todir="${log4net.basedir}/bin/netstandard/1.3/debug">
-          <fileset basedir="netstandard/log4net/bin/Debug/netstandard1.3"/>
+          <fileset basedir="${log4net.basedir}/src/bin/Debug/netstandard1.3"/>
+        </move>
+      </ifnot>
+      <exec program="dotnet" workingdir="${log4net.basedir}/src">
+        <arg value="build"/>
+        <arg value="log4net.csproj"/>
+        <arg value="-f"/>
+        <arg value="netstandard2.0"/>
+        <arg if="${current.build.config.release}" value="-c"/>
+        <arg if="${current.build.config.release}" value="Release"/>
+      </exec>
+      <mkdir dir="${log4net.basedir}/bin/netstandard/2.0"/>
+      <if test="${current.build.config.release}">
+        <move todir="${log4net.basedir}/bin/netstandard/2.0/release">
+          <fileset basedir="${log4net.basedir}/src/bin/Release/netstandard2.0"/>
+        </move>
+      </if>
+      <ifnot test="${current.build.config.release}">
+        <move todir="${log4net.basedir}/bin/netstandard/2.0/debug">
+          <fileset basedir="${log4net.basedir}/src/bin/Debug/netstandard2.0"/>
         </move>
       </ifnot>
     </if>


[11/13] logging-log4net git commit: use nameof

Posted by dp...@apache.org.
use nameof


Project: http://git-wip-us.apache.org/repos/asf/logging-log4net/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4net/commit/878aa0d5
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4net/tree/878aa0d5
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4net/diff/878aa0d5

Branch: refs/heads/feature/netstandard-2.0
Commit: 878aa0d5246f35531c22063dead435563f189ee1
Parents: b30a709
Author: Charles Lowell <ch...@microsoft.com>
Authored: Thu Aug 17 10:04:22 2017 -0700
Committer: Charles Lowell <ch...@microsoft.com>
Committed: Thu Aug 17 10:04:22 2017 -0700

----------------------------------------------------------------------
 src/Util/PatternStringConverters/UserNamePatternConverter.cs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/878aa0d5/src/Util/PatternStringConverters/UserNamePatternConverter.cs
----------------------------------------------------------------------
diff --git a/src/Util/PatternStringConverters/UserNamePatternConverter.cs b/src/Util/PatternStringConverters/UserNamePatternConverter.cs
index cca3504..8a2f55a 100644
--- a/src/Util/PatternStringConverters/UserNamePatternConverter.cs
+++ b/src/Util/PatternStringConverters/UserNamePatternConverter.cs
@@ -72,7 +72,7 @@ namespace log4net.Util.PatternStringConverters
 #if NETSTANDARD2_0
 			catch(PlatformNotSupportedException)
 			{
-				writer.Write("WindowsIdentity is not available on this platform");
+				writer.Write($"{nameof(System.Security.Principal.WindowsIdentity)} is not available on this platform");
 			}
 #endif
 #endif


[08/13] logging-log4net git commit: .gitignore src/log4net.xml

Posted by dp...@apache.org.
.gitignore src/log4net.xml


Project: http://git-wip-us.apache.org/repos/asf/logging-log4net/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4net/commit/883fa674
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4net/tree/883fa674
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4net/diff/883fa674

Branch: refs/heads/feature/netstandard-2.0
Commit: 883fa674c284e09956c1fe9e92c4f71502a4fb18
Parents: 3b90468
Author: Charles Lowell <ch...@microsoft.com>
Authored: Wed Aug 9 15:12:24 2017 -0700
Committer: Charles Lowell <ch...@microsoft.com>
Committed: Wed Aug 16 09:52:14 2017 -0700

----------------------------------------------------------------------
 .gitignore | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/883fa674/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index 6c925f2..ebfc545 100644
--- a/.gitignore
+++ b/.gitignore
@@ -137,7 +137,7 @@ publish/
 # 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 +235,4 @@ target
 # other files to ignore
 old-log4net.snk
 src/GeneratedAssemblyInfo.cs
-
+src/log4net.xml


[13/13] logging-log4net git commit: separate nant targets for netstandard builds

Posted by dp...@apache.org.
separate nant targets for netstandard builds


Project: http://git-wip-us.apache.org/repos/asf/logging-log4net/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4net/commit/20cb82c4
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4net/tree/20cb82c4
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4net/diff/20cb82c4

Branch: refs/heads/feature/netstandard-2.0
Commit: 20cb82c4969fd7cc3114e8aeb4a1e3d83d251fed
Parents: 3fa4763
Author: Charles Lowell <ch...@microsoft.com>
Authored: Thu Aug 17 15:48:52 2017 -0700
Committer: Charles Lowell <ch...@microsoft.com>
Committed: Thu Aug 17 15:59:09 2017 -0700

----------------------------------------------------------------------
 log4net.build | 31 +++++++++++++++++++++++++++----
 1 file changed, 27 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/20cb82c4/log4net.build
----------------------------------------------------------------------
diff --git a/log4net.build b/log4net.build
index f3a75c7..d491706 100644
--- a/log4net.build
+++ b/log4net.build
@@ -1749,13 +1749,13 @@ limitations under the License.
     </if>
   </target>
   <!-- these targets build lognet assemblies against .NET Standard 1.3 and 2.0 -->
-  <target name="compile-netstandard" description="Builds .NET Standard">
+  <target name="compile-netstandard-1.3" description="Builds .NET Standard 1.3">
     <call target="set-debug-build-configuration"/>
-    <call target="compile-netstandard-current-configuration"/>
+    <call target="compile-netstandard1.3-current-configuration"/>
     <call target="set-release-build-configuration"/>
-    <call target="compile-netstandard-current-configuration"/>
+    <call target="compile-netstandard1.3-current-configuration"/>
   </target>
-  <target name="compile-netstandard-current-configuration">
+  <target name="compile-netstandard1.3-current-configuration">
     <echo message="dotnet --version"/>
     <exec program="dotnet" workingdir="${log4net.basedir}" failonerror="false" resultproperty="dotnet.available">
       <arg value="--version"/>
@@ -1789,6 +1789,29 @@ limitations under the License.
           <fileset basedir="${log4net.basedir}/src/bin/Debug/netstandard1.3"/>
         </move>
       </ifnot>
+    </if>
+  </target>
+  <target name="compile-netstandard-2.0" description="Builds .NET Standard 2.0">
+    <call target="set-debug-build-configuration"/>
+    <call target="compile-netstandard2.0-current-configuration"/>
+    <call target="set-release-build-configuration"/>
+    <call target="compile-netstandard2.0-current-configuration"/>
+  </target>
+  <target name="compile-netstandard2.0-current-configuration">
+    <echo message="dotnet --version"/>
+    <exec program="dotnet" workingdir="${log4net.basedir}" failonerror="false" resultproperty="dotnet.available">
+      <arg value="--version"/>
+    </exec>
+    <if test="${dotnet.available != '0'}">
+      <echo message="Skipping build; required framework is not available: netstandard"/>
+    </if>
+    <if test="${dotnet.available == '0'}">
+      <if test="${current.build.config.release != '-c'}">
+        <echo message="dotnet build log4net.csproj"/>
+      </if>
+      <if test="${current.build.config.release == '-c'}">
+        <echo message="dotnet build log4net.csproj -c Release"/>
+      </if>
       <exec program="dotnet" workingdir="${log4net.basedir}/src">
         <arg value="build"/>
         <arg value="log4net.csproj"/>


[12/13] logging-log4net git commit: CompatibilityExtensions doc strings

Posted by dp...@apache.org.
CompatibilityExtensions doc strings


Project: http://git-wip-us.apache.org/repos/asf/logging-log4net/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4net/commit/3fa4763e
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4net/tree/3fa4763e
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4net/diff/3fa4763e

Branch: refs/heads/feature/netstandard-2.0
Commit: 3fa4763e7f8c9ae40ccceb1cf616ee75923a0bf2
Parents: 878aa0d
Author: Charles Lowell <ch...@microsoft.com>
Authored: Thu Aug 17 13:47:53 2017 -0700
Committer: Charles Lowell <ch...@microsoft.com>
Committed: Thu Aug 17 15:59:08 2017 -0700

----------------------------------------------------------------------
 src/CompatibilityExtensions.cs       | 35 +++++++++++++++++--------------
 tests/src/CompatibilityExtensions.cs |  3 +++
 2 files changed, 22 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/3fa4763e/src/CompatibilityExtensions.cs
----------------------------------------------------------------------
diff --git a/src/CompatibilityExtensions.cs b/src/CompatibilityExtensions.cs
index c0a9076..2a77b3d 100644
--- a/src/CompatibilityExtensions.cs
+++ b/src/CompatibilityExtensions.cs
@@ -1,4 +1,4 @@
-#region Apache License
+#region Apache License
 //
 // Licensed to the Apache Software Foundation (ASF) under one or more 
 // contributor license agreements. See the NOTICE file distributed with
@@ -31,23 +31,26 @@ using System.Xml;
 
 namespace log4net
 {
-    internal static class CompatibilityExtensions
-    {
-        public static void Close(this Mutex mutex) => mutex.Dispose();
-        public static void Close(this Socket socket) => socket.Dispose();
-        public static void Close(this Stream stream) => stream.Dispose();
-        public static void Close(this StreamWriter streamWriter) => streamWriter.Dispose();
-        public static void Close(this UdpClient client) => client.Dispose();
-        public static void Close(this WebResponse response) => response.Dispose();
-        public static void Close(this XmlWriter xmlWriter) => xmlWriter.Dispose();
+	/// <summary>
+	/// Extension methods for simple API substitutions for compatibility with .NET Standard 1.3.
+	/// </summary>
+	internal static class CompatibilityExtensions
+	{
+		public static void Close(this Mutex mutex) => mutex.Dispose();
+		public static void Close(this Socket socket) => socket.Dispose();
+		public static void Close(this Stream stream) => stream.Dispose();
+		public static void Close(this StreamWriter streamWriter) => streamWriter.Dispose();
+		public static void Close(this UdpClient client) => client.Dispose();
+		public static void Close(this WebResponse response) => response.Dispose();
+		public static void Close(this XmlWriter xmlWriter) => xmlWriter.Dispose();
 
-        public static Attribute[] GetCustomAttributes(this Type type, Type other, bool inherit) => type.GetTypeInfo().GetCustomAttributes(other, inherit).ToArray();
-        public static bool IsAssignableFrom(this Type type, Type other) => type.GetTypeInfo().IsAssignableFrom(other.GetTypeInfo());
-        public static bool IsSubclassOf(this Type type, Type t) => type.GetTypeInfo().IsSubclassOf(t);
+		public static Attribute[] GetCustomAttributes(this Type type, Type other, bool inherit) => type.GetTypeInfo().GetCustomAttributes(other, inherit).ToArray();
+		public static bool IsAssignableFrom(this Type type, Type other) => type.GetTypeInfo().IsAssignableFrom(other.GetTypeInfo());
+		public static bool IsSubclassOf(this Type type, Type t) => type.GetTypeInfo().IsSubclassOf(t);
 
-        public static string ToLower(this string s, CultureInfo cultureInfo) => cultureInfo.TextInfo.ToLower(s);
-        public static string ToUpper(this string s, CultureInfo cultureInfo) => cultureInfo.TextInfo.ToUpper(s);
-    }
+		public static string ToLower(this string s, CultureInfo cultureInfo) => cultureInfo.TextInfo.ToLower(s);
+		public static string ToUpper(this string s, CultureInfo cultureInfo) => cultureInfo.TextInfo.ToUpper(s);
+	}
 }
 
 #endif

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/3fa4763e/tests/src/CompatibilityExtensions.cs
----------------------------------------------------------------------
diff --git a/tests/src/CompatibilityExtensions.cs b/tests/src/CompatibilityExtensions.cs
index 355a036..1927f81 100644
--- a/tests/src/CompatibilityExtensions.cs
+++ b/tests/src/CompatibilityExtensions.cs
@@ -25,6 +25,9 @@ using System.Threading;
 
 namespace log4net
 {
+	/// <summary>
+	/// Extension methods for simple API substitutions for compatibility with .NET Standard 1.3.
+	/// </summary>
 	internal static class CompatibilityExtensions
 	{
 		public static void Close(this Mutex mutex) => mutex.Dispose();


[05/13] logging-log4net git commit: replace prior sln and csproj files with vs2017 netstandard/core2.0 equivalents

Posted by dp...@apache.org.
replace prior sln and csproj files with vs2017 netstandard/core2.0 equivalents


Project: http://git-wip-us.apache.org/repos/asf/logging-log4net/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4net/commit/1dedf870
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4net/tree/1dedf870
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4net/diff/1dedf870

Branch: refs/heads/feature/netstandard-2.0
Commit: 1dedf8703fcba7bce0777c94c9176a64d44a92a2
Parents: f8d560e
Author: Charles Lowell <ch...@microsoft.com>
Authored: Wed Jun 21 20:35:39 2017 -0700
Committer: Charles Lowell <ch...@microsoft.com>
Committed: Wed Aug 16 09:52:13 2017 -0700

----------------------------------------------------------------------
 src/log4net.csproj             | 867 ++++--------------------------------
 src/log4net.sln                |  30 +-
 tests/src/log4net.Tests.csproj | 255 +----------
 tests/src/packages.config      |  20 -
 4 files changed, 121 insertions(+), 1051 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/1dedf870/src/log4net.csproj
----------------------------------------------------------------------
diff --git a/src/log4net.csproj b/src/log4net.csproj
index 05a7062..881f415 100644
--- a/src/log4net.csproj
+++ b/src/log4net.csproj
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 
  Licensed to the Apache Software Foundation (ASF) under one
@@ -19,790 +18,98 @@
  under the License.
 
 -->
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
+<Project Sdk="Microsoft.NET.Sdk">
+
   <PropertyGroup>
-    <ProjectType>Local</ProjectType>
-    <ProductVersion>9.0.30729</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{181FE707-E161-4722-9F38-6AAAB6FAA106}</ProjectGuid>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ApplicationIcon>
-    </ApplicationIcon>
-    <AssemblyKeyContainerName>
-    </AssemblyKeyContainerName>
+    <TargetFrameworks>net20;net35;net35-client;net40;net40-client;net45;netstandard1.3;netstandard2.0</TargetFrameworks>
+    <Copyright>Copyright 2004-2017 The Apache Software Foundation.</Copyright>
+    <AssemblyTitle>Apache log4net for .NET Core</AssemblyTitle>
+    <VersionPrefix>2.0.9</VersionPrefix>
+    <VersionSuffix>beta</VersionSuffix>
     <AssemblyName>log4net</AssemblyName>
-    <AssemblyOriginatorKeyFile>
-    </AssemblyOriginatorKeyFile>
-    <DefaultClientScript>JScript</DefaultClientScript>
-    <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
-    <DefaultTargetSchema>IE50</DefaultTargetSchema>
-    <DelaySign>false</DelaySign>
-    <OutputType>Library</OutputType>
-    <RootNamespace>log4net</RootNamespace>
-    <StartupObject>
-    </StartupObject>
-    <FileUpgradeFlags>
-    </FileUpgradeFlags>
-    <UpgradeBackupLocation>
-    </UpgradeBackupLocation>
-    <OldToolsVersion>3.5</OldToolsVersion>
-    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
-    <PublishUrl>publish\</PublishUrl>
-    <Install>true</Install>
-    <InstallFrom>Disk</InstallFrom>
-    <UpdateEnabled>false</UpdateEnabled>
-    <UpdateMode>Foreground</UpdateMode>
-    <UpdateInterval>7</UpdateInterval>
-    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
-    <UpdatePeriodically>false</UpdatePeriodically>
-    <UpdateRequired>false</UpdateRequired>
-    <MapFileExtensions>true</MapFileExtensions>
-    <ApplicationRevision>0</ApplicationRevision>
-    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
-    <IsWebBootstrapper>false</IsWebBootstrapper>
-    <UseApplicationTrust>false</UseApplicationTrust>
-    <BootstrapperEnabled>true</BootstrapperEnabled>
-    <TargetFrameworkProfile />
+    <PackageId>log4net</PackageId>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    <PublicSign>true</PublicSign>
+    <AssemblyOriginatorKeyFile>../log4net.snk</AssemblyOriginatorKeyFile>
+    <SignAssembly>true</SignAssembly>
+    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
   </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <OutputPath>..\build\bin\net\4.5\debug\</OutputPath>
-    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
-    <BaseAddress>285212672</BaseAddress>
-    <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
-    <ConfigurationOverrideFile>
-    </ConfigurationOverrideFile>
-    <DefineConstants>TRACE;DEBUG;NET;NET_2_0;NET_4_0;NET_4_5</DefineConstants>
-    <DocumentationFile>log4net.xml</DocumentationFile>
-    <DebugSymbols>true</DebugSymbols>
-    <FileAlignment>4096</FileAlignment>
-    <Optimize>false</Optimize>
-    <RegisterForComInterop>false</RegisterForComInterop>
-    <RemoveIntegerChecks>false</RemoveIntegerChecks>
-    <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
-    <WarningLevel>4</WarningLevel>
-    <DebugType>full</DebugType>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>SecurityRules.ruleset</CodeAnalysisRuleSet>
+
+  <ItemGroup Condition=" '$(TargetFramework)' != 'netstandard1.3' And '$(TargetFramework)' != 'netstandard2.0' ">
+    <Reference Include="System" />
+    <Reference Include="System.Configuration" />
+    <Reference Include="System.Core" Condition=" '$(TargetFramework)' != 'net20' " />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Web" Condition=" '$(TargetFramework)' != 'net35-client' And '$(TargetFramework)' != 'net40-client' " />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+
+  <PropertyGroup Condition=" '$(TargetFramework)' == 'net20' ">
+    <DefineConstants>STRONG;TRACE;NET_2_0</DefineConstants>
   </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <OutputPath>..\build\bin\net\4.5\release\</OutputPath>
-    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
-    <BaseAddress>285212672</BaseAddress>
-    <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
-    <ConfigurationOverrideFile>
-    </ConfigurationOverrideFile>
-    <DefineConstants>TRACE;STRONG;NET;NET_2_0;NET_4_0;NET_4_5</DefineConstants>
-    <DocumentationFile>log4net.xml</DocumentationFile>
-    <DebugSymbols>false</DebugSymbols>
-    <FileAlignment>4096</FileAlignment>
-    <Optimize>true</Optimize>
-    <RegisterForComInterop>false</RegisterForComInterop>
-    <RemoveIntegerChecks>false</RemoveIntegerChecks>
-    <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
-    <WarningLevel>4</WarningLevel>
-    <DebugType>none</DebugType>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+
+  <PropertyGroup Condition=" '$(TargetFramework)' == 'net35' ">
+    <DefineConstants>STRONG;TRACE;NET_2_0;HAS_READERWRITERLOCKSLIM</DefineConstants>
   </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="System">
-      <Name>System</Name>
-    </Reference>
-    <Reference Include="System.configuration" />
-    <Reference Include="System.Data">
-      <Name>System.Data</Name>
-    </Reference>
-    <Reference Include="System.Web">
-      <Name>System.Web</Name>
-    </Reference>
-    <Reference Include="System.Xml">
-      <Name>System.XML</Name>
-    </Reference>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Appender\AdoNetAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\AnsiColorTerminalAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\AppenderCollection.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\AppenderSkeleton.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\AspNetTraceAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\BufferingAppenderSkeleton.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\BufferingForwardingAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\ColoredConsoleAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\ConsoleAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\DebugAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\EventLogAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\FileAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\ForwardingAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\IAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\IBulkAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\IFlushable.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\LocalSyslogAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\ManagedColoredConsoleAppender.cs" />
-    <Compile Include="Appender\MemoryAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\NetSendAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\OutputDebugStringAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\RemoteSyslogAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\RemotingAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\RollingFileAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\SmtpAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\SmtpPickupDirAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\TelnetAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\TextWriterAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\TraceAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\UdpAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="AssemblyInfo.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="AssemblyVersionInfo.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Config\AliasDomainAttribute.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Config\AliasRepositoryAttribute.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Config\BasicConfigurator.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Config\ConfiguratorAttribute.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Config\DomainAttribute.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Config\DOMConfigurator.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Config\DOMConfiguratorAttribute.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Config\Log4NetConfigurationSectionHandler.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Config\PluginAttribute.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Config\RepositoryAttribute.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Config\SecurityContextProviderAttribute.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Config\XmlConfigurator.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Config\XmlConfiguratorAttribute.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\CompactRepositorySelector.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\DefaultRepositorySelector.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\ErrorCode.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\ExceptionEvaluator.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\IAppenderAttachable.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\IErrorHandler.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\IFixingRequired.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\ILogger.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\ILoggerWrapper.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\IOptionHandler.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\IRepositorySelector.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\ITriggeringEventEvaluator.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\Level.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\LevelCollection.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\LevelEvaluator.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\LevelMap.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\LocationInfo.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\LogException.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\LoggerManager.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\LoggerWrapperImpl.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\LoggingEvent.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\LogImpl.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\MethodItem.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\SecurityContext.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\SecurityContextProvider.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\StackFrameItem.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\TimeEvaluator.cs" />
-    <Compile Include="Core\WrapperMap.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="DateFormatter\AbsoluteTimeDateFormatter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="DateFormatter\DateTimeDateFormatter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="DateFormatter\IDateFormatter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="DateFormatter\Iso8601DateFormatter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="DateFormatter\SimpleDateFormatter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Filter\DenyAllFilter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Filter\FilterDecision.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Filter\FilterSkeleton.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Filter\IFilter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Filter\LevelMatchFilter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Filter\LevelRangeFilter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Filter\LoggerMatchFilter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Filter\MdcFilter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Filter\NdcFilter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Filter\PropertyFilter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Filter\StringMatchFilter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="GlobalContext.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="ILog.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\DynamicPatternLayout.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\ExceptionLayout.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\ILayout.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\IRawLayout.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Layout2RawLayoutAdapter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\LayoutSkeleton.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\PatternLayout.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Pattern\AppDomainPatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Pattern\AspNetCachePatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Pattern\AspNetContextPatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Pattern\AspNetPatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Pattern\AspNetRequestPatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Pattern\AspNetSessionPatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Pattern\DatePatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Pattern\ExceptionPatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Pattern\FileLocationPatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Pattern\FullLocationPatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Pattern\IdentityPatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Pattern\LevelPatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Pattern\LineLocationPatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Pattern\LoggerPatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Pattern\MessagePatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Pattern\MethodLocationPatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Pattern\NamedPatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Pattern\NdcPatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Pattern\PatternLayoutConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Pattern\PropertyPatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Pattern\RelativeTimePatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Pattern\StackTraceDetailPatternConverter.cs" />
-    <Compile Include="Layout\Pattern\StackTracePatternConverter.cs" />
-    <Compile Include="Layout\Pattern\ThreadPatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Pattern\TypeNamePatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Pattern\UserNamePatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\Pattern\UtcDatePatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\RawLayoutConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\RawPropertyLayout.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\RawTimeStampLayout.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\RawUtcTimeStampLayout.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\SimpleLayout.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\XmlLayout.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\XmlLayoutBase.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\XmlLayoutSchemaLog4j.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="LogicalThreadContext.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="LogManager.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="MDC.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="NDC.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="ObjectRenderer\DefaultRenderer.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="ObjectRenderer\IObjectRenderer.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="ObjectRenderer\RendererMap.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Plugin\IPlugin.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Plugin\IPluginFactory.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Plugin\PluginCollection.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Plugin\PluginMap.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Plugin\PluginSkeleton.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Plugin\RemoteLoggingServerPlugin.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Repository\ConfigurationChangedEventArgs.cs" />
-    <Compile Include="Repository\Hierarchy\DefaultLoggerFactory.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Repository\Hierarchy\Hierarchy.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Repository\Hierarchy\ILoggerFactory.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Repository\Hierarchy\Logger.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Repository\Hierarchy\LoggerKey.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Repository\Hierarchy\ProvisionNode.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Repository\Hierarchy\RootLogger.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Repository\Hierarchy\XmlHierarchyConfigurator.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Repository\IBasicRepositoryConfigurator.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Repository\ILoggerRepository.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Repository\IXmlRepositoryConfigurator.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Repository\LoggerRepositorySkeleton.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="ThreadContext.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\AppenderAttachedImpl.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\CompositeProperties.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\ContextPropertiesBase.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\ConverterInfo.cs" />
-    <Compile Include="Util\CountingQuietTextWriter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\CyclicBuffer.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\EmptyCollection.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\EmptyDictionary.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\FormattingInfo.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\GlobalContextProperties.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\ILogExtensions.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\LevelMapping.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\LevelMappingEntry.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\LogicalThreadContextProperties.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\LogLog.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\NativeError.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\NullDictionaryEnumerator.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\NullEnumerator.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\NullSecurityContext.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\OnlyOnceErrorHandler.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\OptionConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\PatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\PatternParser.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\PatternString.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\PatternStringConverters\AppDomainPatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\PatternStringConverters\AppSettingPatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\PatternStringConverters\DatePatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\PatternStringConverters\EnvironmentFolderPathPatternConverter.cs" />
-    <Compile Include="Util\PatternStringConverters\EnvironmentPatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\PatternStringConverters\IdentityPatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\PatternStringConverters\LiteralPatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\PatternStringConverters\NewLinePatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\PatternStringConverters\ProcessIdPatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\PatternStringConverters\PropertyPatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\PatternStringConverters\RandomStringPatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\PatternStringConverters\UserNamePatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\PatternStringConverters\UtcDatePatternConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\PropertiesDictionary.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\PropertyEntry.cs" />
-    <Compile Include="Util\ProtectCloseTextWriter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\QuietTextWriter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\ReaderWriterLock.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\ReadOnlyPropertiesDictionary.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\ReusableStringWriter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\SystemInfo.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\SystemStringFormat.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\TextWriterAdapter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\ThreadContextProperties.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\LogicalThreadContextStack.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\ThreadContextStack.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\LogicalThreadContextStacks.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\ThreadContextStacks.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\Transform.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\TypeConverters\BooleanConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\TypeConverters\ConversionNotSupportedException.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\TypeConverters\ConverterRegistry.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\TypeConverters\EncodingConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\TypeConverters\IConvertFrom.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\TypeConverters\IConvertTo.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\TypeConverters\IPAddressConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\TypeConverters\PatternLayoutConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\TypeConverters\PatternStringConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\TypeConverters\TypeConverter.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\TypeConverters\TypeConverterAttribute.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\WindowsSecurityContext.cs">
-      <SubType>Code</SubType>
-    </Compile>
+
+  <PropertyGroup Condition=" '$(TargetFramework)' == 'net35-client' ">
+    <TargetFrameworkIdentifier>.NETFramework</TargetFrameworkIdentifier>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+    <TargetFrameworkProfile>client</TargetFrameworkProfile>
+    <DefineConstants>STRONG;TRACE;NET_2_0;HAS_READERWRITERLOCKSLIM;CLIENT_PROFILE</DefineConstants>
+  </PropertyGroup>
+
+  <PropertyGroup Condition=" '$(TargetFramework)' == 'net40' ">
+    <DefineConstants>STRONG;TRACE;NET_2_0;NET_4_0;HAS_READERWRITERLOCKSLIM</DefineConstants>
+  </PropertyGroup>
+
+  <PropertyGroup Condition=" '$(TargetFramework)' == 'net40-client' ">
+    <TargetFrameworkIdentifier>.NETFramework</TargetFrameworkIdentifier>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <TargetFrameworkProfile>client</TargetFrameworkProfile>
+    <DefineConstants>STRONG;TRACE;NET_2_0;NET_4_0;HAS_READERWRITERLOCKSLIM;CLIENT_PROFILE</DefineConstants>
+  </PropertyGroup>
+
+  <PropertyGroup Condition=" '$(TargetFramework)' == 'net45' ">
+    <DefineConstants>STRONG;TRACE;NET_2_0;NET_4_0;NET_4_5;HAS_READERWRITERLOCKSLIM</DefineConstants>
+  </PropertyGroup>
+
+  <PropertyGroup Condition=" '$(TargetFramework)' == 'netstandard1.3' Or '$(TargetFramework)' == 'netstandard2.0' ">
+    <DefineConstants>STRONG;TRACE;HAS_READERWRITERLOCKSLIM</DefineConstants>
+  </PropertyGroup>
+
+  <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard1.3' ">
+    <Compile Remove="Appender\AdoNetAppender.cs;Appender\AspNetTraceAppender.cs;Appender\ColoredConsoleAppender.cs;Appender\EventLogAppender.cs;Appender\NetSendAppender.cs;Appender\RemotingAppender.cs;Appender\SmtpAppender.cs;Config\DOMConfigurator.cs;Config\DOMConfiguratorAttribute.cs;Config\Log4NetConfigurationSectionHandler.cs;Layout\Pattern\AspNetCachePatternConverter.cs;Layout\Pattern\AspNetContextPatternConverter.cs;Layout\Pattern\AspNetPatternConverter.cs;Layout\Pattern\AspNetRequestPatternConverter.cs;Layout\Pattern\AspNetSessionPatternConverter.cs;Layout\Pattern\StackTraceDetailPatternConverter.cs;Layout\Pattern\StackTracePatternConverter.cs;Plugin\RemoteLoggingServerPlugin.cs;Util\PatternStringConverters\AppSettingPatternConverter.cs;Util\PatternStringConverters\EnvironmentFolderPathPatternConverter.cs;Util\NativeError.cs;Util\WindowsSecurityContext.cs" />
+    <PackageReference Include="System.AppContext" Version="4.3.0" />
+    <PackageReference Include="System.Collections.NonGeneric" Version="4.3.0" />
+    <PackageReference Include="System.Console" Version="4.3.0" />
+    <PackageReference Include="System.Diagnostics.Debug" Version="4.3.0" />
+    <PackageReference Include="System.Diagnostics.Process" Version="4.3.0" />
+    <PackageReference Include="System.Diagnostics.StackTrace" Version="4.3.0" />
+    <PackageReference Include="System.Diagnostics.TraceSource" Version="4.3.0" />
+    <PackageReference Include="System.IO.FileSystem" Version="4.3.0" />
+    <PackageReference Include="System.IO.FileSystem.Watcher" Version="4.3.0" />
+    <PackageReference Include="System.Linq" Version="4.3.0" />
+    <PackageReference Include="System.Net.NameResolution" Version="4.3.0" />
+    <PackageReference Include="System.Net.Requests" Version="4.3.0" />
+    <PackageReference Include="System.Net.Sockets" 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.3.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.3.0" />
   </ItemGroup>
-  <ItemGroup>
-    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
-      <Visible>False</Visible>
-      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
-      <Install>false</Install>
-    </BootstrapperPackage>
-    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
-      <Visible>False</Visible>
-      <ProductName>.NET Framework 3.5 SP1</ProductName>
-      <Install>true</Install>
-    </BootstrapperPackage>
-    <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
-      <Visible>False</Visible>
-      <ProductName>Windows Installer 3.1</ProductName>
-      <Install>true</Install>
-    </BootstrapperPackage>
+
+  <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
+    <Compile Remove="Appender\EventLogAppender.cs;Appender\RemotingAppender.cs;**\AspNet*.cs;Util\WindowsSecurityContext.cs;Plugin\RemoteLoggingServerPlugin.cs" />
+    <PackageReference Include="System.Configuration.ConfigurationManager" Version="4.4.0" />
   </ItemGroup>
-  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
-  <PropertyGroup>
-    <PreBuildEvent>
-    </PreBuildEvent>
-    <PostBuildEvent>
-    </PostBuildEvent>
-  </PropertyGroup>
+
 </Project>

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/1dedf870/src/log4net.sln
----------------------------------------------------------------------
diff --git a/src/log4net.sln b/src/log4net.sln
index 3d422e3..dcb465a 100644
--- a/src/log4net.sln
+++ b/src/log4net.sln
@@ -1,6 +1,6 @@
+
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-#
+# Visual Studio 15
 #
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
@@ -19,10 +19,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00
 # specific language governing permissions and limitations
 # under the License.
 #
-#
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "log4net", "log4net.csproj", "{181FE707-E161-4722-9F38-6AAAB6FAA106}"
+VisualStudioVersion = 15.0.26801.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "log4net", "log4net.csproj", "{5C1DC5A1-A943-40B5-9270-A65286B4978D}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "log4net.Tests", "..\tests\src\log4net.Tests.csproj", "{B0530F10-0238-49A9-93B0-8EF412E90BCF}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "log4net.Tests", "..\tests\src\log4net.Tests.csproj", "{DBF648C3-AA35-48C6-9F3C-05669BAABA63}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -30,16 +31,19 @@ Global
 		Release|Any CPU = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{181FE707-E161-4722-9F38-6AAAB6FAA106}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{181FE707-E161-4722-9F38-6AAAB6FAA106}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{181FE707-E161-4722-9F38-6AAAB6FAA106}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{181FE707-E161-4722-9F38-6AAAB6FAA106}.Release|Any CPU.Build.0 = Release|Any CPU
-		{B0530F10-0238-49A9-93B0-8EF412E90BCF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{B0530F10-0238-49A9-93B0-8EF412E90BCF}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{B0530F10-0238-49A9-93B0-8EF412E90BCF}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{B0530F10-0238-49A9-93B0-8EF412E90BCF}.Release|Any CPU.Build.0 = Release|Any CPU
+		{5C1DC5A1-A943-40B5-9270-A65286B4978D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{5C1DC5A1-A943-40B5-9270-A65286B4978D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{5C1DC5A1-A943-40B5-9270-A65286B4978D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{5C1DC5A1-A943-40B5-9270-A65286B4978D}.Release|Any CPU.Build.0 = Release|Any CPU
+		{DBF648C3-AA35-48C6-9F3C-05669BAABA63}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{DBF648C3-AA35-48C6-9F3C-05669BAABA63}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{DBF648C3-AA35-48C6-9F3C-05669BAABA63}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{DBF648C3-AA35-48C6-9F3C-05669BAABA63}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {8655E3DC-898A-49DA-960F-0AD7DB2DFD93}
+	EndGlobalSection
 EndGlobal

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/1dedf870/tests/src/log4net.Tests.csproj
----------------------------------------------------------------------
diff --git a/tests/src/log4net.Tests.csproj b/tests/src/log4net.Tests.csproj
index f1768cc..a29659e 100644
--- a/tests/src/log4net.Tests.csproj
+++ b/tests/src/log4net.Tests.csproj
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
 
  Licensed to the Apache Software Foundation (ASF) under one
@@ -19,245 +18,25 @@
  under the License.
 
 -->
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
+<Project Sdk="Microsoft.NET.Sdk">
+
   <PropertyGroup>
-    <ProjectType>Local</ProjectType>
-    <ProductVersion>9.0.30729</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{B0530F10-0238-49A9-93B0-8EF412E90BCF}</ProjectGuid>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ApplicationIcon>
-    </ApplicationIcon>
-    <AssemblyKeyContainerName>
-    </AssemblyKeyContainerName>
+    <!--
+         Currently multitargeting tests doesn't work, separate projects are required.
+         (tracked at https://github.com/Microsoft/vstest/issues/298 and https://github.com/Microsoft/vstest/issues/624)
+    -->
+    <TargetFramework>netcoreapp2.0</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    <IsPackable>false</IsPackable>
     <AssemblyName>log4net.Tests</AssemblyName>
-    <AssemblyOriginatorKeyFile>
-    </AssemblyOriginatorKeyFile>
-    <DefaultClientScript>JScript</DefaultClientScript>
-    <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
-    <DefaultTargetSchema>IE50</DefaultTargetSchema>
-    <DelaySign>false</DelaySign>
-    <OutputType>Library</OutputType>
-    <RootNamespace>log4net.Tests</RootNamespace>
-    <StartupObject>
-    </StartupObject>
-    <FileUpgradeFlags>
-    </FileUpgradeFlags>
-    <UpgradeBackupLocation>
-    </UpgradeBackupLocation>
-    <OldToolsVersion>3.5</OldToolsVersion>
-    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
-    <PublishUrl>publish\</PublishUrl>
-    <Install>true</Install>
-    <InstallFrom>Disk</InstallFrom>
-    <UpdateEnabled>false</UpdateEnabled>
-    <UpdateMode>Foreground</UpdateMode>
-    <UpdateInterval>7</UpdateInterval>
-    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
-    <UpdatePeriodically>false</UpdatePeriodically>
-    <UpdateRequired>false</UpdateRequired>
-    <MapFileExtensions>true</MapFileExtensions>
-    <ApplicationRevision>0</ApplicationRevision>
-    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
-    <IsWebBootstrapper>false</IsWebBootstrapper>
-    <UseApplicationTrust>false</UseApplicationTrust>
-    <BootstrapperEnabled>true</BootstrapperEnabled>
-    <TargetFrameworkProfile />
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <OutputPath>..\bin\Debug\</OutputPath>
-    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
-    <BaseAddress>285212672</BaseAddress>
-    <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
-    <ConfigurationOverrideFile>
-    </ConfigurationOverrideFile>
-    <DefineConstants>TRACE;DEBUG;NET;NET_2_0;NET_4_0;NET_4_5</DefineConstants>
-    <DocumentationFile>
-    </DocumentationFile>
-    <DebugSymbols>true</DebugSymbols>
-    <FileAlignment>4096</FileAlignment>
-    <Optimize>false</Optimize>
-    <RegisterForComInterop>false</RegisterForComInterop>
-    <RemoveIntegerChecks>false</RemoveIntegerChecks>
-    <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
-    <WarningLevel>4</WarningLevel>
-    <DebugType>full</DebugType>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <OutputPath>..\bin\Release\</OutputPath>
-    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
-    <BaseAddress>285212672</BaseAddress>
-    <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
-    <ConfigurationOverrideFile>
-    </ConfigurationOverrideFile>
-    <DefineConstants>TRACE;NET;NET_2_0;NET_4_0;NET_4_5</DefineConstants>
-    <DocumentationFile>
-    </DocumentationFile>
-    <DebugSymbols>false</DebugSymbols>
-    <FileAlignment>4096</FileAlignment>
-    <Optimize>true</Optimize>
-    <RegisterForComInterop>false</RegisterForComInterop>
-    <RemoveIntegerChecks>false</RemoveIntegerChecks>
-    <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
-    <WarningLevel>4</WarningLevel>
-    <DebugType>none</DebugType>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
   </PropertyGroup>
+
   <ItemGroup>
-    <Reference Include="nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
-      <HintPath>..\..\src\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System">
-      <Name>System</Name>
-    </Reference>
-    <Reference Include="System.configuration" />
-    <Reference Include="System.Core">
-      <RequiredTargetFramework>3.5</RequiredTargetFramework>
-    </Reference>
-    <Reference Include="System.Data">
-      <Name>System.Data</Name>
-    </Reference>
-    <Reference Include="System.Runtime.Remoting">
-      <Name>System.Runtime.Remoting</Name>
-    </Reference>
-    <Reference Include="System.Xml">
-      <Name>System.XML</Name>
-    </Reference>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="..\..\src\AssemblyVersionInfo.cs">
-      <Link>AssemblyVersionInfo.cs</Link>
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\AdoNetAppenderTest.cs" />
-    <Compile Include="Appender\AdoNet\Log4NetCommand.cs" />
-    <Compile Include="Appender\AdoNet\Log4NetConnection.cs" />
-    <Compile Include="Appender\AdoNet\Log4NetParameter.cs" />
-    <Compile Include="Appender\AdoNet\Log4NetParameterCollection.cs" />
-    <Compile Include="Appender\AdoNet\Log4NetTransaction.cs" />
-    <Compile Include="Appender\AppenderCollectionTest.cs" />
-    <Compile Include="Appender\BufferingAppenderTest.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\CountingAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\DebugAppenderTest.cs" />
-    <Compile Include="Appender\EventLogAppenderTest.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\EventRaisingAppender.cs" />
-    <Compile Include="Appender\MemoryAppenderTest.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\RecursiveLoggingTest.cs" />
-    <Compile Include="Appender\RemotingAppenderTest.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\SmtpPickupDirAppenderTest.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\RollingFileAppenderTest.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\StringAppender.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Appender\TraceAppenderTest.cs" />
-    <Compile Include="AssemblyInfo.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Context\LogicalThreadContextTest.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Context\ThreadContextTest.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\EvaluatorTest.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\FixingTest.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\ShutdownTest.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Core\StringFormatTest.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Hierarchy\Hierarchy.cs" />
-    <Compile Include="Hierarchy\Logger.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\DynamicPatternLayoutTest.cs" />
-    <Compile Include="Layout\PatternLayoutTest.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Layout\XmlLayoutTest.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="LoggerRepository\ConfigurationMessages.cs" />
-    <Compile Include="Filter\FilterTest.cs" />
-    <Compile Include="Utils.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\CyclicBufferTest.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\EnvironmentPatternConverterTest.cs" />
-    <Compile Include="Util\LogLogTest.cs" />
-    <Compile Include="Util\PatternConverterTest.cs" />
-    <Compile Include="Util\PatternStringTest.cs" />
-    <Compile Include="Util\PropertiesDictionaryTest.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\RandomStringPatternConverterTest.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\SystemInfoTest.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\TransformTest.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
-      <Visible>False</Visible>
-      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
-      <Install>false</Install>
-    </BootstrapperPackage>
-    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
-      <Visible>False</Visible>
-      <ProductName>.NET Framework 3.5 SP1</ProductName>
-      <Install>true</Install>
-    </BootstrapperPackage>
-    <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
-      <Visible>False</Visible>
-      <ProductName>Windows Installer 3.1</ProductName>
-      <Install>true</Install>
-    </BootstrapperPackage>
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\src\log4net.csproj">
-      <Project>{181fe707-e161-4722-9f38-6aaab6faa106}</Project>
-      <Name>log4net.vs2012</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="packages.config" />
+    <Compile Remove="Appender\DebugAppenderTest.cs;Appender\EventLogAppenderTest.cs;Appender\RemotingAppenderTest.cs;Util\PatternStringTest.cs" />
+    <ProjectReference Include="..\..\src\log4net.csproj" />
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
+    <PackageReference Include="NUnit" Version="3.7.1" />
+    <PackageReference Include="NUnit3TestAdapter" Version="3.8.0" />
   </ItemGroup>
-  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
-  <PropertyGroup>
-    <PreBuildEvent>
-    </PreBuildEvent>
-    <PostBuildEvent>
-    </PostBuildEvent>
-  </PropertyGroup>
-</Project>
\ No newline at end of file
+
+</Project>

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/1dedf870/tests/src/packages.config
----------------------------------------------------------------------
diff --git a/tests/src/packages.config b/tests/src/packages.config
deleted file mode 100644
index e594870..0000000
--- a/tests/src/packages.config
+++ /dev/null
@@ -1,20 +0,0 @@
-<?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.
--->
-<packages>
-  <package id="NUnit" version="2.6.4" targetFramework="net4" />
-</packages>


[09/13] logging-log4net git commit: handle PlatformNotSupportedExceptions in UserNamePatternConverter

Posted by dp...@apache.org.
handle PlatformNotSupportedExceptions in UserNamePatternConverter


Project: http://git-wip-us.apache.org/repos/asf/logging-log4net/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4net/commit/b30a7098
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4net/tree/b30a7098
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4net/diff/b30a7098

Branch: refs/heads/feature/netstandard-2.0
Commit: b30a7098c915041d52a9d206d697dafb0c611f4b
Parents: 4f8ce10
Author: Charles Lowell <ch...@microsoft.com>
Authored: Wed Aug 16 09:44:52 2017 -0700
Committer: Charles Lowell <ch...@microsoft.com>
Committed: Wed Aug 16 09:52:15 2017 -0700

----------------------------------------------------------------------
 src/Util/PatternStringConverters/UserNamePatternConverter.cs | 8 +++++++-
 src/log4net.csproj                                           | 1 +
 2 files changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/b30a7098/src/Util/PatternStringConverters/UserNamePatternConverter.cs
----------------------------------------------------------------------
diff --git a/src/Util/PatternStringConverters/UserNamePatternConverter.cs b/src/Util/PatternStringConverters/UserNamePatternConverter.cs
index 43e3472..cca3504 100644
--- a/src/Util/PatternStringConverters/UserNamePatternConverter.cs
+++ b/src/Util/PatternStringConverters/UserNamePatternConverter.cs
@@ -48,7 +48,7 @@ namespace log4net.Util.PatternStringConverters
 		/// </remarks>
 		override protected void Convert(TextWriter writer, object state)
 		{
-#if (NETCF || SSCLI || NETSTANDARD1_3 || NETSTANDARD2_0)
+#if (NETCF || SSCLI || NETSTANDARD1_3)
 			// On compact framework there's no notion of current Windows user
 			writer.Write( SystemInfo.NotAvailableText );
 #else
@@ -69,6 +69,12 @@ namespace log4net.Util.PatternStringConverters
 
 				writer.Write( SystemInfo.NotAvailableText );
 			}
+#if NETSTANDARD2_0
+			catch(PlatformNotSupportedException)
+			{
+				writer.Write("WindowsIdentity is not available on this platform");
+			}
+#endif
 #endif
 		}
 

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/b30a7098/src/log4net.csproj
----------------------------------------------------------------------
diff --git a/src/log4net.csproj b/src/log4net.csproj
index cf0f3f1..94375a5 100644
--- a/src/log4net.csproj
+++ b/src/log4net.csproj
@@ -111,6 +111,7 @@
     <Compile Remove="Appender\EventLogAppender.cs;Appender\RemotingAppender.cs;**\AspNet*.cs;Util\WindowsSecurityContext.cs;Plugin\RemoteLoggingServerPlugin.cs" />
     <PackageReference Include="System.Configuration.ConfigurationManager" Version="4.4.0" />
     <PackageReference Include="System.Runtime.InteropServices.RuntimeInformation" Version="4.3.0" />
+    <PackageReference Include="System.Security.Principal.Windows" Version="4.4.0" />
   </ItemGroup>
 
 </Project>


[02/13] logging-log4net git commit: NETSTANDARD1_3 -> NETCOREAPP1_0

Posted by dp...@apache.org.
NETSTANDARD1_3 -> NETCOREAPP1_0


Project: http://git-wip-us.apache.org/repos/asf/logging-log4net/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4net/commit/f8d560e9
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4net/tree/f8d560e9
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4net/diff/f8d560e9

Branch: refs/heads/feature/netstandard-2.0
Commit: f8d560e991b42bdc13cef416d3d6dd3dcef4f839
Parents: 4dadc4e
Author: Charles Lowell <ch...@microsoft.com>
Authored: Tue Aug 15 13:06:27 2017 -0700
Committer: Charles Lowell <ch...@microsoft.com>
Committed: Wed Aug 16 09:52:12 2017 -0700

----------------------------------------------------------------------
 tests/src/Appender/DebugAppenderTest.cs             |  2 +-
 tests/src/Appender/MemoryAppenderTest.cs            |  2 +-
 tests/src/Appender/RollingFileAppenderTest.cs       |  8 ++++----
 tests/src/Appender/TraceAppenderTest.cs             |  2 +-
 tests/src/Context/LogicalThreadContextTest.cs       |  2 +-
 tests/src/Core/FixingTest.cs                        |  4 ++--
 tests/src/Core/StringFormatTest.cs                  |  2 +-
 tests/src/Hierarchy/Hierarchy.cs                    |  2 +-
 tests/src/Hierarchy/Logger.cs                       |  4 ++--
 tests/src/Hierarchy/XmlHierarchyConfiguratorTest.cs |  2 +-
 tests/src/Layout/PatternLayoutTest.cs               |  8 ++++----
 tests/src/Layout/XmlLayoutTest.cs                   | 10 +++++-----
 tests/src/Util/SystemInfoTest.cs                    | 14 +++++++-------
 tests/src/Utils.cs                                  |  8 ++++----
 14 files changed, 35 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/f8d560e9/tests/src/Appender/DebugAppenderTest.cs
----------------------------------------------------------------------
diff --git a/tests/src/Appender/DebugAppenderTest.cs b/tests/src/Appender/DebugAppenderTest.cs
index 121c604..1a4f8be 100644
--- a/tests/src/Appender/DebugAppenderTest.cs
+++ b/tests/src/Appender/DebugAppenderTest.cs
@@ -113,7 +113,7 @@ namespace log4net.Tests.Appender
 			Debug.Listeners.Remove(categoryTraceListener);
 		}
 
-#if !NETSTANDARD1_3 // "LocationInfo can't get method names on NETSTANDARD1_3 due to unavailable stack frame APIs"
+#if !NETCOREAPP1_0 // "LocationInfo can't get method names on NETCOREAPP1_0 due to unavailable stack frame APIs"
 		[Test]
 		public void MethodNameCategoryTest()
 		{

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/f8d560e9/tests/src/Appender/MemoryAppenderTest.cs
----------------------------------------------------------------------
diff --git a/tests/src/Appender/MemoryAppenderTest.cs b/tests/src/Appender/MemoryAppenderTest.cs
index b97bd62..0f31ff5 100644
--- a/tests/src/Appender/MemoryAppenderTest.cs
+++ b/tests/src/Appender/MemoryAppenderTest.cs
@@ -19,7 +19,7 @@
  *
 */
 
-#if NET_4_0 || MONO_3_5 || MONO_4_0
+#if NET_4_0 || MONO_3_5 || MONO_4_0 || NETCOREAPP1_0 || NETCOREAPP2_0
 
 using System;
 using System.Linq;

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/f8d560e9/tests/src/Appender/RollingFileAppenderTest.cs
----------------------------------------------------------------------
diff --git a/tests/src/Appender/RollingFileAppenderTest.cs b/tests/src/Appender/RollingFileAppenderTest.cs
index 07ebfec..c814753 100644
--- a/tests/src/Appender/RollingFileAppenderTest.cs
+++ b/tests/src/Appender/RollingFileAppenderTest.cs
@@ -51,7 +51,7 @@ namespace log4net.Tests.Appender
 		private int _MaxSizeRollBackups = 3;
 		private CountingAppender _caRoot;
 		private Logger _root;
-#if !NETSTANDARD1_3
+#if !NETCOREAPP1_0
 		private CultureInfo _currentCulture;
 		private CultureInfo _currentUICulture;
 #endif
@@ -116,7 +116,7 @@ namespace log4net.Tests.Appender
 			ResetAndDeleteTestFiles();
 			InitializeVariables();
 
-#if !NETSTANDARD1_3
+#if !NETCOREAPP1_0
 			// set correct thread culture
 			_currentCulture = System.Threading.Thread.CurrentThread.CurrentCulture;
 			_currentUICulture = System.Threading.Thread.CurrentThread.CurrentUICulture;
@@ -132,7 +132,7 @@ namespace log4net.Tests.Appender
 		{
 			ResetAndDeleteTestFiles();
 
-#if !NETSTANDARD1_3
+#if !NETCOREAPP1_0
 			// restore previous culture
 			System.Threading.Thread.CurrentThread.CurrentCulture = _currentCulture;
 			System.Threading.Thread.CurrentThread.CurrentUICulture = _currentUICulture;
@@ -1453,7 +1453,7 @@ namespace log4net.Tests.Appender
 
 		private static void AssertFileEquals(string filename, string contents)
 		{
-#if NETSTANDARD1_3
+#if NETCOREAPP1_0
 			StreamReader sr = new StreamReader(File.Open(filename, FileMode.Open));
 #else
 			StreamReader sr = new StreamReader(filename);

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/f8d560e9/tests/src/Appender/TraceAppenderTest.cs
----------------------------------------------------------------------
diff --git a/tests/src/Appender/TraceAppenderTest.cs b/tests/src/Appender/TraceAppenderTest.cs
index ec5227a..f3db34b 100644
--- a/tests/src/Appender/TraceAppenderTest.cs
+++ b/tests/src/Appender/TraceAppenderTest.cs
@@ -55,7 +55,7 @@ namespace log4net.Tests.Appender
 				categoryTraceListener.Category);
 		}
 
-#if !NETSTANDARD1_3 // "LocationInfo can't get method names on NETSTANDARD1_3 due to unavailable stack frame APIs"
+#if !NETCOREAPP1_0 // "LocationInfo can't get method names on NETCOREAPP1_0 due to unavailable stack frame APIs"
 		[Test]
 		public void MethodNameCategoryTest()
 		{

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/f8d560e9/tests/src/Context/LogicalThreadContextTest.cs
----------------------------------------------------------------------
diff --git a/tests/src/Context/LogicalThreadContextTest.cs b/tests/src/Context/LogicalThreadContextTest.cs
index 34a7136..1da998c 100644
--- a/tests/src/Context/LogicalThreadContextTest.cs
+++ b/tests/src/Context/LogicalThreadContextTest.cs
@@ -17,7 +17,7 @@
 //
 #endregion
 
-#if NET_4_5 || NETSTANDARD1_3
+#if NET_4_5 || NETCOREAPP1_0 || NETCOREAPP2_0
 using System;
 using System.Threading.Tasks;
 using System.Linq;

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/f8d560e9/tests/src/Core/FixingTest.cs
----------------------------------------------------------------------
diff --git a/tests/src/Core/FixingTest.cs b/tests/src/Core/FixingTest.cs
index 34af05d..c1a4d02 100644
--- a/tests/src/Core/FixingTest.cs
+++ b/tests/src/Core/FixingTest.cs
@@ -33,7 +33,7 @@ namespace log4net.Tests.Core
 	{
 		const string TEST_REPOSITORY = "Test Repository";
 
-#if NETSTANDARD1_3
+#if NETCOREAPP1_0
 		[OneTimeSetUp]
 #else
 		[TestFixtureSetUp]
@@ -143,7 +143,7 @@ namespace log4net.Tests.Core
 			Assert.AreEqual("System.Exception: This is the exception", loggingEvent.GetExceptionString(), "Exception is incorrect");
 			Assert.AreEqual(null, loggingEventData.Identity, "Identity is incorrect");
 			Assert.AreEqual(Level.Warn, loggingEventData.Level, "Level is incorrect");
-#if !NETSTANDARD1_3 // NETSTANDARD1_3: LocationInfo can't get method names
+#if !NETCOREAPP1_0 // NETCOREAPP1_0: LocationInfo can't get method names
 			Assert.AreEqual("get_LocationInformation", loggingEvent.LocationInformation.MethodName, "Location Info is incorrect");
 #endif
 			Assert.AreEqual("log4net.Tests.Core.FixingTest", loggingEventData.LoggerName, "LoggerName is incorrect");

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/f8d560e9/tests/src/Core/StringFormatTest.cs
----------------------------------------------------------------------
diff --git a/tests/src/Core/StringFormatTest.cs b/tests/src/Core/StringFormatTest.cs
index d0f8473..1b5b4c3 100644
--- a/tests/src/Core/StringFormatTest.cs
+++ b/tests/src/Core/StringFormatTest.cs
@@ -40,7 +40,7 @@ namespace log4net.Tests.Core
 	[TestFixture]
 	public class StringFormatTest
 	{
-#if !NETSTANDARD1_3
+#if !NETCOREAPP1_0
 		private CultureInfo _currentCulture;
 		private CultureInfo _currentUICulture;
 

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/f8d560e9/tests/src/Hierarchy/Hierarchy.cs
----------------------------------------------------------------------
diff --git a/tests/src/Hierarchy/Hierarchy.cs b/tests/src/Hierarchy/Hierarchy.cs
index 8c83290..b615307 100644
--- a/tests/src/Hierarchy/Hierarchy.cs
+++ b/tests/src/Hierarchy/Hierarchy.cs
@@ -86,7 +86,7 @@ namespace log4net.Tests.Hierarchy
 			CountingAppender alpha = new CountingAppender();
 			CountingAppender beta = new CountingAppender();
 
-#if NETSTANDARD1_3
+#if NETCOREAPP1_0
 			BasicConfigurator.Configure(Utils.GetRepository(), alpha, beta);
 #else
 			BasicConfigurator.Configure(alpha, beta);

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/f8d560e9/tests/src/Hierarchy/Logger.cs
----------------------------------------------------------------------
diff --git a/tests/src/Hierarchy/Logger.cs b/tests/src/Hierarchy/Logger.cs
index 7335920..eb6631e 100644
--- a/tests/src/Hierarchy/Logger.cs
+++ b/tests/src/Hierarchy/Logger.cs
@@ -25,7 +25,7 @@ using log4net.Tests.Appender;
 
 using NUnit.Framework;
 
-#if NETSTANDARD1_3
+#if NETCOREAPP1_0
 using System.Reflection;
 #endif
 
@@ -280,7 +280,7 @@ namespace log4net.Tests.Hierarchy
 			object a_b_c = Utils.GetLogger("a.b.c");
 
 			object t;
-#if NETSTANDARD1_3
+#if NETCOREAPP1_0
 			Assert.IsNull(LogManager.Exists(GetType().GetTypeInfo().Assembly, "xx"));
 			t = LogManager.Exists(GetType().GetTypeInfo().Assembly, "a");
 			Assert.AreSame(a, t);

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/f8d560e9/tests/src/Hierarchy/XmlHierarchyConfiguratorTest.cs
----------------------------------------------------------------------
diff --git a/tests/src/Hierarchy/XmlHierarchyConfiguratorTest.cs b/tests/src/Hierarchy/XmlHierarchyConfiguratorTest.cs
index 6000366..f39d91a 100644
--- a/tests/src/Hierarchy/XmlHierarchyConfiguratorTest.cs
+++ b/tests/src/Hierarchy/XmlHierarchyConfiguratorTest.cs
@@ -45,7 +45,7 @@ namespace log4net.Tests.Hierarchy
 		}
 	}
 
-#if !NETSTANDARD1_3 // TODO write replacement test
+#if !(NETCOREAPP1_0 || NETCOREAPP2_0) // TODO write replacement test
 	[Test][Platform(Include="Win")]
 	public void EnvironmentOnWindowsIsCaseInsensitive()
 	{

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/f8d560e9/tests/src/Layout/PatternLayoutTest.cs
----------------------------------------------------------------------
diff --git a/tests/src/Layout/PatternLayoutTest.cs b/tests/src/Layout/PatternLayoutTest.cs
index 68e0a1e..9dfbc6c 100644
--- a/tests/src/Layout/PatternLayoutTest.cs
+++ b/tests/src/Layout/PatternLayoutTest.cs
@@ -42,7 +42,7 @@ namespace log4net.Tests.Layout
 	[TestFixture]
 	public class PatternLayoutTest
 	{
-#if !NETSTANDARD1_3
+#if !NETCOREAPP1_0
 		private CultureInfo _currentCulture;
 		private CultureInfo _currentUICulture;
 
@@ -101,8 +101,8 @@ namespace log4net.Tests.Layout
 			stringAppender.Reset();
 		}
 
-#if NETSTANDARD1_3
-		[Test, Ignore("System.Diagnostics.StackTrace isn't fully implemented on NETSTANDARD1_3")]
+#if NETCOREAPP1_0
+		[Test, Ignore("System.Diagnostics.StackTrace isn't fully implemented on NETCOREAPP1_0")]
 #else
 		[Test]
 #endif
@@ -356,4 +356,4 @@ namespace log4net.Tests.Layout
 			}
 		}
 	}
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/f8d560e9/tests/src/Layout/XmlLayoutTest.cs
----------------------------------------------------------------------
diff --git a/tests/src/Layout/XmlLayoutTest.cs b/tests/src/Layout/XmlLayoutTest.cs
index 9918ac7..8035cbb 100644
--- a/tests/src/Layout/XmlLayoutTest.cs
+++ b/tests/src/Layout/XmlLayoutTest.cs
@@ -36,7 +36,7 @@ namespace log4net.Tests.Layout
 	[TestFixture]
 	public class XmlLayoutTest
 	{
-#if !NETSTANDARD1_3
+#if !NETCOREAPP1_0
 		private CultureInfo _currentCulture;
 		private CultureInfo _currentUICulture;
 
@@ -83,7 +83,7 @@ namespace log4net.Tests.Layout
 		private static string CreateEventNode(string message)
 		{
 			return String.Format("<event logger=\"TestLogger\" timestamp=\"{0}\" level=\"INFO\" thread=\"TestThread\" domain=\"Tests\" identity=\"TestRunner\" username=\"TestRunner\"><message>{1}</message></event>" + Environment.NewLine,
-#if NET_2_0 || MONO_2_0 || MONO_3_5 || MONO_4_0 || NETSTANDARD1_3
+#if NET_2_0 || MONO_2_0 || MONO_3_5 || MONO_4_0 || NETCOREAPP1_0
 								 XmlConvert.ToString(DateTime.Today, XmlDateTimeSerializationMode.Local),
 #else
 								 XmlConvert.ToString(DateTime.Today),
@@ -94,7 +94,7 @@ namespace log4net.Tests.Layout
 		private static string CreateEventNode(string key, string value)
 		{
 			return String.Format("<event logger=\"TestLogger\" timestamp=\"{0}\" level=\"INFO\" thread=\"TestThread\" domain=\"Tests\" identity=\"TestRunner\" username=\"TestRunner\"><message>Test message</message><properties><data name=\"{1}\" value=\"{2}\" /></properties></event>" + Environment.NewLine,
-#if NET_2_0 || MONO_2_0 || MONO_3_5 || MONO_4_0 || NETSTANDARD1_3
+#if NET_2_0 || MONO_2_0 || MONO_3_5 || MONO_4_0 || NETCOREAPP1_0
 								 XmlConvert.ToString(DateTime.Today, XmlDateTimeSerializationMode.Local),
 #else
 								 XmlConvert.ToString(DateTime.Today),
@@ -305,7 +305,7 @@ namespace log4net.Tests.Layout
 			Assert.AreEqual(expected, stringAppender.GetString());
 		}
 
-#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
+#if NET_4_0 || MONO_4_0 || NETCOREAPP1_0 || NETCOREAPP2_0
 		[Test]
 		public void BracketsInStackTracesKeepLogWellFormed() {
 			XmlLayout layout = new XmlLayout();
@@ -349,7 +349,7 @@ namespace log4net.Tests.Layout
 			bar(42);
 
 			var log = stringAppender.GetString();
-#if NETSTANDARD1_3
+#if NETCOREAPP1_0
 			var startOfExceptionText = log.IndexOf("<exception>", StringComparison.Ordinal) + 11;
 			var endOfExceptionText = log.IndexOf("</exception>", StringComparison.Ordinal);
 #else

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/f8d560e9/tests/src/Util/SystemInfoTest.cs
----------------------------------------------------------------------
diff --git a/tests/src/Util/SystemInfoTest.cs b/tests/src/Util/SystemInfoTest.cs
index e6cc4bf..32edf87 100644
--- a/tests/src/Util/SystemInfoTest.cs
+++ b/tests/src/Util/SystemInfoTest.cs
@@ -23,7 +23,7 @@ using log4net.Util;
 
 using NUnit.Framework;
 
-#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
+#if NET_4_0 || MONO_4_0 || NETCOREAPP1_0 || NETCOREAPP2_0
 using System.Linq.Expressions;
 using System.Reflection;
 #endif
@@ -37,7 +37,7 @@ namespace log4net.Tests.Util
 	public class SystemInfoTest
 	{
 
-#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
+#if NET_4_0 || MONO_4_0 || NETCOREAPP1_0 || NETCOREAPP2_0
 		/// <summary>
 		/// It's "does not throw not supported exception" NOT
 		/// "returns 'Dynamic Assembly' string for dynamic assemblies" by purpose.
@@ -65,7 +65,7 @@ namespace log4net.Tests.Util
 
 		public static string TestAssemblyLocationInfoMethod()
 		{
-#if NETSTANDARD1_3
+#if NETCOREAPP1_0
 			return SystemInfo.AssemblyLocationInfo(typeof(SystemInfoTest).GetTypeInfo().Assembly);
 #else
 			return SystemInfo.AssemblyLocationInfo(Assembly.GetCallingAssembly());
@@ -88,7 +88,7 @@ namespace log4net.Tests.Util
 			Assert.AreSame(typeof(SystemInfoTest), t, "Test explicit case in-sensitive type load lower");
 		}
 
-#if !NETSTANDARD1_3
+#if !(NETCOREAPP1_0 || NETCOREAPP2_0)
 		[Test][Platform(Include="Win")]
 		public void TestGetTypeFromStringCaseInsensitiveOnAssemblyName()
 		{
@@ -117,7 +117,7 @@ namespace log4net.Tests.Util
 			Assert.AreSame(typeof(SystemInfoTest), t, "Test explicit case in-sensitive type load lower");
 		}
 
-#if NETSTANDARD1_3
+#if NETCOREAPP1_0
 		[Ignore("This test relies on enumerating loaded assemblies, which is presently impossible in CoreFX (https://github.com/dotnet/corefx/issues/1784).")]
 #endif
 		[Test]
@@ -161,10 +161,10 @@ namespace log4net.Tests.Util
 
 		// Wraps SystemInfo.GetTypeFromString because the method relies on GetCallingAssembly, which is
 		// unavailable in CoreFX. As a workaround, only overloads which explicitly take a Type or Assembly
-		// are exposed for NETSTANDARD1_3.
+		// are exposed for NETCOREAPP1_0.
 		private Type GetTypeFromString(string typeName, bool throwOnError, bool ignoreCase)
 		{
-#if NETSTANDARD1_3
+#if NETCOREAPP1_0
 			return SystemInfo.GetTypeFromString(GetType().GetTypeInfo().Assembly, typeName, throwOnError, ignoreCase);
 #else
 			return SystemInfo.GetTypeFromString(typeName, throwOnError, ignoreCase);

http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/f8d560e9/tests/src/Utils.cs
----------------------------------------------------------------------
diff --git a/tests/src/Utils.cs b/tests/src/Utils.cs
index d2ce18b..7404063 100644
--- a/tests/src/Utils.cs
+++ b/tests/src/Utils.cs
@@ -44,7 +44,7 @@ namespace log4net.Tests
 
 		public static object InvokeMethod(object target, string name, params object[] args)
 		{
-#if NETSTANDARD1_3
+#if NETCOREAPP1_0
 			return target.GetType().GetTypeInfo().GetDeclaredMethod(name).Invoke(target, args);
 #else
 			return target.GetType().GetMethod(name, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance, null, GetTypesArray(args), null).Invoke(target, args);
@@ -53,7 +53,7 @@ namespace log4net.Tests
 
 		public static object InvokeMethod(Type target, string name, params object[] args)
 		{
-#if NETSTANDARD1_3
+#if NETCOREAPP1_0
 			return target.GetTypeInfo().GetDeclaredMethod(name).Invoke(null, args);
 #else
 			return target.GetMethod(name, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static, null, GetTypesArray(args), null).Invoke(null, args);
@@ -122,7 +122,7 @@ namespace log4net.Tests
 		// Wrappers because repository/logger retrieval APIs require an Assembly argument on NETSTANDARD1_3
 		internal static ILog GetLogger(string name)
 		{
-#if NETSTANDARD1_3
+#if NETCOREAPP1_0
 			return LogManager.GetLogger(typeof(Utils).GetTypeInfo().Assembly, name);
 #else
 			return LogManager.GetLogger(name);
@@ -131,7 +131,7 @@ namespace log4net.Tests
 
 		internal static ILoggerRepository GetRepository()
 		{
-#if NETSTANDARD1_3
+#if NETCOREAPP1_0
 			return LogManager.GetRepository(typeof(Utils).GetTypeInfo().Assembly);
 #else
 			return LogManager.GetRepository();


[03/13] logging-log4net git commit: update AssemblyInfo

Posted by dp...@apache.org.
update AssemblyInfo


Project: http://git-wip-us.apache.org/repos/asf/logging-log4net/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4net/commit/4dadc4e3
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4net/tree/4dadc4e3
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4net/diff/4dadc4e3

Branch: refs/heads/feature/netstandard-2.0
Commit: 4dadc4e3a00c55e277b229769c653c6e582f804a
Parents: 62a10f7
Author: Charles Lowell <ch...@microsoft.com>
Authored: Wed Jun 21 20:29:05 2017 -0700
Committer: Charles Lowell <ch...@microsoft.com>
Committed: Wed Aug 16 09:52:12 2017 -0700

----------------------------------------------------------------------
 src/AssemblyInfo.cs | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/4dadc4e3/src/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/src/AssemblyInfo.cs b/src/AssemblyInfo.cs
index bd1f560..0ed4689 100644
--- a/src/AssemblyInfo.cs
+++ b/src/AssemblyInfo.cs
@@ -106,8 +106,11 @@ using System.Runtime.CompilerServices;
 [assembly: AssemblyInformationalVersionAttribute("2.0.9.0-.NET")]
 [assembly: AssemblyTitle("Apache log4net for .NET Framework")]
 #elif (NETSTANDARD1_3)
-[assembly: AssemblyInformationalVersionAttribute("2.0.9.0-.NET Core 1.0")]
-[assembly: AssemblyTitle("Apache log4net for .NET Core 1.0")]
+[assembly: AssemblyInformationalVersionAttribute("2.0.9.0-.NET Standard 1.3")]
+[assembly: AssemblyTitle("Apache log4net for .NET Standard 1.3")]
+#elif (NETSTANDARD2_0)
+[assembly: AssemblyInformationalVersionAttribute("2.0.9.0-.NET Standard 2.0")]
+[assembly: AssemblyTitle("Apache log4net for .NET Standard 2.0")]
 #elif (NETCF)
 [assembly: AssemblyInformationalVersionAttribute("2.0.9.0-.NETCF")]
 [assembly: AssemblyTitle("Apache log4net for .NET Compact Framework")]