ASP.NET Core Razor SDK

Gönderen Rick Anderson

Overview

.NET 6 SDK'sı MSBuild SDK'sını Microsoft.NET.Sdk.Razor (Razor SDK) içerir. Bu Razor SDK:

  • ASP.NET Core MVC tabanlı veya projelerin dosyalarını içeren Razor projeleri derlemek, paketlemek ve Blazor yayımlamak için gereklidir.
  • Önceden tanımlanmış bir özellik kümesi ve (Razor veya .cshtml) dosyalarının .razor derlenmesini özelleştirmeye olanak sağlayan öğeler içerir.

SDK, Razor ve Content globbing desenlerine ayarlanmış Include öznitelikleri olan **\*.cshtml öğeler içerir**\*.razor. Eşleşen dosyalar yayımlanır.

Prerequisites

.NET 6 SDK

SDK'yi Razor kullanma

Çoğu web uygulamasının SDK'ya açıkça başvurması Razor gerekmez.

SDK'yı Razor kullanarak görünümler veya Razor Sayfalar içeren Razor sınıf kitaplıkları oluşturmak için sınıf kitaplığı (RCL) proje şablonuyla Razor başlamanızı öneririz. En az sayıda dosya oluşturmak Blazor (.razor) için kullanılan bir RCL için Microsoft.AspNetCore.Components paketine başvuru yapılması gerekir. Görünümler veya sayfalar (Razordosyalar) oluşturmak .cshtml için kullanılan bir RCL en az hedefleme netcoreapp3.0 veya sonraki bir sürümü gerektirir ve FrameworkReferenceproje dosyasındaki Microsoft.AspNetCore.App meta paketine sahiptir.

Properties

Aşağıdaki özellikler, proje derlemesinin Razorbir parçası olarak 'nin SDK davranışını denetler:

  • RazorCompileOnBuild: olduğunda true, derlemeyi Razor derler ve projeyi oluşturmanın bir parçası olarak yayar. varsayılan değeridir true.
  • RazorCompileOnPublish: olduğunda true, derlemeyi Razor derler ve projeyi yayımlamanın bir parçası olarak yayar. varsayılan değeridir true.
  • UseRazorSourceGenerator: varsayılan değeridir true. Zamanı: true
    • Kaynak oluşturma kullanarak derler.
    • oluşturmaz <app_name>.Views.dll. Görünümler içinde <app_name>.dllbulunur.
    • .NET Çalışırken Yeniden Yükleme destekler.

Aşağıdaki tabloda yer alan özellikler ve öğeler, SDK'ya yönelik girişleri ve çıktıları yapılandırmak için Razor kullanılır.

