1

C#コードを使用してリポジトリをバックアップしようとしています

        Process svnCommand = null;
        var psi = new ProcessStartInfo("svnadmin");
        psi.RedirectStandardOutput = true;
        psi.RedirectStandardError = true;
        psi.UseShellExecute = false;
        psi.Arguments= @"dump C:\Repositories\Myrepo > C:\temp\myrepodumpfile.dump";

        using (svnCommand = Process.Start(psi))
        {     
            var myoutput = svnCommand.StandardOutput;

            var myerror = svnCommand.StandardError;



            Debug.Write("Output :" + Environment.NewLine +
                Environment.NewLine + myoutput.ReadToEnd() +
                Environment.NewLine + "Error :" +
                Environment.NewLine + Environment.NewLine +
                myerror.ReadToEnd());

            svnCommand.Close();
        }

コマンドラインからdumpコマンドを使用する場合

svnadmin dump C:\Repositories\Myrepo > C:\temp\myrepodumpfile.dump

正常に動作しますが、上記のC#コードで使用しようとすると、次のようなエラーが発生します。

svnadmin: E205000: Try 'svnadmin help' for more info
svnadmin: E205000: Too many arguments

私のSVN情報:

SVNバージョン1.7.5環境変数asloset(cmdから直接svを使用できます)

カントは何が問題なのか理解しているようです

4

1 に答える 1

3

>コマンドラインの機能です。C# からプロセスを起動する場合は使用できません。

>プロセスが StandardOutput に書き込む出力を取得し、それをファイルに書き込みます。これは、プログラムにも実装する必要があるものです。

var psi = new ProcessStartInfo("svnadmin");
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;
psi.UseShellExecute = false;
psi.Arguments= @"dump C:\Repositories\Myrepo";

using (var svnCommand = Process.Start(psi))
{     
    var myoutput = svnCommand.StandardOutput;

    File.WriteAllText(@"C:\temp\myrepodumpfile.dump", myoutput.ReadToEnd());

    svnCommand.WaitForExit();
}
于 2012-06-29T07:37:33.567 に答える