3

我開始使用VS代碼和ASP.NET MVC的核心Mac上的一個項目,這是我的csproj:沒有可執行找到匹配的命令 「的dotnet-EF」(的csproj)

<ItemGroup> 
    <PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" /> 
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" /> 
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.1" /> 
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.1" /> 
    <PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.1.0" /> 
    <PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="1.1.0" /> 

    <PackageReference Include="System.Data.SqlClient" Version="4.3.0" /> 

    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="1.1.1" /> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.1" /> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.1" PrivateAssets="All" /> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.0" /> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" /> 
    </ItemGroup> 

我總是得到「不可執行文件找到匹配命令「dotnet-ef」「

我在Windows 10上試過了,得到了同樣的結果。

我錯過了什麼?

+0

1.請不要用力標籤爲標題2,唐互換使用ASP.NET Core和.NET Core。他們代表完全不同的東西 – Tseng

+0

[#37276882](https://stackoverflow.com/a/45765523/1233379)可能的重複:簡而言之,您需要手動編輯您的項目配置文件並添加對工具的引用/ Tools.DotNet軟件包(因爲VS2015/VS2017不會自動完成)。欲瞭解更多信息,請[這裏閱讀](http://www.ryadel.com/en/no-executable-found-matching-command-dotnet-ef-error-in-visual-studio-2017-and-net-core -2- vs2017實體框架/)。 – Darkseal

+0

還要確保您當前的路徑是項目的根文件夾。如果您爲某個項目創建文件夾,這可能會比您預期的更深。 – Peter

回答

10

添加了這個,使其工作:

<ItemGroup> 
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version = "1.0.0"/> 
    </ItemGroup> 
2
  1. 從包含的csproj文件的文件夾裏面,添加以下到的csproj文件:

    <PropertyGroup> 
        <TargetFramework>netcoreapp2.0</TargetFramework> 
        <RuntimeFrameworkVersion>2.0.5</RuntimeFrameworkVersion> 
    </PropertyGroup> 
    
    <ItemGroup> 
        <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" /> 
    </ItemGroup> 
    
  2. 現在包括所需通過執行以下命令執行相關性:

    dotnet add package Microsoft.EntityFrameworkCore dotnet add package Microsoft.EntityFrameworkCore.Design dotnet add package Microsoft.EntityFrameworkCore.SqlServer dotnet add package Microsoft.EntityFrameworkCore.Tools.DotNet

  3. 恢復項目,使所有相關性在 dotnet restore

  4. 爲了檢查,以確保這一切就ok了,運行以下命令 dotnet ef 的基本dotnet ef命令用法的屏幕應該出現

  5. 檢查,如果該項目仍在建設: dotnet build

  6. 生成從數據庫支架用下面的命令:

dotnet ef dbcontext scaffold "Server=<your_server_address[,port_number]>;Initial Catalog=<your_db>;User Id=<your_user>;Password=<your_password>" Microsoft.EntityFrameworkCore.SqlServer -f -c YourDbContext -o Db --json

以上可以被描述爲一個負責讀出的數據庫,並生成您腳手架POCO實體類和的DbContext文件的命令。它需要基本工作連接字符串,參數f強制覆蓋,c給出上下文的名稱,o確定輸出文件夾和創建類的命名空間,參數json以json而不是零輸出命令結果肥碩。

它是好的手頭保留此命令,它將被用來隨時從數據庫中更改必須於ORM反映

相關問題