All Versions
Latest Version
Avg Release Cycle
32 days
Latest Release

Changelog History
Page 1

  • v2.2.5 Changes

    • ⚡️ Updated default value resolution for the application executable name. It will now resolve to myapp.exe instead of dotnet myapp.dll when the application is launched through the EXE apphost on Windows. On other platforms, or when running the application through the .NET CLI, the behavior will be the same as before.
  • v2.2.4 Changes

    • ➕ Added more contextual information to analyzer diagnostics.
    • 🛠 Fixed an issue where the analyzer incorrectly reported an error on converters that didn't directly match the target type but were compatible through known built-in conversions.
    • 🛠 Fixed an issue where MSBuild produced a lot of analyzer-related warnings in certain circumstances.
  • v2.2.3 Changes

    • 🔄 Changed method signature of IConsole.ReadKey() to return ConsoleKeyInfo instead of void. The return type was originally defined as void by mistake. This change is source-backwards-compatible but may break on binary level if you were previously calling this method indirectly (i.e. through a library).
    • ➕ Added FakeConsole.EnqueueKey(...) to facilitate the testing of IConsole.ReadKey(). You can use this method to simulate key presses in your application.
    • Extended analyzers that verify the correctness of specified converters and validators. They now also ensure that the specified types are compatible with the type of the underlying property.
    • 👌 Improved diagnostics produced by analyzers. Where relevant, highlighted code is now limited to the property or type identifier, instead of the whole property or type declaration. Also extended the diagnostic messages with additional information.
    • 🛠 Fixed an issue where throwing an exception inside a constructor of a command type resulted in an unrelated error message about the absence of a parameterless constructor.
  • v2.2.2 Changes

    • 🛠 Fixed an issue where ConsoleWriter and ConsoleReader were not properly thread-safe.
    • 🛠 Fixed an issue where the analyzer failed to load under certain circumstances when running inside Visual Studio.
  • v2.2.1 Changes

    • 🛠 Fixed an issue which caused help text to not show default values for optional parameters. (Thanks @AliReZa Sabouri)
  • v2.2 Changes

    • ➕ Added support for optional parameters. A parameter can be marked as optional by setting IsRequired = false on the attribute. Only one parameter is allowed to be optional and such parameter must be the last in order. (Thanks @AliReZa Sabouri)
    • 🛠 Fixed an issue where parameters and options bound to properties implemented as default interface members were not working correctly. (Thanks @AliReZa Sabouri)
  • v2.1 Changes

    • ➕ Added IConsole.Clear() with corresponding implementations in SystemConsole, FakeConsole, and FakeInMemoryConsole. (Thanks @Alex Rosenfeld)
    • ➕ Added IConsole.ReadKey() with corresponding implementations in SystemConsole, FakeConsole, and FakeInMemoryConsole. (Thanks @Alex Rosenfeld)
    • 🛠 Fixed an issue that caused parameters to appear out of order in the usage format section of the help text. (Thanks @David Fallah)
  • v2.0.6 Changes

    • 🛠 Fixed an issue where an exception thrown via reflection during parameter or option binding resulted in Exception has been thrown by the target of an invocation error instead of a more useful message. Such exceptions will now be unwrapped to provide better user experience.
  • v2.0.5 Changes

    • 🛠 Fixed an issue where calling IConsole.Output.Encoding.EncodingName and some other members threw an exception.
    • ➕ Added readme file to the package.
  • v2.0.4 Changes

    • 🛠 Fixed an issue where output and error streams in SystemConsole defaulted to UTF8 encoding with BOM when the application was running with UTF8 codepage. ConsoleWriter will now discard preamble from the specified encoding. This fix brings the behavior of SystemConsole in line with .NET's own System.Console which also discards preamble for output and error streams.
    • 🛠 Fixed an issue where help text tried to show default values for parameters and options whose type does not override ToString() method.
    • 🛠 Fixed an issue where help text didn't show default values for parameters and options whose type is an enumerable of nullable enums. (Thanks @Robert Dailey)
    • 🛠 Fixed an issue where specific parts of the help text weren't legible in some terminals due to low color resolution. Removed the usage of ConsoleColor.DarkGray in help text.