private void WritePrebuild(IProjectConfiguration config)
        {
            using (Tag("prebuild"))
            {
                //xxx
                if (config.Name == "Metro.Portal.Web")
                {
                    using (CbTag("PurgeDirectory"))
                    {
                        Attr("path", config.WorkingDirectory() + @"\source");
                    }
                }

                using (CbTag("DeleteDirectory"))
                {
                    Attr("path", config.WorkingDirectory());
                }

                var temp = config as ITempDirectory;
                if (temp != null)
                {
                    using (CbTag("CreateDirectory"))
                    {
                        Attr("path", temp.TempDirectory());
                    }
                }

                var related = config as IRelatedDirectory;
                if (related != null)
                {
                    using (CbTag("CreateDirectory"))
                    {
                        Attr("path", related.RelatedDirectory());
                    }
                }
            }
        }
        private void WritePublishers(IProjectConfiguration config)
        {
            using (Tag("publishers"))
            {
                using (Tag("modificationHistory"))
                {
                    Attr("onlyLogWhenChangesFound", "true");
                }

                Tag("xmllogger", null);
                Tag("statistics", null);

                using (Tag("artifactcleanup"))
                {
                    Attr("cleanUpMethod", "KeepLastXBuilds");
                    Attr("cleanUpValue", "100");
                }

                using (Tag("artifactcleanup"))
                {
                    Attr("cleanUpMethod", "KeepMaximumXHistoryDataEntries");
                    Attr("cleanUpValue", "100");
                }

                if (!String.IsNullOrEmpty(config.OwnerEmail))
                {
                    using (CbTag("EmailPublisher"))
                    {
                        Attr("mailto", config.OwnerEmail);
                    }
                }

                //xxx
                if (config.Name == "Metro.Portal.Web")
                {
                    return;
                }

                using (CbTag("DeleteDirectory"))
                {
                    Attr("path", config.WorkingDirectory());
                }
            }
        }
		private void WritePublishers(IProjectConfiguration config)
		{
			using (Tag("publishers"))
			{
				using (Tag("modificationHistory"))
				{
					Attr("onlyLogWhenChangesFound", "true");
				}

				Tag("xmllogger", null);
				Tag("statistics", null);

				using (Tag("artifactcleanup"))
				{
					Attr("cleanUpMethod", "KeepLastXBuilds");
					Attr("cleanUpValue", "100");
				}

				using (Tag("artifactcleanup"))
				{
					Attr("cleanUpMethod", "KeepMaximumXHistoryDataEntries");
					Attr("cleanUpValue", "100");
				}

				if (!String.IsNullOrEmpty(config.OwnerEmail))
				{
					using (CbTag("EmailPublisher"))
					{
						Attr("mailto", config.OwnerEmail);
					}
				}

				//xxx
				if (config.Name == "Metro.Portal.Web")
					return;

				using (CbTag("DeleteDirectory"))
				{
					Attr("path", config.WorkingDirectory());
				}
			}
		}
		private void WritePrebuild(IProjectConfiguration config)
		{
			using (Tag("prebuild"))
			{
				//xxx
				if (config.Name == "Metro.Portal.Web")
				{
					using (CbTag("PurgeDirectory"))
					{
						Attr("path", config.WorkingDirectory() + @"\source");
					}
				}

				using (CbTag("DeleteDirectory"))
				{
					Attr("path", config.WorkingDirectory());
				}

				var temp = config as ITempDirectory;
				if (temp != null)
				{
					using (CbTag("CreateDirectory"))
					{
						Attr("path", temp.TempDirectory());
					}
				}

				var related = config as IRelatedDirectory;
				if (related != null)
				{
					using (CbTag("CreateDirectory"))
					{
						Attr("path", related.RelatedDirectory());
					}
				}
			}
		}