Aracılığıyla paylaş


ASP.NET Core Razor SDK

Gönderen Rick Anderson

Genel bakış

.NET 6.0 SDK'sı MSBuild SDK'sını Microsoft.NET.Sdk.Razor (Razor SDK) içerir. The 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 (.cshtml veya .razor) dosyalarının Razor derlenmesini özelleştirmeye olanak sağlayan öğeler içerir.

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

Önkoşullar

.NET 6.0 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 (.cshtmldosyalar) oluşturmak Razor için kullanılan bir RCL en az hedefleme netcoreapp3.0 veya sonraki bir sürümü gerektirir ve FrameworkReference proje 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 Açıklama
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 Razor giriş olan öğe öğeleri (.csdosyalar). Derlemede Razor derlenecek ek dosyaları belirtmek için bunu ItemGroup kullanın.
RazorEmbeddedResource Oluşturulan Razor derlemeye ekli kaynaklar olarak eklenen öğe öğeleri.
Özellik Açıklama
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, .jsonve .cshtml dosyaları içerir. aracılığıyla Microsoft.NET.Sdk.Webbaşvurulduğunda, wwwroot ve yapılandırma dosyaları altındaki dosyalar da eklenir.
EnableDefaultRazorGenerateItems olduğundatrue, öğelerdeki RazorGenerate öğelerdeki Content dosyaları içerir.cshtml.
GenerateRazorTargetAssemblyInfo .NET 6 ve sonraki sürümlerde kullanılmaz.
EnableDefaultRazorTargetAssemblyInfoAttributes .NET 6 ve sonraki sürümlerde kullanılmaz.
CopyRazorGenerateFilesToPublishDirectory olduğundatrue, öğeleri (.cshtml) dosyaları yayımlama dizinine kopyalarRazorGenerate. 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 .cshtml kullanıyorsa değerini true 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 ve sonraki sürümlerde kullanılmaz.
DefaultWebContentItemExcludes Web veya Razor SDK'yı hedefleyen projelerde öğe grubundan Content dışlanacak öğe öğeleri için globing deseni
ExcludeConfigFilesFromBuildOutput , .config ve .json dosyaları derleme çıktı dizinine kopyalanmıyorsatrue.
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 true olarak ayarlayınCopyRefAssembliesToPublishDirectory. 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 SDK veya üzeri MSBuild SDK'sını Microsoft.NET.Sdk.Razor (Razor SDK) içerir. The Razor SDK:

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

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

Önkoşullar

.NET Core 2.1 SDK veya üzeri

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 (.cshtmldosyalar) oluşturmak Razor için kullanılan bir RCL en az hedefleme netcoreapp3.0 veya sonraki bir sürümü gerektirir ve FrameworkReference proje 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.

Uyarı

ASP.NET Core 3.0'dan başlayarak, proje dosyasındaki RazorCompileOnBuild veya MSBuild özellikleri devre dışı bırakılırsa MVC Görünümleri veya Razor RazorCompileOnPublish Sayfaları varsayılan olarak sunulmaz. Uygulamaların Microsoft.AspNetCore.Mvc'ye açık bir başvuru eklemesi gerekir.Razor Uygulama dosyaları işlemek .cshtml için çalışma zamanı derlemesine bağlıysa RuntimeCompilation paketi.

Items Açıklama
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 Razor giriş olan öğe öğeleri (.csdosyalar). Derlemede Razor derlenecek ek dosyaları belirtmek için bunu ItemGroup 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.
Özellik Açıklama
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, .jsonve .cshtml dosyaları içerir. aracılığıyla Microsoft.NET.Sdk.Webbaşvurulduğunda, wwwroot ve yapılandırma dosyaları altındaki dosyalar da eklenir.
EnableDefaultRazorGenerateItems olduğundatrue, öğelerdeki RazorGenerate öğelerdeki Content dosyaları içerir.cshtml.
GenerateRazorTargetAssemblyInfo olduğundatrue, tarafından RazorAssemblyAttribute belirtilen öznitelikleri içeren bir .cs 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 (.cshtml) dosyaları yayımlama dizinine kopyalarRazorGenerate. 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 .cshtml kullanıyorsa değerini true 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 Razor SDK'yı hedefleyen projelerde öğe grubundan Content dışlanacak öğe öğeleri için globing deseni
ExcludeConfigFilesFromBuildOutput , .config ve .json dosyaları derleme çıktı dizinine kopyalanmıyorsatrue.
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.

Hedefler

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 true olarak ayarlayınCopyRefAssembliesToPublishDirectory.

  • 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 **\*.cshtml bir Content Include öğe içerir. Eşleşen dosyalar yayımlanır.

Önkoşullar

.NET Core 2.1 SDK veya üzeri

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.SdkkullanınMicrosoft.NET.Sdk.Razor:

    <Project SDK="Microsoft.NET.Sdk.Razor">
      <!-- omitted for brevity -->
    </Project>
    
  • Genellikle, Sayfaları ve Razor görünümleri derlemek ve derlemek Microsoft.AspNetCore.Mvc Razor 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>
    

Uyarı

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 Açıklama
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 Razor giriş olan öğe öğeleri (.csdosyalar). Derlemede Razor derlenecek ek dosyaları belirtmek için bunu ItemGroup 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.
Özellik Açıklama
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, .jsonve .cshtml dosyaları içerir. aracılığıyla Microsoft.NET.Sdk.Webbaşvurulduğunda, wwwroot ve yapılandırma dosyaları altındaki dosyalar da eklenir.
EnableDefaultRazorGenerateItems olduğundatrue, öğelerdeki RazorGenerate öğelerdeki Content dosyaları içerir.cshtml.
GenerateRazorTargetAssemblyInfo olduğundatrue, tarafından RazorAssemblyAttribute belirtilen öznitelikleri içeren bir .cs 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 (.cshtml) dosyaları yayımlama dizinine kopyalarRazorGenerate. 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 .cshtml kullanıyorsa değerini true 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 Razor SDK'yı hedefleyen projelerde öğe grubundan Content dışlanacak öğe öğeleri için globing deseni
ExcludeConfigFilesFromBuildOutput , .config ve .json dosyaları derleme çıktı dizinine kopyalanmıyorsatrue.
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.

Hedefler

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 true olarak ayarlayınCopyRefAssembliesToPublishDirectory.

  • 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