Beispiel #1
0
        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));
        }
Beispiel #3
0
        private bool EvaluateCondition(string condition)
        {
            var properties = new Dictionary <string, string>
            {
                ["Configuration"] = this.Configuration,
                ["Platform"]      = this.Platform
            };

            return(MsBuildConditionEvaluator.EvaluateCondition(condition, properties));
        }
Beispiel #4
0
        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));
        }