public override bool Execute() { var log = new MSBuildLogger(Log); // item -> string var all = AllProjects?.Select(e => e.ItemSpec).ToArray() ?? Array.Empty <string>(); var valid = ValidProjects?.Select(e => e.ItemSpec).ToArray() ?? Array.Empty <string>(); // log inputs BuildTasksUtility.LogInputParam(log, nameof(AllProjects), all); BuildTasksUtility.LogInputParam(log, nameof(ValidProjects), valid); // Log warnings for invalid projects foreach (var path in all.Except(valid, PathUtility.GetStringComparerBasedOnOS())) { var message = MSBuildRestoreUtility.GetWarningForUnsupportedProject(path); log.Log(message); } return(true); }