最近我在C#解决方案中遇到了以下异常:
错误2无法加载文件或程序集'Newtonsoft.Json,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = b9a188c8922137c6'或其依赖项之一 . 参数不正确 . (HRESULT异常:0x80070057(E_INVALIDARG))
这不依赖于我的代码或程序集的名称(在本例中类似于 Newtonsoft.Json
) .
当我从解决方案中删除此dll时,编译器会在同一个异常中告诉另一个 . 所以我想在我的电脑上关闭/打开一些东西:)
26 回答
看起来像被引用的损坏的程序集 .
清除两者:
项目的\ bin文件夹
临时文件夹(在Windows 7中应为
C:\Users\your_username\AppData\Local\Temp\Temporary ASP.NET Files
)并查看错误是否仍然发生
根据您是否正在运行X64,您可能需要清理几个位置 . 只是清理我的用户目录是不够的 .
%TEMP%\临时ASP.NET文件
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
此列表将增长,就像您安装了其他版本的框架一样 .
我必须清楚
只有这样才能解决问题 .
要知道要清除的内容 - 添加以下注册表项:
然后你会看到如下的输出 . 这告诉你asp.net在哪里尝试加载你的DLL . 清除此目录 .
清除项目的临时框架文件: -
C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \
您还可以清除packages目录并允许 NuGet 重新下载丢失的包
它解决了我的问题
删除这些文件夹中的所有文件 .
从Source控件获取新的二进制文件有所帮助 .
谢谢
只需清除此文件夹:(仅限Windows x64)
谢谢亚历克斯你的第二点帮我解决了这个问题
看来,除非您在Windows 7中以管理员身份运行visual studio,否则它会在本地存储您的临时文件,而不是C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files .
请参阅以下博文:http://www.dotnetscraps.com/dotnetscraps/post/Location-of-Temporary-ASPNET-files-in-Vista-or-Windows-7.aspx
我在这里遇到了同样的问题 - 以上解决方案无效 . 问题在于ActionMailer . 我运行了以下卸载并安装nuget命令
解决了我的问题,希望能帮助别人 .
引用COM包装器时可能会发生这种情况 . 在Visual Studio项目的“引用”下,选择要引用的COM包装器dll,并确保它们具有以下属性值:“嵌入互操作类型”:False和“特定版本”:False .
我只是从这个路径中删除我的应用程序临时数据
问题解决了
我看到很多技术人员已经发布了关于清除ASP .Net运行时的临时目录,这些目录与机器上托管的每个.Net框架相关,如this答案 . 但我相信我们应该知道明确的物流,为什么我们需要盲目地清除所有.Net框架的所有临时工作目录 . 据我说,情况应该不是这样 .
我的建议是你应该尝试使用引脚指向目录清除方法来解决这个问题 . 你怎么知道要清除哪个目录?
转到IIS并右键单击左侧导航窗格中的网站节点以打开上下文菜单 . 在上下文菜单中指向
Manage Application
- >Advanced Settings...
打开Advanced Settings
窗口 .检查您的网站所分配的应用程序池 . 在我的情况下,它是
DefaultAppPool
,如下所示:Application Pools
节点 . 现在检查您的应用程序池正在运行哪个.Net CLR版本 . 在我的例子中它是v4.0,如下所示:由于我的应用程序池托管的CLR版本是v4.0,所以我只是清除了中的临时文件与ASP .NET v4.0相关的文件夹仅如下所示:
就是这样 . 我的问题得到了解决 .
Lesson learnt :这表明您的网站使用的所有临时文件并非分散在多个目录中,而是由您的应用程序池引用它们 . 因此,您只需要清除该特定文件夹 .
清除C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files对我有用 . 考虑自动删除过程以避免将来出现问题 .
如果您使用的是2013年5月1日使用VS2010 shell的SQL Server 2012的数据工具,请检查Configuration Manager设置 . 从Workflow到xCPWorkflow的服务器名称更改足以生成完全相同的 The parameter is incorrect (Exception from HRESULT: 0x80070057 (E_INVALIDARG)) 消息 .
您可以清理,构建或重建您的应用程序,也可以直接在 C:\Users\YOUR USERNAME\AppData\Local\Temp 删除 Temporary ASP.NET Files
这就像魔法一样 . 在我的情况下,我有一个装配绑定问题说 Could not load file bla bla bla
你也可以看到解决方案2为http://www.codeproject.com/Articles/663453/Understanding-Clean-Build-and-Rebuild-in-Visual-St
问题涉及引用类库的.Net运行时版本(expaned references,选择库并检查“运行时版本” . 在将Visual Studio项目升级到v4.5之后,我遇到了Antlr3.Runtime的问题 . 我使用NuGet卸载Microsoft ASP.NET Web Optimization Framework(由于一系列依赖关系阻止我直接卸载Antlr3)
然后我使用NuGet重新安装Microsoft ASP.NET Web Optimization Framework . 这重新安装了正确的运行时版本 .
在我的情况下,我想编译COM可见DLL . 问题是此DLL的旧版本位于此处:
因此Visual Studio加载了这个版本而不是新编译的版本,因为它试图注册它 .
清除临时文件夹中的所有文件(C:\ Users \ user_name \ AppData \ Local \ Temp \ Temporary ASP.NET Files \ project文件夹)
有时您还需要清理此文件夹:C:\ Windows \ Temp \ Temporary ASP.NET
我遇到了同样的错误,因为应用程序在
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\
文件夹中找不到依赖框架 . 我只修复我的Visual studio,它在上面的位置添加了所需的框架,并且工作正常 .在我的例子中,更改项目属性中的IISExpress端口号解决了问题 .
如果其他人使用WiX工具集,我发现我的安装程序项目引用了最近从解决方案中删除的旧项目 . 我花了一段时间才意识到,因为我试图构建的解决方案中有许多项目,并且消息并未指出哪个项目未能构建(并且清理,这也是失败的) .
我有西门子Teamcenter 10 Client for Microsoft Office的用户得到关于不同DLL的相同错误 . 其他答案都没有奏效 . 解决方案是删除文件夹
我在MVC中制作控制器时遇到了这个问题 . 我更改了.net框架版本 . 问题解决了