public xTargetBuilder(CSBuildConfig config, BuildTarget target, string[] properties)
		{
			_config = config;
			_target = Check.NotNull(target);
			_build = BuildList.CreateInstance(_target.Toolset.ToString().Insert(2, ".").TrimStart('v'), _target.FrameworkPath,
                GetReferenceFolders().Length > 0);
			
			new TargetBuilderDispatch(this, _build);

			if (config.Console != null)
				_build.SetConsoleLevel(config.Console.Level);
            if (_target.TextLog != null)
                _build.SetTextLogFile(Environment.CurrentDirectory, _target.TextLog.AbsolutePath, _target.TextLog.Level);
            if (_target.XmlLog != null)
                _build.SetXmlLogFile(Environment.CurrentDirectory, _target.XmlLog.AbsolutePath, _target.XmlLog.Level);

			_build.SetProperty("Configuration", _target.Configuration);
			_build.SetProperty("Platform", _target.Platform.ToString());

			foreach (string property in properties)
			{
				string[] values = property.Split( new char [] { '=', ':' }, 2);
				if (values.Length == 2)
				{
					Log.Verbose("Setting property {0} = {1}", values[0], values[1]);
					_build.SetProperty(values[0], values[1]);
				}
			}

			Log.Info("Using Configuration = {0}", _build.GetProperty("Configuration"));
			Log.Info("Using Platform = {0}", _build.GetProperty("Platform"));
		}
        public xTargetBuilder(CSBuildConfig config, BuildTarget target, string[] properties)
        {
            _config = config;
            _target = Check.NotNull(target);
            _build  = BuildList.CreateInstance(_target.Toolset.ToString().Insert(2, ".").TrimStart('v'), _target.FrameworkPath,
                                               GetReferenceFolders().Length > 0);

            new TargetBuilderDispatch(this, _build);

            if (config.Console != null)
            {
                _build.SetConsoleLevel(config.Console.Level);
            }
            if (_target.TextLog != null)
            {
                _build.SetTextLogFile(Environment.CurrentDirectory, _target.TextLog.AbsolutePath, _target.TextLog.Level);
            }
            if (_target.XmlLog != null)
            {
                _build.SetXmlLogFile(Environment.CurrentDirectory, _target.XmlLog.AbsolutePath, _target.XmlLog.Level);
            }

            _build.SetProperty("Configuration", _target.Configuration);
            _build.SetProperty("Platform", _target.Platform.ToString());

            foreach (string property in properties)
            {
                string[] values = property.Split(new char [] { '=', ':' }, 2);
                if (values.Length == 2)
                {
                    Log.Verbose("Setting property {0} = {1}", values[0], values[1]);
                    _build.SetProperty(values[0], values[1]);
                }
            }

            Log.Info("Using Configuration = {0}", _build.GetProperty("Configuration"));
            Log.Info("Using Platform = {0}", _build.GetProperty("Platform"));
        }