2013年有一项名为" GetLocalPath替换ConvertWorkspaceItem" 的新活动.活动Microsoft.TeamFoundation.Build.Activities.Core位于Microsoft.TeamFoundation.Build.Activities程序集中的命名空间下.
它使用LocalPathProvider类来聚合构建中使用的所有工作空间,并在一个位置公开所有工作空间的路径转换.这基本上消除了知道工作空间的依赖性,以便将服务器路径转换为本地路径,并允许您使用任意数量的工作空间,而不必担心会破坏某些内容.
当MS取走某些东西时,通常是有充分理由的."黑客攻击"真的没必要.
Microsoft.TeamFoundation.Build.Activities.dll我使用来自(微软用来创建工作区名称)的内部类进行了黑客攻击。您需要使用以下代码创建自定义活动:
public sealed class GetDefaultWorkspace : BaseActivity<Workspace>
{
public override Activity CreateBody()
{
var type = typeof(TfGetSources).Assembly.GetType("Microsoft.TeamFoundation.Build.Activities.TeamFoundation.TfGetSources+GetDefaultWorkspaceName");
var activity = (CodeActivity<string>)Activator.CreateInstance(type);
var sequence = new Sequence();
var workspaceName = new Variable<string>();
sequence.Variables.Add(workspaceName);
sequence.Activities.Add(activity);
activity.Result = (OutArgument<string>) workspaceName;
sequence.Activities.Add(new GetWorkspace
{
Name = workspaceName,
Result = new LambdaReference<Workspace>(ctx => Result.Get(ctx))
});
return sequence;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4943 次 |
| 最近记录: |