This is an automated email from the ASF dual-hosted git repository.

FreeAndNil pushed a commit to branch Feature/305-dotnet-10-build-cleanup
in repository https://gitbox.apache.org/repos/asf/logging-log4net.git

commit 9648bcaa6ef868cca4221967401047c76302144d
Author: Jan Friedrich <[email protected]>
AuthorDate: Tue Aug 4 23:26:06 2026 +0200

    Build net4x without Mono
    
      Remove MonoForFramework.targets and its FrameworkPathOverride handling.
      The net462/net472 targets compile against the   
Microsoft.NETFramework.ReferenceAssemblies packages that the .NET SDK
      already references implicitly, so Mono is only needed to run .NET
      Framework assemblies - not to build them (and mono is now deprecated by 
Microsoft).
---
 src/MonoForFramework.targets                         | 20 --------------------
 src/changelog/3.4.0/305-build-net4x-without-mono.xml | 14 ++++++++++++++
 src/log4net/log4net.csproj                           |  1 -
 3 files changed, 14 insertions(+), 21 deletions(-)

diff --git a/src/MonoForFramework.targets b/src/MonoForFramework.targets
deleted file mode 100644
index 81b01e2b..00000000
--- a/src/MonoForFramework.targets
+++ /dev/null
@@ -1,20 +0,0 @@
-<Project>
-  <PropertyGroup Condition="$(TargetFramework.StartsWith('net4')) and '$(OS)' 
== 'Unix'">
-    <!-- When compiling .NET SDK 2.0 projects targeting .NET 4.x on Mono using 
'dotnet build' you -->
-    <!-- have to teach MSBuild where the Mono copy of the reference 
asssemblies is -->
-    <!-- Look in the standard install locations -->
-    <BaseFrameworkPathOverrideForMono 
Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND 
EXISTS('/Library/Frameworks/Mono.framework/Versions/Current/lib/mono')">/Library/Frameworks/Mono.framework/Versions/Current/lib/mono</BaseFrameworkPathOverrideForMono>
-    <BaseFrameworkPathOverrideForMono 
Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND 
EXISTS('/usr/lib/mono')">/usr/lib/mono</BaseFrameworkPathOverrideForMono>
-    <BaseFrameworkPathOverrideForMono 
Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND 
EXISTS('/usr/local/lib/mono')">/usr/local/lib/mono</BaseFrameworkPathOverrideForMono>
-    <!-- If we found Mono reference assemblies, then use them -->
-    <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != 
'' AND '$(TargetFramework)' == 
'net462'">$(BaseFrameworkPathOverrideForMono)/4.6.2-api</FrameworkPathOverride>
-    <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != 
'' AND '$(TargetFramework)' == 
'net47'">$(BaseFrameworkPathOverrideForMono)/4.7-api</FrameworkPathOverride>
-    <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != 
'' AND '$(TargetFramework)' == 
'net471'">$(BaseFrameworkPathOverrideForMono)/4.7.1-api</FrameworkPathOverride>
-    <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != 
'' AND '$(TargetFramework)' == 
'net472'">$(BaseFrameworkPathOverrideForMono)/4.7.2-api</FrameworkPathOverride>
-    <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != 
'' AND '$(TargetFramework)' == 
'net48'">$(BaseFrameworkPathOverrideForMono)/4.8-api</FrameworkPathOverride>
-    <EnableFrameworkPathOverride 
Condition="'$(BaseFrameworkPathOverrideForMono)' != 
''">true</EnableFrameworkPathOverride>
-    <!-- Add the Facades directory.  Not sure how else to do this. Necessary 
at least for .NET 4.5 -->
-    <AssemblySearchPaths Condition="'$(BaseFrameworkPathOverrideForMono)' != 
''">$(FrameworkPathOverride)/Facades;$(AssemblySearchPaths)</AssemblySearchPaths>
-  </PropertyGroup>
-</Project>
-
diff --git a/src/changelog/3.4.0/305-build-net4x-without-mono.xml 
b/src/changelog/3.4.0/305-build-net4x-without-mono.xml
new file mode 100644
index 00000000..260bb2c6
--- /dev/null
+++ b/src/changelog/3.4.0/305-build-net4x-without-mono.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<entry xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xmlns="https://logging.apache.org/xml/ns";
+       xsi:schemaLocation="https://logging.apache.org/xml/ns 
https://logging.apache.org/xml/ns/log4j-changelog-0.xsd";
+       type="changed">
+  <issue id="305" link="https://github.com/apache/logging-log4net/pull/305"/>
+  <description format="asciidoc">
+    Mono is no longer required to build the `net462` and `net472` targets on 
Linux and macOS.
+    `MonoForFramework.targets` and its `FrameworkPathOverride` handling were 
removed in favour of
+    the `Microsoft.NETFramework.ReferenceAssemblies` packages that the .NET 
SDK already references
+    implicitly. Mono would only be needed to run .NET Framework assemblies, so 
the `net462` test
+    target is now skipped off Windows, where VSTest cannot host it
+  </description>
+</entry>
diff --git a/src/log4net/log4net.csproj b/src/log4net/log4net.csproj
index 3f78b5ff..774b00aa 100644
--- a/src/log4net/log4net.csproj
+++ b/src/log4net/log4net.csproj
@@ -101,7 +101,6 @@ log4net is designed with two distinct goals in mind: speed 
and flexibility
     <PackageReference Include="Microsoft.SourceLink.GitHub" 
Version="$(MicrosoftSourceLinkGitHubPackageVersion)" PrivateAssets="All" />
     <PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers" 
Version="$(MicrosoftNetAnalyzersPackageVersion)" PrivateAssets="All" 
IncludeAssets="All" />
   </ItemGroup>
-  <Import Project="../MonoForFramework.targets" />
   <Target Name="_ResolveCopyLocalNuGetPackagePdbsAndXml" 
Condition="$(CopyLocalLockFileAssemblies) == true" 
AfterTargets="ResolveReferences">
     <!-- "Workaround" for missing '.pdb'-Files from NuGet Packages -->
     <!-- https://github.com/dotnet/sdk/issues/1458#issuecomment-420456386 -->

Reply via email to