public static string ReadProjectOutputFolder(string configurationName, string platform, string projectFileFullName) { var doc = XDocument.Load(projectFileFullName, LoadOptions.SetLineInfo); // var opnodes = from n in doc.Descendants() // where n.Name.LocalName == "OutputPath" // select n; var properties = new Dictionary <string, string> { ["Configuration"] = configurationName, ["Platform"] = platform }; var nodes = from n in doc.Descendants() where n.Name.LocalName == "OutputPath" && MsBuildConditionEvaluator.EvaluateCondition(n.Parent.Attribute("Condition").Value, properties) select n; if (nodes.Count() != 1) { return(null); } var path = AgjustPath(nodes.First().Value); return(path); }
public void TestProjectConfigurations() { var properties1 = new Dictionary <string, string> { ["Configuration"] = "Debug", ["Platform"] = "AnyCPU" }; Assert.IsTrue(MsBuildConditionEvaluator.EvaluateCondition("'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'", properties1)); Assert.IsFalse(MsBuildConditionEvaluator.EvaluateCondition("'$(Configuration)|$(Platform)' == 'DebugWithPostBuild|AnyCPU'", properties1)); Assert.IsFalse(MsBuildConditionEvaluator.EvaluateCondition("'$(Configuration)|$(Platform)' == 'Debug|x64'", properties1)); var properties2 = new Dictionary <string, string> { ["Configuration"] = "DebugWithPostBuild", ["Platform"] = "AnyCPU" }; Assert.IsFalse(MsBuildConditionEvaluator.EvaluateCondition("'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'", properties2)); Assert.IsTrue(MsBuildConditionEvaluator.EvaluateCondition("'$(Configuration)|$(Platform)' == 'DebugWithPostBuild|AnyCPU'", properties2)); Assert.IsFalse(MsBuildConditionEvaluator.EvaluateCondition("'$(Configuration)|$(Platform)' == 'Debug|x64'", properties2)); var properties3 = new Dictionary <string, string> { ["Configuration"] = "Debug", ["Platform"] = "x64" }; Assert.IsFalse(MsBuildConditionEvaluator.EvaluateCondition("'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'", properties3)); Assert.IsFalse(MsBuildConditionEvaluator.EvaluateCondition("'$(Configuration)|$(Platform)' == 'DebugWithPostBuild|AnyCPU'", properties3)); Assert.IsTrue(MsBuildConditionEvaluator.EvaluateCondition("'$(Configuration)|$(Platform)' == 'Debug|x64'", properties3)); }
private bool EvaluateCondition(string condition) { var properties = new Dictionary <string, string> { ["Configuration"] = this.Configuration, ["Platform"] = this.Platform }; return(MsBuildConditionEvaluator.EvaluateCondition(condition, properties)); }
private bool EvaluateCondition(string condition) { if (condition == null) { return(true); } var properties = GetEvaluationConditions(); return(MsBuildConditionEvaluator.EvaluateCondition(condition, properties)); }
private bool EvaluateCondition(string condition) { var properties = GetEvaluationConditions(); return(MsBuildConditionEvaluator.EvaluateCondition(condition, properties)); }