【问题标题】:dotnet ef database update - No executable found matching command "dotnet-ef"dotnet ef 数据库更新 - 找不到匹配命令“dotnet-ef”的可执行文件
【发布时间】:2017-07-13 22:32:51
【问题描述】:

之前有很多人在 SO 上问过这个问题。在过去的 3 个小时里,我依次尝试了每个解决方案,每次都得到相同的 No executable found matching command "dotnet-ef"。我想了解如何运行命令并让它实际执行。

但首先是一点背景:

我正在学习如何使用 ASP.Net Core 1.1 MVC 和 Entity Framework Core。这是一个微软教程that can be found here

完成的教程可以按照说明从 git 下载。执行这些步骤,我打开下载项目并按照项目根文件夹中readme.md 文件中的步骤进行操作。它声明如下:

下载项目后,在命令行提示符下输入dotnet ef database update创建数据库

我尝试过。我使用了 Visual Studio 开发人员命令提示符(以管理员身份)并首先将目录更改为项目根目录,其中 appsettings.json 和 *.csproj 文件所在的位置。然后我输入了以下内容:

C:\Users\username\Downloads\Docs-master\aspnetcore\data\ef-mvc\intro\samples\cu-final>dotnet ef 数据库更新

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

根据教程,这应该按原样“工作”。

对我来说奇怪的是,如果我运行以下命令,我会得到输出,这表明 dotnet.exe 正在运行。

C:\Users\username\Downloads\Docs-master\aspnetcore\data\ef-mvc\intro\samples\cu-final>dotnet --版本

1.0.4

我使用的是 Windows 10 和 Visual Studio 2017 CE 版本 15.2。我安装了 ASP.NET 和 Web 开发以及 .Net Core 跨平台开发工作负载。

我也在使用 .Net Framework 版本 4.6.01586。

【问题讨论】:

  • #37276882 的可能重复项:简而言之,您需要手动编辑项目配置文件并添加对 Tools / Tools.DotNet 包的引用(因为 VS2015/VS2017 不会这样做自动地)。欲了解更多信息,read here

标签: asp.net .net asp.net-mvc entity-framework asp.net-core


【解决方案1】:

确保先恢复,以便 ef 工具可用:

执行dotnet restore,等待恢复成功,再执行dotnet ef database update

【讨论】:

    【解决方案2】:

    Microsoft.EntityFrameworkCore.Tools.DotNet 需要添加到您的项目中。右键单击项目并选择Edit *.csproj。然后,添加以下内容:

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

    注意:该版本是本文发布时的最新版本,将来可能会更改。

    此时只能通过直接编辑.proj 来添加这些工具。

    它运行命令的最简单方法是右键单击项目和Open Folder in File Explorer。然后,在File Explorer 的地址栏中键入cmd 以在该文件夹中打开命令提示符。现在使用以下命令创建初始迁移:

    dotnet ef migrations add InitialCreate

    【讨论】:

    • 有没有办法确定我应该使用哪个版本?当我运行迁移命令时,我看到以下内容:“C:\Users\username\Documents\Visual Studio 2017\Projects\CUPrimer\CUPrimer>dotnet ef migrations add InitialCreate Version for package Microsoft.EntityFrameworkCore.Tools.DotNet could not besolved.”跨度>
    • @sapbucket 我正在使用带有 .Net Core 2.0 预览版的 Visual Studio 2017 预览版。版本应与您使用的 .Net 核心版本相匹配。
    猜你喜欢
    • 2016-09-13
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 2018-11-18
    • 1970-01-01
    • 1970-01-01
    • 2019-11-13
    相关资源
    最近更新 更多