Delen via


ASP.NET Core Razor SDK

Door Rick Anderson

Overview

De .NET 6 SDK bevat de Microsoft.NET.Sdk.Razor MSBuild SDK (Razor SDK). De Razor SDK:

  • Is vereist voor het bouwen, verpakken en publiceren van projecten die bestanden bevatten Razor voor ASP.NET Core MVC of Blazor projecten.
  • Bevat een set vooraf gedefinieerde eigenschappen en items waarmee de compilatie van Razor (.cshtml of .razor) bestanden kan worden aangepast.

De Razor SDK bevat Content items met Include kenmerken die zijn ingesteld op de **\*.cshtml en **\*.razor globbing-patronen. Overeenkomende bestanden worden gepubliceerd.

Prerequisites

.NET 6 SDK

Razor De SDK gebruiken

De meeste web-apps hoeven niet expliciet naar de Razor SDK te verwijzen.

Als u de SDK wilt gebruiken voor het Razor bouwen van klassebibliotheken met Razor weergaven of Razor Pagina's, raden we u aan om te beginnen met de Razor RCL-projectsjabloon (Class Library). Een RCL die wordt gebruikt om Blazor (.razor)-bestanden te bouwen, heeft minimaal een verwijzing naar het Microsoft.AspNetCore.Components-pakket nodig. Een RCL die wordt gebruikt om Razor weergaven of pagina's (.cshtml bestanden) te bouwen, vereist minimaal het targeten van netcoreapp3.0 of later en heeft een FrameworkReference naar de Microsoft.AspNetCore.App metapackage in het projectbestand.

Properties

De volgende eigenschappen bepalen het RazorSDK-gedrag als onderdeel van een projectbuild:

  • RazorCompileOnBuild: Wanneer true, compileert en verzendt de Razor assembly als onderdeel van het bouwen van het project. Standaardwaarde is true.
  • RazorCompileOnPublish: Wanneer true, compileert en verzendt de Razor assembly als onderdeel van het publiceren van het project. Standaardwaarde is true.
  • UseRazorSourceGenerator: standaard ingesteld op true. Wanneer true:
    • Compileert met behulp van brongeneratie.
    • Maakt niet <app_name>.Views.dll. Weergaven zijn opgenomen in <app_name>.dll.
    • Ondersteunt .NET Hot Reload.

De eigenschappen en items in de volgende tabel worden gebruikt voor het configureren van invoer en uitvoer voor de Razor SDK.

