Пример #1
0
        public void WhenNoLogoSpecifiedTheSwitchIsPassedToMsBuild()
        {
            var properties = new MsBuildProperties {
                NoLogo = true
            };

            _msBuildRunner.Run(properties);

            _processRunner.Received()
            .RunProcess(Arg.Is <ProcessProperties>(pp => pp.Arguments.Contains("/nologo")));
        }
Пример #2
0
        public void AllTargetsArePassedToMsBuildInCorrectFormat()
        {
            var properties = new MsBuildProperties {
                Targets = new[] { "Clean", "Compile" }
            };

            _msBuildRunner.Run(properties);

            _processRunner.Received()
            .RunProcess(Arg.Is <ProcessProperties>(pp => new[] { "/target:Clean", "/target:Compile" }.IsSubsetOf(pp.Arguments)));
        }
Пример #3
0
        public void AllArbitraryArgumentsArePassedToMsbuildAsIs()
        {
            var arbitraryArguments = new[] { "/arbArg1", "-arbArg2", "/arbArg3:someValue" };
            var properties         = new MsBuildProperties {
                ArbitraryArguments = arbitraryArguments
            };

            _msBuildRunner.Run(properties);

            _processRunner.Received()
            .RunProcess(Arg.Is <ProcessProperties>(pp => arbitraryArguments.IsSubsetOf(pp.Arguments)));
        }
Пример #4
0
        public void ProjectNameShoudBeLastArgumentToMsBuild()
        {
            var properties = new MsBuildProperties
            {
                Project            = "the-project-name.csproj",
                ArbitraryArguments = new[] { "/arbArgument1", "/argArgument2" }
            };

            _msBuildRunner.Run(properties);

            _processRunner.Received()
            .RunProcess(Arg.Is <ProcessProperties>(pp => pp.Arguments.Last().Equals("the-project-name.csproj")));
        }
Пример #5
0
        private IDictionary <string, string> GetParsedBuildProperties()
        {
            if (MsBuildProperties == null)
            {
                return(new Dictionary <string, string>());
            }
            var keyValuePairs    = MsBuildProperties.Split(',');
            var twoElementArrays = keyValuePairs.Select(kvp => kvp.Split('=')).ToList();

            foreach (var errorKvp in twoElementArrays.Where(a => a.Length != 2))
            {
                throw new ArgumentException(string.Format("Key value pair near {0} is formatted incorrectly", string.Join(",", errorKvp[0])));
            }
            return(twoElementArrays.ToDictionary(kvp => kvp[0].Trim(), kvp => kvp[1].Trim()));
        }
Пример #6
0
        private void AddMsBuildMacros(Dictionary <string, string> result)
        {
            var buildTool = SolutionToolset.GetBuildTool();

            if (buildTool == null)
            {
                return;
            }
            var container = MsBuildProperties.Get(buildTool);

            if (container == null)
            {
                return;
            }
            foreach (string macro in container.GetKeys())
            {
                string value = container.GetValues(macro).FirstOrDefault();
                if (value == null)
                {
                    continue;
                }
                result.Add(macro, value);
            }
        }
 public MsBuildActionConfigurator(MsBuildProperties properties)
 {
     _msBuildProperties = properties;
 }
 public MsBuildActionConfigurator(MsBuildProperties properties)
 {
     _msBuildProperties = properties;
 }