[ 
https://issues.apache.org/jira/browse/LOG4NET-567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16123062#comment-16123062
 ] 

Dominik Psenner commented on LOG4NET-567:
-----------------------------------------

We do not have to build everything on one machine. Please have a look at the 
recent work I've done to build all targets except mono-2.0 on jenkins.

I like the idea of having one project file, but note also that the nant scripts 
do a lot. We will have to reimplement a great part of that functionality, or 
would the project file only contain the targets to build the codebase?

One thing that in my opinion definitely needs to be changed is that log4net 
does not use nuget to reference and restore its dependencies (nunit). Back then 
this functionality was not available, but changing this would make this a lot 
easier and fix some issues.

Last but not least I have set up the netstandard target to also test the 
assembly by executing dotnet test but it appears that it does not actually run 
the tests. Would you please have a look, since you are more experienced with 
netstandard?

If you clone the repository on github, base your modifications on the develop 
branch and file a pull request, jenkins should kick in and merge and build the 
pull request. This way you can also modify the Jenkinsfile and thus also the 
way how jenkins builds all the targets.

> Use new csproj format to target multiple frameworks
> ---------------------------------------------------
>
>                 Key: LOG4NET-567
>                 URL: https://issues.apache.org/jira/browse/LOG4NET-567
>             Project: Log4net
>          Issue Type: Improvement
>            Reporter: Peter Jas
>   Original Estimate: 4h
>  Remaining Estimate: 4h
>
> I have noticed that recently all the csprojs are converged to one monolithic 
> "old-style" csproj. It is an improvement but what about xproj and .NET Core?
> Instead of having xproj+project.json and csproj with two solution files and 
> multiple packages.config files in the repo, use modern csproj format, which 
> is compact, clear, able to target multiple platforms at once, does not 
> require any additional packages.config etc. file.
> bq. The idea is to remove netstandard directory from the root and maintain 
> only new-format csproj file.
> Additional advantange include easy to package for _all supported platforms_ 
> with ONE command: [{{dotnet 
> pack}}|https://docs.microsoft.com/en-us/dotnet/articles/core/tools/dotnet-pack].
> Example: 
> https://github.com/JamesNK/Newtonsoft.Json/blob/b311d91/Src/Newtonsoft.Json/Newtonsoft.Json.csproj.
>  James is supporting the whole JSON.NET for .NET Framework 2.0 to .NET 
> Standard 1.3 with a single new-csproj file.
> Sometimes we want to explicitly target mono, other times the neutral grouds 
> like PCL or NetStandard1.0 do the job. An example of explict targeting:
> {code:xml}
> <TargetFrameworks>net45;netstandard1.1;netstandard1.3;win81;MonoAndroid7;Xamarin.iOS10</TargetFrameworks>
> {code}
> see this example in action: 
> https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/blob/0ae178520/src/Microsoft.Identity.Client/Microsoft.Identity.Client.csproj
> Also See: 
> https://docs.microsoft.com/en-us/dotnet/core/tools/project-json-to-csproj
> and http://www.natemcmaster.com/blog/2017/03/09/vs2015-to-vs2017-upgrade/
> ---
> You can also try creating a new solution in VS2017 with dotnet core project 
> to get familiar with new csproj format. If you are not using VS2017 or VS 
> Code, then dotnet-cli can give a quick sneak peak:
> {code}
> mkdir test && cd $_
> dotnet new classlib -n mylib
> dotnet new console -n myapp
> dotnet add myapp.csproj reference mylib.csproj
> # dotnet restore && dotnet run
> {code}
> Then see the structure of mylib.csproj and myapp.csproj.
> ---
> Issues with new project system (which supports the new-csproj structure) can 
> be reported at https://github.com/dotnet/project-system. Note that in that 
> repo 15.3 milestone is next in line which will bring new features and fix 
> some existing complains: 
> https://github.com/dotnet/project-system/milestone/7. However the current 
> 15.2 version is working out fine for us in production.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to