4

当我要添加迁移到项目中,我得到了以下错误:ASP.NET Core 2迁移错误。没有可执行找到匹配的命令“的dotnet-EF”

dotnet : No executable found matching command "dotnet-ef"

为了解决这个我添加下面的包,但我仍然得到同样的错误。

Microsoft.EntityFrameworkCore.Design(2.0.0) 
Microsoft.EntityFrameworkCore.Tools.DotNet(2.0.0) 

我找到了一些解决方案,但这些都是基于.net-core-1.net-core-2我们没有project.json文件。

更新:

这里是我的.csproj文件:

<Project Sdk="Microsoft.NET.Sdk"> 
<PropertyGroup> 
<TargetFramework>netcoreapp2.0</TargetFramework> 
</PropertyGroup> 

<ItemGroup> 
<PackageReference Include="Microsoft.AspNetCore.Hosting" 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.InMemory" Version="2.0.0" /> 
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.0" /> 
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.0.0" /> 
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.0.0" /> 
</ItemGroup> 
<ItemGroup> 
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" /> 
</ItemGroup> 
<ItemGroup> 
<Reference Include="Microsoft.Extensions.Configuration"> 
     <HintPath>C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.configuration\2.0.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll</HintPath> 
    </Reference> 
</ItemGroup> 

</Project> 
+0

分享您的csproj文件 – Smit

+0

我更新了我的问题。 – mohammad

+0

只要确保运行dotnet恢复并调用上面的csproj文件存在的目录中的'dotnet ef' – Smit

回答

7

为了得到dotnet ef工作,你需要一个DotNetCliToolReference元素添加到.csproj,如下所示:

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

这需要住在ItemGroup里面,有些东西柯:

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

你还需要确保你在相同的位置.csproj文件运行dotnet ef

+0

我仍然得到以前的错误。 – mohammad

+1

我在'obj'文件夹中有两个'.csproj'文件,'CoreSample.Model.csproj.nuget.g.props'和'CoreSample.Model.csproj.nuget.g.targets'。我在他们两个中都加了' ..'但我仍然有同样的错误。 – mohammad

+0

我找不到'CoreSample.Model.csproj'。 https://ibb.co/fwFSta – mohammad

2

Answer

Link to thread

超出许多小时试图许多其他线程的答案后,为我工作。在包控制台管理器中简单地cd'ing到包含csproj文件的文件夹就完成了。 dotnet ef命令都可以正常工作。

0

我知道你们中的一些人会为[找不到可执行的匹配命令“dotnet-”“标题部分来解决这个问题。在我的情况下,它是:

No executable found matching command “dotnet-My” 

而....事实证明,我的应用程序名称是“我的应用程序”。确保你的程序集名称中没有空格。我将其更改为“MyApp”并正确加载。

相关问题