Události
Mistrovství Světa v Power BI DataViz
14. 2. 16 - 31. 3. 16
Se 4 šance na vstup, můžete vyhrát konferenční balíček a udělat to na LIVE Grand Finale v Las Vegas
Další informaceTento prohlížeč se už nepodporuje.
Upgradujte na Microsoft Edge, abyste mohli využívat nejnovější funkce, aktualizace zabezpečení a technickou podporu.
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:
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í:
Nainstalujte Microsoft.AspNetCore.Mvc.Razor. Balíček NuGet runtimeCompilation
VoláníAddRazorRuntimeCompilation:Program.cs
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazorPages()
.AddRazorRuntimeCompilation();
Kompilaci modulu runtime je možné povolit podmíněně, což zajišťuje, že publikovaný výstup:
Povolení kompilace modulu runtime pouze pro vývojové prostředí:
Nainstalujte Microsoft.AspNetCore.Mvc.Razor. Balíček NuGet runtimeCompilation
Volání AddRazorRuntimeCompilation , Program.cs
když 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:
environmentVariables
spuštění v launchSettings.json
: Ověřte, že ASPNETCORE_ENVIRONMENT
je nastavená hodnota "Development"
.
Nastavte ASPNETCORE_HOSTINGSTARTUPASSEMBLIES
na hodnotu "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
. Následující příklad launchSettings.json
umožňuje kompilaci modulu runtime pro ViewCompilationSample
profily spuštění a IIS Express
profily 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.RuntimeCompilation
souboru . 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.
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ě. PhysicalFileProvider
Nakonec se instance přidá do kolekce zprostředkovatelů souborů, která umožňuje přístup k souborům seznamu RCL.cshtml
.
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.
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.
Š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 a novějších verzích.
V dialogovém okně Vytvořit novou webovou aplikaci ASP.NET Core:
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.ConfigureServices
tak, aby zahrnovala volání AddRazorRuntimeCompilation. Příklad:
public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages()
.AddRazorRuntimeCompilation();
// code omitted for brevity
}
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:
Povolení kompilace modulu runtime pouze ve vývojovém prostředí:
environmentVariables
spuštění v launchSettings.json
: ASPNETCORE_ENVIRONMENT
, že je nastavená hodnota "Development"
.ASPNETCORE_HOSTINGSTARTUPASSEMBLIES
na hodnotu "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
.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.RuntimeCompilation
souboru . 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.
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ě. PhysicalFileProvider
Nakonec se instance přidá do kolekce zprostředkovatelů souborů, která umožňuje přístup k souborům seznamu RCL.cshtml
.
Zpětná vazba k produktu ASP.NET Core
ASP.NET Core je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby:
Události
Mistrovství Světa v Power BI DataViz
14. 2. 16 - 31. 3. 16
Se 4 šance na vstup, můžete vyhrát konferenční balíček a udělat to na LIVE Grand Finale v Las Vegas
Další informaceŠkolení
Modul
Vytvoření webového uživatelského rozhraní pomocí ASP.NET Core - Training
Naučte se vytvářet webové stránky pomocí Razoru s ASP.NET Core.