在TFS 2012构建模板中的“自定义”类别下对参数进行分组

时间:2014-12-11 23:19:42

标签: tfs msbuild tfs2012

我正在开发TFS 2012部署版本。我想在构建模板中的“自定义”类别下对参数进行分组,如下图所示,

enter image description here

即,

3. Custom
    > Web
      1. Source:
      2. Target:
    > Console
      1. Source:
      2. Target:

怎么做?请让我知道你的建议。

2 个答案:

答案 0 :(得分:3)

  1. 创建自定义构建流程模板,如Customize your build process template中所述。你可能已经做到了。

  2. 创建自定义构建活动DLL ,如Use and develop custom build process activities中所述。再说一次,你可能已经做到了。我们将自定义构建参数类添加到此程序集中。

  3. 添加参数类。此类将保存您的参数值:

    [BuildExtension(HostEnvironmentOption.All)]
    [Serializable]
    [TypeConverter(typeof(SourceTargetSettingsConverter))]
    public class SourceTargetSettings 
    {
        [DisplayName("1. Source")]
        [Description("Description for Source")]
        [Browsable(true)]
        public string Source { get; set; }
    
        [DisplayName("2. Target")]
        [Description("Description for Target")]
        [Browsable(true)]
        public string Target { get; set; }
    }
    
  4. 添加类型转换器。如果您的类归属于ExpandableObjectConverter或从该类型派生的类,参数编辑器将仅显示其内容:

    public class SourceTargetSettingsConverter : ExpandableObjectConverter
    {
        public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
        {
            return destinationType == typeof(string) || base.CanConvertTo(context, destinationType);
        }
    
        public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
        {
            var parameters = (SourceTargetSettings) value;
            if (destinationType == typeof (string))
            {
                return "This appears in the right column of the parameters editor.";
            }
    
            return base.ConvertTo(context, culture, value, destinationType);
        }
    }
    
  5. 将参数添加到流程中。构建自定义程序集,在流程模板项目中添加对它的引用,打开流程模板并添加新参数。使用自定义参数类键入它们并创建默认值:

    Process Parameters

  6. 添加参数元数据。正如MrHinsh在回答中所述,我们仍然需要添加自定义组。在参数列表中查找Metadata并打开编辑器。添加两个元数据项并参考您的流程参数:

    Add Metadata

  7. 上传。保存您的流程模板。签入自定义程序集和自定义流程模板。打开构建过程编辑器以获取使用自定义模板的构建过程,或重新打开它。

    enter image description here

答案 1 :(得分:0)

如果您打开并编辑.xaml构建模板,您应该会看到一个预先配置的参数,名为" meta *"。如果选择它并单击显示的椭圆,您将获得所需的选项。