最近升级项目遇到了这个问题,原因本质是项目中同时使用了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>