Не вдалося завантажити файл або збірку '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, яку я мав у своєму проекті, і такої немає.

Це мій пакет.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. Це допомогло вирішити проблему для мене. Дякую Ian Li
Catto

77

У мене була подібна проблема. Це було дійсно дивно, оскільки проект працював нормально напередодні.

Видалення папок obj та bin з папки проекту, очищення рішення та його відновлення спрацювали.

Сподіваюся, що це допомагає.


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

5
Якби та сама проблема була додана dll oauth, але жодна dll DotNetOauth не була додана. Очищення не працювало, працює вручну видалення папок bind та obj. Ці невеличкі, але надзвичайно важкі проблеми у візуальній студії починають мені нервувати.
Moulde

2
У мене така сама проблема, і видалення цих папок не працює. Я
видаляю

ця бібліотека oauth використовує webactivator для ініціалізації, тому видалення посилань недостатньо, бібліотеки повинні бути видалені з папки bin (webactivator перераховує DLL-файли в папці, в яку він був завантажений)
Мел

Так само, як і чіапа, у мене була така ж проблема. Я видалив bin і obj, очистив і відновив, але проблема залишилася. Але потім я перезапустив візуальну студію, і вона запрацювала .
wha7ever

22

Я бачив, як це траплялося при розгортанні програми MVC як bin deploy. Add deployable dependenciesКлацнувши правою кнопкою миші на проекті та вибравши VS, ви додасте посилання на 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 за допомогою консолі менеджера пакувальників ... Я не знаю, що мені робити зараз. Також погуглити, повністю видаливши 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

Будь ласка, не публікуйте відповіді лише на посилання. Будь ласка, випишіть відповідну інформацію за посиланням у своїй відповіді.
Сумурай8,

Хоча це посилання може відповісти на питання, краще включити сюди основні частини відповіді та надати посилання для довідки. Відповіді лише на посилання можуть стати недійсними, якщо пов’язана сторінка зміниться.
Kamil Budziewski

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.