У меня есть проект, запущенный из c:\work\SomeVariantFolder\MySolution\MyProject\Bin\Debug, и мне нужно выполнить командную строку из этого проекта из одной из подпапок: c:\work\SomeVariantDev. Проблема, с которой я сталкиваюсь, состоит в том, чтобы получить из папки, в которой работает мой проект, в папку, откуда я могу запустить эту командную строку.
Обратите внимание, что я не могу использовать командный файл для этого решения.
То, что я пытался сделать, - объявить частный метод, который выполняет три команды из того же процесса, перейдя четыре папки вверх и затем выполнив мою команду, но это, похоже, не работает. Я чувствую, что я делаю что-то неправильно здесь, потому что, если я запустил эту команду из c:\work\SomeVariantFolder \, она хорошо распарится.
var process = new System.Diagnostics.Process();
var startInfo = new System.Diagnostics.ProcessStartInfo
{
WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal,
FileName = "cmd.exe",
RedirectStandardInput = true,
UseShellExecute = false
};
process.StartInfo = startInfo;
process.Start();
process.StandardInput.WriteLine("cd..");
process.StandardInput.WriteLine("cd..");
process.StandardInput.WriteLine("cd..");
process.StandardInput.WriteLine("cd..");
process.StandardInput.WriteLine("my command");
Обратите внимание, что из-за характера моего решения я не могу использовать пакетные файлы и не могу использовать c:\work\SomeVariantFolder как жестко закодированную папку, так как имя "SomeVariantFolder" может измениться при некоторых обстоятельствах.
Любая помощь будет назначена