Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Razor soubory s příponou .cshtml se kompilují v době sestavení i publikování pomocí Razor sady SDK. Kompilace modulu runtime může být volitelně povolena konfigurací projektu.
Poznámka:
Kompilace za běhu:
- Součásti aplikací se nepodporují RazorBlazor .
- Nepodporuje globální direktivy using.
- Nepodporuje implicitní použití direktiv.
- Zakáže Opětovné načítání za provozu .NET.
- Doporučuje se pro vývoj, ne pro produkční prostředí.
Razor kompilace
Sada SDK ve výchozím nastavení Razor povoluje kompilaci Razor souborů v době sestavení a publikování. Pokud je tato možnost povolená, kompilace za běhu doplňuje kompilaci sestavení a umožňuje Razor aktualizaci souborů, pokud jsou upravovány, když je aplikace spuštěná.
Aktualizace Razor zobrazení a Razor stránek během vývoje v době, kdy je aplikace spuštěná, se podporuje také pomocí rozhraní .NET Opětovné načítání za provozu.
Poznámka:
Pokud je tato možnost povolená, kompilace modulu runtime zakáže rozhraní .NET Opětovné načítání za provozu. Při vývoji doporučujeme místo kompilace za běhu používat Opětovné načítání za provozuRazor.
Povolení kompilace modulu runtime pro všechna prostředí
Povolení kompilace modulu runtime pro všechna prostředí:
Nainstalujte Microsoft.AspNetCore.Mvc.Razor. Balíček NuGet runtimeCompilation
VoláníAddRazorRuntimeCompilation:
Program.csvar builder = WebApplication.CreateBuilder(args); builder.Services.AddRazorPages() .AddRazorRuntimeCompilation();
Podmíněné povolení kompilace modulu runtime
Kompilaci modulu runtime je možné povolit podmíněně, což zajišťuje, že publikovaný výstup:
- Používá zkompilovaná zobrazení.
- Nepovoluje sledovací proces souborů v produkčním prostředí.
Povolení kompilace modulu runtime pouze pro vývojové prostředí:
Nainstalujte Microsoft.AspNetCore.Mvc.Razor. Balíček NuGet runtimeCompilation
Volání AddRazorRuntimeCompilation ,
Program.cskdyž je aktuální prostředí nastavené na Vývoj:var builder = WebApplication.CreateBuilder(args); var mvcBuilder = builder.Services.AddRazorPages(); if (builder.Environment.IsDevelopment()) { mvcBuilder.AddRazorRuntimeCompilation(); }
Kompilaci modulu runtime lze také povolit pomocí hostujícího spouštěcího sestavení. Povolení kompilace modulu runtime ve vývojovém prostředí pro konkrétní spouštěcí profily:
- Nainstalujte Microsoft.AspNetCore.Mvc.Razor. Balíček NuGet runtimeCompilation
- Upravte oddíl profilu
environmentVariablesspuštění vlaunchSettings.json:Ověřte, že
ASPNETCORE_ENVIRONMENTje nastavená hodnota"Development".Nastavte
ASPNETCORE_HOSTINGSTARTUPASSEMBLIESna hodnotu"Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation". Následující příkladlaunchSettings.jsonumožňuje kompilaci modulu runtime proViewCompilationSampleprofily spuštění aIIS Expressprofily spuštění:{ "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "http://localhost:7098", "sslPort": 44332 } }, "profiles": { "ViewCompilationSample": { "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, "applicationUrl": "https://localhost:7173;http://localhost:5251", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" } }, "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" } } } }
S tímto přístupem nejsou potřeba žádné změny kódu v Program.cs. Za běhu ASP.NET Core vyhledá atribut HostingStartup na úrovni sestavení v Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilationsouboru . Atribut HostingStartup určuje spouštěcí kód aplikace, který se má spustit a který spouštěcí kód umožňuje kompilaci modulu runtime.
Povolení kompilace modulu runtime pro knihovnu Razor tříd
Představte si scénář, ve kterém Razor projekt Pages odkazuje na knihovnu Razor tříd (RCL) s názvem MyClassLib. Seznam RCL obsahuje _Layout.cshtml soubor využívaný projekty MVC a Razor Pages. Chcete-li povolit kompilaci modulu runtime pro _Layout.cshtml soubor v tomto seznamu RCL, proveďte v projektu Pages následující změny Razor :
Povolte kompilaci za běhu podle pokynů v podmíněné kompilaci modulu runtime.
Konfigurovat MvcRazorRuntimeCompilationOptions v
Program.cs:var builder = WebApplication.CreateBuilder(args); builder.Services.AddRazorPages(); builder.Services.Configure<MvcRazorRuntimeCompilationOptions>(options => { var libraryPath = Path.GetFullPath( Path.Combine(builder.Environment.ContentRootPath, "..", "MyClassLib")); options.FileProviders.Add(new PhysicalFileProvider(libraryPath)); });Předchozí kód vytvoří absolutní cestu k seznamu RCL MyClassLib . Rozhraní API PhysicalFileProvider slouží k vyhledání adresářů a souborů v této absolutní cestě.
PhysicalFileProviderNakonec se instance přidá do kolekce zprostředkovatelů souborů, která umožňuje přístup k souborům seznamu RCL.cshtml.
Další materiály
Razor soubory s příponou .cshtml se kompilují v době sestavení i publikování pomocí Razor sady SDK. Kompilace modulu runtime může být volitelně povolena konfigurací projektu.
Razor kompilace
Sada SDK ve výchozím nastavení Razor povoluje kompilaci Razor souborů v době sestavení a publikování. Pokud je tato možnost povolená, kompilace za běhu doplňuje kompilaci sestavení a umožňuje Razor aktualizaci souborů, pokud jsou upravovány.
Povolení kompilace za běhu při vytváření projektu
Šablony Razor projektů Pages a MVC obsahují možnost povolit kompilaci modulu runtime při vytváření projektu. Tato možnost se podporuje v ASP.NET Core 3.1 nebo novějším.
V dialogovém okně Vytvořit novou webovou aplikaci ASP.NET Core:
- Vyberte šablonu projektu webová aplikace nebo webová aplikace (Model-View-Controller ).
- Zaškrtněte políčko Povolit Razor kompilaci modulu runtime.
Povolení kompilace modulu runtime v existujícím projektu
Povolení kompilace modulu runtime pro všechna prostředí v existujícím projektu:
Nainstalujte Microsoft.AspNetCore.Mvc.Razor. Balíček NuGet runtimeCompilation
Aktualizujte metodu projektu
Startup.ConfigureServicestak, aby zahrnovala volání AddRazorRuntimeCompilation. Příklad:public void ConfigureServices(IServiceCollection services) { services.AddRazorPages() .AddRazorRuntimeCompilation(); // code omitted for brevity }
Podmíněné povolení kompilace modulu runtime v existujícím projektu
Kompilaci modulu runtime je možné povolit tak, aby byla dostupná pouze pro místní vývoj. Podmíněným povolením tímto způsobem zajistíte, že publikovaný výstup:
- Používá zkompilovaná zobrazení.
- Nepovoluje sledovací proces souborů v produkčním prostředí.
Povolení kompilace modulu runtime pouze ve vývojovém prostředí:
- Nainstalujte Microsoft.AspNetCore.Mvc.Razor. Balíček NuGet runtimeCompilation
- Upravte oddíl profilu
environmentVariablesspuštění vlaunchSettings.json:- Ověřte
ASPNETCORE_ENVIRONMENT, že je nastavená hodnota"Development". - Nastavte
ASPNETCORE_HOSTINGSTARTUPASSEMBLIESna hodnotu"Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation".
- Ověřte
V následujícím příkladu je kompilace modulu runtime povolena ve vývojovém prostředí pro IIS Express profily a RazorPagesApp spouštěcí profily:
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:57676",
"sslPort": 44364
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
}
},
"RazorPagesApp": {
"commandName": "Project",
"launchBrowser": true,
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
}
}
}
}
Ve třídě projektu Startup nejsou potřeba žádné změny kódu. Za běhu ASP.NET Core vyhledá atribut HostingStartup na úrovni sestavení v Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilationsouboru . Atribut HostingStartup určuje spouštěcí kód aplikace, který se má spustit. Tento spouštěcí kód umožňuje kompilaci modulu runtime.
Povolení kompilace modulu runtime pro knihovnu Razor tříd
Představte si scénář, ve kterém Razor projekt Pages odkazuje na knihovnu Razor tříd (RCL) s názvem MyClassLib. Seznam RCL obsahuje _Layout.cshtml soubor, který spotřebovávají všechny projekty MVC a Razor Pages vašeho týmu. Chcete povolit kompilaci modulu runtime pro _Layout.cshtml soubor v daném seznamu RCL. V projektu Pages proveďte následující změny Razor :
Povolte kompilaci modulu runtime podle pokynů v tématu Podmíněně povolte kompilaci modulu runtime v existujícím projektu.
Konfigurace možností kompilace modulu runtime v
Startup.ConfigureServices:public void ConfigureServices(IServiceCollection services) { services.AddRazorPages(); services.Configure<MvcRazorRuntimeCompilationOptions>(options => { var libraryPath = Path.GetFullPath( Path.Combine(HostEnvironment.ContentRootPath, "..", "MyClassLib")); options.FileProviders.Add(new PhysicalFileProvider(libraryPath)); }); }V předchozím kódu je vytvořena absolutní cesta k myClassLib RCL. Rozhraní API PhysicalFileProvider slouží k vyhledání adresářů a souborů v této absolutní cestě.
PhysicalFileProviderNakonec se instance přidá do kolekce zprostředkovatelů souborů, která umožňuje přístup k souborům seznamu RCL.cshtml.