[.net] La actualización de Windows provocó que MVC3 y MVC4 dejaran de funcionar



Answers

Tuvimos que tocar manualmente cada .csproj para actualizar la versión de 4.0.0.0 a 4.0.0.1 para poner en marcha nuestras construcciones. Muy doloroso

Las nuevas referencias deberían verse así:

<Reference Include="System.Web.Mvc, Version=4.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
Question

¿Soy el único que instalé Windows Update (8.1) el 15 de octubre y, de repente, MVC dejó de funcionar debido a esta advertencia?

Advertencia 1 No se pudo resolver esta referencia. No se pudo ubicar el ensamblado "System.Web.Mvc, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35, processorArchitecture = MSIL". Verifique para asegurarse de que el ensamblaje exista en el disco. Si el código requiere esta referencia, es posible que obtenga errores de compilación.

Parece que esta actualización de Windows instala una versión más nueva de MVC con la versión número 4.0.0.1 y elimina la versión anterior de la carpeta de archivos de programa.

¿Alguien sabe cómo solucionar esto sin rastrear para cada proyecto?




Para un proyecto web, es posible que deba actualizar la configuración en web.config también:

  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.1"/>
  </dependentAssembly>



Debe cambiar todas las referencias a System.Web.Mvc dentro de su solución. Simplemente elimínelos y agregue la nueva versión 4.0.0.1.

También en las propiedades, cambie la copy local a verdadera.

Y en el web.config agregue el enlace de la assambly para apuntar a la nueva versión de mvc:

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



Por favor, mira este blog, la forma recomendada es actualizar el correspondiente paquete NuGet:

http://blogs.msdn.com/b/webdev/archive/2014/10/16/microsoft-asp-net-mvc-security-update-broke-my-build.aspx

Citar:

El problema se puede resolver implementando una de las siguientes soluciones:

  1. (Preferido) Instale Microsoft.AspNet.Mvc desde la galería NuGet (esto instalará una redirección de enlace en su web.config). Puede hacerlo desde el administrador de paquetes NuGet o la consola NuGet dentro de Visual Studio:

    Install-Package Microsoft.AspNet.Mvc -Version -Project PROJECTNAME

    Versión MVC 4: 4.0.40804.0

    Versión MVC 3: 3.0.50813.1

  2. Actualice manualmente la referencia a System.Web.MVC.dll (no use la que está en el GAC).

    Pruebe el cuadro de diálogo Agregar referencia -> Ensambles -> Extensiones.




Related