3

目前,我正在尝试将我的 Windows 商店应用程序重新定位到 Windows 8.1 预览版。问题是,我在我的一个项目中使用了 sqlite-net 包。我按照此处描述的步骤操作: http ://www.lyalin.com/2013/07/09/sqlite-for-windows-runtime-for-windows-8-1-apps/并下载了 sqlite Visual Studio 的预发布版本此链接的扩展名: http ://www.lyalin.com/2013/07/09/sqlite-for-windows-runtime-for-windows-8-1-apps/ 。我在我的项目中添加了对新安装的用于 windows 运行时的 sqlite 的引用,但是在构建时出现错误:

Error   2   Windows Runtime type 'Windows.Foundation.Point' was found in
multiple referenced winmd files. Please remove either 'C:\Program Files (x86)\Microsoft
SDKs\Windows\v8.1\ExtensionSDKs\Microsoft.VCLibs\12.0\References\CommonConfiguration\neutral\platform.winmd'
or 'C:\Program Files (x86)\WindowsKits\8.1\References\CommonConfiguration\Neutral\Windows.winmd' 
from the list of referenced files.  C:\Users\Jarosław\Desktop\BCM\Win8Client\MetriceModel\WINMDEXP
MetriceModel (Windows 8.1)

某处,在某个论坛上有人暗示,如果您从项目中删除对 microsoft visual c++ 运行时包的引用,它将解决问题。在我完成整个解决方案后编译得很好,但在运行时出现以下异常:

 Unable to load DLL 'sqlite3': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

一行抛出异常:

#if NETFX_CORE
        SQLite3.SetDirectory(/*temp directory type*/2, Windows.Storage.ApplicationData.Current.TemporaryFolder.Path);
#endif

SQLite.cs 文件(文件来自前面提到的 sqlite-net 包)。

项目的文件夹 bin/Debug/AppX 包含文件 sqlite3.dll。我的解决方案中的每个项目都将 x86 作为平台目标。我该如何解决这个问题?在迁移项目之前,一切正常。

4

3 回答 3

4

您必须在 sqlite 下载页面(v3.8.0.2)安装正式版的 vsix 包。

在 Visual Studio 加载项管理器中,此包版本为 3.7.1.17,并且不正确。

之后,我认为这是一个错误,您必须选择好的处理器(平台目标)。

我遇到了同样的错误,因为我在 x64 机器上部署了一个在 x86 中编译的迁移的 winrt 应用程序(8.1)... => 在 windows 8.0 中它可以工作,但在 windows 8.1 中不行。

如果您有 x64 机器,则必须选择 x64 目标编译。我希望它会在未来修复...

于 2013-10-01T10:39:53.343 回答
1

您能否重新安装 WinRT 8.1 的 SQLite 预览版?初始软件包存在问题,但我们与他们合作进行了更新。 http://sqlite.org/download.html

于 2013-07-31T16:41:36.330 回答
1

如果你有一个例外

SQLite3.SetDirectory(/*temp directory type*/2,windows.Storage.ApplicationData.Current.TemporaryFolder.Path);

检查您的项目是否x86使用any CPU

于 2014-09-30T07:39:03.000 回答