Проект NET Framework не может загрузить сборку при ссылке на проект .NET Standard

У меня есть веб-проект .NET Framework, который ссылается на библиотеку классов .NET Standard.

При запуске приложения я получаю:

"Could not load file or assembly 'System.Net.NameResolution, Version=4.0.0.0"

Поэтому я добавил пакет nuget System.Net.NameResolution 4.3.0 в оба этих проекта.

Я не могу использовать пакет 4.0.0, так как это было бы понижением, поэтому я добавил перенаправление привязки к проекту .NET Framework:

  <dependentAssembly>
    <assemblyIdentity name="System.Net.NameResolution" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
  </dependentAssembly>

Приложение теперь подтверждает мое перенаправление, но я все еще получаю ту же ошибку:

Could not load file or assembly 'System.Net.NameResolution, Version=4.0.0.0

Calling assembly : EnyimMemcachedCore, Version=1.1.1.11, Culture=neutral, PublicKeyToken=null.

LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Source\myapp\src\Web\web.config
LOG: Using host configuration file: C:\Users\fraserb\Documents\IISExpress\config\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Redirect found in application configuration file: 4.0.0.0 redirected to 4.0.1.0.
LOG: Post-policy reference: System.Net.NameResolution, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/vs/31e1be3d/fde97fa5/System.Net.NameResolution.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/vs/31e1be3d/fde97fa5/System.Net.NameResolution/System.Net.NameResolution.DLL.
LOG: Attempting download of new URL file:///C:/Source/myapp/src/Web/bin/System.Net.NameResolution.DLL.
WRN: Comparing the assembly name resulted in the mismatch: Build Number
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.

Где я ошибся?


person FBryant87    schedule 31.01.2019    source источник
comment
Вы получаете эту ошибку после обновления кода с одного уровня .NET Framework до следующего уровня или переименования примера проекта для создания нового проекта? Если это так, вам необходимо проверить все ссылки на проекты и соответствующим образом обновить их. (Я столкнулся с той же проблемой и решил таким образом).   -  person Bijay Yadav    schedule 31.01.2019
comment
Microsoft довольно сильно испортила семантическое управление версиями, но это действительно 4.0.1.0. Наиболее очевидным объяснением является то, что вы на самом деле развернули 4.0.0.0 в каталоге сборки. В первую очередь вам нужно выяснить, зачем вам нужно это перенаправление привязки. Поднимите уровень детализации сборки до Detailed, чтобы вы могли видеть конфликты версий.   -  person Hans Passant    schedule 31.01.2019


Ответы (1)


Оказывается, перенаправление привязки newVersion должно было быть нацелено на 4.0.2.0, а не на 4.0.1.0, и после этого все успешно загрузилось.

(Я понял, что это 4.0.2.0 после двойной проверки версии загружаемой DLL - вы можете просмотреть это в проводнике сборок)

person FBryant87    schedule 31.01.2019