tutorial net mvc espaƱol curso asp c# asp.net .net asp.net-mvc

c# - net - Falta System.web.mvc



curso de mvc 5 asp.net pdf (6)

Tenemos una antigua aplicación web ASP.NET MVC 3, incorporada en VS2010, que no se puede compilar, 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 solución en nuestra máquina de compilación, donde la actualización de seguridad no se ha ejecutado, y abro el cuadro de diálogo de propiedades para References-> System.Web.MVC, se ve muy bien.

La ruta de acceso es C: / Archivos de programa / 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 ejecutó la actualización de seguridad, References-> System.Web.MVC está marcado como faltante. Si lo elimino, y trato de agregarlo usando el cuadro de diálogo Agregar referencia de VS2010, no se muestra.

Pasear por la web me ha llevado a sugerencias sobre la actualización de MVC usando NuGet. No utilizamos NuGet, en nuestros proyectos VS2010, por lo que no parece del todo 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 programa / Microsoft ASP.NET / ASP.NET MVC 3 / Assemblies / System.Web.Mvc.dll" en el Explorador de Windows, en la máquina de compilación veo la versión 3.0.0.0.

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

Lo que necesito es una forma de cambiar la forma en que compilo y corro para que pueda compilar y ejecutar independientemente de cuál de estas dos DLL esté instalada en el marco .NET 3.0.

Ideas?

Lo que he intentado que no funcionó

Primer intento: si falta el ensamblaje, agréguelo. Eliminé la antigua referencia que faltaba. Luego copié el archivo DLL de la carpeta "ASP.NET MVC3 / Assemblies" en una carpeta de mi proyecto. Configúrelo como "Copiar siempre" y añádalo como referencia.

Con eso, el proyecto se compilaría en VS2010, pero cuando intenté precompilar 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 podido evitar las políticas de tiempo de ejecución, pero traté de agregar esto en el archivo web.config:

<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.1" /> </dependentAssembly> </assemblyBinding> </runtime>

Intenté nuevamente, y recibí 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 de 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 "-Version", obtendrá una lista de todas las versiones disponibles.

Si tienes una versión anterior de NuGet, es posible que aparezca un error que indique que debes actualizarla. Si es así, abra Herramientas-> Extension Manager 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 debe actualizar Web.config en su proyecto.

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="0.0.0.0-3.0.0.1" newVersion="3.0.0.1" /> </dependentAssembly> </assemblyBinding>


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.


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

Lo que funcionó para mí fue establecer cada proyecto de C # que utiliza System.Web.Mvc, ir a Referencias en el Explorador de soluciones y establecer propiedades en System.Web.Mvc, con Copy Local en true y Specific Version en false - el último hizo que el campo Versión mostrara la versión actual en esa máquina.


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

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

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


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

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

O usando el comando Nuget

Install-Package Microsoft.AspNet.Mvc -Version 3.0.50813.1


MVC 5

C: / Archivos de programa (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 programa (x86) / Microsoft ASP.NET / ASP.NET MVC 4 / Assemblies / System.Web.Mvc.dll

MVC 3

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

MVC 2

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

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