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 中的一个错误。
以下代码启动 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 中的一个错误。