从C#MVC控制器操作,是否可以执行gulp任务,如果是这样,我将如何执行此操作?
在我的C#应用程序中,我正在尝试检查给定的字符串(在表单中提交)是否有效。 有几个C#CSS解析器,但我找不到一个可以处理sass(* .scss)的解析器。
在我的项目中,我使用gulp任务编译sass并报告任何错误,所以我想知道是否有一种方法可以利用它在我的C#app中进行验证,即将我的C#app中的文本输入添加到a .scss文件,获取gulp任务尝试编译它,如果它没有错误通过,那么我知道sass是有效的。
也许我在这里咆哮错误的树,但任何帮助都会非常感激。
答案 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网站站点等)将所有这些锁定为自我保护。如果你拥有服务器,那就坚持下去。
最后注意事项: