【问题标题】:c# XNA content file not found after changing build actionc# 更改构建操作后未找到 XNA 内容文件
【发布时间】:2012-05-01 00:50:18
【问题描述】:

我正准备向市场提交我的第一款游戏,但我遇到了这个问题。

我今天意识到我的 XAP 文件看起来非常小。 (大约 350kb) 我今天读到我的所有内容(纹理、声音、字体)都应该将它们的构建操作设置为“内容”,而不是之前设置的“编译”。 我将它们全部设置为“内容”设置,现在我收到“加载“文件名”时出错。找不到文件。”

除了构建操作之外,我没有更改任何其他内容,并且我已确认未找到所有文件。 更改构建操作后,我需要在加载语句中更改什么吗? 目前我的加载语句看起来像这样。

font = content.Load<SpriteFont>("menufont");

ShipTexture = ScreenManager.Game.Content.Load<Texture2D>("Jet");

我已经使用 GameStateManagement 示例从头开始构建了我的游戏,以防万一。

请帮忙。谢谢。

【问题讨论】:

    标签: c# xna xap


    【解决方案1】:

    我不确定你是从哪里看到的,但这不是真的。

    ContentManager 对象,如 Game.Content,被编程为查找 xnb 文件。这些必须从源文件编译,如 .png、.wav 等。设置为 Content 将源文件直接复制到 XAP 中,因此您必须使用 TitleContainer.OpenStream 打开它使用它,而不是普通的Content.Load,因为它不是xnb 文件。

    如果您的 XAP 文件非常小,可能是因为 XAP 对整个包使用 ZIP 压缩。查看 bin\Debug 或 bin\Release 文件夹中的“Content”文件夹以查看未压缩的完整大小。

    【讨论】:

      【解决方案2】:

      您希望将其设置为 Compile,而不是 ContentBuild Action: Compile 意味着它将作为 XNA 内容处理到 .xnb 文件中,然后可以通过 ContentManager.Load<T> 调用访问该文件。 Build Action: Content 是其他不会导致您的内容被编译的东西。它要么直接复制,要么被忽略,但无论哪种方式,资产都无法从 ContentManager 获得。

      【讨论】:

      • 所以在将我的 XAP 文件提交到市场时将其设置为编译是否可以?正如我之前所说,XAP 看起来真的很小。
      猜你喜欢
      • 2011-04-09
      • 2021-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-08
      • 1970-01-01
      • 2016-06-23
      • 1970-01-01
      相关资源
      最近更新 更多