XBox 360のXNAプロジェクトでは、専用バージョンの.NET Compact Frameworkを使用することを理解しています。しかし、XBox 360とWindowsの両方でリリースしたいとしましょう。
Xboxバージョン(コンパクトフレームワークを使用)は、Windows用に配布された場合でも動作しますか、それとも配布するために通常のフレームワーク(または非Xbox CF)に対して再構築する必要がありますか?
XBox 360のXNAプロジェクトでは、専用バージョンの.NET Compact Frameworkを使用することを理解しています。しかし、XBox 360とWindowsの両方でリリースしたいとしましょう。
Xboxバージョン(コンパクトフレームワークを使用)は、Windows用に配布された場合でも動作しますか、それとも配布するために通常のフレームワーク(または非Xbox CF)に対して再構築する必要がありますか?
回答:
はい、異なるプラットフォームは異なる.netランタイムを実行します。
これがxna 3 / 3.1 / 4で機能する方法は、単一のプラットフォーム用のゲームプロジェクトを作成することです(たとえば、Visual Studioで新しいWindows Xnaゲームプロジェクトを作成します)。Visual Studioの「ソリューションエクスプローラー」でプロジェクトを右クリックし、「Xのプロジェクトのコピーを作成」を選択します。xは、新しいプロジェクトのターゲットにするプラットフォームです。これでほぼすべてです。
これらの2つのプロジェクトは同期されており、一方に追加したものはもう一方に表示されます。#if WINDOWSまたは#if XBOXまたは#if WINDOWS_PHONEブロックを使用して、単一のプラットフォームに固有のコードを追加します。
Windows用に再構築する必要があります。Visual Studioプロジェクトの変換プロセスを自動化するツールがあります。360とコンパクトなフレームワークで始めたので、大丈夫です。逆に言えば、コンパクトフレームワークでサポートされていない.Netフレームワーク機能を使用する問題に遭遇する可能性があります。
ドキュメントには、2つの違いのセクションが含まれています(たとえば、Windowsでプロセッサアフィニティを設定することはできません)。実際にPCでゲームをリリースしている場合、互換性の問題が発生する可能性があります。たとえば、レンダーバッファー形式がサポートされていないか、シェーダーがコンパイルされていない可能性があります。これはPC開発の呪いですが、XNAに固有のものではありません。