1

私が開発しているデスクトップ ソフトウェア (.Net 4.0、Visual Studio 2010 でコンパイル、ターゲット: x86) は、初めて System.Data.SQLite (x86 用の 1.0.86、system.data.sqlite.org* から入手) と共に出荷されます。 .

開発マシン (および System.Data.SQLite-installer が実行された他のすべてのマシン) では、すべてが正しく機能します。

ただし、テスト マシンでは、インストール (Visual Studio インストーラーで作成された標準の MSI セットアップ) の後、アプリケーションを起動してスプラッシュ スクリーンを表示した後、GUI を表示する前に、アプリケーションは次のエラーで例外を作成します。

System.IO.FileNotFoundException: ファイルまたはアセンブリ 'System.Data.SQLite.dll' またはその依存関係の 1 つを読み込めませんでした。

上記のファイル自体は、参照されている他のすべての DLL とともに、アプリケーション ディレクトリ (正しいバージョン) にあります。

セットアップ オプションの [イメージのインストール] により、これは開発マシンで機能すると思います。GAC に SQLite をインストールしませんでした。アプリケーション プロジェクトは、ビルド前の System.Data.SQLite.dll を にlocal copy設定して直接参照していtrueます。

表示されていない依存関係はありますか? それとも、Microsoft Visual C++ ランタイム ライブラリが不足していますか (アプリケーション ディレクトリに存在しません)? または行方不明SQLite.Interop.DLL(アプリケーション ディレクトリに存在しない) ですか?

どうすればそれらを修正できますか?

4

1 に答える 1

3

最新の Microsoft Visual C++ 2010 再頒布可能パッケージがインストールされていることを確認してください。 http://www.microsoft.com/en-gb/download/details.aspx?id=5555

なんで?sqlite DLL には、実行時にアセンブリから直接実行されるアンマネージ コードが埋め込まれています。これは私にとっては悪い画像形式の例外として現れましたが、あなたにはわかりません!

于 2013-06-19T15:32:35.557 に答える