commandlineparser / commandlineparser/commandline

ParseArguments<T> with only a single TOptions doesnt respect Verb attribute

未關閉
#384 3 則留言 3 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
C#
星號
4.8k
分支
478
PR 合併指標
30 天內沒有已合併 PR

描述

When MapResults is presented with only a single Verb-style Options class, the verb is not properly popped off the args stack.

Following code doesnt parse commandline `"myprogram pack MyProjectfile.csproj"`. You end up with `PackOptions.ProjectFile == "pack"` Works fine if additional Options classes with `VerbAttribute` specified.

```c#
public static class Program
{
public static void Main(string[] args)
{
int exitcode = CommandLine.Parser.Default
.ParseArguments(args)
.MapResult(
(PackOptions opts) => 0, //basically do nothing for sample
(parserErrors) => 1
);
}
}

[Verb("pack")]
public class PackOptions
{
[Value(0)]
public string ProjectFile { get; set; }

[Option("outputPath")]
public string OutputPath { get; set; }
}
```

created a dotnetfiddle: https://dotnetfiddle.net/IbwLbX

貢獻指南

這個儲存庫沒有索引到貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。