Я пытаюсь автоматизировать настройку машины, используя net core 2.0 с консольным приложением, и мне нужно выполнить несколько команд nvm для настройки версий узлов.
Я пытаюсь запустить файл .bat сКоманды nvm, которые мне нужны, но я получаю следующую ошибку:
У этого файла нет программы, связанной с ним для выполнения этого действия.Пожалуйста, установите программу или, если она уже установлена, создайте связь на панели управления «Программы по умолчанию».
Если я запускаю файл .bat непосредственно из cmd, он работает нормально, но когда мое консольное приложение запускает его, яполучить эту ошибку.
Команды 'file.bat':
nvm version
nvm install 6.11.4
nvm use 6.11.4
nvm list
npm --version
Моя функция csharp для запуска команды:
public static int ExecuteCommand()
{
int exitCode;
ProcessStartInfo processInfo;
Process process;
processInfo = new ProcessStartInfo("cmd.exe", $"/C file.bat")
{
CreateNoWindow = true,
UseShellExecute = false,
RedirectStandardError = true,
RedirectStandardOutput = true
};
process = Process.Start(processInfo);
process.OutputDataReceived += (s, e) =>
{
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.WriteLine("cmd >" + e.Data);
Console.ResetColor();
};
process.BeginOutputReadLine();
process.ErrorDataReceived += (s, e) =>
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(e.Data);
Console.ResetColor();
};
process.BeginErrorReadLine();
process.WaitForExit();
exitCode = process.ExitCode;
Console.WriteLine("ExitCode: " + exitCode.ToString(), "ExecuteCommand");
process.Close();
return exitCode;
}
Я ожидаю, чтоэто работает, потому что после этого мне нужно будет выполнить несколько других команд, таких как npm install, gulp install и т. д.
Есть идеи, что может произойти?