No se pudo cargar el archivo o ensamblado 'DotNetOpenAuth.Core

83

Recibo el siguiente error cuando inicio mi aplicación 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

Este es el registro de errores

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.

Ya eliminé todas las referencias de DotNetOpenAuth con el administrador de paquetes. También verifiqué mis propias referencias para cada ensamblado de autenticación que tenía en mi proyecto y no hay ninguno.

Este es mi 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>

Gracias

Dimas Longo
fuente

Respuestas:

82

Si no desea usar OAuth, elimine las referencias: tanto la DLL de WebPages OAuth (creo que es Microsoft.Web.WebPages.OAuth.dll 1 ) como las DLL de DotNetOpenAuth.


1 : puede encontrar el nombre del archivo en formato Calling assembly. Por lo tanto, la eliminación de todos los calling assemblyde DotNetOpenAuth.Coredebe trabajar para usted. Este enfoque debería funcionar para otras referencias faltantes no utilizadas.

Ian Li
fuente
1
Fue útil ver el nombre de referencia Microsoft.Web.WebPages.OAuth.dll ya que la mayoría de las referencias comenzaron con DotNetOpenAuth. Eso me ayudó a resolver el problema. Gracias Ian Li
Catto
77

Tuve un problema similar. Fue realmente extraño ya que el proyecto estaba funcionando bien el día anterior.

Eliminar las carpetas obj y bin de la carpeta del proyecto, limpiar la solución y reconstruirla funcionó.

Espero que ayude.

Sylwester Gryzio
fuente
2
Esto probablemente funcionó al purgar una DLL relacionada con oauth que ya estaba en sus carpetas bin / obj. Eliminar la referencia y reconstruir no eliminaría los archivos ofensivos, pero eliminar los directorios sí.
Michael Haren
5
Tenía el mismo problema, se agregó oauth dll, pero no se agregó DotNetOauth dll. La limpieza no funcionó, la eliminación manual de las carpetas bind y obj funciona. Estos pequeños problemas, pero que rompen las aplicaciones en Visual Studio, están empezando a ponerme de los nervios.
Moulde
2
Tengo el mismo problema y eliminar esas carpetas no funciona. Los elimino, limpio y reconstruyo la solución, y el problema permanece
chiapa
esta biblioteca oauth usa webactivator para inicializar, por lo que eliminar las referencias no es suficiente, las bibliotecas deben eliminarse de la carpeta bin (webactivator enumera los archivos dll en la carpeta en la que se cargó)
Mel
Al igual que Chiapa, tuve el mismo problema. Eliminé bin y obj, limpié y reconstruí, pero el problema permaneció. Pero luego reinicié Visual Studio y funcionó .
sea
22

He visto que esto sucede al implementar una aplicación MVC como bin deploy. Cuando haga clic con el botón derecho en un proyecto y seleccione, Add deployable dependenciesVS agregará las referencias a Oauth si marca la casilla junto a ASP .NET Webpages with Razor syntax.

Para solucionar esto, elimine la _bin_deployableAssembliescarpeta y la carpeta de su aplicación biny luego limpie y reconstruya su aplicación y volverá a funcionar.

Jack
fuente
1
Estaba intentando ejecutar MSDN - Project Silk. los pasos anteriores me ayudaron a resolver el problema
dekdev
1
en lugar de eliminar toda la carpeta _bin_deployableAssemblies, simplemente eliminar los archivos Microsoft.Web.WebPages.OAuth de allí fue suficiente para mí. (por supuesto, también se necesitaba limpiar y reconstruir, así como limpiar la carpeta de publicación de destino)
Jerther
16

En mi caso, la aplicación MVC4 funcionaba bien en el depurador VS2012, pero recibía el error "No se pudo cargar el archivo o ensamblado 'DotNetOpenAuth.Core'" cuando publico la aplicación en el servidor.

Marcar la casilla de verificación "Eliminar todos los archivos existentes antes de la publicación" en la pestaña de configuración de la ventana Publicar web resolvió el problema.

Configuración de publicación del sistema de archivos

mitaka
fuente
3
Esto resolvió mi problema, aunque estaba subiendo a Azure y la etiqueta de la casilla de verificación era "Eliminar archivos adicionales en el destino".
Adrian Smith
Eliminar todos los archivos existentes antes de publicar realmente funcionó. ¡Gracias!
Andrzej Gis
12

Resolví el problema instalando el paquete usando Nuget

Install-Package Microsoft.AspNet.WebPages.OAuth
mLar
fuente
4

Simplemente seleccione "Eliminar archivos adicionales en el destino" en la configuración de publicación. Esto funciona para mi

Anpix
fuente
1
¡Una solución tan fácil debería tener mil votos a favor! He estado luchando con esto durante tres días, tratando de publicar en Azure.
saiyancoder
3

