2009-10-27 10 views
5

He realizado un cambio relativamente simple en el código fuente de MVC 1.0 para corregir un error en DropDownList HtmlHelper (discussed in another question).Instalación de una versión modificada de ASP.NET MVC

Pude reconstruir la solución MVC, ejecuté todas las pruebas, incluida la que había agregado para mostrar el error que estaba solucionando, y construí una nueva DLL.

¿Pero cómo uso eso?

Intenté mover el nuevo MVC dll al proyecto y cambiar todas las referencias del proyecto para señalarlo, pero cuando trato de ejecutar el sitio web de MVC, se lanza una excepción diciendo que hay un conflicto entre mi versión de MVC y el MVC en el GAC.

He intentado utilizar gacutil.exe para eliminar el uno del GAC, pero dice que no puede hacerlo porque haría otro programa (programa de instalación Microsoft? Fallar.

¿Qué tengo que hacer para instalar mi versión de nueva construcción en lugar de la versión "oficial"?

Respuesta

9

Si desea eliminarlo de la GAC ​​sin desinstalar MVC (que incluye las plantillas de Visual Studio que probablemente necesite), debe hacer esto en el registro:

  • encontrar la clave de Registro HKEY_CLASSES_ROOT \ Installer \ Assemblies \ global y busque partida clave con System.Web.Mvc - borrarlo

Ahora usted debería ser capaz de utilizar gacutil.exe para eliminar del sistema. Web.Mvc del GAC, y usted debería poder usar su versión desde su carpeta/bin.

+0

Gracias, Jono, eso fue todo. –

+0

De acuerdo, eso saca MVC del GAC y alivia el conflicto, pero todavía tengo partes del código que intentan cargar esa versión. Específicamente, BuildManger.CreateInstanceFromVirtualPath arroja una excepción diciendo que no puede "cargar MVC versión 1.0.0.0, public token = ... la definición del manifiesto no coincide con la referencia de ensamblaje" He eliminado la referencia de ensamblaje de la web. config y lo reemplazó con un genérico "agregar nombre =" System.Web.Mvc "(sin los detalles). ¿Necesito una redirección de ensamblado, o algo así? ¿Qué más debo hacer para que acepte el nuevo versión en todo el? –

+0

Bien, lo tengo. He cambiado las referencias de ensamblado en la raíz web.config, pero me perdí el hecho de que la carpeta Ver tiene un archivo web.config, y tenía algunas referencias totalmente cualificadas que tenía para cambiar. Una vez que lo hice, funcionó. –

0

¿Qué hay de cambiar el número de versión cuando se compila el marco MVC modificado?

Cuestiones relacionadas