Items Description
RazorGenerate Itemelementen (.cshtml bestanden) die invoer zijn voor het genereren van code.
RazorComponent Itemelementen (.razor bestanden) die invoer zijn voor Razor het genereren van onderdeelcode.
RazorCompile Itemelementen (.cs bestanden) die invoer zijn voor Razor compilatiedoelen. Gebruik deze ItemGroup optie om extra bestanden op te geven die in de Razor assembly moeten worden gecompileerd.
RazorEmbeddedResource Itemelementen toegevoegd als ingesloten resources aan de gegenereerde Razor assembly.
Property Description
RazorOutputPath De Razor uitvoermap.
RazorCompileToolset Wordt gebruikt om de toolset te bepalen die wordt gebruikt om de Razor assembly te bouwen. Geldige waarden zijn Implicit, RazorSDKen PrecompilationTool.
EnableDefaultContentItems De standaardinstelling is true. Wanneer true, bevat web.config, .jsonen .cshtml bestanden als inhoud in het project. Wanneer ernaar wordt verwezen via Microsoft.NET.Sdk.Web, worden bestanden onder wwwroot en configuratiebestanden ook opgenomen.
EnableDefaultRazorGenerateItems Wanneer true, bevat .cshtml bestanden van Content items in RazorGenerate items.
GenerateRazorTargetAssemblyInfo Niet gebruikt in .NET 6 of hoger.
EnableDefaultRazorTargetAssemblyInfoAttributes Niet gebruikt in .NET 6 of hoger.
CopyRazorGenerateFilesToPublishDirectory Wanneer true, worden RazorGenerate items (.cshtml) bestanden naar de publicatiemap gekopieerd. Razor Bestanden zijn doorgaans niet vereist voor een gepubliceerde app als ze deelnemen aan compilatie tijdens de build- of publicatietijd. Standaardwaarde is false.
PreserveCompilationReferences Wanneer true, kopieert u verwijzingsassembly-items naar de publicatiemap. Verwijzingsassemblies zijn doorgaans niet vereist voor een gepubliceerde app als Razor de compilatie plaatsvindt op het moment van bouwen of publiceren. Stel in op true als voor uw gepubliceerde app runtimecompilatie nodig is. Stel bijvoorbeeld de waarde in op true als de app tijdens de uitvoering bestanden wijzigt of ingesloten weergaven gebruikt .cshtml. Standaardwaarde is false.
IncludeRazorContentInPack Wanneer trueworden alle Razor inhoudsitems (.cshtml bestanden) gemarkeerd voor opname in het gegenereerde NuGet-pakket. Standaardwaarde is false.
EmbedRazorGenerateSources Wanneer true, worden RazorGenerate (.cshtml)-items als ingesloten bestanden toegevoegd aan de gegenereerde Razor-assembly. Standaardwaarde is false.
GenerateMvcApplicationPartsAssemblyAttributes Niet gebruikt in .NET 6 of hoger.
DefaultWebContentItemExcludes Een globbing-patroon voor itemelementen die moeten worden uitgesloten van de Content itemgroep in projecten die gericht zijn op het web of Razor de SDK
ExcludeConfigFilesFromBuildOutput Wanneer true, .config en .json bestanden niet naar de uitvoermap van de build worden gekopieerd.
AddRazorSupportForMvc Wanneer true, configureert u de Razor SDK om ondersteuning toe te voegen voor de MVC-configuratie die vereist is bij het bouwen van toepassingen met MVC-weergaven of Razor -pagina's. Deze eigenschap is impliciet ingesteld voor .NET Core 3.0- of hogerprojecten die gericht zijn op de Web SDK
RazorLangVersion De versie van de Razor gewenste taal.
EmitCompilerGeneratedFiles Indien ingesteld op true, worden de gegenereerde bronbestanden naar de schijf geschreven. true Deze instelling is handig bij het opsporen van fouten in de compiler. De standaardwaarde is false.

Zie MSBuild-eigenschappen voor meer informatie over eigenschappen.

Runtime-compilatie van Razor views

  • Standaard publiceert de Razor SDK geen referentieassembly's die vereist zijn om runtimecompilatie uit te voeren. Dit resulteert in compilatiefouten wanneer het toepassingsmodel afhankelijk is van runtimecompilatie. De app maakt bijvoorbeeld gebruik van ingesloten weergaven of wijzigingen in weergaven nadat de app is gepubliceerd. Stel CopyRefAssembliesToPublishDirectory in op true om de publicatie van referentie-assembly's voort te zetten. Zowel codegeneratie als compilatie worden ondersteund door één aanroep naar de compiler. Er wordt één assembly geproduceerd die de app-typen en de gegenereerde weergaven bevat.

  • Zorg ervoor dat uw app gericht is op de Microsoft.NET.Sdk.Web SDK voor een web-app.

Razor taalversie

Bij het targeten van de Microsoft.NET.Sdk.Web SDK wordt de Razor taalversie afgeleid van de doel frameworkversie van de app. Voor projecten die gericht zijn op de Microsoft.NET.Sdk.Razor SDK of in het zeldzame geval dat voor de app een andere Razor taalversie is vereist dan de uitgestelde waarde, kan een versie worden geconfigureerd door de <RazorLangVersion> eigenschap in te stellen in het projectbestand van de app:

<PropertyGroup>
  <RazorLangVersion>{VERSION}</RazorLangVersion>
</PropertyGroup>

RazorDe taalversie is nauw geïntegreerd met de versie van de runtime waarvoor deze is gebouwd. Een taalversie targeten die niet voor de runtime is ontworpen, wordt niet ondersteund en zal waarschijnlijk bouwfouten veroorzaken.

