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ść FrameworkReferencedla 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: gdy trueprogram kompiluje i emituje Razor zestaw w ramach kompilowania projektu. Wartość domyślna to true.
  • RazorCompileOnPublish: gdy trueprogram kompiluje i emituje Razor zestaw w ramach publikowania projektu. Wartość domyślna to true.
  • UseRazorSourceGenerator: Wartość domyślna to true. 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 trueelement zawiera plik web.config, .jsoni .cshtml pliki jako zawartość w projekcie. W przypadku odwoływanie się za pośrednictwem programu Microsoft.NET.Sdk.Webpliki wwwroot i config są również uwzględniane.
EnableDefaultRazorGenerateItems Gdy trueelement 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 trueprogram 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 truepolecenia 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 truewszystkie Razor elementy zawartości (.cshtml pliki) są oznaczone do dołączeniu do wygenerowanego pakietu NuGet. Wartość domyślna to false.
EmbedRazorGenerateSources Gdy truepolecenie dodaje Razorelementy Generate (.cshtml) 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 trueplik .config i .json pliki nie są kopiowane do katalogu wyjściowego kompilacji.
AddRazorSupportForMvc Gdy trueprogram 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 truena 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ść , aby true 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ść FrameworkReferencedla 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: gdy trueprogram kompiluje i emituje Razor zestaw w ramach kompilowania projektu. Wartość domyślna to true.
  • RazorCompileOnPublish: gdy trueprogram kompiluje i emituje Razor zestaw w ramach publikowania projektu. Wartość domyślna to true.

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 trueelement zawiera plik web.config, .jsoni .cshtml pliki jako zawartość w projekcie. W przypadku odwoływanie się za pośrednictwem programu Microsoft.NET.Sdk.Webpliki wwwroot i config są również uwzględniane.
EnableDefaultRazorGenerateItems Gdy trueelement zawiera .cshtml pliki z Content elementów w RazorGenerate elementach.
GenerateRazorTargetAssemblyInfo Gdy trueprogram generuje .cs plik zawierający atrybuty określone przez RazorAssemblyAttribute i dołącza plik w danych wyjściowych kompilacji.
EnableDefaultRazorTargetAssemblyInfoAttributes Gdy trueprogram dodaje domyślny zestaw atrybutów zestawu do RazorAssemblyAttributeelementu .
CopyRazorGenerateFilesToPublishDirectory Gdy trueprogram 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 truepolecenia 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 truewszystkie Razor elementy zawartości (.cshtml pliki) są oznaczone do dołączeniu do wygenerowanego pakietu NuGet. Wartość domyślna to false.
EmbedRazorGenerateSources Gdy truepolecenie dodaje Razorelementy Generate (.cshtml) jako pliki osadzone do wygenerowanego Razor zestawu. Wartość domyślna to false.
UseRazorBuildServer Gdy trueprogram używa trwałego procesu serwera kompilacji do odciążania pracy generowania kodu. Wartość domyślna to UseSharedCompilation.
GenerateMvcApplicationPartsAssemblyAttributes Gdy truezestaw 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 trueplik .config i .json pliki nie są kopiowane do katalogu wyjściowego kompilacji.
AddRazorSupportForMvc Gdy trueprogram 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.

Cele

Zestaw Razor SDK definiuje dwa główne cele:

  • RazorGenerate: Kod generuje .cs pliki z RazorGenerate 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 dla RazorComponent 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ść , aby true 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 zamiast Microsoft.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: gdy trueprogram kompiluje i emituje Razor zestaw w ramach kompilowania projektu. Wartość domyślna to true.
  • RazorCompileOnPublish: gdy trueprogram kompiluje i emituje Razor zestaw w ramach publikowania projektu. Wartość domyślna to true.

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 trueelement zawiera plik web.config, .jsoni .cshtml pliki jako zawartość w projekcie. W przypadku odwoływanie się za pośrednictwem programu Microsoft.NET.Sdk.Webpliki wwwroot i config są również uwzględniane.
EnableDefaultRazorGenerateItems Gdy trueelement zawiera .cshtml pliki z Content elementów w RazorGenerate elementach.
GenerateRazorTargetAssemblyInfo Gdy trueprogram generuje .cs plik zawierający atrybuty określone przez RazorAssemblyAttribute i dołącza plik w danych wyjściowych kompilacji.
EnableDefaultRazorTargetAssemblyInfoAttributes Gdy trueprogram dodaje domyślny zestaw atrybutów zestawu do RazorAssemblyAttributeelementu .
CopyRazorGenerateFilesToPublishDirectory Gdy trueprogram 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 truepolecenia 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 truewszystkie Razor elementy zawartości (.cshtml pliki) są oznaczone do dołączeniu do wygenerowanego pakietu NuGet. Wartość domyślna to false.
EmbedRazorGenerateSources Gdy truepolecenie dodaje Razorelementy Generate (.cshtml) jako pliki osadzone do wygenerowanego Razor zestawu. Wartość domyślna to false.
UseRazorBuildServer Gdy trueprogram używa trwałego procesu serwera kompilacji do odciążania pracy generowania kodu. Wartość domyślna to UseSharedCompilation.
GenerateMvcApplicationPartsAssemblyAttributes Gdy truezestaw 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 trueplik .config i .json pliki nie są kopiowane do katalogu wyjściowego kompilacji.
AddRazorSupportForMvc Gdy trueprogram 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.

Cele

Zestaw Razor SDK definiuje dwa główne cele:

  • RazorGenerate: Kod generuje .cs pliki z RazorGenerate 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 dla RazorComponent 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ść , aby true 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