【问题标题】:SQLite Exception in Windows Store AppWindows 应用商店应用程序中的 SQLite 异常
【发布时间】:2014-09-06 15:11:56
【问题描述】:

在我的适用于 Windows 8.1(商店)和 Windows Phone 8.1 的通用应用程序中,我只在商店应用程序中打开数据库时出现异常。该代码为双方共享,并且在 Windows Phone 上可以正常工作。

class MemoDB
{
    public static SQLiteConnection conn;

    public MemoDB() { 
        conn = LoadDatabase();
    }

    static private SQLiteConnection LoadDatabase()
    {
       // Get a reference to the SQLite database
       conn = new SQLiteConnection("ct_history.sqlite");
    ...
    }
}

异常{“无法设置临时目录。”}发生在最后显示的代码行,详细信息如下:

SQLitePCL.SQLiteException was not handled by user code.
  HResult=-2146233088
  Message=Unable to set temporary directory.
  Source=SQLitePCL
  StackTrace:
       at SQLitePCL.SQLiteConnection.SetTemporaryDirectory()
       at SQLitePCL.SQLiteConnection..ctor(String fileName, Boolean setTemporaryDirectory)
       at SQLitePCL.SQLiteConnection..ctor(String fileName)
       at CTDICT.MemoDB.LoadDatabase()
       at CTDICT.MemoDB..ctor()
       at CTDICT.Dictionary..ctor()
       at CTDICT.CTDICT_Windows_XamlTypeInfo.XamlTypeInfoProvider.Activate_8_Dictionary()
       at CTDICT.CTDICT_Windows_XamlTypeInfo.XamlUserType.ActivateInstance()
  InnerException: SQLitePCL.SQLiteException
       HResult=-2146233088
       Message=Unable to open the database file: :memory:
       Source=SQLitePCL
       StackTrace:
            at SQLitePCL.SQLiteConnection..ctor(String fileName, Boolean setTemporaryDirectory)
            at SQLitePCL.SQLiteConnection.SetTemporaryDirectory()
       InnerException: System.DllNotFoundException
            HResult=-2146233052
            Message=DLL "sqlite3.dll": The specified module could not be found. (Exception from HRESULT: 0x8007007E) can not be loaded.
            Source=SQLitePCL.Ext
            TypeName=""
            StackTrace:
                 at SQLitePCL.SQLite3Provider.NativeMethods.sqlite3_open(IntPtr filename, IntPtr& db)
                 at SQLitePCL.SQLite3Provider.Sqlite3Open(IntPtr filename, IntPtr& db)
                 at SQLitePCL.SQLiteConnection..ctor(String fileName, Boolean setTemporaryDirectory)
            InnerException: 

在我看来,“DLL sqlite3.dll:找不到指定的模块”是指向问题所在。我检查了路径“C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1\ExtensionSDKs\SQLite.WinRT81\3.8.5\”,发现所有配置(ARM、x64、x86)中的 DLL .

正确设置了对 Windows 运行时 (Windows 8.1)(版本 3.8.5.0)和 SQLitePCL (v4.0.30319) 的 SQLite 的引用。

知道该怎么做吗?

【问题讨论】:

    标签: c# sqlite windows-store-apps windows-phone-8.1


    【解决方案1】:

    即使我已经多次这样做了,我还是再次删除了对 Windows 运行时 (Windows 8.1) 的引用。但这次我也删除了 Microsoft Visual C++ 2013 Runtime Package for Windows 的参考。在我再次添加后,问题就消失了。

    【讨论】:

    猜你喜欢
    • 2014-01-18
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    • 1970-01-01
    • 2012-12-22
    • 2012-10-14
    相关资源
    最近更新 更多