Не удалось загрузить файл или сборку DotNetOpenAuth.Core


83

При запуске приложения asp net mvc 4 появляется следующая ошибка:

Could not load file or assembly 'DotNetOpenAuth.Core, Version=4.0.0.0, 
Culture=neutral, PublicKeyToken=2780ccd10d57b246' or one of its dependencies. 
The system cannot find the file specified

Это журнал ошибок

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

=== Pre-bind state information ===
LOG: User = notebook\Guilherme
LOG: DisplayName = DotNetOpenAuth.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2780ccd10d57b246
 (Fully-specified)
LOG: Appbase = file:///C:/Users/Guilherme/Documents/Visual Studio 2012/Projects/Gedi/Gedi/
LOG: Initial PrivatePath = C:\Users\Guilherme\Documents\Visual Studio 2012\Projects\Gedi\Gedi\bin
Calling assembly : Microsoft.Web.WebPages.OAuth, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Users\Guilherme\Documents\Visual Studio 2012\Projects\Gedi\Gedi\web.config
LOG: Using host configuration file: C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Post-policy reference: DotNetOpenAuth.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2780ccd10d57b246
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/2635bb56/154c3fbb/DotNetOpenAuth.Core.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/2635bb56/154c3fbb/DotNetOpenAuth.Core/DotNetOpenAuth.Core.DLL.
LOG: Attempting download of new URL file:///C:/Users/Guilherme/Documents/Visual Studio 2012/Projects/Gedi/Gedi/bin/DotNetOpenAuth.Core.DLL.
LOG: Attempting download of new URL file:///C:/Users/Guilherme/Documents/Visual Studio 2012/Projects/Gedi/Gedi/bin/DotNetOpenAuth.Core/DotNetOpenAuth.Core.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/2635bb56/154c3fbb/DotNetOpenAuth.Core.EXE.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/2635bb56/154c3fbb/DotNetOpenAuth.Core/DotNetOpenAuth.Core.EXE.
LOG: Attempting download of new URL file:///C:/Users/Guilherme/Documents/Visual Studio 2012/Projects/Gedi/Gedi/bin/DotNetOpenAuth.Core.EXE.
LOG: Attempting download of new URL file:///C:/Users/Guilherme/Documents/Visual Studio 2012/Projects/Gedi/Gedi/bin/DotNetOpenAuth.Core/DotNetOpenAuth.Core.EXE.

Я уже удалил все ссылки из DotNetOpenAuth с помощью диспетчера пакетов. Также я проверил по своим ссылкам на каждую сборку Auth, которая была в моем проекте, но ее нет.

Это мой файл packages.config

<packages>
  <package id="AutoMapper" version="2.2.0" targetFramework="net45" />
  <package id="EntityFramework" version="5.0.0" targetFramework="net45" />
  <package id="jQuery" version="1.7.1.1" targetFramework="net45" />
  <package id="jQuery.UI.Combined" version="1.8.20.1" targetFramework="net45" />
  <package id="jQuery.Validation" version="1.9.0.1" targetFramework="net45" />
  <package id="knockoutjs" version="2.1.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.Mvc" version="4.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.Razor" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.Web.Optimization" version="1.0.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi" version="4.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.Client" version="4.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.Core" version="4.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.WebHost" version="4.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebPages" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebPages.Data" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebPages.WebData" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.jQuery.Unobtrusive.Ajax" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.jQuery.Unobtrusive.Validation" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.Net.Http" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
  <package id="Modernizr" version="2.5.3" targetFramework="net45" />
  <package id="Newtonsoft.Json" version="4.5.11" targetFramework="net45" />
  <package id="Repository" version="1.0.2.12" targetFramework="net45" />
  <package id="RestSharp" version="103.4" targetFramework="net45" />
  <package id="WebGrease" version="1.1.0" targetFramework="net45" />
</packages>

благодаря

Ответы:


82

Если вы не хотите использовать OAuth, удалите ссылки: как DLL OAuth WebPages (я думаю, что это Microsoft.Web.WebPages.OAuth.dll 1 ), так и DotNetOpenAuth DLL.


1 : Вы можете найти имя файла в формате Calling assembly. Таким образом, удаление всех calling assemblyиз DotNetOpenAuth.Coreдолжно работать для вас. Этот подход должен работать для других неиспользуемых отсутствующих ссылок.


1
Было полезно увидеть справочное имя Microsoft.Web.WebPages.OAuth.dll, поскольку большинство ссылок начиналось с DotNetOpenAuth. Это помогло мне решить проблему. Спасибо, Ян Ли
Катто

