public void Reload() { References.Clear(); ProjectReferences.Clear(); BuildConfigurations.Clear(); _parse(); }
public override bool Execute() { LoadConfiguration(); List <string> targetFrameworks = new List <string>(); foreach (string buildConfiguration in BuildConfigurations.Where(c => !string.IsNullOrWhiteSpace(c))) { // parse the specified configuration applying any independent properties from the BuildConfiguration. Configuration configuration = ConfigurationFactory.ParseConfiguration(buildConfiguration); if (!configuration.GetProperties().TryGetValue("TargetFramework", out string targetFramework)) { Log.LogError($"Could not derive a TargetFramework from BuildConfiguration '{buildConfiguration}'."); } if (!targetFrameworks.Contains(targetFramework)) { targetFrameworks.Add(targetFramework); } } TargetFrameworks = string.Join(";", targetFrameworks); return(!Log.HasLoggedErrors); }
public override bool Execute() { LoadConfiguration(); var supportedProjectConfigurations = new HashSet <Configuration>( BuildConfigurations.Where(c => !string.IsNullOrWhiteSpace(c)).Select(c => ConfigurationFactory.ParseConfiguration(c)), Configuration.CompatibleComparer); var buildConfiguration = ConfigurationFactory.ParseConfiguration(BuildConfiguration); var compatibleConfigurations = ConfigurationFactory.GetCompatibleConfigurations(buildConfiguration, DoNotAllowCompatibleValues); var bestConfiguration = compatibleConfigurations.FirstOrDefault(c => supportedProjectConfigurations.Contains(c)); if (bestConfiguration == null) { Log.LogMessage($"Could not find any applicable configuration for '{buildConfiguration}' among projectConfigurations {string.Join(", ", supportedProjectConfigurations.Select(c => c.ToString()))}"); Log.LogMessage(MessageImportance.Low, $"Compatible configurations: {string.Join(", ", compatibleConfigurations.Select(c => c.ToString()))}"); } else { Log.LogMessage(MessageImportance.Low, $"Chose configuration {bestConfiguration}"); BestConfiguration = new TaskItem(bestConfiguration.ToString(), (IDictionary)bestConfiguration.GetProperties()); } return(!Log.HasLoggedErrors); }