最近我在C#解决方案中遇到了以下异常:
错误2无法加载文件或程序集'Newtonsoft.Json, Version = 3.5.0.0,Culture = neutral,PublicKeyToken = b9a188c8922137c6'或 其中一个依赖项。参数不正确。 (例外 HRESULT:0x80070057(E_INVALIDARG))
这不依赖于我的代码或程序集的名称(在这种情况下就像Newtonsoft.Json
)。
当我从解决方案中删除此dll时,编译器会在同一个异常中告诉另一个。所以我想在我的电脑上关闭/打开一些东西:)
答案 0 :(得分:344)
看起来被引用的程序集已损坏。
清除两者:
项目的\ bin文件夹
临时文件夹(在Windows 7中应为C:\Users\your_username\AppData\Local\Temp\Temporary ASP.NET Files
)
并查看错误是否仍然发生
答案 1 :(得分:284)
根据您是否正在运行X64,您可能需要清理几个位置。只是清理我的用户目录是不够的。
此列表将增长,就好像您已安装其他版本的框架一样。
答案 2 :(得分:41)
我必须清除
C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files
只有这样才能解决问题。
答案 3 :(得分:13)
要知道要清除的内容 - 添加以下注册表项:
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**.
答案 4 :(得分:12)
清除项目的临时框架文件: -
C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \
答案 5 :(得分:5)
您也可以清除packages目录并允许 NuGet 重新下载丢失的包
它解决了我的问题
答案 6 :(得分:4)
删除这些文件夹中的所有文件。
C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET 文件
答案 7 :(得分:3)
从Source控件获取新的二进制文件有帮助。
由于
答案 8 :(得分:3)
只需清除此文件夹:(仅限Windows x64)
C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files
答案 9 :(得分:2)
我在这里遇到了同样的问题 - 以上解决方案无效。问题在于ActionMailer。我运行了以下卸载并安装了nuget命令
uninstall-package ActionMailer
install-package ActionMailer
解决了我的问题,希望能帮助别人。
答案 10 :(得分:2)
我看到很多技术人员发布了关于清除ASP .Net运行时的临时目录的问题,这些目录与机器上托管的每个.Net框架有关,如this答案。但我相信我们应该知道明确的物流,为什么我们需要盲目地清除所有.Net框架的所有临时工作目录。据我说,情况应该不是这样。
我的建议是你应该尝试使用针脚目标清除方法来解决此问题。你怎么知道要清除哪个目录?
Manage Application
- > Advanced Settings...
打开Advanced Settings
窗口。DefaultAppPool
,如下所示:答案 11 :(得分:2)
引用COM包装器时可能会发生这种情况。在Visual Studio项目的“引用”下,选择要引用的COM包装器dll并确保它们具有以下属性值:“嵌入互操作类型”:False和“特定版本”:错误。
答案 12 :(得分:2)
我只是从此路径中删除我的应用程序临时数据
C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files
问题解决
答案 13 :(得分:2)
感谢Alex,你的第二点帮助我解决了这个问题。
除非您在Windows 7中以管理员身份运行visual studio,否则它会在本地存储您的临时文件,而不是C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files。
答案 14 :(得分:1)
如果您使用的是2013年5月1日使用VS2010 shell的SQL Server 2012数据工具,请检查Configuration Manager设置。服务器名称从Workflow更改为xCPWorkflow足以生成完全相同的参数不正确(HRESULT异常:0x80070057(E_INVALIDARG))消息。
答案 15 :(得分:1)
您可以清理,构建或重建应用程序,也可以直接删除 C:\ Users \ YOUR USERNAME \ AppData \ Local中的 Temporary ASP.NET Files \温度强>
这就像魔法一样。在我的情况下,我有一个装配绑定问题,说无法加载文件bla bla bla
您还可以将解决方案2视为http://www.codeproject.com/Articles/663453/Understanding-Clean-Build-and-Rebuild-in-Visual-St
答案 16 :(得分:1)
清除C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files适合我。考虑自动删除过程以避免将来出现问题。
答案 17 :(得分:0)
我在打开Nuget Packet Manager时遇到了类似的问题, 我删除了所有临时文件并构建了项目,效果很好。
答案 18 :(得分:0)
问题与引用类库的.Net运行时版本有关(expaned references,选择库并检查“运行时版本”。在将Visual Studio项目升级到v4之后,我遇到了Antlr3.Runtime的问题。 5.我使用NuGet卸载Microsoft ASP.NET Web Optimization Framework(由于一系列依赖性导致我无法直接卸载Antlr3)
然后我使用NuGet重新安装Microsoft ASP.NET Web Optimization Framework。这重新安装了正确的运行时版本。
答案 19 :(得分:0)
在MVC中制作控制器时遇到了这个问题。我更改了.net框架版本。问题解决了
答案 20 :(得分:0)
我让西门子Teamcenter 10 Client for Microsoft Office的用户获得了关于不同DLL的相同错误。其他答案都没有奏效。解决方案是删除
中的文件夹C:\Users\%username%\AppData\Local\assembly\
答案 21 :(得分:0)
如果有其他人使用WiX工具集,我发现我的安装程序项目引用了最近从解决方案中删除的旧项目。我花了一段时间才意识到,因为我试图构建的解决方案中有许多项目,而且消息并未表明哪个项目未能构建(并且清理,这也是失败)。
答案 22 :(得分:0)
就我而言,更改项目属性中的IISExpress端口号解决了问题。
答案 23 :(得分:0)
我遇到了同样的错误,因为应用程序在C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\
文件夹中找不到依赖框架。我只是修复我的Visual studio,它在上面的位置添加了所需的框架,并且工作正常。
答案 24 :(得分:0)
有时您还需要清理此文件夹:C:\ Windows \ Temp \ Temporary ASP.NET
答案 25 :(得分:0)
清除临时文件夹中的所有文件(C:\ Users \ user_name \ AppData \ Local \ Temp \ Temporary ASP.NET Files \ project folder)
答案 26 :(得分:0)
在我的情况下,我想编译一个COM可见的DLL。问题是此DLL的旧版本位于此处:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE
因此Visual Studio加载了这个版本而不是新编译的版本,因为它试图注册它。