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を作成していない、と私はどのようにチェーンこれらのコマンドは考えを持っていないしました:
私がこれまで持っているコードです。私のプロセスには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
あなた自身の質問に答えることができたので、解答を編集として投稿していないのであれば答えとして、それは良いでしょう。 –