Items Description
RazorGenerate Kod oluşturma işlemine giriş olan öğe öğeleri (.cshtml dosyalar).
RazorComponent Bileşen kodu oluşturma işlemine .razor giriş olan öğe öğeleri (Razordosyalar).
RazorCompile Derleme hedeflerine .cs giriş olan öğe öğeleri (Razordosyalar). Derlemede ItemGroup derlenecek ek dosyaları belirtmek için bunu Razor kullanın.
RazorEmbeddedResource Oluşturulan Razor derlemeye ekli kaynaklar olarak eklenen öğe öğeleri.
Property Description
RazorOutputPath Çıkış Razor dizini.
RazorCompileToolset Derlemeyi derlemek için kullanılan araç takımını Razor belirlemek için kullanılır. Geçerli değerler: Implicit, RazorSDK ve PrecompilationTool.
EnableDefaultContentItems Varsayılan true değeridir. olduğundatrue, projede içerik olarak web.config. aracılığıyla Microsoft.NET.Sdk.Webbaşvurulduğunda, wwwroot ve yapılandırma dosyaları altındaki dosyalar da eklenir.
EnableDefaultRazorGenerateItems olduğundatrue, öğelerdeki .cshtml öğelerdeki Content dosyaları içerirRazorGenerate.
GenerateRazorTargetAssemblyInfo .NET 6 veya sonraki sürümlerinde kullanılmaz.
EnableDefaultRazorTargetAssemblyInfoAttributes .NET 6 veya sonraki sürümlerinde kullanılmaz.
CopyRazorGenerateFilesToPublishDirectory olduğundatrue, öğeleri (RazorGenerate) dosyaları yayımlama dizinine kopyalar.cshtml. Derleme zamanında veya yayımlama zamanında derlemeye katılan dosyalar genellikle Razor yayımlanmış bir uygulama için gerekli değildir. varsayılan değeridir false.
PreserveCompilationReferences olduğunda true, başvuru derleme öğelerini yayımlama dizinine kopyalayın. Derleme derleme zamanında veya yayımlama zamanında gerçekleşirse Razor , genellikle yayımlanmış bir uygulama için başvuru derlemeleri gerekli değildir. true Yayımlanan uygulamanız çalışma zamanı derlemesi gerektiriyorsa olarak ayarlayın. Örneğin, uygulama çalışma zamanında dosyaları değiştirirse veya eklenmiş görünümler true kullanıyorsa değerini .cshtml olarak ayarlayın. varsayılan değeridir false.
IncludeRazorContentInPack olduğunda true, tüm Razor içerik öğeleri (.cshtml dosyalar) oluşturulan NuGet paketine dahil edilmek üzere işaretlenir. varsayılan değeridir false.
EmbedRazorGenerateSources olduğunda true, RazorGenerate (.cshtml) öğelerini oluşturulan Razor derlemeye eklenmiş dosyalar olarak ekler. varsayılan değeridir false.
GenerateMvcApplicationPartsAssemblyAttributes .NET 6 veya sonraki sürümlerinde kullanılmaz.
DefaultWebContentItemExcludes Web veya Content SDK'yı hedefleyen projelerde öğe grubundan Razor dışlanacak öğe öğeleri için globing deseni
ExcludeConfigFilesFromBuildOutput , true ve dosyaları derleme çıktı dizinine kopyalanmıyorsa.json.
AddRazorSupportForMvc olduğundatrue, SDK'yı MVC görünümleri veya Razor Sayfaları içeren uygulamalar oluştururken gereken MVC yapılandırması için destek ekleyecek şekilde yapılandırıyorRazor. Bu özellik, Web SDK'sını hedefleyen .NET Core 3.0 veya üzeri projeler için örtük olarak ayarlanır
RazorLangVersion Hedef alınacak Dilin Razor sürümü.
EmitCompilerGeneratedFiles olarak trueayarlandığında, oluşturulan kaynak dosyalar diske yazılır. true ayarı, derleyicide hata ayıklarken kullanışlıdır. Varsayılan değer: false.

Özellikler hakkında daha fazla bilgi için bkz . MSBuild özellikleri.

Görünümlerin çalışma zamanı derlemesi Razor

  • Varsayılan olarak SDK, Razor çalışma zamanı derlemesi gerçekleştirmek için gereken başvuru derlemelerini yayımlamaz. Bu, uygulama modeli çalışma zamanı derlemesine bağlı olduğunda derleme hatalarıyla sonuçlanır; örneğin, uygulama yayımlandıktan sonra eklenmiş görünümler kullanır veya görünümleri değiştirir. Başvuru derlemelerini yayımlamaya devam etmek için CopyRefAssembliesToPublishDirectory olarak ayarlayıntrue. Hem kod oluşturma hem de derleme, derleyiciye yapılan tek bir çağrı tarafından desteklenir. Uygulama türlerini ve oluşturulan görünümleri içeren tek bir derleme oluşturulur.

  • Bir web uygulaması için uygulamanızın SDK'yı hedeflediğinden Microsoft.NET.Sdk.Web emin olun.

Razor dil sürümü

SDK hedeflenirken Microsoft.NET.Sdk.Web , Razor dil sürümü uygulamanın hedef çerçeve sürümünden çıkarılır. SDK'yı hedefleyen Microsoft.NET.Sdk.Razor projeler için veya nadiren de olsa uygulamanın çıkarılmış değerden farklı Razor bir dil sürümüne ihtiyaç duyması durumunda, uygulamanın proje dosyasında özelliği ayarlanarak <RazorLangVersion> bir sürüm yapılandırılabilir:

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

