ASP.NET Core Razor 'SıNıN

Gönderen Rick Anderson

Genel Bakış

, .NET 6,0 SDK Microsoft.NET.Sdk.Razor MSBuild sdk 'yı ( Razor sdk) içerir. RazorSDK:

  • RazorASP.NET Core MVC tabanlı veya projeleri için dosya içeren projeleri derlemek, paketlemek ve yayımlamak için gereklidir Blazor .
  • Önceden tanımlanmış bir özellikler kümesi ve Razor (. cshtml veya . Razor) dosyalarının derlemesini özelleştirmeye izin veren öğeleri içerir.

RazorSDK, Content Include **\*.cshtml ve **\*.razor Glob desenlerine ayarlanmış öznitelikleri olan öğeleri içerir. Eşleşen dosyalar yayımlandı.

Önkoşullar

.NET 6,0 SDK

RazorSDK 'yı kullanma

Çoğu Web uygulaması SDK 'ya açık olarak başvurmak için gerekli değildir Razor .

RazorSDK 'yı, görünümler veya sayfalar içeren sınıf kitaplıkları oluşturmak üzere kullanmak için Razor Razor , Razor sınıf kitaplığı (RCL) proje şablonuyla başlamasını öneririz. Blazor(. Razor) dosyalarını derlemek için kullanılan bir RCL, Microsoft. aspnetcore. Components paketine en az bir başvuru gerektirir. RazorGörünümleri veya sayfaları (. cshtml dosyaları) oluşturmak için kullanılan bir RCL netcoreapp3.0 , hedeflemesi veya daha yenisini gerektirir ve FrameworkReference onun proje dosyasında Microsoft.AspNetCore.app metapackage öğesine sahip olmalıdır.

Özellikler

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

  • RazorCompileOnBuild: Ne zaman true , Razor derlemeyi proje oluşturmanın bir parçası olarak derler ve yayar. Varsayılan olarak olur true .
  • RazorCompileOnPublish: Ne zaman true , Razor derlemeyi proje yayımlamanın bir parçası olarak derler ve yayar. Varsayılan olarak olur true .

Aşağıdaki tablodaki Özellikler ve öğeler, SDK 'ya giriş ve çıkış yapılandırmak için kullanılır Razor .

