private string GetPerConfigValue(Project buildProject, bool finalValue, IList <ProjectConfig> configs, bool nullIsFalse) { string unifiedValue = null; for (int i = 0; i < configs.Count; i++) { ProjectConfig config = configs[i]; bool resetCache = (i == 0); BuildProperty buildProperty = config.GetMsBuildProperty(this.propertyName, resetCache, buildProject); string value = this.GetBuildPropertyValue(buildProperty, finalValue); if (value != null) { value = value.Trim(); } if (nullIsFalse && String.IsNullOrEmpty(value)) { value = Boolean.FalseString; } if (i == 0) { unifiedValue = value; } else if (unifiedValue != value) { unifiedValue = null; // indicates indeterminate value break; } } return(unifiedValue); }