Ответ 1
С понижением до
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.6" />
и все работает снова! Потеряно 4 часа сегодня!
Я использую System.Data.SqlClient Version 4.4.3 для всех классов классов .NET Standard 2.0 в моем проекте ASP.NET Core 2.0. Почему я получаю
Не удалось загрузить файл или сборку 'System.Data.SqlClient, Version = 4.2.0.2, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'. Расположенное определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)
когда проект публикуется с VSTS в Azure App Service? И, конечно, он отлично работает на моей машине!
Все это работало вчера. Но сегодня я решил обновить пакеты до:
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.6" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.3" />
С понижением до
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.6" />
и все работает снова! Потеряно 4 часа сегодня!
Не знаю, является ли это той же ситуацией, с которой я столкнулся. Я добавил System.Data.SqlClient через nuGet, и он работал нормально.
Это происходит, когда какая-то зависимая сборка использует старую версию той же библиотеки. Чтобы решить эту проблему, вы можете использовать перенаправление сборки, чтобы заставить старую библиотеку использовать более новую версию.
поместите это в свой app.config или в web.config в случае asp.net
<dependentAssembly>
<assemblyIdentity name="System.Data.SqlClient" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="4.2.0.2" newVersion="4.4.3.0" />
</dependentAssembly>
Сегодня у меня была аналогичная проблема, я обновил несколько пакетов, включая мета-пакет All до 2.0.6. Тогда мое приложение не будет ссылаться на приведенную выше ошибку. После большого расследования я сделал следующее, и теперь он работает.
Подключитесь к веб-сайту Azure с помощью FTP, перейдите на сайт → wwwroot. Здесь у меня была папка под названием "refs", а другая - "runtimes". Я удалил обе эти папки (после локальной резервной копии), повторно опубликовал свое приложение, и оно сработало!
Не уверен, почему это сработало, но я подумал, что это может быть полезно, кто-то сталкивается с этим с аналогичной проблемой.
Для меня решение удалит пакет System.Data.SqlClient и снова установит его. Выполнение обновления пакета было недостаточным.