我正在使用asp.net 4.0开发基于Web的应用程序。如何使程序集重定向在.net 4.0 web应用程序中工作
我在GAC中使用了一些dll,它们在老的dll上有一些嵌入的依赖关系。
我已配置程序集,以便依赖项重定向到我的机器上的dll的正确版本。
Could not load file or assembly 'ControlReferencedByMyDll, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXXXX' or one of its dependencies.
The located assembly's manifest definition does not match the assembly reference.
(Exception from HRESULT: 0x80131040)
在我的ControlReferencedByMyDll的版本是:然而,这完全在3.5或更低版本的应用程序,当我尝试基于相同的dll建立一个asp.net 4.0应用程序,它像一个错误扼流圈版本2.0.1.0。
我无法找到.NET 4.0 GAC配置实用程序,但在我的machine.config(在框架和.NET 4.0 Framework64两个文件夹),我已经补上一句:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="ControlReferencedByMyDll" PublicKeyToken="XXXXXXXXXXXXXXXX"/>
<bindingRedirect oldVersion="1.0.0.0-9.9.9.9" newVersion="2.0.1.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
到看看这是否是问题。
我甚至试图将applyTo =“v2.0.50727”属性添加到assemblyBinding以查看它是否有所作为。
但它似乎没有。
有没有其他人有这个问题?更重要的是,任何人都可以帮我解决这个问题吗?
好的,我发现了一些似乎可行的东西,尽管如果存在的话我仍然对看到更好的答案感兴趣,也许有人可以启发我为什么这会起作用。 我只是把上面指出的代码直接放到我的web.config中,一切都很好。 – CStroliaDavis
相关:http://stackoverflow.com/questions/16678395/assemblybinding-bindingredirect-not-working-for-mvc4-app-with-t4mvcextensions – user423430