【发布时间】:2014-05-28 03:50:10
【问题描述】:
我不能确定这是 Accurev 特有的问题,还是更多地与从 C# 调用命令行有关。当我弄清楚它是什么时,我会更具体地提出问题及其标签。
我可以使用命令提示符成功拨打以下两个电话:
- accurev stat -d -s "ProductionSupport" -fx
- accurev hist -s "ProductionSupport" -ftx -e "1570567"
在这两种情况下,我都可以看到 xml。
但是我想从 C# 程序中进行这些调用,其中第一个效果很好,但莫名其妙地第二个返回一个空字符串。
public string CallAccurev(string arguments)
{
Process cmdUtility = new Process
{
StartInfo =
{
FileName = "C:\\Program Files (x86)\\AccuRev v5.5\\bin\\accurev.exe",
Arguments = arguments,
UseShellExecute = false,
RedirectStandardOutput = true,
RedirectStandardError = true
}
};
cmdUtility.Start();
var s = cmdUtility.StandardOutput.ReadToEnd();
cmdUtility.WaitForExit();
return s;
}
我的电话是这样的:
var checkInComment = CallAccurev("hist -s " + _streamName + " -e " + Convert.ToString(processedFile.TransId) + " -ftx");
var filesString = CallAccurev("stat -d -s " + _streamName + " -fex");
为了解决这个问题,我尝试将“hist”调用及其参数放入 .Bat 文件中。我可以看到双击该文件会产生预期的行为,但是当我从代码中调用它时,我再次得到空字符串。
非常感谢任何有关如何调试我的 hist call 期间发生的事情的答案或线索!
【问题讨论】:
-
_streamName- 它是否在您的程序中包含完整路径?如果不是,您可以尝试提供完整路径吗? -
它不包含完整路径,因为它不是我机器上的流 - 基本上我希望查询团队共享的流(即,不是本地工作区)。干杯
标签: c# command-line-interface accurev