You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行Entity Framework enable-migrations命令未生成文件夹且报错求助

问题描述

运行Entity Framework的enable-migrations命令时,未生成Migrations文件夹,同时抛出以下错误:

PM> enable-migrations

System.Reflection.TargetInvocationException: 调用目标发生异常。---> System.IO.FileLoadException: 无法加载文件或程序集“part22TravelTripProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或其依赖项之一。不支持此操作。(HRESULT异常返回: 0x80131515) ---> System.NotSupportedException: 尝试从网络位置加载程序集,这会导致在早期.NET Framework版本中被沙盒处理。此.NET Framework版本默认不启用CAS策略,因此该加载操作可能不安全。如果不打算对该程序集进行沙盒处理,请启用loadFromRemoteSources开关。

   --- 内部异常堆栈跟踪结束 ---
   位置: System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   位置: System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   位置: System.Reflection.Assembly.Load(AssemblyName assemblyRef)
   位置: System.Data.Entity.Infrastructure.Design.Executor..ctor(String assemblyFile, IDictionary`2 anonymousArguments)
   --- 内部异常堆栈跟踪结束 ---
   位置: System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   位置: System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   位置: System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
   位置: System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   位置: System.Activator.CreateInstance(String assemblyString, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo, StackCrawlMark& stackMark)
   位置: System.Activator.CreateInstance(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   位置: System.AppDomain.CreateInstance(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   位置: System.AppDomain.CreateInstanceAndUnwrap(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   位置: System.AppDomain.CreateInstanceAndUnwrap(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   位置: System.Data.Entity.Tools.AppDomainExecutor..ctor(String assembly, String dataDirectory, String configurationFile, String rootNamespace, String language)
   位置: System.Data.Entity.Tools.Commands.ProjectCommandBase.CreateExecutor()
   位置: System.Data.Entity.Tools.Commands.MigrationsEnableCommand.Execute()
   位置: Microsoft.DotNet.Cli.CommandLine.CommandLineApplication.Execute(String[] args)
   位置: System.Data.Entity.Tools.Program.Main(String[] args)
调用目标发生异常。

已检查NuGet包(包括Entity Framework版本),并尝试过常见解决方案,但问题仍未解决。


解决方案

1. 解除程序集的网络锁定标记

如果项目从压缩包、网盘或网络共享目录获取,程序集会被标记为来自网络:

  • 找到项目输出目录中的part22TravelTripProject.dll文件,右键选择「属性」
  • 在「常规」选项卡底部,点击「解除锁定」(若该选项存在),点击「确定」保存

2. 在配置文件中启用loadFromRemoteSources

修改项目的app.config(桌面项目)或web.config(Web项目):

  • 打开配置文件,在<configuration>节点内添加以下代码:
    <runtime>
      <loadFromRemoteSources enabled="true" />
    </runtime>
    
  • 保存文件,重新生成项目

3. 清理并重新生成解决方案

  • 在Visual Studio中依次执行:「生成」→「清理解决方案」→「生成」→「重新生成解决方案」
  • 打开Package Manager Console,再次运行enable-migrations命令

4. 迁移项目到本地磁盘(可选)

如果项目存储在网络共享目录、OneDrive等同步目录,将整个项目文件夹移动到本地磁盘(如C:\Projects),避免加载时的安全限制


内容的提问来源于stack exchange,提问作者İrem Ertürk 1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 17:44:56