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

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

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

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


当前回答

您可以清除、构建或重新构建应用程序,也可以简单地删除临时ASP。C:\Users\YOUR USERNAME\AppData\Local\Temp

这就像魔法一样。在我的情况下,我有一个程序集绑定问题说无法加载文件bla bla bla

你也可以看到解决方案2为http://www.codeproject.com/Articles/663453/Understanding-Clean-Build-and-Rebuild-in-Visual-St

其他回答

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

在我的案例中,在我的项目属性中更改IISExpress端口号解决了这个问题。

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

uninstall-package ActionMailer
install-package ActionMailer

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

我看到很多技术人员已经发布了关于清除与你机器上的每个。net框架相关的asp.net运行时临时目录的帖子。但是我相信我们应该清楚地知道为什么我们需要盲目地清除所有。net框架的所有临时工作目录。在我看来,情况不应该是这样。

我的建议是,您应该尝试一种针指向的目录清除方法来解决这个问题。您如何知道要清除哪个目录?

转到IIS,右键单击左侧导航窗格中的网站节点,打开上下文菜单。在上下文菜单中指向管理应用程序->高级设置…,进入“高级设置”界面。 检查你的网站被分配到的应用程序池。在我的情况下,它是DefaultAppPool如下所示:

现在转到IIS左侧导航栏中的应用程序池节点。现在检查你的应用程序池正在运行哪个. net CLR版本。在我的例子中,它是v4.0,如下所示:

由于我的应用程序池托管的CLR版本是v4.0,所以我精确地清除了属于ASP .NET v4.0的文件夹中的临时文件,如下所示:

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

就是这样。我的问题解决了。

经验教训:这表明你的网站使用的所有临时文件并不是分散在几个目录中,而是同时被你的应用程序池引用。所以您只需要清除特定的文件夹。

我在IIS上运行的“Chocolatey服务器(简单)”也有同样的问题,必须执行以下步骤

Clean the "C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files" as recommended Uninstall the "Chocolatey Server (Simple)" application via choco Remove the directory "C:\tools\chocolatey.server" from the chocolatey package directory. Important, because otherwise Web.config is holding old dependencies which leads to the error. A simple re-installation will not update an existing Web.config (as it was in my case). Restart IIS and config Chocolatey Server as recommended by the authors. The chocolatey server page should now be visible without any errors.