System.Data.SQLite (SDS) は、明らかに、.Net アプリケーションから SQLite を使用する最も一般的な方法です。
私は疑問に思っていた
- SDS では、さらに SQLite DLL を出荷する必要があります。または、SDS に SQLite ソース コードが含まれている場合は、
- SDS は VB.Net アプリケーションに静的にコンパイルできますが、DLL としてのみ出荷できますか?
ありがとうございました。
System.Data.SQLite (SDS) は、明らかに、.Net アプリケーションから SQLite を使用する最も一般的な方法です。
私は疑問に思っていた
ありがとうございました。
実際、C++ ランタイムを必要としない System.Data.SQLite.dll をコンパイルするのは非常に簡単です。たとえば、ソース コードをダウンロードしてビルド手順に従うと、次のパスに System.Data.SQLite.dll の静的にリンクされた (C/C++ ランタイムは不要) コピーが見つかります。
<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 は、管理された .netmodule と、 link.exeを使用してリンクされたネイティブ .obj ファイルで構成される混合モード アセンブリであるため、アプリを .netmodule としてビルドし、それらをリンクすることもできます。 SQLite を使用して単一の混合モード アセンブリにします。
結果として得られるアセンブリは依然として Win32 または x64 のいずれかになりますが、ほとんどすべての x64 マシンで Win32 コードの実行に問題がないため、次の場合は Win32 に落ち着くことができます。
私のコメントをさらに詳しく説明すると、SDS はアンマネージ コードの .net ラッパーであるため、リリース コードを DLL のコピーと共に出荷する必要があります。
Steve が言及しているように、DLL には 32 ビット バージョンと 64 ビット バージョンがあり、多くのフラストレーションの後に発見したように、対応するビジュアル C++ ランタイムをターゲット マシンにインストールする必要があるため、32 ビット バージョンを 64 ビット マシンにデプロイすると、 32 ビットの C++ ランタイム環境がインストールされている必要があります。
私が現在検討しているがテストする時間がなかった代替手段は、純粋な.net実装であるcsharpe-sqliteです。
http://code.google.com/p/csharp-sqlite/
名前が示すように c# でコーディングされていますが、もちろん vb.net を含む任意の .net 言語で使用できます。