gpt4 book ai didi

c# - 将 svn 的输出读入字符串

转载 作者:行者123 更新时间:2023-11-30 15:49:30 24 4
gpt4 key购买 nike

好的,所以在我想通过 SSH 连接到服务器并使用 svn 命令行客户端而不是远程桌面(说实话这不是什么好主意)之后,我和我的老板决定,如果我们可以更新每个来自单个本地网页的项目(这仅适用于我们的开发服务器)。现在,我确实让它工作了(一次),但它经常不工作。

我正在使用以下代码:


ProcessStartInfo start = new ProcessStartInfo("C:\Program Files (x86)\CollabNet\Subversion Client\svn.exe", "update " + UpdatePath);
start.RedirectStandardOutput = true;
start.UseShellExecute = false;
start.ErrorDialog = false;
start.CreateNoWindow = true;
start.WindowStyle = ProcessWindowStyle.Hidden;
Process process = Process.Start(start);
StreamReader output = process.StandardOutput;
string text = output.ReadToEnd();
process.WaitForExit();
Response.Write(text + "<br />" + UpdatePath);

理论上,这应该从 svn 应用程序收集输出,并将其写入页面,但它并没有(除非在极少数情况下它实际更新了,但那不是我特别需要输出的时候!)

谁能发现问题?

最佳答案

这是从我的一个应用程序中提取的一些代码 - 它基本上只是 MSDN 示例。 ( http://msdn.microsoft.com/en-us/library/system.diagnostics.process.outputdatareceived.aspx )

private void SvnOutputHandler(object sendingProcess,
DataReceivedEventArgs outLine)
{
Process p = sendingProcess as Process;

// Save the output lines here
}


private void RunSVNCommand()
{
ProcessStartInfo psi = new ProcessStartInfo("svn.exe",
string.Format("update \"{0}\" {1}", parm1, parm2));

psi.UseShellExecute = false;
psi.CreateNoWindow = true;

// Redirect the standard output of the sort command.
// This stream is read asynchronously using an event handler.
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;

Process p = new Process();

// Set our event handler to asynchronously read the sort output.
p.OutputDataReceived += SvnOutputHandler;
p.ErrorDataReceived += SvnOutputHandler;
p.StartInfo = psi;

p.Start();

p.BeginOutputReadLine();
p.BeginErrorReadLine();

p.WaitForExit()
}

关于c# - 将 svn 的输出读入字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1533217/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com