1

私のプロジェクトの 1 つで、SQLite を参照する Elmah を使用しています。Elmah は、SQLite for .Net バージョン 1.0.44.0 に対して構築されています。

まあ、私はいくつかの64ビットのものを試していました(私の開発ボックスは32ビットです)ので、.Net用のSQLiteの64ビットバージョンが必要でした。最新のビルド (当時は 1.0.51.0) を入手し、インストーラーを使用してインストールしました。私の 32 ビット プロジェクトでは、System.Data.SQLite への参照を更新して、新しいバージョンを指すようにしました。自分の間違いに気づいたら、それをアンインストールして適切な元のバージョンを取得し、参照を 1.0.44.0 に戻しました。

ビルドすると、同じ依存アセンブリの異なるバージョンに関する警告が表示されます。それをクリックすると、app.config を編集するかどうか尋ねられ、これが挿入されます。

<runtime>
 <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
   <assemblyIdentity name="System.Data.SQLite" publicKeyToken="DB937BC2D44FF139" culture="neutral"/>
   <bindingRedirect oldVersion="0.0.0.0-1.0.51.0" newVersion="1.0.51.0"/>
  </dependentAssembly>
 </assemblyBinding>
</runtime>

うーん..1.0.51.0がインストールされていないか、システムのどこにも存在していません! 紛争はどこですか?なぜビジュアルスタジオはそれがどこかに存在すると考えるのですか? GAC をチェックインしましたが、System.Data.SQLite はどこにもありません。

この迷惑な警告を取り除きたいです。SQLite も参照する同じソリューションに別のプロジェクトがありますが、新しいバージョンへの参照を更新したことはありません (その後、参照を元に戻したことはありません)。常に 1.0.44.0 を参照していました。そのプロジェクトはまったく文句を言わない...

4

2 に答える 2

0

問題のある参照を特定するのに役立つユーティリティを次に示します。

http://www.brianlow.com/index.php/2010/01/25/find-conflicting-assembly-references/

于 2010-01-26T06:00:33.030 に答える