'MySql.Data问题

时间:2018-02-08 10:28:40

标签: c# asp.net-core dependencies nuget

我在一个项目上引用了MySql.Data,其他项目引用了nuget包,其中也引用了MySqlConnector。项目有依赖性。

当我编译应用程序即时收到此错误

enter image description here

这是应用程序层次结构

enter image description here

有什么方法可以避免这种情况吗?或者在引用包时我做错了什么?

谢谢

更新 这是来自差异库的相同名称空间

enter image description here

更新2

这是sample repo再现同样的问题

2 个答案:

答案 0 :(得分:3)

NET.Framework项目中,您可以转到参考属性并为程序集设置别名。 Net core项目尚未完全支持程序集的别名。但是在.net core中使用别名有一种解决方法。像这样编辑csproj文件:

<Project Sdk="Microsoft.NET.Sdk.Web">
...

  <Target Name="ChangeAliasesOfStrongNameAssemblies" BeforeTargets="FindReferenceAssembliesForReferences;ResolveReferences">
    <ItemGroup>
      <ReferencePath Condition="'%(FileName)' == 'MySqlConnector'">
        <Aliases>MySqlConnectorAlias</Aliases>
      </ReferencePath>
    </ItemGroup>
  </Target>
...
</Project>

然后在所有使用之前在你的cs文件中:

extern alias MySqlConnectorAlias;

然后你可以引用你从MySqlConnector这样输入:

MySqlConnectorAlias::MySql.Data.MySqlClient.MySqlConnection

答案 1 :(得分:0)

如果您从项目/引用中删除mysql.data引用,它将起作用。

希望它会为您工作。对我来说,它是有效的。我的项目是ASP.NET Core Framework。在VS2017中创建了项目,并在VS2019中引入了该项目。