zoukankan      html  css  js  c++  java
  • 解决在.Net Native编译含有SQLCihper包报错问题

    在Uwp应用程序中,引用"SQLitePCLRaw.bundle_e_sqlcipher"Nuget包后,采用.Net Native工具链编译会失败,错误消息为:

    SQLitePCL.ISQLite3Provider.sqlite3_stmt_isexplain(SQLitePCL.sqlite3_stmt)' is missing implementation


    造成此错误的原因是,该应用还同时引用了AppCenter。这个nuget包依赖老版本的bundle_green,和bundle_sqlcipher起了冲突。


    目前的解决措施就是将AppCenter中有冲突的部分排除出去,即可顺利通过编译。而且App运行时,AppCenter的相关功能也是可以正常运转的。项目的csproj文件中引用包的部分按照以下方式引用AppCenter和SQPCihper:

      1 <ItemGroup>
      2    <PackageReference Include="Microsoft.AppCenter">
      3       <Version>4.3.0</Version>
      4    </PackageReference>
      5    <PackageReference Include="sqlite-net-base">
      6       <Version>1.7.335</Version>
      7    </PackageReference>
      8    <PackageReference Include="sqlite-net-pcl">
      9       <Version>1.7.335</Version>
     10       <ExcludeAssets>All</ExcludeAssets>
     11    </PackageReference>
     12    <PackageReference Include="SQLitePCLRaw.bundle_e_sqlcipher">
     13       <Version>2.0.5-pre20210817120427</Version>
     14    </PackageReference>
     15    <PackageReference Include="SQLitePCLRaw.bundle_green">
     16       <Version>2.0.5-pre20210817120427</Version>
     17       <ExcludeAssets>All</ExcludeAssets>
     18    </PackageReference>
     19 </ItemGroup>

    值得注意的是:

    版本为2.0.5-pre20210824155428的SQLitePCLRaw.bundle_e_sqlcipher有点问题,其中包含的Arm版本的sqlite库可能放成了x64版本。


    参考:

    0.报错的具体描述:https://github.com/ericsink/SQLitePCL.raw/issues/372

    1.问题的分析过程:https://github.com/ericsink/SQLitePCL.raw/issues/229

    2.问题的解决方案:https://github.com/microsoft/appcenter-sdk-dotnet/issues/569

  • 相关阅读:
    图像相似度
    二维数组 问题 E: 计算鞍点
    Uva
    Uva
    Uva
    Uva
    Uva
    Uva
    Uva
    【转载】2015 Objective-C 三大新特性 | 干货
  • 原文地址:https://www.cnblogs.com/optimo/p/15221957.html
Copyright © 2011-2022 走看看