2013-07-31 190 views
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 extension: http://www.lyalin.com/2013/07/09/sqlite-for-windows-runtime-for-windows-8-1-apps/。 我已經加入到我的項目窗口運行新安裝的sqlite的一個參考,但我得到了一個錯誤,而建設:遷移Windows 8商店的應用程序8.1的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) 

某處,在論壇上有人的一個暗示,如果您刪除引用微軟Visual C++運行時包來自於該項目,它將解決問題。

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

(從前面提到的文件:

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

的例外是在一行拋出:之後我做了整體解決方案編譯罰款,但我在運行時得到了以下異常sqlite-net包)。

項目的文件夾bin/Debug/AppX包含文件sqlite3.dll。我的解決方案中的每個項目都將x86作爲平臺目標。我如何解決這個問題?在遷移項目之前,一切正常。

回答

4

您必須在sqlite下載頁面(v3.8.0.2)上安裝官方版本的vsix包。

在Visual Studio加載項管理器中,此軟件包版本是3.7.1.17,它不正確。

之後,我認爲這是一個bug,你必須選擇好的處理器(平臺目標)。

我有同樣的錯誤,因爲我在x64機器上部署了一個在x86中編譯的遷移的winrt應用程序(8.1)... =>在Windows 8.0中工作,但不在Windows 8.1中。

如果您有x64機器,則必須選擇x64目標編譯。我希望這將是固定在未來的危機...

+0

是的,這是解決方案。問題是,在我問這個問題時,sqlite v3.8.0.2是不可用的:) –

+0

@wlaroche我也有同樣的問題。遷移到8.1後,它工作正常,但幾天後,它開始拋出這個錯誤。我已經嘗試了上述所有方法。請幫忙。 –

1

請問您可以重新安裝SQLite for WinRT 8.1的預覽版嗎?最初的軟件包有問題,但我們與他們一起更新。 http://sqlite.org/download.html

+0

你是什麼意思重新安裝?就在今天,我從你提供的鏈接(第三項)安裝了這個軟件包。這不像我安裝了一些舊版本。 –

+0

如果你有正確的(在下載頁面上有相同的散列/日期包),那就很好。我注意到你的用戶名中有一個Unicode字符,因此你的本地應用程序數據路徑。在這種情況下,你可以使用需要傳入Flags的重載SqliteConnection方法嗎?這可能是SQLite給出Unicode文件路徑的誤判。 –

1

如果你有

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

檢查異常,如果你的項目使用x86而不是any CPU

相關問題