参数无效:HRESULT异常0x80070057 (E_INVALIDARG)

41

我有一个WPF应用程序。在构建它时,我遇到了以下错误:

无法加载文件或程序集之一。参数不正确。(HRESULT 异常:0x80070057(E_INVALIDARG))

应用程序试图从虚拟驱动器(如Debug文件夹)中加载程序集。

例如:[subst r:c:[我的程序集bin路径]]

以前,我将c:\bin挂载为网络驱动器,并收到以下错误消息。

该程序集可能已从 Web 下载。如果程序集已从 Web 下载,则 Windows 将其标记为 Web 文件,即使它驻留在本地计算机上也是如此。这可能会防止它在您的项目中被使用。您可以通过更改文件属性来更改此指定。只有信任的程序集才能解除锁定。有关更多信息,请参见http://go.microsoft.com/fwlink/?LinkId=179545

编辑: 顺便说一句,在属性窗口中找不到“解除锁定”按钮。


1
这个相关帖子中的答案非常有帮助。 - RBT
嗨@Simsons,没有以下任何答案被接受,我想知道根本原因是否与subst命令创建的虚拟驱动器有关,因为如果我的项目位于虚拟驱动器中,我会遇到完全相同的问题。 - xpt
9个回答

100

在以下路径中清除项目的临时框架文件:

对于Windows 7,路径为:

C:\Users\[username]\AppData\Local\Temp\Temporary ASP.NET Files\

对于路径中带有“Framework”的64位系统,完整路径为:

C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\

http://www.solutioncottage.com/ShowSolution.aspx?solID=59


1
这应该被标记为答案@Simsons,你能标记一下吗? - Lukas
3
这是非常有用的信息(它确实解决了我的问题),但我认为它并不是正确答案,因为它涉及ASP .NET,而问题是关于WPF的。 - user1069816
2
在我的Win10机器上从蓝屏恢复后突然出现了这个错误。这个方法解决了我的问题。谢谢。 - Christian Hagelid
4
重启 Visual Studio 后问题得以解决。 - Patrick Borkowicz
1
我也重新启动了Visual Studio,并确保进行了重建。然后它就可以工作了。仅仅重新启动并不能解决我的问题。 - firecape
显示剩余2条评论

10

从下面的路径中删除所有临时文件仍然有效,它使我托管在Web服务器上的开发网站免受(HRESULT:0x80070057(E_INVALIDARG))错误。

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


6
在Visual Studio 2019中,我能够通过手动删除解决方案目录下的".vs"文件夹来解决这个问题。
谢谢。

也适用于Visual Studio 2017。谢谢! - Tahirhan
也适用于Visual Studio 2017。谢谢! - undefined

4

在构建过程中,我的电脑出现了蓝屏问题。

我不得不删除我的packages和bin文件夹,并从TFS重新获取它们。

当时我在以下位置没有任何内容...

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

为了解决问题,我将Visual Studio设置为调试模式,然后监视上述目录。随着文件的出现,我删除了它们,然后应用程序又开始工作了。

现在是时候开始寻找一台新的开发机器了。


1
你在挂载时遇到的错误是由于程序集/DLL被阻止。右键单击已下载的DLL,你将获得一个取消阻止的选项。
对于“无法加载文件或程序集或其某个依赖项”错误,在起始类的构造函数中设置断点,并检查它失败的原因。

问题中提到没有“解除阻止”选项。 - Simsons

1
在构建我的wcf服务时,我遇到了Windows 8蓝屏错误后出现的问题。我尝试了以上所有建议,但都没有解决问题。 最后,我从同一wcf项目中删除并重新创建了新的应用程序。 然后一切都正常工作了。

0
在我的情况下,这个问题是由于Windows 10中的路径长度限制引起的。我没有找到任何临时文件可以删除。只有当我将项目移动到路径较短的目录中时,这个问题才得以解决。我正在使用Microsoft Visual Studio 2022。

0

引用this的SO答案:

这可能发生在引用COM包装器dll时。

进入您的Visual Studio项目,在“引用”下,选择所引用的COM包装器程序集,右键单击,选择首选项,并确保嵌入互操作类型特定版本都设置为False


0

@Ernest的回答对我在Visual Studio 2022上起了作用。

在Visual Studio 2019中,我能够手动解决这个问题,删除解决方案目录中的“.vs”文件夹。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接