System.Data.SQLite(SDS)顯然是從.Net應用程序使用SQLite最流行的方式。靜態編譯SQLite到VB.Net應用程序?
我想知道如果
- SDS需要除了出貨SQLite的DLL,或者如果SDS包括 SQLite的源代碼,和
- SDS可以靜態編譯成的 VB.Net應用它只能作爲DLL發貨?
謝謝。
System.Data.SQLite(SDS)顯然是從.Net應用程序使用SQLite最流行的方式。靜態編譯SQLite到VB.Net應用程序?
我想知道如果
謝謝。
爲了擴充我的評論,SDS是非託管代碼的.net包裝器,因此您需要將發佈代碼與DLL的副本一起發送。
正如史蒂夫提到的那樣,DLL有32位和64位版本,而且我在發現很多挫敗事件之後,必須在目標機器上安裝相應的visual C++運行庫,因此如果將32位版本部署到64位機器,它將需要安裝32位C++運行時環境。
我目前正在研究,但還沒有來得及試驗的替代方法是csharpe-sqlite的,一個純粹的.NET實現:
http://code.google.com/p/csharp-sqlite/
在C#編碼顧名思義,但當然可用以任何.net語言包括vb.net
非常感謝有關匹配DLL + C++運行時的信息。 C#SQLite似乎是無用的,因爲它的最新更新是在2011年8月。 – Gulbahar
實際上很容易編譯System.Data.SQLite.dll到不需要C++運行時。例如,如果你download的源代碼,並按照build procedures你會發現靜態鏈接(沒有C/C++運行時所需)在以下路徑System.Data.SQLite.dll的副本:
<your-src-root>\bin\<2008 or 2010>\<Win32 or x64>\ReleaseStatic
例如,如果你源是在C:\Work\sqlite-netFx-source-1.0.80.0
爲Win32然後靜態鏈接二進制和.NET 3.5(VS 2008)將設在:
C:\Work\sqlite-netFx-source-1.0.80.0\bin\2008\Win32\ReleaseStatic
此外,由於System.Data.SQLite.dll是mixed-mode assembly由管理.netmodule和本機的使用link.exe鏈接在一起的.obj文件,有可能b將您的應用作爲.net模塊來使用,並將它與SQLite鏈接到一個混合模式程序集中。
所得到的組件將仍然是要麼的Win32或x64,但是因爲幾乎所有的x64機器不會有任何問題的Win32運行的代碼,你可以在Win32只是解決,只要:
其淨包裝器非託管代碼。你需要運送dll,並確保在目標機器上安裝了visual C++運行庫 – Steve
並且不要忘記64/32位檢查。 (不同的DLL版本) – Steve