gpt4 book ai didi

c# - 通过 .NET 应用程序执行 grunt 命令

转载 作者:太空宇宙 更新时间:2023-11-03 15:52:18 25 4
gpt4 key购买 nike

我在我的网络开发构建过程中使用 grunt(javascript Task runner)。包括使用 jasmine 进行测试、使用 plato 进行代码检查、文档 (YUIdoc) 等...

为了让事情变得更方便(并且稍后将此构建过程包含到另一个构建过程中)我尝试创建一个简单的 .net (C#) 应用程序,它能够执行 grunt 命令,然后将结果输出到一个文本框。因为我总是可以通过 cmd-Window 轻松执行 grunt 命令,所以我尝试使用 System.Diagnostics.Processcmd.exe 来做到这一点。这是我尝试过的(用于生成代码文档):

private void documentationToolStripMenuItem_Click(object sender, EventArgs e)
{
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = "/C grunt doc";
p.StartInfo.WorkingDirectory = "c:\\myProjectFolder\\";
p.Start();

p.WaitForExit();
rtbOut.Text = p.StandardOutput.ReadToEnd();
}

首先奇怪的是:我得到了这个输出:

>Loading "requirejs.js" tasks...

是的,我确实在我的项目中使用了 require.js,但这与文档无关。这是我通常得到的输出,我希望:

>Running "doc" task
>
>Running "yuidoc:compile" (yuidoc) task
>Start YUIDoc compile...
>Scanning: ../someFolder/
>Output: ../release/Documentation/
>YUIDoc compile completed in 0.968 seconds

当然不会生成文档。但是在正确的文件夹中生成了一个 data.json 文件,但它是空的。所以至少看起来它启动正确但无法继续(?)我还尝试了其他任务,但它们都没有使用 C# 中的进程工作。

最佳答案

如果有人遇到同样的问题,我会回答我自己的问题,因为我现在找到了适合我的解决方案。

我现在只是在使用 PowerShell 脚本“绕行”。这里有一篇关于如何从 C# 运行 PowerShell 的好文章:

http://www.codeproject.com/Articles/18229/How-to-run-PowerShell-scripts-from-C

System.Management.Automation 中包含可用于调用 PowerShell 脚本的类 Runspace。现在,在我的例子中,这样的“脚本”仅此而已:

grunt build

你会得到一些用于给输出着色的转义码,你可以像这样调用它来删除它们:

grunt --no-color build

关于c# - 通过 .NET 应用程序执行 grunt 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25290500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com