McMaster.Extensions.CommandLineUtils 2.3.0-beta

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.
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-beta
dotnet add package McMaster.Extensions.CommandLineUtils --version 2.3.0-beta
<PackageReference Include="McMaster.Extensions.CommandLineUtils" Version="2.3.0-beta" />
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-beta
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes


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

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
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.
Microsoft Azure SDK for .NET
Cross platform code coverage for .NET

Version History

Version Downloads Last updated
2.4.2 5,996 9/24/2019
2.4.1 3,365 9/18/2019
2.4.0 1,860 9/14/2019
2.3.4 117,219 4/11/2019
2.3.3 43,812 3/11/2019
2.3.2 63,427 2/5/2019
2.3.1 18,421 1/19/2019
2.3.0 53,120 1/1/2019
2.2.5 234,529 7/2/2018
2.2.4 42,234 5/25/2018
2.2.3 19,195 5/11/2018
2.2.2 23,539 4/28/2018
2.2.1 9,927 4/11/2018
2.2.0 116,056 3/31/2018
2.2.0-rc 826 3/23/2018
2.2.0-beta 563 3/8/2018
2.2.0-alpha 536 2/20/2018
2.1.1 57,884 12/28/2017
2.1.0 2,025 12/13/2017
2.1.0-rc 511 12/7/2017
2.1.0-beta 1,473 11/22/2017
2.1.0-alpha 422 11/11/2017
2.0.1 5,755 10/13/2017
2.0.0 4,642 9/16/2017
Show less