在UWP For Store Apps中引用sqlite3.dll

时间:2017-10-04 01:07:35

标签: c# sqlite dll uwp windows-store

我们有一个利用Xamarin Forms的UWP应用程序。它通过这个.NET标准库使用SQLite:

https://github.com/MelbourneDeveloper/SQLite.Net.Standard(这是我的库,是https://github.com/oysteinkrog/SQLite.Net-PCL)的分支

SQLite在调试模式下工作正常,并且在为.NET Native编译时也能正常工作。我相信我们通过像这样的Visual Studio插件引用物理C sqlite3库文件:

enter image description here 但是,当我们尝试将其上传到商店时,我们会收到以下一系列错误消息:

  

不支持libsqlite3_for_net.dll中的API sqlite3_backup_finish   对于此应用程序类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_backup_init   这种应用类型。 SQLite.Net.Standard.dll调用此API。

     

libsqlite3_for_net.dll中的API sqlite3_backup_pagecount不是   支持此应用程序类型。 SQLite.Net.Standard.dll调用   这个API。

     

libsqlite3_for_net.dll中的API sqlite3_backup_remaining不是   支持此应用程序类型。 SQLite.Net.Standard.dll调用   这个API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_backup_step   这种应用类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_bind_blob   这种应用类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_bind_double   这种应用类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_bind_int   这种应用类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_bind_int64   这种应用类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_bind_null   这种应用类型。 SQLite.Net.Standard.dll调用此API。

     

libsqlite3_for_net.dll中的API sqlite3_bind_parameter_index不是   支持此应用程序类型。 SQLite.Net.Standard.dll调用   这个API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_bind_text16   这种应用类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_busy_timeout   对于此应用程序类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_changes   这种应用类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_close   申请类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_column_blob   这种应用类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_column_bytes   对于此应用程序类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_column_count   对于此应用程序类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_column_double   对于此应用程序类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_column_int   这种应用类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_column_int64   对于此应用程序类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_column_name16   对于此应用程序类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_column_text16   对于此应用程序类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_column_type   这种应用类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_config   申请类型。 SQLite.Net.Standard.dll调用此API。

     

libsqlite3_for_net.dll中的API sqlite3_enable_load_extension不是   支持此应用程序类型。 SQLite.Net.Standard.dll调用   这个API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_errmsg16   这种应用类型。 SQLite.Net.Standard.dll调用此API。

     

libsqlite3_for_net.dll中的API sqlite3_extended_errcode不是   支持此应用程序类型。 SQLite.Net.Standard.dll调用   这个API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_finalize   这种应用类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_initialize   这种应用类型。 SQLite.Net.Standard.dll调用此API。

     

libsqlite3_for_net.dll中的API sqlite3_last_insert_rowid不是   支持此应用程序类型。 SQLite.Net.Standard.dll调用   这个API。

     

libsqlite3_for_net.dll中的API sqlite3_libversion_number不是   支持此应用程序类型。 SQLite.Net.Standard.dll调用   这个API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_open   申请类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_open16   申请类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_open_v2   这种应用类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_prepare16_v2   对于此应用程序类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_reset   申请类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_shutdown   这种应用类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_sleep   申请类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_sourceid   这种应用类型。 SQLite.Net.Standard.dll调用此API。

     

不支持libsqlite3_for_net.dll中的API sqlite3_step   申请类型。 SQLite.Net.Standard.dll调用此API。

     

libsqlite3_for_net.dll中的API sqlite3_win32_set_directory不是   支持此应用程序类型。 SQLite.Net.Standard.dll调用   这个API。

所以,我的问题是:为什么微软会拒绝这个

从四处查看,似乎我们可能使用了错误版本的sqlite 3库。但是,我们应该使用哪一个? Xamarin是否有特定的?为什么包吐出一个名为libsqlite3_for_net.dll的文件?为什么不只是sqlite3.dll?

是否有关于如何将SQLite导入Windows应用商店中的应用的文档?

1 个答案:

答案 0 :(得分:1)

问题是libsqlite3_for_net.dll仅适用于iOS。从共享代码中删除该dll的DllImport,以便在没有该DLL可用的平台上不需要dll。