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

错误2无法加载文件或程序集'Newtonsoft。Json, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b9a188c8922137c6'或 它的依赖项之一。参数不正确。(例外 HRESULT: 0x80070057 (E_INVALIDARG))

这既不取决于我的代码,也不取决于程序集的名称(如Newtonsoft)。Json)。

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


当前回答

我必须清除

C: / Windows / Microsoft.NET/Framework/v4.0.30319/Temporary ASP。网络文件

直到那时,问题才得到解决。

其他回答

谢谢你,亚历克斯,你的第二点帮我解决了这个问题。

除非你在Windows 7中以管理员身份运行visual studio,否则它将临时文件存储在本地,而不是C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP. net。网络文件。

参见以下博客文章:http://www.dotnetscraps.com/dotnetscraps/post/Location-of-Temporary-ASPNET-files-in-Vista-or-Windows-7.aspx

这可以在引用COM包装器dll时发生。在Visual Studio项目中,在References下,选择要引用的COM包装器dll,并确保它们具有以下属性值:"Embed Interop Types": False和"Specific Version": False。

在我的情况下,我想编译一个COM可见DLL。问题是这个DLL的旧版本位于这里:

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

因此Visual Studio加载这个版本,而不是新编译的版本,因为它试图注册它。

我在这里遇到了同样的问题——上面的解决方案不起作用。问题出在ActionMailer上。我运行了以下卸载和安装nuget命令

uninstall-package ActionMailer
install-package ActionMailer

解决了我的问题,希望能帮助到别人。

删除这些文件夹中的所有文件。

C: / Windows / Microsoft.NET/Framework/v4.0.30319/Temporary ASP。网络文件 C: / Windows / Microsoft.NET/Framework64/v4.0.30319/Temporary ASP。网 文件