Я создал консольное приложение (с использованием Visual Studio 2010), которое может читать аргументы команд.
Когда я отлаживаю, я анализирую некоторые параметры теста, которые установлены в Свойства проекта-> [имя проекта] ... -> Отладка -> Аргументы командной строки:
Он читает: "имя_параметра1| parametervalue1 "" имя_параметра2 | имя_параметра2 "" имя_параметра3 | имя_параметра3 "
Я использовал следующий код для чтения параметров:
for (Int16 argumentsCount = 0; argumentsCount < args.Length; argumentsCount++)
{
String[] parameterItem = args[argumentsCount].Split('|');
String parameterName = parameterItem[0].ToString();
String parameterValue = parameterItem[1].ToString();
/*code continues*/
}
Когда я запускаю приложение в режиме отладки, оно работает просто отличнои все параметры считываются.
Затем я опубликовал приложение на сервере и убедился, что оно было установлено с правильными разрешениями (в целях демонстрации, скажем, оно находится на C: \ MyApp, а код Complied находится в MyApp..application
Затем я создал пакетный скрипт, который выполняет приложение. * .BAT содержит следующую команду:
"C:\MyApp\MyApp.application" "parametername1|parametervalue1" "parametername2|parametervalue2" "parametername3|parametervalue3"
Этот тип работает, когда приложение выполняется, когда я запускаю пакет... Однако ... ни одно из моих параметров не получено моим приложением. Я знаю это, потому что я перекомпилировал и опубликовал с некоторым кодом, чтобы прочитать, сколько параметровпринимаются с:
Console.Write("Arguments " + args.Length.ToString());
и это показывает Аргументы: 0
Может кто-нибудь сказать мне, как написать мой пакетный скрипт для запуска приложения и разобрать мои параметры / аргументы командной строки.