7

我正在尝试使用最新版本的 sqlite-net-pcl nuget 包创建一个表

var db = new SQLiteAsyncConnection("data.db");
await db.CreateTableAsync<Site>();

CreateTableAsync 调用引发以下异常:

System.MissingMethodException:'找不到方法:'System.String SQLitePCL.raw.sqlite3_column_name(SQLitePCL.sqlite3_stmt,Int32)'。

这是站点类

public class Site
{
    [PrimaryKey, AutoIncrement]
    public int Id { get; set; }

    public String Name;
    public String PriceCssSelector;
    public String URLRegex;

    public Site()
    {
    }
}

我尝试降级到 sqlite-net-pcl 包的最新稳定版本。

4

4 回答 4

6

就我而言,问题是 Microsoft.AppCenter 和 Microsoft.Appcenter.Distribute。这些包带来了不兼容的 SQLite 版本,降级/删除它们解决了这个问题。

于 2020-02-21T21:18:24.953 回答
0

我通过创建一个全新的解决方案并手动复制所有代码和模型解决了这个错误,然后让 Visual Studio 从 Nuget 导入所有需要的引用。

在我的旧/以前的解决方案/项目中从 Nuget 卸载、重新安装或删除包没有帮助/工作。

显然,以前的 Nuget 包中存在的挥之不去或相互冲突的引用是问题所在,所以重新开始是唯一对我有用的事情。

另请参阅此链接:

'System.MissingMethodException: Method not found?' 的类似 StackOverFlow 帖子

于 2019-10-31T19:36:08.770 回答
0

我在安装(为了玩弄 SQLite)之后偶然发现了这个错误sqlite-net-pcl,之后我安装了Microsoft.Azure.Mobile.Client.SQLiteStore.

我的解决方案是卸载两个 NuGet 包并Microsoft.Azure.Mobile.Client.SQLiteStore仅安装安装了相应sqlite-net-pcl版本的包。

于 2020-05-31T15:54:01.233 回答
0

在我的项目中删除 app.config 文件似乎已经解决了这个问题。

于 2019-09-01T10:33:40.180 回答