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

我见过这个: VSTS2010SGEN: error: 无法加载文件或程序集(来自 HRESULT T: 0x80131515的异常),没有一个答案有效。它也不会出现,当我构建或任何东西。我可以很好地运行这个项目,当我试图添加一个实体框架模板控制器时会发生这种情况:

controller settings

Then I get this error:

error message

All project files are on my network share because that is where My Documents resides for our work. Here is what I tried:

1)在项目设置中将发电机序列化组件打开、关闭和自动。

2)将 sgen.exe.config 添加到 C: Program Files Microsoft SDKs Windows v7.0 A bin NETFX 4.0 Tools with the following code:

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

3)尝试解除阻塞程序集,但我没有解除阻塞选项在属性选项卡。 no unblock option

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

100417 次浏览

试着把你的 <loadFromRemoteSources enabled="true" />加到 C:\[Visual Studio 2010 Install Dir]\Common7\IDE\devenv.exe.config直接低于 <runtime>,看看是否有帮助:)

这个问题来自于这样一个事实,即一些所需的文件位于“不受信任的位置”,如网络或共享位置(即使在同一台计算机上)。如果位置在同一台计算机上,则可以使用 subst 命令行选项。

我只需要在文件资源管理器的文件属性对话框中点击“取消阻塞”即可。

I saw from other forum regarding this issue, and here is the solution someone posted: On the property of the project that contains the DLL assembly that would not load, go to the Build setting, and way at the bottom where it says "Generate serialization assembly:", the default is Auto. Set that to Off. Your solution should then build OK.

当我在一个带有多个项目的 webform 解决方案中使用 API 时,就发生了这种情况。它在单项目解决方案 MVC 上运行良好。

作为一个额外的解决方案,我们最近遇到了一个类似的问题。解决方案原来是解除阻塞的文件,但与扭曲。我们将这些文件以 zip 文件的形式复制到服务器。当我们从压缩文档中提取文件时,它们已经被阻止了。我们无法解锁文件。我们会单击 unblock 按钮,然后 OK,当我们查看属性时,它们仍然被阻塞。

我们必须做的是删除所有阻塞的文件,解除阻塞的源压缩文件,并 那么解压缩文件。此时,以前阻塞的文件被解除阻塞,应用程序运行良好。希望这能帮助某人避免一些挫折。

EDIT: I believe you also have to be running windows explorer as administrator to be able to unblock files.

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

These solutions did not work for me either.

In my case, I was accessing files on a mapped network drive. The solution for me was to add my network IP address as a trusted drive by doing the following:

  1. 控制面板
  2. 网络共享中心
  3. Internet 选项(窗口左下角)
  4. 安全标签
  5. 选择「本地内联网」
  6. 点击“网站”按钮
  7. 点击“高级”按钮
  8. 将网络驱动器的 IP 添加到该区域。

不知道是什么让这个方法比其他方法更有效,但是这个方法解决了我的问题。所有的项目和解决方案现在构建没有问题。

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

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

尝试解除文件 Desbloquer的阻塞。

这解决了我的问题。

这里的其他答案帮助我在 PowerShell 中解决了这个问题。运行 Unblock-File <filename>以允许正在执行的脚本访问它。