読者です 読者をやめる 読者になる 読者になる

XNA のビルドプロセス

XNA

XNA beta 2 では,PC 用のプロジェクトを作成すると最初から x86 プラットフォームが選択されており,@IT の例の記事のコラム「VC# Expressで出力アセンブリのプラットフォームを設定する」は,やらなくてもよくなっちゃってますね.
今回のリリースでも Retail 版の Xbox360 では動かないとはいえ,Xbox 360 用のビルドプロセスは公開され,リリース版でどんな感じになるか見えてきました.しかし現状ではプロジェクトファイルのレベルで分離されていて,「単なるクロスコンパイル環境」と比べビルドプロセスが特に優れているというところまでは来ていません.

XBox and PC builds require separate projects to make the build system work properly. To make an app run on both you need to make a new project of the other type and then add/link the source files. Future versions will use the build target mechanism from visual studio.

あと,Contents Pipleline を利用したリソースのプリプロセスが非常に重いのですが,あれはどうも変換処理に Direct3D のリファレンスラスタライザをバックグラウンドで起動している奴がいて,ファイルフォーマット変換という言葉から想像される以上に,カーネルレベルで負荷をかけているようです.Direct3D のランタイムがデバッグランタイムになっているとさらに時間がかかっているかもしれません.
なお Visual C# Express Edition のメニューの「ビルド」以下の項目はデフォルトではスカスカです.上位エディションや過去のバージョンではお馴染みの,複数の設定によるビルドを順番に行う「バッチビルド」や,生成されたファイルの消去を行う「クリーン」といった項目は,メニューをカスタマイズすることで使用できます.
そもそも GUI なんていらないから,コマンドラインから自動ビルドしたいという人は,msbuild を使用すれば IDE を起動することなくビルドエンジンのみを実行できます.@IT の一色さんの記事,『.NETビルド・エンジン「MSBuild」使いこなし術』が参考になるでしょう.
私はとりあえず,Contents Pipleline の処理の前に Direct3D のランタイム設定をリテールに変更するようなタスクでも書いてみますかねぇ.