Command Line Parser Library 1.9.71.2 stable ------------------------------------------ Giacomo Stelluti Scala (gsscoder@gmail.com) GitHub (Latest Sources, Updated Docs): https://github.com/gsscoder/commandline Codeplex (Binary Downloads): http://commandline.codeplex.com/ Remarks: - IParser and IParserSettings interface were removed. Upgrading from < 1.9.6.1 rc1: ----------------------------- Now CommandLine.Parser is defiend as: interface CommandLine.Parser { bool ParseArguments(string[] args, object options); bool ParseArguments(string[] args, object options, Action onVerbCommand); bool ParseArgumentsStrict(string[] args, object options, Action onFail = null); bool ParseArgumentsStrict(string[] args, object options, Action onVerbCommand, Action onFail = null); } Please refer to wiki (https://github.com/gsscoder/commandline/wiki). For help screen in verb command scenario use new HelpText::AutoBuild(object,string). Upgrading from < 1.9.4.91 versions: ----------------------------------- - Use System.Char for short name: [Option('o', "my-option", DefaultValue=10, HelpText="This is an option!")] public int MyOption { get; set; } - Receive parsing errors without CommandLineOptionsBase (removed): public class Options { [ParserState] public IParserState LastParserState { get; set; } } - Types rename: MultiLineTextAttribute -> MultilineTextAttribute (first 'L' -> lowercase) CommandLineParser -> Parser (suggestion: qualify with namespace -> CommandLine.Parser). ICommandLineParser -> IParser CommandLineParserSettings -> ParserSettings CommandLineParserException -> ParserException Upgrading from 1.8.* versions: ------------------------------ The major API change is that all attributes that inherits from BaseOptionAttribute now apply only to properties. Fields are no longer supported. Old Code: --------- class Options { [Option("o", "my-option", HelpText="This is an option!")] public int MyOption = 10; } New Code: --------- class Options { [Option("o", "my-option", DefaultValue=10, HelpText="This is an option!")] public int MyOption { get; set; } } As you can see I've added the new DefaultValue property to help you initialize properties. Shortcut for Help Screen ------------------------ [HelpOption] public string GetUsage() { return HelpText.AutoBuild(this, (HelpText current) => HelpText.DefaultParsingErrorsHandler(this, current)); } Note: ----- If you don't use mutually exclusive options, now there's a singleton built for common uses: if (CommandLineParser.Default.ParseArguments(args, options)) { // consume values here } Have fun!