Browse Source

Update templates to 8.0 (#45979)

William Godbe 3 years ago
parent
commit
4f3066d32c
39 changed files with 65 additions and 49 deletions
  1. 4 3
      docs/UpdatingMajorVersionAndTFM.md
  2. 2 2
      src/ProjectTemplates/Web.Client.ItemTemplates/content/Less/.template.config/template.json
  3. 2 2
      src/ProjectTemplates/Web.Client.ItemTemplates/content/Scss/.template.config/template.json
  4. 2 2
      src/ProjectTemplates/Web.Client.ItemTemplates/content/TypeScript/.template.config/template.json
  5. 2 2
      src/ProjectTemplates/Web.ItemTemplates/content/Protobuf/.template.config/template.json
  6. 2 2
      src/ProjectTemplates/Web.ItemTemplates/content/RazorComponent/.template.config/template.json
  7. 2 2
      src/ProjectTemplates/Web.ItemTemplates/content/RazorPage/.template.config/template.json
  8. 2 2
      src/ProjectTemplates/Web.ItemTemplates/content/ViewImports/.template.config/template.json
  9. 2 2
      src/ProjectTemplates/Web.ItemTemplates/content/ViewStart/.template.config/template.json
  10. 1 0
      src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/.template.config/localize/templatestrings.en.json
  11. 2 2
      src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/.template.config/template.json
  12. 1 0
      src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.en.json
  13. 2 2
      src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/.template.config/template.json
  14. 1 0
      src/ProjectTemplates/Web.ProjectTemplates/content/EmptyBlazorServerWeb-CSharp/.template.config/localize/templatestrings.en.json
  15. 2 2
      src/ProjectTemplates/Web.ProjectTemplates/content/EmptyBlazorServerWeb-CSharp/.template.config/template.json
  16. 1 0
      src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.en.json
  17. 2 2
      src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/template.json
  18. 1 0
      src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/localize/templatestrings.en.json
  19. 2 2
      src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/template.json
  20. 1 0
      src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/.template.config/localize/templatestrings.en.json
  21. 2 2
      src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/.template.config/template.json
  22. 1 0
      src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/localize/templatestrings.en.json
  23. 2 2
      src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/template.json
  24. 1 0
      src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/.template.config/localize/templatestrings.en.json
  25. 2 2
      src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/.template.config/template.json
  26. 1 0
      src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/localize/templatestrings.en.json
  27. 2 2
      src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/template.json
  28. 1 0
      src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/localize/templatestrings.en.json
  29. 2 2
      src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/template.json
  30. 1 0
      src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/.template.config/localize/templatestrings.en.json
  31. 2 2
      src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/.template.config/template.json
  32. 1 0
      src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/localize/templatestrings.en.json
  33. 2 2
      src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/template.json
  34. 1 0
      src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/.template.config/localize/templatestrings.en.json
  35. 2 2
      src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/.template.config/template.json
  36. 1 0
      src/ProjectTemplates/Web.ProjectTemplates/content/Worker-CSharp/.template.config/localize/templatestrings.en.json
  37. 2 2
      src/ProjectTemplates/Web.ProjectTemplates/content/Worker-CSharp/.template.config/template.json
  38. 1 0
      src/ProjectTemplates/Web.ProjectTemplates/content/Worker-FSharp/.template.config/localize/templatestrings.en.json
  39. 2 2
      src/ProjectTemplates/Web.ProjectTemplates/content/Worker-FSharp/.template.config/template.json

+ 4 - 3
docs/UpdatingMajorVersionAndTFM.md

@@ -46,9 +46,10 @@ Once dotnet/runtime has updated their TFM, we update ours in the dependency upda
   3. Create a PR like [this one](https://github.com/dotnet/spa-templates/pull/21) updating the branding & TFM in the `main` branch of dotnet/spa-templates.
     * Do not merge this until the PR from the previous step is merged.
 * Update template precedence
-  1. Create & merge a PR like [this one](https://github.com/dotnet/spa-templates/pull/39) in dotnet/spa-templates updating `precedence` and `identity` elements in all template.json files.
-      * Going forward, update precedence values by increasing them to the next integer value whose first digits correspond with the major version. This makes it easier to verify that precedence values for any given template were updated since the previous release.
-        * For example, if a precedence value was 9000 for 7.0, increase it to 80000 for 8.0.
+  1. Create & merge a PR like [this one](https://github.com/dotnet/spa-templates/pull/105) in dotnet/spa-templates updating `precedence` and `identity` elements in all template.json files, as well as replacing any references to the previous TFM with the new on in templatestrings.json files.
+      * Going forward, Precedence values should be (9000 + (Major Version) * 100) for 8.0 and 9.0, and (Major Version * 1000) after that.
+        * This means 8.0's Precedence should be 9800, 9.0's should be 9900, 10.0's should be 10000, 11.0's should be 11000, and so on.
+        * If we need to release a Minor version of any of these, use the first zero digit after the Major version to represent that (e.g. 9810 for 8.1, 10100 for 10.1).
   2. Create a PR like [this one](https://github.com/dotnet/aspnetcore/pull/39783) in dotnet/aspnetcore that updates the spa-templates submodule, and updates the `precedence`, `identity`, and (if it exists) `thirdPartyNotices` elements in all template.json files.
       * Make sure to update _all_ template.json files, including project templates and item templates.
       * Update precedence values by increasing them to the next integer value whose first digits correspond with the major version.

+ 2 - 2
src/ProjectTemplates/Web.Client.ItemTemplates/content/Less/.template.config/template.json

@@ -6,8 +6,8 @@
   "generatorVersions": "[1.0.0.0-*)",
   "description": "LESS is a language that compiles into CSS",
   "groupIdentity": "Microsoft.DotNet.Web.ClientItems.Less",
-  "precedence": "100",
-  "identity": "Microsoft.DotNet.Web.ClientItems.Less.7.0",
+  "precedence": "9800",
+  "identity": "Microsoft.DotNet.Web.ClientItems.Less.8.0",
   "shortName": "less",
   "sourceName": "styleSheet1",
   "tags": {

+ 2 - 2
src/ProjectTemplates/Web.Client.ItemTemplates/content/Scss/.template.config/template.json

@@ -6,8 +6,8 @@
   "generatorVersions": "[1.0.0.0-*)",
   "description": "SCSS is a language that compiles into CSS",
   "groupIdentity": "Microsoft.DotNet.Web.ClientItems.Scss",
-  "precedence": "100",
-  "identity": "Microsoft.DotNet.Web.ClientItems.Scss.7.0",
+  "precedence": "9800",
+  "identity": "Microsoft.DotNet.Web.ClientItems.Scss.8.0",
   "shortName": "scss",
   "sourceName": "styleSheet1",
   "tags": {

+ 2 - 2
src/ProjectTemplates/Web.Client.ItemTemplates/content/TypeScript/.template.config/template.json

@@ -6,8 +6,8 @@
   "generatorVersions": "[1.0.0.0-*)",
   "description": "A blank TypeScript source file",
   "groupIdentity": "Microsoft.DotNet.Web.ClientItems.TypeScript",
-  "precedence": "100",
-  "identity": "Microsoft.DotNet.Web.ClientItems.TypeScript.7.0",
+  "precedence": "9800",
+  "identity": "Microsoft.DotNet.Web.ClientItems.TypeScript.8.0",
   "shortName": "tsfile",
   "sourceName": "file1",
   "tags": {

+ 2 - 2
src/ProjectTemplates/Web.ItemTemplates/content/Protobuf/.template.config/template.json

@@ -13,8 +13,8 @@
     "type": "item"
   },
   "groupIdentity": "Microsoft.Web.Grpc.Protobuf",
-  "precedence": "600",
-  "identity": "Microsoft.Web.Grpc.Protobuf.7.0",
+  "precedence": "9800",
+  "identity": "Microsoft.Web.Grpc.Protobuf.8.0",
   "shortname": "proto",
   "sourceName": "protobuf",
   "primaryOutputs": [

+ 2 - 2
src/ProjectTemplates/Web.ItemTemplates/content/RazorComponent/.template.config/template.json

@@ -13,8 +13,8 @@
     "type": "item"
   },
   "groupIdentity": "Microsoft.AspNetCore.Components.RazorComponent",
-  "precedence": "600",
-  "identity": "Microsoft.AspNetCore.Components.RazorComponent.7.0",
+  "precedence": "9800",
+  "identity": "Microsoft.AspNetCore.Components.RazorComponent.8.0",
   "shortname": "razorcomponent",
   "sourceName": "Component1",
   "primaryOutputs": [

+ 2 - 2
src/ProjectTemplates/Web.ItemTemplates/content/RazorPage/.template.config/template.json

@@ -10,8 +10,8 @@
     "type": "item"
   },
   "groupIdentity": "Microsoft.AspNetCore.Mvc.RazorPage",
-  "precedence": "600",
-  "identity": "Microsoft.AspNetCore.Mvc.RazorPage.7.0",
+  "precedence": "9800",
+  "identity": "Microsoft.AspNetCore.Mvc.RazorPage.8.0",
   "shortName": "page",
   "sourceName": "Index",
   "primaryOutputs": [

+ 2 - 2
src/ProjectTemplates/Web.ItemTemplates/content/ViewImports/.template.config/template.json

@@ -10,8 +10,8 @@
     "type": "item"
   },
   "groupIdentity": "Microsoft.AspNetCore.Mvc.ViewImports",
-  "precedence": "600",
-  "identity": "Microsoft.AspNetCore.Mvc.ViewImports.7.0",
+  "precedence": "9800",
+  "identity": "Microsoft.AspNetCore.Mvc.ViewImports.8.0",
   "shortName": "viewimports",
   "sourceName": "ignoreme",
   "primaryOutputs": [

+ 2 - 2
src/ProjectTemplates/Web.ItemTemplates/content/ViewStart/.template.config/template.json

@@ -10,8 +10,8 @@
     "type": "item"
   },
   "groupIdentity": "Microsoft.AspNetCore.Mvc.ViewStart",
-  "precedence": "600",
-  "identity": "Microsoft.AspNetCore.Mvc.ViewStart.7.0",
+  "precedence": "9800",
+  "identity": "Microsoft.AspNetCore.Mvc.ViewStart.8.0",
   "shortName": "viewstart",
   "sourceName": "ignoreme",
   "primaryOutputs": [

+ 1 - 0
src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/.template.config/localize/templatestrings.en.json

@@ -30,6 +30,7 @@
   "symbols/UseLocalDB/description": "Whether to use LocalDB instead of SQLite. This option only applies if --auth Individual or --auth IndividualB2C is specified.",
   "symbols/Framework/description": "The target framework for the project.",
   "symbols/Framework/choices/net8.0/description": "Target net8.0",
+  "_symbols/Framework/choices/net8.0/description.comment": "{Locked='net8.0'}",
   "symbols/CalledApiUrl/description": "URL of the API to call from the web app. This option only applies if --auth SingleOrg, --auth MultiOrg or --auth IndividualB2C is specified.",
   "symbols/CallsMicrosoftGraph/description": "Specifies if the web app calls Microsoft Graph. This option only applies if --auth SingleOrg or --auth MultiOrg is specified.",
   "symbols/CalledApiScopes/description": "Scopes to request to call the API from the web app. This option only applies if --auth SingleOrg, --auth MultiOrg or --auth IndividualB2C is specified.",

+ 2 - 2
src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/.template.config/template.json

@@ -9,8 +9,8 @@
   "generatorVersions": "[1.0.0.0-*)",
   "description": "A project template for creating a Blazor server app that runs server-side inside an ASP.NET Core app and handles user interactions over a SignalR connection. This template can be used for web apps with rich dynamic user interfaces (UIs).",
   "groupIdentity": "Microsoft.Web.Blazor.Server",
-  "precedence": "9000",
-  "identity": "Microsoft.Web.Blazor.Server.CSharp.7.0",
+  "precedence": "9800",
+  "identity": "Microsoft.Web.Blazor.Server.CSharp.8.0",
   "shortName": "blazorserver",
   "thirdPartyNotices": "https://aka.ms/aspnetcore/8.0-third-party-notices",
   "tags": {

+ 1 - 0
src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.en.json

@@ -4,6 +4,7 @@
   "description": "A project template for creating a Blazor app that runs on WebAssembly and is optionally hosted by an ASP.NET Core app. This template can be used for web apps with rich dynamic user interfaces (UIs).",
   "symbols/Framework/description": "The target framework for the project.",
   "symbols/Framework/choices/net8.0/description": "Target net8.0",
+  "_symbols/Framework/choices/net8.0/description.comment": "{Locked='net8.0'}",
   "symbols/skipRestore/description": "If specified, skips the automatic restore of the project on create.",
   "symbols/Hosted/displayName": "ASP.NET Core _Hosted",
   "symbols/Hosted/description": "If specified, includes an ASP.NET Core host for the Blazor WebAssembly app.",

+ 2 - 2
src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/.template.config/template.json

@@ -11,7 +11,7 @@
   "defaultName": "BlazorApp",
   "description": "A project template for creating a Blazor app that runs on WebAssembly and is optionally hosted by an ASP.NET Core app. This template can be used for web apps with rich dynamic user interfaces (UIs).",
   "groupIdentity": "Microsoft.Web.Blazor.Wasm",
-  "precedence": "9000",
+  "precedence": "9800",
   "guids": [
     "4C26868E-5E7C-458D-82E3-040509D0C71F",
     "5990939C-7E7B-4CFA-86FF-44CA5756498A",
@@ -20,7 +20,7 @@
     "09732173-2cef-46b7-83db-1334bcb079d3", // Tenant ID
     "53bc9b9d-9d6a-45d4-8429-2a2761773502" // Client ID
   ],
-  "identity": "Microsoft.Web.Blazor.Wasm.CSharp.7.0",
+  "identity": "Microsoft.Web.Blazor.Wasm.CSharp.8.0",
   "thirdPartyNotices": "https://aka.ms/aspnetcore/8.0-third-party-notices",
   "preferNameDirectory": true,
   "primaryOutputs": [

+ 1 - 0
src/ProjectTemplates/Web.ProjectTemplates/content/EmptyBlazorServerWeb-CSharp/.template.config/localize/templatestrings.en.json

@@ -11,6 +11,7 @@
   "symbols/NoHttps/description": "Whether to turn off HTTPS.",
   "symbols/Framework/description": "The target framework for the project.",
   "symbols/Framework/choices/net8.0/description": "Target net8.0",
+  "_symbols/Framework/choices/net8.0/description.comment": "{Locked='net8.0'}",
   "symbols/skipRestore/description": "If specified, skips the automatic restore of the project on create.",
   "postActions/restore/description": "Restore NuGet packages required by this project.",
   "postActions/restore/manualInstructions/default/text": "Run 'dotnet restore'"

+ 2 - 2
src/ProjectTemplates/Web.ProjectTemplates/content/EmptyBlazorServerWeb-CSharp/.template.config/template.json

@@ -10,8 +10,8 @@
   "generatorVersions": "[1.0.0.0-*)",
   "description": "An empty project template for creating a Blazor server app that runs server-side inside an ASP.NET Core app and handles user interactions over a SignalR connection. This template does not have any content in it.",
   "groupIdentity": "Microsoft.Web.Blazor.Server.Empty",
-  "precedence": "9000",
-  "identity": "Microsoft.Web.Blazor.Server.Empty.CSharp.7.0",
+  "precedence": "9800",
+  "identity": "Microsoft.Web.Blazor.Server.Empty.CSharp.8.0",
   "shortName": "blazorserver-empty",
   "thirdPartyNotices": "https://aka.ms/aspnetcore/8.0-third-party-notices",
   "tags": {

+ 1 - 0
src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.en.json

@@ -4,6 +4,7 @@
   "description": "An empty project template for creating a Blazor app that runs on WebAssembly and is optionally hosted by an ASP.NET Core app. This template does not have any content in it.",
   "symbols/Framework/description": "The target framework for the project.",
   "symbols/Framework/choices/net8.0/description": "Target net8.0",
+  "_symbols/Framework/choices/net8.0/description.comment": "{Locked='net8.0'}",
   "symbols/skipRestore/description": "If specified, skips the automatic restore of the project on create.",
   "symbols/Hosted/displayName": "ASP.NET Core _Hosted",
   "symbols/Hosted/description": "If specified, includes an ASP.NET Core host for the Blazor WebAssembly app.",

+ 2 - 2
src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/template.json

@@ -12,8 +12,8 @@
   "defaultName": "BlazorApp-empty",
   "description": "An empty project template for creating a Blazor app that runs on WebAssembly and is optionally hosted by an ASP.NET Core app. This template does not have any content in it.",
   "groupIdentity": "Microsoft.Web.Blazor.Wasm.Empty",
-  "precedence": "9000",
-  "identity": "Microsoft.Web.Blazor.Wasm.Empty.CSharp.7.0",
+  "precedence": "9800",
+  "identity": "Microsoft.Web.Blazor.Wasm.Empty.CSharp.8.0",
   "thirdPartyNotices": "https://aka.ms/aspnetcore/8.0-third-party-notices",
   "preferNameDirectory": true,
   "primaryOutputs": [

+ 1 - 0
src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/localize/templatestrings.en.json

@@ -9,6 +9,7 @@
   "symbols/iisHttpsPort/description": "Port number to use for the IIS Express HTTPS endpoint in launchSettings.json. This option is only applicable when the parameter no-https is not used (no-https will be ignored if either IndividualAuth or OrganizationalAuth is used).",
   "symbols/Framework/description": "The target framework for the project.",
   "symbols/Framework/choices/net8.0/description": "Target net8.0",
+  "_symbols/Framework/choices/net8.0/description.comment": "{Locked='net8.0'}",
   "symbols/skipRestore/description": "If specified, skips the automatic restore of the project on create.",
   "symbols/NoHttps/description": "Whether to turn off HTTPS. This option only applies if Individual, IndividualB2C, SingleOrg, or MultiOrg aren't used for --auth.",
   "symbols/UseProgramMain/displayName": "Do not use _top-level statements",

+ 2 - 2
src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/template.json

@@ -9,8 +9,8 @@
   "generatorVersions": "[1.0.0.0-*)",
   "description": "An empty project template for creating an ASP.NET Core application. This template does not have any content in it.",
   "groupIdentity": "Microsoft.Web.Empty",
-  "precedence": "9000",
-  "identity": "Microsoft.Web.Empty.CSharp.7.0",
+  "precedence": "9800",
+  "identity": "Microsoft.Web.Empty.CSharp.8.0",
   "shortName": "web",
   "tags": {
     "language": "C#",

+ 1 - 0
src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/.template.config/localize/templatestrings.en.json

@@ -9,6 +9,7 @@
   "symbols/iisHttpsPort/description": "Port number to use for the IIS Express HTTPS endpoint in launchSettings.json. This option is only applicable when the parameter no-https is not used (no-https will be ignored if either IndividualAuth or OrganizationalAuth is used).",
   "symbols/Framework/description": "The target framework for the project.",
   "symbols/Framework/choices/net8.0/description": "Target net8.0",
+  "_symbols/Framework/choices/net8.0/description.comment": "{Locked='net8.0'}",
   "symbols/skipRestore/description": "If specified, skips the automatic restore of the project on create.",
   "symbols/NoHttps/description": "Whether to turn off HTTPS. This option only applies if Individual, IndividualB2C, SingleOrg, or MultiOrg aren't used for --auth.",
   "postActions/restore/description": "Restore NuGet packages required by this project.",

+ 2 - 2
src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/.template.config/template.json

@@ -8,8 +8,8 @@
   "generatorVersions": "[1.0.0.0-*)",
   "description": "An empty project template for creating an ASP.NET Core application. This template does not have any content in it.",
   "groupIdentity": "Microsoft.Web.Empty",
-  "precedence": "9000",
-  "identity": "Microsoft.Web.Empty.FSharp.7.0",
+  "precedence": "9800",
+  "identity": "Microsoft.Web.Empty.FSharp.8.0",
   "shortName": "web",
   "tags": {
     "language": "F#",

+ 1 - 0
src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/localize/templatestrings.en.json

@@ -4,6 +4,7 @@
   "description": "A project template for creating a gRPC ASP.NET Core service.",
   "symbols/Framework/description": "The target framework for the project.",
   "symbols/Framework/choices/net8.0/description": "Target net8.0",
+  "_symbols/Framework/choices/net8.0/description.comment": "{Locked='net8.0'}",
   "symbols/ExcludeLaunchSettings/description": "Whether to exclude launchSettings.json from the generated template.",
   "symbols/skipRestore/description": "If specified, skips the automatic restore of the project on create.",
   "symbols/kestrelHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json.",

+ 2 - 2
src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/template.json

@@ -9,8 +9,8 @@
   "generatorVersions": "[1.0.0.0-*)",
   "description": "A project template for creating a gRPC ASP.NET Core service.",
   "groupIdentity": "Microsoft.Web.Grpc",
-  "precedence": "9000",
-  "identity": "Microsoft.Grpc.Service.CSharp.7.0",
+  "precedence": "9800",
+  "identity": "Microsoft.Grpc.Service.CSharp.8.0",
   "shortName": "grpc",
   "tags": {
     "language": "C#",

+ 1 - 0
src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/.template.config/localize/templatestrings.en.json

@@ -4,6 +4,7 @@
   "description": "A project for creating a Razor class library that targets .NET Standard",
   "symbols/Framework/description": "The target framework for the project.",
   "symbols/Framework/choices/net8.0/description": "Target net8.0",
+  "_symbols/Framework/choices/net8.0/description.comment": "{Locked='net8.0'}",
   "symbols/skipRestore/description": "If specified, skips the automatic restore of the project on create.",
   "symbols/SupportPagesAndViews/displayName": "Support pages and views",
   "symbols/SupportPagesAndViews/description": "Whether to support adding traditional Razor pages and Views to this library.",

+ 2 - 2
src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/.template.config/template.json

@@ -10,8 +10,8 @@
   "generatorVersions": "[1.0.0.0-*)",
   "description": "A project for creating a Razor class library that targets .NET Standard",
   "groupIdentity": "Microsoft.Web.Razor",
-  "precedence": "9000",
-  "identity": "Microsoft.Web.Razor.Library.CSharp.7.0",
+  "precedence": "9800",
+  "identity": "Microsoft.Web.Razor.Library.CSharp.8.0",
   "shortName": "razorclasslib",
   "tags": {
     "language": "C#",

+ 1 - 0
src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/localize/templatestrings.en.json

@@ -31,6 +31,7 @@
   "symbols/UseLocalDB/description": "Whether to use LocalDB instead of SQLite. This option only applies if --auth Individual or --auth IndividualB2C is specified.",
   "symbols/Framework/description": "The target framework for the project.",
   "symbols/Framework/choices/net8.0/description": "Target net8.0",
+  "_symbols/Framework/choices/net8.0/description.comment": "{Locked='net8.0'}",
   "symbols/CalledApiUrl/description": "URL of the API to call from the web app. This option only applies if --auth SingleOrg, --auth MultiOrg or --auth IndividualB2C is specified.",
   "symbols/CallsMicrosoftGraph/description": "Specifies if the web app calls Microsoft Graph. This option only applies if --auth SingleOrg or --auth MultiOrg is specified.",
   "symbols/CalledApiScopes/description": "Scopes to request to call the API from the web app. This option only applies if --auth SingleOrg, --auth MultiOrg or --auth IndividualB2C is specified.",

+ 2 - 2
src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/template.json

@@ -10,8 +10,8 @@
   "generatorVersions": "[1.0.0.0-*)",
   "description": "A project template for creating an ASP.NET Core application with example ASP.NET Core Razor Pages content",
   "groupIdentity": "Microsoft.Web.RazorPages",
-  "precedence": "9000",
-  "identity": "Microsoft.Web.RazorPages.CSharp.7.0",
+  "precedence": "9800",
+  "identity": "Microsoft.Web.RazorPages.CSharp.8.0",
   "shortName": [
     "webapp",
     "razor"

+ 1 - 0
src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/localize/templatestrings.en.json

@@ -30,6 +30,7 @@
   "symbols/UseLocalDB/description": "Whether to use LocalDB instead of SQLite. This option only applies if --auth Individual or --auth IndividualB2C is specified.",
   "symbols/Framework/description": "The target framework for the project.",
   "symbols/Framework/choices/net8.0/description": "Target net8.0",
+  "_symbols/Framework/choices/net8.0/description.comment": "{Locked='net8.0'}",
   "symbols/skipRestore/description": "If specified, skips the automatic restore of the project on create.",
   "symbols/CalledApiUrl/description": "URL of the API to call from the web app. This option only applies if --auth SingleOrg, --auth MultiOrg or --auth IndividualB2C is specified.",
   "symbols/CallsMicrosoftGraph/description": "Specifies if the web app calls Microsoft Graph. This option only applies if --auth SingleOrg or --auth MultiOrg is specified.",

+ 2 - 2
src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/template.json

@@ -9,8 +9,8 @@
   "generatorVersions": "[1.0.0.0-*)",
   "description": "A project template for creating an ASP.NET Core application with example ASP.NET Core MVC Views and Controllers. This template can also be used for RESTful HTTP services.",
   "groupIdentity": "Microsoft.Web.Mvc",
-  "precedence": "9000",
-  "identity": "Microsoft.Web.Mvc.CSharp.7.0",
+  "precedence": "9800",
+  "identity": "Microsoft.Web.Mvc.CSharp.8.0",
   "shortName": "mvc",
   "thirdPartyNotices": "https://aka.ms/aspnetcore/8.0-third-party-notices",
   "tags": {

+ 1 - 0
src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/.template.config/localize/templatestrings.en.json

@@ -9,6 +9,7 @@
   "symbols/iisHttpsPort/description": "Port number to use for the IIS Express HTTPS endpoint in launchSettings.json. This option is only applicable when the parameter no-https is not used (no-https will be ignored if either IndividualAuth or OrganizationalAuth is used).",
   "symbols/Framework/description": "The target framework for the project.",
   "symbols/Framework/choices/net8.0/description": "Target net8.0",
+  "_symbols/Framework/choices/net8.0/description.comment": "{Locked='net8.0'}",
   "symbols/skipRestore/description": "If specified, skips the automatic restore of the project on create.",
   "symbols/NoHttps/description": "Whether to turn off HTTPS. This option only applies if Individual, IndividualB2C, SingleOrg, or MultiOrg aren't used for --auth.",
   "postActions/restore/description": "Restore NuGet packages required by this project.",

+ 2 - 2
src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/.template.config/template.json

@@ -9,8 +9,8 @@
   "generatorVersions": "[1.0.0.0-*)",
   "description": "A project template for creating an ASP.NET Core application with example ASP.NET Core MVC Views and Controllers. This template can also be used for RESTful HTTP services.",
   "groupIdentity": "Microsoft.Web.Mvc",
-  "precedence": "9000",
-  "identity": "Microsoft.Web.Mvc.FSharp.7.0",
+  "precedence": "9800",
+  "identity": "Microsoft.Web.Mvc.FSharp.8.0",
   "shortName": "mvc",
   "thirdPartyNotices": "https://aka.ms/aspnetcore/8.0-third-party-notices",
   "tags": {

+ 1 - 0
src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/localize/templatestrings.en.json

@@ -26,6 +26,7 @@
   "symbols/UseMinimalAPIs/description": "Whether to use minimal APIs instead of controllers.",
   "symbols/Framework/description": "The target framework for the project.",
   "symbols/Framework/choices/net8.0/description": "Target net8.0",
+  "_symbols/Framework/choices/net8.0/description.comment": "{Locked='net8.0'}",
   "symbols/skipRestore/description": "If specified, skips the automatic restore of the project on create.",
   "symbols/CalledApiUrl/description": "URL of the API to call from the web app. This option only applies if --auth SingleOrg or --auth IndividualB2C is specified.",
   "symbols/CallsMicrosoftGraph/description": "Specifies if the web app calls Microsoft Graph. This option only applies if --auth SingleOrg is specified.",

+ 2 - 2
src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/template.json

@@ -9,8 +9,8 @@
   "generatorVersions": "[1.0.0.0-*)",
   "description": "A project template for creating an ASP.NET Core application with an example Controller for a RESTful HTTP service. This template can also be used for ASP.NET Core MVC Views and Controllers.",
   "groupIdentity": "Microsoft.Web.WebApi",
-  "precedence": "9000",
-  "identity": "Microsoft.Web.WebApi.CSharp.7.0",
+  "precedence": "9800",
+  "identity": "Microsoft.Web.WebApi.CSharp.8.0",
   "shortName": "webapi",
   "tags": {
     "language": "C#",

+ 1 - 0
src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/.template.config/localize/templatestrings.en.json

@@ -9,6 +9,7 @@
   "symbols/iisHttpsPort/description": "Port number to use for the IIS Express HTTPS endpoint in launchSettings.json.",
   "symbols/Framework/description": "The target framework for the project.",
   "symbols/Framework/choices/net8.0/description": "Target net8.0",
+  "_symbols/Framework/choices/net8.0/description.comment": "{Locked='net8.0'}",
   "symbols/skipRestore/description": "If specified, skips the automatic restore of the project on create.",
   "symbols/NoHttps/description": "Whether to turn off HTTPS.",
   "postActions/restore/description": "Restore NuGet packages required by this project.",

+ 2 - 2
src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/.template.config/template.json

@@ -8,8 +8,8 @@
   "generatorVersions": "[1.0.0.0-*)",
   "description": "A project template for creating an ASP.NET Core application with an example Controller for a RESTful HTTP service. This template can also be used for ASP.NET Core MVC Views and Controllers.",
   "groupIdentity": "Microsoft.Web.WebApi",
-  "precedence": "9000",
-  "identity": "Microsoft.Web.WebApi.FSharp.7.0",
+  "precedence": "9800",
+  "identity": "Microsoft.Web.WebApi.FSharp.8.0",
   "shortName": "webapi",
   "tags": {
     "language": "F#",

+ 1 - 0
src/ProjectTemplates/Web.ProjectTemplates/content/Worker-CSharp/.template.config/localize/templatestrings.en.json

@@ -5,6 +5,7 @@
   "symbols/ExcludeLaunchSettings/description": "Whether to exclude launchSettings.json from the generated template.",
   "symbols/Framework/description": "The target framework for the project.",
   "symbols/Framework/choices/net8.0/description": "Target net8.0",
+  "_symbols/Framework/choices/net8.0/description.comment": "{Locked='net8.0'}",
   "symbols/skipRestore/description": "If specified, skips the automatic restore of the project on create.",
   "symbols/UseProgramMain/displayName": "Do not use _top-level statements",
   "_symbols/UseProgramMain/displayName.comment": "Use '_' as accelerator key when translating.",

+ 2 - 2
src/ProjectTemplates/Web.ProjectTemplates/content/Worker-CSharp/.template.config/template.json

@@ -10,8 +10,8 @@
   "generatorVersions": "[1.0.0.0-*)",
   "description": "An empty project template for creating a worker service.",
   "groupIdentity": "Microsoft.Worker.Empty",
-  "precedence": "9000",
-  "identity": "Microsoft.Worker.Empty.CSharp.7.0",
+  "precedence": "9800",
+  "identity": "Microsoft.Worker.Empty.CSharp.8.0",
   "shortName": "worker",
   "tags": {
     "language": "C#",

+ 1 - 0
src/ProjectTemplates/Web.ProjectTemplates/content/Worker-FSharp/.template.config/localize/templatestrings.en.json

@@ -5,6 +5,7 @@
   "symbols/ExcludeLaunchSettings/description": "Whether to exclude launchSettings.json from the generated template.",
   "symbols/Framework/description": "The target framework for the project.",
   "symbols/Framework/choices/net8.0/description": "Target net8.0",
+  "_symbols/Framework/choices/net8.0/description.comment": "{Locked='net8.0'}",
   "symbols/skipRestore/description": "If specified, skips the automatic restore of the project on create.",
   "postActions/restore/description": "Restore NuGet packages required by this project.",
   "postActions/restore/manualInstructions/default/text": "Run 'dotnet restore'"

+ 2 - 2
src/ProjectTemplates/Web.ProjectTemplates/content/Worker-FSharp/.template.config/template.json

@@ -10,8 +10,8 @@
   "generatorVersions": "[1.0.0.0-*)",
   "description": "An empty project template for creating a worker service.",
   "groupIdentity": "Microsoft.Worker.Empty",
-  "precedence": "9000",
-  "identity": "Microsoft.Worker.Empty.FSharp.7.0",
+  "precedence": "9800",
+  "identity": "Microsoft.Worker.Empty.FSharp.8.0",
   "shortName": "worker",
   "tags": {
     "language": "F#",