2011-01-16 7 views
7

Estoy tratando de obtener futuros resultados para Mvc3 RTM. No se incluye .dll después de instalar mvc3 desde webPI.MVC3 RTM Futures - Instalación de Microsoft.Web.Mvc

He descargado la fuente y he tratado de construir yo mismo, pero cuando lo dejo caer en mi solución y añadir el espacio de nombres para el web.config en la carpeta Vistas me sale el siguiente error en cada página:

S0012: The type 'System.Web.Mvc.Controller' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null'. 

Supongo que es porque debido a nombres fuertes o algo por el estilo.

¿Cómo me puedo poner en marcha con futuros?

Editar:

1) Puedo estar equivocado, pero a partir de la memoria, cuando se ha descargado e instalado versiones anteriores de MVC, que le daría a un Microsoft.Web.Mvc .dll en el Programa de Archivos/Microsoft ASP. NET/Asp .net MVC2. Con la instalación de WebPI, solo hay System.Web.Mvc.dll en esa ubicación.

2) Definitivamente no es en la GAC ​​... no es el lugar para este conjunto (también he comprobado sólo para asegurarse)

3) El proyecto que no está funcionando es el proyecto de destino. Creé una nueva 'Asp .net Mvc 3 Application', la ejecuté para asegurarme de que funcionaba (lo hizo). Luego agregué una referencia al ensamblaje que construí a partir del código fuente de Mvc 3 y alterné el archivo web.config en la carpeta 'Vistas'.

<system.web.webPages.razor> 
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
<pages pageBaseType="System.Web.Mvc.WebViewPage"> 
    <namespaces> 
    <add namespace="System.Web.Mvc" /> 
    <add namespace="System.Web.Mvc.Ajax" /> 
    <add namespace="System.Web.Mvc.Html" /> 
    <add namespace="System.Web.Routing" /> 
    <add namespace="Microsoft.Web.Mvc" /> 
    </namespaces> 
</pages> 

4) Tan pronto como se quita el elemento de espacio de nombres y la dll, el proyecto vuelve a funcionar.

+0

¿Está utilizando una plantilla de proyecto MVC3 en cualquiera VS o VWD ? ¿Qué proyecto obtiene el error, el proyecto objetivo o el proyecto de futuros? Cuando dice que no se incluyó un dll en la instalación de MVC3, ¿tiene todo el soporte de herramientas para la versión de VS que esté utilizando? Es posible que deba reinstalar. – kim3er

Respuesta

10

Puede descargar el archivo source code of MVCContrib y dentro de la carpeta bin/AspNetMvc encontrará el ensamblaje Microsoft.Web.Mvc que se compila contra ASP.NET MVC 3.0.

+1

Eso hizo el truco, gracias! –

+0

Santa vaca, no puedo CREER que esta es la única forma de obtener esto ... Muchas gracias – CubanX

+0

Acabo de descargarlo, no hay Microsoft.Web.Mvc.dll allí – Ash

-1

es necesario incluir el montaje en el web.config, así como el espacio de nombres - si usted empieza con un proyecto MVC2 es probable que tenga una línea de allí como

que tendrá que cambiar a 3,0, por supuesto, , y es posible que también deba actualizar la redirección de enlace.

Cuando dice que no hay dll incluido, ¿ha revisado el gac? Si está allí, no necesita un archivo localmente para que el sistema lo encuentre en función de un nombre seguro.

Si ha creado desde el origen y por lo tanto su versión tiene un nombre fuerte diferente, puede tener problemas con componentes de terceros que hacen referencia a una compilación oficial, pero siempre que el nombre en la configuración web coincida debería estar bien para el cosas centrales Deberá agregar su propia clave para que el token no sea nulo.

0

Cuando construya el proyecto MvcFutures tendrá que reemplazar las referencias de System.Web.Mvc y System.Web.WebPages por las de GAC; de lo contrario, tendrá que construir su proyecto de destino contra el código fuente de Mvc que descargado

Ambas opciones deberían funcionar bien para usted.

Cuestiones relacionadas