77

У меня была аналогичная проблема. Это было действительно странно, ведь накануне проект работал нормально.

Удаление папок obj и bin из папки проекта, очистка решения и его восстановление сработали.

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


2
Вероятно, это сработало путем очистки DLL, связанной с oauth, которая уже была в ваших папках bin / obj. Удаление ссылки и перекомпоновка не приведет к удалению проблемных файлов, но удаление каталогов удалит.
Майкл Харен

5
Была такая же проблема, была добавлена ​​библиотека oauth, но не была добавлена ​​библиотека DotNetOauth. Очистка не сработала, удаление папок bind и obj вручную работает. Эти небольшие, но серьезные проблемы в визуальной студии начинают действовать мне на нервы.
Moulde

2
У меня такая же проблема, и удаление этих папок не работает. Я удаляю их, очищаю и перестраиваю решение, и проблема остается
chiapa

эта библиотека oauth использует webactivator для инициализации, поэтому удаления ссылок недостаточно, библиотеки должны быть удалены из папки bin (webactivator перечисляет файлы dll в папке, в которую он был загружен)
Мел

Как и в случае с Чиапой, у меня была такая же проблема. Я удалил bin и obj, почистил и собрал заново, но проблема осталась. Но потом я перезапустил визуальную студию, и это сработало .
wha7ever

22

Я видел, как это происходило при развертывании приложения MVC как bin deploy. Если щелкнуть проект правой кнопкой мыши и выбрать Add deployable dependenciesVS добавит ссылки на Oauth, если вы установите флажок рядом с ASP .NET Webpages with Razor syntax.

Чтобы исправить это, удалите _bin_deployableAssembliesпапку и папку вашего приложения, binа затем очистите и перестройте свое приложение, и оно снова будет работать.


1
Я пытался запустить MSDN - Project Silk. вышеперечисленные шаги помогли мне решить проблему
dekdev

1
вместо того, чтобы удалить всю папку _bin_deployableAssemblies, мне было достаточно просто удалить оттуда файлы Microsoft.Web.WebPages.OAuth. (конечно, также потребовались очистка и перестройка, а также очистка целевой папки публикации)
Джертер

16

В моем случае приложение MVC4 нормально работало в отладчике VS2012, но при публикации приложения на сервере я получал ошибку «Не удалось загрузить файл или сборку DotNetOpenAuth.Core».

Установка флажка «Удалить все существующие файлы перед публикацией» на вкладке настроек окна «Опубликовать в Интернете» решила проблему.

Параметры публикации файловой системы


3
Это решило мою проблему, хотя я загружал в Azure, и метка флажка была «Удалить дополнительные файлы в месте назначения».
Адриан Смит

Удаление всех существующих файлов перед публикацией действительно сработало. Благодаря!
Анджей Гис

12

Решил проблему установкой пакета с помощью Nuget

Install-Package Microsoft.AspNet.WebPages.OAuth

4

Просто выберите «Удалить дополнительные файлы в месте назначения» в настройках публикации. Это работает для меня


1
За такое простое решение должно быть набрано 1 тыс. Голосов! Я три дня боролся с этим, пытаясь опубликовать в Azure.
saiyancoder

3

Установив следующие два пакета, я решил эту проблему в VS2012 Professional Update 4 RC:

  1. Откройте консоль диспетчера пакетов из меню:

    Инструменты | Управление пакетами библиотеки | Консоль диспетчера пакетов

  2. Установочный пакет DotNetOpenAuth.AspNet

  3. Инсталляционный пакет Microsoft.AspNet.WebHelpers

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


2

Попробуйте выполнить глобальный поиск решения (ctrl + shift + f, если вы его не меняли) для значения «2780ccd10d57b246». Я предполагаю, что вы найдете его в своем web.config.


Вот в чем проблема ... ссылки нет. Найти все "2780ccd10d57b246", подпапки, найти результаты 1, все решение, "" Соответствующие строки: 0 Соответствующие файлы: 0 Всего файлов было выполнено поиск: 182
Димас Лонго

6
Как лучше всего удалить DotNetOpenAuth * из моего проекта? Я удалил временный каталог, исключил папки bin и obj, заново собрал решение и удалил все пакеты OpenAuth и OpenID с помощью консоли диспетчера пакетов ... Я понятия не имею, что делать сейчас. Также поиск в Google путем полного удаления DotNetOpenAuth Нет полезного результата.
Димас Лонго

2

для меня это работало следующим образом, используя консоль диспетчера упаковщиков, я удалил пакеты в следующей последовательности и переустановил их, это решило мою проблему ..

