C# 类型为';系统异常';在mscorlib.ni.dll中发生,但未在用户代码中处理
我想在Monogame Windows Phone 8项目中加载着色器,但我总是在这一行中收到以下错误消息:C# 类型为';系统异常';在mscorlib.ni.dll中发生,但未在用户代码中处理,c#,windows-phone-8,monogame,C#,Windows Phone 8,Monogame,我想在Monogame Windows Phone 8项目中加载着色器,但我总是在这一行中收到以下错误消息: BinaryReader Reader = new BinaryReader(assembly.GetManifestResourceStream("Effect1.mgfxo")); 中发生“System.ArgumentNullException”类型的异常 mscorlib.ni.dll,但未在用户代码中处理 其他信息:值不能为空 如果存在此异常的处理程序,则程序可能会安全运行
BinaryReader Reader = new BinaryReader(assembly.GetManifestResourceStream("Effect1.mgfxo"));
中发生“System.ArgumentNullException”类型的异常
mscorlib.ni.dll,但未在用户代码中处理
其他信息:值不能为空
如果存在此异常的处理程序,则程序可能会安全运行
继续
怎么了?如何加载该文件
我的项目:
我的代码:
#if RESOURCEFILES
BinaryReader Reader = new BinaryReader(File.Open(@"..\\..\\..\\Content\\Effect1.mgfxo", FileMode.Open));
#else
Assembly assembly = Assembly.GetExecutingAssembly();
BinaryReader Reader = new BinaryReader(assembly.GetManifestResourceStream("Effect1.mgfxo"));
#endif
distortionEffect = new Effect(GraphicsDevice, Reader.ReadBytes((int)Reader.BaseStream.Length));
那么,
Effect1.mgfxo
是否是嵌入式资源?如果是,您确定它嵌入在根目录中吗?查看要检查的Assembly.GetManifestResourceNames
。我的项目中有一个名为Content的文件夹,Effect1.mgfxo在该文件夹中。您是否按照我的建议使用了Assembly.GetManifestResourceNames?我如何使用它?我该怎么办?打电话给它,看看它会返回什么。检查您的资源是否在其中,如果在其中,是否有其他名称(例如Content.Effect1.mgfxo
)