Системе io fileloadException не удалось загрузить файл или сборку

Обновлено: 29.06.2024

Сообщение об ошибке

- Пример ошибки из CA 14.1.2:

Во время выполнения текущего веб-запроса возникло необработанное исключение. Информацию о происхождении и расположении исключения можно определить с помощью приведенной ниже трассировки стека исключений.

WRN: ведение журнала привязки сборки отключено.
Чтобы включить ведение журнала ошибок привязки сборки, установите для параметра реестра [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) значение 1.
Примечание: Существует некоторое снижение производительности, связанное с ведением журнала сбоев привязки сборки.
Чтобы отключить эту функцию, удалите параметр реестра [HKLM\Software\Microsoft\Fusion!EnableLog].

- Пример ошибки из DA 14.1.2:

Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)
Описание: Необработанное исключение возникло во время выполнения текущего веб-запроса. Просмотрите трассировку стека, чтобы получить дополнительные сведения об ошибке и месте ее возникновения в коде.

Сведения об исключении: System.IO.FileLoadException: не удалось загрузить файл или сборку «Microsoft.Data.Edm, версия = 5.6.0.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35» или одну из ее зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)

Во время выполнения текущего веб-запроса возникло необработанное исключение. Информацию о происхождении и расположении исключения можно определить с помощью приведенной ниже трассировки стека исключений.

Отслеживание загрузки сборки. Следующая информация может помочь определить, почему не удалось загрузить сборку "Microsoft.Data.Edm, Version=5.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35".

WRN: ведение журнала привязки сборки отключено.
Чтобы включить ведение журнала ошибок привязки сборки, установите для параметра реестра [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) значение 1.
Примечание: Существует некоторое снижение производительности, связанное с ведением журнала сбоев привязки сборки.
Чтобы отключить эту функцию, удалите параметр реестра [HKLM\Software\Microsoft\Fusion!EnableLog].

- Пример ошибки из DA 14.2.0:

Не удалось загрузить файл или сборку «Newtonsoft.Json, версия = 6.0.0.0, культура = нейтральная, PublicKeyToken = 30ad4fe6b2a6aeed» или одну из ее зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)
Описание: Необработанное исключение возникло во время выполнения текущего веб-запроса. Просмотрите трассировку стека, чтобы получить дополнительные сведения об ошибке и месте ее возникновения в коде.

Сведения об исключении: System.IO.FileLoadException: не удалось загрузить файл или сборку «Newtonsoft.Json, версия = 6.0.0.0, культура = нейтральная, PublicKeyToken = 30ad4fe6b2a6aeed» или одну из ее зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)

Во время выполнения текущего веб-запроса возникло необработанное исключение. Информацию о происхождении и расположении исключения можно определить с помощью приведенной ниже трассировки стека исключений.

Отслеживание загрузки сборки. Следующая информация может помочь определить, почему не удалось загрузить сборку «Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed».

WRN: ведение журнала привязки сборки отключено.
Чтобы включить ведение журнала ошибок привязки сборки, установите для параметра реестра [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) значение 1.
Примечание. Существует некоторое снижение производительности, связанное с ведением журнала сбоев привязки сборки.
Чтобы отключить эту функцию, удалите параметр реестра [HKLM\Software\Microsoft\Fusion!EnableLog].

Некоторая информация относится к предварительной версии продукта, которая может быть существенно изменена до ее выпуска. Microsoft не дает никаких явных или подразумеваемых гарантий в отношении представленной здесь информации.

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

Примечания

Обозначает ошибку, возникающую, когда файл сборки найден, но не может быть загружен.

Исключение FileNotFoundException возникает, когда файл не загружается из-за невозможности найти его. Если файл найден, но не может быть загружен из-за недостаточных разрешений, выдается исключение SecurityException.

FileLoadException имеет HRESULT по умолчанию COR_E_FILELOAD, который имеет значение 0x80131621, но это не единственный возможный HRESULT.

Точное время загрузки ссылок на статические сборки не указано. Это исключение может быть вызвано до того, как метод, который статически ссылается на сборку, которую не удалось загрузить, начнет выполняться.

Связанные советы

Проверьте, чтобы сборка или модуль не загружались дважды с двумя разными свидетельствами.
Доказательства — это набор информации, которая является входной информацией для принятия решений о политике безопасности, например, какие разрешения могут быть предоставлены коду. Дополнительные сведения см. в разделе GacRemove и доказательства

При использовании методов RegisterAssembly или UnRegisterAssembly убедитесь, что длина имени сборки не превышает установленную системой максимальную длину.
Длина имени сборки не может превышать установленный системой максимум. Дополнительные сведения см. в разделе PathTooLongException.