Удаление

Uninstall-Package Microsoft.AspNet.WebPages.OAuth
Uninstall-Package DotNetOpenAuth.AspNet 
Uninstall-Package DotNetOpenAuth.OpenId.RelyingParty
Uninstall-Package DotNetOpenAuth.OpenId.Core 
Uninstall-Package DotNetOpenAuth.OAuth.Consumer
Uninstall-Package DotNetOpenAuth.OAuth.Core
Uninstall-Package DotNetOpenAuth.core

Сборка. Если вы не используете вышеуказанные пакеты, это должно решить проблему. Чтобы установить вышеуказанное снова, если оно вам понадобится, выполните следующие действия.

Переустановить

install-Package DotNetOpenAuth.AspNet 
install-Package Microsoft.AspNet.WebPages.OAuth
install-Package DotNetOpenAuth.OpenId.RelyingParty
install-Package DotNetOpenAuth.OpenId.Core 
install-Package DotNetOpenAuth.OAuth.Consumer
install-Package DotNetOpenAuth.OAuth.Core
install-Package DotNetOpenAuth.core

рекомендуется:

  • перейдите в папку bin проекта, очистите ее
  • когда публиковать в IIS, удалите виртуальный каталог и снова назначьте веб-сайт IIS, так как я столкнулся с проблемой наличия денег на сервере, которая создавала проблему ...

1

Еще один вариант решения - иметь зависимость от сборки следующим образом:

<dependentAssembly>
  <assemblyIdentity name="DotNetOpenAuth.AspNet"
                    publicKeyToken="2780ccd10d57b246"
                    culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" />
</dependentAssembly>
<dependentAssembly>
  <assemblyIdentity name="DotNetOpenAuth.Core"
                    publicKeyToken="2780ccd10d57b246"
                    culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" />
</dependentAssembly>

пожалуйста, добавьте сюда контент
SSP

Пожалуйста, не публикуйте ответы только по ссылкам. Пожалуйста, запишите соответствующую информацию по ссылке в вашем ответе.
Sumurai8

Хотя эта ссылка может дать ответ на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если ссылка на страницу изменится.
Камил Будзевски

1

У меня нет репутации, чтобы комментировать, но я могу убедиться, что у меня была именно эта проблема, и Джек дал мне правильное решение. Недавно я нажал «Добавить ссылку на службу», и программа сломалась с указанным выше сообщением об ошибке.

Если удалить папку _bin_deployableAssemblies и папку bin вашего приложения, а затем очистить и перестроить приложение, оно снова заработало.


0

Если это кому-то поможет - мне не удалось удалить компоненты DotNetOpenAuth через Nuget, поэтому я решил эту ошибку, удалив их напрямую из списка ссылок, а затем повторно установив dotnetopenauth через nuget.


0

Я тоже получал эту ошибку, но с проектом ASP.NET MVC 5. Я решил это, установив пакет DotNetOpenAuth.Mvc5 и вызвав AsActionResultMvc5 () вместо AsActionResult ()


0

Мне помогло добавление в файл csproj следующего раздела:

<PropertyGroup>
   <PostSharpHostConfigurationFile>web.config</PostSharpHostConfigurationFile>            
</PropertyGroup>

0

У меня здесь была такая же проблема. В моем опубликованном файле web.config не было строк:

  <dependentAssembly>
    <assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" />
    <bindingRedirect oldVersion="1.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
  </dependentAssembly>

Просто добавил, и все заработало.




0

Я столкнулся с этой проблемой, когда работал над обновлением всех наших библиотек. эта ссылка помогла мне решить эту проблему. https://www.devexpress.com/Support/Center/Question/Details/Q554890/the-could-not-load-file-or-assembly-dotnetopenauth-core-version-4-0-0-0-error- сообщение-это .

Я специально добавил эти перенаправления привязки в свой файл web.config.

      <dependentAssembly>
    <assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780CCD10D57B246" culture="neutral" />
    <bindingRedirect oldVersion="1.0.0.0-4.1.0.0" newVersion="4.3.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="DotNetOpenAuth.AspNet" publicKeyToken="2780CCD10D57B246" culture="neutral" />
    <bindingRedirect oldVersion="1.0.0.0-4.1.0.0" newVersion="4.3.0.0" />
  </dependentAssembly>

-2

Удалите все зависимости Microsoft.Web.WebPages.OAuth повсюду в ваших проектах.


и Microsoft.Web.WebPages.OAuth.dll из верхнего ответа выше
felickz
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.