NuGet 输出以流式传输结果以 60 个字符换行

Output of NuGet to stream results in wrapping at 60 characters

以下代码启动 NuGet 进程并列出与输入参数匹配的包。

using(var p = new Process())
{
    var nugetPackageToLookFor = "635309301071616794UploadAndDownLoadPackageWith";
    var nugetPath = @"C:\NuGet.exe";

    p.StartInfo.FileName = nugetPath;
    p.StartInfo.Arguments = string.Format(@"list {0}", nugetPackageToLookFor);
    p.StartInfo.RedirectStandardError = true;
    p.StartInfo.RedirectStandardOutput = true;
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.CreateNoWindow = true;
    p.Start();

    using (var sr = new StreamReader(p.StandardOutput.BaseStream))
    {
        sr.ReadLine().Dump();
    }
}

注意:我上面使用的包名称只是完整列表中返回的第一个结果(字符长度 > 60)。

这将输出包名称的前 60 个字符,添加一个 CRLF 并在下一行继续。

输出为:

635309301071616794UploadAndDownLoadPackageWithMinClientVers
ion 1.0.0

而我期待的是:

635309301071616794UploadAndDownLoadPackageWithMinClientVersion 1.0.0

刚刚发现这是旧版本 NuGet 中的一个错误。

https://nuget.codeplex.com/workitem/3673