Domanda È possibile compilare le visualizzazioni del rasoio?


Mi chiedevo se le viste del rasoio potrebbero essere compilate, come le viste basate su WebForm?

Ha senso anche compilare le visualizzazioni Razor e perché qualcuno dovrebbe volerlo fare?


44
2018-03-31 12:48


origine


risposte:


Si, puoi. Dai un'occhiata al seguente post: Compila il tuo asp.net mvc Razor visualizzazioni in una dll separata

È una guida "passo-passo" su come compilare le visualizzazioni del rasoio in una dll separata. Non so se questo è ciò che miri a fare ma sicuramente ti porterà nella giusta direzione.


23
2018-03-31 13:09



Modificare:

Ecco un post sul blog su questo argomento:

Come rilevare gli errori delle nostre viste MVC ASP.NET in fase di compilazione

Per rendere le tue viste da compilare, fai quanto segue;

  1. Scarica il tuo progetto di diritto facendo clic sul progetto sulla soluzione explorer in VS e facendo clic su scarica progetto
  2. tasto destro del mouse sul progetto che ha stato convertito in non disponibile progetto e fare clic su "Modifica" your_project_name.csproj "(quello sarebbe .vbproj se il tuo progetto è un progetto VB)
  3. vedere il seguente codice;

    <!--There some lines of code here and I deleted them to get to the point quickly-->
    
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <MvcBuildViews>false</MvcBuildViews>
    

  4. cambia il valore del tag MvcBuildViews da false a true

  5. dopodiché salvalo e ricarica il tuo progetto.

dopo aver creato la tua soluzione per compilarla, vedrai che anche la tua vista sarà compilata.

NOTA: per testarlo, spezza il codice in una delle tue view di proposito e prova a costruire. vedrai che riceverai un messaggio di errore.


54
2017-11-20 11:37



Il controllo MvcBuildViews è eccellente, ma aggiunge una penalità di 5-10 secondi per la creazione della tua app Web, se è abbastanza complessa. Non memorizza nella cache l'output della compilation, quindi esegue una compilazione completa di tutte le visualizzazioni ogni volta.

Ho trovato un buon compromesso seguendo il consiglio sopra e aggiungendo un attributo Condition:

<MvcBuildViews Condition=" '$(Configuration)' == 'Release' ">true</MvcBuildViews>

Ci aspettiamo che ReSharper evidenzi comunque gli errori nelle viste e che lo sviluppatore possa sempre costruire nella configurazione di rilascio come test: abbiamo uno script "preflight" che gli sviluppatori eseguono in modo che possano facilmente assicurarsi che gli obiettivi dei pacchetti funzionino e così on - e se tutto ciò non riesce, il server di build lo prenderà.

Forse questo trucco è ovvio, ma ho iniziato solo a conoscere correttamente msbuild piuttosto che scrivere script Powershell per queste attività. Spero che questo sia utile a qualcuno.


29
2018-03-31 12:51



Si è possibile. In effetti, il miglior esempio che posso pensare sarebbe un motore di template di email. Se si compila e si memorizza nella cache il modello, è possibile rimuovere rapidamente le e-mail senza dover ricominciare da capo l'analisi.

Questo è un buon esempio dell'utilizzo di Razor anche al di fuori di MVC.


1