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
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 (.cshtml
dosyalar) 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ğundatrue
, derlemeyi Razor derler ve projeyi oluşturmanın bir parçası olarak yayar. varsayılan değeridirtrue
.RazorCompileOnPublish
: olduğundatrue
, derlemeyi Razor derler ve projeyi yayımlamanın bir parçası olarak yayar. varsayılan değeridirtrue
.UseRazorSourceGenerator
: varsayılan değeridirtrue
. Zamanı:true
- Kaynak oluşturma kullanarak derler.
- oluşturmaz
<app_name>.Views.dll
. Görünümler içinde<app_name>.dll
bulunur. - .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 (.razor dosyalar). |
RazorCompile |
Derleme hedeflerine Razor giriş olan öğe öğeleri (.cs dosyalar). 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, .json ve .cshtml dosyaları içerir. aracılığıyla Microsoft.NET.Sdk.Web baş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 true ayarlandığı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
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 (.cshtml
dosyalar) 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ğundatrue
, derlemeyi Razor derler ve projeyi oluşturmanın bir parçası olarak yayar. varsayılan değeridirtrue
.RazorCompileOnPublish
: olduğundatrue
, derlemeyi Razor derler ve projeyi yayımlamanın bir parçası olarak yayar. varsayılan değeridirtrue
.
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 (.razor dosyalar). |
RazorCompile |
Derleme hedeflerine Razor giriş olan öğe öğeleri (.cs dosyalar). 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, .json ve .cshtml dosyaları içerir. aracılığıyla Microsoft.NET.Sdk.Web baş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 RazorAssemblyAttribute kü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 true SDK, ç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 öğelerindenRazorGenerate
dosya oluşturur. Bu hedef öncesindeRazorGenerateDependsOn
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 öğesiniRazorCompileDependsOn
kullanın.RazorComponentGenerate
: Kod,.cs
öğe öğeleri içinRazorComponent
dosyalar oluşturur. Bu hedef öncesindeRazorComponentGenerateDependsOn
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
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
kullanı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.Mvc
yer 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.Design
iç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ğundatrue
, derlemeyi Razor derler ve projeyi oluşturmanın bir parçası olarak yayar. varsayılan değeridirtrue
.RazorCompileOnPublish
: olduğundatrue
, derlemeyi Razor derler ve projeyi yayımlamanın bir parçası olarak yayar. varsayılan değeridirtrue
.
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 (.razor dosyalar). |
RazorCompile |
Derleme hedeflerine Razor giriş olan öğe öğeleri (.cs dosyalar). 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, .json ve .cshtml dosyaları içerir. aracılığıyla Microsoft.NET.Sdk.Web baş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 RazorAssemblyAttribute kü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 true SDK, ç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 öğelerindenRazorGenerate
dosya oluşturur. Bu hedef öncesindeRazorGenerateDependsOn
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 öğesiniRazorCompileDependsOn
kullanın.RazorComponentGenerate
: Kod,.cs
öğe öğeleri içinRazorComponent
dosyalar oluşturur. Bu hedef öncesindeRazorComponentGenerateDependsOn
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