【问题标题】:.NET compatibility with MySql.Data.NET 与 MySql.Data 的兼容性
【发布时间】:2018-03-17 08:05:03
【问题描述】:

我在 VS Code 中设置了一个 asp.net webapi 项目(cmd:dotnet new webapi)。我已经在我的项目中安装了 Nuget 并加载了 MySql.Data, Version="6.9.9"。恢复项目后(cmd:dotnet restore)出现以下错误:

error NU1202: Package MySql.Data 6.9.9 is not compatible with netcoreapp1.1 (.NETCoreApp, Version=v1.1)

这是我的 .csproj 文件:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp1.1</TargetFramework>
    <PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback>
    <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
  </PropertyGroup>
  <ItemGroup>
    <Folder Include="wwwroot\"/>
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore" Version="1.1.2"/>
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.3"/>
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.1"/>
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.2"/>
    <PackageReference Include="MySql.Data" Version="6.9.9"/>
  </ItemGroup>
  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.1"/>
    <DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="1.0.0"/>
  </ItemGroup>
</Project>

有人知道哪些版本是兼容的吗? 提前谢谢...

【问题讨论】:

    标签: c# mysql .net visual-studio-code .net-core


    【解决方案1】:

    我记得,所有预发布版本都使用 .net 核心。不幸的是,当我尝试了 6.9.9 之前的所有版本时,它都不起作用。我已经使用预发行版一段时间了,没有发现任何问题。然而,当我使用核心 1.1 时,我使用的是预发布版本 7.x。这个版本最近被删除了。但我很确定 8.0.8-dmr 会起作用。

    【讨论】:

      【解决方案2】:

      通过以下介绍: How to change target framework with VS 2017 RC?我解决了这个问题。

      我的 csproj 文件现在看起来像这样:

      <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <Project Sdk="Microsoft.NET.Sdk.Web">
        <PropertyGroup>
          <TargetFramework>net462</TargetFramework>
          <RuntimeIdentifier>win7-x86</RuntimeIdentifier>
          <PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback>
          <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
        </PropertyGroup>
        <ItemGroup>
          <Folder Include="wwwroot\"/>
        </ItemGroup>
        <ItemGroup>
          <PackageReference Include="Microsoft.AspNetCore" Version="1.1.2"/>
          <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.3"/>
          <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.1"/>
          <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.2"/>
          <PackageReference Include="MySql.Data" Version="6.9.9"/>
        </ItemGroup>
        <ItemGroup>
          <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.1"/>
          <DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="1.0.0"/>
        </ItemGroup>
      </Project>
      

      恢复项目(cmd:dotnet restore)效果很好!

      【讨论】:

      • 请注意 MySQL.Data 是 LGPL.. 将 DLL 与您的应用一起分发有潜在的许可陷阱...
      • 基本上这意味着如果您将任何 LGPL 组件与您的应用程序一起分发,您的应用程序就有可能被开源。因此,您应该将 Mysql.Data.DLL 作为应用程序先决条件的一部分,并在文档中提供链接供客户下载并正确安装。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-04
      • 2020-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多