我一直在 C# 中的 Windows 窗体应用程序中工作,以运行我的 Phing 构建文件的任务。
当我单击按钮时,它会执行 phing 构建文件(运行 cmd),将控制台输出保存到 txt 文件中,并在一个文本框中显示输出。
问题是我有一些需要用户输入的任务,例如需要用户输入提交消息的 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);
我的老板告诉我这样没有问题,只想添加其他东西..当控制台关闭时,我想将所有控制台输出发送到一个文本框,或者只是强制控制台保持打开状态直到我关闭它