У меня возникла проблема, когда вместо сборки более новой версии в корзине используется более старая сборка GAC'd.Bin развернул приоритет DLL для GAC'd DLL для веб-приложения?
Сервер: машина
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) находится в каталоге бен приложения. Тем не менее, приложение использует тот, что находится в GAC вместо локального bin. Мой опыт работы с приложениями Windows - локальная библиотека, развернутая в DLL, всегда имеет приоритет, поскольку GAC проверяется только в том случае, если DLL не найдена в том же каталоге, что и приложение. Это соглашение не относится к веб-приложению.
Как я могу заставить его использовать мою новую версию bin, развернутую DLL (3.0.20105.0)?
Edit: Я на самом деле попробовать связывание перенаправлять так:
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="3.0.11029.0" newVersion="3.0.20105.0" />
Я попытался несколько вариаций на oldversion, таких как 0.0.0.0-4.0.0.0
. Во всех моих попыток, как правило, это либо загрузили старую версию, или дал мне это сообщение об исключении:
Could not load file or assembly 'System.Web.Mvc' or one of its dependencies.
The located assembly's manifest definition does not match the assembly reference.
Связывание журнала не имеет каких-либо ошибок, кроме этого был две последние строки:
WRN: Comparing the assembly name resulted in the mismatch: Build Number
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.
Обновленный вопрос с информацией о том, что я пробовал по этому поводу. – AaronLS