命令行解析器 NUGet 包让简单的示例程序工作
Posted
技术标签:
【中文标题】命令行解析器 NUGet 包让简单的示例程序工作【英文标题】:Command Line Parser NUGet Package getting simple example program to work 【发布时间】:2020-03-15 09:24:23 【问题描述】:我发现这非常具有挑战性,感谢您愿意为我提供的任何帮助。
目前我正在尝试实现命令行解析器 (https://github.com/commandlineparser/commandline)。
我只想让一个基本的示例应用程序正常工作,但我被卡住了。
最终我想要以下模式
MyProgram -soureid 1231 -domain alpha
我将 sourceid 和 domain 作为有效变量。 sourceid 的值为 1231,domain 的值为“alpha”。
这是一个 C# .net 核心应用程序 (2.3),我正在运行 Visual Studio 2017。
这是我到目前为止的代码......
using System;
using CommandLine;
namespace Program
class Program
public static void Main(String[] args)
var options = new SomeOptions();
CommandLine.Parser.Default.ParseArguments(args, typeof(SomeOptions));
Console.WriteLine(options.Age);
Console.ReadLine();
class SomeOptions
[Option('n', "name", Required = true)]
public string Name get; set;
[Option('a', "age")]
public int Age get; set;
此代码不起作用。当我通过 -n Jason 我得到这个..
CommandLineArgumentParsing 1.0.0
Copyright (C) 2019 CommandLineArgumentParsing
ERROR(S):
Verb '-n' is not recognized.
--help Display this help screen.
--version Display version information.
0
我相信这个问题与这条线有关..
CommandLine.Parser.Default.ParseArguments(args, typeof(SomeOptions));
好像这条线应该是这样的..
CommandLine.Parser.Default.ParseArguments(args, typeof(options));
但是编译器抱怨“'options' 是一个变量,但用作类型”
我做错了什么?
【问题讨论】:
【参考方案1】:在我问这个问题大约两秒钟后我就明白了。
替换..
CommandLine.Parser.Default.ParseArguments(args, typeof(SomeOptions));
随着...
Parser.Default.ParseArguments<SomeOptions>(args).WithParsed(parsed => options = parsed);
【讨论】:
以上是关于命令行解析器 NUGet 包让简单的示例程序工作的主要内容,如果未能解决你的问题,请参考以下文章
手把手教你 通过 NuGet.Server 包 搭建nuget服务器,并使用桌面工具上传 nuget 包,免命令行
通过命令行在 VS Installer 中启用 NuGet 包管理器。 (作为自动化脚本的一部分)