Я создал консольное приложение (используя Visual Studio 2010), которое может читать аргументы команды.
Когда я отлаживаю, я анализирую некоторые параметры теста, которые установлены в Project-> [имя проекта] Properties... -> Debug -> Аргументы командной строки:
Он гласит: "имя параметра1|значение параметра1" "имя параметра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, а скомпилированный код находится в MyApp.application).
Затем я создал пакетный скрипт, который выполняет приложение. *.BAT содержит следующую команду:
"C:\MyApp\MyApp.application" "parametername1|parametervalue1" "parametername2|parametervalue2" "parametername3|parametervalue3"
Этот вид работает, когда приложение выполняется, когда я запускаю пакет... Однако... ни один из моих параметров не принимается моим приложением. Я знаю это, потому что я перекомпилировал и опубликовал код, чтобы узнать, сколько параметров было получено:
Console.Write("Arguments " + args.Length.ToString());
и это показывает Аргументы: 0
Может кто-нибудь, пожалуйста, скажите мне, как написать мой пакетный скрипт для запуска приложения и анализа моих параметров/аргументов командной строки.