Tyrrrz / CliFx

Class-first framework for building command-line interfaces
MIT License
1.5k stars 61 forks source link

Drop support for targets below net5.0 #116

Closed Tyrrrz closed 1 year ago

Tyrrrz commented 2 years ago

The plan is to drop support for targets below net5.0 in the next major bump. Main reasoning is that targeting older frameworks is holding this library back from making use of some of newer features that cannot be reasonably pollyfilled. Additionally, it will simplify the code quite a bit.

This issue is open for discussion if you have any comments or questions.

rcdailey commented 2 years ago

Do you plan to document (or already have documented) a table of version compatibility for CliFx? For example, I have a project at work locked into .NET 4.8 for now. I'd like to know the newest compatible version of CliFx for this framework.

Tyrrrz commented 2 years ago

Do you plan to document (or already have documented) a table of version compatibility for CliFx? For example, I have a project at work locked into .NET 4.8 for now. I'd like to know the newest compatible version of CliFx for this framework.

There would be a link in the readme pointing to the last version that supports .NET Fx. Do you have any plants to migrate to .NET Core?

rcdailey commented 2 years ago

I'd love more than anything to get off of .NET 4.8 but you know how slow things move sometimes in a corporate environment...

Tyrrrz commented 2 years ago

I see. In any case, there aren't any breaking changes in the backlog, so .NET Framework drop won't happen very soon. It will be most likely packaged in the next major version with other breaking changes, whenever that happens.

rcdailey commented 2 years ago

I was seeing build errors about the Microsoft CodeAnalyzers package missing when I used v2.2.1. Going back to v1.6 fixed it. So I simply assumed as of v2.0 you already started this.

Tyrrrz commented 2 years ago

Hm, no, that would be unrelated to that. What is the error exactly?

rcdailey commented 2 years ago

One of many:

CSC: Error CS8032 : An instance of analyzer CliFx.Analyzers.CommandMustBeAnnotatedAnalyzer cannot be created from C:\Users\robert.nuget\packages\clifx\2.2.1\analyzers\dotnet\cs\CliFx.Analyzers.dll : Could not load file or assembly 'Microsoft.CodeAnalysis, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified..

My CSPROJ:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net48</TargetFramework>
    <ImplicitUsings>disable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <LangVersion>latest</LangVersion>
    <SignAssembly>false</SignAssembly>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="CliFx" Version="2.2.1" />
    <PackageReference Include="Core.System.Configuration.Install" Version="1.1.0" />
    <PackageReference Include="Microsoft.Win32.Registry" Version="5.0.0" />
  </ItemGroup>

</Project>
Tyrrrz commented 2 years ago

Thanks for letting me know, I'll try to fix it in next release. You might be able to work around this by adding a package reference to Microsoft.CodeAnalysis.CSharp manually.

Tyrrrz commented 2 years ago

@rcdailey try the latest release, see if it works for you

Tyrrrz commented 2 years ago

FYI, decided to postpone this indefinitely, but whenever 3.x comes, it will most likely include this breaking change.

Tyrrrz commented 1 year ago

Closing for now because there are no active plans for this