Мне нужно запустить командную строку visual studio 2017.Я выполняю это следующим образом:
ProcessStartInfo startInfo = new ProcessStartInfo(
@"M:\VisualStudio2017\Common7\Tools\VsDevCmd.bat");
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
var vsCMD = Process.Start(startInfo).StandardOutput.ReadToEnd();`
vsCMD
- ожидаемое значение:
**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.9.3
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
Затем я передаю аргументы, которые мне нужно выполнить:
startInfo.Arguments = "vsperfclrenv /globaltraceon";
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
var result = Process.Start(startInfo).StandardOutput.ReadToEnd();
Однако «результат» всегда такой:
[ERROR:parse_cmd.bat] Invalid command line argument: 'vsperfclrenv'. Argument will be ignored.
[ERROR:parse_cmd.bat] Invalid command line argument: '/globaltraceon'. Argument will be ignored.
**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.9.3
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
[ERROR:VsDevCmd.bat] *** VsDevCmd.bat encountered errors. Environment may be incomplete and/or incorrect. ***
[ERROR:VsDevCmd.bat] In an uninitialized command prompt, please 'set VSCMD_DEBUG=[value]' and then re-run
[ERROR:VsDevCmd.bat] vsdevcmd.bat [args] for additional details.
[ERROR:VsDevCmd.bat] Where [value] is:
[ERROR:VsDevCmd.bat] 1 : basic debug logging
[ERROR:VsDevCmd.bat] 2 : detailed debug logging
[ERROR:VsDevCmd.bat] 3 : trace level logging. Redirection of output to a file when using this level is recommended.
[ERROR:VsDevCmd.bat] Example: set VSCMD_DEBUG=3
[ERROR:VsDevCmd.bat] vsdevcmd.bat > vsdevcmd.trace.txt 2>&1
После некоторых исследований в статье MSDN рекомендуется добавить некоторые переменные среды, которые могут понадобиться файлу ванны, но они не сработали.Всякий раз, когда я запускаю эту команду вручную, она работает как положено.