public static ProfileEntry Add(this Collections.INamedCollection <ProfileEntry> entries, int lineNumber, string name, string value = null)
        {
            var item = new ProfileEntry(lineNumber, name, value);

            entries.Add(item);
            return(item);
        }
		private void DeployEntry(ProfileEntry entry, IDictionary<string, string> parameters)
		{
			if(entry == null)
				throw new ArgumentNullException("entry");

			var filePath = this.Format(entry.Name, parameters).Replace('/', Path.DirectorySeparatorChar).Trim();
			var fileName = string.IsNullOrWhiteSpace(entry.Value) ? Path.GetFileName(filePath) : entry.Value;

			if(fileName.Contains("*") || fileName.Contains("?"))
			{
				var directory = new DirectoryInfo(Path.GetDirectoryName(filePath));

				if(!directory.Exists)
				{
					_terminal.Write(TerminalColor.Magenta, ResourceUtility.GetString("Text.Warn"));
					_terminal.WriteLine(TerminalColor.Yellow, ResourceUtility.GetString("Text.DirectoryNotExists", directory.FullName));
					return;
				}

				var files = directory.EnumerateFiles(fileName);

				foreach(var file in files)
				{
					//执行文件复制
					this.CopyFile(file.FullName, Path.Combine(this.CurrentDirectory, file.Name));

					//累加文件复制成功计数器
					Interlocked.Increment(ref _fileCountOfSucced);
				}

				return;
			}

			if(!File.Exists(filePath))
			{
				//累加文件复制失败计数器
				Interlocked.Increment(ref _fileCountOfFailed);

				_terminal.Write(TerminalColor.Magenta, ResourceUtility.GetString("Text.Warn"));
				_terminal.WriteLine(TerminalColor.DarkYellow, ResourceUtility.GetString("Text.FileNotExists", filePath));
				return;
			}

			//执行文件复制
			this.CopyFile(filePath, Path.Combine(this.CurrentDirectory, fileName));

			//累加文件复制成计数器
			Interlocked.Increment(ref _fileCountOfSucced);
		}