Не вдалося завантажити файл чи збірку ... Параметр невірний


211

Нещодавно я зустрів такий виняток у рішенні C #:

Помилка 2 Не вдалося завантажити файл або збірку 'Newtonsoft.Json, Версія = 3.5.0.0, Культура = нейтральна, PublicKeyToken = b9a188c8922137c6' або одна з її залежностей. Параметр невірний. (Виняток з HRESULT: 0x80070057 (E_INVALIDARG))

Це не залежить ні від мого коду, ні від назви збірки (як Newtonsoft.Jsonу цьому випадку).

Коли я видаляю цей dll з рішення, компілятор розповідає про інше за тим же винятком. Тож я думаю, що на моєму ПК слід щось вимкнути / увімкнути :)


3
Ні. Це або помилка компілятора, або виняток під час виконання. Підозрюю останнє. Будьте зрозуміліші.
леппі

2
Я також зіткнувся з тим же винятком, але мені вдалося виправити це рішенням Томаса. Проблема була через неправильне відключення системи через відключення електроживлення
Sandeep

Відповіді:


346

Схоже на пошкоджену збірку, на яку посилається.

Очистити обидва:

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

  2. папка temp (має бути C:\Users\your_username\AppData\Local\Temp\Temporary ASP.NET Filesу Windows 7)

і подивіться, чи помилка все-таки трапляється


3
Алекс дякую за це! Друга річ допомогла: я очистив тимчасовий каталог файлів ASP.NEt)
Liker777

рада почути, що це працює. не забудьте прийняти відповідь, якщо це допомогло :)
Alex

9
дивіться відповідь від @Thomas щодо інших місць видалення (що працювало для мене)
Simon_Weaver

3
Дякую. Очищення папки temp користувача після важкої аварії вирішило проблему для мене.
Петрус Терон

13
% TEMP% \ Тимчасові файли ASP.NET C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Тимчасові файли ASP.NET C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Тимчасові файли ASP.NET C : \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Тимчасові файли ASP.NET C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Тимчасові файли ASP.NET C: /Windows/Microsoft.NET/Framework/ v4.0.30319 / Тимчасові файли ASP.NET Цей список буде рости так, ніби у вас є інші версії .NetFramework. Відповідь Src: stackoverflow.com/a/16033324/1724777 stackoverflow.com/a/11743430/1724777 Підстава для вероят: BLUE_SCREEN_OF_DEATH
NavaRajan

286

Залежно від того, у вас працює X64, вам може знадобитися очистити ще пару плям. Просто очищення мого каталогу користувачів було недостатньо.

  1. % TEMP% \ Тимчасові файли ASP.NET
  2. C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Тимчасові файли 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

Цей список зростатиме так, ніби у вас встановлені інші версії фреймворку.


72
можливо, вам знадобиться це зробити, якщо під час компіляції комп'ютер
заблокував екран

2
+1 Чудово складене доповнення до відповіді. Це вирішило для мене, дякую
Ральф Лавель

7
Це, мабуть, є рішенням, якщо ви працюєте Visual Studio як адміністратор, коли ваш комп'ютер виходить з ладу або, якщо ви так само глухий, як і я, коли ваш акумулятор розрядиться.
Сав

4
О БОЖЕ МІЙ! Я отримав понад 4 ГБ від моїх доісторичних проектів у тих місцях! Хіба ця річ ніколи не прибирає?!?! Дякую!
user2173353

2
Просто хотів повідомити, що ця посада вже 2 роки допомагає людям. Дуже дякую.
Лоранс Мороз

42

Мені довелося очистити

C: /Windows/Microsoft.NET/Framework/v4.0.30319/ Тимчасові файли ASP.NET

Лише тоді питання було вирішено.


1
Ця відповідь спрацювала і для мене, коли 64-розрядна машина Win 7, що розмістила MVC 4 в IIS Express
Ben H

13

Щоб знати, що очистити напевно - додайте наступний ключ реєстру:

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**.

