Не удалось загрузить файл или сборку System.Threading.Tasks, версия = 2.5.19.0.

У меня есть проект WPF (.NET 4) с использованием API сокращения URL-адресов Google, я установил клиентскую библиотеку через nugget https://www.nuget.org/packages/Google.Apis.Urlshortener.v1/1.7.0.25-beta

приложение отлично работает в Visual Studio, но после публикации выдает исключение Не удалось загрузить файл или сборку System.Threading.Tasks, версия = 2.5.19.0, эта и все остальные сборки присутствуют в папке установки, и она публикуется вместе с приложением. Я искал в Интернете, и люди предлагают вручную связать библиотеки зависимостей в app.config, это все еще не работает, так как все мои библиотеки зависимостей уже упомянуты в app.config, ниже показано, как выглядит мой app.config

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.1.10.0" newVersion="2.1.10.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-2.1.10.0" newVersion="2.1.10.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-1.2.13.0" newVersion="1.2.13.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Threading.Tasks.Extensions.Desktop" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-1.0.165.0" newVersion="1.0.165.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

person Syed Waqas    schedule 19.01.2014    source источник
comment
У меня идентичная проблема. Удалось ли вам решить вашу проблему, и если да, то как?   -  person MatthewT    schedule 03.02.2014
comment
я решаю это, обновляя библиотеки Google до последних версий и устанавливая .net 4.5, он всегда работал на моих машинах для разработки, так как имеет .net 4.5, я устанавливаю его на клиентский компьютер и удаляю ошибочную сборку зависимостей из app.config   -  person Syed Waqas    schedule 03.02.2014


Ответы (3)


Вы можете начать с блога команды Microsoft BCL и очистить app.config, удалив неправильные записи,

http://web.archive.org/web/20140806005818/http://blogs.msdn.com/b/bclteam/p/asynctargetingpackkb.aspx

Проблема 6

Симптомы

При добавлении пакета NuGet в проект, который используется другим проектом с другой целевой платформой, вы можете увидеть предупреждения, подобные приведенным ниже.

The primary reference "Microsoft.Threading.Tasks, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" could not be resolved because it has an indirect dependency on the framework assembly "System.Runtime, Version=2.5.19.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v4.5". To resolve this problem, either remove the reference "Microsoft.Threading.Tasks, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" or retarget your application to a framework version which contains "System.Runtime, Version=2.5.19.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".

The primary reference "Microsoft.Threading.Tasks.Extensions, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" could not be resolved because it has an indirect dependency on the framework assembly "System.Runtime, Version=2.5.19.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v4.5". To resolve this problem, either remove the reference "Microsoft.Threading.Tasks.Extensions, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" or retarget your application to a framework version which contains "System.Runtime, Version=2.5.19.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".

Решение

Проблема в том, что NuGet добавил неправильные перенаправления привязки для сборок платформы. Чтобы удалить их, откройте app.config для проекта, вызвавшего предупреждения, и удалите выделенные записи [отмечено *****]:

<?xmlversion="1.0"encoding="utf-8"?>
<configuration>
    <runtime>
        <assemblyBindingxmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>******
                <assemblyIdentityname="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
                <bindingRedirectoldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0" />
            </dependentAssembly> .
            <dependentAssembly>******
                <assemblyIdentityname="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
                <bindingRedirectoldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0" />
            </dependentAssembly>
            </assemblyBinding>
    </runtime>
</configuration>

Комментарий:

С окончанием срока службы .NET Framework 4.0 вам следует дважды подумать, прежде чем самостоятельно использовать пакет асинхронного таргетинга. Если эта зависимость исходит от пакета NuGet, вам также следует проверить, есть ли у пакета NuGet более новая версия, не имеющая такой зависимости.

person Lex Li    schedule 19.01.2014
comment
я следовал инструкциям после удаления выделенных сборок, теперь я получаю Не удалось загрузить файл или сборку System.Threading.Tasks, версия = 1.5.11.0 - person Syed Waqas; 19.01.2014
comment
Проверьте выпуск 9 той же статьи. - person Lex Li; 19.01.2014
comment
Как мне выполнить команду «Добавить как ссылку» в решении проблемы 9, если я использую проект установщика вместо ClickOnce? Я ориентируюсь на .net 4.0, если это актуально. - person Spidermain50; 19.12.2016
comment
Это сработало для меня с Framework 4.8 - person Carl; 27.07.2021
comment
@Carl Обсуждение проводилось в 2014 году. После этого Microsoft внесла улучшения в новые выпуски .NET Framework для решения таких проблем, как написано в примечания к выпуску - person Lex Li; 27.07.2021

У меня была очень похожая проблема («Не удалось загрузить файл или сборку Microsoft.Threading.Tasks, версия = 1.0.12.0») в проекте UWP (VS2015), и я решил ее, установив Пакет Microsoft.Bcl.Async от NuGet

person Detail    schedule 25.10.2016

У меня была точно такая же проблема, но она была вызвана сборкой Microsoft.Rest.ClientRuntime. В моем случае все, что мне нужно было сделать, это установить «Копировать локально = True» для ссылки на Microsoft.Rest.ClientRuntime.

person Björn    schedule 30.10.2018