FileNotFoundException - 没有文件丢失

时间:2012-08-13 11:54:03

标签: c# windows-phone-7 filenotfoundexception

第一次进入视图时,会引发此异常:

  

mscorlib.dll中出现'System.IO.FileNotFoundException'类型的第一次机会异常

首先 - 为什么它会在我第一次进入特定视图时发生?即使问题出现在构造函数中(它不可能),每次进入视图时都会调用它(并抛出异常)。

其次 - 我怎样才能找到这种例外的来源?它没有进入调试器,并且没有资源文件(如背景图像,应用栏图标)丢失。

最后 - 除了直接引用代码中的文件外,会抛出这样的异常?

我会告诉你有问题的代码,但文件太大了,无法发布所有代码。

更新

调试后,我注意到错误发生在构造函数 OnNavigatedTo() Loaded()之后。在OnNavigatedTo方法中有一个线程正在启​​动,但是我试图尝试捕获该部分的每个元素(以及它的每个内部部分),并且没有发现错误。

更新2:

经过多次调试后,我发现错误信息:

  

找不到文件或程序集名称'System.Windows.debug.resources,Version = 2.0.5.0,Culture = en-US,PublicKeyToken = xxxxxxxxxxxxx'或其中一个依赖项。

堆栈跟踪:

at System.ThrowHelper.throwVersion37CompatException(ExceptionType newEType,
    String newString, ExceptionType oldEType, String oldString)
at System.Reflection.Assembly.Load(String assemblyString)
at System.Windows.Resx..ctor()
at System.Windows.Resx.GetLoader()
at System.Windows.Resx.GetStringHelper(String name)
at System.Windows.Resx.GetString(String name)
at System.Windows.Controls.Primitives.ToggleButton.ToString()
at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj,
    IntPtr unmanagedObjArgs, Int32 argsTypeIndex,
    Int32 actualArgsTypeIndex, String eventName)

1 个答案:

答案 0 :(得分:1)

  1. 您可以为第一次机会异常visual studio设置break,调试以查看有关FileNotFound异常的详细信息,缺少哪个文件。

  2. 有时候,clr试图找到一些扩展dll,这对我们来说通常太神奇了。例如,如果在项目中使用XmlSerialize,如果不使用sgen.exe为可序列化类型生成动态xml序列化dll,CLR将在运行时生成一个,但在此之前,clr将尝试加载汇编,这将导致FileNotFoundException,但捕获