我正在开发TFS 2012部署版本。我想在构建模板中的“自定义”类别下对参数进行分组,如下图所示,
即,
3. Custom
> Web
1. Source:
2. Target:
> Console
1. Source:
2. Target:
怎么做?请让我知道你的建议。
答案 0 :(得分:3)
创建自定义构建流程模板,如Customize your build process template中所述。你可能已经做到了。
创建自定义构建活动DLL ,如Use and develop custom build process activities中所述。再说一次,你可能已经做到了。我们将自定义构建参数类添加到此程序集中。
添加参数类。此类将保存您的参数值:
[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; }
}
添加类型转换器。如果您的类归属于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);
}
}
将参数添加到流程中。构建自定义程序集,在流程模板项目中添加对它的引用,打开流程模板并添加新参数。使用自定义参数类键入它们并创建默认值:
添加参数元数据。正如MrHinsh在回答中所述,我们仍然需要添加自定义组。在参数列表中查找Metadata
并打开编辑器。添加两个元数据项并参考您的流程参数:
上传。保存您的流程模板。签入自定义程序集和自定义流程模板。打开构建过程编辑器以获取使用自定义模板的构建过程,或重新打开它。
答案 1 :(得分:0)
如果您打开并编辑.xaml构建模板,您应该会看到一个预先配置的参数,名为" meta *"。如果选择它并单击显示的椭圆,您将获得所需的选项。