Razor'nin dil sürümü, oluşturulduğu çalışma zamanının sürümüyle sıkı bir şekilde tümleştirilmiştir. Çalışma zamanı için tasarlanmamış bir dil sürümünü hedefleme desteklenmiyor ve büyük olasılıkla derleme hataları oluşturuyor.

Ek kaynaklar

.NET Core 2.1 veya üzeri SDK'sı MSBuild SDK'sını Microsoft.NET.Sdk.Razor (Razor SDK) içerir. Bu Razor SDK:

  • ASP.NET Core MVC tabanlı veya projelerin dosyalarını içeren Razor projeleri derlemek, paketlemek ve Blazor yayımlamak için gereklidir.
  • (Razor veya .cshtml) dosyalarının derlenmesini .razor özelleştirmeye olanak sağlayan önceden tanımlanmış hedefler, özellikler ve öğeler kümesi içerir.

SDK, Razor ve Content globbing desenlerine ayarlanmış Include öznitelikleri olan **\*.cshtml öğeler içerir**\*.razor. Eşleşen dosyalar yayımlanır.

Prerequisites

.NET Core 2.1 veya üzeri SDK

SDK'yi Razor kullanma

Çoğu web uygulamasının SDK'ya açıkça başvurması Razor gerekmez.

SDK'yı Razor kullanarak görünümler veya Razor Sayfalar içeren Razor sınıf kitaplıkları oluşturmak için sınıf kitaplığı (RCL) proje şablonuyla Razor başlamanızı öneririz. En az sayıda dosya oluşturmak Blazor (.razor) için kullanılan bir RCL için Microsoft.AspNetCore.Components paketine başvuru yapılması gerekir. Görünümler veya sayfalar (Razordosyalar) oluşturmak .cshtml için kullanılan bir RCL en az hedefleme netcoreapp3.0 veya sonraki bir sürümü gerektirir ve FrameworkReferenceproje dosyasındaki Microsoft.AspNetCore.App meta paketine sahiptir.

Properties

Aşağıdaki özellikler, proje derlemesinin Razorbir parçası olarak 'nin SDK davranışını denetler:

  • RazorCompileOnBuild: olduğunda true, derlemeyi Razor derler ve projeyi oluşturmanın bir parçası olarak yayar. varsayılan değeridir true.
  • RazorCompileOnPublish: olduğunda true, derlemeyi Razor derler ve projeyi yayımlamanın bir parçası olarak yayar. varsayılan değeridir true.

Aşağıdaki tabloda yer alan özellikler ve öğeler, SDK'ya yönelik girişleri ve çıktıları yapılandırmak için Razor kullanılır.

Warning

ASP.NET Core 3.0'dan başlayarak, proje dosyasındaki Razor veya MSBuild özellikleri devre dışı bırakılırsa MVC Görünümleri veya RazorCompileOnBuildRazorCompileOnPublish Sayfaları varsayılan olarak sunulmaz. Uygulamaların Microsoft.AspNetCore.Mvc'ye Razor paketi.