Öğeler Açıklama
RazorGenerate Kod oluşturmaya giriş olan öğe öğeleri (. cshtml dosyaları).
RazorComponent Bileşen kodu oluşturmaya giriş olan öğe öğeleri (. Razor dosyaları) Razor .
RazorCompile Derleme hedeflerine giriş olan öğe öğeleri (. cs dosyaları) Razor . ItemGroupDerlemeye derlenecek ek dosyaları belirtmek için bunu kullanın Razor .
RazorEmbeddedResource Oluşturulan derlemeye gömülü kaynaklar olarak eklenen öğe öğeleri Razor .
Özellik Açıklama
RazorOutputPath RazorÇıkış dizini.
RazorCompileToolset Derlemeyi derlemek için kullanılan araç takımını tespit etmek için kullanılır Razor . Geçerli değerler Implicit , RazorSDK , ve PrecompilationTool .
Enabledefaultcontentıtems true varsayılan değerdir. Ne zaman true , web.config, . JSON ve . cshtml dosyalarını projede içerik olarak içerir. Aracılığıyla başvurulduğunda Microsoft.NET.Sdk.Web , Wwwroot ve yapılandırma dosyaları altındaki dosyalar da dahil edilmiştir.
EnableDefaultRazorGenerateItems Ne zaman true , öğelerdeki öğelerden . cshtml dosyalarını içerir Content RazorGenerate .
GenerateRazorTargetAssemblyInfo .NET 6 ve üzeri sürümlerde kullanılmaz.
EnableDefaultRazorTargetAssemblyInfoAttributes .NET 6 ve üzeri sürümlerde kullanılmaz.
CopyRazorGenerateFilesToPublishDirectory Ne zaman true , RazorGenerate öğe (. cshtml) dosyalarını yayımlama dizinine kopyalar. Genellikle, derleme Razor zamanında veya yayımlama zamanında derlemeye katılırsanız yayımlanmış bir uygulama için dosyalar gerekli değildir. Varsayılan olarak olur false .
PreserveCompilationReferences Ne zaman true , başvuru derleme öğelerini yayımlama dizinine kopyalayın. Genellikle, derleme Razor zamanında veya yayımlama zamanında derleme gerçekleşirse yayımlanmış bir uygulama için başvuru derlemeleri gerekli değildir. trueYayımlanmış uygulamanız çalışma zamanı derlemesi gerektiriyorsa, olarak ayarlayın. Örneğin, true uygulama çalışma zamanında . cshtml dosyalarını değiştirirse veya gömülü görünümleri kullanıyorsa, değerini olarak ayarlayın. Varsayılan olarak olur false .
IncludeRazorContentInPack ne zaman true , tüm Razor içerik öğeleri (. cshtml dosyaları) oluşturulan NuGet paketine eklenmek üzere işaretlenir. Varsayılan olarak olur false .
EmbedRazorGenerateSources Ne zaman true , Razor oluşturulan derlemeye katıştırılmış dosyalar olarak Generate (. cshtml) öğeleri ekler Razor . Varsayılan olarak olur false .
GenerateMvcApplicationPartsAssemblyAttributes .NET 6 ve üzeri sürümlerde kullanılmaz.
DefaultWebContentItemExcludes ContentWeb veya SDK 'yı hedefleyen projelerde öğe grubundan çıkarılacak öğe öğeleri için glob bir model Razor
ExcludeConfigFilesFromBuildOutput Ne zaman true , .config ve . JSON dosyaları derleme çıkış dizinine kopyalanmaz.
AddRazorSupportForMvc Ne zaman true , Razor MVC görünümlerini veya sayfalarını içeren uygulamalar oluştururken gereklı olan MVC yapılandırmasına yönelik destek eklemek için SDK 'yı yapılandırır Razor . Bu özellik, Web SDK 'sını hedefleyen .NET Core 3,0 veya üzeri projeler için örtük olarak ayarlanmıştır
RazorLangVersion RazorHedeflenecek dilin sürümü.
EmitCompilerGeneratedFiles Olarak ayarlandığında true , oluşturulan kaynak dosyalar diske yazılır. Ayarı true , derleyicide hata ayıklanırken faydalı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ı derlemesini gerçekleştirmek için gerekli olan başvuru derlemelerini yayımlamaz. Bu durum, uygulama modeli çalışma zamanı derlemesini kullandığında derleme hatalarıyla sonuçlanır — . uygulama yayımlandıktan sonra uygulama gömülü görünümleri veya değişiklik görünümlerini kullanır. CopyRefAssembliesToPublishDirectory true Başvuru derlemelerini yayımlamaya devam etmek için olarak ayarlayın. Hem kod oluşturma hem de derleme derleyiciye tek bir çağrı tarafından desteklenir. Uygulama türlerini ve üretilen görünümleri içeren tek bir bütünleştirilmiş kod oluşturulur.

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

Razor dil sürümü

Microsoft.NET.Sdk.WebSDK 'yı hedeflerken, Razor dil sürümü uygulamanın hedef Framework sürümünden algılanır. SDK 'yı hedefleyen projeler Microsoft.NET.Sdk.Razor veya uygulamanın Razor çıkarılan değerden farklı bir dil sürümü gerektirmesi durumunda, <RazorLangVersion> uygulamanın proje dosyasındaki özelliği ayarlanarak bir sürüm yapılandırılabilir:

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

Razordil sürümü, için oluşturulduğu çalışma zamanının sürümü ile sıkı bir şekilde tümleşiktir. Çalışma zamanı için tasarlanmamış bir dil sürümünü hedeflemek desteklenmez ve muhtemelen derleme hataları üretir.

Ek kaynaklar

, .NET Core 2.1 SDK veya üzeri Microsoft.NET.Sdk.Razor MSBuild sdk 'yı ( Razor sdk) içerir. RazorSDK:

  • RazorASP.NET Core MVC tabanlı veya projeleri için dosya içeren projeleri derlemek, paketlemek ve yayımlamak için gereklidir Blazor .
  • Razor(. Cshtml veya . Razor) dosyalarının derlemesini özelleştirmeye izin veren bir dizi önceden tanımlanmış hedef, özellik ve öğe içerir.

RazorSDK, Content Include **\*.cshtml ve **\*.razor Glob desenlerine ayarlanmış öznitelikleri olan öğeleri içerir. Eşleşen dosyalar yayımlandı.

Önkoşullar

.NET Core 2.1 SDK veya üzeri

RazorSDK 'yı kullanma

