无法加载文件或程序集 HRESULT:0x80131515(将控制器添加到在网络驱动器上具有程序集引用的 MVC 项目时)

Posted

技术标签:

【中文标题】无法加载文件或程序集 HRESULT:0x80131515(将控制器添加到在网络驱动器上具有程序集引用的 MVC 项目时)【英文标题】:Could not load file or assembly HRESULT: 0x80131515 (When adding controller to MVC project that has assembly references on network drive) 【发布时间】:2012-01-21 09:42:45 【问题描述】:

我见过这个:VSTS 2010 SGEN : error : Could not load file or assembly (Exception from HRESULT: 0x80131515) 并且没有一个答案有效。当我构建或任何东西时,它也不会出现。我可以很好地运行项目,当我尝试添加实体框架模板控制器时会发生这种情况:

然后我得到这个错误:

所有项目文件都在我的网络共享上,因为那是我的文档为我们的工作而驻留的地方。这是我尝试过的:

1) 将项目设置中的 Generator Serialization Assembly 设置为 on、off 和 auto。

2) 使用以下代码将 sgen.exe.config 添加到 C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools:

<configuration>
 <runtime>
   <loadFromRemoteSources enabled="true" />
 </runtime>
</configuration>

3) 尝试取消阻止程序集,但我在属性选项卡中没有取消阻止选项。

这些解决方案都不起作用。有谁知道我该如何解决这个问题??? 来自 nuget 或我自己的项目的任何自定义程序集都会发生此错误,因为它们的位置存在于网络空间中,但仅在尝试添加 EF 模板化控制器时才会发生。我可以很好地构建和运行程序。

【问题讨论】:

来自How to: Use an Assembly from the Web in Visual Studio "如果程序集已经解除阻止并且可用,则不会出现解除阻止按钮。"所以我猜这就是你没有得到那个选项的原因。顺便说一句,记得重启 Visual Studio 吗? @ConradFrix 是的,我确实重启了多次,仍然没有骰子 =(. 尝试将 &lt;loadFromRemoteSources enabled="true" /&gt; 添加到 C:[Visual Studio 2010 安装目录]\Common7\IDE\devenv.exe.config 看看是否有帮助。 @hawkke 是的,先生成功了!请张贴作为答案,所以我可以给你代表! 【参考方案1】:

我只需要在 Windows 资源管理器的文件属性对话框中单击“取消阻止”。

【讨论】:

谢天谢地,一个小时没有沮丧,但这个 Win7“安全功能”总是让我着迷。 这个属性在哪里找到的??在解决方案属性或其他任何地方?请帮忙! 在 Windows 资源管理器中,右键单击文件,单击属性。 这是我第二次在这个问题上浪费 1 小时 天啊! Lmao 谢谢,感谢这篇文章,帮助了我 immensley【参考方案2】:

尝试将您的&lt;loadFromRemoteSources enabled="true" /&gt; 添加到C:\[Visual Studio 2010 Install Dir]\Common7\IDE\devenv.exe.config 直接在&lt;runtime&gt; 下方,看看是否有帮助:)

【讨论】:

正确。我正在尝试在 Parallels 中进行 Visual Studio 2010 构建,同时在共享 OS X 驱动器上维护实际源代码,并且单元测试拒绝在没有此更改的情况下运行。我还尝试更改 sgen.exe.config,但没有成功 - 只有这个解决方案有效。 这也解决了我使用 Import-Module 从 PowerShell v1 加载程序集的问题。谢谢! 只需在 Windows 资源管理器中打开文件属性并单击“取消阻止此文件”也应该可以解决问题。至少为我做了。 我的错误来自 InstallUtil - 我必须将 添加到 C:\Windows\Microsoft.NET\Framework\v4.0.30319 \InstallUtil.exe.config 并且成功了。 @user1151923 - 哇,这真的成功了!【参考方案3】:

作为一个额外的解决方案,我们最近遇到了这样的问题。解决方案原来是解除对文件的阻塞,但有一点不同。我们将文件以 zip 文件的形式复制到我们的服务器。当我们从 zip 存档中提取文件时,它们已经被阻止了。我们无法解除对文件的阻止。我们会点击取消阻止按钮,然后点击确定,当我们查看属性时,它们仍然被阻止。

