Kit SDK ASP.NET Core Razor
Par Rick Anderson
Vue d’ensemble
Le kit SDK .NET 6.0 inclut le kit SDK Microsoft.NET.Sdk.Razor
MSBuild (kit SDK Razor). Le kit SDK Razor :
- Est requis pour générer, empaqueter et publier des projets contenant des fichiers Razor pour des projets basés sur ASP.NET Core MVC ou Blazor.
- Inclut un ensemble de propriétés prédéfinies et d’éléments qui permettent de personnaliser la compilation des fichiers Razor (
.cshtml
ou.razor
).
Le kit SDK Razor inclut des éléments Content
avec des attributs Include
définis sur les modèles d’utilisation des caractères génériques **\*.cshtml
et **\*.razor
. Les fichiers correspondants sont publiés.
Prérequis
Utiliser le kit SDK Razor
La plupart des applications web ne sont pas tenues de référencer explicitement le kit SDK Razor.
Pour utiliser le kit SDK Razor afin de créer des bibliothèques de classes contenant des vues Razor ou des pages Razor, nous vous recommandons de commencer par le modèle de projet de bibliothèque de classes Razor (RCL). Une bibliothèque RCL utilisée pour générer des fichiers Blazor (.razor
) nécessite au minimum une référence au package Microsoft.AspNetCore.Components. Une bibliothèque RCL utilisée pour générer des vues ou des pages Razor (fichiers .cshtml
) nécessite un ciblage minimal de netcoreapp3.0
ou version ultérieure et a une référence FrameworkReference
au métapackage Microsoft.AspNetCore.App dans son fichier projet.
Propriétés
Les propriétés suivantes contrôlent le comportement du kit SDK Razor dans le cadre d’une build de projet :
RazorCompileOnBuild
: si la valeur esttrue
, compile et émet l’assembly Razor dans le cadre de la génération du projet. La valeur par défaut esttrue
.RazorCompileOnPublish
: si la valeur esttrue
, compile et émet l’assembly Razor dans le cadre de la publication du projet. La valeur par défaut esttrue
.UseRazorSourceGenerator
: a la valeur par défauttrue
. Quand :true
- Compile à l’aide de la génération source.
- Ne crée pas
<app_name>.Views.dll
. Les vues sont incluses dans<app_name>.dll
. - Prend en charge le rechargement à chaud .NET.
Les propriétés et éléments du tableau suivant sont utilisés pour configurer les entrées et la sortie du kit SDK Razor.
Éléments | Description |
---|---|
RazorGenerate |
Composants d’élément (fichiers .cshtml ) fournis en entrée à la génération de code. |
RazorComponent |
Composants d’élément (fichiers .razor ) fournis en entrée à la génération de code de composant Razor. |
RazorCompile |
Composants d’élément (fichiers .cs ) fournis en entrée aux cibles de compilation Razor. Utilisez ItemGroup pour spécifier d’autres fichiers à compiler dans l’assembly Razor. |
RazorEmbeddedResource |
Composants d’élément ajoutés comme ressources incorporées à l’assembly Razor généré. |
Propriété | Description |
---|---|
RazorOutputPath |
Répertoire de sortie Razor. |
RazorCompileToolset |
Utilisé pour déterminer l’ensemble d’outils utilisé pour générer l’assembly Razor. Les valeurs correctes sont Implicit , RazorSDK et PrecompilationTool . |
EnableDefaultContentItems | La valeur par défaut est true . Si la valeur est true , inclut les fichiers web.config, .json et .cshtml en tant que contenu dans le projet. Lorsqu’ils sont référencés via Microsoft.NET.Sdk.Web , les fichiers sous wwwroot et les fichiers de configuration sont également inclus. |
EnableDefaultRazorGenerateItems |
Si la valeur est true , inclut les fichiers .cshtml des éléments Content dans les éléments RazorGenerate . |
GenerateRazorTargetAssemblyInfo |
Non utilisé dans .NET 6 et versions ultérieures. |
EnableDefaultRazorTargetAssemblyInfoAttributes |
Non utilisé dans .NET 6 et versions ultérieures. |
CopyRazorGenerateFilesToPublishDirectory |
Si la valeur est true , copie les fichiers (.cshtml ) des éléments RazorGenerate dans le répertoire de publication. En général, une application publiée ne nécessite pas de fichiers Razor s’ils participent à la compilation au moment de la génération ou de la publication. La valeur par défaut est false . |
PreserveCompilationReferences |
Si la valeur est true , copie les éléments d’assembly de référence dans le répertoire de publication. En général, une application publiée ne nécessite pas d’assemblys de référence si la compilation Razor se produit au moment de la génération ou de la publication. Définissez sur true si votre application publiée nécessite une compilation au moment de l’exécution. Par exemple, définissez la valeur sur true si l’application modifie les fichiers .cshtml au moment de l’exécution ou utilise des vues incorporées. La valeur par défaut est false . |
IncludeRazorContentInPack |
Si la valeur est true , tous les éléments de contenu Razor (fichiers .cshtml ) sont marqués pour inclusion dans le package NuGet généré. La valeur par défaut est false . |
EmbedRazorGenerateSources |
Si la valeur est true , ajoute des éléments RazorGenerate (.cshtml ) comme fichiers incorporés à l’assembly Razor généré. La valeur par défaut est false . |
GenerateMvcApplicationPartsAssemblyAttributes |
Non utilisé dans .NET 6 et versions ultérieures. |
DefaultWebContentItemExcludes |
Modèle d’utilisation des caractères génériques pour les composants d’élément qui doivent être exclus du groupe d’éléments Content dans les projets ciblant le kit SDK Web ou Razor |
ExcludeConfigFilesFromBuildOutput |
Si la valeur est true , les fichiers .config et .json ne sont pas copiés dans le répertoire de sortie de build. |
AddRazorSupportForMvc |
Si la valeur est true , configure le kit SDK Razor pour ajouter la prise en charge de la configuration MVC requise lors de la création d’applications contenant des vues MVC ou des pages Razor. Cette propriété est implicitement définie pour les projets .NET Core 3.0 ou version ultérieure ciblant le kit SDK Web. |
RazorLangVersion |
Version du langage Razor à cibler. |
EmitCompilerGeneratedFiles |
Si la valeur est définie sur true , les fichiers sources générés sont écrits sur le disque. La définition de la valeur true est utile lors du débogage du compilateur. Par défaut, il s’agit de false . |
Pour plus d’informations sur les propriétés, voir Propriétés MSBuild.
Compilation au moment de l’exécution des vues Razor
Par défaut, le kit SDK Razor ne publie pas les assemblys de référence nécessaires à l’exécution de la compilation au moment de l’exécution. Cela entraîne des échecs de compilation quand le modèle d’application s’appuie sur la compilation au moment de l’exécution (par exemple, l’application utilise des vues incorporées ou change les vues une fois l’application publiée). Définissez
CopyRefAssembliesToPublishDirectory
surtrue
pour continuer à publier les assemblys de référence. La génération et la compilation de code sont prises en charge par un seul appel au compilateur. Un assembly unique est produit qui contient les types d’application et les vues générées.Pour une web application, veillez à ce que votre application cible le kit SDK
Microsoft.NET.Sdk.Web
.
Version du langage Razor
Lorsque vous ciblez le kit SDK Microsoft.NET.Sdk.Web
, la version du langage Razor est déduite de la version de l’infrastructure cible de l’application. Pour les projets ciblant le kit SDK Microsoft.NET.Sdk.Razor
ou dans les rares cas où l’application nécessite une version de langage Razor différente de la valeur déduite, une version peut être configurée en définissant la propriété <RazorLangVersion>
dans le fichier projet de l’application :
<PropertyGroup>
<RazorLangVersion>{VERSION}</RazorLangVersion>
</PropertyGroup>
La version du langage Razor est étroitement intégrée à la version du runtime pour laquelle elle a été créée. Le ciblage d’une version de langage qui n’est pas conçue pour le runtime n’est pas pris en charge et générera probablement des erreurs de build.
Ressources supplémentaires
Le kit SDK .NET Core 2.1 ou version ultérieure inclut le kit SDK MSBuild Microsoft.NET.Sdk.Razor
(kit SDK Razor). Le kit SDK Razor :
- Est requis pour générer, empaqueter et publier des projets contenant des fichiers Razor pour des projets basés sur ASP.NET Core MVC ou Blazor.
- Comprend un ensemble de cibles, de propriétés et d’éléments prédéfinis qui permettent de personnaliser la compilation des fichiers Razor (
.cshtml
ou.razor
).
Le kit SDK Razor inclut des éléments Content
avec des attributs Include
définis sur les modèles d’utilisation des caractères génériques **\*.cshtml
et **\*.razor
. Les fichiers correspondants sont publiés.
Prérequis
SDK .NET Core 2.1 ou version ultérieure
Utiliser le kit SDK Razor
La plupart des applications web ne sont pas tenues de référencer explicitement le kit SDK Razor.
Pour utiliser le kit SDK Razor afin de créer des bibliothèques de classes contenant des vues Razor ou des pages Razor, nous vous recommandons de commencer par le modèle de projet de bibliothèque de classes Razor (RCL). Une bibliothèque RCL utilisée pour générer des fichiers Blazor (.razor
) nécessite au minimum une référence au package Microsoft.AspNetCore.Components. Une bibliothèque RCL utilisée pour générer des vues ou des pages Razor (fichiers .cshtml
) nécessite un ciblage minimal de netcoreapp3.0
ou version ultérieure et a une référence FrameworkReference
au métapackage Microsoft.AspNetCore.App dans son fichier projet.
Propriétés
Les propriétés suivantes contrôlent le comportement du kit SDK Razor dans le cadre d’une build de projet :
RazorCompileOnBuild
: si la valeur esttrue
, compile et émet l’assembly Razor dans le cadre de la génération du projet. La valeur par défaut esttrue
.RazorCompileOnPublish
: si la valeur esttrue
, compile et émet l’assembly Razor dans le cadre de la publication du projet. La valeur par défaut esttrue
.
Les propriétés et éléments du tableau suivant sont utilisés pour configurer les entrées et la sortie du kit SDK Razor.
Avertissement
À compter d’ASP.NET Core 3.0, les vues MVC ou les pages Razor ne sont pas délivrées par défaut si les propriétés MSBuild RazorCompileOnBuild
ou RazorCompileOnPublish
du fichier projet sont désactivées. Les applications doivent ajouter une référence explicite au package Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation si l’application s’appuie sur la compilation au moment de l’exécution pour traiter les fichiers .cshtml
.
Éléments | Description |
---|---|
RazorGenerate |
Composants d’élément (fichiers .cshtml ) fournis en entrée à la génération de code. |
RazorComponent |
Composants d’élément (fichiers .razor ) fournis en entrée à la génération de code de composant Razor. |
RazorCompile |
Composants d’élément (fichiers .cs ) fournis en entrée aux cibles de compilation Razor. Utilisez ItemGroup pour spécifier d’autres fichiers à compiler dans l’assembly Razor. |
RazorTargetAssemblyAttribute |
Composants d’élément utilisés pour générer le code d’attributs pour l’assembly Razor. Par exemple : RazorAssemblyAttribute Include="System.Reflection.AssemblyMetadataAttribute" _Parameter1="BuildSource" _Parameter2="https://video2.skills-academy.com/"> |
RazorEmbeddedResource |
Composants d’élément ajoutés comme ressources incorporées à l’assembly Razor généré. |
Propriété | Description |
---|---|
RazorTargetName |
Nom de fichier (sans extension) de l’assembly produit par Razor. |
RazorOutputPath |
Répertoire de sortie Razor. |
RazorCompileToolset |
Utilisé pour déterminer l’ensemble d’outils utilisé pour générer l’assembly Razor. Les valeurs correctes sont Implicit , RazorSDK et PrecompilationTool . |
EnableDefaultContentItems | La valeur par défaut est true . Si la valeur est true , inclut les fichiers web.config, .json et .cshtml en tant que contenu dans le projet. Lorsqu’ils sont référencés via Microsoft.NET.Sdk.Web , les fichiers sous wwwroot et les fichiers de configuration sont également inclus. |
EnableDefaultRazorGenerateItems |
Si la valeur est true , inclut les fichiers .cshtml des éléments Content dans les éléments RazorGenerate . |
GenerateRazorTargetAssemblyInfo |
Si la valeur est true , génère un fichier .cs contenant les attributs spécifiés par RazorAssemblyAttribute et l’inclut dans la sortie de la compilation. |
EnableDefaultRazorTargetAssemblyInfoAttributes |
Si la valeur est true , ajoute un ensemble par défaut d’attributs d’assembly à RazorAssemblyAttribute . |
CopyRazorGenerateFilesToPublishDirectory |
Si la valeur est true , copie les fichiers (.cshtml ) des éléments RazorGenerate dans le répertoire de publication. En général, une application publiée ne nécessite pas de fichiers Razor s’ils participent à la compilation au moment de la génération ou de la publication. La valeur par défaut est false . |
PreserveCompilationReferences |
Si la valeur est true , copie les éléments d’assembly de référence dans le répertoire de publication. En général, une application publiée ne nécessite pas d’assemblys de référence si la compilation Razor se produit au moment de la génération ou de la publication. Définissez sur true si votre application publiée nécessite une compilation au moment de l’exécution. Par exemple, définissez la valeur sur true si l’application modifie les fichiers .cshtml au moment de l’exécution ou utilise des vues incorporées. La valeur par défaut est false . |
IncludeRazorContentInPack |
Si la valeur est true , tous les éléments de contenu Razor (fichiers .cshtml ) sont marqués pour inclusion dans le package NuGet généré. La valeur par défaut est false . |
EmbedRazorGenerateSources |
Si la valeur est true , ajoute des éléments RazorGenerate (.cshtml ) comme fichiers incorporés à l’assembly Razor généré. La valeur par défaut est false . |
UseRazorBuildServer |
Si la valeur est true , utilise un processus de serveur de build persistant pour décharger le travail de génération de code. Utilise par défaut la valeur de UseSharedCompilation . |
GenerateMvcApplicationPartsAssemblyAttributes |
Si la valeur est true , le kit SDK génère des attributs supplémentaires utilisés par MVC au moment de l’exécution pour effectuer la découverte des composants d’application. |
DefaultWebContentItemExcludes |
Modèle d’utilisation des caractères génériques pour les composants d’élément qui doivent être exclus du groupe d’éléments Content dans les projets ciblant le kit SDK Web ou Razor |
ExcludeConfigFilesFromBuildOutput |
Si la valeur est true , les fichiers .config et .json ne sont pas copiés dans le répertoire de sortie de build. |
AddRazorSupportForMvc |
Si la valeur est true , configure le kit SDK Razor pour ajouter la prise en charge de la configuration MVC requise lors de la création d’applications contenant des vues MVC ou des pages Razor. Cette propriété est implicitement définie pour les projets .NET Core 3.0 ou version ultérieure ciblant le kit SDK Web. |
RazorLangVersion |
Version du langage Razor à cibler. |
Pour plus d’informations sur les propriétés, voir Propriétés MSBuild.
Cibles
Le kit SDK Razor définit deux cibles principales :
RazorGenerate
: le code génère des fichiers.cs
à partir des composants d’élémentRazorGenerate
. Utilisez la propriétéRazorGenerateDependsOn
pour spécifier des cibles supplémentaires pouvant s’exécuter avant ou après cette cible.RazorCompile
: compile les fichiers.cs
générés dans un assembly Razor. UtilisezRazorCompileDependsOn
pour spécifier des cibles supplémentaires qui peuvent s’exécuter avant ou après cette cible.RazorComponentGenerate
: le code génère des fichiers.cs
pour les composants d’élémentRazorComponent
. Utilisez la propriétéRazorComponentGenerateDependsOn
pour spécifier des cibles supplémentaires pouvant s’exécuter avant ou après cette cible.
Compilation au moment de l’exécution des vues Razor
Par défaut, le kit SDK Razor ne publie pas les assemblys de référence nécessaires à l’exécution de la compilation au moment de l’exécution. Cela entraîne des échecs de compilation quand le modèle d’application s’appuie sur la compilation au moment de l’exécution (par exemple, l’application utilise des vues incorporées ou change les vues une fois l’application publiée). Définissez
CopyRefAssembliesToPublishDirectory
surtrue
pour continuer à publier les assemblys de référence.Pour une web application, veillez à ce que votre application cible le kit SDK
Microsoft.NET.Sdk.Web
.
Version du langage Razor
Lorsque vous ciblez le kit SDK Microsoft.NET.Sdk.Web
, la version du langage Razor est déduite de la version de l’infrastructure cible de l’application. Pour les projets ciblant le kit SDK Microsoft.NET.Sdk.Razor
ou dans les rares cas où l’application nécessite une version de langage Razor différente de la valeur déduite, une version peut être configurée en définissant la propriété <RazorLangVersion>
dans le fichier projet de l’application :
<PropertyGroup>
<RazorLangVersion>{VERSION}</RazorLangVersion>
</PropertyGroup>
La version du langage Razor est étroitement intégrée à la version du runtime pour laquelle elle a été créée. Le ciblage d’une version de langage qui n’est pas conçue pour le runtime n’est pas pris en charge et générera probablement des erreurs de build.
Ressources supplémentaires
- Normalise l’expérience liée à la génération, à l’empaquetage et à la publication de projets contenant des fichiers Razor pour les projets basés sur ASP.NET Core MVC.
- Comprend un ensemble de cibles, de propriétés et d’éléments prédéfinis qui permettent de personnaliser la compilation des fichiers Razor.
Le kit SDK Razor inclut un élément Content
avec un attribut Include
défini sur le modèle d’utilisation des caractères génériques **\*.cshtml
. Les fichiers correspondants sont publiés.
Prérequis
SDK .NET Core 2.1 ou version ultérieure
Utiliser le kit SDK Razor
La plupart des applications web ne sont pas tenues de référencer explicitement le kit SDK Razor.
Pour utiliser le kit SDK Razor pour générer des bibliothèques de classes contenant des vues Razor ou des pages Razor Razor :
Utilisez
Microsoft.NET.Sdk.Razor
à la place deMicrosoft.NET.Sdk
:<Project SDK="Microsoft.NET.Sdk.Razor"> <!-- omitted for brevity --> </Project>
En général, une référence de package à
Microsoft.AspNetCore.Mvc
doit recevoir des dépendances supplémentaires permettant de générer et de compiler les pages Razor et les vues Razor. Au minimum, votre projet doit ajouter des références de package à :Microsoft.AspNetCore.Razor.Design
Microsoft.AspNetCore.Mvc.Razor.Extensions
Microsoft.AspNetCore.Mvc.Razor
Le package
Microsoft.AspNetCore.Razor.Design
fournit les tâches et les cibles de compilation Razor pour le projet.Les packages précédents sont inclus dans
Microsoft.AspNetCore.Mvc
. Le balisage suivant présente un fichier projet qui utilise le kit SDK Razor pour générer des fichiers Razor pour une application ASP.NET Core Razor Pages :<Project Sdk="Microsoft.NET.Sdk.Razor"> <PropertyGroup> <TargetFramework>netcoreapp2.1</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.3" /> </ItemGroup> </Project>
Avertissement
Les packages Microsoft.AspNetCore.Razor.Design
et Microsoft.AspNetCore.Mvc.Razor.Extensions
sont inclus dans le métapackage Microsoft.AspNetCore.App. Toutefois, la référence de package Microsoft.AspNetCore.App
sans version fournit un métapackage à l’application qui n’inclut pas la dernière version de Microsoft.AspNetCore.Razor.Design
. Les projets doivent référencer une version cohérente de Microsoft.AspNetCore.Razor.Design
(ou Microsoft.AspNetCore.Mvc
) afin que les derniers correctifs au moment de la génération pour Razor soient inclus. Pour plus d’informations, consultez ce problème GitHub.
Propriétés
Les propriétés suivantes contrôlent le comportement du kit SDK Razor dans le cadre d’une build de projet :
RazorCompileOnBuild
: si la valeur esttrue
, compile et émet l’assembly Razor dans le cadre de la génération du projet. La valeur par défaut esttrue
.RazorCompileOnPublish
: si la valeur esttrue
, compile et émet l’assembly Razor dans le cadre de la publication du projet. La valeur par défaut esttrue
.
Les propriétés et éléments du tableau suivant sont utilisés pour configurer les entrées et la sortie du kit SDK Razor.
Éléments | Description |
---|---|
RazorGenerate |
Composants d’élément (fichiers .cshtml ) fournis en entrée à la génération de code. |
RazorComponent |
Composants d’élément (fichiers .razor ) fournis en entrée à la génération de code de composant Razor. |
RazorCompile |
Composants d’élément (fichiers .cs ) fournis en entrée aux cibles de compilation Razor. Utilisez ItemGroup pour spécifier d’autres fichiers à compiler dans l’assembly Razor. |
RazorTargetAssemblyAttribute |
Composants d’élément utilisés pour générer le code d’attributs pour l’assembly Razor. Par exemple : RazorAssemblyAttribute Include="System.Reflection.AssemblyMetadataAttribute" _Parameter1="BuildSource" _Parameter2="https://video2.skills-academy.com/"> |
RazorEmbeddedResource |
Composants d’élément ajoutés comme ressources incorporées à l’assembly Razor généré. |
Propriété | Description |
---|---|
RazorTargetName |
Nom de fichier (sans extension) de l’assembly produit par Razor. |
RazorOutputPath |
Répertoire de sortie Razor. |
RazorCompileToolset |
Utilisé pour déterminer l’ensemble d’outils utilisé pour générer l’assembly Razor. Les valeurs correctes sont Implicit , RazorSDK et PrecompilationTool . |
EnableDefaultContentItems | La valeur par défaut est true . Si la valeur est true , inclut les fichiers web.config, .json et .cshtml en tant que contenu dans le projet. Lorsqu’ils sont référencés via Microsoft.NET.Sdk.Web , les fichiers sous wwwroot et les fichiers de configuration sont également inclus. |
EnableDefaultRazorGenerateItems |
Si la valeur est true , inclut les fichiers .cshtml des éléments Content dans les éléments RazorGenerate . |
GenerateRazorTargetAssemblyInfo |
Si la valeur est true , génère un fichier .cs contenant les attributs spécifiés par RazorAssemblyAttribute et l’inclut dans la sortie de la compilation. |
EnableDefaultRazorTargetAssemblyInfoAttributes |
Si la valeur est true , ajoute un ensemble par défaut d’attributs d’assembly à RazorAssemblyAttribute . |
CopyRazorGenerateFilesToPublishDirectory |
Si la valeur est true , copie les fichiers (.cshtml ) des éléments RazorGenerate dans le répertoire de publication. En général, une application publiée ne nécessite pas de fichiers Razor s’ils participent à la compilation au moment de la génération ou de la publication. La valeur par défaut est false . |
CopyRefAssembliesToPublishDirectory |
Si la valeur est true , copie les éléments d’assembly de référence dans le répertoire de publication. En général, une application publiée ne nécessite pas d’assemblys de référence si la compilation Razor se produit au moment de la génération ou de la publication. Définissez sur true si votre application publiée nécessite une compilation au moment de l’exécution. Par exemple, définissez la valeur sur true si l’application modifie les fichiers .cshtml au moment de l’exécution ou utilise des vues incorporées. La valeur par défaut est false . |
IncludeRazorContentInPack |
Si la valeur est true , tous les éléments de contenu Razor (fichiers .cshtml ) sont marqués pour inclusion dans le package NuGet généré. La valeur par défaut est false . |
EmbedRazorGenerateSources |
Si la valeur est true , ajoute des éléments RazorGenerate (.cshtml ) comme fichiers incorporés à l’assembly Razor généré. La valeur par défaut est false . |
UseRazorBuildServer |
Si la valeur est true , utilise un processus de serveur de build persistant pour décharger le travail de génération de code. Utilise par défaut la valeur de UseSharedCompilation . |
GenerateMvcApplicationPartsAssemblyAttributes |
Si la valeur est true , le kit SDK génère des attributs supplémentaires utilisés par MVC au moment de l’exécution pour effectuer la découverte des composants d’application. |
DefaultWebContentItemExcludes |
Modèle d’utilisation des caractères génériques pour les composants d’élément qui doivent être exclus du groupe d’éléments Content dans les projets ciblant le kit SDK Web ou Razor |
ExcludeConfigFilesFromBuildOutput |
Si la valeur est true , les fichiers .config et .json ne sont pas copiés dans le répertoire de sortie de build. |
AddRazorSupportForMvc |
Si la valeur est true , configure le kit SDK Razor pour ajouter la prise en charge de la configuration MVC requise lors de la création d’applications contenant des vues MVC ou des pages Razor. Cette propriété est implicitement définie pour les projets .NET Core 3.0 ou version ultérieure ciblant le kit SDK Web. |
RazorLangVersion |
Version du langage Razor à cibler. |
Pour plus d’informations sur les propriétés, voir Propriétés MSBuild.
Cibles
Le kit SDK Razor définit deux cibles principales :
RazorGenerate
: le code génère des fichiers.cs
à partir des composants d’élémentRazorGenerate
. Utilisez la propriétéRazorGenerateDependsOn
pour spécifier des cibles supplémentaires pouvant s’exécuter avant ou après cette cible.RazorCompile
: compile les fichiers.cs
générés dans un assembly Razor. UtilisezRazorCompileDependsOn
pour spécifier des cibles supplémentaires qui peuvent s’exécuter avant ou après cette cible.RazorComponentGenerate
: le code génère des fichiers.cs
pour les composants d’élémentRazorComponent
. Utilisez la propriétéRazorComponentGenerateDependsOn
pour spécifier des cibles supplémentaires pouvant s’exécuter avant ou après cette cible.
Compilation au moment de l’exécution des vues Razor
Par défaut, le kit SDK Razor ne publie pas les assemblys de référence nécessaires à l’exécution de la compilation au moment de l’exécution. Cela entraîne des échecs de compilation quand le modèle d’application s’appuie sur la compilation au moment de l’exécution (par exemple, l’application utilise des vues incorporées ou change les vues une fois l’application publiée). Définissez
CopyRefAssembliesToPublishDirectory
surtrue
pour continuer à publier les assemblys de référence.Pour une web application, veillez à ce que votre application cible le kit SDK
Microsoft.NET.Sdk.Web
.
Version du langage Razor
Lorsque vous ciblez le kit SDK Microsoft.NET.Sdk.Web
, la version du langage Razor est déduite de la version de l’infrastructure cible de l’application. Pour les projets ciblant le kit SDK Microsoft.NET.Sdk.Razor
ou dans les rares cas où l’application nécessite une version de langage Razor différente de la valeur déduite, une version peut être configurée en définissant la propriété <RazorLangVersion>
dans le fichier projet de l’application :
<PropertyGroup>
<RazorLangVersion>{VERSION}</RazorLangVersion>
</PropertyGroup>
La version du langage Razor est étroitement intégrée à la version du runtime pour laquelle elle a été créée. Le ciblage d’une version de langage qui n’est pas conçue pour le runtime n’est pas pris en charge et générera probablement des erreurs de build.