No se pudo cargar el archivo o ensamblado 'Antlr3.Runtime (1)' o una de sus dependencias

82

Recibo este error al intentar ejecutar mi MVC4proyecto, estaba funcionando bien hasta la última vez en mis otras máquinas, pero cuando intento ejecutarlo desde otra máquina, me da este error:

No se pudo cargar el archivo o ensamblado 'Antlr3.Runtime (1)' o una de sus dependencias. La definición del manifiesto del ensamblado ubicado no coincide con la referencia del ensamblado. (Excepción de HRESULT: 0x80131040)

Después de leer sobre esto aquí , he intentado hacer :

Install-Package Antlr3.Runtime -Pre

pero no ayudó, ¿alguna idea?

Maven
fuente
1
¿Intentó desinstalar el archivo anterior. versión antes de instalar la versión anterior?
Spock
1
No actualicé ninguna versión. Acabo de cambiar la máquina
Maven
¿Intentó hacer clic con el botón derecho en la solución y luego en "Habilitar la restauración del paquete nuget"?
TS
Ninguna de las respuestas aquí ayudó, pero la respuesta a este duplicado sí lo hizo.
DCShannon

Respuestas:

102

Encontré el mismo problema al experimentar con la plataforma de registro gratuita Nlog.

Esto me ayudó:

Ingrese% TEMP% en el Explorador de archivos y elimine todos los archivos temporales.

Después de eso, no recibí el error al iniciar mi proyecto MVC5 en Visual Studio.

AH.
fuente
Mi mensaje de error no tenía el "(1)", pero esta solución aún funcionó
Roberto
10
Gracias por esto. Es basura Microsoft como esto que a veces provoca el deseo de poner su puño a través de los intestinos de Visual Studio ...
smyrniano
¡¡Increíble!! Perdí demasiadas horas en esto. Mi problema no era la parte de compilación, pero la publicación de los artefactos utilizando los archivos pubxml estaba fallando en el servidor Jenkins, mientras funcionaba bien en mi máquina local. Una vez que se eliminó la carpeta temporal como se describe anteriormente, los artefactos de publicación funcionaron sin problemas.
yyardim
40

Intente eliminar los archivos temporales de ASP.Net haciendo uno de estos:

  • Ingrese% TEMP% en el Explorador de archivos y elimine todos los archivos temporales.
  • Vaya a la carpeta "C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Archivos temporales ASP.NET" y elimine todos los archivos.
sachin kulkarni
fuente
7
Gracias. Para mí fue la opción 2 la que ayudó
Rabino
Estoy de acuerdo con @Rabbi. Es la opción 2 la que resolvió mi problema. ¡Ojalá pudiera votar tu respuesta 10 veces! Muchas gracias. :)
Annie Lagang
31

No olvide borrar también los archivos temporales ASP.NET en Framework64. Eso funcionó para mí.

  • C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
  • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
Mathijs Vlasveld
fuente
Perfecto gracias, probé la respuesta aceptada en vano hasta que vi esta publicación, Framework64 lo hizo por mí
Joshua Ohana
Esto funciona para mi y otro project-dll al que se hace referencia. En mi caso, todas las referencias en el proyecto Web estaban rotas, el mensaje era: "No se pudo cargar el archivo o ensamblado 'cualquiera que sea.dll' o una de sus dependencias". Después de limpiar, se creó la referencia dll y todo funciona bien.
Fer R
27

En caso de que esto ayude a alguien.
Tuve este problema con una aplicación MVC 5. La eliminación de Antlr3.Runtime.dll del directorio bin y la reconstrucción solucionó el problema.

fhilton
fuente
Esto funcionó para mí. Gracias. Pero todavía no estoy seguro de la verdadera razón de este error. ¿Alguien puede explicarlo?
mukulsharma1146
1
En mi caso, tuve que eliminar WebGrease.dll en su lugar
Tharwen
gracias ... pasé 3 horas tratando de resolver esto y este es el paso que eliminó mi YSOD.
Joshua K
18

Mi problema fue que la última versión de WebGrease instala la versión 3.4.1.9004 de Antlr. Una vez que instalé WebGrease y luego actualicé Antlr a la versión 3.5.0.2, el error desapareció.