Çoğu Web uygulaması SDK 'ya açık olarak başvurmak için gerekli değildir Razor .

RazorSDK 'yı, görünümler veya sayfalar içeren sınıf kitaplıkları oluşturmak üzere kullanmak için Razor Razor , Razor sınıf kitaplığı (RCL) proje şablonuyla başlamasını öneririz. Blazor(. Razor) dosyalarını derlemek için kullanılan bir RCL, Microsoft. aspnetcore. Components paketine en az bir başvuru gerektirir. RazorGörünümleri veya sayfaları (. cshtml dosyaları) oluşturmak için kullanılan bir RCL netcoreapp3.0 , hedeflemesi veya daha yenisini gerektirir ve FrameworkReference onun proje dosyasında Microsoft.AspNetCore.app metapackage öğesine sahip olmalıdır.

Özellikler

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

  • RazorCompileOnBuild: Ne zaman true , Razor derlemeyi proje oluşturmanın bir parçası olarak derler ve yayar. Varsayılan olarak olur true .
  • RazorCompileOnPublish: Ne zaman true , Razor derlemeyi proje yayımlamanın bir parçası olarak derler ve yayar. Varsayılan olarak olur true .

Aşağıdaki tablodaki Özellikler ve öğeler, SDK 'ya giriş ve çıkış yapılandırmak için kullanılır Razor .

Uyarı

ASP.NET Core 3,0 ' den başlayarak, Razor RazorCompileOnBuild RazorCompileOnPublish proje dosyasındaki veya MSBuild özellikleri devre dışı bırakılmışsa MVC görünümleri veya sayfaları varsayılan olarak sunulmuyor. Uygulamalar, Microsoft.AspNetCore.Mvc. için açık bir başvuru eklemeli. Razor . Uygulama .cshtml dosyalarını işlemeye çalışma zamanı derlemesi bağlı ise RuntimeCompilation paketi.

Öğeler Açıklama
RazorGenerate Kod oluşturma için giriş olan öğe öğeleri (.cshtml dosyaları).
RazorComponent Bileşen kodu oluşturma için giriş olan öğe öğeleri (.razor Razor dosyaları).
RazorCompile Derleme hedeflerine giriş olan öğe öğeleri (.cs Razor dosyaları). Derlemede ItemGroup derlenecek ek dosyaları belirtmek için bunu Razor kullanın.
RazorTargetAssemblyAttribute Derleme için öznitelikler oluşturmak için kod kullanılan öğe Razor öğeleri. Örnek:
RazorAssemblyAttribute
Include="System.Reflection.AssemblyMetadataAttribute"
_Parameter1="BuildSource" _Parameter2="https://docs.microsoft.com/">
RazorEmbeddedResource Oluşturulan derlemeye eklenmiş kaynaklar olarak eklenen öğe Razor öğeleri.
Özellik Açıklama
RazorTargetName tarafından üretilen derlemenin dosya adı (uzantı Razor olmadan).
RazorOutputPath Çıkış Razor dizini.
RazorCompileToolset Derlemeyi derlemek için kullanılan araç kümesi belirlemek için Razor kullanılır. Geçerli değerler Implicit : , ve RazorSDK PrecompilationTool .
EnableDefaultContentItems true varsayılan değerdir. trueolduğunda, web.config, .json ve .cshtml dosyalarını içerir. üzerinden Microsoft.NET.Sdk.Web başvurulsa, wwwroot ve yapılandırma dosyaları altındaki dosyalar da dahil edilir.
EnableDefaultRazorGenerateItems trueolduğunda, öğelerdeki öğelerden .cshtml Content dosyalarını RazorGenerate içerir.
GenerateRazorTargetAssemblyInfo olduğunda, true tarafından belirtilen öznitelikleri içeren bir .cs dosyası oluşturur RazorAssemblyAttribute ve dosyayı derleme çıkışına içerir.
EnableDefaultRazorTargetAssemblyInfoAttributes olduğunda, true 'ye varsayılan bir derleme öznitelikleri kümesi RazorAssemblyAttribute ekler.
CopyRazorGenerateFilesToPublishDirectory olduğunda true öğeleri RazorGenerate (.cshtml) yayımlama dizinine kopyalar. Genellikle derleme zamanında veya yayımlama zamanında derlemeye katılan yayımlanmış bir uygulama için Razor dosyalar gerekli değildir. Varsayılan olarak false kullanılır.
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, genellikle, yayımlanmış bir uygulama için Razor başvuru derlemeleri gerekli değildir. Yayımlanmış true uygulamanız çalışma zamanı derlemesi gerektiriyorsa olarak ayarlayın. Örneğin, uygulama çalışma zamanında true .cshtml dosyalarını veya katıştırılmış görünümleri kullanıyorsa değerini olarak ayarlayın. Varsayılan olarak false kullanılır.
IncludeRazorContentInPack olduğunda, true tüm içerik öğeleri ( Razor .cshtml dosyaları) oluşturulan pakete dahil NuGet işaretlenir. Varsayılan olarak false kullanılır.
EmbedRazorGenerateSources trueolduğunda, Razor Generate (.cshtml) öğelerini, oluşturulan derlemeye katıştırılmış dosyalar olarak Razor ekler. Varsayılan olarak false kullanılır.
UseRazorBuildServer olduğunda, true kod oluşturma işlemini boşaltmak için kalıcı bir derleme sunucusu işlemi kullanır. Varsayılan olarak değerini UseSharedCompilation kullanır.
GenerateMvcApplicationPartsAssemblyAttributes olduğunda true SDK, uygulama parçası bulma işlemini gerçekleştirmek için çalışma zamanında MVC tarafından kullanılan ek öznitelikler üretir.
DefaultWebContentItemExcludes Web veya SDK'yı hedef alan projelerde öğe grubundan hariç tutulacak öğe öğeleri için bir Content globing Razor deseni
ExcludeConfigFilesFromBuildOutput true, .config ve .json dosyaları derleme çıkış dizinine kopyalanmaz.
AddRazorSupportForMvc olduğunda, SDK'yı MVC görünümleri veya Sayfaları içeren uygulamalar yapılandırılırken gereken MVC yapılandırması için true destek eklemek üzere Razor Razor yapılandırıyor. Bu özellik, Web SDK'yı hedef alan .NET Core 3.0 veya sonraki projeler için örtülü olarak ayarlanır
RazorLangVersion Hedef dil Razor sürümü.

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

