【问题标题】:CreateParam does not have an implementationCreateParam 没有实现
【发布时间】:2016-11-15 13:20:26
【问题描述】:

我正在尝试将 Sqllite 内存数据库与 ServiceStack 一起运行。

Visual Studio .net 4.6.1 中的控制台应用

(如果我在 LinqPad 中运行相同的代码,它工作正常)

平台目标:x64

安装包ServiceStack.OrmLite.Sqlite64

static void Main(string[] args)
{
    OrmLiteConfig.DialectProvider = SqliteDialect.Provider;

    using (IDbConnection db = ":memory:".OpenDbConnection())
    {

    }
}

然后运行这个应用程序,我得到这个错误:

An unhandled exception of type 'System.TypeLoadException' occurred in
 ConsoleApplication1.exe

Additional information: Method 'CreateParam' in type     
  'ServiceStack.OrmLite.Sqlite.SqliteOrmLiteDialectProvider' 
   from assembly 
  'ServiceStack.OrmLite.SqliteNET, 
   Version=4.0.42.0, 
   Culture=neutral,     
   PublicKeyToken=null' does not have an implementation.  

package.json:

<?xml version="1.0" encoding="utf-8"?>
<packages>
   <package id="ServiceStack.Common" version="4.5.4" targetFramework="net461" />
   <package id="ServiceStack.Interfaces" version="4.5.4" targetFramework="net461" />
   <package id="ServiceStack.OrmLite" version="4.5.4" targetFramework="net461" />
   <package id="ServiceStack.OrmLite.Sqlite64" version="4.0.42" targetFramework="net461" />
   <package id="ServiceStack.Text" version="4.5.4" targetFramework="net461" />
</packages>

【问题讨论】:

  • 你能发布你的 packages.config 文件吗?

标签: sqlite ormlite-servicestack


【解决方案1】:

在所有版本的 ServiceStack 中,您需要为所有 ServiceStack 包引用相同的版本。您的 packages.json 表明它引用了已弃用的 ServiceStack.OrmLite.Sqlite64 NuGet 包的旧 v4.0.42。

OrmLite.Sqlite64OrmLite.Sqlite32 都已弃用到包含 32 位和64 位原生 .dll。

PM> Install-Package ServiceStack.OrmLite.Sqlite.Windows

您还可以使用 ServiceStack.OrmLite.Sqlite.Mono Sqlite NuGet 包,它适用于 Linux 和 Windows,并引用本机 sqlite3.dll

【讨论】:

    猜你喜欢
    • 2011-03-04
    • 2017-04-28
    • 2020-08-08
    • 2023-03-31
    • 2017-12-27
    • 2020-06-17
    • 2020-07-19
    • 2013-04-06
    • 2017-10-13
    相关资源
    最近更新 更多