commandlineparser / commandline

The best C# command line parser that brings standardized *nix getopt style, for .NET. Includes F# support
MIT License
4.46k stars 473 forks source link

`VerbAttribute` has unnecessary breaking changes between 2.8.0 and 2.9.1 #919

Open jswolf19 opened 4 months ago

jswolf19 commented 4 months ago

Describe the bug VerbAttribute's constructor signature has changed between 2.8.0 and 2.9.1. There is a default value for the new alias parameter, so recompilation of the same source code is possible without error. However, upgrading without rebuilding is not possible.

To Reproduce Steps to reproduce the behavior:

  1. Create an exe depending on CommandLineParser 2.8.0 that uses VerbAttribute
  2. Replace CommandLineParser 2.8.0 with CommandLineParser 2.9.1 in the bin folder
  3. Execute the exe
  4. See error

Additional context When having multiple exes in the same folder, all exes need to be rebuilt and updated simultaneously along with updating CommandLineParser in order to upgrade.

Reintroducing the 2.8.0 VerbAttribute constructor, (and possibly labeling it as obsolete), would allow assemblies built with version 2.8.0 and assemblies built with version 2.9.1 to both work with the new version (possibly requiring binding redirects).

jswolf19 commented 4 months ago

I would be willing to make a PR for this change if necessary.