私は C# が初めてで、System.Data.SQLite を使用して DB 接続をセットアップしようとしています。Compact Framework バイナリ バージョン 1.0.84 を使用しています。および Windows Vista および .net 3.5
私は SharpDevelop を使用しています。この問題を扱った他の投稿をいくつか見ましたが、それらは、私が使用していない何らかの形式の Visual Studio でプロジェクト プロパティを変更することによって解決された 32 ビット対 64 ビットの問題であることが判明したと思います。また、IDE でプロジェクトのプロパティを確認したところ、表示されるすべてのオプションが x86 および 32 ビットを指していました。また、プロパティで「Any CPU」を使用してみましたが、うまくいきませんでした。
関連するコードは次のとおりです。
try{
SQLiteConnection conn;
conn = new SQLiteConnection("Data Source=C:\\my path");
conn.Open();
conn.Close();
}
catch (SQLiteException ex){
throw new Exception(ex.Message);
}
デバッグで実行しているときに発生する例外は次のとおりです。ローカル パスを置き換えました。
System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception de HRESULT: 0x8007000B)
in System.Data.SQLite.SQLite3.Open
in System.Data.SQLite.SQLiteConnection.Open
in mypath
in System.Windows.Forms.Control.OnClick
in System.Windows.Forms.Button.OnClick
in System.Windows.Forms.Button.OnMouseUp
in System.Windows.Forms.Control.WmMouseUp
in System.Windows.Forms.Control.WndProc
in System.Windows.Forms.ButtonBase.WndProc
in System.Windows.Forms.Button.WndProc
in ControlNativeWindow.OnMessage
in ControlNativeWindow.WndProc
in System.Windows.Forms.NativeWindow.DebuggableCallback
in ComponentManager.System.Windows.Forms.UnsafenativeMethods.IMsoComponentManager.FPushMessageLoop
in ThreadContext.RunMessageLoopInner
in ThreadContext.RunMessageLoop
in System.Windows.Forms.Application.Run
in mypath
また、SQLite.Interop.084.dll を参照として追加すると、不正なイメージ ファイルまたはメタデータがないという警告が表示されます。「ローカル コピー」オプションは、プロパティでグレー表示されます。
古いバージョン (1.0.66) の DLL を置き換えたところ、「MSB3247 - 同じ依存アセンブリの異なるバージョン間で競合が見つかりました」というメッセージが表示されます。
プロジェクト フォルダー内のすべてを削除し、最初からやり直しましたが、行き詰まり続けています。Compact Framework のソリューションの実装に成功した人はいますか? ポケット pc で使用できる同様のデータベース マネージャーを提案できる人はいますか?
- バージョン 1.0.66 で何時間も格闘した後、バージョン 1.0.84 に戻りました。今、次のメッセージが表示されます: c:\dev\sqlite\dotnet\System.Data.SQLite にあるファイル SQLite3.cs を読み込めません。
そのパスは、dll を開発したマシンからのものでなければならないので、アダプターに問題があると推測しています。今は別のデータベース ソフトウェアを試してみたいと思うので、現時点では、解決策ではなく、その点について提案を行うことにします。
これについての助けをいただければ幸いです。