Additional resources

De SDK van .NET Core 2.1 of hoger bevat de Microsoft.NET.Sdk.Razor MSBuild SDK (Razor SDK). De Razor SDK:

  • Is vereist voor het bouwen, verpakken en publiceren van projecten die bestanden bevatten Razor voor ASP.NET Core MVC of Blazor projecten.
  • Bevat een set vooraf gedefinieerde doelen, eigenschappen en items waarmee de compilatie van Razor (.cshtml of .razor) bestanden kan worden aangepast.

De Razor SDK bevat Content items met Include kenmerken die zijn ingesteld op de **\*.cshtml en **\*.razor globbing-patronen. Overeenkomende bestanden worden gepubliceerd.

Prerequisites

.NET Core 2.1 of hoger SDK

Razor De SDK gebruiken

De meeste web-apps hoeven niet expliciet naar de Razor SDK te verwijzen.

Als u de SDK wilt gebruiken voor het Razor bouwen van klassebibliotheken met Razor weergaven of Razor Pagina's, raden we u aan om te beginnen met de Razor RCL-projectsjabloon (Class Library). Een RCL die wordt gebruikt om Blazor (.razor)-bestanden te bouwen, heeft minimaal een verwijzing naar het Microsoft.AspNetCore.Components-pakket nodig. Een RCL die wordt gebruikt om Razor weergaven of pagina's (.cshtml bestanden) te bouwen, vereist minimaal het targeten van netcoreapp3.0 of later en heeft een FrameworkReference naar de Microsoft.AspNetCore.App metapackage in het projectbestand.

Properties

De volgende eigenschappen bepalen het RazorSDK-gedrag als onderdeel van een projectbuild:

  • RazorCompileOnBuild: Wanneer true, compileert en verzendt de Razor assembly als onderdeel van het bouwen van het project. Standaardwaarde is true.
  • RazorCompileOnPublish: Wanneer true, compileert en verzendt de Razor assembly als onderdeel van het publiceren van het project. Standaardwaarde is true.

De eigenschappen en items in de volgende tabel worden gebruikt voor het configureren van invoer en uitvoer voor de Razor SDK.

Warning

Vanaf ASP.NET Core 3.0 worden MVC-weergaven of Razor -pagina's niet standaard geleverd als de RazorCompileOnBuild of RazorCompileOnPublish MSBuild-eigenschappen in het projectbestand zijn uitgeschakeld. Toepassingen moeten een expliciete verwijzing toevoegen naar Microsoft.AspNetCore.Mvc.Razor. RuntimeCompilation-pakket als de app afhankelijk is van runtimecompilatie om bestanden te verwerken .cshtml .

