The type 'MySqlConnectionStringBuilder' exists in both 'MySql.Data, Version=8.0.21.0,' and 'MySqlConnector, Version=0.45.1.0, Culture=neutral'

最近升级项目遇到了这个问题,原因本质是项目中同时使用了sqlsugar和hangfire.mysql

 

两个组件一个使用的是mysql.data,一个使用的是MySqlConnector,恰巧项目中使用了MySqlConnectionStringBuilder来解析连接字符串,所以发生了标题的错误:

var builder = new MySqlConnectionStringBuilder(currentApp.RdsAddress);
var bizTableList = _mysqlDb.Ado.SqlQuery<string>(string.Format(_configItem.Biz_GetAllTablesSql, builder.Database));

有两个解决方案:

 

第一:删除两个组件中的一个,这样就不会报同时存在的错误了,但是这样不够优雅;

 

第二:也是本次采用的方法,在项目的.csproj文件中,添加入如下行(放在PropertyGroup下面就行了): 就能对MySqlConnector进行一个别名操作,这样就避免了命名引用重复了

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

The type 'MySqlConnectionStringBuilder' exists in both 'MySql.Data, Version=8.0.21.0,' and 'MySqlConnector, Version=0.45.1.0, Culture=neutral'

上一篇:安卓系统源码编译系列(七)——单独编译WebView兼容性问题解决


下一篇:我是怎么把“酒足饭饱”的微信公众号做到5000+人关注的。