private static IDictionary<string, string> SpecializeArgsForSolutionProject(SolutionFile solution, ProjectInSolution p, IDictionary<string, string> args) { var targetPlatform = args.ContainsKey("Platform") ? args["Platform"] : solution.GetDefaultPlatformName(); var targetConfiguration = args.ContainsKey("Configuration") ? args["Configuration"] : solution.GetDefaultConfigurationName(); var targetSolutionConfiguration = solution.SolutionConfigurations.FirstOrDefault(conf => conf.ConfigurationName == targetConfiguration && conf.PlatformName == targetPlatform)?.FullName; var foo = targetSolutionConfiguration == null || !p.ProjectConfigurations.ContainsKey(targetSolutionConfiguration) ? null : p.ProjectConfigurations[targetSolutionConfiguration]; var copy = new Dictionary<string, string>(args); copy["Platform"] = foo == null ? targetPlatform : foo.PlatformName; copy["Configuration"] = foo == null ? targetConfiguration : foo.ConfigurationName; return copy; }
/// <summary> /// Figure out what solution configuration we are going to build, whether or not it actually exists in the solution /// file. /// </summary> private static string DetermineLikelyActiveSolutionConfiguration(SolutionFile solutionFile, IDictionary<string, string> globalProperties) { string activeSolutionConfiguration = null; string activeSolutionPlatform = null; globalProperties.TryGetValue("Configuration", out activeSolutionConfiguration); globalProperties.TryGetValue("Platform", out activeSolutionPlatform); if (String.IsNullOrEmpty(activeSolutionConfiguration)) { activeSolutionConfiguration = solutionFile.GetDefaultConfigurationName(); } if (String.IsNullOrEmpty(activeSolutionPlatform)) { activeSolutionPlatform = solutionFile.GetDefaultPlatformName(); } SolutionConfigurationInSolution configurationInSolution = new SolutionConfigurationInSolution(activeSolutionConfiguration, activeSolutionPlatform); return configurationInSolution.FullName; }