Items Description
RazorGenerate Itemelementen (.cshtml bestanden) die invoer zijn voor het genereren van code.
RazorComponent Itemelementen (.razor bestanden) die invoer zijn voor Razor het genereren van onderdeelcode.
RazorCompile Itemelementen (.cs bestanden) die invoer zijn voor Razor compilatiedoelen. Gebruik deze ItemGroup optie om extra bestanden op te geven die in de Razor assembly moeten worden gecompileerd.
RazorTargetAssemblyAttribute Itemelementen die worden gebruikt om kenmerken voor de Razor assembly te genereren. For example:
RazorAssemblyAttribute
Include="System.Reflection.AssemblyMetadataAttribute"
_Parameter1="BuildSource" _Parameter2="https://free.blessedness.top/">
RazorEmbeddedResource Itemelementen toegevoegd als ingesloten resources aan de gegenereerde Razor assembly.
Property Description
RazorTargetName Bestandsnaam (zonder extensie) van de assembly geproduceerd door Razor.
RazorOutputPath De Razor uitvoermap.
RazorCompileToolset Wordt gebruikt om de toolset te bepalen die wordt gebruikt om de Razor assembly te bouwen. Geldige waarden zijn Implicit, RazorSDKen PrecompilationTool.
EnableDefaultContentItems De standaardinstelling is true. Wanneer true, bevat web.config, .jsonen .cshtml bestanden als inhoud in het project. Wanneer ernaar wordt verwezen via Microsoft.NET.Sdk.Web, worden bestanden onder wwwroot en configuratiebestanden ook opgenomen.
EnableDefaultRazorGenerateItems Wanneer true, bevat .cshtml bestanden van Content items in RazorGenerate items.
GenerateRazorTargetAssemblyInfo Wanneer true wordt uitgevoerd, genereert het een .cs-bestand met attributen gespecificeerd door RazorAssemblyAttribute en voegt dit bestand toe aan de compilatie-uitvoer.
EnableDefaultRazorTargetAssemblyInfoAttributes Wanneer truevoegt u een standaardset assemblykenmerken toe aan RazorAssemblyAttribute.
CopyRazorGenerateFilesToPublishDirectory Wanneer true, worden RazorGenerate items (.cshtml) bestanden naar de publicatiemap gekopieerd. Razor Bestanden zijn doorgaans niet vereist voor een gepubliceerde app als ze deelnemen aan compilatie tijdens de build- of publicatietijd. Standaardwaarde is false.
PreserveCompilationReferences Wanneer true, kopieert u verwijzingsassembly-items naar de publicatiemap. Verwijzingsassemblies zijn doorgaans niet vereist voor een gepubliceerde app als Razor de compilatie plaatsvindt op het moment van bouwen of publiceren. Stel in op true als voor uw gepubliceerde app runtimecompilatie nodig is. Stel bijvoorbeeld de waarde in op true als de app tijdens de uitvoering bestanden wijzigt of ingesloten weergaven gebruikt .cshtml. Standaardwaarde is false.
IncludeRazorContentInPack Wanneer trueworden alle Razor inhoudsitems (.cshtml bestanden) gemarkeerd voor opname in het gegenereerde NuGet-pakket. Standaardwaarde is false.
EmbedRazorGenerateSources Wanneer true, worden RazorGenerate (.cshtml)-items als ingesloten bestanden toegevoegd aan de gegenereerde Razor-assembly. Standaardwaarde is false.
UseRazorBuildServer Wanneer true wordt gebruikt, maakt u gebruik van een permanent buildserverproces om het genereren van code uit te besteden. Standaard ingesteld op de waarde van UseSharedCompilation.
GenerateMvcApplicationPartsAssemblyAttributes Wanneer true, genereert de SDK extra kenmerken die tijdens runtime door MVC worden gebruikt om detectie van toepassingsonderdelen uit te voeren.
DefaultWebContentItemExcludes Een globbing-patroon voor itemelementen die moeten worden uitgesloten van de Content itemgroep in projecten die gericht zijn op het web of Razor de SDK
ExcludeConfigFilesFromBuildOutput Wanneer true, .config en .json bestanden niet naar de uitvoermap van de build worden gekopieerd.
AddRazorSupportForMvc Wanneer true, configureert u de Razor SDK om ondersteuning toe te voegen voor de MVC-configuratie die vereist is bij het bouwen van toepassingen met MVC-weergaven of Razor -pagina's. Deze eigenschap is impliciet ingesteld voor .NET Core 3.0- of hogerprojecten die gericht zijn op de Web SDK
RazorLangVersion De versie van de Razor gewenste taal.

Zie MSBuild-eigenschappen voor meer informatie over eigenschappen.

Targets

De Razor SDK definieert twee primaire doelen:

  • RazorGenerate: Code genereert .cs bestanden van RazorGenerate itemelementen. Gebruik de RazorGenerateDependsOn eigenschap om extra doelen op te geven die vóór of na dit doel kunnen worden uitgevoerd.
  • RazorCompile: Compileert gegenereerde .cs bestanden in een Razor assembly. Gebruik de RazorCompileDependsOn opdracht om extra doelen op te geven die vóór of na dit doel kunnen worden uitgevoerd.
  • RazorComponentGenerate: Code genereert .cs bestanden voor RazorComponent itemelementen. Gebruik de RazorComponentGenerateDependsOn eigenschap om extra doelen op te geven die vóór of na dit doel kunnen worden uitgevoerd.

