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