Я создал небольшой проект, в котором используется библиотека CommandLineParser .
Я взял небольшой фрагмент кода из руководства C # Быстрый старт :
using System;
using CommandLine;
namespace QuickStart
{
class Program
{
public class Options
{
[Option('v', "verbose", Required = false, HelpText = "Set output to verbose messages.")]
public bool Verbose { get; set; }
}
static void Main(string[] args)
{
Parser.Default.ParseArguments<Options>(args)
.WithParsed<Options>(o =>
{
if (o.Verbose)
{
Console.WriteLine($"Verbose output enabled. Current Arguments: -v {o.Verbose}");
Console.WriteLine("Quick Start Example! App is in Verbose mode!");
}
else
{
Console.WriteLine($"Current Arguments: -v {o.Verbose}");
Console.WriteLine("Quick Start Example!");
}
});
}
}
}
Я могу запустить программу через командную строку с
dotnet CommandLineParserTestProject.dll
Вывод соответствует ожидаемому:
Current Arguments: -v False
Quick Start Example!
Когда я тогда поставлю:
dotnet CommandLineParserTestProject.dll -v true
Выход снова, как и ожидалось:
Verbose output enabled. Current Arguments: -v True
Quick Start Example! App is in Verbose mode!
Теперь проблема:
После этих двух команд сверху я ввожу:
dotnet CommandLineParserTestProject.dll -v false
но результат все равно:
Verbose output enabled. Current Arguments: -v True
Quick Start Example! App is in Verbose mode!
Только когда я ввожу dotnet CommandLineParserTestProject.dll false
, оно меняется, dotnet CommandLineParserTestProject.dll -v false
, похоже, не работает.
Кто-нибудь знает, почему это происходит?