Al instalar los siguientes dos paquetes, resolví este problema en VS2012 Professional Update 4 RC:

  1. Abra la consola del administrador de paquetes desde el menú:

    Herramientas Gestión de paquetes de biblioteca | Consola del administrador de paquetes

  2. Paquete de instalación DotNetOpenAuth.AspNet

  3. Paquete de instalación Microsoft.AspNet.WebHelpers

¡Espero que esto te ayude!

usuario2969674
fuente
2

Intente hacer una búsqueda de solución global (ctrl + shift + f si no la ha cambiado) para el valor '2780ccd10d57b246'. Supongo que lo encontrará en su web.config.

Brezo
fuente
Este es el problema ... no hay referencia. Buscar todos "2780ccd10d57b246", Subcarpetas, Resultados de búsqueda 1, Solución completa, "" Líneas coincidentes: 0 Archivos coincidentes: 0 Total de archivos buscados: 182
Dimas Longo
6
¿Cuál es la mejor manera de completar la eliminación de DotNetOpenAuth * de mi proyecto? Eliminé el directorio temporal, excluí las carpetas bin y obj, reconstruí la solución y eliminé todos los paquetes de OpenAuth y OpenID usando la consola del administrador de empaquetadores ... No tengo idea de qué hacer ahora. También buscar en Google mediante la eliminación completa de DotNetOpenAuth No hay ningún resultado útil.
Dimas Longo
2

para mí, funcionó de la siguiente manera, usando la consola del administrador del empaquetador, desinstalé los paquetes, según la siguiente secuencia de orden y los volví a instalar, resolvió mi problema.

Desinstalar

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

Construya, si no está utilizando los paquetes anteriores, esto debería resolver el problema, para instalar lo anterior nuevamente en caso de que lo necesite, haga lo siguiente.

Reinstalar

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

recomendado:

  • ve a la carpeta bin del proyecto, bórralo
  • cuando publicar en el IIS, eliminar el directorio virtual y asignar el sitio web nuevamente al IIS, ya que me enfrenté a ese problema de tener efectivo en el servidor que estaba creando el problema ...
Adel
fuente
1

Una opción de solución más es tener la dependencia de ensamblado de la siguiente manera:

<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>
MuJosh
fuente
por favor agregue contenido aquí
SSP
No publique respuestas que solo incluyan enlaces. Escriba la información relevante del enlace en su respuesta.
Sumurai8
Si bien este enlace puede responder la pregunta, es mejor incluir aquí las partes esenciales de la respuesta y proporcionar el enlace como referencia. Las respuestas de solo enlace pueden perder su validez si cambia la página enlazada.
Kamil Budziewski
1

No tengo la reputación de comentar, pero puedo verificar que tuve este problema exacto y Jack me dio la solución correcta. Recientemente presioné Agregar referencia de servicio y rompió el programa con el mensaje de error anterior.

Eliminar la carpeta _bin_deployableAssemblies y la carpeta bin de su aplicación y luego limpiar y reconstruir su aplicación hizo que funcione nuevamente.

JPK
fuente
0

En caso de que esto ayude a alguien, no pude desinstalar los componentes DotNetOpenAuth a través de Nuget, así que resolví este error eliminándolos de la lista de referencias directamente y luego reinstalando dotnetopenauth a través de nuget.

Fijjit
fuente
0

También recibía este error, pero con un proyecto ASP.NET MVC 5. Lo resolví instalando el paquete DotNetOpenAuth.Mvc5 y llamando a AsActionResultMvc5 () en lugar de AsActionResult ()

El innombrable
fuente
0

Para mí, me ayudó a agregar al archivo csproj la siguiente sección:

<PropertyGroup>
   <PostSharpHostConfigurationFile>web.config</PostSharpHostConfigurationFile>            
</PropertyGroup>
Iwona Kubowicz
fuente
0

Tuve el mismo problema aquí. Mi web.config publicado no tenía las líneas:

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

Acabo de agregar y funcionó.

Thiago
fuente
0

Simplemente elimine la carpeta BIN de wwwroot y vuelva a publicar.

fede
fuente
0

Pude resolverlo por mi parte eliminando Microsoft.AspNet.Membership.OpenAuth

Cristian Vintila
fuente
0

Me encuentro con este problema cuando trabajo en la actualización de todas nuestras bibliotecas. este enlace me ayudó a solucionar este problema. https://www.devexpress.com/Support/Center/Question/Details/Q554890/the-could-not-load-file-or-assembly-dotnetopenauth-core-version-4-0-0-0-error- mensaje-es .

Especialmente agregué estos redireccionamientos vinculantes a mi archivo 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>
Oscar Cauich
fuente
-2

Elimine todas las dependencias de Microsoft.Web.WebPages.OAuth en todas partes de sus proyectos.

Carmen
fuente
y Microsoft.Web.WebPages.OAuth.dll de la respuesta superior anterior
felickz