私は何時間も代替案を探していました、そして私はいくつかの本当に奇妙なことが起こっていました。
そこで、問題を切り分けるために、xamlテンプレート内に入る非常に単純なコードアクティビティを作成しました。
using System.Activities;
using Microsoft.TeamFoundation.Build.Client;
using Microsoft.TeamFoundation.Build.Workflow.Activities;
namespace Weco.TeamBuild.FirmwareActivityPack
{
[BuildActivity(HostEnvironmentOption.Controller)]
public sealed class TestActivity: CodeActivity<string>
{
protected override string Execute(CodeActivityContext context)
{
context.TrackBuildMessage("Inside TestActivity", BuildMessageImportance.High);
return "success";
}
}
}
「エージェントで実行」シーケンス内でこのアクティビティを実行しようとすると、従来のエラーが発生しました。
Cannot create unknown type '{clr-namespace:Weco.TeamBuild.FirmwareActivityPack;assembly=FirmwareActivityPack}TestActivity'.
TestActivityが存在するアセンブリをソース管理でチェックしていて、ビルドコントローラーがオンラインのいくつかの記事で推奨されているようにそれを指し示しています。
興味深い要素は、そのアクティビティのコピーをテンプレートの最上部に配置すると、正常に実行されることです(ただし、最初のTestActivityのみ)。「カスタムアセンブリへのバージョン管理パス」はビルドコントローラーに対してのみ有効であり、エージェントに対しては有効ではないようです。ビルドサーバーのGACに何かをインストール/アンインストールする必要がないようにしようとしています。
参考までに、TFSはmachine_1にインストールされ、Team Build(コントローラー+ 4エージェント)はmachine_2にインストールされます