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 に答える