Как я могу заставить Visual Studio использовать / RunExit и предоставить аргументы командной строки моих программ? - PullRequest
2 голосов
/ 14 ноября 2010

У меня есть файл решения для исполняемого файла командной строки.Я хочу запустить мой исполняемый файл с другими входами через отладчик без моего взаимодействия, а также установить его вывод в файл журнала.

Например, вот что я хочу:

devenv /DebugExe "myprogram.exe" "my inputs"

Это загружает VS и автоматически устанавливает входные данные моих программ.Тем не менее, я хочу делать это снова и снова, используя разные входные данные для моей программы, а затем копировать выходные файлы.Итак, самое близкое, что я понял, но не работает, это:

devenv /RunExit "myprogram.exe" "my input set" /Out out1.log
devenv /RunExit "myprogram.exe" "a different input set" /Out out2.log
...

Есть ли способ сделать это?Опять же, важная часть заключается в том, что я мог поставить в очередь кучу прогонов и позже получить выходные файлы для их вывода.

Ответы [ 2 ]

1 голос
/ 14 ноября 2010

Хотя я нашел способ делать то, что хочу, мне это не нравится.Поэтому я подожду некоторое время, прежде чем пометить свой собственный ответ как принятый.

Что мне действительно нужно и чего я хотел, так это то, что я сказал в своем вопросе:

devenv /RunExit sln "input args" /Out out.log

Проблема в том, что VS нене допускайте этого, «входные аргументы» недопустимы - в отличие от того, что вы должны использовать say / DebugExe, но затем снова включается ручная работа, и это мне не помогло.Поэтому в сценарии, который я использую для динамического вызова devenv, я использовал регулярное выражение, чтобы каждый раз заменять строку «Arguments =» в файле sln соответствующими аргументами.Затем эта командная строка работает:

devenv /RunExit sln /Out out%x%.log

Каждый вызов sln модифицируется так, чтобы он содержал новый набор аргументов, и поэтому при каждом запуске я получаю разные выходные данные в моем файле% x% .log (которыйЯ называю по-разному каждый прогон, так что я могу отслеживать, какой файл журнала поступил на какие входы).Спасибо всем за просмотр.

0 голосов
/ 14 июля 2011

Я хотел сделать что-то подобное: в моем случае одним из моих параметров был путь к файловой системе, который мог содержать пробел, который должен быть заключен в кавычки, внутри строки в пакетном файле, который должен быть заключен в кавычки. Я улучшил код исполняемого файла моей командной строки, чтобы он также смотрел на переменные среды (Environment.GetEnvironmentVariable) в дополнение к параметрам командной строки. Затем просто установите конкретное значение переменной среды перед каждым вызовом devenv.

...