0

在我描述图形的类中,我想创建一种方法来生成 GraphViz 代码并将其保存到 .dot 文件中,而其他方法则使用该图形制作 png 图形文件。我试过了:

        private void MakeDotFile()
        {
            FileStream fileStream =
                new FileStream("tmp.dot", FileMode.Create, FileAccess.Write);
            StreamWriter streamWriter = new StreamWriter(fileStream);
            streamWriter.Write("graph { a -- b }");
            streamWriter.Close();
            fileStream.Close();
        }

        public void MakePngFile()
        {
            MakeDotFile();
            Process process = new Process();
            process.StartInfo =
                new ProcessStartInfo("<< dot.exe location >>",
                "-Tpng << .dot file location >> > << .png file location >>");
            process.Start();
            process.WaitForExit();
        }

但不幸的是,它正在完成发出“哔”之类的可怕声音并且什么都不做(不创建 png 文件)。当我调试时,我发现进程退出代码是3。我检查了很多次路径是否良好。有趣的是,在 cmd.exe 中具有相同参数的同一程序运行正常。你怎么看?问题出在哪里?解决办法是什么?提前致谢

4

1 回答 1

0

而不是重定向输出,您应该-o使用dot.

process.StartInfo =
    new ProcessStartInfo(@"D:\graphviz\bin\dot.exe",
        @"-Tpng D:\tmp.dot -o D:\tmp.png");
于 2013-02-27T07:50:21.457 回答