无法加载文件或程序集...参数不正确

Lik*_*777 209 c# compiler-construction compiler-errors exception

最近我在C#解决方案中遇到了以下异常:

错误2无法加载文件或程序集"Newtonsoft.Json,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = b9a188c8922137c6"或其依赖项之一.参数不正确.(HRESULT异常:0x80070057(E_INVALIDARG))

这不依赖于我的代码或程序集的名称(如Newtonsoft.Json本例所示).

当我从解决方案中删除此dll时,编译器会在同一个异常中告诉另一个.所以我想在我的电脑上关闭/打开一些东西:)

Ale*_*lex 344

看起来像被引用的损坏的程序集.

清除两者:

  1. 项目的\ bin文件夹

  2. 临时文件夹(应该C:\Users\your_username\AppData\Local\Temp\Temporary ASP.NET Files在Windows 7中)

并查看错误是否仍然发生

  • %TEMP%\ Temporary ASP.NET Files C:\ Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files C:\ Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files C :\ Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files C:/Windows/Microsoft.NET/Framework/ v4.0.30319 /临时ASP.NET文件此列表将随着.NetFramework的其他版本而增长.回答Src:http://stackoverflow.com/a/16033324/1724777 http://stackoverflow.com/a/11743430/1724777问题原因:BLUE_SCREEN_OF_DEATH (13认同)
  • 请看@Thomas对其他删除地点的回答(这对我有用) (9认同)
  • alex非常感谢!第二件事有所帮助:我清理了临时ASP.NEt文件目录) (3认同)
  • 谢谢.在硬崩溃后清除用户临时文件夹解决了我的问题. (3认同)

Tho*_*mas 286

根据您是否正在运行X64,您可能需要清理几个位置.只是清理我的用户目录是不够的.

  1. %TEMP%\ Temporary ASP.NET Files
  2. C:\ Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files
  3. C:\ Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
  4. C:\ Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files
  5. C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files

此列表将增长,就像您安装了其他版本的框架一样.

  • 如果计算机在编译期间进行了蓝屏,您可能会发现需要这样做 (72认同)
  • 如果您在计算机崩溃时以管理员身份运行 Visual Studio,或者当您的电池耗尽时,如果您和我一样笨拙,这看起来是解决方案。 (7认同)
  • 我的天啊!我从这些地方的史前项目中获得了超过4GB的空间!这东西不清理吗?!?!谢谢! (4认同)
  • +1很好地编译了答案的补充.这为我修好了,谢谢 (2认同)
  • 只是想让你知道,超过2年,这篇文章仍在帮助人们.非常感谢. (2认同)

Sac*_*nth 42

我必须清楚

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

只有这样才能解决问题.

  • 你是国王 (2认同)

小智 13

要知道要清除的内容 - 添加以下注册表项:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion\EnableLog (DWord set to 1).
Run Code Online (Sandbox Code Playgroud)

然后你会看到如下的输出.这告诉你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**.
Run Code Online (Sandbox Code Playgroud)

  • 哦,还有一个IIS重置是我看到路径所必需的. (3认同)

and*_*ndy 12

清除项目的临时框架文件: -

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


meg*_*egz 5

您还可以清除packages目录并允许NuGet重新下载丢失的包

它解决了我的问题