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 -->
