无法从C#作为新进程运行Graphviz
本文关键字:进程 运行 Graphviz 新进程 | 更新日期: 2023-09-27 18:09:22
我在GraphViz的bin文件夹中创建了一个.dot文件。
如果我从命令行执行:dot -Tpng -o graph.png -graph.dot
它创建了一个png图像,但如果我在C#中运行它,则不会创建png文件。该程序以管理员身份运行。(下面的检查代码(
using (var dot = new Process())
{
dot.StartInfo.Verb = "runas"; // Run process as admin.
dot.StartInfo.FileName = @"C:'Program Files (x86)'Graphviz2.38'bin'dot.exe";
dot.StartInfo.Arguments = "-Tpng -o graph.png -graph.dot";
dot.Start();
dot.WaitForExit();
}
从cmd运行,将/C添加到参数的开头
using (var dot = new Process())
{
dot.StartInfo.Verb = "runas"; // Run process as admin.
dot.StartInfo.FileName = "cmd.exe";
dot.StartInfo.Arguments = "/C dot -Tpng -o graph.png -graph.dot";
dot.Start();
dot.WaitForExit();
}
您没有设置工作目录,所以文件可能是生成的,但位于windows32或类似的默认位置。
尝试以下
using (var dot = new Process())
{
dot.StartInfo.Verb = "runas"; // Run process as admin.
dot.StartInfo.FileName = @"C:'Program Files (x86)'Graphviz2.38'bin'dot.exe";
dot.StartInfo.WorkingDirectory = @"C:'ProgramData"; # or some other location you can write to
dot.StartInfo.Arguments = "-Tpng -o graph.png -graph.dot";
dot.Start();
dot.WaitForExit();
}