2009-06-02 13 views
6

Cercando di eseguire il debug nell'origine di ASP.NET MVC 1.0, ho seguito le istruzioni come these, in pratica rimuovo il riferimento a system.web.mvc dal mio progetto web e aggiungo il progetto di origine scaricato.Debug di origine MVC ASP.NET?

Ora, ho questo problema,

Il tipo 'System.Web.Mvc.FormMethod' esiste in entrambi i 'c: \ Windows \ assembly \ GAC_MSIL \ System.Web.Mvc \ 1.0 .0.0__31bf3856ad364e35 \ System.Web.Mvc.dll 'e nel mio AppData \ Local \ Temp \ Temporary ASP.NET Files \ root \ dbcbb149 \ 897fc019 \ assembly \ dl3 \ 796c00fb \ f345f2d6_abe3c901 \ System.Web.Mvc.DLL '

Ho provato a commentare quanto segue da web.config

<add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 

ma darà un errore di differenza

Il tipo 'System.Web.Mvc.Controller' è definito in un assembly che non è riferimento. È necessario aggiungere un riferimento all'assemblaggio 'System.Web.Mvc, Versione = 1.0.0.0, Cultura = neutra, PublicKeyToken = 31bf3856ad364e35'.

Qualcuno potrebbe aiutare su cosa sta andando male e come risolverlo. Grazie mille!

Ray.

+0

Sembra che si disponga di una copia nel Raccoglitore e in GAC. Disponi di una copia di System.Web.Mvc nella cartella bin (assicurati di visualizzare tutti i file) –

+0

Faccio riferimento al progetto sorgente, quindi, dopo averlo compilato, ci sarà una copia nel mio contenitore. –

risposta

1

Gli assembly system.web.mvc nel GAC? potrebbe essere necessario rimuoverli ... questo naturalmente potrebbe rovinare i progetti futuri in quanto i modelli di progetto presumibilmente presumeranno che siano nel gac.

Si potrebbe anche provare a utilizzare la funzione <assemblyBinding> come described here per indirizzare il materiale mvc alla versione che si sta utilizzando.

+0

Sì, ho installato mvc utilizzando il PI Web, quindi è in GAC. C'è un modo più semplice per risolvere questo. Non voglio davvero rimuoverlo da GAC ​​o disinstallarlo. –

1

Supponendo che il nome di assembly completo per quello a cui si sta eseguendo il collegamento sia diverso da quello in GAC, utilizzare <QualifyAssembly> element e specificare l'assembly a cui si sta effettivamente collegando. In caso contrario, modifica la sorgente locale per modificare l'assembly MVC che stai creando in 1.0.0.1, quindi è diverso.

Modifica: ricontrolla l'howto collegato. Ha funzionato per me.

  1. rimosso il riferimento system.web.mvc nel mio progetto.
  2. Aggiunto il progetto System.Web.Mvc dall'origine.
  3. Commentare il riferimento System.Web.Mvc nel web.config del mio progetto.
  4. ha modificato il file System.we.b.mvc /Views/Web.Config come indicato in howto.
  5. Ran senza problemi.
+1

Non so come funziona, hai esattamente la linea che potrei usare per fare questo lavoro. Ho provato a cambiarlo in 1.0.0.1, non ha funzionato davvero. –

+0

Vedere la risposta di Richard e probabilmente sarà necessario aggiornare le informazioni sull'assembly per il progetto mvc in modo che la versione sia diversa da quella nel GAC. – hometoast

+0

Secondo l'articolo di codeville assicuratevi che il riferimento del vostro progetto a system.web.mvc sia impostato "Copia locale" su "vero" – hometoast

0

per la sezione di montaggio qualificarsi volete qualcosa di simile (lo facciamo per SQLite montaggio):

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <qualifyAssembly partialName="System.Data.SQLite" fullName="System.Data.SQLite, Version=1.0.60.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 
    </assemblyBinding> 
    </runtime> 
0

Date un'occhiata a questo articolo per la guida completa su come setup MVC source.

Ci sono due file web.config che è necessario aggiornare. Uno si trova nella cartella del progetto MVC e uno si trova nella cartella Visualizzazioni. Probabilmente hai dimenticato di aggiornare quest'ultimo. Altrimenti seguendo l'articolo di cui sopra dovrebbe farlo.

+0

letto e seguito, il web.config nella mia vista è diverso da quello nell'articolo –

0

Una versione leggermente più completa di istruzioni Steve Sandersons can be found here.

Spiega come è possibile includere anche MVC Futures nel debug.