c# - Parser.Default.ParseArguments 总是返回 false
问题描述
我已将 CommandLineParser 库添加到我的项目中,并且我已经配置了应该提供给我的项目的所有参数,以支持相同的静默安装。
正在为相同的每个必需和非必需参数创建一个带有一些“选项”属性的 InstallOptions 类,例如下面
public class InstallOptions
{
[Option("path", Required = true, HelpText = "The installation path where you want the application installed.")]
public string InstallPath { get; set; }
[Option("dbname", Required = true, HelpText = "Database name.")]
public string DbName { get; set; }
[Option("dbserver", Required = true, HelpText = "Database server name or IP address.")]
public string DbServer { get; set; }
[HelpOption]
public string DisplayHelpOnParseError()
{
var help = new HelpText()
{
AddDashesToOption = true
};
var errors = "";
if (LastParserState.Errors.Any())
{
errors = help.RenderParsingErrorsText(this, 0);
}
//HACK fix where if help.addoptions is called more than once it truncates the output
if (_help == null)
{
help.AddOptions(this);
_help = help;
}
else
{
return String.IsNullOrEmpty(errors) ? _help : "ERROR(S):" + errors + _help;
}
return help;
}
}
从我想调试的 program.cs 文件中,我正在运行我的项目,如下所示
public static void Main(string[] args)
{
args = new string[3];
args[0] = "--path C:\\Program files\MyProject";
args[1] = "--dbname myDBName";
args[2] = "--dbserver myDBServer";
var result = Parser.Default.ParseArguments(args, installOptions);
if (!result) throw new ArgumentException(installOptions.DisplayHelpOnParseError());
}
在上面的代码中,我一直得到 result = false 并且状态抛出错误消息
--需要的路径。您希望安装应用程序的安装路径。
--dbname 必需。数据库名称。
--dbserver 需要。数据库服务器名称或 IP 地址。
请帮助我如何将所有 3 个参数传递给我的项目以测试它是否正常工作。
提前致谢
解决方案
推荐阅读
- regex - Jmeter 更好的方法来遍历数组列表,而不是每个值只调用 JSON 响应中的缺失值
- javascript - 在嵌套数组中查找具有值的对象并添加属性
- dt - plotly图表和DT表的客户端链接
- sql-server - SQL server - 当只有 5 列匹配时查找重复记录
- mysql - MySQL Server 8.0 - 没有 bin 文件
- reactjs - React useEffect 不重新渲染功能组件
- plotly - JavaScript 配置,在“悬停时显示最接近的数据”和“悬停时比较数据”之间进行更改
- c# - 函数不计算某些数字的二进制间隙
- java - 通过高级客户端写入弹性搜索 - 在文档上设置时间戳
- regex - Oracle通过正则表达式选择所有匹配的事件到一行中的一列,并带有分隔符