Spring.Web.Mvc5 2.0.1 не будет работать с System.Web.Mvc 5.2.2

80
10

Я обновлял пакеты в приложении.NET MVC 5, которое использует Spring.NET, и я пытаюсь получить версию Spring.Web.Mvc5 с Microsoft.AspNet.WebApi.Core 5.2.3. Я получаю следующее в журнале Fusion. Любые идеи о том, как я могу это исправить? Я использую Microsoft.AspNet.OData 1.7, который, похоже, зависит от версии Microsoft.AspNet.WebApi.Core, которая позже 5.0.0.0; всякий раз, когда я понижаюсь до 5.0.0.0, я теряю определение System.Web.Http.SingleResult.

*** Assembly Binder Log Entry  (8/24/2015 @ 2:44:55 PM) ***

The operation failed.
Bind result: hr = 0x80131040. No description available.

Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Running under executable c:\windows\system32\inetsrv\w3wp.exe
--- A detailed error log follows.

=== Pre-bind state information ===
LOG: User = IIS APPPOOL\ASP.NET v4.0
LOG: DisplayName = System.Web.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
(Fully-specified)
LOG: Appbase = file:///C:/SVN/Path-To/WebApp/
LOG: Initial PrivatePath = C:\SVN\Path-To\WebApp\bin
LOG: Dynamic Base = C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\webapp\309524fe
LOG: Cache Base = C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\webapp\309524fe
LOG: AppName = da54b19b
Calling assembly : Spring.Web.Mvc5, Version=2.0.1.45000, Culture=neutral, PublicKeyToken=65e474d141e25e07.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\SVN\Path-To\WebApp\web.config
LOG: Using host configuration file: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Post-policy reference: System.Web.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
LOG: GAC Lookup was unsuccessful.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/webapp/309524fe/da54b19b/System.Web.Http.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/webapp/309524fe/da54b19b/System.Web.Http/System.Web.Http.DLL.
LOG: Attempting download of new URL file:///C:/SVN/Path-To/WebApp/bin/System.Web.Http.DLL.
LOG: Assembly download was successful. Attempting setup of file: C:\SVN\Path-To\WebApp\bin\System.Web.Http.dll
LOG: Entering download cache setup phase.
LOG: Assembly Name is: System.Web.Http, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
WRN: Comparing the assembly name resulted in the mismatch: Minor Version
ERR: The assembly reference did not match the assembly definition found.
ERR: Setup failed with hr = 0x80131040.
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.

спросил(а) 2021-01-19T12:57:45+03:00 9 месяцев назад
1
Решение
102

Таким образом, ответ заключается в том, что NuGet потерял номер версии, которую он установил, и больше не обновлял часть assemblyBinding Web.config. Раньше у меня никогда не было никаких проблем, и я продолжал играть в битку, пытаясь понять, в чем проблема. Для чего это стоит, вот часть моего файла конфигурации, которая работает, но ваша, вероятно, будет отличаться в зависимости от используемых вами библиотек.

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Http.WebHost" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Common.Logging" publicKeyToken="af08829b84f0328e" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.2.0.0" newVersion="3.2.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Common.Logging.Core" publicKeyToken="af08829b84f0328e" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.2.0.0" newVersion="3.2.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>

ответил(а) 2021-01-19T12:57:45+03:00 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема