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」並正確加載。

相關問題