ASP.NET Core Razor SDK

Di Rick Anderson

Panoramica

.NET 6.0 SDK include Microsoft.NET.Sdk.Razor MSBuild SDK (Razor SDK). The Razor SDK:

  • È necessario per compilare, creare pacchetti e pubblicare progetti contenenti Razor file per ASP.NET progetti o Blazor basati su MVC Core.
  • Include un set di proprietà predefinite e elementi che consentono di personalizzare la compilazione di Razor file (.cshtml o .razor).

L'SDK Razor include elementi con Include attributi impostati sui **\*.cshtml modelli glob e **\*.razorContent . I file corrispondenti vengono pubblicati.

Prerequisiti

.NET 6.0 SDK

Usare l'SDK Razor

La maggior parte delle app Web non è necessaria per fare riferimento in modo esplicito all'SDK Razor .

Per usare l'SDK Razor per compilare librerie di classi contenenti Razor visualizzazioni o Razor Pagine, è consigliabile iniziare con il Razor modello di progetto della libreria di classi (RCL). Un RCL usato per compilare Blazor (.razor) file richiede un riferimento minimo al pacchetto Microsoft.AspNetCore.Components . Un RCL usato per compilare Razor visualizzazioni o pagine (.cshtml file) richiede in modo minimo la destinazione netcoreapp3.0 o una versione successiva e ha un FrameworkReference oggetto per il metapacchetto Microsoft.AspNetCore.App nel file di progetto.

Proprietà

Le proprietà seguenti controllano il Razorcomportamento dell'SDK come parte di una compilazione di progetto:

  • RazorCompileOnBuild: quando true, compila e genera l'assembly Razor come parte della compilazione del progetto. Il valore predefinito è true.
  • RazorCompileOnPublish: quando true, compila e genera l'assembly Razor come parte della pubblicazione del progetto. Il valore predefinito è true.
  • UseRazorSourceGenerator: il valore predefinito è true. Quando: true
    • Compila usando la generazione di origine.
    • Non crea <app_name>.Views.dll. Le visualizzazioni sono incluse in <app_name>.dll.
    • Supporta le Ricaricamento rapido .NET.

Le proprietà e gli elementi nella tabella seguente vengono usati per configurare input e output nell'SDK Razor .

Elementi Descrizione
RazorGenerate Elementi dell'elemento (.cshtml file) che sono input per la generazione del codice.
RazorComponent Elementi dell'elemento (.razor file) che sono input per la Razor generazione del codice del componente.
RazorCompile Elementi dell'elemento (.cs file) che sono input per Razor le destinazioni di compilazione. Utilizzare questa opzione ItemGroup per specificare file aggiuntivi da compilare nell'assembly Razor .
RazorEmbeddedResource Elementi elemento aggiunti come risorse incorporate all'assembly generato Razor .
Proprietà Descrizione
RazorOutputPath Directory Razor di output.
RazorCompileToolset Utilizzato per determinare il set di strumenti usato per compilare l'assembly Razor . I valori validi sono Implicit, RazorSDK e PrecompilationTool.
EnableDefaultContentItems Il valore predefinito è true. Quando true, include i file web.config, .jsone .cshtml come contenuto nel progetto. Quando viene fatto riferimento tramite Microsoft.NET.Sdk.Web, vengono inclusi anche i file in wwwroot e config.
EnableDefaultRazorGenerateItems Quando true, include .cshtml i file degli Content elementi negli RazorGenerate elementi.
GenerateRazorTargetAssemblyInfo Non usato in .NET 6 e versioni successive.
EnableDefaultRazorTargetAssemblyInfoAttributes Non usato in .NET 6 e versioni successive.
CopyRazorGenerateFilesToPublishDirectory Quando true, copia RazorGenerate i file di elementi (.cshtml) nella directory di pubblicazione. In genere, Razor i file non sono necessari per un'app pubblicata se partecipano alla compilazione in fase di compilazione o in fase di pubblicazione. Il valore predefinito è false.
PreserveCompilationReferences Quando è true, copiare gli elementi dell'assembly di riferimento nella directory di pubblicazione. In genere, gli assembly di riferimento non sono necessari per un'app pubblicata se Razor la compilazione avviene in fase di compilazione o in fase di pubblicazione. Impostare su true se l'app pubblicata richiede la compilazione in fase di esecuzione. Ad esempio, impostare il valore su true se l'app modifica .cshtml i file in fase di esecuzione o usa visualizzazioni incorporate. Il valore predefinito è false.
IncludeRazorContentInPack Quando true, tutti gli Razor elementi di contenuto (.cshtml file) vengono contrassegnati per l'inclusione nel pacchetto NuGet generato. Il valore predefinito è false.
EmbedRazorGenerateSources Quando true, aggiunge Razorelementi Generate (.cshtml) come file incorporati all'assembly generato Razor . Il valore predefinito è false.
GenerateMvcApplicationPartsAssemblyAttributes Non usato in .NET 6 e versioni successive.
DefaultWebContentItemExcludes Modello di globing per gli elementi di elemento che devono essere esclusi dal Content gruppo di elementi nei progetti destinati al Web o Razor all'SDK
ExcludeConfigFilesFromBuildOutput Quando true, i file con estensione config e .json non vengono copiati nella directory di output di compilazione.
AddRazorSupportForMvc Quando true, configura l'SDK Razor per aggiungere il supporto per la configurazione MVC necessaria per la compilazione di applicazioni contenenti visualizzazioni MVC o Razor Pagine. Questa proprietà è impostata in modo implicito per i progetti .NET Core 3.0 o versioni successive destinati a Web SDK
RazorLangVersion Versione della Razor lingua di destinazione.
EmitCompilerGeneratedFiles Se impostato su true, i file di origine generati vengono scritti su disco. L'impostazione su true è utile quando si esegue il debug del compilatore. Il valore predefinito è false.

