1

XNA の学習目的で個人的なプロジェクトに取り組んでいます。コンテンツ パイプラインを使用するには、xna ランタイムをインストールする必要があることをオンラインで読みました。そこで、Texture2D.FromStreamを使用してファイルをロードすることにしました。

Visual C# からプロジェクトを実行しているときはすべて問題ありませんが、プロジェクトを公開して実行すると、すぐにクラッシュしました。クラッシュに関する詳細情報を確認する方法があるかどうかはわかりませんが、ないと思います。コンテンツ パイプラインを使用していないことが原因だと思います。

公開されたプロジェクトのアプリケーション ファイルの中を見ると、.xnb ファイルだけが表示されます。私が使用している生の.pngおよび.xmlファイルはありません。

そこにファイルを手動で配置しようとしましたが、うまくいきませんでした。ファイルはすべて「Projectname\bin\x86\Debug\Content」フォルダーにあります。

誰でも何か考えがありますか?


編集

コンテンツ パイプラインを使用するように contentmanager を書き直したところ、公開されたプロジェクトが PC で正常に動作するようになりました。そのため、コンテンツ パイプラインなしで機能させる方法を見つけなければなりません。

4

2 に答える 2

2

Texture2D.FromStreamを使用する場合は、次の2つの事実に注意する必要があります。

  1. 一部のリソースのプロパティを変更する必要があります。

    • コンパイルアクション:なし
    • 結果フォルダにコピー:常に

      このように、xnbは構築されず、代わりにリソースを取得します

  2. 適切なパスを設定する必要があります。これで、パスに「bin\Debug」が含まれなくなりました。

于 2011-09-06T10:10:36.710 に答える
0

@Blauが言及しているように、画像のプロパティを変更すると問題が解決します。ご覧のとおり、FromStream メソッドは現在、すべてのプラットフォームのフレームワークで完全にサポートされています:
http://blogs.msdn.com/b/shawnhar/archive/2010/05/10/image-codecs-in-xna-game -studio-4-0.aspx .

エラーを見る限り...エラーをスローしていると思われるステートメントの周りにいつでもtry catchを配置し、エラーテキストを画面に書き込んで確認できます。何かのようなもの

try
{
    //The offending code
}
catch(Exception ex)
{
    WriteError(ex.Message);
}
于 2011-09-06T10:20:01.060 に答える