ASP.NET CORE 2.0 不小心踩得坑 1.EF迁移 2.发布

前言 我是跟着 https://github.com/FQLin/Docs 学习asp.net core 2.0 的

EF 的迁移方式有两种: Command-line interface (CLI) 和 Package Manager Console (PMC),在文档中介绍的方法是CLI方式

使用 CLI 指令进行数据库迁移需要引用 Microsoft.EntityFrameworkCore.Tools.DotNet 包,我当时是通过 Package Manager 安装的此包,可是我发现我的迁移有问题

ASP.NET CORE 2.0 不小心踩得坑
1.EF迁移
2.发布

研究了半天才发现文档里面有一句说 必须是通过编辑 项目名称.csproj 文件的形式进行引用

引用方式:

<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />

2.发布

刚开始发布在iis 的1.0 项目上的,可是有问题

ASP.NET CORE 2.0 不小心踩得坑
1.EF迁移
2.发布

想了半天突然想到我发布 1.0 的时候 安装了runtime 现在的2.0 是不是也需要安装,所以我就安装了

ASP.NET CORE 2.0 不小心踩得坑
1.EF迁移
2.发布

 可是我发现还是不行,之后都在找1.0和2.0发布的区别,一直以为都是iis的发布配置的原因,找了好久还是没有发现原因,直到看到这段代码

ASP.NET CORE 2.0 不小心踩得坑
1.EF迁移
2.发布

突然想着是不是代码报错了,然后我就修改了一下

ASP.NET CORE 2.0 不小心踩得坑
1.EF迁移
2.发布

发现真的是我的_Layout文件中报的错

ASP.NET CORE 2.0 不小心踩得坑
1.EF迁移
2.发布

看到这个异常我是很郁闷的,因为我在 vs 上开发的时候并没有什么异常,可是发布之后就出现了,不知道开发环境和发布环境有什么区别

之后我删除掉在 view 中的注入 程序就成功运行了

ASP.NET CORE 2.0 不小心踩得坑
1.EF迁移
2.发布