Sharpify.CommandLineInterface 1.2.0

dotnet add package Sharpify.CommandLineInterface --version 1.2.0
NuGet\Install-Package Sharpify.CommandLineInterface -Version 1.2.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Sharpify.CommandLineInterface" Version="1.2.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Sharpify.CommandLineInterface --version 1.2.0
#r "nuget: Sharpify.CommandLineInterface, 1.2.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Sharpify.CommandLineInterface as a Cake Addin
#addin nuget:?package=Sharpify.CommandLineInterface&version=1.2.0

// Install Sharpify.CommandLineInterface as a Cake Tool
#tool nuget:?package=Sharpify.CommandLineInterface&version=1.2.0

CHANGELOG

Version 1.2.0

  • Arguments's internal copy of the parsed args is now an array, this change was necessary to avoid special cases where the backing array was garbage collected leaving a phantom view. To get a read only copy you can use .ArgsAsSpan or .ArgsAsMemory according to your preference or use case.
  • Improved Parser's mapping function's stability, and also further reworked it to allow positional arguments after named ones, now positional arguments can be anywhere.
    • A special case that needs consideration before usage is switches, i.e boolean toggle parameters, as they look like named parameters without values. If such "switch" is followed by a regular value, it will be regarded as a named parameter and its value, as opposed to a switch and a positional argument. Keep this in mind when you decide the arrangement of input arguments, to ensure your input works as intended.
    • Switches work well, either when they are followed by other named arguments, or other switches. For simplicity, it is best to leave them as the last arguments.
  • Added a new SynchronousCommand as an alternative to Command, it is basically syntactic sugar that makes it so you can implement an Execute method instead, in which you can return an int, when async is not needed, this can save multiple lines of code that just wrap ints in ValueTask.FromResult which can be quite verbose.
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.2.0 96 3/13/2024
1.1.0 90 1/25/2024
1.0.5 82 1/22/2024
1.0.4 82 1/20/2024
1.0.3 76 1/20/2024
1.0.1 95 1/15/2024
1.0.0 84 1/15/2024