Targets

RazorSDK iki birincil hedef tanımlar:

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

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

  • Varsayılan olarak Razor SDK, çalışma zamanı derlemesi gerçekleştirmek için gereken başvuru derlemelerini yayımlamaz. Bu, uygulama modeli çalışma zamanı derlemesini kullandığında derleme hatalarına neden olur. Örneğin uygulama, eklenmiş görünümleri kullanır veya uygulama — yayımlandıktan sonra görünümleri değiştirir. Başvuru CopyRefAssembliesToPublishDirectory true derlemelerini yayımlamaya devam etmek için olarak ayarlayın.

  • Bir web uygulaması için, uygulamanın SDK'yı hedefleyenin. Microsoft.NET.Sdk.Web

Razor dil sürümü

SDK'yı Microsoft.NET.Sdk.Web hedeflerken Razor dil sürümü, uygulamanın hedef çerçeve sürümünden edinildi. SDK'yı hedef alan projeler için veya uygulamanın, görülen değerden farklı bir dil sürümü gerektirdiği nadir durumlarda, uygulamanın proje dosyasındaki özelliği ayararak bir sürüm Microsoft.NET.Sdk.Razor Razor <RazorLangVersion> yalıtabilirsiniz:

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

Razor'nin dil sürümü, çalışma zamanının yerleşik 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 desteklenmez ve büyük olasılıkla derleme hataları üretir.

Ek kaynaklar

  • MVC tabanlı projeler için dosya içeren projelerin ASP.NET Core, Razor paketleme ve yayımlama deneyimini standart hale getirebilirsiniz.
  • Dosyaların derlemesini özelleştirmeye olanak sağlayan önceden tanımlanmış hedefler, özellikler ve öğeler kümesi Razor içerir.

RazorSDK, glob Content desene Include ayarlanmış bir öznitelik içeren bir öğe **\*.cshtml içerir. Eşleşen dosyalar yayımlanır.

Önkoşullar

.NET Core 2.1 SDK veya üzeri

RazorSDK'yı kullanma

