我期待在c#应用程序中自动创建nupkg。我打算在我的项目中包含nuget.exe,并使用System.Diagnostics作为进程启动cmd.exe,然后传递所需的命令,这将是'cd project \ path \ here','nuget spec something.dll '和'nuget pack something.nuspec'。如何从C#控制台运行多个CMD命令应用程序
我到目前为止的代码是:
Process p = new Process();
ProcessStartInfo info = new ProcessStartInfo(@"C:\Windows\System32\cmd.exe", @"mkdir testdir");
p.StartInfo = info;
p.Start();
Console.ReadLine();
然而,它甚至不创造TESTDIR,和我没有想法链如何将这些命令。在我的Process上有一个名为WaitForInputIdle的方法,但它引发了事件,我不知道如何处理这些事实。
一个完美的解决方案还可以让我读取输出和输入。我已经尝试过使用StreamWriter p.StandardInput,但是接下来会出现检查命令是否已完成以及结果如何的问题。
任何帮助将不胜感激。
编辑:成功!我已经成功地创建一个目录:) 这里是我的代码现在:
Process p = new Process();
ProcessStartInfo info = new ProcessStartInfo(@"C:\Windows\System32\cmd.exe");
info.RedirectStandardInput = true;
info.UseShellExecute = false;
p.StartInfo = info;
p.Start();
using (StreamWriter sw = p.StandardInput)
{
sw.WriteLine("mkdir lulz");
}
仍然不知道如何等待输入和跟进更多的命令,虽然。
'Directory.CreateDirectory'或创建bat-file并运行它。 – Sinatr
Sinatr我不打算创建一个目录,那只是想让cmd工作。 – Nech
既然你可以回答你自己的问题,如果你没有发布你的解决方案作为编辑,但作为答案,它会很好。 –