所有,我陷入一个让我发疯的问题......请帮助我复习一下。提前致谢。
我想在我的网站上引用NHibernate.dll
,版本号为2.1.0.4000
。
但我不知道为什么网站总是在我尝试调试时搜索NHibernate.dll
版本号2.1.2.4000
。
这是我尝试做的事情。
fuslogvw
来跟踪装配绑定。
你可以看到应用程序想要绑定2.1.2.4000
,这不是我想要的版本。
删除我的解决方案中Nhibernate
的所有引用。然后再添加一个。
到网站项目。我发现我刚添加的dll在版本号列中显示auto update
,而不是在参考对话框中显示正确的版本号。我不是为什么。
有人可以帮忙给我一些想法,弄清楚发生了什么。谢谢。欢迎提出任何意见。
更新
我在Web.Config
关于它的内容如下。
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Iesi.Collections" publicKeyToken="aa95f207798dfdb4"/>
<bindingRedirect oldVersion="1.0.0.3" newVersion="1.0.1.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="NHibernate" publicKeyToken="aa95f207798dfdb4"/>
<bindingRedirect oldVersion="2.0.1.4000" newVersion="2.1.0.4000"/>
</dependentAssembly>
</assemblyBinding>
<assemblyBinding appliesTo="v2.0.50727" xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342" processorArchitecture="amd64"/>
<bindingRedirect oldVersion="2.102.4.0" newVersion="2.112.2.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342" processorArchitecture="ia64"/>
<bindingRedirect oldVersion="2.102.4.0" newVersion="2.112.2.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
更新
我在Reflector
中检查了dll,它有什么问题吗?
更新
ILdasm的表现如下所示
更新
有时我发现日志显示了一些线索,哪个程序集引用了错误的dll。 你可以看到“调用程序集:xxxx.dll,version = .........”
答案 0 :(得分:2)
您的dll
文件本身就是一个问题。 .dll
文件的清单以错误的方式声明了版本详细信息。尝试从其他资源下载该文件的另一个副本。现在清理您的解决方案,添加对它的引用并重建解决方案。应该出错。