Çoğu web uygulaması, SDK'ya açıkça başvurarak gerekli Razor değildir.

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

  • yerine Microsoft.NET.Sdk.Razor Microsoft.NET.Sdk kullanın:

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

    • 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 Razor hedeflerini sağlar.

    Yukarıdaki paketler içinde yer Microsoft.AspNetCore.Mvc almaktadır. Aşağıdaki işaretleme, ASP.NET Core Pages uygulaması için dosya derlemek için Razor Razor SDK'yı kullanan bir Razor proje dosyasını gösterir:

    <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ı

ve Microsoft.AspNetCore.Razor.Design Microsoft.AspNetCore.Mvc.Razor.Extensions paketleri, meta Microsoft.AspNetCore.App dahil edilir. Ancak, sürüm olmayan paket başvurusu, uygulamaya en son sürümünü dahil olmayan Microsoft.AspNetCore.App bir meta paket Microsoft.AspNetCore.Razor.Design sağlar. Projelerin tutarlı bir sürümüne Microsoft.AspNetCore.Razor.Design (veya Microsoft.AspNetCore.Mvc ) başvurarak en son derleme zamanı düzeltmelerinin dahil Razor olması gerekir. Daha fazla bilgi için bu soruna GitHub bakın.

Özellikler

Aşağıdaki özellikler proje Razor derlemesi kapsamında SDK davranışını kontrol altına almaktadır:

  • RazorCompileOnBuild: true olduğunda, derlemeyi proje Razor derlemenin bir parçası olarak derler ve yalıtır. Varsayılan olarak true kullanılır.
  • RazorCompileOnPublish: true olduğunda, derlemeyi projeyi yayımlamanın Razor bir parçası olarak derler ve yalıtır. Varsayılan olarak true kullanılır.

Sdk'ya giriş ve çıkış yapılandırmak için aşağıdaki tablodaki özellikler ve Razor öğeler kullanılır.

Öğeler Açıklama
RazorGenerate Kod oluşturma için giriş olan öğe öğeleri (.cshtml dosyaları).
RazorComponent Bileşen kodu oluşturma için giriş olan öğe öğeleri (.razor Razor dosyaları).
RazorCompile Derleme hedeflerine giriş olan öğe öğeleri (.cs Razor dosyaları). Derlemede ItemGroup derlenecek ek dosyaları belirtmek için bunu Razor kullanın.
RazorTargetAssemblyAttribute Derleme için öznitelikler oluşturmak için kod kullanılan öğe Razor öğeleri. Örnek:
RazorAssemblyAttribute
Include="System.Reflection.AssemblyMetadataAttribute"
_Parameter1="BuildSource" _Parameter2="https://docs.microsoft.com/">
RazorEmbeddedResource Oluşturulan derlemeye eklenmiş kaynaklar olarak eklenen öğe Razor öğeleri.
Özellik Açıklama
RazorTargetName Tarafından üretilen derlemenin dosya adı (uzantısı olmadan) Razor .
RazorOutputPath RazorÇıkış dizini.
RazorCompileToolset Derlemeyi derlemek için kullanılan araç takımını tespit etmek için kullanılır Razor . Geçerli değerler Implicit , RazorSDK , ve PrecompilationTool .
Enabledefaultcontentıtems true varsayılan değerdir. Ne zaman true , web.config, . JSON ve . cshtml dosyalarını projede içerik olarak içerir. Aracılığıyla başvurulduğunda Microsoft.NET.Sdk.Web , Wwwroot ve yapılandırma dosyaları altındaki dosyalar da dahil edilmiştir.
EnableDefaultRazorGenerateItems Ne zaman true , öğelerdeki öğelerden . cshtml dosyalarını içerir Content RazorGenerate .
GenerateRazorTargetAssemblyInfo Ne zaman true , tarafından belirtilen öznitelikleri içeren bir . cs dosyası oluşturur RazorAssemblyAttribute ve derleme çıkışında dosyasını içerir.
EnableDefaultRazorTargetAssemblyInfoAttributes Ne zaman true , ' a bir varsayılan derleme öznitelikleri kümesi ekler RazorAssemblyAttribute .
CopyRazorGenerateFilesToPublishDirectory Ne zaman true , RazorGenerate öğe (. cshtml) dosyalarını yayımlama dizinine kopyalar. Genellikle, derleme Razor zamanında veya yayımlama zamanında derlemeye katılırsanız yayımlanmış bir uygulama için dosyalar gerekli değildir. Varsayılan olarak olur false .
CopyRefAssembliesToPublishDirectory Ne zaman true , başvuru derleme öğelerini yayımlama dizinine kopyalayın. Genellikle, derleme Razor zamanında veya yayımlama zamanında derleme gerçekleşirse yayımlanmış bir uygulama için başvuru derlemeleri gerekli değildir. trueYayımlanmış uygulamanız çalışma zamanı derlemesi gerektiriyorsa, olarak ayarlayın. Örneğin, true uygulama çalışma zamanında . cshtml dosyalarını değiştirirse veya gömülü görünümleri kullanıyorsa, değerini olarak ayarlayın. Varsayılan olarak olur false .
IncludeRazorContentInPack ne zaman true , tüm Razor içerik öğeleri (. cshtml dosyaları) oluşturulan NuGet paketine eklenmek üzere işaretlenir. Varsayılan olarak olur false .
EmbedRazorGenerateSources Ne zaman true , Razor oluşturulan derlemeye katıştırılmış dosyalar olarak Generate (. cshtml) öğeleri ekler Razor . Varsayılan olarak olur false .
UseRazorBuildServer Ne zaman true , kod oluşturma işinin yükünü boşaltmak için kalıcı bir yapı sunucusu işlemi kullanır. Varsayılan değer olarak değeridir UseSharedCompilation .
GenerateMvcApplicationPartsAssemblyAttributes Ne zaman true , SDK, uygulama bölümü keşfi gerçekleştirmek için çalışma ZAMANıNDA MVC tarafından kullanılan ek öznitelikler üretir.
DefaultWebContentItemExcludes ContentWeb veya SDK 'yı hedefleyen projelerde öğe grubundan çıkarılacak öğe öğeleri için glob bir model Razor
ExcludeConfigFilesFromBuildOutput Ne zaman true , .config ve . JSON dosyaları derleme çıkış dizinine kopyalanmaz.
AddRazorSupportForMvc Ne zaman true , Razor MVC görünümlerini veya sayfalarını içeren uygulamalar oluştururken gereklı olan MVC yapılandırmasına yönelik destek eklemek için SDK 'yı yapılandırır Razor . Bu özellik, Web SDK 'sını hedefleyen .NET Core 3,0 veya üzeri projeler için örtük olarak ayarlanmıştır
RazorLangVersion RazorHedeflenecek dilin sürümü.

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