3
Так, також, для перегляду шляхів мені було потрібно скидання IIS.
Ландон Поч

Де відображається цей журнал?
Люк Райс

Журнал відображається у виведенні помилок, коли відбувається виняток
voidsstr

12

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

C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Тимчасові файли ASP.NET \


5

Ви також можете очистити каталог пакунків і дозволити NuGet повторно завантажити відсутні пакети

це вирішило для мене питання


... і я, хоча я просто видалив каталогізний пакет пакунків.
Філ Купер

Я видалив темпи в AppData temp & c: \ ... \ micorosoft.net \ .. \ temp, iisreset, ... все, що було зазначено вище. але не працює зі мною. Після того, як я видалив усі пакунки та відновив її ... він працює зі мною ... велике спасибі: D
bunjeeb

@bunjeeb це чувак із задоволенням :)
megz

4

Видаліть усі файли з цих папок.

C: /Windows/Microsoft.NET/Framework/v4.0.30319/ Тимчасові файли ASP.NET C: /Windows/Microsoft.NET/Framework64/v4.0.30319/ Тимчасові файли ASP.NET


3

Отримати свіжий набір бінарних файлів з Source control допомогло.

Дякую


3

Просто очистіть цю папку: (лише Windows x64)

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Тимчасові файли ASP.NET


2

Дякую Алексу, ваш другий пункт допоміг мені це виправити.

Здається, якщо ви не запускаєте візуальну студію як адміністратора в Windows 7, вона зберігає тимчасові файли локально, а не C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Тимчасові файли ASP.NET.

Дивіться наступне повідомлення в блозі: http://www.dotnetscraps.com/dotnetscraps/post/Location-of-Temporary-ASPNET-files-in-Vista-or-Windows-7.aspx


2

У мене була така сама проблема - вище рішення не спрацювали. Проблема була з ActionMailer. Я запустив наступні видалення та встановлення команд nuget

uninstall-package ActionMailer
install-package ActionMailer

Вирішив мої проблеми, сподіваюся, допоможе хтось інший.


2

Це може статися під час посилань на обгорткові пристрої COM. У рамках проекту Visual Studio у розділі Посилання виберіть коди для обгортки COM, на які посилаються, та переконайтесь, що вони мають такі значення властивостей: "Вставити типи інтеропа": Неправильно та "Конкретна версія": Невірно.


Це чудова відповідь і має отримати більше відгуків. Усі інші відповіді сприймаються як належне контексту ASP.NET. Однак у мене був такий самий виняток, викликаний викликом COM у простому додатку консолі; це для мене прекрасно працювало. Дякую вам сер.
alexlomba87

2

Я просто видаляю свої темп даних програми з цього шляху

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

Вирішення проблеми


2

Я бачу, що багато техніків розмістили інформацію про очищення тимчасових каталогів ASP .Net, час роботи, що стосується кожного .Net-рамки, розміщеної на вашій машині, як у цьому відповіді. Але я вважаю, що ми повинні знати чітку логістику щодо того, чому нам потрібно сліпо очистити всі тимчасові робочі каталоги всіх .Net рамок. На мою думку, так не повинно бути.

Моя порада полягає в тому, щоб ви вирішили цю проблему, спробуйте підкреслити підхід до очищення каталогів. Як би ви знали, який каталог очистити?

  1. Перейдіть до IIS та клацніть правою кнопкою миші на вузлі веб-сайту у лівій панелі навігації, щоб відкрити контекстне меню. У контекстному меню вкажіть на Manage Application->, Advanced Settings...щоб відкрити Advanced Settingsвікно.
  2. Перевірте пул додатків, якому призначений ваш веб-сайт. У моєму випадку це так, DefaultAppPoolяк показано нижче:

введіть тут опис зображення

  1. Тепер перейдіть до Application Poolsвузла на лівій панелі навігації в IIS. Тепер перевірте, яку версію .Net CLR працює ваш пул додатків. У моєму випадку це v4.0, як показано нижче:

