2011-05-21 13 views
6

Desde la instalación de la actualización de herramientas recientes para MVC3 la adición de un controlador a través del menú contextual "Add Controller" se suele fallar con el error:Agregar controlador después de actualizar las herramientas recientes falla con error de dependencia

Could not load file or assembly 'Newtonsoft.Json, Version=3.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified.

O simimlar (a veces otra dependencia, como "Mono.Addins", etc.).

Las referencias de las que se queja no son necesarias para el proyecto directamente, pero están referenciadas por otras referencias que tiene este proyecto. El proyecto construye find sin las referencias, pero Add Controller falla.

Agregar la referencia mencionada en el error tampoco soluciona esto. Incluso después de agregar una referencia a Newtonsoft.Json (con la versión correcta y el token), el error permanece.

Sospecho que esto se debe a la reflexión del cuadro de diálogo Agregar controlador para proporcionar una lista de tipos de modelos que se pueden usar, pero no puedo entender por qué sigue apareciendo incluso después de agregar la referencia solicitada.

El cuadro de diálogo "Agregar vista" es ligeramente mejor, pero sigue fallando. El cuadro de diálogo se abre, pero cuando marca "Crear una vista de tipo de letra fuerte", el cuadro de diálogo se cierra inmediatamente.

Por el momento mi trabajo consiste en agregar Controladores manualmente, y agregar vistas no fuertes y editarlas a mano luego, pero esto se está volviendo realmente frustrante, especialmente porque no puedo aprovechar a nuestro cliente T4 plantillas para vistas y controladores de andamios.

¿Alguien más ha experimentado esto desde la actualización y sabe cómo solucionarlo?

+0

¿Llegaste a algún lado con esto? Estoy teniendo exactamente el mismo problema, aparte de que se queja de que no se encontró StructureMap v2.5. –

+0

No - He encontrado que es causa cuando tengo agregada otra dependencia (en la interna). Si elimino esa dependencia y compilo el proyecto (falla ya que necesita la dependencia), y luego lo vuelvo a agregar, deja de quejarse sobre Newtonsoft.Json. Es un dolor, pero funciona en este momento. Si puede rastrear qué dependencia está causando esto, esto también podría funcionar. –

+0

Estoy teniendo el mismo problema con una dependencia de MvcMembership, y aparece el siguiente mensaje de error: "No se pudo cargar el archivo o ensamblado 'MvcMembership, Version = 3.4.0.0, Culture = neutral, PublicKeyToken = null' o uno de sus dependencias. El sistema no puede encontrar el archivo especificado ". Esto es un dolor verdadero. ¿Alguien encontró una solución? –

Respuesta

0

Tuve el mismo problema con protobuf.

Significa que uno de los proyectos a los que hace referencia tiene una dependencia en Newtonsoft.Json, supongo que es a través de los atributos.

Cuando VS intenta reflejar en el tipo de sus ensamblajes para ofrecerle clases de modelo en el cuadro de diálogo (Agregar controlador/Agregar vista) no puede encontrar Newtonsoft.Json para descubrir qué es lo que está reflejando, agregando una referencia a Newtonsoft. Json a tu proyecto MVC debería arreglar eso.

+0

Gracias, pero como dije en la pregunta "Agregar la referencia mencionada en el error tampoco soluciona esto. Incluso después de agregar una referencia a Newtonsoft.Json (con la versión correcta y el token) el error permanece". –

0

Elimine todas sus dependencias y actualice sus dlls a la versión que desee volver a utilizar. Esto lo solucionó para nosotros, estaba sucediendo en un par de bibliotecas diferentes, no solo en una.

0

Finalmente lo resolví. Supongo que el problema puede residir en diferentes lugares. En mi caso, agregué modelos a mi dominio, pero olvidé agregar contextos para estos nuevos modelos; cosas como

public DbSet<Region> Regions { get; set; } 

yo tuvimos ningún error en tiempo de compilación, y yo no utilizaba estos modelos sí en la solución, así que no había ningún error en tiempo de ejecución tampoco. Es un poco casual que encontré esto. Otra cosa que tengo que mencionar es que reinicié mi máquina mientras tanto. No sé si esto también afectó las cosas, pero prefiero pensar que el problema se debió a los contextos faltantes.

0

Esto no tiene nada que ver con la actualización de las herramientas. Tuve un problema similar y lo solucioné reconstruyendo todo mi árbol de dependencias, comenzando desde las "hojas" (es decir, proyectos que no tienen dependencias). Ya había una pregunta similar, mi respuesta está aquí: https://stackoverflow.com/a/6627505/342838.

0

Gracias, esto me ayudó. Recientemente agregué una biblioteca llamada OAuth2.MVC a mi proyecto MVC4 Web Api, y luego este error comenzó a ocurrir. Oauth2.MVC tenía una dependencia en Newtonsoft.Json versión 3.5.0.0, y mi proyecto ya tenía la versión 4.5.0.0. Volví al proyecto OAuth2.MVC (es de código abierto) y actualicé la versión de Newtonsoft.Json allí para 4.5.0.0, la reconstruí y luego reimporté la referencia en mi proyecto MVC4 Web Api, y pude entonces agregue un controlador sin el error.

Cuestiones relacionadas