Phing ビルドファイルのタスクを実行するために、C# の Windows フォーム アプリケーションで作業しています。
ボタンをクリックすると、phing ビルドファイル (cmd を実行) が実行され、コンソール出力が txt ファイルに保存され、出力が 1 つのテキスト ボックスに表示されます。
問題は、ユーザーがコミット メッセージを入力する必要がある SVN コミットなど、ユーザーの入力が必要なタスクがいくつかあることです。
コミット タスクを実行すると、ユーザーがコミット メッセージを書き込むための空の cmd が表示されましたが、質問は表示されないため、ユーザーはコンソールに何を書き込む必要があるかを推測する必要があります。
質問とユーザーの回答用のテキスト ボックスを含む入力ボックスを作成しましたが、テキスト ボックスのテキストを xml ファイル内の変数に割り当てるにはどうすればよいですか? 英語のエラーがいくつかありますが、申し訳ありません...
編集:
私のビルドファイルには次のものがあります:
<target name="commit" description="Executa Commit">
<propertyprompt propertyName="commit_message" defaultValue="Actualizado atraves do Phing"
promptText="Introduza a mensagem do Commit: " />
<svncommit
svnpath="${svn_path}"
workingcopy="${local_dir}"
message="${commit_message} " />
<echo msg="Revisao do Commit numero: ${svn.committedrevision}"/>
</target>
したがって、「Introduza a mensagem do Commit」というメッセージが表示され、回答が commit_message に割り当てられます。C# には入力ボックスがあり、テキストボックスのテキストを xml ファイルの「commit_message」の値にしたい
カミルの編集:
textBox1.Clear();
var startInfo = new ProcessStartInfo("phing");
startInfo.WorkingDirectory = @"C:\wamp\bin\php\php5.4.3";
startInfo.Arguments = "commit > log.txt";
string pergunta = inputbox.InputBox("Qual é a mensagem do Commit ?", "Commit", "Mensagem Commit");
// textBox1.Text = "Escreva o caminho de origem da pasta:";
Process proc = Process.Start(startInfo);
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardInput = true;
proc.WaitForExit();
using (StreamReader sr = new StreamReader(@"C:\wamp\bin\php\php5.4.3\log.txt"))
{
textBox1.Text = sr.ReadToEnd();
}
番号 2 をカミルに編集します。
その方法は機能しますが、結果はこれを行うだけで同じです
var startInfo = new ProcessStartInfo("phing");
startInfo.WorkingDirectory = @"C:\wamp\bin\php\php5.4.3";
startInfo.Arguments = "commit ";
Process proc = Process.Start(startInfo);
私の上司は、このような問題はないと私に言いました。他に1つ追加したい..コンソールが閉じたら、すべてのコンソール出力を1つのテキストボックスに送信するか、コンソールを閉じるまで強制的に開いたままにしたい