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

posted @ 2020-03-31 21:32  mosakashaka  阅读(188)  评论(0编辑  收藏  举报