Items Description
RazorGenerate Kod oluşturma işlemine giriş olan öğe öğeleri (.cshtml dosyalar).
RazorComponent Bileşen kodu oluşturma işlemine .razor giriş olan öğe öğeleri (Razordosyalar).
RazorCompile Derleme hedeflerine .cs giriş olan öğe öğeleri (Razordosyalar). Derlemede ItemGroup derlenecek ek dosyaları belirtmek için bunu Razor kullanın.
RazorTargetAssemblyAttribute Derleme için öznitelikler oluşturmak üzere kod oluşturmak için Razor kullanılan öğe öğeleri. Örneğin:
RazorAssemblyAttribute
Include="System.Reflection.AssemblyMetadataAttribute"
_Parameter1="BuildSource" _Parameter2="https://learn.microsoft.com/">
RazorEmbeddedResource Oluşturulan Razor derlemeye ekli kaynaklar olarak eklenen öğe öğeleri.
Property Description
RazorTargetName tarafından Razorüretilen derlemenin dosya adı (uzantısız).
RazorOutputPath Çıkış Razor dizini.
RazorCompileToolset Derlemeyi derlemek için kullanılan araç takımını Razor belirlemek için kullanılır. Geçerli değerler: Implicit, RazorSDK ve PrecompilationTool.
EnableDefaultContentItems Varsayılan true değeridir. olduğundatrue, projede içerik olarak web.config. aracılığıyla Microsoft.NET.Sdk.Webbaşvurulduğunda, wwwroot ve yapılandırma dosyaları altındaki dosyalar da eklenir.
EnableDefaultRazorGenerateItems olduğundatrue, öğelerdeki .cshtml öğelerdeki Content dosyaları içerirRazorGenerate.
GenerateRazorTargetAssemblyInfo olduğundatrue, tarafından .cs belirtilen öznitelikleri içeren bir RazorAssemblyAttribute dosya oluşturur ve dosyayı derleme çıkışına ekler.
EnableDefaultRazorTargetAssemblyInfoAttributes olduğunda true, öğesine varsayılan bir derleme öznitelikleri RazorAssemblyAttributekümesi ekler.
CopyRazorGenerateFilesToPublishDirectory olduğundatrue, öğeleri (RazorGenerate) dosyaları yayımlama dizinine kopyalar.cshtml. Derleme zamanında veya yayımlama zamanında derlemeye katılan dosyalar genellikle Razor yayımlanmış bir uygulama için gerekli değildir. varsayılan değeridir false.
PreserveCompilationReferences olduğunda true, başvuru derleme öğelerini yayımlama dizinine kopyalayın. Derleme derleme zamanında veya yayımlama zamanında gerçekleşirse Razor , genellikle yayımlanmış bir uygulama için başvuru derlemeleri gerekli değildir. true Yayımlanan uygulamanız çalışma zamanı derlemesi gerektiriyorsa olarak ayarlayın. Örneğin, uygulama çalışma zamanında dosyaları değiştirirse veya eklenmiş görünümler true kullanıyorsa değerini .cshtml olarak ayarlayın. varsayılan değeridir false.
IncludeRazorContentInPack olduğunda true, tüm Razor içerik öğeleri (.cshtml dosyalar) oluşturulan NuGet paketine dahil edilmek üzere işaretlenir. varsayılan değeridir false.
EmbedRazorGenerateSources olduğunda true, RazorGenerate (.cshtml) öğelerini oluşturulan Razor derlemeye eklenmiş dosyalar olarak ekler. varsayılan değeridir false.
UseRazorBuildServer olduğunda true, kod oluşturma işini boşaltmak için kalıcı bir derleme sunucusu işlemi kullanır. varsayılan değeridir UseSharedCompilation.
GenerateMvcApplicationPartsAssemblyAttributes olduğunda trueSDK, çalışma zamanında MVC tarafından uygulama parçası bulma gerçekleştirmek için kullanılan ek öznitelikler oluşturur.
DefaultWebContentItemExcludes Web veya Content SDK'yı hedefleyen projelerde öğe grubundan Razor dışlanacak öğe öğeleri için globing deseni
ExcludeConfigFilesFromBuildOutput , true ve dosyaları derleme çıktı dizinine kopyalanmıyorsa.json.
AddRazorSupportForMvc olduğundatrue, SDK'yı MVC görünümleri veya Razor Sayfaları içeren uygulamalar oluştururken gereken MVC yapılandırması için destek ekleyecek şekilde yapılandırıyorRazor. Bu özellik, Web SDK'sını hedefleyen .NET Core 3.0 veya üzeri projeler için örtük olarak ayarlanır
RazorLangVersion Hedef alınacak Dilin Razor sürümü.

Özellikler hakkında daha fazla bilgi için bkz . MSBuild özellikleri.

Targets

Razor SDK iki birincil hedef tanımlar:

  • RazorGenerate: Kod, .cs öğe öğelerinden RazorGenerate dosya oluşturur. Bu hedef öncesinde RazorGenerateDependsOn veya sonrasında çalışabilecek ek hedefler belirtmek için özelliğini kullanın.
  • RazorCompile: içinde oluşturulan .cs dosyaları bir Razor derlemeye derler. Bu hedef öncesinde veya sonrasında çalışabilecek ek hedefler belirtmek için öğesini RazorCompileDependsOn kullanın.
  • RazorComponentGenerate: Kod, .cs öğe öğeleri için RazorComponent dosyalar oluşturur. Bu hedef öncesinde RazorComponentGenerateDependsOn veya sonrasında çalışabilecek ek hedefler belirtmek için özelliğini kullanın.

