2011-01-16 9 views
7

Sto cercando di ottenere i futuri in esecuzione per Mvc3 RTM. Non c'è nessun dll incluso dopo aver installato mvc3 da webPI.MVC3 RTM Futures - Installazione di Microsoft.Web.Mvc

Ho scaricato la fonte e ho cercato di costruire da solo, ma quando mi calo nella mia soluzione e aggiungi lo spazio dei nomi per il web.config nella cartella Visualizzazioni ottengo il seguente errore in ogni pagina:

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'. 

Immagino sia perché a causa di un nome forte o qualcosa del genere.

Come posso iniziare a lavorare con i futures?

Edit:

1) Potrei sbagliarmi, ma dalla memoria, quando è stato scaricato e installato le versioni precedenti di MVC, si darebbe un Microsoft.Web.Mvc dll in File Programma/Microsoft ASP. NET/Asp .net MVC2. Con l'installazione WebPI, c'è solo System.Web.Mvc.dll in quella posizione.

2) Non è sicuramente nel GAC ... non è il posto per questa assemblea (Ho anche controllato solo per assicurarsi che)

3) Il progetto che non funziona è il progetto di destinazione. Ho creato una nuova 'Asp .net Mvc 3 Application', l'ho eseguita per assicurarmi che funzionasse (lo ha fatto). Poi ho aggiunto un riferimento all'assembly che ho creato dal codice sorgente di Mvc 3 e ho modificato il web.config nella cartella 'Views'.

<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) Non appena posso rimuovere l'elemento dello spazio dei nomi e il dll, il progetto funziona di nuovo.

+0

Si utilizza un modello di progetto MVC3 sia in VS o VWD ? Quale progetto sta ricevendo l'errore, il progetto target o il progetto futures? Quando dici che non c'era una dll inclusa nell'installazione di MVC3, hai tutto il supporto per il tooling per qualsiasi versione di VS che stai utilizzando? Potrebbe essere necessario reinstallare. – kim3er

risposta

10

È possibile scaricare source code of MVCContrib e all'interno della cartella bin/AspNetMvc si trova l'assembly Microsoft.Web.Mvc compilato con ASP.NET MVC 3.0.

+1

Questo ha fatto il trucco, grazie! –

+0

Holy cow, non posso CREDERE che questo è l'unico modo per ottenere questo ... Grazie mille – CubanX

+0

Appena scaricato, non c'è Microsoft.Web.Mvc.dll lì – Ash

-1

è necessario includere l'assemblea nel web.config, così come lo spazio dei nomi - si è partiti con un progetto MVC2 probabilmente dispone di una linea in là come

che dovranno cambiare a 3,0 naturalmente e potrebbe anche essere necessario aggiornare il reindirizzamento dell'associazione.

Quando dici che non ci sono DLL incluse, hai controllato il gac? Se è presente, non è necessario localmente un file perché il sistema lo trovi basato sul nome sicuro.

Se è stato creato dal sorgente e quindi la versione ha un nome diverso, è possibile che si verifichino problemi con componenti di terze parti che fanno riferimento a una build ufficiale, ma finché il nome nella configurazione Web corrisponde, si dovrebbe essere ok per roba di base. Dovrai aggiungere la tua chiave in modo che il token non sia nullo.

0

Quando si genera il progetto MvcFutures, è necessario sostituire i riferimenti di System.Web.Mvc e System.Web.WebPages a quelli in GAC altrimenti sarà necessario creare il progetto di destinazione con il codice sorgente Mvc che si scaricato.

Entrambe le opzioni dovrebbero funzionare correttamente.