Per altre informazioni sulle proprietà, vedere Proprietà di MSBuild.

Compilazione in fase di esecuzione delle Razor visualizzazioni

  • Per impostazione predefinita, l'SDK Razor non pubblica assembly di riferimento necessari per eseguire la compilazione in fase di esecuzione. Ciò comporta errori di compilazione quando il modello di applicazione si basa sulla compilazione in fase di esecuzione, ad esempio l'app usa visualizzazioni incorporate o cambia visualizzazioni dopo la pubblicazione dell'app. Impostare CopyRefAssembliesToPublishDirectory su true per continuare con la pubblicazione degli assembly di riferimento. Sia la generazione del codice che la compilazione sono supportate da una singola chiamata al compilatore. Viene generato un singolo assembly che contiene i tipi di app e le visualizzazioni generate.

  • Per un'app Web, assicurarsi che l'app sia destinata all'SDK Microsoft.NET.Sdk.Web .

Razor versione del linguaggio

Quando la destinazione è l'SDK Microsoft.NET.Sdk.Web , la versione del Razor linguaggio viene dedotta dalla versione del framework di destinazione dell'app. Per i progetti destinati all'SDK Microsoft.NET.Sdk.Razor o nel raro caso in cui l'app richiede una Razor versione diversa rispetto al valore dedotto, è possibile configurare una versione impostando la <RazorLangVersion> proprietà nel file di progetto dell'app:

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

RazorLa versione del linguaggio è strettamente integrata con la versione del runtime per cui è stata compilata. La destinazione di una versione del linguaggio non progettata per il runtime non è supportata e probabilmente genera errori di compilazione.

Risorse aggiuntive

.NET Core 2.1 SDK o versione successiva include Microsoft.NET.Sdk.Razor MSBuild SDK (Razor SDK). The Razor SDK:

  • È necessario per compilare, creare pacchetti e pubblicare progetti contenenti Razor file per ASP.NET progetti o Blazor basati su MVC Core.
  • Include un set di destinazioni, proprietà e elementi predefiniti che consentono di personalizzare la compilazione di Razor file (.cshtml o .razor).

L'SDK Razor include elementi con Include attributi impostati sui **\*.cshtml modelli glob e **\*.razorContent . I file corrispondenti vengono pubblicati.

Prerequisiti

.NET Core 2.1 SDK o versione successiva

Usare l'SDK Razor

La maggior parte delle app Web non è necessaria per fare riferimento in modo esplicito all'SDK Razor .

