2011-02-06 14 views
0

私はC#のプロジェクトを作って、流暢にもSystem.Data.SQLite.dllへの参照を追加することなく、SQLiteののために設定することができます。今すぐ参照の有無にかかわらず、VB.NETプロジェクトをしようとしたとき、私はFluentNHibernate; SQLite; FileNotFoundException(System.Data.SQLite)

FileNotFoundException: Could not load file or assembly 'System.Data.SQLite' or one of its dependencies. The system cannot find the file specified.

を取得し、それは(?)NHibernateのかFluentNHibernateは、このDLLを探しているとどのように来る彼らはで見ていませんリファレンス?それとも私は何が欠けているのですか?

 
=== Pre-bind state information === 
LOG: User = PC\windowslogin 
LOG: DisplayName = System.Data.SQLite 
(Partial) 
LOG: Appbase = file:///(Project folder)./bin/Debug/ 
LOG: Initial PrivatePath = NULL 
Calling assembly : NHibernate, Version=3.0.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4. 
=== 
LOG: This bind starts in default load context. 
LOG: Using application configuration file: (project folder/name).vshost.exe.Config 
LOG: Using machine configuration file from C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config. 
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind). 
LOG: The same bind was seen before, and was failed with hr = 0x80070002. 

答えて

0

チェックあなたのC#プロジェクトのbinフォルダには、DLLはそこにその方法を発見したことがあります。

ところで、言う「FusionLog」と呼ばれるいろいろ書いが、あります。それが削除されている場合、それは同じエラーを持つか、ビルド時にそこにコピーされます。後者の場合、依存関係を認識し、ファイルをコピーします。

上記のエラーは、検索パスの1つ、またはGACでdllが見つからない場合に発生します。検索パスにはbinフォルダ(最初)と他のシステムフォルダが含まれます。

VBの問題を解決するには、SQLiteアセンブリを参照し、 "CopyLocal"がオンであることを確認してください。これを持っていなければ、明示的に参照していないので、VSはアセンブリをアウトパスにコピーしません。 NHibernateはそのアセンブリを動的にロードします。

+0

ありがとうございます!彼らはCopyLocalが必要であることを認識しておらず、それをFalseとして持っていました。 – bretddog