作成したアクティビティを使うためには、
・VS/TFSが参照するフォルダにdllが格納されていること
・グローバルアセンブリキャッシュ(GAC)に登録されていること
が条件になります。(詳細については「Customize Team Build 2010 – Part 7: How is the custom assembly found?」)
参考にさせて頂いた「C#.NETでいく? TFS2010ビルド テンプレートのカスタマイズ(3)」とか「Ewald Hofman Customize Team Build 2010 – Part 7: How is the custom assembly found?」では、ビルドコントローラーに対してカスタムアセンブリを参照させる方法で解決していますが、複数のカスタムアセンブリを使いたくなった時にややこしくなるのが嫌だったので、ここではセットアップを作成して登録する方法をとります。
ソリューションに対して、セットアッププロジェクトを追加します。
自動的にエディタが起動されますので、「対象コンピュータのファイルシステム」を右クリックし、「特別なフォルダーの追加」-「グローバルアセンブリキャッシュフォルダ」を選択します。
GACに登録するファイルとして、プロジェクトでビルドされたファイルを指定します。
次は、セットアップ時の動作を少しだけ変更します。
通常、セットアップ実行時に「このユーザーのみ」と「すべてのユーザー」という選択肢が表示されますが、アクティビティはユーザ単位で使う/使わないというコントロールはしない(はず)ので、必ず「すべてのユーザー」でインストールするように変更します。
セットアッププロジェクトを右クリックし、「表示」-「ユーザーインターフェイス」を選択します。ユーザーインターフェイスのエディタ画面で、「インストール」-「開始」-「インストールフォルダー」のプロパティにある「InstallAllUsersVisible」をTrueに変更します。
ここで、セットアッププロジェクトをビルドすると、こんなエラーになってしまいました。
すっかり忘れていましたが、GACに登録するアセンブリは、厳密名を持っていないと登録できない仕組みになっています。(いわゆる「DLL Hell」の解決)
これはちゃんと対応しないといけないので、厳密名をアセンブリに付与します。