C# 未在类中加载图像

C# 未在类中加载图像,c#,xna,texture2d,C#,Xna,Texture2d,我正在尝试在类中加载图像: myTexture = game.Content.Load<Texture2D>("myTexture"); myTexture=game.Content.Load(“myTexture”); 代码编译得很好,但运行时会显示“未找到文件”。但在解决方案资源管理器中肯定有一个名为myTexture的.jpg文件 我相信这很简单,但我错过了什么?我猜我一定是在找一个错误的目录,但我已经把它简化成了我能想到的最简单的测试程序,并且仍然得到了错误 我可以从主游

我正在尝试在类中加载图像:

myTexture = game.Content.Load<Texture2D>("myTexture");
myTexture=game.Content.Load(“myTexture”);
代码编译得很好,但运行时会显示“未找到文件”。但在解决方案资源管理器中肯定有一个名为myTexture的.jpg文件

我相信这很简单,但我错过了什么?我猜我一定是在找一个错误的目录,但我已经把它简化成了我能想到的最简单的测试程序,并且仍然得到了错误


我可以从主游戏加载此图像,因此从类中加载图像肯定是个问题。转到VS中的内容视图,单击图像文件,您应该可以查看图像的属性。这些属性之一是“构建操作”。这应该设置为“Content”,如果不是,XNA不会尝试将其构建到.xnb文件中,因此不会显示在Content.Load中


如果您知道该图像位于content文件夹中,并且知道它作为构建操作被设置为“content”,请转到构建并重新生成解决方案(如果我记得应该是F6),此时会显示.xnb。

您是否已将该图像添加到content项目中?是否在内容目录中创建了一个
myTexture.xnb
?在解决方案资源管理器中名为WindowsGame1(内容)的部分下面有一个名为myTexture.jpg的文件。没有任何.xnb文件,但我以前从未使用过它们,当我直接从Game1类加载时,请检查文件的属性。特别是如果它的资产名称是
myTexture
。xnb文件将位于输出目录中。检查一下,实际上有一个类似的问题。也许这会有帮助:抱歉,另一个愚蠢的问题-你说的输出目录是什么意思?好的,构建操作被设置为compile,我现在已经将其更改为Content,但是仍然得到相同的错误。我不明白的是,我可以从game类中很好地加载文件,只有当我尝试从类中读取文件时,编译器才能找到文件。@user2056166听起来你分配纹理的变量可能超出了范围。回顾XWaveX在上面评论中发布的答案,它进一步描述了这个问题。(您需要创建一个类级变量来使用
LoadContent
方法之外的图像。)自从更改解决方案后,您是否重新生成了该解决方案?此外,如果尚未选中,则处理器应设置为“纹理处理器”,导入器应设置为“纹理导入器”。可以使用file类加载文件的原因是,该类查找实际的.jpeg文件,而Content.load查找通过内容管道的内容,将文件转换为XNA需要的预处理的.XNB。当设置为编译时,.XNB永远不会生成,因此file类可以很好地找到.jpeg,但是Content.Load永远不会得到它想要的.XNB。@HyperAnthony我想我已经创建了这个变量。基本上,我试图复制这个例子:,它在这里工作得很好