ASP.NET Core Razor SDK
Autor: Rick Anderson
Omówienie
Zestaw SDK platformy .NET 6.0 zawiera zestaw Microsoft.NET.Sdk.Razor
MSBuild SDK (Razor SDK). Zestaw Razor SDK:
- Jest wymagane do kompilowania, tworzenia, tworzenia i publikowania projektów zawierających Razor pliki dla ASP.NET Core MVC lub Blazor projektów.
- Zawiera zestaw wstępnie zdefiniowanych właściwości i elementów, które umożliwiają dostosowywanie kompilacji Razor plików (
.cshtml
lub.razor
).
Zestaw Razor SDK zawiera Content
elementy z atrybutami ustawionymi Include
na **\*.cshtml
wzorce globbing i **\*.razor
. Pliki pasujące są publikowane.
Wymagania wstępne
Zestaw SDK dla platformy .NET 6.0
Korzystanie z zestawu Razor SDK
Większość aplikacji internetowych nie jest wymagana do jawnego odwołowania się do zestawu Razor SDK.
Aby użyć Razor zestawu SDK do kompilowania bibliotek klas zawierających Razor widoki lub Razor strony, zalecamy rozpoczęcie od Razor szablonu projektu biblioteki klas (RCL). Lista RCL używana do kompilowania Blazor () plików (.razor
) minimalnie wymaga odwołania do pakietu Microsoft.AspNetCore.Components . Lista RCL używana do kompilowania Razor widoków lub stron (.cshtml
plików) minimalnie wymaga określania wartości docelowej netcoreapp3.0
lub nowszej i ma wartość FrameworkReference
dla Microsoft.AspNetCore.App metapakietu w pliku projektu.
Właściwości
Następujące właściwości kontrolują Razorzachowanie zestawu SDK w ramach kompilacji projektu:
RazorCompileOnBuild
: gdytrue
program kompiluje i emituje Razor zestaw w ramach kompilowania projektu. Wartość domyślna totrue
.RazorCompileOnPublish
: gdytrue
program kompiluje i emituje Razor zestaw w ramach publikowania projektu. Wartość domyślna totrue
.UseRazorSourceGenerator
: Wartość domyślna totrue
. Czas:true
- Kompiluje się przy użyciu generowania źródła.
- Nie tworzy elementu
<app_name>.Views.dll
. Widoki są uwzględniane w elem<app_name>.dll
. - Obsługuje Przeładowywanie na gorąco .NET.
Właściwości i elementy w poniższej tabeli służą do konfigurowania danych wejściowych i wyjściowych zestawu Razor SDK.
Elementy | opis |
---|---|
RazorGenerate |
Elementy elementu (.cshtml pliki), które są danymi wejściowymi do generowania kodu. |
RazorComponent |
Elementy elementu (.razor pliki), które są danymi wejściowymi do Razor generowania kodu składnika. |
RazorCompile |
Elementy elementu (.cs pliki), które są danymi wejściowymi do Razor celów kompilacji. Służy do ItemGroup określania dodatkowych plików, które mają zostać skompilowane w Razor zestawie. |
RazorEmbeddedResource |
Elementy elementu dodane jako zasoby osadzone do wygenerowanego Razor zestawu. |
Właściwości | opis |
---|---|
RazorOutputPath |
Razor Katalog wyjściowy. |
RazorCompileToolset |
Służy do określania zestawu narzędzi używanego do kompilowania Razor zestawu. Prawidłowe wartości to Implicit , RazorSDK i PrecompilationTool . |
EnableDefaultContentItems | Wartość domyślna to true . Jeśli true element zawiera plik web.config, .json i .cshtml pliki jako zawartość w projekcie. W przypadku odwoływanie się za pośrednictwem programu Microsoft.NET.Sdk.Web pliki wwwroot i config są również uwzględniane. |
EnableDefaultRazorGenerateItems |
Gdy true element zawiera .cshtml pliki z Content elementów w RazorGenerate elementach. |
GenerateRazorTargetAssemblyInfo |
Nie jest używany w programie .NET 6 lub nowszym. |
EnableDefaultRazorTargetAssemblyInfoAttributes |
Nie jest używany w programie .NET 6 lub nowszym. |
CopyRazorGenerateFilesToPublishDirectory |
Gdy true program kopiuje RazorGenerate pliki elementów (.cshtml ) do katalogu publikowania. Zazwyczaj pliki nie są wymagane dla opublikowanej aplikacji, Razor jeśli uczestniczą w kompilacji w czasie kompilacji lub w czasie publikowania. Wartość domyślna to false . |
PreserveCompilationReferences |
W przypadku true polecenia skopiuj odwołania do elementów zestawu do katalogu publikowania. Zazwyczaj zestawy referencyjne nie są wymagane dla opublikowanej aplikacji, jeśli Razor kompilacja występuje w czasie kompilacji lub w czasie publikowania. Ustaw wartość , true jeśli opublikowana aplikacja wymaga kompilacji środowiska uruchomieniowego. Na przykład ustaw wartość na true , jeśli aplikacja modyfikuje .cshtml pliki w czasie wykonywania lub używa osadzonych widoków. Wartość domyślna to false . |
IncludeRazorContentInPack |
Gdy true wszystkie Razor elementy zawartości (.cshtml pliki) są oznaczone do dołączeniu do wygenerowanego pakietu NuGet. Wartość domyślna to false . |
EmbedRazorGenerateSources |
Gdy true element RazorGenerate (.cshtml ) jest dodany jako pliki osadzone do wygenerowanego Razor zestawu. Wartość domyślna to false . |
GenerateMvcApplicationPartsAssemblyAttributes |
Nie jest używany w programie .NET 6 lub nowszym. |
DefaultWebContentItemExcludes |
Wzorzec globbingu dla elementów, które mają być wykluczone z Content grupy elementów w projektach przeznaczonych dla sieci Web lub Razor zestawu SDK |
ExcludeConfigFilesFromBuildOutput |
Gdy true plik .config i .json pliki nie są kopiowane do katalogu wyjściowego kompilacji. |
AddRazorSupportForMvc |
Gdy true program konfiguruje Razor zestaw SDK w celu dodania obsługi konfiguracji MVC wymaganej podczas kompilowania aplikacji zawierających widoki MVC lub Razor strony. Ta właściwość jest niejawnie ustawiana dla projektów platformy .NET Core 3.0 lub nowszych przeznaczonych dla zestawu Web SDK |
RazorLangVersion |
Wersja Razor języka na docelową. |
EmitCompilerGeneratedFiles |
Po ustawieniu wartości true na wartość generowane pliki źródłowe są zapisywane na dysku. Ustawienie na true wartość jest przydatne podczas debugowania kompilatora. Wartość domyślna to false . |
Aby uzyskać więcej informacji na temat właściwości, zobacz Właściwości programu MSBuild.
Kompilacja widoków Razor w czasie wykonywania
Domyślnie zestaw Razor SDK nie publikuje zestawów odwołań, które są wymagane do wykonania kompilacji środowiska uruchomieniowego. Powoduje to błędy kompilacji, gdy model aplikacji opiera się na kompilacji środowiska uruchomieniowego — na przykład aplikacja używa osadzonych widoków lub zmienia widoki po opublikowaniu aplikacji. Ustaw
CopyRefAssembliesToPublishDirectory
wartość , abytrue
kontynuować publikowanie zestawów odwołań. Zarówno generowanie kodu, jak i kompilacja są obsługiwane przez pojedyncze wywołanie kompilatora. Tworzony jest pojedynczy zestaw zawierający typy aplikacji i wygenerowane widoki.W przypadku aplikacji internetowej upewnij się, że aplikacja jest przeznaczona dla zestawu
Microsoft.NET.Sdk.Web
SDK.
Razor wersja języka
W przypadku określania wartości docelowej Microsoft.NET.Sdk.Web
zestawu SDK Razor wersja języka jest wnioskowana z docelowej wersji platformy aplikacji. W przypadku projektów przeznaczonych dla Microsoft.NET.Sdk.Razor
zestawu SDK lub w rzadkich przypadkach aplikacja wymaga innej Razor wersji językowej niż wywnioskowana wartość, można skonfigurować wersję, ustawiając <RazorLangVersion>
właściwość w pliku projektu aplikacji:
<PropertyGroup>
<RazorLangVersion>{VERSION}</RazorLangVersion>
</PropertyGroup>
RazorWersja języka jest ściśle zintegrowana z wersją środowiska uruchomieniowego, dla którego została utworzona. Określanie wersji językowej, która nie jest przeznaczona dla środowiska uruchomieniowego, jest nieobsługiwana i prawdopodobnie generuje błędy kompilacji.
Dodatkowe zasoby
Zestaw SDK platformy .NET Core 2.1 lub nowszy zawiera Microsoft.NET.Sdk.Razor
zestaw MSBuild SDK (Razor SDK). Zestaw Razor SDK:
- Jest wymagane do kompilowania, tworzenia, tworzenia i publikowania projektów zawierających Razor pliki dla ASP.NET Core MVC lub Blazor projektów.
- Zawiera zestaw wstępnie zdefiniowanych elementów docelowych, właściwości i elementów, które umożliwiają dostosowywanie kompilacji Razor plików (
.cshtml
lub.razor
).
Zestaw Razor SDK zawiera Content
elementy z atrybutami ustawionymi Include
na **\*.cshtml
wzorce globbing i **\*.razor
. Pliki pasujące są publikowane.
Wymagania wstępne
Zestaw .NET Core 2.1 SDK lub nowszy
Korzystanie z zestawu Razor SDK
Większość aplikacji internetowych nie jest wymagana do jawnego odwołowania się do zestawu Razor SDK.
Aby użyć Razor zestawu SDK do kompilowania bibliotek klas zawierających Razor widoki lub Razor strony, zalecamy rozpoczęcie od Razor szablonu projektu biblioteki klas (RCL). Lista RCL używana do kompilowania Blazor () plików (.razor
) minimalnie wymaga odwołania do pakietu Microsoft.AspNetCore.Components . Lista RCL używana do kompilowania Razor widoków lub stron (.cshtml
plików) minimalnie wymaga określania wartości docelowej netcoreapp3.0
lub nowszej i ma wartość FrameworkReference
dla Microsoft.AspNetCore.App metapakietu w pliku projektu.
Właściwości
Następujące właściwości kontrolują Razorzachowanie zestawu SDK w ramach kompilacji projektu:
RazorCompileOnBuild
: gdytrue
program kompiluje i emituje Razor zestaw w ramach kompilowania projektu. Wartość domyślna totrue
.RazorCompileOnPublish
: gdytrue
program kompiluje i emituje Razor zestaw w ramach publikowania projektu. Wartość domyślna totrue
.
Właściwości i elementy w poniższej tabeli służą do konfigurowania danych wejściowych i wyjściowych zestawu Razor SDK.
Ostrzeżenie
Począwszy od ASP.NET Core 3.0, widoki MVC lub Razor strony nie są domyślnie obsługiwane, jeśli RazorCompileOnBuild
właściwości lub RazorCompileOnPublish
MSBuild w pliku projektu są wyłączone. Aplikacje muszą dodać jawne odwołanie do pliku Microsoft.AspNetCore.Mvc.Razor. RuntimeCompilation pakiet, jeśli aplikacja korzysta z kompilacji środowiska uruchomieniowego do przetwarzania .cshtml
plików.
Elementy | opis |
---|---|
RazorGenerate |
Elementy elementu (.cshtml pliki), które są danymi wejściowymi do generowania kodu. |
RazorComponent |
Elementy elementu (.razor pliki), które są danymi wejściowymi do Razor generowania kodu składnika. |
RazorCompile |
Elementy elementu (.cs pliki), które są danymi wejściowymi do Razor celów kompilacji. Służy do ItemGroup określania dodatkowych plików, które mają zostać skompilowane w Razor zestawie. |
RazorTargetAssemblyAttribute |
Elementy elementu używane do generowania Razor atrybutów dla zestawu. Na przykład: .RazorAssemblyAttribute Include="System.Reflection.AssemblyMetadataAttribute" _Parameter1="BuildSource" _Parameter2="https://learn.microsoft.com/"> |
RazorEmbeddedResource |
Elementy elementu dodane jako zasoby osadzone do wygenerowanego Razor zestawu. |
Właściwości | opis |
---|---|
RazorTargetName |
Nazwa pliku (bez rozszerzenia) zestawu wygenerowanego przez Razorprogram . |
RazorOutputPath |
Razor Katalog wyjściowy. |
RazorCompileToolset |
Służy do określania zestawu narzędzi używanego do kompilowania Razor zestawu. Prawidłowe wartości to Implicit , RazorSDK i PrecompilationTool . |
EnableDefaultContentItems | Wartość domyślna to true . Jeśli true element zawiera plik web.config, .json i .cshtml pliki jako zawartość w projekcie. W przypadku odwoływanie się za pośrednictwem programu Microsoft.NET.Sdk.Web pliki wwwroot i config są również uwzględniane. |
EnableDefaultRazorGenerateItems |
Gdy true element zawiera .cshtml pliki z Content elementów w RazorGenerate elementach. |
GenerateRazorTargetAssemblyInfo |
Gdy true program generuje .cs plik zawierający atrybuty określone przez RazorAssemblyAttribute i dołącza plik w danych wyjściowych kompilacji. |
EnableDefaultRazorTargetAssemblyInfoAttributes |
Gdy true program dodaje domyślny zestaw atrybutów zestawu do RazorAssemblyAttribute elementu . |
CopyRazorGenerateFilesToPublishDirectory |
Gdy true program kopiuje RazorGenerate pliki elementów (.cshtml ) do katalogu publikowania. Zazwyczaj pliki nie są wymagane dla opublikowanej aplikacji, Razor jeśli uczestniczą w kompilacji w czasie kompilacji lub w czasie publikowania. Wartość domyślna to false . |
PreserveCompilationReferences |
W przypadku true polecenia skopiuj odwołania do elementów zestawu do katalogu publikowania. Zazwyczaj zestawy referencyjne nie są wymagane dla opublikowanej aplikacji, jeśli Razor kompilacja występuje w czasie kompilacji lub w czasie publikowania. Ustaw wartość , true jeśli opublikowana aplikacja wymaga kompilacji środowiska uruchomieniowego. Na przykład ustaw wartość na true , jeśli aplikacja modyfikuje .cshtml pliki w czasie wykonywania lub używa osadzonych widoków. Wartość domyślna to false . |
IncludeRazorContentInPack |
Gdy true wszystkie Razor elementy zawartości (.cshtml pliki) są oznaczone do dołączeniu do wygenerowanego pakietu NuGet. Wartość domyślna to false . |
EmbedRazorGenerateSources |
Gdy true element RazorGenerate (.cshtml ) jest dodany jako pliki osadzone do wygenerowanego Razor zestawu. Wartość domyślna to false . |
UseRazorBuildServer |
Gdy true program używa trwałego procesu serwera kompilacji do odciążania pracy generowania kodu. Wartość domyślna to UseSharedCompilation . |
GenerateMvcApplicationPartsAssemblyAttributes |
Gdy true zestaw SDK generuje dodatkowe atrybuty używane przez MVC w czasie wykonywania do odnajdywania części aplikacji. |
DefaultWebContentItemExcludes |
Wzorzec globbingu dla elementów, które mają być wykluczone z Content grupy elementów w projektach przeznaczonych dla sieci Web lub Razor zestawu SDK |
ExcludeConfigFilesFromBuildOutput |
Gdy true plik .config i .json pliki nie są kopiowane do katalogu wyjściowego kompilacji. |
AddRazorSupportForMvc |
Gdy true program konfiguruje Razor zestaw SDK w celu dodania obsługi konfiguracji MVC wymaganej podczas kompilowania aplikacji zawierających widoki MVC lub Razor strony. Ta właściwość jest niejawnie ustawiana dla projektów platformy .NET Core 3.0 lub nowszych przeznaczonych dla zestawu Web SDK |
RazorLangVersion |
Wersja Razor języka na docelową. |
Aby uzyskać więcej informacji na temat właściwości, zobacz Właściwości programu MSBuild.
Elementy docelowe
Zestaw Razor SDK definiuje dwa główne cele:
RazorGenerate
: Kod generuje.cs
pliki zRazorGenerate
elementów elementu. Użyj właściwości ,RazorGenerateDependsOn
aby określić dodatkowe obiekty docelowe, które mogą być uruchamiane przed lub po tym obiekcie docelowym.RazorCompile
: kompiluje wygenerowane.cs
pliki w zestawie Razor . Użyj polecenia ,RazorCompileDependsOn
aby określić dodatkowe obiekty docelowe, które mogą być uruchamiane przed lub po tym obiekcie docelowym.RazorComponentGenerate
: Kod generuje.cs
pliki dlaRazorComponent
elementów elementu. Użyj właściwości ,RazorComponentGenerateDependsOn
aby określić dodatkowe obiekty docelowe, które mogą być uruchamiane przed lub po tym obiekcie docelowym.
Kompilacja widoków Razor w czasie wykonywania
Domyślnie zestaw Razor SDK nie publikuje zestawów odwołań, które są wymagane do wykonania kompilacji środowiska uruchomieniowego. Powoduje to błędy kompilacji, gdy model aplikacji opiera się na kompilacji środowiska uruchomieniowego — na przykład aplikacja używa osadzonych widoków lub zmienia widoki po opublikowaniu aplikacji. Ustaw
CopyRefAssembliesToPublishDirectory
wartość , abytrue
kontynuować publikowanie zestawów odwołań.W przypadku aplikacji internetowej upewnij się, że aplikacja jest przeznaczona dla zestawu
Microsoft.NET.Sdk.Web
SDK.
Razor wersja języka
W przypadku określania wartości docelowej Microsoft.NET.Sdk.Web
zestawu SDK Razor wersja języka jest wnioskowana z docelowej wersji platformy aplikacji. W przypadku projektów przeznaczonych dla Microsoft.NET.Sdk.Razor
zestawu SDK lub w rzadkich przypadkach aplikacja wymaga innej Razor wersji językowej niż wywnioskowana wartość, można skonfigurować wersję, ustawiając <RazorLangVersion>
właściwość w pliku projektu aplikacji:
<PropertyGroup>
<RazorLangVersion>{VERSION}</RazorLangVersion>
</PropertyGroup>
RazorWersja języka jest ściśle zintegrowana z wersją środowiska uruchomieniowego, dla którego została utworzona. Określanie wersji językowej, która nie jest przeznaczona dla środowiska uruchomieniowego, jest nieobsługiwana i prawdopodobnie generuje błędy kompilacji.
Dodatkowe zasoby
- Standaryzacja środowiska tworzenia, pakowania i publikowania projektów zawierających Razor pliki dla projektów opartych na ASP.NET Core MVC.
- Zawiera zestaw wstępnie zdefiniowanych elementów docelowych, właściwości i elementów, które umożliwiają dostosowywanie kompilacji Razor plików.
Zestaw Razor SDK zawiera Content
element z atrybutem ustawionym Include
**\*.cshtml
na wzorzec globbingu. Pliki pasujące są publikowane.
Wymagania wstępne
Zestaw .NET Core 2.1 SDK lub nowszy
Korzystanie z zestawu Razor SDK
Większość aplikacji internetowych nie jest wymagana do jawnego odwołowania się do zestawu Razor SDK.
Aby użyć zestawu Razor SDK do kompilowania bibliotek klas zawierających Razor widoki lub Razor strony:
Użyj
Microsoft.NET.Sdk.Razor
zamiastMicrosoft.NET.Sdk
:<Project SDK="Microsoft.NET.Sdk.Razor"> <!-- omitted for brevity --> </Project>
Zazwyczaj wymagane jest odwołanie do pakietu, aby
Microsoft.AspNetCore.Mvc
otrzymywać dodatkowe zależności wymagane do kompilowania i kompilowania Razor stron i Razor widoków. Co najmniej projekt powinien dodać odwołania do pakietu:Microsoft.AspNetCore.Razor.Design
Microsoft.AspNetCore.Mvc.Razor.Extensions
Microsoft.AspNetCore.Mvc.Razor
Pakiet
Microsoft.AspNetCore.Razor.Design
udostępnia Razor zadania kompilacji i elementy docelowe dla projektu.Poprzednie pakiety są uwzględnione w pliku
Microsoft.AspNetCore.Mvc
. Poniższy znacznik przedstawia plik projektu, który używa Razor zestawu SDK do kompilowania Razor plików dla aplikacji 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>
Ostrzeżenie
Pakiety Microsoft.AspNetCore.Razor.Design
i Microsoft.AspNetCore.Mvc.Razor.Extensions
znajdują się w Microsoft.AspNetCore.App metapakiecie. Jednak dokumentacja pakietu bez Microsoft.AspNetCore.App
wersji zawiera metapakiet dla aplikacji, która nie zawiera najnowszej wersji programu Microsoft.AspNetCore.Razor.Design
. Projekty muszą odwoływać się do spójnej Microsoft.AspNetCore.Razor.Design
wersji (lub Microsoft.AspNetCore.Mvc
), aby uwzględnić najnowsze poprawki czasu kompilacji Razor . Aby uzyskać więcej informacji, zobacz ten problem w serwisie GitHub.
Właściwości
Następujące właściwości kontrolują Razorzachowanie zestawu SDK w ramach kompilacji projektu:
RazorCompileOnBuild
: gdytrue
program kompiluje i emituje Razor zestaw w ramach kompilowania projektu. Wartość domyślna totrue
.RazorCompileOnPublish
: gdytrue
program kompiluje i emituje Razor zestaw w ramach publikowania projektu. Wartość domyślna totrue
.
Właściwości i elementy w poniższej tabeli służą do konfigurowania danych wejściowych i wyjściowych zestawu Razor SDK.
Elementy | opis |
---|---|
RazorGenerate |
Elementy elementu (.cshtml pliki), które są danymi wejściowymi do generowania kodu. |
RazorComponent |
Elementy elementu (.razor pliki), które są danymi wejściowymi do Razor generowania kodu składnika. |
RazorCompile |
Elementy elementu (.cs pliki), które są danymi wejściowymi do Razor celów kompilacji. Służy do ItemGroup określania dodatkowych plików, które mają zostać skompilowane w Razor zestawie. |
RazorTargetAssemblyAttribute |
Elementy elementu używane do generowania Razor atrybutów dla zestawu. Na przykład: .RazorAssemblyAttribute Include="System.Reflection.AssemblyMetadataAttribute" _Parameter1="BuildSource" _Parameter2="https://learn.microsoft.com/"> |
RazorEmbeddedResource |
Elementy elementu dodane jako zasoby osadzone do wygenerowanego Razor zestawu. |
Właściwości | opis |
---|---|
RazorTargetName |
Nazwa pliku (bez rozszerzenia) zestawu wygenerowanego przez Razorprogram . |
RazorOutputPath |
Razor Katalog wyjściowy. |
RazorCompileToolset |
Służy do określania zestawu narzędzi używanego do kompilowania Razor zestawu. Prawidłowe wartości to Implicit , RazorSDK i PrecompilationTool . |
EnableDefaultContentItems | Wartość domyślna to true . Jeśli true element zawiera plik web.config, .json i .cshtml pliki jako zawartość w projekcie. W przypadku odwoływanie się za pośrednictwem programu Microsoft.NET.Sdk.Web pliki wwwroot i config są również uwzględniane. |
EnableDefaultRazorGenerateItems |
Gdy true element zawiera .cshtml pliki z Content elementów w RazorGenerate elementach. |
GenerateRazorTargetAssemblyInfo |
Gdy true program generuje .cs plik zawierający atrybuty określone przez RazorAssemblyAttribute i dołącza plik w danych wyjściowych kompilacji. |
EnableDefaultRazorTargetAssemblyInfoAttributes |
Gdy true program dodaje domyślny zestaw atrybutów zestawu do RazorAssemblyAttribute elementu . |
CopyRazorGenerateFilesToPublishDirectory |
Gdy true program kopiuje RazorGenerate pliki elementów (.cshtml ) do katalogu publikowania. Zazwyczaj pliki nie są wymagane dla opublikowanej aplikacji, Razor jeśli uczestniczą w kompilacji w czasie kompilacji lub w czasie publikowania. Wartość domyślna to false . |
CopyRefAssembliesToPublishDirectory |
W przypadku true polecenia skopiuj odwołania do elementów zestawu do katalogu publikowania. Zazwyczaj zestawy referencyjne nie są wymagane dla opublikowanej aplikacji, jeśli Razor kompilacja występuje w czasie kompilacji lub w czasie publikowania. Ustaw wartość , true jeśli opublikowana aplikacja wymaga kompilacji środowiska uruchomieniowego. Na przykład ustaw wartość na true , jeśli aplikacja modyfikuje .cshtml pliki w czasie wykonywania lub używa osadzonych widoków. Wartość domyślna to false . |
IncludeRazorContentInPack |
Gdy true wszystkie Razor elementy zawartości (.cshtml pliki) są oznaczone do dołączeniu do wygenerowanego pakietu NuGet. Wartość domyślna to false . |
EmbedRazorGenerateSources |
Gdy true element RazorGenerate (.cshtml ) jest dodany jako pliki osadzone do wygenerowanego Razor zestawu. Wartość domyślna to false . |
UseRazorBuildServer |
Gdy true program używa trwałego procesu serwera kompilacji do odciążania pracy generowania kodu. Wartość domyślna to UseSharedCompilation . |
GenerateMvcApplicationPartsAssemblyAttributes |
Gdy true zestaw SDK generuje dodatkowe atrybuty używane przez MVC w czasie wykonywania do odnajdywania części aplikacji. |
DefaultWebContentItemExcludes |
Wzorzec globbingu dla elementów, które mają być wykluczone z Content grupy elementów w projektach przeznaczonych dla sieci Web lub Razor zestawu SDK |
ExcludeConfigFilesFromBuildOutput |
Gdy true plik .config i .json pliki nie są kopiowane do katalogu wyjściowego kompilacji. |
AddRazorSupportForMvc |
Gdy true program konfiguruje Razor zestaw SDK w celu dodania obsługi konfiguracji MVC wymaganej podczas kompilowania aplikacji zawierających widoki MVC lub Razor strony. Ta właściwość jest niejawnie ustawiana dla projektów platformy .NET Core 3.0 lub nowszych przeznaczonych dla zestawu Web SDK |
RazorLangVersion |
Wersja Razor języka na docelową. |
Aby uzyskać więcej informacji na temat właściwości, zobacz Właściwości programu MSBuild.
Elementy docelowe
Zestaw Razor SDK definiuje dwa główne cele:
RazorGenerate
: Kod generuje.cs
pliki zRazorGenerate
elementów elementu. Użyj właściwości ,RazorGenerateDependsOn
aby określić dodatkowe obiekty docelowe, które mogą być uruchamiane przed lub po tym obiekcie docelowym.RazorCompile
: kompiluje wygenerowane.cs
pliki w zestawie Razor . Użyj polecenia ,RazorCompileDependsOn
aby określić dodatkowe obiekty docelowe, które mogą być uruchamiane przed lub po tym obiekcie docelowym.RazorComponentGenerate
: Kod generuje.cs
pliki dlaRazorComponent
elementów elementu. Użyj właściwości ,RazorComponentGenerateDependsOn
aby określić dodatkowe obiekty docelowe, które mogą być uruchamiane przed lub po tym obiekcie docelowym.
Kompilacja widoków Razor w czasie wykonywania
Domyślnie zestaw Razor SDK nie publikuje zestawów odwołań, które są wymagane do wykonania kompilacji środowiska uruchomieniowego. Powoduje to błędy kompilacji, gdy model aplikacji opiera się na kompilacji środowiska uruchomieniowego — na przykład aplikacja używa osadzonych widoków lub zmienia widoki po opublikowaniu aplikacji. Ustaw
CopyRefAssembliesToPublishDirectory
wartość , abytrue
kontynuować publikowanie zestawów odwołań.W przypadku aplikacji internetowej upewnij się, że aplikacja jest przeznaczona dla zestawu
Microsoft.NET.Sdk.Web
SDK.
Razor wersja języka
W przypadku określania wartości docelowej Microsoft.NET.Sdk.Web
zestawu SDK Razor wersja języka jest wnioskowana z docelowej wersji platformy aplikacji. W przypadku projektów przeznaczonych dla Microsoft.NET.Sdk.Razor
zestawu SDK lub w rzadkich przypadkach aplikacja wymaga innej Razor wersji językowej niż wywnioskowana wartość, można skonfigurować wersję, ustawiając <RazorLangVersion>
właściwość w pliku projektu aplikacji:
<PropertyGroup>
<RazorLangVersion>{VERSION}</RazorLangVersion>
</PropertyGroup>
RazorWersja języka jest ściśle zintegrowana z wersją środowiska uruchomieniowego, dla którego została utworzona. Określanie wersji językowej, która nie jest przeznaczona dla środowiska uruchomieniowego, jest nieobsługiwana i prawdopodobnie generuje błędy kompilacji.