从C#MVC控制器操作,是否可以执行gulp任务

时间:2014-08-16 13:54:24

标签: c# asp.net-mvc node.js sass gulp

从C#MVC控制器操作,是否可以执行gulp任务,如果是这样,我将如何执行此操作?

在我的C#应用​​程序中,我正在尝试检查给定的字符串(在表单中提交)是否有效。 有几个C#CSS解析器,但我找不到一个可以处理sass(* .scss)的解析器。

在我的项目中,我使用gulp任务编译sass并报告任何错误,所以我想知道是否有一种方法可以利用它在我的C#app中进行验证,即将我的C#app中的文本输入添加到a .scss文件,获取gulp任务尝试编译它,如果它没有错误通过,那么我知道sass是有效的。

也许我在这里咆哮错误的树,但任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

确定。在这里(在你的问题中)有一些事情吓到了我的绝对废话,但我认为最简单的总结是: -

  

鉴于ASP.NET MVC Controller,如何调用-another- .exe   过程

所以假设你仍然想要这样做,忽略安全vun和东西(我和你一起滚动,这里......)我认为你需要运行一个新的AppDomain然后在该app域中运行你的exe。如果exe失败,您也可以捕获错误消息。

根据评论更新

<击> Random code taken from first'ish google result

<击>
try
{
    //Create a new appdoamin for execute my exe in a isolated way.
    AppDomain sandBox = AppDomain.CreateDomain("sandBox");
    try
    {
        //Exe executing with arguments
        sandBox.ExecuteAssembly(".exe file name with path");
    }
    finally
    {
        AppDomain.Unload(sandBox);//destry created appdomain and memory is released.
    }
}
catch (Exception ex)//Any exception that generate from executable can handle
{
    //Logger.log(ex.Message);
} 

所以在这里,您将运行gulp.exe并传入命令行args,包括sass内容(保存到文件中的内容?)。

现在,如果.exe不是.NET程序集,那么您可能需要使用Process方法......

像这样......(伪代码)

Process app = new Process();
app.StartInfo.FileName = @"D:/Path to /My/Program to be run.exe";
app.Start();

再次 - 没有测试,但这应该足以让你开始...

请注意 - &gt;运行进程需要在服务器上拥有严格的安全权限,因此通常托管服务器(如Azure网站站点等)将所有这些锁定为自我保护。如果你拥有服务器,那就坚持下去。

最后注意事项:

  1. 我从未见过或使用过Node。
  2. 我从未见过或使用过gulp。