Per usare l'SDK Razor per compilare librerie di classi contenenti Razor visualizzazioni o Razor Pagine, è consigliabile iniziare con il Razor modello di progetto della libreria di classi (RCL). Un RCL usato per compilare Blazor (.razor) file richiede un riferimento minimo al pacchetto Microsoft.AspNetCore.Components . Un RCL usato per compilare Razor visualizzazioni o pagine (.cshtml file) richiede in modo minimo la destinazione netcoreapp3.0 o una versione successiva e ha un FrameworkReference oggetto per il metapacchetto Microsoft.AspNetCore.App nel file di progetto.

Proprietà

Le proprietà seguenti controllano il Razorcomportamento dell'SDK come parte di una compilazione di progetto:

  • RazorCompileOnBuild: quando true, compila e genera l'assembly Razor come parte della compilazione del progetto. Il valore predefinito è true.
  • RazorCompileOnPublish: quando true, compila e genera l'assembly Razor come parte della pubblicazione del progetto. Il valore predefinito è true.

Le proprietà e gli elementi nella tabella seguente vengono usati per configurare input e output nell'SDK Razor .

Avviso

A partire da ASP.NET Core 3.0, le visualizzazioni O Razor le pagine MVC non vengono gestite per impostazione predefinita se le RazorCompileOnBuild proprietà o RazorCompileOnPublish MSBuild nel file di progetto sono disabilitate. Le applicazioni devono aggiungere un riferimento esplicito a Microsoft.AspNetCore.Mvc.Razor. Pacchetto RuntimeCompilation se l'app si basa sulla compilazione in fase di esecuzione per elaborare i .cshtml file.

Elementi Descrizione
RazorGenerate Elementi dell'elemento (.cshtml file) che sono input per la generazione del codice.
RazorComponent Elementi dell'elemento (.razor file) che sono input per la Razor generazione del codice del componente.
RazorCompile Elementi dell'elemento (.cs file) che sono input per Razor le destinazioni di compilazione. Utilizzare questa opzione ItemGroup per specificare file aggiuntivi da compilare nell'assembly Razor .
RazorTargetAssemblyAttribute Elementi dell'elemento utilizzati per generare attributi per l'assembly Razor . Ad esempio:
RazorAssemblyAttribute
Include="System.Reflection.AssemblyMetadataAttribute"
_Parameter1="BuildSource" _Parameter2="https://learn.microsoft.com/">
RazorEmbeddedResource Elementi elemento aggiunti come risorse incorporate all'assembly generato Razor .
Proprietà Descrizione
RazorTargetName Nome file (senza estensione) dell'assembly prodotto da Razor.
RazorOutputPath Directory Razor di output.
RazorCompileToolset Utilizzato per determinare il set di strumenti usato per compilare l'assembly Razor . I valori validi sono Implicit, RazorSDK e PrecompilationTool.
EnableDefaultContentItems Il valore predefinito è true. Quando true, include i file web.config, .jsone .cshtml come contenuto nel progetto. Quando viene fatto riferimento tramite Microsoft.NET.Sdk.Web, vengono inclusi anche i file in wwwroot e config.
EnableDefaultRazorGenerateItems Quando true, include .cshtml i file degli Content elementi negli RazorGenerate elementi.
GenerateRazorTargetAssemblyInfo Quando true, genera un .cs file contenente attributi specificati da RazorAssemblyAttribute e include il file nell'output di compilazione.
EnableDefaultRazorTargetAssemblyInfoAttributes Quando è true, aggiunge un set predefinito di attributi degli assembly a RazorAssemblyAttribute.
CopyRazorGenerateFilesToPublishDirectory Quando true, copia RazorGenerate i file di elementi (.cshtml) nella directory di pubblicazione. In genere, Razor i file non sono necessari per un'app pubblicata se partecipano alla compilazione in fase di compilazione o in fase di pubblicazione. Il valore predefinito è false.
PreserveCompilationReferences Quando è true, copiare gli elementi dell'assembly di riferimento nella directory di pubblicazione. In genere, gli assembly di riferimento non sono necessari per un'app pubblicata se Razor la compilazione avviene in fase di compilazione o in fase di pubblicazione. Impostare su true se l'app pubblicata richiede la compilazione in fase di esecuzione. Ad esempio, impostare il valore su true se l'app modifica .cshtml i file in fase di esecuzione o usa visualizzazioni incorporate. Il valore predefinito è false.
IncludeRazorContentInPack Quando true, tutti gli Razor elementi di contenuto (.cshtml file) vengono contrassegnati per l'inclusione nel pacchetto NuGet generato. Il valore predefinito è false.
EmbedRazorGenerateSources Quando true, aggiunge Razorelementi Generate (.cshtml) come file incorporati all'assembly generato Razor . Il valore predefinito è false.
UseRazorBuildServer Quando è true, usa un processo del server di compilazione permanente per ripartire il lavoro di generazione del codice. Valore predefinito è il valore di UseSharedCompilation.
GenerateMvcApplicationPartsAssemblyAttributes Quando true, l'SDK genera attributi aggiuntivi usati da MVC in fase di esecuzione per eseguire l'individuazione delle parti dell'applicazione.
DefaultWebContentItemExcludes Modello di globing per gli elementi di elemento che devono essere esclusi dal Content gruppo di elementi nei progetti destinati al Web o Razor all'SDK
ExcludeConfigFilesFromBuildOutput Quando true, i file con estensione config e .json non vengono copiati nella directory di output di compilazione.
AddRazorSupportForMvc Quando true, configura l'SDK Razor per aggiungere il supporto per la configurazione MVC necessaria per la compilazione di applicazioni contenenti visualizzazioni MVC o Razor Pagine. Questa proprietà è impostata in modo implicito per i progetti .NET Core 3.0 o versioni successive destinati a Web SDK
RazorLangVersion Versione della Razor lingua di destinazione.

