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 に答える