Entity Framework 6启用自动迁移报System.NotSupportedException如何解决
EF6 启用自动迁移加载程序集异常修复方案
执行命令
enable-migrations –EnableAutomaticMigration:$true后抛出异常:
System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.IO.FileLoadException: 未能加载文件或程序集“ProdustsServerAPI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。不支持该操作。 (异常来自 HRESULT:0x80131515) ---> System.NotSupportedException: 尝试从网络位置加载程序集,在旧版 .NET Framework 中这会导致程序集被沙盒化。此版本的 .NET Framework 默认不启用 CAS 策略,因此此类加载可能存在危险。
错误原因
该异常是因为你的项目程序集被Windows识别为来自网络位置的不受信任文件,或项目存放在网络共享路径中,.NET Framework默认禁止加载此类程序集。
修复步骤
方案1:解除文件锁定(优先尝试)
- 找到项目根文件夹,或报错中提到的
ProdustsServerAPI.dll文件 - 右键点击文件/文件夹,选择「属性」
- 在「常规」标签页底部的「安全」区块,勾选「解除锁定」复选框,点击确定
- 重启Visual Studio,重新执行迁移命令测试
方案2:配置loadFromRemoteSources开关
如果解除锁定无效,修改Visual Studio配置:
- 找到Visual Studio的
devenv.exe.config配置文件,默认路径参考:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\devenv.exe.config
路径中对应替换你自己的VS版本和版本类型 - 用管理员权限打开该配置文件,找到
<runtime>节点 - 在
<runtime>节点内添加如下配置:<loadFromRemoteSources enabled="true" /> - 保存配置文件后重启Visual Studio,重新执行迁移命令
方案3:移动项目到本地路径
如果你的项目存放在NAS、共享文件夹等网络路径中,直接将整个项目文件夹复制到本地磁盘的普通目录下,重新打开项目执行命令即可。
内容的提问来源于stack exchange,提问作者Alexandros Angelopoulos
相关产品推荐
相关产品推荐

