TFS2010でWindowsPhone7プロジェクトを自動ビルド

とある方から「Windows Phoneでも自動ビルドとか自動テストとかできますか~?」と聞かれ、「できます」と返答させて頂いたのですが、ちょっと気になって実際に確認してみました。
自動ビルドについては、「準備する環境に条件がある」だけでした。

○確認環境について
 ・ワークグループ環境
  AD環境でもあまり内容は変わりません。
 ・ビルドサービス用アカウントを別途作成
  今回は「DTFSBuild」というユーザを作成しています。
  権限はUsersで問題ありません。
 ・TFSサーバは構築済
 ・プロジェクトコレクションのビルドサービスアカウントにビルドサービス用アカウント(今回はDTFSBuild)を追加

005

○OS/SDKのインストール
 
 まず、ビルドするためにはビルド環境にSDKをインストールする必要がありますが、SDKのサポートOSはWindows VistaとWindows 7ですので、サーバ系OSは使えません。
 TFSはクライアントOSにもインストール可能ですのでWindows7環境を作成します。
 ここがこのネタの最大のポイントになるのですが、必ず「32bit環境」で作成
してください。
 Windows Phone7ネタというよりかはSilverlightネタになるのですが、「64bit版のMSBuildではSilverlightプロジェクトがビルドできない」という問題があります。
 
 ※Visual Studio Engineering Teamのブログに64bit版MSBuildでのネタが掲載されています。
 64bit版Windows7でビルド環境を構築し、ビルドを実行すると、こんな感じでエラーになります。

004

 自分はこの原因がすぐにわからず、結構な時間ハマってました。orz

 次に、現時点でのWindows Phone SDKの最新版である7.1をインストールします。

 また、ビルド生成物の出力/共有フォルダを作成しておきます。
 →とりあえずなら共有フォルダ/ローカルセキュリティともに「Everyone:フルコントロール」でOKです。

○TFSのインストール/ビルド構成
 TFS本体のサーバは構築済の前提とし、ビルドサーバのみ構築しますので、インストールする機能を「Team Foundation ビルド サービス」のみ選択してインストールします。

001

 インストールした後は構成ウィザードに従ってビルドサービスを構成します。
 
 「ビルドコンピュータの構成」でビルドサービスを実行するユーザとして「DTFSBuild」を指定します。

002

○TFSチームプロジェクトの作成/Windows Phone7プロジェクトの作成/Windows Phone7プロジェクトの登録
 これらは普通に行ってください。

○ビルド定義の作成
 基本的には普通に作成しますが、他のビルドエージェントで実行されないように、エージエントを固定します。
 ビルド定義の「プロセス」-「エージェントの設定」-「名前フィルター」に、Windows7環境のエージェント名を指定します。
 (通常は「[コンピュータ名] – エージェント1」という名前になります)

003

これで、チームエクスプローラーとかから普通にビルドを実行できるようになります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください