Datei oder Assembly 'DotNetOpenAuth.Core konnte nicht geladen werden


82

Beim Starten meiner asp net mvc 4-Anwendung wird folgende Fehlermeldung angezeigt:

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

Dies ist das Fehlerprotokoll

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.

Ich habe bereits alle Referenzen aus DotNetOpenAuth mit dem Packager Manager entfernt. Außerdem habe ich anhand meiner Selbstreferenzen jede Auth-Assembly überprüft, die ich in meinem Projekt hatte, und es gibt keine.

Das ist meine 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>

Vielen Dank

Antworten:


82

Wenn Sie OAuth nicht verwenden möchten, entfernen Sie Verweise: sowohl die WebPages-OAuth-DLL (ich denke, es ist Microsoft.Web.WebPages.OAuth.dll 1 ) als auch die DotNetOpenAuth-DLLs.


1 : Sie finden den Dateinamen in Calling assembly. Also, alles zu entfernen calling assemblyvon DotNetOpenAuth.Coresollte für Sie arbeiten. Dieser Ansatz sollte für andere nicht verwendete fehlende Referenzen funktionieren.


1
Es war hilfreich, den Referenznamen Microsoft.Web.WebPages.OAuth.dll zu sehen, da die meisten Referenzen mit DotNetOpenAuth begannen. Das hat mir geholfen, das Problem zu lösen. Vielen Dank, dass Sie Ian Li
Catto

77

Ich hatte ein ähnliches Problem. Es war wirklich seltsam, da das Projekt einen Tag zuvor in Ordnung war.

Das Entfernen von obj- und bin-Ordnern aus dem Projektordner, das Bereinigen der Lösung und das erneute Erstellen funktionierten.

Hoffentlich hilft das.


2
Dies hat wahrscheinlich funktioniert, indem eine oauth-bezogene DLL gelöscht wurde, die sich bereits in Ihren bin / obj-Ordnern befand. Durch Entfernen der Referenz und erneutes Erstellen werden die fehlerhaften Dateien nicht entfernt, aber die Verzeichnisse werden weggeblasen.
Michael Haren

5
Hatte das gleiche Problem, wurde oauth dll hinzugefügt, aber keine DotNetOauth dll wurde hinzugefügt. Das Bereinigen hat nicht funktioniert, das manuelle Löschen von Bindungs- und Objektordnern funktioniert. Diese kleinen, aber anwendungsbedingten Probleme im Visual Studio gehen mir langsam auf die Nerven.
Moulde

2
Ich habe das gleiche Problem und das Löschen dieser Ordner funktioniert nicht. Ich lösche sie,
säubere

Diese Oauth-Bibliothek verwendet Webactivator zum Initialisieren, sodass das Entfernen der Referenzen nicht ausreicht. Die Bibliotheken müssen aus dem Bin-Ordner entfernt werden (Webactivator listet DLL-Dateien in dem Ordner auf, in den sie geladen wurden)
Mel

Genau wie Chiapa hatte ich das gleiche Problem. Ich habe bin und obj gelöscht, gereinigt und neu aufgebaut, aber das Problem blieb bestehen. Aber dann habe ich Visual Studio neu gestartet und es hat funktioniert .
immer,

22

Ich habe dies beim Bereitstellen einer MVC-Anwendung als gesehen bin deploy. Wenn Sie mit der rechten Add deployable dependenciesMaustaste auf ein Projekt klicken und VS auswählen, werden die Verweise auf Oauth hinzugefügt, wenn Sie das Kontrollkästchen neben aktivieren ASP .NET Webpages with Razor syntax.

Um dies zu beheben, löschen Sie den _bin_deployableAssembliesOrdner und den Ordner Ihrer Anwendung binund bereinigen Sie dann Ihre Anwendung und erstellen Sie sie neu. Sie funktioniert dann wieder.


1
Ich habe versucht, MSDN - Project Silk auszuführen. Die obigen Schritte halfen mir, das Problem zu lösen
dekdev

