从C#Console

时间:2015-05-19 05:49:58

标签: c# sharepoint stsadm

我被要求从C#运行以下命令:

stsadm -o gl-copylist -sourceurl "http://someurl" -targeturl "http://someurl" -includeusersecurity -haltonfatalerror -deletesource -includedescendants All –nofilecompression

以下是代码:

ProcessStartInfo startInfo = new ProcessStartInfo()
{
    WindowStyle = ProcessWindowStyle.Normal,
    FileName = "cmd.exe",
    Arguments = "/C " + command,
    CreateNoWindow = true,
    UseShellExecute = false,
    RedirectStandardError = true,
    RedirectStandardOutput = true
};

该命令在独立命令窗口中运行正常,但在从我的控制台应用程序运行时始终显示标准的“STSADM -o”帮助文本。

知道为什么吗?

gl-copylist命令是标准SharePoint STSADM命令的加载项。这可能是原因吗?其他标准STSADM命令在我的代码中运行。

1 个答案:

答案 0 :(得分:2)

stsadm程序集中解析/验证命令行参数的方法中似乎存在错误,特别是当指定了接受值includedescendants参数另一个参数之前发生以下错误:

  

命令行错误。

stsadm -o gl-copylist 
-sourceurl "http://server/sourceweb/listviewpage" 
-targeturl "http://server/targetweb" -includeusersecurity 
-haltonfatalerror 
-deletesource 
-includedescendants All   <- when this parameter is specified before another parameter    
–nofilecompression

includedescendants参数指定为最后一个后,命令将成功执行:

stsadm -o gl-copylist 
-sourceurl "http://server/sourceweb/listviewpage" 
-targeturl "http://server/targetweb" -includeusersecurity 
-haltonfatalerror 
-deletesource 
–nofilecompression
-includedescendants All