Не удалось загрузить файл или сборку ... Неверный параметр - PullRequest
209 голосов
/ 25 ноября 2011

Недавно я столкнулся со следующим исключением в решении C #:

Ошибка 2 Не удалось загрузить файл или сборку 'Newtonsoft.Json, Версия = 3.5.0.0, Культура = Нейтральный, PublicKeyToken = b9a188c8922137c6' илиодна из его зависимостей.Неверный параметр.(Исключение из HRESULT: 0x80070057 (E_INVALIDARG))

Это не зависит ни от моего кода, ни от имени сборки (например, Newtonsoft.Json в этом случае).

КогдаЯ удаляю эту dll из решения, которое компилятор говорит о другом в том же исключении.Поэтому я полагаю, что что-то должно быть выключено / включено на моем ПК:)

Ответы [ 26 ]

344 голосов
/ 25 ноября 2011

Выглядит как ссылка на поврежденную сборку.

Очистите оба:

  1. папка \ bin вашего проекта

  2. временная папка (должна быть C:\Users\your_username\AppData\Local\Temp\Temporary ASP.NET Files в Windows 7)

и посмотреть, если ошибка все еще происходит

285 голосов
/ 31 июля 2012

В зависимости от того, используете ли вы X64, вам может понадобиться очистить еще пару точек.Недостаточно просто очистить каталог пользователя.

  1. % TEMP% \ Temporary ASP.NET Files
  2. C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ TemporaryФайлы ASP.NET
  3. C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Временные файлы ASP.NET
  4. C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727\ Временные файлы ASP.NET
  5. C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Временные файлы ASP.NET

Этот список будет расти, как если бы у вас были другиеверсии фреймворка установлены.

42 голосов
/ 16 апреля 2013

Я должен был очистить

C: /Windows/Microsoft.NET/Framework/v4.0.30319/Временные файлы ASP.NET

Только тогда проблема была решена.

13 голосов
/ 08 декабря 2013

Чтобы знать, что очистить наверняка - добавьте следующий раздел реестра:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion\EnableLog (DWord set to 1).

Тогда вы увидите вывод, как показано ниже. Это говорит вам, где asp.net пытается загрузить ваши DLL. Очистить этот каталог.

LOG: This bind starts in default load context.
LOG: Using application configuration file: c:\app\AtlasAdvisor\web\web.config
LOG: Using host configuration file: C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL **file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/3c8629f7/dfa387b6/Avanade.ViddlerNet.DLL.**
LOG: Attempting download of new URL **file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/3c8629f7/dfa387b6/Avanade.ViddlerNet/Avanade.ViddlerNet.DLL**.
12 голосов
/ 14 июня 2012

Очистите временные файлы инфраструктуры для вашего проекта в: -

C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \

5 голосов
/ 05 мая 2014

Вы также можете очистить каталог пакетов и позволить NuGet повторно загрузить отсутствующие пакеты

это решило проблему для меня

4 голосов
/ 02 октября 2015

Удалить все файлы из этих папок.

C: /Windows/Microsoft.NET/Framework/v4.0.30319/Временные файлы ASP.NET C: /Windows/Microsoft.NET/Framework64/v4.0.30319/Teorary ASP.NET Файлы

3 голосов
/ 27 июля 2015

Просто очистите эту папку: (только Windows x64)

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Временные файлы ASP.NET

3 голосов
/ 23 апреля 2012

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

Спасибо

2 голосов
/ 08 апреля 2015

Я просто удаляю временные данные приложения по этому пути

C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files

Решение проблемы

...