Targets

RazorSDK iki birincil hedefi tanımlar:

  • RazorGenerate: Kod, öğe öğelerinden . cs dosyaları oluşturur RazorGenerate . RazorGenerateDependsOnBu hedeften önce veya sonra çalışabilecek ek hedefleri belirtmek için özelliğini kullanın.
  • RazorCompile: İçinde oluşturulan . cs dosyalarını derleme için derler Razor . RazorCompileDependsOnBu hedeften önce veya sonra çalışabilecek ek hedefleri belirtmek için öğesini kullanın.
  • RazorComponentGenerate: Kod, öğe öğeleri için . cs dosyaları oluşturur RazorComponent . RazorComponentGenerateDependsOnBu hedeften önce veya sonra çalışabilecek ek hedefleri belirtmek için özelliğini kullanın.

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

  • Varsayılan olarak SDK, Razor çalışma zamanı derlemesini gerçekleştirmek için gerekli olan başvuru derlemelerini yayımlamaz. Bu durum, uygulama modeli çalışma zamanı derlemesini kullandığında derleme hatalarıyla sonuçlanır — . uygulama yayımlandıktan sonra uygulama gömülü görünümleri veya değişiklik görünümlerini kullanır. CopyRefAssembliesToPublishDirectory true Başvuru derlemelerini yayımlamaya devam etmek için olarak ayarlayın.

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

Razor dil sürümü

Microsoft.NET.Sdk.WebSDK 'yı hedeflerken, Razor dil sürümü uygulamanın hedef Framework sürümünden algılanır. SDK 'yı hedefleyen projeler Microsoft.NET.Sdk.Razor veya uygulamanın Razor çıkarılan değerden farklı bir dil sürümü gerektirmesi durumunda, <RazorLangVersion> uygulamanın proje dosyasındaki özelliği ayarlanarak bir sürüm yapılandırılabilir:

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

Razordil sürümü, için oluşturulduğu çalışma zamanının sürümü ile sıkı bir şekilde tümleşiktir. Çalışma zamanı için tasarlanmamış bir dil sürümünü hedeflemek desteklenmez ve muhtemelen derleme hataları üretir.

Ek kaynaklar