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); }
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); } } }