作成者: Rick Anderson
Overview
.NET 6 SDK には、 MSBuild SDK ( SDK) が含まれています。 Razor SDK には次の特徴があります。
- ASP.NET Core MVC ベースまたは Blazor プロジェクト用の Razor ファイルを含むプロジェクトのビルド、パッケージ化、および発行を行うために必要です。
-
Razor (
.cshtmlまたは.razor) ファイルのコンパイルのカスタマイズを可能にする事前定義されたプロパティと項目のセットを含みます。
Razor SDK には、Include 属性が **\*.cshtml および **\*.razor glob パターンに設定された Content 項目が含まれています。 一致するファイルが公開されます。
Prerequisites
Razor SDK を使用する
ほとんどの Web アプリでは、明示的に Razor SDK を参照する必要がありません。
Razor SDK を使用して Razor ビューまたは Razor Pages を含むクラス ライブラリをビルドするには、Razor クラス ライブラリ (RCL) プロジェクト テンプレートを使用して開始することをお勧めします。
Blazor (.razor) ファイルのビルドに使用する RCL では、少なくとも、Microsoft.AspNetCore.Components パッケージへの参照が必要です。
Razor ビューまたはページのビルドに使用する RCL (.cshtml ファイル) は、少なくとも netcoreapp3.0 以降をターゲットにし、そのプロジェクト ファイル内には Microsoft.AspNetCore.App メタパッケージへの FrameworkReference がある必要があります。
プロパティ
Razor の SDK の動作は、プロジェクトをビルドする際に次のプロパティにより制御されます。
-
RazorCompileOnBuild:trueの場合は、プロジェクトのビルド時に Razor アセンブリがコンパイルおよび生成されます。 既定値はtrueです。 -
RazorCompileOnPublish:trueのとき、プロジェクトを発行する際に、Razor アセンブリがコンパイルおよび生成されます。 既定値はtrueです。 -
UseRazorSourceGenerator:既定値はtrueです。trueの場合:- ソース生成を使用してコンパイルします。
-
<app_name>.Views.dllは作成されません。 ビューは<app_name>.dllに含まれます。 - .NET ホット リロードをサポートしています。
Razor SDK への入力および出力を構成するには、次の表のプロパティと項目を使用します。
| Items | Description |
|---|---|
RazorGenerate |
コード生成への入力である item 要素 (.cshtml ファイル) です。 |
RazorComponent |
Razor コンポーネントのコード生成への入力となる項目要素(.razor ファイル)です。 |
RazorCompile |
Razor のコンパイル対象に入力される項目要素 (.cs ファイル) です。 この ItemGroup を使用して、Razor アセンブリに追加でコンパイルするファイルを指定します。 |
RazorEmbeddedResource |
生成される Razor アセンブリに埋め込みのリソースとして追加される項目要素です。 |
| Property | Description |
|---|---|
RazorOutputPath |
Razor 出力ディレクトリ。 |
RazorCompileToolset |
Razor アセンブリをビルドするために使用するツールセットを決定するために使用します。 有効な値は Implicit、RazorSDK、PrecompilationTool です。 |
| EnableDefaultContentItems | 既定値は true です。
true の場合、プロジェクトのコンテンツとして web.config ファイル、.json ファイル、 .cshtml ファイルが含まれます。
Microsoft.NET.Sdk.Web を介して参照する場合、wwwroot 下のファイルと構成ファイルも含まれます。 |
EnableDefaultRazorGenerateItems |
true の場合、RazorGenerate 項目の Content 項目の .cshtml ファイルが含まれます。 |
GenerateRazorTargetAssemblyInfo |
.NET 6 以降では使用されません。 |
EnableDefaultRazorTargetAssemblyInfoAttributes |
.NET 6 以降では使用されません。 |
CopyRazorGenerateFilesToPublishDirectory |
true の場合、RazorGenerate 項目 ( .cshtml) ファイルが発行ディレクトリにコピーされます。 一般に、Razor ファイルがビルド時または発行時にコンパイルに含められる場合、発行済みアプリのためにそれらは必要ありません。 既定値は false です。 |
PreserveCompilationReferences |
true の場合、発行ディレクトリに参照アセンブリ項目がコピーされます。 一般に、ビルド時または発行時にRazorコンパイルが行われる場合、発行済みアプリのために参照アセンブリは必要ありません。 発行済みアプリで実行時のコンパイルが必要な場合は、true に設定します。 たとえば、アプリで実行時に .cshtml ファイルを変更したり、埋め込みビューを使用したりする場合は、値を true に設定します。 既定値は false です。 |
IncludeRazorContentInPack |
true の場合、Razor コンテンツ項目 ( .cshtml ファイル) はすべて、生成される NuGet パッケージに含めるようマーク付けされます。 既定値は false です。 |
EmbedRazorGenerateSources |
true の場合、生成された Razor アセンブリに、埋め込みファイルとして RazorGenerate (.cshtml) 項目が追加されます。 既定値は false です。 |
GenerateMvcApplicationPartsAssemblyAttributes |
.NET 6 以降では使用されません。 |
DefaultWebContentItemExcludes |
Web または Razor SDK をターゲットとするプロジェクトの Content 項目グループから除外する必要がある項目要素の glob パターン |
ExcludeConfigFilesFromBuildOutput |
true の場合、.config ファイルと .json ファイルがビルド出力ディレクトリにコピーされません。 |
AddRazorSupportForMvc |
true の場合、MVC ビューまたは Razor Pages を含むアプリケーションをビルドするときに必要な MVC 構成のサポートを追加するように、Razor SDK を構成します。 このプロパティは、Web SDK をターゲットとする .NET Core 3.0 以降のプロジェクトには暗黙的に設定されます |
RazorLangVersion |
ターゲットとする Razor 言語のバージョン。 |
EmitCompilerGeneratedFiles |
true に設定すると、生成されたソース ファイルがディスクに書き込まれます。
true に設定すると、コンパイラのデバッグ時に便利です。 既定では、 falseです。 |
プロパティの詳細については、「MSBuild プロパティ」を参照してください。
Razor ビューの実行時のコンパイル
既定では、Razor SDK からは、実行時のコンパイルを実行するために必要な参照アセンブリは発行されません。 そのため、アプリケーション モデルが実行時のコンパイルに依存している場合には、コンパイルが失敗します。たとえば、アプリが埋め込みビューを使用したり、公開後にビューを変更したりする場合です。
CopyRefAssembliesToPublishDirectoryをtrueに設定して、参照アセンブリの公開を続行します。 コードの生成とコンパイルの両方が、コンパイラの 1 回の呼び出しでサポートされます。 アプリの種類と生成されたビューを含む 1 つのアセンブリが生成されます。Web アプリの場合は、アプリが
Microsoft.NET.Sdk.WebSDK をターゲットにしていることを確認します。
Razor 言語バージョン
Microsoft.NET.Sdk.Web SDK をターゲットとする場合、Razor 言語バージョンは、アプリのターゲット フレームワークのバージョンから推論されます。
Microsoft.NET.Sdk.Razor SDK をターゲットとするプロジェクトの場合や、推論される値とは異なる Razor 言語バージョンを必要とするまれなアプリの場合は、アプリのプロジェクト ファイルで <RazorLangVersion> プロパティを設定することで、バージョンを構成できます。
<PropertyGroup>
<RazorLangVersion>{VERSION}</RazorLangVersion>
</PropertyGroup>
Razor の言語バージョンは、そのバージョンのビルド対象であったランタイムのバージョンと緊密に統合されています。 そのランタイムに向けて設計されたのではない言語バージョンをターゲットにすることはサポートされておらず、おそらくビルド エラーが発生します。
その他のリソース
.NET Core 2.1 以降の SDK には、Microsoft.NET.Sdk.Razor MSBuild SDK (Razor SDK) が含まれています。
Razor SDK には次の特徴があります。
- ASP.NET Core MVC ベースまたは Blazor プロジェクト用の Razor ファイルを含むプロジェクトのビルド、パッケージ化、および発行を行うために必要です。
-
Razor (
.cshtmlまたは.razor) ファイルのコンパイルのカスタマイズを可能にする事前定義されたターゲット、プロパティ、項目のセットを含みます。
Razor SDK には、Include 属性が **\*.cshtml および **\*.razor glob パターンに設定された Content 項目が含まれています。 一致するファイルが公開されます。
Prerequisites
Razor SDK を使用する
ほとんどの Web アプリでは、明示的に Razor SDK を参照する必要がありません。
Razor SDK を使用して Razor ビューまたは Razor Pages を含むクラス ライブラリをビルドするには、Razor クラス ライブラリ (RCL) プロジェクト テンプレートを使用して開始することをお勧めします。
Blazor (.razor) ファイルをビルドするために使用される RCL には、少なくとも Microsoft.AspNetCore.Components パッケージへの参照が必要です。
Razor ビューまたはページのビルドに使用する RCL (.cshtml ファイル) は、少なくとも netcoreapp3.0 以降をターゲットにし、そのプロジェクト ファイル内には Microsoft.AspNetCore.App メタパッケージへの FrameworkReference がある必要があります。
プロパティ
Razor の SDK の動作は、プロジェクトをビルドする際に次のプロパティにより制御されます。
-
RazorCompileOnBuild:trueのとき、プロジェクトをビルドする際に、Razor アセンブリがコンパイルおよび生成されます。 既定値はtrueです。 -
RazorCompileOnPublish:trueの場合、プロジェクトを公開する際に、Razor アセンブリがコンパイルおよび生成されます。 既定値はtrueです。
Razor SDK への入力および出力は、次の表のプロパティと項目を使用して構成されます。
Warning
ASP.NET Core 3.0 以降では、プロジェクト ファイルで RazorCompileOnBuild または RazorCompileOnPublish の MSBuild プロパティが無効になっている場合、MVC ビューまたは Razor Pages は既定では提供されません。 ファイルを処理するためにアプリがランタイム コンパイルに依存している場合は、アプリに Microsoft.AspNetCore.Mvc..RuntimeCompilation パッケージへの明示的な参照を追加する必要があります。
| Items | Description |
|---|---|
RazorGenerate |
コード生成への入力である項目要素 ( .cshtml ファイル) です。 |
RazorComponent |
Razor コンポーネントのコード生成への入力となる項目要素 (.razor ファイル) です。 |
RazorCompile |
Razor のコンパイル対象に入力される項目要素 (.cs ファイル) です。 追加で Razor アセンブリにコンパイルするファイルを指定するには、この ItemGroup を使用します。 |
RazorTargetAssemblyAttribute |
Razor アセンブリ用の属性をコード生成するために使用する項目要素です。 例えば:RazorAssemblyAttributeInclude="System.Reflection.AssemblyMetadataAttribute"_Parameter1="BuildSource" _Parameter2="https://learn.microsoft.com/"> |
RazorEmbeddedResource |
生成される Razor アセンブリに埋め込みのリソースとして追加される項目要素です。 |
| Property | Description |
|---|---|
RazorTargetName |
Razor によって生成されたアセンブリのファイル名 (拡張子なし)。 |
RazorOutputPath |
Razor 出力ディレクトリ |
RazorCompileToolset |
Razor アセンブリをビルドするために使用するツールセットを決定するために使用します。 有効な値は Implicit、RazorSDK、PrecompilationTool です。 |
| EnableDefaultContentItems | 既定値は true です。
true の場合、プロジェクトのコンテンツとして web.config ファイル、.json ファイル、 .cshtml ファイルが含まれます。
Microsoft.NET.Sdk.Web を介して参照する場合、wwwroot 下のファイルと構成ファイルも含まれます。 |
EnableDefaultRazorGenerateItems |
true の場合、RazorGenerate 項目の Content 項目の .cshtml ファイルが含まれます。 |
GenerateRazorTargetAssemblyInfo |
true の場合、RazorAssemblyAttribute で指定された属性を含む .cs ファイルが生成され、そのファイルがコンパイル出力に含められます。 |
EnableDefaultRazorTargetAssemblyInfoAttributes |
true を使用すると、RazorAssemblyAttribute に既定のアセンブリ属性セットが追加されます。 |
CopyRazorGenerateFilesToPublishDirectory |
true の場合、RazorGenerate 項目 ( .cshtml) ファイルが発行ディレクトリにコピーされます。 一般に、Razor ファイルがビルド時または発行時にコンパイルに含められる場合、発行済みアプリのためにそれらは必要ありません。 既定値は false です。 |
PreserveCompilationReferences |
true の場合、発行ディレクトリに参照アセンブリ項目がコピーされます。 一般に、ビルド時または発行時に Razor のコンパイルが行われる場合、発行済みアプリのために参照アセンブリは必要ありません。 発行済みアプリで実行時のコンパイルが必要な場合は、true に設定します。 たとえばアプリで、実行時に .cshtml ファイルを変更したり、埋め込みビューを使用したりする場合は、値を true に設定します。 既定値は false です。 |
IncludeRazorContentInPack |
true のとき、Razor コンテンツ項目 (.cshtml ファイル) はすべて、生成される NuGet パッケージに含めるようマーク付けされます。 既定値は false です。 |
EmbedRazorGenerateSources |
true の場合、生成された Razor アセンブリに、埋め込みファイルとして RazorGenerate (.cshtml) 項目が追加されます。 既定値は false です。 |
UseRazorBuildServer |
true の場合、コードの生成作業をオフロードするために、永続的なビルド サーバーが使用されます。 既定値は、UseSharedCompilation の値です。 |
GenerateMvcApplicationPartsAssemblyAttributes |
true の場合、アプリケーション パーツの検出を実行するために実行時に MVC によって使用される追加の属性が、SDK によって生成されます。 |
DefaultWebContentItemExcludes |
Web または Razor SDK をターゲットとするプロジェクトの Content 項目グループから除外する必要がある項目要素の glob パターン |
ExcludeConfigFilesFromBuildOutput |
true の場合、.config ファイルと .json ファイルがビルド出力ディレクトリにコピーされません。 |
AddRazorSupportForMvc |
true の場合、MVC ビューまたは Razor Pages を含むアプリケーションをビルドするときに必要な MVC 構成のサポートを追加するように、Razor SDK を構成します。 このプロパティは、Web SDK をターゲットとする .NET Core 3.0 以降のプロジェクトには暗黙的に設定されます |
RazorLangVersion |
ターゲットとする Razor 言語のバージョン。 |
プロパティの詳細については、「MSBuild プロパティ」を参照してください。
Targets
Razor SDK では、次の 2 つの主要なターゲットが定義されています。
-
RazorGenerate: コードにより、RazorGenerate項目要素から.csファイルが生成されます。 このターゲットの前または後に実行できる追加のターゲットを指定するには、RazorGenerateDependsOnプロパティを使用します。 -
RazorCompile:生成された.csファイルを、Razor アセンブリにコンパイルします。 このターゲットの前または後に実行できる追加のターゲットを指定するには、RazorCompileDependsOnを使用します。 -
RazorComponentGenerate: コードにより、RazorComponent項目要素向けの.csファイルが生成されます。 このターゲットの前または後に実行できる追加のターゲットを指定するには、RazorComponentGenerateDependsOnプロパティを使用します。
Razor ビューの実行時のコンパイル
既定では、Razor SDK からは、実行時のコンパイルを実行するために必要な参照アセンブリは公開されません。 そのため、アプリケーション モデルが実行時のコンパイルに依存している場合には、コンパイルが失敗します。たとえば、アプリが公開後に埋め込まれたビューを使用したり、ビューを変更したりする場合です。
CopyRefAssembliesToPublishDirectoryをtrueに設定して、参照アセンブリの公開を続行します。Web アプリの場合は、アプリが
Microsoft.NET.Sdk.WebSDK をターゲットにしていることを確認します。
Razor 言語バージョン
Microsoft.NET.Sdk.Web SDK をターゲットとする場合、Razor 言語バージョンは、アプリのターゲット フレームワークのバージョンから推論されます。
Microsoft.NET.Sdk.Razor SDK をターゲットとするプロジェクトの場合や、推論される値とは異なる Razor 言語バージョンを必要とするまれなアプリの場合は、アプリのプロジェクト ファイルで <RazorLangVersion> プロパティを設定することで、バージョンを構成できます。
<PropertyGroup>
<RazorLangVersion>{VERSION}</RazorLangVersion>
</PropertyGroup>
Razor の言語バージョンは、そのバージョンのビルド対象であったランタイムのバージョンと緊密に統合されています。 そのランタイムに向けて設計されたのではない言語バージョンをターゲットにすることはサポートされておらず、おそらくビルド エラーが発生します。
その他のリソース
- ASP.NET Core MVC ベース プロジェクト用の Razor ファイルを含むプロジェクトのビルド、パッケージ、および発行に関わる表示と操作を標準化できます。
- Razor ファイルのコンパイルのカスタマイズを可能にする事前定義されたターゲット、プロパティ、項目のセットを含みます。
Razor SDK には、Include 属性が **\*.cshtml glob パターンに設定された Content 項目が含まれています。 一致するファイルが公開されます。
Prerequisites
Razor SDK を使用する
ほとんどの Web アプリでは、明示的に Razor SDK を参照する必要がありません。
Razor SDK を使用して Razor ビューまたは Razor Pages を含むクラス ライブラリを構築するには:
Microsoft.NET.Sdk.Razorの代わりにMicrosoft.NET.Sdkを使用します。<Project SDK="Microsoft.NET.Sdk.Razor"> <!-- omitted for brevity --> </Project>一般に、Razor Pages や Razor ビューをビルドしてコンパイルするために必要な追加の依存関係を取得するには、
Microsoft.AspNetCore.Mvcへのパッケージ参照が必要です。 少なくとも、プロジェクトに以下のパッケージ参照を追加する必要があります。Microsoft.AspNetCore.Razor.DesignMicrosoft.AspNetCore.Mvc.Razor.ExtensionsMicrosoft.AspNetCore.Mvc.Razor
Microsoft.AspNetCore.Razor.Designパッケージでは、プロジェクトの Razor コンパイル タスクとターゲットが提供されます。前述のパッケージは、
Microsoft.AspNetCore.Mvcに組み込まれています。 次のマークアップは、Razor SDK を使用して ASP.NET Core Razor Pages アプリ用の Razor ファイルをビルドするプロジェクト ファイルを示しています。<Project Sdk="Microsoft.NET.Sdk.Razor"> <PropertyGroup> <TargetFramework>netcoreapp2.1</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.3" /> </ItemGroup> </Project>
Warning
Microsoft.AspNetCore.Razor.Design パッケージと Microsoft.AspNetCore.Mvc.Razor.Extensions パッケージは、Microsoft.AspNetCore.App メタパッケージに含まれています。 ただし、バージョンのない Microsoft.AspNetCore.App パッケージのリファレンスでは、最新バージョンの Microsoft.AspNetCore.Razor.Design を含まないアプリへのメタパッケージが提供されます。 プロジェクトでは、Razor 用の最新のビルド時修正プログラムが含まれるように、一貫したバージョンの Microsoft.AspNetCore.Razor.Design (または Microsoft.AspNetCore.Mvc) を参照する必要があります。 詳細については、この GitHub の issueを参照してください。
プロパティ
Razor の SDK の動作は、プロジェクトをビルドする際に次のプロパティにより制御されます。
-
RazorCompileOnBuild:trueの場合は、プロジェクトのビルド時に Razor アセンブリがコンパイルおよび生成されます。 既定値はtrueです。 -
RazorCompileOnPublish:trueのとき、プロジェクトを発行する際に、Razor アセンブリがコンパイルおよび生成されます。 既定値はtrueです。
Razor SDK への入力および出力を構成するには、次の表のプロパティと項目を使用します。
| Items | Description |
|---|---|
RazorGenerate |
コード生成への入力である item 要素 (.cshtml ファイル) です。 |
RazorComponent |
Razor コンポーネントのコード生成への入力となる項目要素(.razor ファイル)です。 |
RazorCompile |
Razor のコンパイル対象に入力される項目要素 (.cs ファイル) です。 この ItemGroup を使用して、Razor アセンブリに追加でコンパイルするファイルを指定します。 |
RazorTargetAssemblyAttribute |
Razor アセンブリ用の属性をコード生成するために使用する項目要素です。 例えば:RazorAssemblyAttributeInclude="System.Reflection.AssemblyMetadataAttribute"_Parameter1="BuildSource" _Parameter2="https://learn.microsoft.com/"> |
RazorEmbeddedResource |
生成される Razor アセンブリに埋め込みのリソースとして追加される項目要素です。 |
| Property | Description |
|---|---|
RazorTargetName |
Razor によって生成されたアセンブリのファイル名 (拡張子なし)。 |
RazorOutputPath |
Razor 出力ディレクトリ。 |
RazorCompileToolset |
Razor アセンブリをビルドするために使用するツールセットを決定するために使用します。 有効な値は Implicit、RazorSDK、PrecompilationTool です。 |
| EnableDefaultContentItems | 既定値は true です。
true の場合、プロジェクトのコンテンツとして web.config ファイル、.json ファイル、 .cshtml ファイルが含まれます。
Microsoft.NET.Sdk.Web を介して参照する場合、wwwroot 下のファイルと構成ファイルも含まれます。 |
EnableDefaultRazorGenerateItems |
true の場合、RazorGenerate 項目の Content 項目の .cshtml ファイルが含まれます。 |
GenerateRazorTargetAssemblyInfo |
true の場合、RazorAssemblyAttribute で指定された属性を含む .cs ファイルが生成され、そのファイルがコンパイル出力に含められます。 |
EnableDefaultRazorTargetAssemblyInfoAttributes |
true を使用すると、RazorAssemblyAttribute に既定のアセンブリ属性セットが追加されます。 |
CopyRazorGenerateFilesToPublishDirectory |
true の場合、RazorGenerate 項目 ( .cshtml) ファイルが発行ディレクトリにコピーされます。 一般に、Razor ファイルがビルド時または発行時にコンパイルに含められる場合、発行済みアプリのためにそれらは必要ありません。 既定値は false です。 |
CopyRefAssembliesToPublishDirectory |
true の場合、発行ディレクトリに参照アセンブリ項目がコピーされます。 一般に、ビルド時または発行時に Razor のコンパイルが行われる場合、発行済みアプリのために参照アセンブリは必要ありません。 発行済みアプリで実行時のコンパイルが必要な場合は、true に設定します。 たとえばアプリで、実行時に .cshtml ファイルを変更したり、埋め込みビューを使用したりする場合は、値を true に設定します。 既定値は false です。 |
IncludeRazorContentInPack |
true のとき、Razor コンテンツ項目 (.cshtml ファイル) はすべて、生成される NuGet パッケージに含めるようマーク付けされます。 既定値は false です。 |
EmbedRazorGenerateSources |
true の場合、生成された Razor アセンブリに、埋め込みファイルとして RazorGenerate (.cshtml) 項目が追加されます。 既定値は false です。 |
UseRazorBuildServer |
true の場合、コードの生成作業をオフロードするために、永続的なビルド サーバーが使用されます。 既定値は、UseSharedCompilation の値です。 |
GenerateMvcApplicationPartsAssemblyAttributes |
true の場合、アプリケーション パーツの検出を実行するために実行時に MVC によって使用される追加の属性が、SDK によって生成されます。 |
DefaultWebContentItemExcludes |
Web または Razor SDK をターゲットとするプロジェクトの Content 項目グループから除外する必要がある項目要素の glob パターン |
ExcludeConfigFilesFromBuildOutput |
true の場合、.config ファイルと .json ファイルがビルド出力ディレクトリにコピーされません。 |
AddRazorSupportForMvc |
true の場合、MVC ビューまたは Razor Pages を含むアプリケーションをビルドするときに必要な MVC 構成のサポートを追加するように、Razor SDK を構成します。 このプロパティは、Web SDK をターゲットとする .NET Core 3.0 以降のプロジェクトには暗黙的に設定されます |
RazorLangVersion |
ターゲットとする Razor 言語のバージョン。 |
プロパティの詳細については、「MSBuild プロパティ」を参照してください。
Targets
Razor SDK では、次の 2 つの主要なターゲットが定義されています。
-
RazorGenerate: コードにより、RazorGenerate項目要素から.csファイルが生成されます。 このターゲットの前または後に実行できる追加のターゲットを指定するには、RazorGenerateDependsOnプロパティを使用します。 -
RazorCompile:生成された.csファイルを、Razor アセンブリにコンパイルします。 このターゲットの前または後に実行できる追加のターゲットを指定するには、RazorCompileDependsOnを使用します。 -
RazorComponentGenerate: コードにより、RazorComponent項目要素向けに.csファイルが生成されます。 このターゲットの前または後に実行できる追加のターゲットを指定するには、RazorComponentGenerateDependsOnプロパティを使用します。
Razor ビューの実行時のコンパイル
既定では、Razor SDK からは、実行時のコンパイルを実行するために必要な参照アセンブリは公開されません。 そのため、アプリケーション モデルが実行時のコンパイルに依存している場合には、コンパイルが失敗します。たとえば、アプリが埋め込まれたビューを使用したり、アプリの公開後にビューを変更したりする場合です。
CopyRefAssembliesToPublishDirectoryをtrueに設定して、参照アセンブリの公開を続行します。Web アプリの場合は、アプリが
Microsoft.NET.Sdk.WebSDK をターゲットにしていることを確認します。
Razor 言語バージョン
Microsoft.NET.Sdk.Web SDK をターゲットとする場合、Razor 言語バージョンは、アプリのターゲット フレームワークのバージョンから推論されます。
Microsoft.NET.Sdk.Razor SDK をターゲットとするプロジェクトの場合や、推論される値とは異なる Razor 言語バージョンを必要とするまれなアプリの場合は、アプリのプロジェクト ファイルで <RazorLangVersion> プロパティを設定することで、バージョンを構成できます。
<PropertyGroup>
<RazorLangVersion>{VERSION}</RazorLangVersion>
</PropertyGroup>
Razor の言語バージョンは、そのバージョンのビルド対象であったランタイムのバージョンと緊密に統合されています。 そのランタイムに向けて設計されたのではない言語バージョンをターゲットにすることはサポートされておらず、おそらくビルド エラーが発生します。
その他のリソース
ASP.NET Core