我有控制台应用程序。因为我正在复制我的svn项目。我的代码是:
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = @"c:\windows\system32\cmd.exe";
startInfo.Arguments = @"C:\Program Files (x86)\VisualSVN Server\bin\svnadmin dump E:\Repositories\Test > E:\AFS\AFS.Schedule.VisualSVN\TestFolder\Dest\Test\NewTest.dump";
startInfo.Verb = "runas";
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
问题是:我能够创建转储文件。但是大小是0kb。
让我知道我错过了什么。
答案 0 :(得分:1)
代码中的路径无效。
错误的字符串是:
startInfo.Arguments = @"C:\Program Files (x86)\VisualSVN Server\bin\svnadmin dump E:\Repositories\Test > E:\AFS\AFS.Schedule.VisualSVN\TestFolder\Dest\Test\NewTest.dump";
正确的字符串是:
startInfo.Arguments = @""C:\Program Files (x86)\VisualSVN Server\bin\svnadmin.exe" dump E:\Repositories\Test > E:\AFS\AFS.Schedule.VisualSVN\TestFolder\Dest\Test\NewTest.dump";
请注意缺少的.exe
和引号。
答案 1 :(得分:1)
确保您的标准命令提示符引用了它所需的PATH:
在您的情况下C:\Program Files (x86)\VisualSVN Server\bin;
Here are some instructions on how to edit your PATH variable from within Windows.
<强>解释强>
问题是您的环境路径设置不正确,因此在您的应用程序运行的上下文中,它无法引用Visual SVN安装的正确路径,它可能正在尝试访问您的另一个版本的Subversion机。
要测试此理论,请通过VisualSVN服务器管理应用程序打开cmd
提示符(这将临时添加正确的PATH变量):VisualSVN Server > Actions > All Task > Start Command Prompt
(确保您已选择导航中的顶级项目,而不是树中的存储库,或者您无法在All Tasks
菜单中选择
这应该转储该回购的完整备份。