McMaster.Extensions.CommandLineUtils 2.2.0
Command-line parsing API. A community-maintained fork of Microsoft.Extensions.CommandLineUtils, plus extras.
Commonly used types:
McMaster.Extensions.CommandLineUtils.CommandLineApplication
McMaster.Extensions.CommandLineUtils.CommandOption
McMaster.Extensions.CommandLineUtils.IConsole
McMaster.Extensions.CommandLineUtils.ArgumentEscaper
No packages depend on McMaster.Extensions.CommandLineUtils.
New features:
- Added more validation attributes.
- Add the `[FileExists]` attribute
- Add the `[FileOrDirectoryExists]` attribute
- Add the `[DirectoryExists]` attribute
- Add the `[LegalFilePath]` attribute
- Add the `[AllowedValues]` attribute
- Added a new, fluent API for validation.
- Added `Option().Accepts()` and `Argument().Accepts()`
- Add `.ExistingFile()`
- Add `.ExistingFileOrDirectory()`
- Add `.ExistingDirectory()`
- Add `.EmailAddress()`
- Add `.LegalFilePath()`
- Add `.MinLength(length)`
- Add `.MaxLength(length)`
- Add `.RegularExpression(pattern)`
- Add `.Values(string[] allowedValues)`
- Add `.Range(min, max)`
- Add `CommandOptionType.SingleOrNoValue`.
- Options of this type can be a switch, or have a value but only in the form `--param:value` or `--param=value`.
- Support mapping `ValueTuple<bool,T>` to `CommandOptionType.SingleOrNoValue`
- Generic commands, options, and arguments
- Added `CommandLineApplication<TModel>`. This allows associating an application with a specific .NET type
- Add support for `Option<T>` and `Argument<T>`
- Convention API
- Adds support for writing your own conventions to convert command line arguments into a .NET type
- Add API to use a dozen of built-in conventions
Other enhancements:
- Support parsing enums
- @rmcc13 - `HelpOption` can be set to be inherited by all subcommands
- @atruskie - Support for parsing double and floats
- @sebastienros - Support for case-insensitive options
- @atruskie: Add support for user-defined value parsers using `IValueParser` and `CommandLineApplication.ValueParsers`.
- Add support for constructor injection and dependency injection by providing a custom service provider
- Parse these values to boolean: T, t, F, f, 0, 1
- Add `VersionOptionFromMember` to use a property or method as the source of version information
See more details here: https://github.com/natemcmaster/CommandLineUtils/blob/master/CHANGELOG.md#v220
.NET Framework 4.5
- System.ValueTuple (>= 4.4.0)
.NET Standard 1.6
- System.ComponentModel.Annotations (>= 4.1.0)
- System.Diagnostics.Process (>= 4.1.0)
- System.Threading.Thread (>= 4.0.0)
- System.ValueTuple (>= 4.4.0)
.NET Standard 2.0
- System.ComponentModel.Annotations (>= 4.4.1)
Version | Last updated |
---|---|
4.1.1 | 03/30/2025 |
4.1.0 | 08/26/2023 |
4.0.2 | 11/19/2022 |
4.0.1 | 03/30/2025 |
4.0.0 | 12/27/2021 |
4.0.0-beta.74 | 03/30/2025 |
4.0.0-beta.56 | 03/30/2025 |
3.1.0 | 01/10/2021 |
3.1.0-rc.371 | 04/09/2025 |
3.1.0-beta.356 | 03/30/2025 |
3.1.0-beta.336 | 04/02/2025 |
3.0.0 | 03/29/2020 |
3.0.0-rc.289 | 03/21/2020 |
3.0.0-alpha.268 | 04/06/2025 |
2.6.0 | 03/08/2020 |
2.5.1 | 03/30/2025 |
2.5.0 | 01/02/2020 |
2.4.4 | 03/30/2025 |
2.4.3 | 11/01/2019 |
2.4.2 | 03/23/2025 |
2.4.1 | 09/18/2019 |
2.4.0 | 09/14/2019 |
2.3.4 | 04/11/2019 |
2.3.3 | 04/07/2025 |
2.3.2 | 03/30/2025 |
2.3.1 | 01/19/2019 |
2.3.0 | 01/01/2019 |
2.2.5 | 07/02/2018 |
2.2.4 | 05/25/2018 |
2.2.3 | 05/11/2018 |
2.2.2 | 03/30/2025 |
2.2.1 | 04/11/2018 |
2.2.0 | 03/30/2025 |
2.2.0-rc | 03/23/2018 |
2.2.0-beta | 03/08/2018 |
2.2.0-alpha | 03/30/2025 |
2.1.1 | 03/30/2025 |
2.1.0 | 12/13/2017 |
2.1.0-rc | 12/07/2017 |
2.1.0-beta | 04/05/2025 |
2.1.0-alpha | 11/11/2017 |
2.0.1 | 10/13/2017 |
2.0.0 | 09/16/2017 |