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


76

我已经看到了:VSTS 2010 SGEN:错误:无法加载文件或程序集(HRESULT的异常:0x80131515),所有答案均无效。当我构建或其他任何东西时,它也不会出现。我可以很好地运行项目,当我尝试添加实体框架模板化控制器时会发生这种情况:

控制器设定

然后我得到这个错误:

错误信息

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

1)将项目设置中的Generator序列化程序集打开,关闭和自动。

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模板控制器时才会发生。我可以很好地构建和运行程序。


如何:在Visual Studio中从Web使用程序集“如果程序集已经被解除阻止并且可用,则“解除阻止”按钮将不会出现。” 所以我想这就是为什么您没有获得该选择的原因。附带一提,还记得重新启动Visual Studio吗?
康拉德·弗里克斯

。@ConradFrix是的,我重启多次,仍然没有骰子=(DID
SventoryMang

尝试将您的计算机添加<loadFromRemoteSources enabled="true" />到C:[Visual Studio 2010安装目录] \ Common7 \ IDE \ devenv.exe.config,看看是否有帮助。
霍克2011年

@hawkke是的先生,做到了!请发表作为答复,以便我给您代表!
SventoryMang 2011年

Answers:


83

尝试在下面直接添加<loadFromRemoteSources enabled="true" />到,看看是否有帮助:)C:\[Visual Studio 2010 Install Dir]\Common7\IDE\devenv.exe.config<runtime>


发现。我试图在Parallels中进行Visual Studio 2010构建,同时在共享OS X驱动器上保留实际源,并且单元测试拒绝在不进行此更改的情况下运行。我也尝试过更改sgen.exe.config,但是没有运气-仅此解决方案有效。
DeckerEgo 2012年

对于我来说,这也解决了从PowerShell v1使用Import-Module加载程序集的问题。谢谢!
camflint 2012年

40
只需在Windows资源管理器中打开文件属性,然后单击“取消阻止此文件”也可以解决该问题。至少对我有用。
user1151923

我的错误来自InstallUtil-我必须将<runtime> <loadFromRemoteSources enabled =“ true” /> </ runtime>添加到C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ InstallUtil.exe.config及其它工作了。
rythos42 2014年

@ user1151923-哇,这确实可行!
2014年

128

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


4
幸好一个小时没有感到沮丧,但是这个Win7的“安全功能”总能吸引我。
KeithS 2014年

在哪里找到此属性??在溶液性质或其他方面?请帮忙 !
Mesam Mujtaba '17

1
在Windows资源管理器中,右键单击文件,然后单击属性。
Aymeric Gaurat-Apelli

这是我第二次在此问题上浪费1个小时
Axel2D

哎呀!LMAO的感谢,感激这个帖子,帮我immensley
史蒂夫·鲍曼

10

作为其他解决方案,最近我们遇到了这样的问题。事实证明,该解决方案是取消阻止文件,但有一个问题。我们将文件以zip文件复制到我们的服务器。当我们从zip存档中提取文件时,它们已被阻止。我们无法取消阻止文件。我们将单击取消阻止按钮,然后单击确定,当我们查看属性时,它们仍然被阻止。

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

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


在不以管理员身份运行Explorer的情况下,此技巧对我有用。
Erich Musick '18

9

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


8

我从其他论坛上看到了有关此问题的信息,这是有人发布的解决方案:在包含无法加载的DLL程序集的项目的属性上,转到Build设置,并在底部显示“ Generate serialization”(生成序列化) assembly:”,默认值为“自动”。将其设置为“关”。然后,您的解决方案应建立确定。

当我在具有多个项目的Webform解决方案中使用API​​时,这发生了。它在单项目解决方案MVC上工作正常。


8

这些解决方案对我也不起作用。

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

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

不确定是什么使这项工作超越了其他所有选项,但这正是为我解决了问题的原因。现在,所有项目和解决方案都可以毫无问题地构建。


2
最后一个答案,但这是对我有用的唯一答案。
Ankit

1
谢谢您,先生-您是一位绅士和学者。就是这样 我正在使用VirtualBox,我的项目位于一个共享文件夹中,Windows将其视为网络驱动器。
dadude999

1
我正在使用Hyper-V并通过网络共享加载项目-这是唯一对我有用的解决方案。
2016年

1
我也是正确的答案。在Mac上,我在VMWare虚拟机中启动Visual Studio,并将我的项目文件映射为网络驱动器。添加vmware-host到区域中解决了该问题。
巴蒂斯特


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

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


(+1)除了以Admin身份运行外,这应该是任何人在进行权限管理之前应检查的第一件事。并确保您取消阻止与您的服务相关的所有内容(如果未授予该权限,则不会自动打开任何类型的访问权限对话框的操作都会失败。例如Windows应用将自动要求用户授予访问权限,但服务可以')。
Bizhan'9

1

此处的其他答案帮助我找出了PowerShell中的此问题。运行Unblock-File <filename>以允许正在执行的脚本对其进行访问。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.