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

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

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

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


看起来像是引用了一个损坏的程序集。

明确的两个:

项目的\bin文件夹 临时文件夹(应该是C:\Users\your_username\AppData\Local\ temp \Temporary ASP。windows 7中的NET文件

看看错误是否仍然发生


从源代码控制处获得一组新的二进制文件会有所帮助。

谢谢


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

C:\WINDOWS\ Microsoft.NET \ Framework \ v2.0.50727 \临时ASP。网络文件\


这取决于您是否运行X64,您可能需要清理更多的位置。仅仅清理我的用户目录是不够的。

% % \ TEMP临时ASP。网络文件 C:\Windows\ Microsoft.NET \ Framework \ v2.0.50727 \临时ASP。网络文件 C:\Windows\ Microsoft.NET \ Framework \ v4.0.30319 \临时ASP。网络文件 C:\Windows\ Microsoft.NET \ Framework64 \ v2.0.50727 \临时ASP。网络文件 C:\Windows\ Microsoft.NET \ Framework64 \ v4.0.30319 \临时ASP。网络文件

如果你安装了其他版本的框架,这个列表将会增加。


清除C:\Windows\Microsoft.NET\Framework\v2.0.50727\临时ASP。NET文件对我有用。考虑将删除过程自动化,以避免将来出现这种问题。


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

除非你在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


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

uninstall-package ActionMailer
install-package ActionMailer

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


我必须清除

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

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


如果您正在使用SQL Server 2012的数据工具,在2013年5月1日使用VS2010 shell,请检查您的配置管理器设置。将服务器名称从Workflow更改为xCPWorkflow足以产生完全相同的参数不正确(Exception from HRESULT: 0x80070057 (E_INVALIDARG))消息。


该问题与引用类库的. net运行时版本有关(展开引用,选择库并勾选“运行时版本”)。我在Antlr3上遇到了点问题。运行时,在将我的visual studio项目升级到v4.5之后。我用NuGet卸载了Microsoft ASP。NET Web优化框架(由于依赖链阻止我直接卸载Antlr3)

然后我用NuGet重新安装了Microsoft ASP。NET Web优化框架。这将重新安装正确的运行时版本。


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

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

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


要知道清除什么确定-添加以下注册表项:

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

清除临时文件夹C:\Users\user_name\AppData\Local\Temp\ temporary ASP. exe中的所有文件。NET Files\project文件夹)


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

这为我解决了问题


有时候,你也需要清理这个文件夹:C:\Windows\Temp\Temporary ASP. exe网


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


我只是从这个路径中删除了我的应用程序临时数据

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

问题解决


您可以清除、构建或重新构建应用程序,也可以简单地删除临时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


清除此文件夹(仅限windows x64)

C:\Windows\ Microsoft.NET \ Framework \ v4.0.30319 \临时ASP。网络文件


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

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


我遇到了同样的错误,因为应用程序没有在C:\Program Files (x86)\Reference程序集\Microsoft\框架\中找到依赖框架。NETFramework \文件夹。我只是修复了我的Visual studio,在上面的位置添加了所需的框架,它工作得很好。


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


如果还有其他人在使用WiX工具集,我发现我的安装程序项目引用了一个最近从解决方案中删除的旧项目。我花了一段时间才意识到,因为在我试图构建的解决方案中有许多项目,并且消息没有指出哪个项目构建失败了(以及干净的,哪个项目也失败了)。


我让微软Office的Siemens Teamcenter 10客户端用户得到关于不同DLL的相同错误。其他答案都没用。解决方案是删除文件夹

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

我看到很多技术人员已经发布了关于清除与你机器上的每个。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

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

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


我在MVC中制作控制器时遇到了这个问题。我改变了版本。net框架。问题解决了


我有类似的问题,而打开Nuget包管理器, 我删除了所有的临时文件和建立项目,它工作得很好。


我在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.