Runtime-compilatie van Razor views

  • Standaard publiceert de Razor SDK geen referentieassembly's die vereist zijn om runtimecompilatie uit te voeren. Dit resulteert in compilatiefouten wanneer het toepassingsmodel afhankelijk is van runtimecompilatie. De app maakt bijvoorbeeld gebruik van ingesloten weergaven of wijzigingen in weergaven nadat de app is gepubliceerd. Stel CopyRefAssembliesToPublishDirectory in op true om de publicatie van referentie-assembly's voort te zetten.

  • Zorg ervoor dat uw app gericht is op de Microsoft.NET.Sdk.Web SDK voor een web-app.

Razor taalversie

Bij het targeten van de Microsoft.NET.Sdk.Web SDK wordt de Razor taalversie afgeleid van de doel frameworkversie van de app. Voor projecten die gericht zijn op de Microsoft.NET.Sdk.Razor SDK of in het zeldzame geval dat voor de app een andere Razor taalversie is vereist dan de uitgestelde waarde, kan een versie worden geconfigureerd door de <RazorLangVersion> eigenschap in te stellen in het projectbestand van de app:

<PropertyGroup>
  <RazorLangVersion>{VERSION}</RazorLangVersion>
</PropertyGroup>

RazorDe taalversie is nauw geïntegreerd met de versie van de runtime waarvoor deze is gebouwd. Een taalversie targeten die niet voor de runtime is ontworpen, wordt niet ondersteund en zal waarschijnlijk bouwfouten veroorzaken.

Additional resources

  • Standaardiseert de ervaring met het bouwen, verpakken en publiceren van projecten die bestanden bevatten Razor voor ASP.NET Core MVC-projecten.
  • Bevat een set vooraf gedefinieerde doelen, eigenschappen en items waarmee de compilatie van Razor bestanden kan worden aangepast.

De Razor SDK bevat een Content item met een Include kenmerk dat is ingesteld op het **\*.cshtml globbing-patroon. Overeenkomende bestanden worden gepubliceerd.

Prerequisites

.NET Core 2.1 of hoger SDK

Razor De SDK gebruiken

De meeste web-apps hoeven niet expliciet naar de Razor SDK te verwijzen.

Razor SDK gebruiken om klassebibliotheken te bouwen die Razor weergaven of Razor pagina's bevatten.

  • Gebruik Microsoft.NET.Sdk.Razor in plaats van Microsoft.NET.Sdk:

    <Project SDK="Microsoft.NET.Sdk.Razor">
      <!-- omitted for brevity -->
    </Project>
    
  • Doorgaans is een pakketreferentie naar Microsoft.AspNetCore.Mvc vereist voor het ontvangen van extra afhankelijkheden die nodig zijn voor de bouw en compilatie van Razor pagina's en Razor weergaven. Uw project moet minimaal pakketverwijzingen toevoegen aan:

    • Microsoft.AspNetCore.Razor.Design
    • Microsoft.AspNetCore.Mvc.Razor.Extensions
    • Microsoft.AspNetCore.Mvc.Razor

    Het Microsoft.AspNetCore.Razor.Design pakket bevat de Razor compilatietaken en doelen voor het project.

    De voorgaande pakketten zijn opgenomen in Microsoft.AspNetCore.Mvc. In de volgende markeringen ziet u een projectbestand dat de Razor SDK gebruikt om Razor bestanden te bouwen voor een ASP.NET Core Razor Pages-app:

    <Project Sdk="Microsoft.NET.Sdk.Razor">
    
      <PropertyGroup>
        <TargetFramework>netcoreapp2.1</TargetFramework>
      </PropertyGroup>
    
      <ItemGroup>
        <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.3" />
      </ItemGroup>
    
    </Project>
    

Warning

