ASP.NET Core Razor SDK
Oleh Rick Anderson
Gambaran Umum
.NET 6.0 SDK mencakup Microsoft.NET.Sdk.Razor
MSBuild SDK (Razor SDK). The Razor SDK:
- Diperlukan untuk membangun, mengemas, dan menerbitkan proyek yang berisi Razor file untuk ASP.NET berbasis Core MVC atau Blazor proyek.
- Termasuk sekumpulan properti yang telah ditentukan sebelumnya, dan item yang memungkinkan penyesuaian Razor kompilasi file (
.cshtml
atau.razor
) .
Razor SDK menyertakan Content
item dengan Include
atribut yang diatur ke **\*.cshtml
pola dan **\*.razor
globbing. File yang cocok diterbitkan.
Prasyarat
Razor Menggunakan SDK
Sebagian besar aplikasi web tidak diperlukan untuk mereferensikan Razor SDK secara eksplisit.
Untuk menggunakan Razor SDK untuk membuat pustaka kelas yang berisi Razor tampilan atau Razor Halaman, sebaiknya mulai dengan Razor templat proyek pustaka kelas (RCL). RCL yang digunakan untuk membangun Blazor (.razor
) file secara minimal memerlukan referensi ke paket Microsoft.AspNetCore.Components . RCL yang digunakan untuk membangun Razor tampilan atau halaman (.cshtml
file) minimal memerlukan penargetan netcoreapp3.0
atau lebih baru dan memiliki FrameworkReference
ke metapackage Microsoft.AspNetCore.App dalam file proyeknya.
Properti
Properti berikut mengontrol Razorperilaku SDK 's sebagai bagian dari build proyek:
RazorCompileOnBuild
: Ketikatrue
, mengkompilasi dan memancarkan perakitan Razor sebagai bagian dari membangun proyek. Default ketrue
.RazorCompileOnPublish
: Ketikatrue
, mengkompilasi dan memancarkan perakitan Razor sebagai bagian dari penerbitan proyek. Default ketrue
.UseRazorSourceGenerator
: Default ketrue
. Kapan:true
- Mengkompilasi menggunakan pembuatan sumber.
- Tidak membuat
<app_name>.Views.dll
. Tampilan disertakan dalam<app_name>.dll
. - Mendukung .NET Hot Reload.
Properti dan item dalam tabel berikut digunakan untuk mengonfigurasi input dan output ke Razor SDK.
Item | Deskripsi |
---|---|
RazorGenerate |
Elemen item (.cshtml file) yang merupakan input untuk pembuatan kode. |
RazorComponent |
Elemen item (.razor file) yang merupakan input ke Razor pembuatan kode komponen. |
RazorCompile |
Elemen item (.cs file) yang merupakan input ke Razor target kompilasi. Gunakan ini ItemGroup untuk menentukan file tambahan yang akan dikompilasi ke Razor dalam rakitan. |
RazorEmbeddedResource |
Elemen item ditambahkan sebagai sumber daya yang disematkan ke rakitan yang dihasilkan Razor . |
Properti | Deskripsi |
---|---|
RazorOutputPath |
Razor Direktori output. |
RazorCompileToolset |
Digunakan untuk menentukan toolset yang digunakan untuk membangun assembly Razor . Nilai yang valid adalah Implicit , RazorSDK , dan PrecompilationTool . |
EnableDefaultContentItems | Defaultnya adalah true . Ketika true , menyertakan web.config, .json , dan .cshtml file sebagai konten dalam proyek. Ketika dirujuk melalui Microsoft.NET.Sdk.Web , file di bawah file wwwroot dan konfigurasi juga disertakan. |
EnableDefaultRazorGenerateItems |
Ketika true , menyertakan .cshtml file dari Content item dalam RazorGenerate item. |
GenerateRazorTargetAssemblyInfo |
Tidak digunakan dalam .NET 6 dan yang lebih baru. |
EnableDefaultRazorTargetAssemblyInfoAttributes |
Tidak digunakan dalam .NET 6 dan yang lebih baru. |
CopyRazorGenerateFilesToPublishDirectory |
Ketika true , menyalin RazorGenerate file item (.cshtml ) ke direktori publikasi. Biasanya, Razor file tidak diperlukan untuk aplikasi yang diterbitkan jika mereka berpartisipasi dalam kompilasi pada build-time atau publish-time. Default ke false . |
PreserveCompilationReferences |
Ketika true , salin item rakitan referensi ke direktori terbitkan. Biasanya, rakitan referensi tidak diperlukan untuk aplikasi yang diterbitkan jika Razor kompilasi terjadi pada waktu build atau waktu publikasi. Atur ke true jika aplikasi yang diterbitkan memerlukan kompilasi runtime. Misalnya, atur nilai ke true jika aplikasi memodifikasi .cshtml file saat runtime atau menggunakan tampilan yang disematkan. Default ke false . |
IncludeRazorContentInPack |
Ketika true , semua Razor item konten (.cshtml file) ditandai untuk dimasukkan dalam paket NuGet yang dihasilkan. Default ke false . |
EmbedRazorGenerateSources |
Ketika true , menambahkan item RazorGenerate (.cshtml ) sebagai file yang disematkan ke rakitan yang dihasilkan Razor . Default ke false . |
GenerateMvcApplicationPartsAssemblyAttributes |
Tidak digunakan dalam .NET 6 dan yang lebih baru. |
DefaultWebContentItemExcludes |
Pola globbing untuk elemen item yang akan dikecualikan dari Content grup item dalam proyek yang menargetkan Web atau Razor SDK |
ExcludeConfigFilesFromBuildOutput |
Ketika true , .config dan .json file tidak disalin ke direktori output build. |
AddRazorSupportForMvc |
Ketika true , mengonfigurasi Razor SDK untuk menambahkan dukungan untuk konfigurasi MVC yang diperlukan saat membangun aplikasi yang berisi tampilan MVC atau Razor Pages. Properti ini secara implisit diatur untuk proyek .NET Core 3.0 atau yang lebih baru yang menargetkan Web SDK |
RazorLangVersion |
Versi Bahasa yang akan ditargetkan Razor . |
EmitCompilerGeneratedFiles |
Ketika diatur ke true , file sumber yang dihasilkan ditulis ke disk. Pengaturan ke true berguna saat men-debug pengkompilasi. Default adalah false . |
Untuk informasi selengkapnya tentang properti, lihat Properti MSBuild.
Kompilasi Razor runtime tampilan
Secara default, Razor SDK tidak menerbitkan rakitan referensi yang diperlukan untuk melakukan kompilasi runtime. Ini menghasilkan kegagalan kompilasi ketika model aplikasi bergantung pada kompilasi runtime—misalnya, aplikasi menggunakan tampilan yang disematkan atau mengubah tampilan setelah aplikasi diterbitkan. Atur
CopyRefAssembliesToPublishDirectory
ketrue
untuk melanjutkan penerbitan rakitan referensi. Pembuatan kode dan kompilasi didukung oleh satu panggilan ke pengkompilasi. Satu rakitan diproduksi yang berisi jenis aplikasi dan tampilan yang dihasilkan.Untuk aplikasi web, pastikan aplikasi Anda menargetkan
Microsoft.NET.Sdk.Web
SDK.
Razor versi bahasa
Saat menargetkan Microsoft.NET.Sdk.Web
SDK, Razor versi bahasa disimpulkan dari versi kerangka kerja target aplikasi. Untuk proyek yang menargetkan Microsoft.NET.Sdk.Razor
SDK atau dalam kasus yang jarang terjadi bahwa aplikasi memerlukan versi bahasa yang berbeda Razor dari nilai yang disimpulkan, versi dapat dikonfigurasi dengan mengatur <RazorLangVersion>
properti dalam file proyek aplikasi:
<PropertyGroup>
<RazorLangVersion>{VERSION}</RazorLangVersion>
</PropertyGroup>
RazorVersi bahasa terintegrasi erat dengan versi runtime yang dibuat. Menargetkan versi bahasa yang tidak dirancang untuk runtime tidak didukung dan kemungkinan menghasilkan kesalahan build.
Sumber Daya Tambahan:
.NET Core 2.1 SDK atau yang lebih baru mencakup Microsoft.NET.Sdk.Razor
MSBuild SDK (Razor SDK). The Razor SDK:
- Diperlukan untuk membangun, mengemas, dan menerbitkan proyek yang berisi Razor file untuk ASP.NET berbasis Core MVC atau Blazor proyek.
- Termasuk sekumpulan target, properti, dan item yang telah ditentukan sebelumnya yang memungkinkan penyesuaian Razor kompilasi file (
.cshtml
atau.razor
) .
Razor SDK menyertakan Content
item dengan Include
atribut yang diatur ke **\*.cshtml
pola dan **\*.razor
globbing. File yang cocok diterbitkan.
Prasyarat
.NET Core 2.1 SDK atau yang lebih baru
Razor Menggunakan SDK
Sebagian besar aplikasi web tidak diperlukan untuk mereferensikan Razor SDK secara eksplisit.
Untuk menggunakan Razor SDK untuk membuat pustaka kelas yang berisi Razor tampilan atau Razor Halaman, sebaiknya mulai dengan Razor templat proyek pustaka kelas (RCL). RCL yang digunakan untuk membangun Blazor (.razor
) file secara minimal memerlukan referensi ke paket Microsoft.AspNetCore.Components . RCL yang digunakan untuk membangun Razor tampilan atau halaman (.cshtml
file) minimal memerlukan penargetan netcoreapp3.0
atau lebih baru dan memiliki FrameworkReference
ke metapackage Microsoft.AspNetCore.App dalam file proyeknya.
Properti
Properti berikut mengontrol Razorperilaku SDK 's sebagai bagian dari build proyek:
RazorCompileOnBuild
: Ketikatrue
, mengkompilasi dan memancarkan perakitan Razor sebagai bagian dari membangun proyek. Default ketrue
.RazorCompileOnPublish
: Ketikatrue
, mengkompilasi dan memancarkan perakitan Razor sebagai bagian dari penerbitan proyek. Default ketrue
.
Properti dan item dalam tabel berikut digunakan untuk mengonfigurasi input dan output ke Razor SDK.
Peringatan
Dimulai dengan ASP.NET Core 3.0, Tampilan atau Razor Halaman MVC tidak dilayani secara default jika RazorCompileOnBuild
properti atau RazorCompileOnPublish
MSBuild dalam file proyek dinonaktifkan. Aplikasi harus menambahkan referensi eksplisit ke Microsoft.AspNetCore.Mvc.Razor. Paket RuntimeCompilation jika aplikasi bergantung pada kompilasi runtime untuk memproses .cshtml
file.
Item | Deskripsi |
---|---|
RazorGenerate |
Elemen item (.cshtml file) yang merupakan input untuk pembuatan kode. |
RazorComponent |
Elemen item (.razor file) yang merupakan input ke Razor pembuatan kode komponen. |
RazorCompile |
Elemen item (.cs file) yang merupakan input ke Razor target kompilasi. Gunakan ini ItemGroup untuk menentukan file tambahan yang akan dikompilasi ke Razor dalam rakitan. |
RazorTargetAssemblyAttribute |
Elemen item yang digunakan untuk membuat kode atribut untuk assembly Razor . Misalnya: RazorAssemblyAttribute Include="System.Reflection.AssemblyMetadataAttribute" _Parameter1="BuildSource" _Parameter2="https://learn.microsoft.com/"> |
RazorEmbeddedResource |
Elemen item ditambahkan sebagai sumber daya yang disematkan ke rakitan yang dihasilkan Razor . |
Properti | Deskripsi |
---|---|
RazorTargetName |
Nama file (tanpa ekstensi) dari rakitan yang diproduksi oleh Razor. |
RazorOutputPath |
Razor Direktori output. |
RazorCompileToolset |
Digunakan untuk menentukan toolset yang digunakan untuk membangun assembly Razor . Nilai yang valid adalah Implicit , RazorSDK , dan PrecompilationTool . |
EnableDefaultContentItems | Defaultnya adalah true . Ketika true , menyertakan web.config, .json , dan .cshtml file sebagai konten dalam proyek. Ketika dirujuk melalui Microsoft.NET.Sdk.Web , file di bawah file wwwroot dan konfigurasi juga disertakan. |
EnableDefaultRazorGenerateItems |
Ketika true , menyertakan .cshtml file dari Content item dalam RazorGenerate item. |
GenerateRazorTargetAssemblyInfo |
Ketika true , menghasilkan file yang .cs berisi atribut yang ditentukan oleh RazorAssemblyAttribute dan menyertakan file dalam output kompilasi. |
EnableDefaultRazorTargetAssemblyInfoAttributes |
Ketika true , menambahkan sekumpulan atribut rakitan default ke RazorAssemblyAttribute . |
CopyRazorGenerateFilesToPublishDirectory |
Ketika true , menyalin RazorGenerate file item (.cshtml ) ke direktori publikasi. Biasanya, Razor file tidak diperlukan untuk aplikasi yang diterbitkan jika mereka berpartisipasi dalam kompilasi pada build-time atau publish-time. Default ke false . |
PreserveCompilationReferences |
Ketika true , salin item rakitan referensi ke direktori terbitkan. Biasanya, rakitan referensi tidak diperlukan untuk aplikasi yang diterbitkan jika Razor kompilasi terjadi pada waktu build atau waktu publikasi. Atur ke true jika aplikasi yang diterbitkan memerlukan kompilasi runtime. Misalnya, atur nilai ke true jika aplikasi memodifikasi .cshtml file saat runtime atau menggunakan tampilan yang disematkan. Default ke false . |
IncludeRazorContentInPack |
Ketika true , semua Razor item konten (.cshtml file) ditandai untuk dimasukkan dalam paket NuGet yang dihasilkan. Default ke false . |
EmbedRazorGenerateSources |
Ketika true , menambahkan item RazorGenerate (.cshtml ) sebagai file yang disematkan ke rakitan yang dihasilkan Razor . Default ke false . |
UseRazorBuildServer |
Ketika true , menggunakan proses server build persisten untuk membongkar pekerjaan pembuatan kode. Default ke nilai UseSharedCompilation . |
GenerateMvcApplicationPartsAssemblyAttributes |
Ketika true , SDK menghasilkan atribut tambahan yang digunakan oleh MVC saat runtime untuk melakukan penemuan bagian aplikasi. |
DefaultWebContentItemExcludes |
Pola globbing untuk elemen item yang akan dikecualikan dari Content grup item dalam proyek yang menargetkan Web atau Razor SDK |
ExcludeConfigFilesFromBuildOutput |
Ketika true , .config dan .json file tidak disalin ke direktori output build. |
AddRazorSupportForMvc |
Ketika true , mengonfigurasi Razor SDK untuk menambahkan dukungan untuk konfigurasi MVC yang diperlukan saat membangun aplikasi yang berisi tampilan MVC atau Razor Pages. Properti ini secara implisit diatur untuk proyek .NET Core 3.0 atau yang lebih baru yang menargetkan Web SDK |
RazorLangVersion |
Versi Bahasa yang akan ditargetkan Razor . |
Untuk informasi selengkapnya tentang properti, lihat Properti MSBuild.
Target
Razor SDK menentukan dua target utama:
RazorGenerate
: Kode menghasilkan.cs
file dariRazorGenerate
elemen item.RazorGenerateDependsOn
Gunakan properti untuk menentukan target tambahan yang dapat berjalan sebelum atau sesudah target ini.RazorCompile
: Mengkompilasi file yang dihasilkan.cs
ke assembly Razor .RazorCompileDependsOn
Gunakan untuk menentukan target tambahan yang dapat berjalan sebelum atau sesudah target ini.RazorComponentGenerate
: Kode menghasilkan.cs
file untukRazorComponent
elemen item.RazorComponentGenerateDependsOn
Gunakan properti untuk menentukan target tambahan yang dapat berjalan sebelum atau sesudah target ini.
Kompilasi Razor runtime tampilan
Secara default, Razor SDK tidak menerbitkan rakitan referensi yang diperlukan untuk melakukan kompilasi runtime. Ini menghasilkan kegagalan kompilasi ketika model aplikasi bergantung pada kompilasi runtime—misalnya, aplikasi menggunakan tampilan yang disematkan atau mengubah tampilan setelah aplikasi diterbitkan. Atur
CopyRefAssembliesToPublishDirectory
ketrue
untuk melanjutkan penerbitan rakitan referensi.Untuk aplikasi web, pastikan aplikasi Anda menargetkan
Microsoft.NET.Sdk.Web
SDK.
Razor versi bahasa
Saat menargetkan Microsoft.NET.Sdk.Web
SDK, Razor versi bahasa disimpulkan dari versi kerangka kerja target aplikasi. Untuk proyek yang menargetkan Microsoft.NET.Sdk.Razor
SDK atau dalam kasus yang jarang terjadi bahwa aplikasi memerlukan versi bahasa yang berbeda Razor dari nilai yang disimpulkan, versi dapat dikonfigurasi dengan mengatur <RazorLangVersion>
properti dalam file proyek aplikasi:
<PropertyGroup>
<RazorLangVersion>{VERSION}</RazorLangVersion>
</PropertyGroup>
RazorVersi bahasa terintegrasi erat dengan versi runtime yang dibuat. Menargetkan versi bahasa yang tidak dirancang untuk runtime tidak didukung dan kemungkinan menghasilkan kesalahan build.
Sumber Daya Tambahan:
- Menstandarkan pengalaman sekeliling proyek bangunan, pengemasan, dan penerbitan yang berisi Razor file untuk proyek berbasis MVC Inti ASP.NET.
- Termasuk sekumpulan target, properti, dan item yang telah ditentukan sebelumnya yang memungkinkan penyesuaian Razor kompilasi file.
Razor SDK menyertakan Content
item dengan atribut yang Include
diatur ke **\*.cshtml
pola globbing. File yang cocok diterbitkan.
Prasyarat
.NET Core 2.1 SDK atau yang lebih baru
Razor Menggunakan SDK
Sebagian besar aplikasi web tidak diperlukan untuk mereferensikan Razor SDK secara eksplisit.
Untuk menggunakan Razor SDK untuk membuat pustaka kelas yang berisi Razor tampilan atau Razor Halaman:
Gunakan
Microsoft.NET.Sdk.Razor
alih-alihMicrosoft.NET.Sdk
:<Project SDK="Microsoft.NET.Sdk.Razor"> <!-- omitted for brevity --> </Project>
Biasanya, referensi paket ke
Microsoft.AspNetCore.Mvc
diperlukan untuk menerima dependensi tambahan yang diperlukan untuk membangun dan mengkompilasi Razor Halaman dan Razor tampilan. Minimal, proyek Anda harus menambahkan referensi paket ke:Microsoft.AspNetCore.Razor.Design
Microsoft.AspNetCore.Mvc.Razor.Extensions
Microsoft.AspNetCore.Mvc.Razor
Paket ini
Microsoft.AspNetCore.Razor.Design
menyediakan Razor tugas dan target kompilasi untuk proyek.Paket sebelumnya disertakan dalam
Microsoft.AspNetCore.Mvc
. Markup berikut menunjukkan file proyek yang menggunakan Razor SDK untuk membuat Razor file untuk aplikasi ASP.NET Core Razor Pages:<Project Sdk="Microsoft.NET.Sdk.Razor"> <PropertyGroup> <TargetFramework>netcoreapp2.1</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.3" /> </ItemGroup> </Project>
Peringatan
Paket Microsoft.AspNetCore.Razor.Design
dan Microsoft.AspNetCore.Mvc.Razor.Extensions
disertakan dalam metapackage Microsoft.AspNetCore.App. Namun, referensi paket tanpa Microsoft.AspNetCore.App
versi menyediakan metapackage ke aplikasi yang tidak menyertakan versi terbaru .Microsoft.AspNetCore.Razor.Design
Proyek harus mereferensikan versi Microsoft.AspNetCore.Razor.Design
(atau Microsoft.AspNetCore.Mvc
) yang konsisten sehingga perbaikan build-time terbaru untuk Razor disertakan. Untuk informasi lebih lanjut, lihat masalah GitHub ini.
Properti
Properti berikut mengontrol Razorperilaku SDK 's sebagai bagian dari build proyek:
RazorCompileOnBuild
: Ketikatrue
, mengkompilasi dan memancarkan perakitan Razor sebagai bagian dari membangun proyek. Default ketrue
.RazorCompileOnPublish
: Ketikatrue
, mengkompilasi dan memancarkan perakitan Razor sebagai bagian dari penerbitan proyek. Default ketrue
.
Properti dan item dalam tabel berikut digunakan untuk mengonfigurasi input dan output ke Razor SDK.
Item | Deskripsi |
---|---|
RazorGenerate |
Elemen item (.cshtml file) yang merupakan input untuk pembuatan kode. |
RazorComponent |
Elemen item (.razor file) yang merupakan input ke Razor pembuatan kode komponen. |
RazorCompile |
Elemen item (.cs file) yang merupakan input ke Razor target kompilasi. Gunakan ini ItemGroup untuk menentukan file tambahan yang akan dikompilasi ke Razor dalam rakitan. |
RazorTargetAssemblyAttribute |
Elemen item yang digunakan untuk membuat kode atribut untuk assembly Razor . Misalnya: RazorAssemblyAttribute Include="System.Reflection.AssemblyMetadataAttribute" _Parameter1="BuildSource" _Parameter2="https://learn.microsoft.com/"> |
RazorEmbeddedResource |
Elemen item ditambahkan sebagai sumber daya yang disematkan ke rakitan yang dihasilkan Razor . |
Properti | Deskripsi |
---|---|
RazorTargetName |
Nama file (tanpa ekstensi) dari rakitan yang diproduksi oleh Razor. |
RazorOutputPath |
Razor Direktori output. |
RazorCompileToolset |
Digunakan untuk menentukan toolset yang digunakan untuk membangun assembly Razor . Nilai yang valid adalah Implicit , RazorSDK , dan PrecompilationTool . |
EnableDefaultContentItems | Defaultnya adalah true . Ketika true , menyertakan web.config, .json , dan .cshtml file sebagai konten dalam proyek. Ketika dirujuk melalui Microsoft.NET.Sdk.Web , file di bawah file wwwroot dan konfigurasi juga disertakan. |
EnableDefaultRazorGenerateItems |
Ketika true , menyertakan .cshtml file dari Content item dalam RazorGenerate item. |
GenerateRazorTargetAssemblyInfo |
Ketika true , menghasilkan file yang .cs berisi atribut yang ditentukan oleh RazorAssemblyAttribute dan menyertakan file dalam output kompilasi. |
EnableDefaultRazorTargetAssemblyInfoAttributes |
Ketika true , menambahkan sekumpulan atribut rakitan default ke RazorAssemblyAttribute . |
CopyRazorGenerateFilesToPublishDirectory |
Ketika true , menyalin RazorGenerate file item (.cshtml ) ke direktori publikasi. Biasanya, Razor file tidak diperlukan untuk aplikasi yang diterbitkan jika mereka berpartisipasi dalam kompilasi pada build-time atau publish-time. Default ke false . |
CopyRefAssembliesToPublishDirectory |
Ketika true , salin item rakitan referensi ke direktori terbitkan. Biasanya, rakitan referensi tidak diperlukan untuk aplikasi yang diterbitkan jika Razor kompilasi terjadi pada waktu build atau waktu publikasi. Atur ke true jika aplikasi yang diterbitkan memerlukan kompilasi runtime. Misalnya, atur nilai ke true jika aplikasi memodifikasi .cshtml file saat runtime atau menggunakan tampilan yang disematkan. Default ke false . |
IncludeRazorContentInPack |
Ketika true , semua Razor item konten (.cshtml file) ditandai untuk dimasukkan dalam paket NuGet yang dihasilkan. Default ke false . |
EmbedRazorGenerateSources |
Ketika true , menambahkan item RazorGenerate (.cshtml ) sebagai file yang disematkan ke rakitan yang dihasilkan Razor . Default ke false . |
UseRazorBuildServer |
Ketika true , menggunakan proses server build persisten untuk membongkar pekerjaan pembuatan kode. Default ke nilai UseSharedCompilation . |
GenerateMvcApplicationPartsAssemblyAttributes |
Ketika true , SDK menghasilkan atribut tambahan yang digunakan oleh MVC saat runtime untuk melakukan penemuan bagian aplikasi. |
DefaultWebContentItemExcludes |
Pola globbing untuk elemen item yang akan dikecualikan dari Content grup item dalam proyek yang menargetkan Web atau Razor SDK |
ExcludeConfigFilesFromBuildOutput |
Ketika true , .config dan .json file tidak disalin ke direktori output build. |
AddRazorSupportForMvc |
Ketika true , mengonfigurasi Razor SDK untuk menambahkan dukungan untuk konfigurasi MVC yang diperlukan saat membangun aplikasi yang berisi tampilan MVC atau Razor Pages. Properti ini secara implisit diatur untuk proyek .NET Core 3.0 atau yang lebih baru yang menargetkan Web SDK |
RazorLangVersion |
Versi Bahasa yang akan ditargetkan Razor . |
Untuk informasi selengkapnya tentang properti, lihat Properti MSBuild.
Target
Razor SDK menentukan dua target utama:
RazorGenerate
: Kode menghasilkan.cs
file dariRazorGenerate
elemen item.RazorGenerateDependsOn
Gunakan properti untuk menentukan target tambahan yang dapat berjalan sebelum atau sesudah target ini.RazorCompile
: Mengkompilasi file yang dihasilkan.cs
ke assembly Razor .RazorCompileDependsOn
Gunakan untuk menentukan target tambahan yang dapat berjalan sebelum atau sesudah target ini.RazorComponentGenerate
: Kode menghasilkan.cs
file untukRazorComponent
elemen item.RazorComponentGenerateDependsOn
Gunakan properti untuk menentukan target tambahan yang dapat berjalan sebelum atau sesudah target ini.
Kompilasi Razor runtime tampilan
Secara default, Razor SDK tidak menerbitkan rakitan referensi yang diperlukan untuk melakukan kompilasi runtime. Ini menghasilkan kegagalan kompilasi ketika model aplikasi bergantung pada kompilasi runtime—misalnya, aplikasi menggunakan tampilan yang disematkan atau mengubah tampilan setelah aplikasi diterbitkan. Atur
CopyRefAssembliesToPublishDirectory
ketrue
untuk melanjutkan penerbitan rakitan referensi.Untuk aplikasi web, pastikan aplikasi Anda menargetkan
Microsoft.NET.Sdk.Web
SDK.
Razor versi bahasa
Saat menargetkan Microsoft.NET.Sdk.Web
SDK, Razor versi bahasa disimpulkan dari versi kerangka kerja target aplikasi. Untuk proyek yang menargetkan Microsoft.NET.Sdk.Razor
SDK atau dalam kasus yang jarang terjadi bahwa aplikasi memerlukan versi bahasa yang berbeda Razor dari nilai yang disimpulkan, versi dapat dikonfigurasi dengan mengatur <RazorLangVersion>
properti dalam file proyek aplikasi:
<PropertyGroup>
<RazorLangVersion>{VERSION}</RazorLangVersion>
</PropertyGroup>
RazorVersi bahasa terintegrasi erat dengan versi runtime yang dibuat. Menargetkan versi bahasa yang tidak dirancang untuk runtime tidak didukung dan kemungkinan menghasilkan kesalahan build.
Sumber Daya Tambahan:
ASP.NET Core