YeeHaw1234
fuente
11
Mi problema era exactamente este problema. Tuve que desenrollar la cadena de dependencias en la Consola del Administrador de paquetes desinstalando Microsoft.AspNet.Web.Optimization, WebGrease y Antlr (en ese orden), luego instalar el paquete Microsoft.AspNet.Web.Optimization, actualizar el paquete WebGrease y finalmente actualizar -package Antlr (en ese orden) para obtener las últimas versiones y corregir el problema de la versión de Antlr.
Wade
13

Para mí, eliminar este nodo en el archivo web.config eliminó el mensaje de error:

<identity impersonate="true" userName="" password="">

Pero lo que realmente funcionó para mí fue otorgar acceso completo (al nombre de usuario especificado en suplantar), a la carpeta "Archivos temporales ASP.NET" que se encuentra en C: \ Windows \ Microsoft.NET \ Framework {versión} (o Framework64).

La identidad también se puede almacenar en la configuración del grupo de aplicaciones del sitio web, en IIS.

Asegúrese de que su paquete nuget esté instalado correctamente, con la versión correcta. Si nada más funciona, intente volver a agregar la referencia desde una carpeta local y configúrela en Copiar local.

vive el amor
fuente
1
Esto me resolvió el problema. el web.config tenía una configuración para la suplantación en el entorno de ensayo y esa cuenta de usuario no existía en mi mundo de desarrollo.
ttomsen
Probé las tres sugerencias y ninguna funcionó. Todavía obtengo un YPOD 1. No hay <etiqueta de identidad en mi web.config 2. Le di 'control total' tanto a iis_usrs como a users \ johnny 3. Las últimas opciones parecen un truco
dannyrosalex
Lo resolví usando el comando:ASPNET_REGIIS -GA impersonatedusername
cslecours
Esto ayudó a resolver mi problema. Estaba trabajando localmente y, como nombre de cuenta mencionado en este elemento, no tiene acceso a mi carpeta de desarrollo.
Aamol
Gracias, esta solución es realmente útil.
Josue Barrios
11

Si alguna solución resuelve su problema, verifique web.config, la versión del ensamblaje

<dependentAssembly>
        <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
      </dependentAssembly>
Daniel Melo
fuente
Gracias En el caso de actualizar paquetes y enfrentar el problema, esta respuesta funcionó para mí.
Fereydoon Barikzehy
Quité este ensamblaje, luego funcionó para mí. ¡¡Gracias!!
User6667769
7

La forma más sencilla es actualizar antlr y webgrease

  1. Ir al administrador de la consola de paquetes
  2. luego intente aplicar estos códigos uno por uno
  3. PM> Paquete de actualización Antlr
  4. PM> Paquete de actualización WebGrease

Finalmente el error resuelto

sartén profunda
fuente
2

Para mí, esto se debió a una falta de coincidencia entre las versiones de depuración y de ejecución de Antlr.

Finalmente lo resolvió instalando un paquete Antlr diferente: Install-Package Antlr

edson-
fuente
2

Intente desbloquear Antlr3.Runtime.dll si agrega la referencia manualmente: ingrese la descripción de la imagen aquí

ADMITIR
fuente
2

Hubo un problema con impersonate = "true" en web.config, ¡eliminé la línea que funcionó!

Nuevamente coloqué la línea y le di permiso de administrador al usuario de la cuenta con suplantación, toda mi aplicación funcionó :)

Mohamed Sanuj Basheer
fuente
1