При загрузке вспомогательной сборки убедитесь, что указанная информация о культуре совпадает с информацией о культуре файла.
Вспомогательные сборки содержат локализованные ресурсы, содержащие нелокализуемый исполняемый код, и ресурсы для одного языка и региональных параметров, которые используются в качестве языка по умолчанию или нейтрального языка. Дополнительные сведения см. в разделе GetSatelliteAssembly.

Конструкторы

Инициализирует новый экземпляр класса FileLoadException, устанавливая для свойства Message нового экземпляра системное сообщение с описанием ошибки, например "Не удалось загрузить указанный файл". Это сообщение учитывает текущую культуру системы.

Инициализирует новый экземпляр класса FileLoadException с сериализованными данными.

Инициализирует новый экземпляр класса FileLoadException с указанным сообщением об ошибке.

Инициализирует новый экземпляр класса FileLoadException с указанным сообщением об ошибке и ссылкой на внутреннее исключение, которое является причиной этого исключения.

Инициализирует новый экземпляр класса FileLoadException с указанным сообщением об ошибке и именем файла, который не удалось загрузить.

Инициализирует новый экземпляр класса FileLoadException с указанным сообщением об ошибке, именем файла, который не удалось загрузить, и ссылкой на внутреннее исключение, являющееся причиной этого исключения.

Свойства

Получает набор пар "ключ-значение", которые предоставляют дополнительную определяемую пользователем информацию об исключении.

Получает имя файла, вызвавшего это исключение.

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

Получает или задает ссылку на файл справки, связанный с этим исключением.

Получает или задает HRESULT, закодированное числовое значение, которое назначается определенному исключению.

Получает экземпляр Exception, вызвавший текущее исключение.

Получает сообщение об ошибке и имя файла, вызвавшего это исключение.

Получает или задает имя приложения или объекта, вызвавшего ошибку.

Получает строковое представление ближайших кадров в стеке вызовов.

Получает метод, выдающий текущее исключение.

Методы

Определяет, равен ли указанный объект текущему объекту.

При переопределении в производном классе возвращает исключение, являющееся основной причиной одного или нескольких последующих исключений.

Служит хеш-функцией по умолчанию.

Задает SerializationInfo с именем файла и дополнительной информацией об исключении.

При переопределении в производном классе устанавливает SerializationInfo с информацией об исключении.

Получает тип среды выполнения текущего экземпляра.

Создает поверхностную копию текущего объекта.

Возвращает полное имя текущего исключения и, возможно, сообщение об ошибке, имя внутреннего исключения и трассировку стека.

События

Происходит при сериализации исключения для создания объекта состояния исключения, содержащего сериализованные данные об исключении.

Если одна сборка пытается использовать другую сборку, и у них нет соответствующей разрядности (x64 или x86), вы получите исключение: либо BadImageFormatException, либо FileLoadException.

Если ваш проект ссылается на другую сборку, а разрядность не совпадает, вы получите следующее исключение:

System.BadImageFormatException: «Не удалось загрузить файл или сборку. Была предпринята попытка загрузить программу с неправильным форматом.’

Если вы пытаетесь динамически загрузить сборку, например, с помощью Assembly.LoadFrom(), вы получите следующее исключение:

System.IO.FileLoadException: «Не удалось загрузить файл или сборку».

Решение. Измените разрядность сборки

Чтобы решить эту проблему, вам нужно изменить разрядность одной из сборок.

Как указать разрядность сборки

Что означает целевая платформа Любой ЦП?

При использовании любого ЦП по умолчанию исполняемые файлы будут использовать ту же разрядность, что и компьютер, а сборки будут использовать ту же разрядность, что и процесс, в который они загружаются. Например, если у вас есть консольное приложение, использующее любой процессор, и вы запускаете его на 64-разрядном компьютере, консольное приложение будет загружено как 64-разрядный исполняемый файл. Любые сборки, на которые он ссылается и которые используют Любой процессор, также будут загружены как 64-разрядные сборки.

Какую целевую платформу следует использовать? Любой процессор, x86 или x64?

Если вы не используете стороннюю сборку

Вы управляете обеими сборками и можете изменить их обе для использования любого ЦП

Если вы используете стороннюю сборку

Скорее всего, вы используете стороннюю сборку, для которой явно задана разрядность x64 или x86. Вы не можете изменить разрядность сторонней сборки, но можете изменить свою. То, на что вы его измените, будет зависеть от того, что использует сторонняя сборка и на какой компьютер вы пытаетесь ее загрузить.

В следующей таблице показаны четыре сценария.

Примечание. Если вам нужно явно установить разрядность одной сборки в программе, это будет иметь эффект ряби, и вам также придется убедиться, что процесс выполняется с правильной разрядностью.

Читайте также: