2

配布フォルダーに DLL ファイルを含めるのではなく、移植可能な C# .NET 2.0 アプリケーションに SQLite を埋め込もうとしています。ただし、SQLite を埋め込むには、PHXSoftware が提供する Mixed-Mode ライブラリを使用できません。代わりに、「管理対象のみ」バージョンを使用しています。

これは 32 ビット コンピューターでは問題なく動作しますが、64 ビット コンピューターで実行すると、フォーマット例外がスローされます。ここからわかったように: http://sqlite.phxsoftware.com/forums/p/2564/9939.aspxマネージ ライブラリを使用する前に、アンマネージ sqlite3.dll を必要なアーキテクチャ形式で手動でロードする必要があります。

それが私が足りないところです。32 ビット バージョンと一緒に含める SQLite の 64 ビット バージョンが見つかりません。誰でも助けることができますか?あえて言いますが、誰かより良いアイデアはありますか?

4

2 に答える 2

1

自分でソースをビルドすることをお勧めします。それは非常に簡単です。特に、Sqlite が合併ソースを提供していることを考慮してください。

以下は、64 ビット リリース ビルドに使用するコンパイラ プリプロセッサ定義です。

  • WIN64 NDEBUG
  • _ウィンドウズ
  • _USRDLL
  • NO_TCL
  • _CRT_SECURE_NO_DEPRECATE
  • スレッドセーフ=1
  • TEMP_STORE=1
  • SQLITE_MAX_EXPR_DEPTH=0

以下は、私が 32 ビット リリース ビルドに使用するコンパイラ プリプロセッサ定義です。

  • WIN32
  • NDEBUG
  • _ウィンドウズ
  • _USRDLL
  • NO_TCL
  • _CRT_SECURE_NO_DEPRECATE
  • スレッドセーフ=1
  • TEMP_STORE=1
  • SQLITE_MAX_EXPR_DEPTH=0
于 2012-05-23T21:01:12.960 に答える
0

System.Data.SQLiteフォークには、.Net 2、3.5、および4用のx86/x64バイナリがあります。ダウンロードはこちらです

アップデート:

もう1つの可能な解決策は、アプリケーションをx86プラットフォームのターゲットにして、x86SQLiteライブラリを使用することです。アプリケーションがx86プラットフォームを対象とするx64機能を必要としない場合は、展開の複雑さを大幅に軽減します。

于 2012-05-21T19:57:51.147 に答える