我在一个项目上引用了MySql.Data
,其他项目引用了nuget包,其中也引用了MySqlConnector
。项目有依赖性。
当我编译应用程序即时收到此错误
这是应用程序层次结构
有什么方法可以避免这种情况吗?或者在引用包时我做错了什么?
谢谢
更新 这是来自差异库的相同名称空间
更新2
这是sample repo再现同样的问题
答案 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中引入了该项目。