Приветствую всех! И сразу говорю - просьба не смеяться над идиотом...
Проблема странная:
на машине установлен софт C:\Program Files (x86)\Graphviz2.38\bin\dot.exe. С его помощью надо из файла с расширением dot сгенерировать график.
Если это делать в командном окне, то все прекрасно работает. КОманда выглядит так:
cd c:/
cd Program Files (x86)\Graphviz2.38\bin\
dot.exe -Tsvg D:\irina\test.dot > D:\irina\test.svg
А вот любая попытка запустить эту же операцию из c# - кода вылетает в трубу...
1 Сначала я сделала классический код (даю упрощенный вариант):
string graphvizPath = @"C:\Program Files (x86)\Graphviz2.38\bin\dot.exe";
string graphvizFlag = " -Tsvg ";
string cmdString = graphvizFlag + @"D:\irina\test.dot > D:\irina\test.svg";
using (Process graphvizStart = new Process())
{
graphvizStart.StartInfo.CreateNoWindow = true;
graphvizStart.StartInfo.Arguments = cmdString;
graphvizStart.StartInfo.FileName = graphvizPath;
graphvizStart.StartInfo.RedirectStandardOutput = true;
graphvizStart.StartInfo.UseShellExecute = false;
//graphvizStart.StartInfo.WorkingDirectory = @"C:\Program Files (x86)\Graphviz2.38\bin\";
graphvizStart.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
graphvizStart.Start();
}
вылетает с ошибкой...
Пробовала как с WorkingDirectory , так и без
2. Но - "врагу не сдается наш гордый "Варяг""(С)! Пусть и с некоторым недоумением, почему это вдруг то, что должно работать сразу, не работает...
Создала бат - файл (test.bat) [проверила его на вшивость в командном окне - работает! ]:
cd c:/
cd Program Files (x86)\Graphviz2.38\bin\
g\Data\rucomp.svg
dot.exe -Tsvg D:\irina\test.dot > D:\irina\test.svg
и переделала код:
using (Process graphvizStart = new Process())
{
graphvizStart.StartInfo.CreateNoWindow = true;
graphvizStart.StartInfo.Arguments = @"D:\irina\test.bat";
graphvizStart.StartInfo.FileName = @"C:\windows\system32\cmd.exe";
graphvizStart.StartInfo.UseShellExecute = false;
graphvizStart.StartInfo.RedirectStandardOutput = true;
//graphvizStart.StartInfo.WorkingDirectory = @"C:\windows\system32\";
graphvizStart.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
graphvizStart.Start();
}
Как ни странно, не работает!
Вопрос - где я туплю???
Заранее благодарю за подсказку...