Обнаружен конфликт между System.Runtime и System.IO - PullRequest
0 голосов
/ 09 февраля 2020

Я обновил свой. Net фреймворк в своем решении с 4.5.2 до 4.8. Сначала я получил несколько предупреждений, и для их исправления я сделал Update-Package -Id some.package –reinstall для всех пакетов в предупреждении.

Затем он выдал общее предупреждение c и, посмотрев в журнал сборки диагностики, увидел следующее 4 предупреждения:

Возник конфликт между "mscorlib, версия = 4.0.0.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089" и "mscorlib, версия = 2.0.5.0, Culture = нейтральный, PublicKeyToken = 7cec85d7bea7798e, Retargetable = Yes ".

и:

Возник конфликт между" System. Net .Http, версия = 4.1.1.3, культура = нейтральная , PublicKeyToken = b03f5f7f11d50a3a "и" Система. Net .Http, версия = 4.2.0.0, Культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a ".

и:

Возник конфликт между «System.Runtime, версия = 4.1.1.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a» и «System.Runtime, версия = 4.1.2.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a».

и наконец:

* 102 6 * Возник конфликт между "System.IO, версия = 4.1.1.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a" и "System.IO, версия = 4.1.2.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a".

Я видел решения здесь и здесь и, к сожалению, они не помогли.

Теперь мне удалось исправить проблему System.Net.Http изменив следующее в моем * .csproj файле согласно предложению , этот пост :

    <Reference Include="System.Net.Http">
      <HintPath>..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll</HintPath>
      <Private>True</Private>
    </Reference>

изменился на:

<Reference Include="System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
      <HintPath>..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll</HintPath>
      <Private>True</Private>
    </Reference>

Однако я не похоже выясняется, как исправить проблемы System.Runtime и System.IO.

Ответы [ 2 ]

1 голос
/ 11 февраля 2020

Обнаружен конфликт между System.Runtime и System.IO

. При обновлении версии фреймворка вы ссылались на какой-то более старый пакет nuget с более высокой версией сборки.

Вы можете выполнить мои действия для устранения проблемы:

1) выгрузить проект и добавить их в xxx.csproj файл

<PropertyGroup>
  <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
  <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>

После этого , перезагрузите ваш проект, очистите и восстановите свой проект.

2) добавить перенаправление привязки в файл web.config.

<dependentAssembly>
        <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
 </dependentAssembly>

<dependentAssembly>
        <assemblyIdentity name="System.IO" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
 </dependentAssembly>

Используется DLL из каталога расширений сборки, а не из Nuget.

Надеюсь, это поможет вам.

0 голосов
/ 15 февраля 2020

В итоге я установил Visual Studio 2019, затем обновил свойства каждого проекта для использования. Net framework 4.8, пробежался по обновлениям, и это просто сработало.

...