【发布时间】:2015-01-24 01:40:11
【问题描述】:
我创建了一个CodeActivity 用于自定义 TFS 构建模板。该活动有 3 个自定义 InputArguments:
- TfsBuildProcessTemplatesFolder(...或我要构建的任何相对路径)
- TfsDropFolder
- TfsSourceFolder
但是,我没有在可用工作流变量列表中看到任何熟悉的 TFS 变量。不过,我愿意从一个公共变量“构建”相对路径。
我正在寻找以下变量:
- $root
- $root\BuildProcessTemplates
- $SourceDir
- $DropFolder
错误:
这告诉我我使用了错误的变量
Validation Error: The private implementation of activity '1: DynamicActivity' has the following validation error: Compiler error(s) encountered processing expression "BuildDir".
'BuildDir' is not declared. It may be inaccessible due to its protection level.
我的问题:
- 为什么我看不到熟悉的 TFS 变量?
- 我是否需要添加引用才能在属性列表中显示正确的变量?
- 或者,我应该使用通用对象来构建变量吗?
...类似的事情。
工作流程变量...
我的密码:
以防万一……
namespace Custom.Activities.NuGet
{
using System;
using System.Linq;
using System.Activities;
using Microsoft.TeamFoundation.Build.Workflow.Activities;
using Microsoft.TeamFoundation.Build.Client;
using Microsoft.TeamFoundation.Build.Workflow.Tracking;
[BuildActivity(HostEnvironmentOption.All)]
[ActivityTracking(ActivityTrackingOption.ActivityOnly)]
public sealed class CreateNuGetPackages : CodeActivity
{
#region <Properties>
#region inputs
public InArgument<string> TfsBuildResourcesFolder { get; set; }
public InArgument<string> TfsDropFolder { get; set; }
public InArgument<string> TfsSourceFolder { get; set; }
#endregion
#endregion
#region <Methods>
protected override void Execute(CodeActivityContext context)
{
// Do stuff here
}
#endregion
}
}
【问题讨论】:
-
这是 TFS 2010 还是 2013?两者之间的默认工作流程完全不同。在我的 TFS 2013 工作流程中,有一些变量,例如
binDirectory和srcDirectory,它们是在“编译、测试和发布”范围内定义的。如果您在该范围之外添加此活动,它们将不可见。 -
不确定是否不幸的截图购买 SourceLocation 不是变量而是类类型
-
@drk 我只是想显示我正在访问的变量在哪里......而不是列表本身。如果您愿意,我很乐意更新图像。您认为该图像的哪个亮点会更好?
-
我尝试在“编译、测试和发布”范围内创建一个变量并将其范围设置为“总体”......但是......我得到了完全相同的变量列表(不是上面迈克列出的那些)。有人对此有任何示例和建议吗?
-
我们使用的是 TFS 2013