protected (bool success, string output) ExecuteCommand(string exeName, string arguments,
                                                               string workingDirectory = "")
        {
            Logger.LogInformation($"执行命令 {exeName} {arguments}");
            (bool success, string output) = ProcessCommand.ExecuteCommand(exeName, arguments, workingDirectory);

            if (success)
            {
                Logger.LogInformation(output);
            }
            else
            {
                Logger.LogWarning(output);
            }

            return(success, output);
        }
Example #2
0
        public IEnumerable <string> GetNotInstalledToolList(List <string> packageNameList)
        {
            // 先去掉重复的
            packageNameList = packageNameList.Distinct().ToList();

            var(success, output) = ProcessCommand.ExecuteCommand("dotnet", "tool list -g");

            // 假定都是成功的
            // 只需要尝试寻找字符串是否匹配就可以判断是否已经安装了

            foreach (var package in packageNameList
                     // 如果后面不加上一个空格,将可能没有安装的工具判断是安装
                     // 也就是如果此时的 dotnetCampus.Foo 没有安装,但是 dotnetCampus.Foo2 安装了,那么判断 dotnetCampus.Foo 是安装的
                     .Select(package => package + " "))
            {
                if (!output.Contains(package, StringComparison.OrdinalIgnoreCase))
                {
                    yield return(package);
                }
            }
        }