Görünümlerin çalışma zamanı derlemesi Razor

  • Varsayılan olarak SDK, Razor çalışma zamanı derlemesi gerçekleştirmek için gereken başvuru derlemelerini yayımlamaz. Bu, uygulama modeli çalışma zamanı derlemesine bağlı olduğunda derleme hatalarıyla sonuçlanır; örneğin, uygulama yayımlandıktan sonra eklenmiş görünümler kullanır veya görünümleri değiştirir. Başvuru derlemelerini yayımlamaya devam etmek için CopyRefAssembliesToPublishDirectory olarak ayarlayıntrue.

  • Bir web uygulaması için uygulamanızın SDK'yı hedeflediğinden Microsoft.NET.Sdk.Web emin olun.

Razor dil sürümü

SDK hedeflenirken Microsoft.NET.Sdk.Web , Razor dil sürümü uygulamanın hedef çerçeve sürümünden çıkarılır. SDK'yı hedefleyen Microsoft.NET.Sdk.Razor projeler için veya nadiren de olsa uygulamanın çıkarılmış değerden farklı Razor bir dil sürümüne ihtiyaç duyması durumunda, uygulamanın proje dosyasında özelliği ayarlanarak <RazorLangVersion> bir sürüm yapılandırılabilir:

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

Razor'nin dil sürümü, oluşturulduğu çalışma zamanının sürümüyle sıkı bir şekilde tümleştirilmiştir. Çalışma zamanı için tasarlanmamış bir dil sürümünü hedefleme desteklenmiyor ve büyük olasılıkla derleme hataları oluşturuyor.

Ek kaynaklar

  • ASP.NET Core MVC tabanlı projeler için dosya içeren Razor projeler oluşturma, paketleme ve yayımlama deneyimini standartlaştırır.
  • Dosyaların derlenmesini Razor özelleştirmeye olanak sağlayan önceden tanımlanmış hedefler, özellikler ve öğeler kümesi içerir.

SDK, Razor globbing desenine ayarlanmış bir özniteliği olan Content bir Include**\*.cshtml öğe içerir. Eşleşen dosyalar yayımlanır.

Prerequisites

.NET Core 2.1 veya üzeri SDK

SDK'yi Razor kullanma

Çoğu web uygulamasının SDK'ya açıkça başvurması Razor gerekmez.

SDK'yi Razor kullanarak görünümler veya Razor Sayfalar içeren Razor sınıf kitaplıkları oluşturmak için:

  • yerine Microsoft.NET.Sdk.RazorkullanınMicrosoft.NET.Sdk:

    <Project SDK="Microsoft.NET.Sdk.Razor">
      <!-- omitted for brevity -->
    </Project>
    
  • Genellikle, Sayfaları ve Microsoft.AspNetCore.Mvc görünümleri derlemek ve derlemek RazorRazor için gereken ek bağımlılıkları almak için için bir paket başvurusu gerekir. Projeniz en azından aşağıdakilere paket başvuruları eklemelidir:

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

    Paket, Microsoft.AspNetCore.Razor.Design proje için derleme görevlerini ve hedeflerini sağlar Razor .

    Önceki paketler içinde Microsoft.AspNetCore.Mvcyer alır. Aşağıdaki işaretlemede, ASP.NET Core Razor Pages uygulaması için dosya oluşturmak Razor üzere SDK'nın kullanıldığı Razor bir proje dosyası gösterilmektedir:

    <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