Per altre informazioni sulle proprietà, vedere Proprietà di MSBuild.

Targets

L'SDK Razor definisce due destinazioni principali:

  • RazorGenerate: il codice genera .cs file dagli RazorGenerate elementi dell'elemento. Utilizzare la RazorGenerateDependsOn proprietà per specificare destinazioni aggiuntive che possono essere eseguite prima o dopo questa destinazione.
  • RazorCompile: compila i file generati .cs in un Razor assembly. RazorCompileDependsOn Utilizzare per specificare destinazioni aggiuntive che possono essere eseguite prima o dopo questa destinazione.
  • RazorComponentGenerate: il codice genera .cs file per RazorComponent gli elementi dell'elemento. Utilizzare la RazorComponentGenerateDependsOn proprietà per specificare destinazioni aggiuntive che possono essere eseguite prima o dopo questa destinazione.

Compilazione in fase di esecuzione delle Razor visualizzazioni

  • Per impostazione predefinita, l'SDK Razor non pubblica assembly di riferimento necessari per eseguire la compilazione in fase di esecuzione. Ciò comporta errori di compilazione quando il modello di applicazione si basa sulla compilazione in fase di esecuzione, ad esempio l'app usa visualizzazioni incorporate o cambia visualizzazioni dopo la pubblicazione dell'app. Impostare CopyRefAssembliesToPublishDirectory su true per continuare con la pubblicazione degli assembly di riferimento.

  • Per un'app Web, assicurarsi che l'app sia destinata all'SDK Microsoft.NET.Sdk.Web .

Razor versione del linguaggio

Quando la destinazione è l'SDK Microsoft.NET.Sdk.Web , la versione del Razor linguaggio viene dedotta dalla versione del framework di destinazione dell'app. Per i progetti destinati all'SDK Microsoft.NET.Sdk.Razor o nel raro caso in cui l'app richiede una Razor versione diversa rispetto al valore dedotto, è possibile configurare una versione impostando la <RazorLangVersion> proprietà nel file di progetto dell'app:

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

RazorLa versione del linguaggio è strettamente integrata con la versione del runtime per cui è stata compilata. La destinazione di una versione del linguaggio non progettata per il runtime non è supportata e probabilmente genera errori di compilazione.

Risorse aggiuntive

  • Standardizza l'esperienza di creazione, creazione di pacchetti e pubblicazione di progetti contenenti Razor file per ASP.NET progetti basati su MVC Core.
  • Include un set di destinazioni, proprietà e elementi predefiniti che consentono di personalizzare la compilazione dei Razor file.

L'SDK Razor include un elemento con un ContentInclude attributo impostato sul **\*.cshtml modello globbing. I file corrispondenti vengono pubblicati.

Prerequisiti

.NET Core 2.1 SDK o versione successiva

Usare l'SDK Razor

La maggior parte delle app Web non è necessaria per fare riferimento in modo esplicito all'SDK Razor .