введіть тут опис зображення

Оскільки версія CLR, розміщена в моєму пулі додатків, є v4.0, то я чітко очистив лише тимчасові файли в папці, що стосуються ASP .NET v4.0, як нижче:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files

І це все. Мою проблему вирішили.

Заняття уроком : Це свідчить про те, що всі тимчасові файли, які використовує ваш веб-сайт, не розкидані по декількох каталогах, але вони одразу переносяться вашим пулом програм. Тож вам потрібно очистити лише цю конкретну папку.


1

Очищення C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Тимчасові файли ASP.NET працювали на мене. Думаючи про автоматизацію процесу видалення, щоб уникнути проблеми в майбутньому.


1

Якщо ви використовуєте Інструменти даних SQL Server 2012, який використовує оболонку VS2010 станом на 1 травня 2013 року, перевірте налаштування Менеджера конфігурацій. Зміни імені сервера з Workflow на xCPWorkflow було достатньо для отримання точно такого ж параметра Параметр невірний (Виняток з HRESULT: 0x80070057 (E_INVALIDARG)) .


1

Ви можете чистити, створювати або відновлювати свою програму або просто видаляти тимчасові файли ASP.NET за адресою C: \ Користувачі \ ВАШЕ USERNAME \ AppData \ Local \ Temp

Це працює як магія. У моєму випадку у мене виникло завдання, пов’язане зі збіркою, сказати Не вдалося завантажити файл bla bla bla

Ви також можете побачити рішення 2 як http://www.codeproject.com/Articles/663453/Understanding-Clean-Build-and-Rebuild-in-Visual-St



0

Проблема стосується .Net версії виконання бібліотеки посилань класів (розгорнуті посилання, виберіть бібліотеку і поставте прапорець "Версія виконання". У мене виникла проблема з Antlr3.Runtime, після оновлення проекту візуальної студії до версії v4.5. I використовував NuGet для видалення Microsoft ASP.NET Web Optimization Framework (через ланцюг залежностей, які заважали мені безпосередньо видаляти Antlr3)

Потім я використав NuGet для перевстановлення веб-оптимізації Microsoft ASP.NET. Це перевстановило правильні версії виконання.


0

У моєму випадку я хотів зібрати COM-видиму DLL. Проблема полягала в тому, що тут була розміщена стара версія цієї DLL:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE

Таким чином, Visual Studio завантажив цю версію замість щойно складеної, оскільки вона намагалася її зареєструвати.


0

Очистити всі файли з тимчасової папки (C: \ Users \ user_name \ AppData \ Local \ Temp \ тимчасові файли ASP.NET \ папка проекту)


0

Іноді вам також потрібно очистити цю папку: C: \ Windows \ Temp \ Тимчасовий ASP.NET


0

Я зіткнувся з такою ж помилкою, оскільки програма не знайшла залежних фреймворків у C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\папці. Я просто ремонтую свою візуальну студію, яка додала необхідні рамки у вищезгаданому розташуванні, і вона добре працює.


0

У моєму випадку зміна номера порту IISExpress у властивостях мого проекту вирішила проблему.


0

Якщо хтось там використовує набір інструментів WiX, я виявив, що мій проект інсталятора посилався на старий проект, який нещодавно був видалений з рішення. Мені потрібно було деякий час, щоб зрозуміти, оскільки в рішенні, яке я намагався створити, існує ряд проектів, і в повідомленні не вказано, який проект не вдалося створити (і очистити, який також провалився).


0

У мене були користувачі клієнта Siemens Teamcenter 10 для Microsoft Office, які отримували ту ж помилку щодо іншої DLL. Жодна з інших відповідей не спрацювала. Рішенням було видалити папки в

C:\Users\%username%\AppData\Local\assembly\

0

У мене була подібна проблема під час відкриття менеджера Nuget Packet, я видалив усі тимчасові файли та створив проект, він працював чудово.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.