dapper ambigous引用
使用dapper时,添加了miniprofiler想看看生成的sql,结果编译报错
3>Tools\DapperExtension.cs(100,24,100,31): error CS0121: The call is ambiguous between the following methods or properties: 'Dapper.SqlMapper.Execute(System.Data.IDbConnection, string, object, System.Data.IDbTransaction, int?, System.Data.CommandType?)' and 'Dapper.SqlMapper.Execute(System.Data.IDbConnection, string, object, System.Data.IDbTransaction, int?, System.Data.CommandType?)'
从方法签名上,完全看不出来区别。
其实个人推测也是有库重复引用问题,不过看不出来是哪个,IDE没有提示,也不知道如何解决。
在bing上搜了搜,找到了这个回答。而且恰好就是和我一样的问题。
方法是利用extern alias
,为重复的dll中的一个指定引用别名,这样就不会两个都引用进来。
在csproj文件中添加:
<Target Name="StrongNameAlias" BeforeTargets="FindReferenceAssembliesForReferences;ResolveReferences">
<ItemGroup>
<ReferencePath Condition="'%(FileName)' == 'Dapper.StrongName'">
<Aliases>MP_DapperStrongNameAlias</Aliases>
</ReferencePath>
</ItemGroup>
</Target>
补充一下,我这里冲突的是dapper
库,和miniprofiler引用的dapper.strongname
库