De Microsoft.AspNetCore.Razor.Design en Microsoft.AspNetCore.Mvc.Razor.Extensions pakketten zijn opgenomen in de Microsoft.AspNetCore.App metapackage. De versieloze Microsoft.AspNetCore.App pakketverwijzing biedt echter een metapackage aan de app die niet de nieuwste versie van Microsoft.AspNetCore.Razor.Designbevat. Projecten moeten verwijzen naar een consistente versie van Microsoft.AspNetCore.Razor.Design (of Microsoft.AspNetCore.Mvc), zodat de laatste fixes voor buildtijd in Razor zijn opgenomen. Zie dit GitHub-probleem voor meer informatie.

Properties

De volgende eigenschappen bepalen het RazorSDK-gedrag als onderdeel van een projectbuild:

  • RazorCompileOnBuild: Wanneer true, compileert en verzendt de Razor assembly als onderdeel van het bouwen van het project. Standaardwaarde is true.
  • RazorCompileOnPublish: Wanneer true, compileert en verzendt de Razor assembly als onderdeel van het publiceren van het project. Standaardwaarde is true.

De eigenschappen en items in de volgende tabel worden gebruikt voor het configureren van invoer en uitvoer voor de Razor SDK.

Items Description
RazorGenerate Itemelementen (.cshtml bestanden) die invoer zijn voor het genereren van code.
RazorComponent Itemelementen (.razor bestanden) die invoer zijn voor Razor het genereren van onderdeelcode.
RazorCompile Itemelementen (.cs bestanden) die invoer zijn voor Razor compilatiedoelen. Gebruik deze ItemGroup optie om extra bestanden op te geven die in de Razor assembly moeten worden gecompileerd.
RazorTargetAssemblyAttribute Itemelementen die worden gebruikt om kenmerken voor de Razor assembly te genereren. For example:
RazorAssemblyAttribute
Include="System.Reflection.AssemblyMetadataAttribute"
_Parameter1="BuildSource" _Parameter2="https://free.blessedness.top/">
RazorEmbeddedResource Itemelementen toegevoegd als ingesloten resources aan de gegenereerde Razor assembly.
Property Description
RazorTargetName Bestandsnaam (zonder extensie) van de assembly geproduceerd door Razor.
RazorOutputPath De Razor uitvoermap.
RazorCompileToolset Wordt gebruikt om de toolset te bepalen die wordt gebruikt om de Razor assembly te bouwen. Geldige waarden zijn Implicit, RazorSDKen PrecompilationTool.
EnableDefaultContentItems De standaardinstelling is true. Wanneer true, bevat web.config, .jsonen .cshtml bestanden als inhoud in het project. Wanneer ernaar wordt verwezen via Microsoft.NET.Sdk.Web, worden bestanden onder wwwroot en configuratiebestanden ook opgenomen.
EnableDefaultRazorGenerateItems Wanneer true, bevat .cshtml bestanden van Content items in RazorGenerate items.
GenerateRazorTargetAssemblyInfo Wanneer true wordt uitgevoerd, genereert het een .cs-bestand met attributen gespecificeerd door RazorAssemblyAttribute en voegt dit bestand toe aan de compilatie-uitvoer.
EnableDefaultRazorTargetAssemblyInfoAttributes Wanneer truevoegt u een standaardset assemblykenmerken toe aan RazorAssemblyAttribute.
CopyRazorGenerateFilesToPublishDirectory Wanneer true, worden RazorGenerate items (.cshtml) bestanden naar de publicatiemap gekopieerd. Razor Bestanden zijn doorgaans niet vereist voor een gepubliceerde app als ze deelnemen aan compilatie tijdens de build- of publicatietijd. Standaardwaarde is false.
CopyRefAssembliesToPublishDirectory Wanneer true, kopieert u verwijzingsassembly-items naar de publicatiemap. Verwijzingsassemblies zijn doorgaans niet vereist voor een gepubliceerde app als Razor de compilatie plaatsvindt op het moment van bouwen of publiceren. Stel in op true als voor uw gepubliceerde app runtimecompilatie nodig is. Stel bijvoorbeeld de waarde in op true als de app tijdens de uitvoering bestanden wijzigt of ingesloten weergaven gebruikt .cshtml. Standaardwaarde is false.
IncludeRazorContentInPack Wanneer trueworden alle Razor inhoudsitems (.cshtml bestanden) gemarkeerd voor opname in het gegenereerde NuGet-pakket. Standaardwaarde is false.
EmbedRazorGenerateSources Wanneer true, worden RazorGenerate (.cshtml)-items als ingesloten bestanden toegevoegd aan de gegenereerde Razor-assembly. Standaardwaarde is false.
UseRazorBuildServer Wanneer true wordt gebruikt, maakt u gebruik van een permanent buildserverproces om het genereren van code uit te besteden. Standaard ingesteld op de waarde van UseSharedCompilation.
GenerateMvcApplicationPartsAssemblyAttributes Wanneer true, genereert de SDK extra kenmerken die tijdens runtime door MVC worden gebruikt om detectie van toepassingsonderdelen uit te voeren.
DefaultWebContentItemExcludes Een globbing-patroon voor itemelementen die moeten worden uitgesloten van de Content itemgroep in projecten die gericht zijn op het web of Razor de SDK
ExcludeConfigFilesFromBuildOutput Wanneer true, .config en .json bestanden niet naar de uitvoermap van de build worden gekopieerd.
AddRazorSupportForMvc Wanneer true, configureert u de Razor SDK om ondersteuning toe te voegen voor de MVC-configuratie die vereist is bij het bouwen van toepassingen met MVC-weergaven of Razor -pagina's. Deze eigenschap is impliciet ingesteld voor .NET Core 3.0- of hogerprojecten die gericht zijn op de Web SDK
RazorLangVersion De versie van de Razor gewenste taal.