Per usare l'SDK Razor per compilare librerie di classi contenenti Razor visualizzazioni o Razor pagine:

  • Usare Microsoft.NET.Sdk.Razor anziché Microsoft.NET.Sdk:

    <Project SDK="Microsoft.NET.Sdk.Razor">
      <!-- omitted for brevity -->
    </Project>
    
  • In genere, è necessario un riferimento al pacchetto a Microsoft.AspNetCore.Mvc per ricevere dipendenze aggiuntive Razor necessarie per compilare e compilare pagine e Razor visualizzazioni. Come minimo, il progetto deve aggiungere riferimenti al pacchetto a:

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

    Il Microsoft.AspNetCore.Razor.Design pacchetto fornisce le attività di compilazione e le Razor destinazioni per il progetto.

    I pacchetti precedenti sono inclusi in Microsoft.AspNetCore.Mvc. Il markup seguente mostra un file di progetto che usa l'SDK Razor per compilare Razor i file per un'app Core Razor Pages di ASP.NET:

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

Avviso

I Microsoft.AspNetCore.Razor.Design pacchetti e Microsoft.AspNetCore.Mvc.Razor.Extensions sono inclusi nel metapacchetto Microsoft.AspNetCore.App. Tuttavia, il riferimento al pacchetto senza versione Microsoft.AspNetCore.App fornisce un metapacchetto all'app che non include la versione più recente di Microsoft.AspNetCore.Razor.Design. I progetti devono fare riferimento a una versione coerente di (o Microsoft.AspNetCore.Mvc) in modo che siano incluse le correzioni in fase di Microsoft.AspNetCore.Razor.Design compilazione più recenti per Razor . Per altre informazioni, vedere questo problema in GitHub.

Proprietà

Le proprietà seguenti controllano il Razorcomportamento dell'SDK come parte di una compilazione di progetto:

  • RazorCompileOnBuild: quando true, compila e genera l'assembly Razor come parte della compilazione del progetto. Il valore predefinito è true.
  • RazorCompileOnPublish: quando true, compila e genera l'assembly Razor come parte della pubblicazione del progetto. Il valore predefinito è true.

Le proprietà e gli elementi nella tabella seguente vengono usati per configurare input e output nell'SDK Razor .

Elementi Descrizione
RazorGenerate Elementi dell'elemento (.cshtml file) che sono input per la generazione del codice.
RazorComponent Elementi dell'elemento (.razor file) che sono input per la Razor generazione del codice del componente.
RazorCompile Elementi dell'elemento (.cs file) che sono input per Razor le destinazioni di compilazione. Utilizzare questa opzione ItemGroup per specificare file aggiuntivi da compilare nell'assembly Razor .
RazorTargetAssemblyAttribute Elementi dell'elemento utilizzati per generare attributi per l'assembly Razor . Ad esempio:
RazorAssemblyAttribute
Include="System.Reflection.AssemblyMetadataAttribute"
_Parameter1="BuildSource" _Parameter2="https://learn.microsoft.com/">
RazorEmbeddedResource Elementi elemento aggiunti come risorse incorporate all'assembly generato Razor .
Proprietà Descrizione
RazorTargetName Nome file (senza estensione) dell'assembly prodotto da Razor.
RazorOutputPath Directory Razor di output.
RazorCompileToolset Utilizzato per determinare il set di strumenti usato per compilare l'assembly Razor . I valori validi sono Implicit, RazorSDK e PrecompilationTool.
EnableDefaultContentItems Il valore predefinito è true. Quando true, include i file web.config, .jsone .cshtml come contenuto nel progetto. Quando viene fatto riferimento tramite Microsoft.NET.Sdk.Web, vengono inclusi anche i file in wwwroot e config.
EnableDefaultRazorGenerateItems Quando true, include .cshtml i file degli Content elementi negli RazorGenerate elementi.
GenerateRazorTargetAssemblyInfo Quando true, genera un .cs file contenente attributi specificati da RazorAssemblyAttribute e include il file nell'output di compilazione.
EnableDefaultRazorTargetAssemblyInfoAttributes Quando è true, aggiunge un set predefinito di attributi degli assembly a RazorAssemblyAttribute.
CopyRazorGenerateFilesToPublishDirectory Quando true, copia RazorGenerate i file di elementi (.cshtml) nella directory di pubblicazione. In genere, Razor i file non sono necessari per un'app pubblicata se partecipano alla compilazione in fase di compilazione o in fase di pubblicazione. Il valore predefinito è false.
CopyRefAssembliesToPublishDirectory Quando è true, copiare gli elementi dell'assembly di riferimento nella directory di pubblicazione. In genere, gli assembly di riferimento non sono necessari per un'app pubblicata se Razor la compilazione avviene in fase di compilazione o in fase di pubblicazione. Impostare su true se l'app pubblicata richiede la compilazione in fase di esecuzione. Ad esempio, impostare il valore su true se l'app modifica .cshtml i file in fase di esecuzione o usa visualizzazioni incorporate. Il valore predefinito è false.
IncludeRazorContentInPack Quando true, tutti gli Razor elementi di contenuto (.cshtml file) vengono contrassegnati per l'inclusione nel pacchetto NuGet generato. Il valore predefinito è false.
EmbedRazorGenerateSources Quando true, aggiunge Razorelementi Generate (.cshtml) come file incorporati all'assembly generato Razor . Il valore predefinito è false.
UseRazorBuildServer Quando è true, usa un processo del server di compilazione permanente per ripartire il lavoro di generazione del codice. Valore predefinito è il valore di UseSharedCompilation.
GenerateMvcApplicationPartsAssemblyAttributes Quando true, l'SDK genera attributi aggiuntivi usati da MVC in fase di esecuzione per eseguire l'individuazione delle parti dell'applicazione.
DefaultWebContentItemExcludes Modello di globing per gli elementi di elemento che devono essere esclusi dal Content gruppo di elementi nei progetti destinati al Web o Razor all'SDK
ExcludeConfigFilesFromBuildOutput Quando true, i file con estensione config e .json non vengono copiati nella directory di output di compilazione.
AddRazorSupportForMvc Quando true, configura l'SDK Razor per aggiungere il supporto per la configurazione MVC necessaria per la compilazione di applicazioni contenenti visualizzazioni MVC o Razor Pagine. Questa proprietà è impostata in modo implicito per i progetti .NET Core 3.0 o versioni successive destinati a Web SDK
RazorLangVersion Versione della Razor lingua di destinazione.

