Nie można załadować pliku lub zestawu „DotNetOpenAuth.Core


83

Po uruchomieniu aplikacji ASP net MVC 4 pojawia się następujący błąd:

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

To jest dziennik błędów

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.

Usunąłem już wszystkie odwołania z DotNetOpenAuth za pomocą menedżera pakowania. Sprawdziłem również własne odniesienia dla każdego zestawu Auth, który miałem w moim projekcie i nie ma żadnego.

To jest moje 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>

Dzięki

Odpowiedzi:


82

Jeśli nie chcesz używać OAuth, usuń odniesienia: zarówno bibliotekę DLL OAuth stron sieci Web (myślę, że jest to Microsoft.Web.WebPages.OAuth.dll 1 ), jak i biblioteki DLL DotNetOpenAuth.


1 : Możesz znaleźć nazwę pliku w Calling assembly. Dlatego usunięcie wszystkich calling assemblyelementów DotNetOpenAuth.Corepowinno działać dla Ciebie. To podejście powinno działać w przypadku innych nieużywanych brakujących odniesień.


1
Warto było zapoznać się z nazwą odniesienia Microsoft.Web.WebPages.OAuth.dll, ponieważ większość odwołań zaczęła się od DotNetOpenAuth. To pomogło mi rozwiązać problem. Dziękuję Ian Li
— Catto

77

Miałem podobny problem. To było naprawdę dziwne, ponieważ projekt działał dobrze dzień wcześniej.

Usunięcie folderów obj i bin z folderu projektu, wyczyszczenie roztworu i odbudowanie go zadziałało.

Mam nadzieję, że to pomoże.


2
Prawdopodobnie zadziałało to przez wyczyszczenie biblioteki DLL związanej z oauth, która była już w folderach bin / obj. Usunięcie odniesienia i przebudowanie nie usunęłoby plików powodujących problemy, ale usunięcie katalogów tak.
— Michael Haren

5
Miał ten sam problem, dodano bibliotekę dll oauth, ale nie dodano biblioteki DLL DotNetOauth. Czyszczenie nie działa, ręczne usuwanie folderów bind i obj działa. Te małe, ale łamiące aplikacje problemy w Visual Studio zaczynają mi działać na nerwy.
— Moulde

2
Mam ten sam problem i usunięcie tych folderów nie działa. Usuwam je, czyszczę i odbudowuję rozwiązanie, a problem pozostaje
— chiapa

ta biblioteka oauth używa webactivatora do inicjalizacji, więc usunięcie odniesień nie wystarczy, biblioteki muszą zostać usunięte z folderu bin (webactivator wylicza pliki dll w folderze, w którym został załadowany)
— Mel

Podobnie jak chiapa miałem ten sam problem. Usunąłem bin i obj, wyczyściłem i odbudowałem, ale problem pozostał. Ale potem zrestartowałem Visual Studio i zadziałało .
— cokolwiek

22

Widziałem to podczas wdrażania aplikacji MVC jako bin deploy. Po kliknięciu projektu prawym przyciskiem myszy i wybraniu programu Add deployable dependenciesVS doda odwołania do Oauth, jeśli zaznaczysz pole obok ASP .NET Webpages with Razor syntax.

Aby to naprawić, usuń _bin_deployableAssembliesfolder i folder aplikacji, bina następnie wyczyść i ponownie skompiluj aplikację i będzie działać ponownie.


1
Próbowałem uruchomić MSDN - Project Silk. powyższe kroki pomogły mi rozwiązać problem
— dekdev

1
zamiast usuwać cały folder _bin_deployableAssemblies, wystarczyło mi samo usunięcie plików Microsoft.Web.WebPages.OAuth. (oczywiście konieczne było również wyczyszczenie i przebudowanie, a także wyczyszczenie docelowego folderu publikacji)
— Jerther

16

W moim przypadku aplikacja MVC4 działała poprawnie w debugerze VS2012, ale podczas publikowania aplikacji na serwerze pojawiał się błąd „Nie można załadować pliku lub zestawu 'DotNetOpenAuth.Core'”.

Zaznaczenie pola wyboru „Usuń wszystkie istniejące pliki przed opublikowaniem” na karcie ustawień w oknie Publikuj w sieci WWW rozwiązało problem.

Ustawienia publikowania systemu plików


3
To rozwiązało mój problem, mimo że ładowałem na platformę Azure, a etykieta pola wyboru brzmiała „Usuń dodatkowe pliki w miejscu docelowym”.
— Adrian Smith

Usunięcie wszystkich istniejących plików przed opublikowaniem naprawdę działało. Dzięki!
— Andrzej Gis

12

Rozwiązałem problem, instalując pakiet za pomocą Nuget

Install-Package Microsoft.AspNet.WebPages.OAuth

4

Po prostu wybierz „Usuń dodatkowe pliki w miejscu docelowym” w ustawieniach publikowania. To działa dla mnie


1
Takie proste rozwiązanie powinno mieć 1k upvotes! Walczę z tym przez trzy dni, próbując opublikować na platformie Azure.
— saiyancoder

3

