XNA コンテンツ パイプラインによって生成された .xnb リソース ファイルを、ルーズ ファイルとして「コンテンツ」フォルダーにダンプする代わりに、アプリケーション (exe) またはライブラリ (dll) に埋め込むことはできますか?
もしそうなら、このプロセスは通常のビルド プロセスの一部として自動化できますか?
XNA コンテンツ パイプラインによって生成された .xnb リソース ファイルを、ルーズ ファイルとして「コンテンツ」フォルダーにダンプする代わりに、アプリケーション (exe) またはライブラリ (dll) に埋め込むことはできますか?
もしそうなら、このプロセスは通常のビルド プロセスの一部として自動化できますか?
はい、できます。実際、これを行うための機能 ( ResourceContentManager
) がフレームワークに組み込まれています。
このブログ投稿では、その方法について説明しています。
(リソースをアセンブリに埋め込むことにより、アセンブリが読み込まれるときにすべてのリソースが 1 回のヒットでメモリに読み込まれることに注意することが重要です! また、ディスクからストリーミングする必要がある一部のリソース タイプでは機能しません。)
自動化はよりトリッキーです。そのブログ投稿で説明されている方法では、コンテンツを一度ビルドしてから、出力 XNB ファイルをプロジェクトに追加する必要があります。この点は「問題なく動作する」はずですが、Debug と Release で異なる XNB 出力が問題になる可能性があります。
このステップを削除したい場合は、MSBuild を少しいじる必要があります。この質問(MSBuild でワイルドカードを使用する方法の説明) と、おそらくこの質問(フォルダーの作成方法、および利用可能な 2 種類の埋め込み)の情報を組み合わせようとすると、運が良いと思います。