Microsoft.AspNetCore.Razor.Design ve Microsoft.AspNetCore.Mvc.Razor.Extensions paketleri Microsoft.AspNetCore.App meta paketine dahil edilir. Ancak, sürüm içermeyen Microsoft.AspNetCore.App paket başvurusu, uygulamaya en son sürümünü Microsoft.AspNetCore.Razor.Designiçermeyen bir meta paket sağlar. Için en son derleme zamanı düzeltmelerinin Microsoft.AspNetCore.Razor.Design eklenmesi için projelerin tutarlı bir (veya Microsoft.AspNetCore.Mvc) sürümüne Razor başvurması gerekir. Daha fazla bilgi için bu GitHub konusuna bakın.

Properties

Aşağıdaki özellikler, proje derlemesinin Razorbir parçası olarak 'nin SDK davranışını denetler:

  • RazorCompileOnBuild: olduğunda true, derlemeyi Razor derler ve projeyi oluşturmanın bir parçası olarak yayar. varsayılan değeridir true.
  • RazorCompileOnPublish: olduğunda true, derlemeyi Razor derler ve projeyi yayımlamanın bir parçası olarak yayar. varsayılan değeridir true.

Aşağıdaki tabloda yer alan özellikler ve öğeler, SDK'ya yönelik girişleri ve çıktıları yapılandırmak için Razor kullanılır.

Items Description
RazorGenerate Kod oluşturma işlemine giriş olan öğe öğeleri (.cshtml dosyalar).
RazorComponent Bileşen kodu oluşturma işlemine .razor giriş olan öğe öğeleri (Razordosyalar).
RazorCompile Derleme hedeflerine .cs giriş olan öğe öğeleri (Razordosyalar). Derlemede ItemGroup derlenecek ek dosyaları belirtmek için bunu Razor kullanın.
RazorTargetAssemblyAttribute Derleme için öznitelikler oluşturmak üzere kod oluşturmak için Razor kullanılan öğe öğeleri. Örneğin:
RazorAssemblyAttribute
Include="System.Reflection.AssemblyMetadataAttribute"
_Parameter1="BuildSource" _Parameter2="https://learn.microsoft.com/">
RazorEmbeddedResource Oluşturulan Razor derlemeye ekli kaynaklar olarak eklenen öğe öğeleri.
Property Description
RazorTargetName tarafından Razorüretilen derlemenin dosya adı (uzantısız).
RazorOutputPath Çıkış Razor dizini.
RazorCompileToolset Derlemeyi derlemek için kullanılan araç takımını Razor belirlemek için kullanılır. Geçerli değerler: Implicit, RazorSDK ve PrecompilationTool.
EnableDefaultContentItems Varsayılan true değeridir. olduğundatrue, projede içerik olarak web.config. aracılığıyla Microsoft.NET.Sdk.Webbaşvurulduğunda, wwwroot ve yapılandırma dosyaları altındaki dosyalar da eklenir.
EnableDefaultRazorGenerateItems olduğundatrue, öğelerdeki .cshtml öğelerdeki Content dosyaları içerirRazorGenerate.
GenerateRazorTargetAssemblyInfo olduğundatrue, tarafından .cs belirtilen öznitelikleri içeren bir RazorAssemblyAttribute dosya oluşturur ve dosyayı derleme çıkışına ekler.
EnableDefaultRazorTargetAssemblyInfoAttributes olduğunda true, öğesine varsayılan bir derleme öznitelikleri RazorAssemblyAttributekümesi ekler.
CopyRazorGenerateFilesToPublishDirectory olduğundatrue, öğeleri (RazorGenerate) dosyaları yayımlama dizinine kopyalar.cshtml. Derleme zamanında veya yayımlama zamanında derlemeye katılan dosyalar genellikle Razor yayımlanmış bir uygulama için gerekli değildir. varsayılan değeridir false.
CopyRefAssembliesToPublishDirectory olduğunda true, başvuru derleme öğelerini yayımlama dizinine kopyalayın. Derleme derleme zamanında veya yayımlama zamanında gerçekleşirse Razor , genellikle yayımlanmış bir uygulama için başvuru derlemeleri gerekli değildir. true Yayımlanan uygulamanız çalışma zamanı derlemesi gerektiriyorsa olarak ayarlayın. Örneğin, uygulama çalışma zamanında dosyaları değiştirirse veya eklenmiş görünümler true kullanıyorsa değerini .cshtml olarak ayarlayın. varsayılan değeridir false.
IncludeRazorContentInPack olduğunda true, tüm Razor içerik öğeleri (.cshtml dosyalar) oluşturulan NuGet paketine dahil edilmek üzere işaretlenir. varsayılan değeridir false.
EmbedRazorGenerateSources olduğunda true, RazorGenerate (.cshtml) öğelerini oluşturulan Razor derlemeye eklenmiş dosyalar olarak ekler. varsayılan değeridir false.
UseRazorBuildServer olduğunda true, kod oluşturma işini boşaltmak için kalıcı bir derleme sunucusu işlemi kullanır. varsayılan değeridir UseSharedCompilation.
GenerateMvcApplicationPartsAssemblyAttributes olduğunda trueSDK, çalışma zamanında MVC tarafından uygulama parçası bulma gerçekleştirmek için kullanılan ek öznitelikler oluşturur.
DefaultWebContentItemExcludes Web veya Content SDK'yı hedefleyen projelerde öğe grubundan Razor dışlanacak öğe öğeleri için globing deseni
ExcludeConfigFilesFromBuildOutput , true ve dosyaları derleme çıktı dizinine kopyalanmıyorsa.json.
AddRazorSupportForMvc olduğundatrue, SDK'yı MVC görünümleri veya Razor Sayfaları içeren uygulamalar oluştururken gereken MVC yapılandırması için destek ekleyecek şekilde yapılandırıyorRazor. Bu özellik, Web SDK'sını hedefleyen .NET Core 3.0 veya üzeri projeler için örtük olarak ayarlanır
RazorLangVersion Hedef alınacak Dilin Razor sürümü.

