更改构建操作后找不到c#XNA内容文件

时间:2012-05-01 00:50:18

标签: c# xna xap

我只是准备将我的第一款游戏提交给市场,但我遇到了这个问题。

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

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

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

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

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

请帮忙。感谢。

2 个答案:

答案 0 :(得分:3)

我不确定你在哪里阅读,但事实并非如此。

ContentManager对象(如Game.Content)被编程为查找xnb个文件。那些必须从源文件编译,如.png,.wav等。设置为Content将源文件直接复制到XAP中,然后必须用{ {1}}要使用它,而不是普通的TitleContainer.OpenStream,因为它不是Content.Load文件。

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

答案 1 :(得分:1)

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