2012-04-12 22 views
0

いくつかのマシンでhavokを引き起こしたSQLiteで数回頭を回した後、私はライブラリの 'Managed Only'バージョンを見つけました。 http://sourceforge.net/projects/sqlite-dotnet2/files/SQLite%20for%20ADO.NET%202.0/1.0.66.0/ ILMergeを使用した後にDLLが見つからない

私は興奮してこれを私のプロジェクトフォルダに入れました。だから、私のプロジェクトはアーキテクチャに関係なく、全員のコンピュータ上で動作します!

実際に私はILMergeを使用してみました(私の依存関係はすべて管理されています)ので、DLLファイルをリソースとしてコピーして、不在を検出した場合は出力フォルダに書き込む必要はありません。

私は、次のコマンドを使用してEXEをコンパイル:SQLiteのが管理されているものの、それはのようなフラグが付けられていないとzeroPeKind ISN場合は、コンパイルでエラーが発生するため

ilmerge.exe /target:winexe /zeroPeKind /out:"Core View.exe" CoreView.exe System.Data.SQLite.dll OpenHardwareMonitorLib.dll

zeroPeKindフラグが」必要とされています

0:Tの存在)

問題は今、それがうまく起動するが、DLLファイルが存在しない場合、私は、任意のデータベース操作を実行しようと次のエラーを取得する、ということですSystem.DllNotFoundException: Unable to load DLL 'System.Data.SQLite.DLL'

これは簡単に修正できますか?

+0

System.Data.SQLite.dllは実際には管理されていません。ダウンロードしたバイナリは、pinvokeを使用してsqlite3.dllのアンマネージ機能にアクセスします。 – Will

+0

あなたはそれについて確かですか?私は、通常の使用方法ではなく、「管理対象のみ」というラベルのバイナリをダウンロードしました。 – CJxD

+0

はい。 System.Data.SQLiteのユーザーは、完全に管理されたユーザーではありません。ある時点では、まだアンマネージコードがあります。つまり、外部DLLなしでSystem.Data.SQLiteを使用することはできません。 – Will

答えて

1

これは私が知っている唯一の完全に管理されたsqlite3ライブラリです。

http://code.google.com/p/csharp-sqlite/

+0

ありがとう、このバージョンのSQLiteは後のアップデートに含めることができます。 – CJxD

関連する問題