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

79

Я получаю следующую ошибку при запуске приложения 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, которую я имел в моем проекте, и ее нет.

Это мой package.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>

Спасибо

Теги:
asp.net-mvc
asp.net-mvc-4

18 ответов

77
Лучший ответ

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


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

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

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

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

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

  • 10
    Это сработало для меня, а принятый ответ - нет.
  • 2
    Это, вероятно, работало путем очистки связанной с oauth DLL, которая уже была в ваших папках bin / obj. Удаление ссылки и перестроение не приведет к удалению поврежденных файлов, но удаление директорий будет.
Показать ещё 5 комментариев
21

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

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

  • 2
    Это исправило часы царапин на голове, спасибо человеку
  • 1
    Я пытался запустить MSDN - Project Silk. вышеуказанные шаги помогли мне решить проблему
Показать ещё 1 комментарий
16

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

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

Изображение 108781

  • 3
    Это решило мою проблему, несмотря на то, что я загружал в Azure, и метка флажка была «Удалить дополнительные файлы в месте назначения».
  • 0
    Удалить все существующие файлы перед публикацией действительно получилось. Спасибо!
Показать ещё 1 комментарий
10

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

Install-Package Microsoft.AspNet.WebPages.OAuth
  • 0
    Я заново установил этот пакет вручную.
  • 0
    это сработало для меня!
3

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

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

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

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

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

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

  • Установочный пакет Microsoft.AspNet.WebHelpers

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

2

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

  • 0
    Это проблема ... нет ссылки. Найти все "2780ccd10d57b246", подпапки, результаты поиска 1, полное решение, "" Соответствующие строки: 0 Соответствующие файлы: 0 Всего найдено файлов: 182
  • 6
    Каков наилучший способ полного удаления DotNetOpenAuth * из моего проекта? Я удалил временный каталог, исключил папки bin и obj, пересобрал решение и удалил все пакеты OpenAuth и OpenID с помощью консоли менеджера пакетов ... Я понятия не имею, что теперь делать. Также поиск в Google с помощью полного удаления DotNetOpenAuth. Полезного результата нет.
1

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

Удаление

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

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

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

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>
  • 0
    пожалуйста, добавьте контент здесь
  • 0
    Пожалуйста, не публикуйте только ссылки. Пожалуйста, напишите соответствующую информацию по ссылке в вашем ответе.
Показать ещё 1 комментарий
0

Я смог решить это на моем конце, удалив Microsoft.AspNet.Membership.OpenAuth

0

Просто удалите папку BIN из wwwroot и опубликуйте снова.

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

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

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

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

0

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

-3

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

  • 0
    и Microsoft.Web.WebPages.OAuth.dll из верхнего ответа выше

Ещё вопросы

Сообщество Overcoder
Наверх
Меню