我们要做的是删除所有被阻止的文件,解除对源 zip 文件的阻止,然后然后解压缩文件。此时,以前被阻止的文件被解除阻止,应用程序运行良好。希望这可以帮助某人避免一些挫败感。

编辑:我相信您还必须以管理员身份运行 Windows 资源管理器才能取消阻止文件。

【讨论】:

这个技巧对我有用,而无需以管理员身份运行 Explorer。【参考方案4】:

此问题源于某些必需文件位于“不受信任的位置”,例如网络或共享位置(即使在同一台计算机上)。如果该位置在同一台计算机上,则可以使用 subst 命令行选项。

【讨论】:

【参考方案5】:

这些解决方案也不适合我。

就我而言,我正在访问映射网络驱动器上的文件。我的解决方案是通过执行以下操作将我的网络 IP 地址添加为受信任的驱动器:

    控制面板 网络和共享中心 Internet 选项(窗口左下角) 安全选项卡 选择“本地 Intranet” 点击“网站”按钮 点击“高级”按钮 将网络驱动器的 IP 添加到区域。

不知道是什么让这对所有其他选项都有效,但这就是为我解决问题的原因。现在所有项目和解决方案都可以顺利构建。

【讨论】:

这里的最后一个答案,但这是唯一对我有用的答案。 谢谢您,先生-您是一位绅士和一位学者。这正是它。我正在使用 VirtualBox,我的项目位于共享文件夹中,Windows 将其视为网络驱动器。 我正在使用 Hyper-V 并通过网络共享加载我的项目 - 这是唯一适合我的解决方案。 对我来说也是正确的答案。在 Mac 上,我在 VMWare 虚拟机中启动 Visual Studio,我的项目文件被映射为网络驱动器。将vmware-host 添加到区域解决了这个问题。【参考方案6】:

我从其他论坛看到有关此问题的解决方案,这是某人发布的解决方案:在包含无法加载的 DLL 程序集的项目属性上,转到构建设置,然后在底部显示“生成序列化程序集:”,默认为自动。将其设置为关闭。然后,您的解决方案应该可以构建。

当我在具有多个项目的网络表单解决方案中使用 API 时,这发生在我身上。它在单项目解决方案 MVC 上运行良好。

【讨论】:

【参考方案7】:

这些解决方案都不适合我。相反,我通过https://***.com/a/3407750/516512 制作sgen.exe.config 找到了方法

【讨论】:

【参考方案8】:

    我只需要在文件属性对话框中单击“取消阻止”。

    请检查您的文件是否只读,然后取消选中并执行第一步(在此之前浪费更多时间:))

【讨论】:

(+1) 除了以管理员身份运行之外,这应该是任何人在继续权限之前应该检查的第一件事。并确保您取消阻止与您的服务相关的所有内容(如果未授予权限,任何不会自动打开任何类型的访问权限对话框的内容都会失败。例如,Windows 应用程序会自动询问用户授予访问权限,但服务不能)。【参考方案9】:

此处的其他答案帮助我在 PowerShell 中解决了这个问题。运行Unblock-File &lt;filename&gt; 以允许正在执行的脚本访问它。

【讨论】:

【参考方案10】:

尝试解锁文件desbloquer。

这解决了我的问题。

【讨论】:

以上是关于无法加载文件或程序集 HRESULT:0x80131515(将控制器添加到在网络驱动器上具有程序集引用的 MVC 项目时)的主要内容,如果未能解决你的问题,请参考以下文章

无法加载文件或程序集 HRESULT:0x80131515(将控制器添加到在网络驱动器上具有程序集引用的 MVC 项目时)

无法加载文件或程序集 X 或其依赖项之一。不是有效的Win32应用程序。 (HRESULT:0x800700C1)

能加载文件或程序集“Aspose.Cells”或它的某一个依赖项。无法验证强名称签名

无法加载文件或程序集“Newtonsoft.Json”或它的某一个依赖项

未能加载文件或程序集“Newtonsoft.Json”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)

HRESULT 异常:0x80070057 (E_INVALIDARG)