私は現在SQLite
とエンティティプロバイダを使用してデスクトップアプリケーション(IIS
またはそれに類するもの、.NET 4.5.2でホストされているものは何もありません) SQLite
。これをVisual Studioで動作させるには、SQLite
サイトの1.0.65.0バージョンパッケージをインストールして、Visual Studio内でSQLite
のEF6
プロバイダを取得する必要がありました。これは私が理解する限り予想される広告として機能しましたが、これもこれを実行できる唯一の方法です。デスクトップアプリケーション+ SQLite - バージョン= 1.0.65.0対バージョン1.0.104.0
私のアプリケーションでは、1.0.104.0の現在のバージョン(sqliteページの情報)を使用したいと思います。私は正常にこのバージョンのNuget
パッケージを自分のアプリケーションに追加しました。参照タブを見ると、System.Data.SQLite
,System.Data.SQLite.EF6
、System.Data.SQLite.Linq
があり、バージョン1.0.104.0と特定バージョンはすべてTrueに設定されています。 3つすべてのローカルに対して「ローカルコピー」がtrueに設定されています。だから、
今、私は自分のアプリケーションを実行し、行を取得する場合:
using (var ctx = new SmtAoiLookupEntities())
{
foreach (var lu in ctx.Lookups.Where(d=>!string.IsNullOrEmpty(d.Aoi)))
{
...
}
}
私は、次のエラーメッセージが出ます:
タイプの例外が「System.IO.FileLoadException」で発生しましたmscorlib.dllとマネージ/ネイティブ境界の前に処理されませんでした
追加情報:ファイルまたはアセンブリを読み込めませんでした 'System.Data.SQLite、Version = 1.0.65.0、Culture = neutral、PublicKeyToken = db937bc2d44ff139'またはその依存関係の1つ。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040)。このことから
、私はすべての参照が1.0.104.0を指すが、私のアプリケーションは、バージョン1.0.65.0をロードしようとすることを理解しています。私のアプリケーションがどこに1.0.65.0をロードしたいというアイデアを得るのか全く分かりません。私はファイル内に "1.0.65"への参照をキャッチするための検索をしましたが、結果は全くありません。
私はGACに格納されているアセンブリを参照する
gacutil -l System.Data.SQLite
を使用 - >バージョン1.0.104.0今
、これは私は、Visual Studio内からアプリケーションを実行するときにのみ発生するように見えます。実行可能ファイルとしてVisual Studioの外でアプリケーションを実行すると、コンテキストを保存するときに別のエラーが発生します。これはアプリケーションエラーであり、アセンブリバージョンの問題とは関係していないようです。私もアプリケーションを32ビットアプリケーションに設定しようとしましたが、問題は同じです。
主な問題:私はVisual Studio内でアプリケーションをデバッグできるようにしたいと考えています。そうしないと、非常に扱いにくくなる可能性があります。 Visual Studioに1.0.65.0のライブラリをロードしないように指示する方法はありますか?
解決策をクリーニングし、手動で 'bin'と' obj'フォルダを削除してみてください。 –
私はそれを何度もやりましたが、それは事を変えませんでした。そして私が言ったように、アプリケーションはVisual Studioの外で動作するように見えます。 –