2013-06-07 13 views
6

Ho iniziato con un semplice sito MVC utilizzando NancyFx con visualizzazioni Razor (.cshtml) e Nancy.Hosting.Aspnet, utilizzando IIS Express. Ora ho adattato il progetto a un servizio di self-hosting utilizzando Nancy.Hosting.Self (e TopShelf).Copia Razor-Views per il self-hosting NancyFx?

Tuttavia, per fornire le Visualizzazioni, sembra che ho bisogno di cambiare i loro oggetti di None & Do not copy a Content & Copy if newer, in modo che vengono copiati a .\bin\Debug\.

Una conseguenza è che le modifiche alle Visualizzazioni non verranno visualizzate/aggiornate fino al riavvio. Anche quando si lavora in debug-mode, where caching is disabled by default. So che questo è solo un fastidio minore, ma è ancora un fastidio, ed è bello poter provare (cs) i cambiamenti HTML subito. Quindi mi chiedevo se ci fosse un modo per risolvere questo problema, ad es. per evitare di dover impostare i file su Copy if newer?

risposta

6

È possibile fornire un custom root path che guarda direttamente la cartella di vista nel progetto.

+0

Non penso sia molto "carino", avere il percorso radice per indicare il genitore directory (almeno in modalità debug). Ma potrebbe battere il riavvio dopo la modifica. (O modificando i file copiati in '/ bin/Debug 'e spostando le modifiche di nuovo alla fonte.) –

+0

sono d'accordo che non è carina. ho reso le cose più brutte, ma più utili per i cloni, scrivendo il percorso del percorso radice in un file da un evento build (usando una macro per la directory di lavoro corrente) e poi leggendo in quel file in un '#if DEBUG' dichiarazione. Brutto, ma funziona quando il codice non si trova in una cartella specifica. – jrsconfitto

+0

Ecco un [elenco del mio percorso root personalizzato] (https://gist.github.com/jugglingnutcase/5782096) per lo sviluppo. – jrsconfitto

3

Sarà necessario impostare questi valori:

#if DEBUG 
    StaticConfiguration.Caching.EnableRuntimeViewDiscovery = true 
    EnableRuntimeViewUpdates = true 
#endif 
+0

Sì, ma sto parlando di modalità di debug (modificherò la domanda) e [nella cache di debug-mode è disabilitato per impostazione predefinita] (http://stackoverflow.com/a/9534377/422877) . Quindi penso che il problema sia causato da questa copia. Ci sarebbe una diversa impostazione in cui la copiatura non è necessaria? –

+0

risposta aggiornata! – Jon

+0

Grazie per lo sforzo. Ma nel caching in modalità debug è già ** dis ** - abilitato di default. Quindi questo non mi aiuta. –

Problemi correlati