Instalując następujące dwa pakiety rozwiązałem ten problem w VS2012 Professional Update 4 RC:

  1. Otwórz konsolę Menedżera pakietów z menu:

    Narzędzia | Zarządzanie pakietem bibliotecznym | Konsola menedżera pakietów

  2. Zainstaluj pakiet DotNetOpenAuth.AspNet

  3. Zainstaluj pakiet Microsoft.AspNet.WebHelpers

Mam nadzieję, że to pomoże Ci !!!


2

Spróbuj przeprowadzić globalne wyszukiwanie rozwiązania (ctrl + shift + f, jeśli go nie zmieniłeś) dla wartości „2780ccd10d57b246”. Zgaduję, że znajdziesz go w swoim pliku web.config.


To jest problem ... nie ma odniesienia. Znajdź wszystkie "2780ccd10d57b246", Podfoldery, Znajdź wyniki 1, Całe rozwiązanie, "" Pasujące wiersze: 0 Pasujące pliki: 0 Łączna liczba przeszukiwanych plików: 182
— Dimas Longo

6
Jaki jest najlepszy sposób usunięcia DotNetOpenAuth * z mojego projektu? Usunąłem katalog tymczasowy, wykluczyłem foldery bin i obj, ponownie zbudowałem rozwiązanie i usunąłem wszystkie pakiety OpenAuth i OpenID za pomocą konsoli menedżera pakietów… Nie mam pojęcia, co teraz zrobić. Również googlowanie przez całkowite usunięcie DotNetOpenAuth Nie ma pomocnego wyniku.
— Dimas Longo,

2

dla mnie działało tak, jak poniżej, używając konsoli menedżera pakietów, odinstalowałem pakiety zgodnie z następującą kolejnością kolejności i ponownie go zainstalowałem, rozwiązało to mój problem.

Odinstalowywanie

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

Kompiluj, jeśli nie używasz powyższych pakietów, powinno to rozwiązać problem. Aby ponownie zainstalować powyższe, jeśli jest to potrzebne, wykonaj następujące czynności.

Zainstaluj ponownie

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

polecany:

  • przejdź do folderu bin projektu, wyczyść go
  • kiedy opublikować w IIS, usunąć katalog wirtualny i ponownie przypisać witrynę do IIS, ponieważ miałem problem z posiadaniem gotówki na serwerze, który był przyczyną problemu ...

1

Jeszcze jedną opcją rozwiązania jest zależność zestawu w następujący sposób:

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

proszę dodać treść tutaj
— SSP

Prosimy nie publikować odpowiedzi zawierających tylko łącza. Wpisz odpowiednie informacje z linku w swojej odpowiedzi.
— Sumurai8,

Chociaż ten link może odpowiedzieć na pytanie, lepiej jest zawrzeć tutaj zasadnicze części odpowiedzi i podać link do odniesienia. Odpowiedzi zawierające tylko łącze mogą stać się nieprawidłowe, jeśli połączona strona ulegnie zmianie.
— Kamil Budziewski

1

Nie mam reputacji do komentowania, ale mogę sprawdzić, czy miałem dokładnie ten problem i Jack podał mi prawidłowe rozwiązanie. Niedawno nacisnąłem Add Service Reference i zepsuło to program z powyższym komunikatem o błędzie.

Usunięcie folderu _bin_deployableAssemblies i folderu bin aplikacji, a następnie wyczyszczenie i ponowne skompilowanie aplikacji sprawiło, że działała ponownie.


0

Na wypadek, gdyby to pomogło każdemu - nie udało mi się odinstalować składników DotNetOpenAuth za pośrednictwem Nuget, więc rozwiązałem ten błąd, usuwając je bezpośrednio z listy odniesień, a następnie ponownie instalując dotnetopenauth za pośrednictwem nuget.


0

Otrzymałem również ten błąd, ale z projektem ASP.NET MVC 5. Rozwiązałem to, instalując pakiet DotNetOpenAuth.Mvc5 i wywołując AsActionResultMvc5 () zamiast AsActionResult ()


0

U mnie pomogło dodanie do pliku csproj następującej sekcji:

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

0

Tu miałem ten sam problem. Mój opublikowany plik web.config nie zawierał linii:

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

Właśnie dodane i zadziałało.


0

Po prostu usuń folder BIN z wwwroot i opublikuj ponownie.


0

Udało mi się rozwiązać ten problem po mojej stronie, usuwając Microsoft.AspNet.Membership.OpenAuth


0

Napotykam ten problem podczas pracy nad aktualizacją wszystkich naszych bibliotek. ten link pomógł mi rozwiązać ten problem. https://www.devexpress.com/Support/Center/Question/Details/Q554890/the-could-not-load-file-or-assembly-dotnetopenauth-core-version-4-0-0-0-error- wiadomość-jest .

Specjalnie dodałem te przekierowania do mojego pliku 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

Usuń wszelkie zależności Microsoft.Web.WebPages.OAuth z dowolnego miejsca w projektach.


i Microsoft.Web.WebPages.OAuth.dll z odpowiedzi powyżej
— felickz,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.