Xna ContentLoadException问题

Xna ContentLoadException问题,xna,Xna,我对XNA很陌生。实际上,我有kurt jaegers的XNA 4.0书,所以我安装了VS 2010和XNA 4.0并编写了我的第一个程序。但该程序没有成功运行,它一直显示未找到的ContentLoadException文件。所以我在web上做了一些研究,发现XNA4.0存在一些问题。因此,我卸载了VS 2010和XNA 4.0,并安装了VS 2008(快速版)和XNA 3.0。然后我在上面编译了我的第一个程序,并成功地运行了 但是,现在我的新项目又面临同样的问题。我尝试了两种语法: xx =

我对XNA很陌生。实际上,我有kurt jaegers的XNA 4.0书,所以我安装了VS 2010和XNA 4.0并编写了我的第一个程序。但该程序没有成功运行,它一直显示未找到的
ContentLoadException
文件。所以我在web上做了一些研究,发现XNA4.0存在一些问题。因此,我卸载了VS 2010和XNA 4.0,并安装了VS 2008(快速版)和XNA 3.0。然后我在上面编译了我的第一个程序,并成功地运行了

但是,现在我的新项目又面临同样的问题。我尝试了两种语法:

xx = this.Content.Load<Texture2D>("TitleScreen");
xx = Content.Load<Texture2D>(@"TitleScreen");

为了正确加载内容,您需要使用泛型方法

ContentManager.Load<T>
ContentManager.Load
例如,如果尝试加载Texture2D元素,请使用以下语法:

Texture2D texture = Content.Load<Texture2D>("textureName");
Texture2D texture=Content.Load(“textureName”);

阅读有关在中加载内容的详细信息。

要通过ContentManager加载到中的内容需要在内容项目中。假装一下,看起来是这样的

Mygame.Content>SomeFolder>textureName

您可以使用
content.Load(“SomeFolder/textureName”)
来访问它。如果它位于内容项目的根目录下,则
Content.Load(“textureName”)
将起作用。如果没有,有两件事需要检查

  • 在纹理上单击鼠标右键,然后转到“属性”。查看AssetName属性。这是通过内容管理器加载的内容。试着用这个名字
  • 内容管理器查找的根目录是“Content”。查看
    Content.RootDirectory
    并查看它是什么。如果不是“内容”,就改成“内容”。这也可能奏效

  • 默认游戏对象构造函数以外的任何对象实例化的ContentManager都存在一个已知问题,这会导致您遇到的问题

    如果您确实使用的ContentManager对象不是游戏对象上提供的对象,则解决方案是:

    实例化ContentManager时,应将其RootDirectory属性设置为

    @“内容”


    希望能有所帮助

    在项目的“内容”下的输出路径中是否有TitleScreen.xnb(默认情况下)?我应该在哪里找到该文件,我在这里有点新,所以不知道所有细微差别。您的内容应该包含在资源项目中。确保您已首先将其导入到那里。你不能只是神奇地“弹出”内容,它必须先编译到你的资源应用程序中。
    Texture2D texture = Content.Load<Texture2D>("textureName");