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

.NET 6.0 SDK

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: Ketika true, mengkompilasi dan memancarkan perakitan Razor sebagai bagian dari membangun proyek. Default ke true.
  • RazorCompileOnPublish: Ketika true, mengkompilasi dan memancarkan perakitan Razor sebagai bagian dari penerbitan proyek. Default ke true.
  • UseRazorSourceGenerator: Default ke true. 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 Razoritem Buat (.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 ke true 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: Ketika true, mengkompilasi dan memancarkan perakitan Razor sebagai bagian dari membangun proyek. Default ke true.
  • RazorCompileOnPublish: Ketika true, mengkompilasi dan memancarkan perakitan Razor sebagai bagian dari penerbitan proyek. Default ke true.

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 Razoritem Buat (.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 dari RazorGenerate 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 untuk RazorComponent 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 ke true 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-alih Microsoft.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: Ketika true, mengkompilasi dan memancarkan perakitan Razor sebagai bagian dari membangun proyek. Default ke true.
  • RazorCompileOnPublish: Ketika true, mengkompilasi dan memancarkan perakitan Razor sebagai bagian dari penerbitan proyek. Default ke true.

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 Razoritem Buat (.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 dari RazorGenerate 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 untuk RazorComponent 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 ke true 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: