McMaster.Extensions.CommandLineUtils 2.3.0-rc.460

Command-line parsing API and utilities for console applications.

Commonly used types:


A community-maintained fork of Microsoft.Extensions.CommandLineUtils, plus many enhancements.

This is a prerelease version of McMaster.Extensions.CommandLineUtils.
There is a newer version of this package available.
See the version list below for details.
This package has a SemVer 2.0.0 package version.
This package will only be available to download with SemVer 2.0.0 compatible NuGet clients, such as Visual Studio 2017 (version 15.3) and above or NuGet client 4.3.0 and above. Read more
The owner has unlisted this package. This could mean that the package is deprecated or shouldn't be used anymore.
Install-Package McMaster.Extensions.CommandLineUtils -Version 2.3.0-rc.460
dotnet add package McMaster.Extensions.CommandLineUtils --version 2.3.0-rc.460
<PackageReference Include="McMaster.Extensions.CommandLineUtils" Version="2.3.0-rc.460" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add McMaster.Extensions.CommandLineUtils --version 2.3.0-rc.460
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

2.3.0 Release Candidate - no more changes are expected between this release and 2.3.0 unless there is a bad bug.

## Enhancements:

* Support the POSIX convention for cluster multiple options. For example, `-ixd` is treated the same as `-i -x -d`.

* @bjorg: support SingleOrNoValue notation. `--option[:value]`

* New type: `Pager`. Provides a simple interaction model for displaying console output in a pager.

* Display help text using the `less` pager on macOS/Linux.

* Make suggestions when invalid options or commands are used, but there is a valid one that is similar.
 (Thanks to @MadbHatter for doing the initial work on this.)

* Add support for subcommand aliases. Commands can be given multiple names.
 [Command("organization", "org", "o")]
 public class OrgCommand { }

* Obsolete the constructor of `[Subcommand]` which takes a string.

* Infer subcommand names from the type name
 public class Git { }

 public class AddCommand { } // subcommand name = "add"

* @lvermeulen: Sort subcommands by name in help text. This can be disabled with `DefaultHelpTextGenerator.SortCommandsByName`.

* @jcaillon: Add API for `UnrecognizedCommandParsingException` which includes suggestions for similar options or commands.

* @TheConstructor: add CommandLineApplication.GetValidationResult()

## Bugs fixed:

* Duplicate subcommand names used to cause undefined behavior. Now, attempting to add a duplicate subcommand name or aliases will
 cause the library to throw before the app can execute.

* Fix bug in subcommand name inference. When not specified, the subcommand always matched the entry assembly name.
 In this update, this convention only applies to the parent command.

* Add generic overloads of `.IsRequired()` for `CommandOption<T>` and `CommandArgument<T>`.

* @handcraftedsource: handled nested HelpOptions (fixes #86 - InvalidOperationException when multiple help options were defined)

See more details here:

Showing the top 10 GitHub repositories that depend on McMaster.Extensions.CommandLineUtils:

Repository Stars
.NET Decompiler
OpenID Connect and OAuth 2.0 Framework for ASP.NET Core
Powerful .NET library for benchmarking
Microsoft Quantum Development Kit Samples
ACID Document Database
xunit/xunit is a free, open source, community-focused unit testing tool for the .NET Framework.
Write C# apps with a text editor, nuget and the power of Roslyn!
Fluent migrations framework for .NET
CacheManager is an open source caching abstraction layer for .NET written in C#. It supports various cache providers and implements many advanced features.
Cross platform code coverage for .NET

Version History

Version Downloads Last updated
2.4.0 104 9/14/2019
2.3.4 93,329 4/11/2019
2.3.3 39,992 3/11/2019
2.3.2 59,439 2/5/2019
2.3.1 16,503 1/19/2019
2.3.0 49,302 1/1/2019
2.2.5 223,720 7/2/2018
2.2.4 40,515 5/25/2018
2.2.3 18,930 5/11/2018
2.2.2 21,352 4/28/2018
2.2.1 9,744 4/11/2018
2.2.0 111,585 3/31/2018
2.2.0-rc 811 3/23/2018
2.2.0-beta 549 3/8/2018
2.2.0-alpha 523 2/20/2018
2.1.1 55,385 12/28/2017
2.1.0 1,945 12/13/2017
2.1.0-rc 499 12/7/2017
2.1.0-beta 1,457 11/22/2017
2.1.0-alpha 407 11/11/2017
2.0.1 5,718 10/13/2017
2.0.0 4,513 9/16/2017
Show less