2013-04-03 70 views
4

我正在創建一個Windows 8商店應用程序。這個應用程序的前端(主項目)是HTML5/Javascript。我正在關注this guide by Tim Heuer以創建一個包裝SQLite調用的C#WinRT組件,其行爲如同控制器。前端通過Javascript調用該組件,更新數據並獲取演示內容。Win8 Javascript Metro應用程序,用C#WinRT組件和SQLite

所以在我的解決方案中有2個項目,javascript中的'main'和C#中的'db'。我設法根據指南獲取SQLite的工作。我有這種結構的原因是我試圖將應用程序從iOS移植到Win8。 '控制器'部分是一個獨立的組件,它已經移植到C#中。

但是,有一個警告。由於this known problem,我必須從'db'項目中刪除對C++ Runtime v11的引用以使其可編譯。雖然它在開發機器上運行良好。

然後我得到了這個測試機器(準確地說是samsung xe700t1a,英特爾i5),我發現當在這臺測試機器上調試遠程時,Visual Studio不會部署SQLite3。結果,我的SQLite調用失敗,錯誤:"Unable to load DLL 'sqlite3': The specified module could not be found. (Exception from HRESULT: 0x8007007E)"

根據我之前提到的指南,通過WinRT擴展使得SQLite成爲可用,是爲了使部署自動化。

我想知道爲什麼會發生這種情況,以及如何使其正確?我也想知道在這個結構中是否有Windows應用商店的認證問題?

我也遇到了this postthis post暗示目前在WinRT組件中不能使用SQLite。但現在改變已經太遲了,如果沒有混合結構,這個項目將不可能實現。

+0

另一方面,因爲訪問'C:\ Program Files \ WindowsApps'文件夾時存在限制,所以在遠程調試時甚至不知道我的應用程序部署了什麼。 –

+0

您可以以管理員身份打開命令提示符並手動導航到WindowsApps文件夾。如果您執行Dir或使用文件資源管理器,您將不會看到它列出。 –

+0

@JimWooley,謝謝。但它看起來並不像RemoteDebugger在那裏部署我的應用程序。我無法找到相應的文件夾。 –

回答

1

我找到了解決方案。我使用了this post的提示,它非常簡單。

我要做的是在解決方案中創建另一個項目,並將輸出類型設置爲C#類庫。將引用移至WinRT的SQLite,並將sqlite-net(nuget)包裝移至此新項目。之後,我必須手動通過sqlite-net中的類,並將所有「內部」類更改爲「公共」。

對於原始控制器項目,我添加using myclasslib;,以便找到類定義。

顯然這個解決方法將完美地工作。 SQLite3已部署,並且沒有針對缺少引用的警告。

相關問題