0

我喜欢 BuildProcessTemplates 和 Custom Assemblies 文件夹如何自动将构建脚本同步到构建控制器/代理上。我已经用 C# 编写了自定义活动,并且了解如何添加导入,以便可以使用这些程序集中的类型。

我还看到了如何通过 MSBuild 活动使用 MSBuild 文件。我还注意到,如果我将一个 msbuild 文件(比如 foo.proj )检查到源代码控制中的 CustomAssemblies 文件夹中,那么 msbuild 会显示在我的自定义程序集旁边的服务器上的临时目录结构中。

所以这是我的问题?如何在 MSBuild 活动的 Project 属性中引用 foo.proj 的位置?我一直在寻找变量等,但似乎无法将它们放在一起。

4

1 回答 1

0

我找到了一种使用自定义代码活动的方法。基本上,我将它作为变量初始化模式连接到工作流中,然后在我的其他活动中使用它。但如果可能的话,我宁愿在不需要自定义程序集的情况下这样做。

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);
        }
    }
}
于 2012-11-20T18:33:06.947 回答