【问题标题】:GraphViz doesn't make a png file when it is started from C# codeGraphViz 从 C# 代码启动时不会生成 png 文件
【发布时间】:2013-02-28 02:40:39
【问题描述】:

在我描述图形的类中,我想创建一种方法来生成 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 中具有相同参数的同一程序运行正常。 你怎么看?问题出在哪里?解决办法是什么? 提前致谢

【问题讨论】:

    标签: c# graphviz


    【解决方案1】:

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

    process.StartInfo =
        new ProcessStartInfo(@"D:\graphviz\bin\dot.exe",
            @"-Tpng D:\tmp.dot -o D:\tmp.png");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-27
      • 1970-01-01
      • 1970-01-01
      • 2021-06-03
      • 1970-01-01
      • 2015-10-07
      • 2017-03-13
      • 2015-07-08
      相关资源
      最近更新 更多