Özellikler hakkında daha fazla bilgi için bkz . MSBuild özellikleri.

Targets

Razor SDK iki birincil hedef tanımlar:

  • RazorGenerate: Kod, .cs öğe öğelerinden RazorGenerate dosya oluşturur. Bu hedef öncesinde RazorGenerateDependsOn veya sonrasında çalışabilecek ek hedefler belirtmek için özelliğini kullanın.
  • RazorCompile: içinde oluşturulan .cs dosyaları bir Razor derlemeye derler. Bu hedef öncesinde veya sonrasında çalışabilecek ek hedefler belirtmek için öğesini RazorCompileDependsOn kullanın.
  • RazorComponentGenerate: Kod, .cs öğe öğeleri için RazorComponent dosyalar oluşturur. Bu hedef öncesinde RazorComponentGenerateDependsOn veya sonrasında çalışabilecek ek hedefler belirtmek için özelliğini kullanın.

Görünümlerin çalışma zamanı derlemesi Razor

  • Varsayılan olarak SDK, Razor çalışma zamanı derlemesi gerçekleştirmek için gereken başvuru derlemelerini yayımlamaz. Bu, uygulama modeli çalışma zamanı derlemesine bağlı olduğunda derleme hatalarıyla sonuçlanır; örneğin, uygulama yayımlandıktan sonra eklenmiş görünümler kullanır veya görünümleri değiştirir. Başvuru derlemelerini yayımlamaya devam etmek için CopyRefAssembliesToPublishDirectory olarak ayarlayıntrue.

  • Bir web uygulaması için uygulamanızın SDK'yı hedeflediğinden Microsoft.NET.Sdk.Web emin olun.

Razor dil sürümü

SDK hedeflenirken Microsoft.NET.Sdk.Web , Razor dil sürümü uygulamanın hedef çerçeve sürümünden çıkarılır. SDK'yı hedefleyen Microsoft.NET.Sdk.Razor projeler için veya nadiren de olsa uygulamanın çıkarılmış değerden farklı Razor bir dil sürümüne ihtiyaç duyması durumunda, uygulamanın proje dosyasında özelliği ayarlanarak <RazorLangVersion> bir sürüm yapılandırılabilir:

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

Razor'nin dil sürümü, oluşturulduğu çalışma zamanının sürümüyle sıkı bir şekilde tümleştirilmiştir. Çalışma zamanı için tasarlanmamış bir dil sürümünü hedefleme desteklenmiyor ve büyük olasılıkla derleme hataları oluşturuyor.

Ek kaynaklar