Per altre informazioni sulle proprietà, vedere Proprietà di MSBuild.

Targets

L'SDK Razor definisce due destinazioni principali:

  • RazorGenerate: il codice genera .cs file dagli RazorGenerate elementi dell'elemento. Utilizzare la RazorGenerateDependsOn proprietà per specificare destinazioni aggiuntive che possono essere eseguite prima o dopo questa destinazione.
  • RazorCompile: compila i file generati .cs in un Razor assembly. RazorCompileDependsOn Utilizzare per specificare destinazioni aggiuntive che possono essere eseguite prima o dopo questa destinazione.
  • RazorComponentGenerate: il codice genera .cs file per RazorComponent gli elementi dell'elemento. Utilizzare la RazorComponentGenerateDependsOn proprietà per specificare destinazioni aggiuntive che possono essere eseguite prima o dopo questa destinazione.

Compilazione in fase di esecuzione delle Razor visualizzazioni

  • Per impostazione predefinita, l'SDK Razor non pubblica assembly di riferimento necessari per eseguire la compilazione in fase di esecuzione. Ciò comporta errori di compilazione quando il modello di applicazione si basa sulla compilazione in fase di esecuzione, ad esempio l'app usa visualizzazioni incorporate o cambia visualizzazioni dopo la pubblicazione dell'app. Impostare CopyRefAssembliesToPublishDirectory su true per continuare con la pubblicazione degli assembly di riferimento.

  • Per un'app Web, assicurarsi che l'app sia destinata all'SDK Microsoft.NET.Sdk.Web .

Razor versione del linguaggio

Quando la destinazione è l'SDK Microsoft.NET.Sdk.Web , la versione del Razor linguaggio viene dedotta dalla versione del framework di destinazione dell'app. Per i progetti destinati all'SDK Microsoft.NET.Sdk.Razor o nel raro caso in cui l'app richiede una Razor versione diversa rispetto al valore dedotto, è possibile configurare una versione impostando la <RazorLangVersion> proprietà nel file di progetto dell'app:

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

RazorLa versione del linguaggio è strettamente integrata con la versione del runtime per cui è stata compilata. La destinazione di una versione del linguaggio non progettata per il runtime non è supportata e probabilmente genera errori di compilazione.

Risorse aggiuntive