KatsuYuzuのブログ

.NET の開発をメインとした日記です。

5分でわかるTFSでWindows Phone アプリ、Silverlightのビルドを構成する方法 #wpdev_jp

Windows Phone アプリ、および、SilverlightのプロジェクトをTFSでビルドする時に押さえなくてはいけないポイントが1つだけあります。ここではTeam Foundation Serviceで説明しますが、Team Foundation Serverでもポイントは変わりません。

Windows Phone アプリ、Silverlightのビルドを構成する際のポイント

ビルド定義の[プロセス]のタブで[4. 詳細]の[MSBuild プラットフォーム]を[X86]に変更します。
f:id:KatsuYuzu:20130303170931p:plain
[Auto]のままだと下記の例外が発生します。

Exception Message: MSBuild error 1 has ended this build. You can find more specific information about the cause of this error in above messages. (type BuildProcessTerminateException)
Exception Stack Trace: at System.Activities.Statements.Throw.Execute(CodeActivityContext context)
at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager)
at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

ビルドを構成する方法

ビルド定義の新規作成

f:id:KatsuYuzu:20130303174008p:plain

全般

f:id:KatsuYuzu:20130303170256p:plain

トリガー

適宜、選択します。
f:id:KatsuYuzu:20130303172453p:plain

ワークスペース

必要なフォルダーのみに変更します。通常は、ソリューションファイルがあるフォルダーを指定します。
f:id:KatsuYuzu:20130303170304p:plain
ここで指定されたフォルダーをワークスペースにコピーしてからビルドを行いますので、必要のないフォルダーが含まれていると無駄なコピーが発生してビルドパフォーマンスが低下します。

ビルドの規定値

ビルド成果物が必要な場合はここで指定します。
f:id:KatsuYuzu:20130303170316p:plain
Team Foundation Serverの場合はリポジトリーへの出力ができませんので共有フォルダーを指定します。

プロセス

[ビルドする項目]でソリューションファイルと構成を指定します。更に、[4. 詳細]の[MSBuild プラットフォーム]を[X86]に変更します。ここがポイントですので忘れずに!
f:id:KatsuYuzu:20130303170320p:plain
その他、必要に応じて変更します。テストの無効化やインデックスの作成の無効化などを設定するとビルドパフォーマンスが向上します。

ゴール

ビルドが成功するとリポジトリーにビルド成果物が出力されています。
f:id:KatsuYuzu:20130303170323p:plain
このxapファイルを難読化したりしなかったりして、マーケットへの申請、Webサイトの発行を行ってください。