ef-core Add-Migration无效

时间:2017-08-22 09:00:24

标签: .net-core entity-framework-core ef-migrations

刚开始学习dot net core 2.0。

当我尝试创建迁移时:

PM> Add-Migration InitialModel

我收到错误:

  

Add-Migration:使用“1”参数调用“Substring”的异常:   “StartIndex不能小于零。参数名称:startIndex”At   line:1 char:1   + Add-Migration InitialModel   + ~~~~~~~~~~~~~~~~~~~~~~~~~~       + CategoryInfo:NotSpecified :( :) [Add-Migration],MethodInvocationException       + FullyQualifiedErrorId:ArgumentOutOfRangeException,Add-Migration

我的dotnet --info

  

.NET命令行工具(2.0.0)

     

产品信息:版本:2.0.0提交SHA-1哈希:   cdcd1928c9

     

运行时环境:操作系统名称:Windows操作系统版本:10.0.15063   操作系统平台:Windows RID:win10-x64基本路径:C:\ Program   文件\ DOTNET \ SDK \ 2.0.0 \

     

Microsoft .NET核心共享框架主机

     

版本:2.0.0 Build:   e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d

我的csproj文件:

<PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
    <TypeScriptToolsVersion>Latest</TypeScriptToolsVersion>
    <IsPackable>false</IsPackable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
    <PackageReference Include="Microsoft.DotNet.Watcher.Tools" Version="2.0.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.0.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.0.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.0" />
  </ItemGroup>

  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
  </ItemGroup>

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

如果在Visual Studio中加载了v1.x版本的PMC(程序包管理器控制台)迁移命令,然后尝试对v2.x应用程序运行命令,则会发生此错误。例如。如果您创建或打开ASP.NET Core 1.1应用程序,然后在同一Visual Studio会话中创建ASP.NET Core 2.0应用程序。

此案例的解决方法是在使用2.0应用程序之前重新启动Visual Studio。

根据bricelam,NuGet中有一种机制可以导致将较新版本的PMC命令加载到Visual Studio中,但不幸的是,在所有情况下都不会触发该机制。