Я добавил библиотеку CommandLineParser в свой проект и настроил все аргументы, которые должны быть предоставлены моему проекту для поддержки автоматической установки того же самого.
Класс InstallOptions создается с некоторой опцией «Option»"атрибуты для каждого из обязательных и необязательных аргументов одного и того же, например ниже
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());
}
в приведенном выше коде я все время получаю результат = false и состояния выдает ниже сообщение об ошибке
- требуется путь.Путь установки, куда вы хотите установить приложение.
- требуется имя dbname.Имя базы данных.
- требуется dbserver.Имя сервера базы данных или IP-адрес.
Пожалуйста, помогите мне, как передать все 3 параметра в мой проект, чтобы проверить, что он работает правильно.
Заранее спасибо