GNUArgParser 1.0.0

dotnet add package GNUArgParser --version 1.0.0
                    
NuGet\Install-Package GNUArgParser -Version 1.0.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="GNUArgParser" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="GNUArgParser" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="GNUArgParser" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add GNUArgParser --version 1.0.0
                    
#r "nuget: GNUArgParser, 1.0.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.
#:package GNUArgParser@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=GNUArgParser&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=GNUArgParser&version=1.0.0
                    
Install as a Cake Tool

GNUArgParser

A C# library for parsing GNU command-line arguments.

Supported types

Currently the library supports these types of arguments:

# single-character arguments
foo -b -r
foo -br
# long arguments
foo --bar
# long arguments with options
foo --bar=egg
# of course, therby can all be mixed together
foo -rb --num=41 --lorem-ipsum 

How to use

To parse the arguments into easily accessible collections, use the ArgumentParser class and pass the builtin args variable:

Arguments arg = ArgumentParser.Parse(args);

If multiple instances of the same argument is specified, the first one has priority.

Now you can access them with 3 collections:

  • Flags for single-character and long arguments without options. String array.
  • Options for long arguments with options. Dictionary, where (eg. --foo=bar):
    • key - name (foo)
    • value - option (bar)
  • Other for every element of the array that wasn't detected as an argument (like help in foo help). String array.

Aliases

You can set up aliases for some arguments to act as other ones. This is done with the ArgumentParser.Aliases dictionary.

  • key - the name of the alias
  • value - the name of the argument that the alias will map to

For example, if we define the alias dictionary as follows:

ArgumentParser.Aliases = new() 
{
    { "bar", "b" }  
};

Then execute foo --bar, the Flags array will contain b.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net9.0

    • No dependencies.

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.0.0 243 5/25/2025