TFS自定义CheckInPolicy运行nodejs命令

时间:2016-09-10 09:03:57

标签: tfs visual-studio-2015 eslint

Currenly我试图在办理登机手续时执行ESLINT以检查常见问题。

为此,我创建了CheckInPolicy类,在Evaluate方法中,对于js文件,我执行以下代码:

            ProcessStartInfo startInfo = new ProcessStartInfo("cmd.exe", "/c " + string.Format(@"ESLINT ""{0}""", checkedPendingChange.LocalItem))
            {
                WindowStyle = ProcessWindowStyle.Hidden,
                UseShellExecute = false,
                RedirectStandardInput = true,
                RedirectStandardOutput = true,
                CreateNoWindow = true
            };

            StringBuilder sb = new StringBuilder();

            Process process = Process.Start(startInfo);
            process.OutputDataReceived += (sender, e) => sb.AppendLine(e.Data);
            process.BeginOutputReadLine();
            process.Start();
            process.WaitForExit();

            // We may not have received all the events yet!
            Thread.Sleep(2500);

            if (process.ExitCode != 0)
                stringCollection.Add(string.Format(@"ESLINT check failed for {0}{1}{1}{2}", checkedPendingChange.LocalItem, Environment.NewLine, sb.ToString()));

然后我将这个程序集及其注册包装在VSIX中并将其安装在我的机器中。

可悲的是,当我签入js文件时,命令会触发,但退出代码始终为 1 ......

ESLINT及其所有依赖项全局安装,如果我在控制台应用程序中运行相同的代码工作正常(退出代码 0 1 相应), Visual Studio 2015是runnig ad Admin。

启动ESLINT的正确方法是什么?或者我必须检查Edge.js?可以错过%PATH%相关问题吗?

0 个答案:

没有答案