1
Anstatt den gesamten Ordner _bin_deployableAssemblies zu löschen, reichte es mir, nur die Microsoft.Web.WebPages.OAuth-Dateien von dort zu entfernen. (Natürlich war auch das Reinigen und Wiederherstellen sowie das Bereinigen des
Zielveröffentlichungsordners erforderlich

16

In meinem Fall lief die MVC4-Anwendung im VS2012-Debugger einwandfrei, aber beim Veröffentlichen der Anwendung auf dem Server wurde der Fehler "Datei oder Assembly 'DotNetOpenAuth.Core' konnte nicht geladen werden" angezeigt.

Durch Aktivieren des Kontrollkästchens "Alle vorhandenen Dateien vor der Veröffentlichung löschen" auf der Registerkarte "Einstellungen" des Fensters "Web veröffentlichen" wurde das Problem behoben.

Veröffentlichungssystemeinstellungen für Dateisysteme


3
Dies löste mein Problem, obwohl ich auf Azure hochlud und das Kontrollkästchen "Zusätzliche Dateien am Zielort entfernen" lautete.
Adrian Smith

Löschen Sie alle vorhandenen Dateien, bevor die Veröffentlichung wirklich funktioniert hat. Vielen Dank!
Andrzej Gis

12

Ich habe das Problem gelöst, indem ich das Paket mit Nuget installiert habe

Install-Package Microsoft.AspNet.WebPages.OAuth

4

Wählen Sie einfach "Zusätzliche Dateien am Ziel entfernen" in den Veröffentlichungseinstellungen. Das funktioniert bei mir


1
Eine so einfache Lösung sollte 1k Upvotes haben! Ich habe drei Tage lang damit zu kämpfen und versucht, in Azure zu veröffentlichen.
Saiyancoder

3

Durch die Installation der folgenden zwei Pakete habe ich dieses Problem in VS2012 Professional Update 4 RC behoben:

  1. Öffnen Sie die Package Manager-Konsole über das Menü:

    Werkzeuge | Bibliothekspaket verwalten | Package Manager-Konsole

  2. Installationspaket DotNetOpenAuth.AspNet

  3. Installationspaket Microsoft.AspNet.WebHelpers

Hoffe das hilft dir !!!


2

Versuchen Sie, eine globale Lösungssuche (Strg + Umschalt + f, falls Sie sie nicht geändert haben) nach dem Wert '2780ccd10d57b246' durchzuführen. Ich vermute, Sie finden es in Ihrer web.config.


Dies ist das Problem ... es gibt keine Referenz. Alle finden "2780ccd10d57b246", Unterordner, Ergebnisse 1 finden, Gesamte Lösung, "" Übereinstimmende Zeilen: 0 Übereinstimmende Dateien: 0 Insgesamt gesuchte Dateien: 182
Dimas Longo

6
Was ist der beste Weg, um DotNetOpenAuth * vollständig aus meinem Projekt zu entfernen? Ich habe das temporäre Verzeichnis gelöscht, die Ordner bin und obj ausgeschlossen, die Lösung neu erstellt und alle OpenAuth- und OpenID-Pakete mithilfe der Packager Manager-Konsole entfernt. Ich habe keine Ahnung, was ich jetzt tun soll. Auch googeln durch vollständiges Entfernen von DotNetOpenAuth Es gibt kein hilfreiches Ergebnis.
Dimas Longo

2

Für mich hat es wie folgt funktioniert: Mit der Packager Manager-Konsole habe ich die Pakete in der folgenden Reihenfolge deinstalliert und neu installiert. Mein Problem wurde behoben.

Deinstallation

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

Erstellen, Wenn Sie die oben genannten Pakete nicht verwenden, sollte dies das Problem lösen. Führen Sie die folgenden Schritte aus, um die oben genannten Pakete erneut zu installieren, falls Sie sie benötigen.

Neu installieren

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

empfohlen:

  • Gehen Sie zum Ordner bin des Projekts und löschen Sie ihn
  • Wenn Sie auf dem IIS veröffentlichen möchten, löschen Sie das virtuelle Verzeichnis und weisen Sie die Website erneut dem IIS zu, da ich das Problem hatte, Bargeld auf dem Server zu haben, das das Problem verursachte ...

1

Eine weitere Lösungsoption besteht in der folgenden Assemblyabhängigkeit:

<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>

Bitte fügen Sie hier Inhalte hinzu
SSP

Bitte posten Sie keine Nur-Link-Antworten. Bitte schreiben Sie die relevanten Informationen über den Link in Ihre Antwort.
Sumurai8

Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert.
Kamil Budziewski

1

Ich habe nicht den Ruf zu kommentieren, aber ich kann überprüfen, ob ich genau dieses Problem hatte und Jack hat die richtige Lösung für mich gegeben. Ich hatte kürzlich auf Dienstreferenz hinzufügen geklickt und das Programm wurde mit der obigen Fehlermeldung unterbrochen.

Wenn Sie den Ordner _bin_deployableAssemblies und den Ordner bin Ihrer Anwendung löschen und dann Ihre Anwendung bereinigen und neu erstellen, funktioniert sie wieder.


0

Falls dies jemandem hilft - Ich konnte die DotNetOpenAuth-Komponenten nicht über Nuget deinstallieren. Daher habe ich diesen Fehler behoben, indem ich sie direkt aus der Referenzliste gelöscht und dotnetopenauth über Nuget neu installiert habe.


0

Ich habe diesen Fehler ebenfalls erhalten, jedoch mit einem ASP.NET MVC 5-Projekt. Ich habe es gelöst, indem ich das Paket DotNetOpenAuth.Mvc5 installiert und AsActionResultMvc5 () anstelle von AsActionResult () aufgerufen habe.


0

Für mich hat das Hinzufügen zum folgenden Abschnitt zur csproj-Datei geholfen:

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

0

Ich hatte hier das gleiche Problem. Meine veröffentlichte web.config hatte nicht die Zeilen:

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

Einfach hinzugefügt und es hat funktioniert.


0

Entfernen Sie einfach den BIN-Ordner aus wwwroot und veröffentlichen Sie ihn erneut.


0

Ich konnte es auf meiner Seite lösen, indem ich Microsoft.AspNet.Membership.OpenAuth entfernte


0

Ich stoße auf dieses Problem, wenn ich daran arbeite, alle unsere Bibliotheken zu aktualisieren. Dieser Link hat mir geholfen, dieses Problem zu beheben. https://www.devexpress.com/Support/Center/Question/Details/Q554890/the-could-not-load-file-or-assembly-dotnetopenauth-core-version-4-0-0-0-error- Nachricht-ist .

Insbesondere habe ich diese Bindungsumleitungen zu meiner Datei web.config hinzugefügt.

      <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

Entfernen Sie alle Microsoft.Web.WebPages.OAuth-Abhängigkeiten überall in Ihren Projekten.


und Microsoft.Web.WebPages.OAuth.dll von der obersten Antwort oben
felickz
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.