[英]TFS Workflow MSBuild Activity Project Location
我喜欢BuildProcessTemplates和“自定义装配体”文件夹如何自动将构建脚本同步到构建控制器/代理上。 我已经用C#编写了自定义活动,并了解了如何添加导入,以便可以在那些程序集中使用这些类型。
我还将看到如何通过MSBuild活动使用MSBuild文件。 我还注意到,如果将msbuild文件(例如foo.proj)检入源代码管理中的CustomAssemblies文件夹中,则该msbuild将显示在服务器上的temp目录结构中,以及我的自定义程序集旁边。
所以这是我的问题? 如何在MSBuild活动的Project属性中引用foo.proj的位置? 我一直在寻找变量之类的东西,但似乎无法将它们放在一起。
我找到了一种使用自定义代码活动的方法。 基本上,我将其作为变量初始化模式连接到工作流中,然后在其他活动中使用它。 但是如果可能的话,我宁愿不需要自定义程序集。
using System.IO;
using System.Activities;
using System.Reflection;
using Microsoft.TeamFoundation.Build.Client;
namespace BuildTasks.Activities
{
[BuildActivity(HostEnvironmentOption.All)]
public sealed class FindCustomAssembliesDirectory : CodeActivity
{
public OutArgument<string> CustomAssembliesDirectory { get; set; }
protected override void Execute(CodeActivityContext context)
{
context.SetValue(CustomAssembliesDirectory, new FileInfo(Assembly.GetExecutingAssembly().Location).Directory.FullName);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.