mysql - Dotnet Core Microsoft.EntityFrameworkCore.Tools.Dotnet 未安装

标签 mysql xml asp.net-core entity-framework-core

我有一个 Dotnet 核心项目,我试图在其中安装 Microsoft.EntityFrameworkCore.Tools.Dotnet 以使用迁移。我在 Mac 上,所以我使用 MySql.Data.EntityFrameworkCore 包。当我尝试安装命令行工具时出现以下错误,但是如果我手动将包添加到 csproj 文件,它将安装。但是在尝试运行 dotnet ef 时出现以下错误。

Version for package Microsoft.EntityFrameworkCore.Tools.Dotnet could not be resolved.

我在 .net core 1.0.4 和 .net core 2.0 上都试过了,但得到了同样的错误。我还尝试将以下内容添加到我的 csproj 文件中,但没有帮助

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

有什么我想念的吗?

完整的 csproj 文件:

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <UserSecretsId>aspnet-WebApplication-FCC62E5C-58CB-44F6-835B-E0E34F1DE6D7</UserSecretsId>
  </PropertyGroup>
  <ItemGroup>
    <Folder Include="wwwroot\" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0-preview2-final" />
    <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.0.0-preview2-final" />
    <PackageReference Include="MySql.Data.EntityFrameworkCore" Version="8.0.8-dmr" />
    <PackageReference Include="MySql.Data.EntityFrameworkCore.Design" Version="8.0.8-dmr" />
  </ItemGroup>
  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0-preview2-final" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\ClassLibrary.Data\ClassLibrary.Data.csproj" />
  </ItemGroup>
</Project>

类库csproj:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="MySql.Data.EntityFrameworkCore" Version="8.0.8-dmr" />
    <PackageReference Include="MySql.Data.EntityFrameworkCore.Design" Version="8.0.8-dmr" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools.Dotnet" Version="2.0.0-preview2-final" />
  </ItemGroup>
  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.Dotnet" Version="2.0.0-preview2-final" />
  </ItemGroup>
</Project>

最佳答案

class library csproj中去掉包中的Dotnet include:

错误的方式:

<PackageReference Include="Microsoft.EntityFrameworkCore.Tools.Dotnet" Version="2.0.0-preview2-final" />

正确的方法:

 <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.0-preview2-final" />

Microsoft.EntityFrameworkCore.Tools.Dotnet 仅在 DotNetCliToolReference 中设置:

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

关于mysql - Dotnet Core Microsoft.EntityFrameworkCore.Tools.Dotnet 未安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45429899/

相关文章:

xml - XML Schema 是 SGML DTD 的子集吗?

java - 通过 XPath 获取 HTML 元素的子元素

python - 使用 elementtree 获取和更新 xml 中的值

c# - 如何在asp.net-core webapi中使用unity-container拦截

mysql - 在 SQL 中,如何输出对多个列执行函数的列?

php - 如何将数据库查询结果集作为对象组进行管理?

php - 数组 PHP 中 undefined offset (在 for 迭代中)

php - 更新MySQL数据库中的加密密码

c# - 使用具有多个参数的构造函数的依赖注入(inject)解析,这些参数的值在运行时确定 .NET Core 3

c# - 无法跟踪实体类型 'x' 的实例,因为已在跟踪键值为 '{Id: 6}' 的另一个实例