Si usa suplantación de identidad. La respuesta es otorgar permiso al usuario que está suplantando acceso a las siguientes carpetas:

  1. C:\Windows\Microsoft.NET\Framework[v4.0.30319 or the version that you're using]\Temporary ASP.NET Files

  2. El directorio de su sitio.

también es posible que deba crear una carpeta como la siguiente:

C:\Windows\Microsoft.NET\Framework\[v4.0.30319 or the version that you're using]\Temporary ASP.NET Files\[Application-Name-Goes-Here]

Pero prueba el anterior primero, funcionó para mí.

Esos dos cambios para otorgar al usuario suplantado permiso para poder guardar los datos temporales y extraer los archivos dll y los archivos necesarios de los directorios.

Actualización, para Windows 10 Esta es la solución que funcionó para mí

Haremos ambos pasos, pero en lugar de C:\Windows\Microsoft.NET\Framework[v4.0.30319 or the version that you're using]\Temporary ASP.NET Files

Escriba% TEMP% en el explorador de archivos y dé permiso al usuario de que está suplantando acceso a la siguiente carpeta: C:\Users\[UserName]\AppData\Local\Temp\Temporary ASP.NET Files

Mostafa Elabbady
fuente
0

En un proyecto tenía una referencia a WebGrease, pero no había un elemento correspondiente en packages.config. Elimino la referencia del proyecto, porque ya no la necesito. Ahora funciona.

Tomas Kubes
fuente
0

Probé todas las respuestas en esta publicación, pero ninguna funcionó para mí.

¡Así que eliminé todos los directorios / bin dentro de todos los proyectos de mi solución, limpié y reconstruí la solución y finalmente funcionó!

Toda mi mañana desperdiciada trabajando para resolver el problema ...

Velociround
fuente
0

lo que funcionó para mí fue eliminar la identidad = true de mi webconfig (bajo las propiedades system.web) y construir la solución nuevamente y publicarla nuevamente (si es necesario) ¡y funcionó a las mil maravillas!

Anchit
fuente
esto debería estar en el comentario
Usman Maqbool
0

Mi problema terminó siendo causado por un cambio en las unidades asignadas en nuestra Política de grupo. Mi solución tiene la configuración tempDirectory establecida en Web.config para usar una configuración de unidad RAM como mi unidad Z :. Aparentemente, comenzaron a usar la unidad Z: y las DLL se estaban copiando en tempDirectory como de costumbre, pero luego creo que un proceso en el servidor remoto las estaba eliminando (probablemente un escaneo de virus). Solo pude resolver esto usando Process Monitor y filtrando para Antlr y viendo que estaba buscando en una ubicación de red las DLL.

Schmalls
fuente
0

He actualizado todos los paquetes en el Gestor de paquetes Nudget y funcionó! En mi caso, estoy alojando mi sitio web en GoDaddy

joalcego
fuente
0

Después de intentar eliminar el archivo temporal .netframework sin éxito, cambié

<system.web>
    <authentication mode="None" />
    <compilation debug="true" targetFramework="4.6.1" />
    <httpRuntime />
    <pages controlRenderingCompatibilityVersion="4.0" />
</system.web> 

Con solo targetFramework = "4.6" en lugar de 4.6.1, el sitio web se muestra sin errores. A continuación, cambié de nuevo a targetFramework = "4.6.1" y reinicié el servidor. Todo sigue estando bien.

Laurent DANE
fuente
0

Para mí, la solución fue ejecutar Visual Studio como administrador. Aparentemente fue un problema de permisos.

Alexander van Trijffel
fuente
0

La solución para mí fue ir a Herramientas> Administrador de paquetes NuGet> Administrar paquetes para la solución

Luego haga clic en Antlr3 y asegúrese de que esté instalado en:

  1. El proyecto de inicio
  2. Cualquier biblioteca que use la reflexión
  3. Cualquier biblioteca que llame a las bibliotecas que usan la reflexión.

En mi caso, eran 4 proyectos de profundidad que lo necesitaban. Una vez hecho esto, este problema finalmente se resolvió.

Chris Moschini
fuente
0

Acabo de enfrentar este problema y probé las soluciones mencionadas anteriormente, pero nada funcionó por ahora.Tuve que eliminar su dll de bin floder y reconstruir y luego eliminar todos los archivos relevantes de la carpeta de paquetes y restaurar los paquetes usando la consola del administrador de paquetes.

Ikram Shah
fuente
0

% Temp% eliminado

Bandeja eliminada

.Vs eliminados

Ahora funcionó para mi

Arun Prasad ES
fuente
0

En mi caso, cuando cloné un proyecto, Visual Studio 2019 reemplazó un carácter de espacios con '% 20' en la ruta del proyecto. Luego, cuando VS intentó encontrar los paquetes nugget, no pudo encontrar la ruta correcta.

Martín
fuente
0

Me enfrenté a este problema después de actualizar Microsoft.AspNet.Web.Optimization

update-package WebGreasey update-package Antlr(en ese orden) para obtener las últimas versiones y corregir el problema de la versión de Antlr.

Nishān Wickramarathna
fuente
0

Para mí, lo hice estos pasos y ha funcionado para mí:

1) He eliminado biny objcarpeta (algunos archivos no se eliminan por Cleanproyecto)

2) Revisé algunos archivos como JS que fue borrado hace mucho tiempo, pero que estaba incluido en los archivos de proyecto . Entonces los excluyo.

Mostafa Fallah
fuente
0

Tengo una solución sencilla. Vaya a su propia carpeta de proyecto y busque una carpeta de paquetes.

ingrese la descripción de la imagen aquí

Md Shahriar
fuente