帮助:使用SQLIte在同一个依赖程序集的不同版本之间发现冲突

时间:2009-05-21 23:15:06

标签: .net visual-studio sqlite reference elmah

我的一个项目使用引用SQLite的Elmah。 Elmah是针对.Net版本1.0.44.0

的SQLite构建的 好吧,我正在尝试一些64位的东西(我的开发盒是32位)所以我需要64位版本的SQLite for .Net。我抓住了它的最新版本(当时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。该项目根本没有抱怨......

2 个答案:

答案 0 :(得分:0)

使用ildasm.exe查看应用和程序集中的清单。

答案 1 :(得分:0)

这是一个帮助识别违规参考的实用程序:

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