Falta System.web.mvc

Tenemos una antigua aplicación web MVC 3 de ASP.NET, comstackda en VS2010, que no se comstack, desde la actualización de seguridad de la semana pasada.

El problema es que la referencia a System.Web.Mvc.dll está rota.

Cuando abro el archivo de la solución en nuestra máquina de comstackción, donde no se ha ejecutado la actualización de seguridad, y abro el cuadro de diálogo de propiedades para Referencias-> System.Web.MVC, parece que está bien.

La ruta es C: \ Archivos de progtwig \ Microsoft ASP.NET \ ASP.NET MVC 3 \ Assemblies \ System.Web.Mvc.dll La versión es 3.0.0.0

Pero cuando abro el archivo de solución en una máquina de desarrollo donde se ha ejecutado la actualización de seguridad, Referencias-> System.Web.MVC está marcado como faltante. Si lo elimino e bash volver a agregarlo mediante el cuadro de diálogo Agregar referencia de VS2010, no aparece.

Deambular por la web me ha llevado a sugerencias sobre la actualización de MVC con NuGet. No usamos NuGet, en nuestros proyectos VS2010, por lo que no parece correcto, para esta situación. Lo intenté de todos modos y terminé con media docena de referencias faltantes.

Cuando miro las propiedades de “C: \ Archivos de progtwig \ Microsoft ASP.NET \ ASP.NET MVC 3 \ Assemblies \ System.Web.Mvc.dll” en el Explorador de Windows, en la máquina de comstackción veo la versión 3.0.0.0.

Cuando miro las propiedades en la máquina dev, veo la versión 3.0.50813.1.

Lo que necesito es una forma de cambiar la forma en que compilo y ejecuto para que pueda comstackr y ejecutar independientemente de cuál de estas dos DLL se instalen en el marco .NET 3.0.

Ideas?

Lo que he intentado no funcionó.

Primer bash: si falta el ensamblaje, agréguelo. He borrado la antigua referencia faltante. Luego copié la DLL de la carpeta “ASP.NET MVC3 \ Assemblies”, en una carpeta de mi proyecto. Establézcalo como “Copiar siempre”, y agregue como referencia.

Con eso, el proyecto se comstackría en VS2010, pero cuando intentaba precomstackr las páginas con aspnet_compiler, recibí advertencias:

(0): warning CS1702: Assuming assembly reference 'System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' matches 'System.Web.Mvc, Version=3.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35', you may need to supply runtime policy 

Hasta ahora, he sido capaz de evitar comprender las políticas de tiempo de ejecución, pero intenté agregar esto, en el web.config:

         

Lo intenté de nuevo, y obtuve las mismas advertencias.

Mi pregunta es: ¿Todavía tengo un problema? ¿O lo resolveré, a pesar de las advertencias?

Obtenga la última versión de MVC3 a través de NuGet. Abra su proyecto en Dev Studio. Abra la pestaña Consola del administrador de paquetes en la parte inferior de Dev Studio. Luego usa este comando:

 PM> Install-Package Microsoft.AspNet.Mvc -Version 3.0.50813.1 

Si hace clic en la tecla de tabulación después de “-Versión”, obtendrá una lista de todas las versiones disponibles.

Si tiene una versión anterior de NuGet, puede recibir un error que indica que debe actualizarla. Si es así, abra Herramientas-> Administrador de extensiones para instalar la última versión de NuGet. Tenga en cuenta que deberá ejecutar Dev Studio como administrador antes de poder instalar NuGet.

La instalación de MVC3 debería actualizar Web.config en su proyecto.

       

MVC 5

C: \ Archivos de progtwig (x86) \ Microsoft ASP.NET \ ASP.NET Web Stack 5 \ Packages \ Microsoft.AspNet.Mvc.5.0.0 \ lib \ net45 \ System.Web.Mvc.dll

MVC 4

C: \ Archivos de progtwig (x86) \ Microsoft ASP.NET \ ASP.NET MVC 4 \ Assemblies \ System.Web.Mvc.dll

MVC 3

C: \ Archivos de progtwig (x86) \ Microsoft ASP.NET \ ASP.NET MVC 3 \ Assemblies \ System.Web.Mvc.dll

MVC 2

C: \ Archivos de progtwig (x86) \ Microsoft ASP.NET \ ASP.NET MVC 2 \ Assemblies \ System.Web.Mvc.dll

¿Dónde puedo encontrar dll System.Web.MVC en un sistema donde está instalado MVC 3?

La forma más sencilla de resolver este problema es instalar ASP.NET MVC 3 desde el instalador de plataformas web.

introduzca la descripción de la imagen aquí

http://www.microsoft.com/web/downloads/

O usando el comando Nuget

 Install-Package Microsoft.AspNet.Mvc -Version 3.0.50813.1 

Tengo la misma situación: Visual Studio 2010, no tengo instalado NuGet y una aplicación ASP.NET que usa System.Web.Mvc versión 3.

Lo que funcionó para mí, fue configurar cada proyecto de C # que usa System.Web.Mvc, ir a Referencias en el Explorador de soluciones y establecer las propiedades en System.Web.Mvc, con Copiar Local a verdadero, y Versión específica a falso – el último hizo que el campo Versión mostrara la versión actual en esa máquina.

En mi caso tenía todas las referencias adecuadas en mi proyecto. Descubrí que al construir la solución, los paquetes nuget se restauraban automáticamente.

La muestra mvcmusicstore.codeplex.com abierta en vs2015 perdió algunas referencias, una de ellas System.web.mvc.

La solución para esto fue eliminarlo de las referencias y agregar una referencia: elija Extentions en Assemblies, allí puede encontrar y agregar System.Web.Mvc.

(Los otros ensamblajes que agregué con los paquetes nuget.)

Si hubiera tenido este problema en vs2017, ya obtuve MVC a través de nuget, pero System.Web.Mvc no apareció en la lista “Conjuntos” en “Agregar referencia”.

La solución fue seleccionar “Extensiones” en “Conjuntos” en el cuadro de diálogo “Agregar referencia”.

Solo en caso de que alguien sea una posición en la que tenga el mismo error. En mi caso, degradar a Microsoft.AspNet.Mvc y luego actualizarlo nuevamente me ayudó. Tuve este problema después de instalar Glimpse y eliminarlo. System.Web.Mvc fue mal referenciado de alguna manera, limpiar la solución o reconstruir no funcionó en mi caso. Solo inténtalo si ninguna de las respuestas anteriores funciona para ti.

En VS 2017 limpié la solución, la reconstruí y la reparé.