刚开始学习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>
感谢您的帮助!
答案 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中,但不幸的是,在所有情况下都不会触发该机制。