2016-05-31 147 views
1

プロジェクトにSQLiteを追加しようとしています。これはコンパイルされますが、別のプロジェクト(単体テストのクラスライブラリ)からSQLiteを参照するメソッドを呼び出そうとすると、「Unable to load 'DLL' SQLite.Interop.dll '」エラーが発生します。DLL 'SQLite.Interop.dll'を読み込めません - ビルド時にDLLが削除されています

私のbin/Debugフォルダを見ると、x64とx86のフォルダが空であることがわかりました。これらのフォルダに作業している別のプロジェクトからSQLite.Interop.dllをコピーして再構築しました。プロジェクトにファイルを含め、それらを「常にコピーする」に設定しました。 ビルド中にファイルが削除され、 "\" bin \ Debug \ x64 \ SQLite.Interop.dll "ファイルをコピーできませんでした"という理由でビルドに失敗しました。

私はVisual Studio 2015を使用していますが、私はこのプロジェクトでMono Developで作業しており、.NET 4.5を対象としています。

この問題を解決するにはどうすればよいですか?

答えて

0

通常、クラスが明示的に使用されていない場合、dllはコピーされません。クラスが参照されていなくてもdllをコピーする場合は、プロジェクト内の参照をクリックしてプロパティを開きます(F4キーを押すなど)。 「ローカルコピー」という項目があります。これをtrueに設定すると、dllがbinフォルダにコピーされます。

+0

ローカルをコピーする設定は機能しませんでしたが、あなたが説明した根本的な原因は非常にわかります。 SQLiteプロジェクトを使用する私のプロジェクトはコードジェネレータなので、コンパイラはSQLiteを実際に使用するコードを見る方法がありません。 プロジェクトレベルでx64とx86フォルダを作成し、それらのフォルダにdllを置くと、問題が解消されましたが、理由はわかりません。 –