Microsoft .NET Core 3与Visual Studio:迁移代码路径后Add Migration创建apphost失败如何解决?
我之前迁移项目路径后也碰到过这个坑!EF的迁移工具很依赖项目的路径和缓存信息,迁移后旧的缓存或者未更新的项目引用会导致Add-Migration找不到源代码。试试下面这些步骤,应该能解决:
具体解决方法
1. 彻底清理项目缓存
- 先关掉你的IDE(比如Visual Studio),找到项目根目录,删除隐藏的
.vs文件夹(这个是VS的本地缓存,经常搞事情) - 删掉项目里的
bin和obj文件夹,这俩里面的编译产物还带着旧路径的残留 - 重新打开IDE,右键解决方案选清理解决方案,再选生成解决方案,确保编译环境是干净的
2. 检查并更新项目文件里的旧路径
有时候.csproj文件里会残留旧的绝对路径引用:
- 右键项目→卸载项目,然后右键→编辑项目文件
- 用搜索功能找旧路径
C:\Users\chris\Dropbox\repos,把所有匹配的内容替换成新路径C:\Users\chris\source\repos - 保存文件后重新加载项目
3. 明确指定EF上下文执行迁移
不管你用Package Manager Console还是.NET CLI,都要确保选中了正确的项目,并且明确指定DbContext:
- Package Manager Console:先在控制台的「默认项目」下拉框选你的目标项目,然后执行:
Add-Migration YourMigrationName -Context YourDbContextClassName - .NET CLI:在终端切换到项目根目录,执行:
(把dotnet ef migrations add YourMigrationName --context YourDbContextClassNameYourMigrationName改成你要的迁移名称,YourDbContextClassName换成你实际的DbContext类名)
4. 重置EF全局工具(如果用.NET CLI)
要是上面的步骤都没用,可能是EF工具的全局缓存出问题了,重置一下:
dotnet tool uninstall --global dotnet-ef dotnet tool install --global dotnet-ef
一般做完前两步就能解决问题了,要是还不行再试后面的。我当时就是清理了缓存+更新了项目文件里的路径就搞定了。
内容的提问来源于stack exchange,提问作者Chris Requena
相关产品推荐
相关产品推荐

