FileNotFoundException - отсутствует файл

При первом входе в вид возникает это исключение:

Первое случайное исключение типа "System.IO.FileNotFoundException" произошло в mscorlib.dll

Прежде всего - с чего бы это случилось, когда я впервые войду в эту конкретную точку зрения? Даже если бы проблема была в конструкторе (что не могло быть), она будет вызываться (и вызываться исключение) каждый раз, когда я вхожу в представление.

Во-вторых, как найти источник такого исключения? Он не врывается в отладчик, и отсутствуют файлы ресурсов (например, фоновые изображения, значки на панели приложений).

И наконец - что (кроме прямой ссылки на файлы в коде) может вызвать такое исключение?

Я хотел бы показать вам код, о котором идет речь, но файл слишком велик, чтобы публиковать его все.

ОБНОВИТЬ:

После отладки я заметил, что ошибка происходит после конструктора и OnNavigatedTo() и раньше Loaded(), В методе OnNavigatedTo запущен поток, но я попытался перехватить каждый элемент этой части (и каждую внутреннюю часть), но ошибки не было найдено.

ОБНОВЛЕНИЕ 2:

После отладки я обнаружил сообщение об ошибке:

Имя файла или сборки 'System.Windows.debug.resources, версия =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 ответ

  1. Вы можете установить разрыв для первого случая исключения VisualStudio, отладки, чтобы увидеть подробности об исключении FileNotFound, файл которого отсутствует.

  2. Иногда clr пытается найти расширение dll, которое обычно слишком волшебно для нас. например, если вы используете XmlSerialize в своем проекте, если вы не используете sgen.exe для генерации динамической dll XML-сериализации для вашего сериализуемого типа, CLR сгенерирует ее во время выполнения, но перед этим clr попытается загрузить сборку, который вызовет FileNotFoundException, но перехватывается

Другие вопросы по тегам