Asp.net Bin部署的DLL优先于GAC';d动态链接库';Web应用程序是什么?

Asp.net Bin部署的DLL优先于GAC';d动态链接库';Web应用程序是什么?,asp.net,asp.net-mvc-3,web-config,gac,assembly-resolution,Asp.net,Asp.net Mvc 3,Web Config,Gac,Assembly Resolution,我遇到了一个问题,在bin中使用的是旧的GAC程序集,而不是新版本的程序集 服务器: Assembly version: ASP.NET MVC 3 RC 1 (3.0.11029.0) Full name: System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 Code base: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/S

我遇到了一个问题,在bin中使用的是旧的GAC程序集,而不是新版本的程序集

服务器:

Assembly version: ASP.NET MVC 3 RC 1 (3.0.11029.0)
Full name: System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Code base: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Web.Mvc/v4.0_3.0.0.0__31bf3856ad364e35/System.Web.Mvc.dll
Deployment: GAC-deployed 
开发机器:

Assembly version: Unknown version (3.0.20105.0)
Full name: System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Code base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Web.Mvc/v4.0_3.0.0.0__31bf3856ad364e35/System.Web.Mvc.dll
Deployment: GAC-deployed 
较新的RTM版本(3.0.20105.0)位于应用程序的bin目录中。但是,应用程序正在使用GAC中的一个而不是本地bin。根据我在windows应用程序中的经验,本地bin部署的DLL始终优先,因为只有在应用程序所在的目录中找不到DLL时,才会检查GAC。对于web应用程序,这种约定似乎不适用

如何强制它使用我的新版本bin部署DLL(3.0.20105.0)

编辑: 我确实尝试过这样的绑定重定向:

<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="3.0.11029.0" newVersion="3.0.20105.0" />
绑定日志没有任何错误,除了最后两行:

WRN: Comparing the assembly name resulted in the mismatch: Build Number
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.

您可以修改.config文件以用于此目的,并根据需要强制运行时加载不同版本。

请注意,您必须运行,否则它将使用GAC版本。
我会重新标记这个,它不是MVC特有的。

更新了问题,提供了关于我在这方面尝试过的信息。我很困惑。在链接的问题中,它指出如果我根据比GAC中更新的版本进行编译,并部署相同的更新版本,那么它应该优先于GAC。这描述了我的场景,但不幸的是,行为与他们描述的不同,因为它忽略了我的更新/编译版本,而支持GAC版本。什么是强名称劫持?我熟悉在我自己的程序集上使用sn工具,但不确定您对MS程序集的暗示是什么?
WRN: Comparing the assembly name resulted in the mismatch: Build Number
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.