找不到匹配命令“dotnet-ef”(Csproj)的可执行文件

时间:2017-03-18 02:22:36

标签: macos asp.net-core asp.net-core-mvc visual-studio-code entity-framework-core

我使用VS Code和ASP.NET Core MVC在Mac上启动了一个项目,这是我的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上尝试过,得到的结果相同。

我错过了什么?

2 个答案:

答案 0 :(得分:11)

添加此功能以使其正常工作:

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

答案 1 :(得分:4)

  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. 为了确保一切正常,请运行以下命令 dotnet ef 应显示基本dotnet ef命令用法的屏幕

  5. 检查项目是否仍在构建: dotnet build

  6. 使用以下命令从数据库生成脚手架:

  7. 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上,它就会被使用