[Archived] Tooling that allows compilation of MVC Razor views as part of build and publish. Project moved to https://github.com/aspnet/AspNetCore
Перейти к файлу
Nate McMaster aa8c8d6064 Fixup precompilation tests failures introduced by adding Directory.Build.props 2018-01-19 12:15:59 -08:00
build Update build tools and dependency versions 2018-01-18 16:42:54 -08:00
src Update how PackageReference versions are set 2017-10-09 11:11:31 -07:00
test Update how PackageReference versions are set 2017-10-09 11:11:31 -07:00
testapps Fixup precompilation tests failures introduced by adding Directory.Build.props 2018-01-19 12:15:59 -08:00
tools/Microsoft.AspNetCore.Mvc.Razor.ViewCompilation-x86 Update how PackageReference versions are set 2017-10-09 11:11:31 -07:00
.gitattributes Initial commit 2016-08-16 15:04:46 -07:00
.gitignore Update build tools to 2.0.2-rc1-15526 and dependencies to 2.0.1-rtm-105 2017-10-13 13:12:19 -07:00
.travis.yml Adding libunwind8 to .travis.yml 2017-06-26 09:40:12 -07:00
CONTRIBUTING.md Initial commit 2016-08-16 15:04:46 -07:00
Directory.Build.props Update build tools and dependency versions 2018-01-18 16:42:54 -08:00
Directory.Build.targets Update build tools and dependency versions 2018-01-18 16:42:54 -08:00
LICENSE.txt Update LICENSE.txt text 2017-07-03 14:07:18 -07:00
NuGet.config Use MSBuild to set NuGet feeds instead of NuGet.config 2017-10-02 14:13:22 -07:00
NuGetPackageVerifier.json Remove docs exclusion from NuGetPackageVerifier.json. 2017-06-20 10:43:41 -07:00
README.md Add some details about view compilation options (#156) 2017-06-30 15:18:09 -07:00
RazorViewCompilation.sln Remove SimpleAppDesktopOnly 2017-06-30 15:14:26 -07:00
appveyor.yml travis + appveyor 2017-06-08 14:23:20 -07:00
build.cmd Update bootstrappers 2017-09-19 15:27:17 -07:00
build.ps1 Update build tools to 2.0.2-rc1-15526 and dependencies to 2.0.1-rtm-105 2017-10-13 13:12:19 -07:00
build.sh Update build tools to 2.0.2-rc1-15526 and dependencies to 2.0.1-rtm-105 2017-10-13 13:12:19 -07:00
korebuild-lock.txt Fixup precompilation tests failures introduced by adding Directory.Build.props 2018-01-19 12:15:59 -08:00
korebuild.json Update build tools and dependency versions 2018-01-18 16:42:54 -08:00
version.props Bump version to 2.0.3 2018-01-10 14:57:42 -08:00

README.md

ASP.NET Core MVC Precompilation

AppVeyor: AppVeyor Travis: Travis

The Razor syntax provides a fast, terse, clean, and lightweight way to combine server code with HTML to create dynamic web content. This repo contains tooling that allows compilation of MVC Razor views as part of build and publish.

Installation and usage

Referencing the Microsoft.AspNetCore.Mvc.Razor.ViewCompilation package

  • If you're targeting ASP.NET Core 2.0 or higher on netcoreapp2.0, a reference to the Microsoft.AspNetCore.Mvc.Razor.ViewCompilation package is added by Microsoft.AspNetCore.All and you do not need to explicitly reference it.
  • For desktop targeting projects or projects targeting ASP.NET Core 1.x, add a package reference to the appropriate version of Microsoft.AspNetCore.Mvc.Razor.ViewCompilation in your project:
<ItemGroup>
  <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="1.1.1" />
</ItemGroup>

Enabling view compilation

View compilation as part of publishing is enabled by default if you're referencing the Web SDK (Microsoft.NET.Sdk.Web) that ships with .NET Core 2.0 or later versions. For older versions, add the MvcRazorCompileOnPublish` property to your project:

<PropertyGroup>
  <MvcRazorCompileOnPublish>true</MvcRazorCompileOnPublish>
</PropertyGroup>

Alternatively, you may wire up the MvcRazorPrecompile target to a build event:

 <Target 
    Name="PrecompileRazorViews" 
    AfterTargets="Build"
    DependsOnTargets="MvcRazorPrecompile" />

Options

Some aspects of view compilation can be configured by editing the project:

  • MvcRazorCompileOnPublish: Setting this to false turns off all functions of view compilation that are enabled as part of publishing.

  • MvcRazorExcludeViewFilesFromPublish: Enabling MvcRazorCompileOnPublish prevents .cshtml files from being published. This option disables this behavior. Note: ASP.NET Core Mvc does not support updateable precompiled views. Any modifications to published cshtml files will be ignored if a precompiled view is discovered for that path.

  • MvcRazorExcludeRefAssembliesFromPublish: Enabling MvcRazorCompileOnPublish causes the target to prevent the refs directory from being published. This option disables this behavior. Note: Setting this option is useful if your application is using a mix of precompiled and runtime compiled views.

  • MvcRazorFilesToCompile: An item group that specifies view files to compile. By default this includes all .cshtml files marked as content.

This project is part of ASP.NET Core. You can find samples, documentation and getting started instructions for ASP.NET Core at the Home repo.