Zie MSBuild-eigenschappen voor meer informatie over eigenschappen.

Targets

De Razor SDK definieert twee primaire doelen:

  • RazorGenerate: Code genereert .cs bestanden van RazorGenerate itemelementen. Gebruik de RazorGenerateDependsOn eigenschap om extra doelen op te geven die vóór of na dit doel kunnen worden uitgevoerd.
  • RazorCompile: Compileert gegenereerde .cs bestanden in een Razor assembly. Gebruik de RazorCompileDependsOn opdracht om extra doelen op te geven die vóór of na dit doel kunnen worden uitgevoerd.
  • RazorComponentGenerate: Code genereert .cs bestanden voor RazorComponent itemelementen. Gebruik de RazorComponentGenerateDependsOn eigenschap om extra doelen op te geven die vóór of na dit doel kunnen worden uitgevoerd.

Runtime-compilatie van Razor views

  • Standaard publiceert de Razor SDK geen referentieassembly's die vereist zijn om runtimecompilatie uit te voeren. Dit resulteert in compilatiefouten wanneer het toepassingsmodel afhankelijk is van runtimecompilatie. De app maakt bijvoorbeeld gebruik van ingesloten weergaven of wijzigingen in weergaven nadat de app is gepubliceerd. Stel CopyRefAssembliesToPublishDirectory in op true om de publicatie van referentie-assembly's voort te zetten.

  • Zorg ervoor dat uw app gericht is op de Microsoft.NET.Sdk.Web SDK voor een web-app.

Razor taalversie

Bij het targeten van de Microsoft.NET.Sdk.Web SDK wordt de Razor taalversie afgeleid van de doel frameworkversie van de app. Voor projecten die gericht zijn op de Microsoft.NET.Sdk.Razor SDK of in het zeldzame geval dat voor de app een andere Razor taalversie is vereist dan de uitgestelde waarde, kan een versie worden geconfigureerd door de <RazorLangVersion> eigenschap in te stellen in het projectbestand van de app:

<PropertyGroup>
  <RazorLangVersion>{VERSION}</RazorLangVersion>
</PropertyGroup>

RazorDe taalversie is nauw geïntegreerd met de versie van de runtime waarvoor deze is gebouwd. Een taalversie targeten die niet voor de runtime is ontworpen, wordt niet ondersteund en zal waarschijnlijk bouwfouten veroorzaken.

Additional resources