diff --git a/src/ProjectTemplates/Web.ProjectTemplates/EmptyComponentsWebAssembly-CSharp.Client.csproj.in b/src/ProjectTemplates/Web.ProjectTemplates/EmptyComponentsWebAssembly-CSharp.Client.csproj.in
new file mode 100644
index 000000000000..4b413350265b
--- /dev/null
+++ b/src/ProjectTemplates/Web.ProjectTemplates/EmptyComponentsWebAssembly-CSharp.Client.csproj.in
@@ -0,0 +1,33 @@
+
+
+
+ ${DefaultNetCoreTargetFramework}
+ enable
+ enable
+
+ service-worker-assets.js
+
+
+ `$(AssemblyName.Replace(' ', '_'))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/EmptyComponentsWebAssembly-CSharp.Server.csproj.in b/src/ProjectTemplates/Web.ProjectTemplates/EmptyComponentsWebAssembly-CSharp.Server.csproj.in
new file mode 100644
index 000000000000..f54a03b7f488
--- /dev/null
+++ b/src/ProjectTemplates/Web.ProjectTemplates/EmptyComponentsWebAssembly-CSharp.Server.csproj.in
@@ -0,0 +1,21 @@
+
+
+
+ ${DefaultNetCoreTargetFramework}
+ enable
+ enable
+ True
+ EmptyComponentsWebAssembly-CSharp.Server
+ `$(AssemblyName.Replace(' ', '_'))
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/EmptyComponentsWebAssembly-CSharp.Shared.csproj.in b/src/ProjectTemplates/Web.ProjectTemplates/EmptyComponentsWebAssembly-CSharp.Shared.csproj.in
new file mode 100644
index 000000000000..ba1c0026e997
--- /dev/null
+++ b/src/ProjectTemplates/Web.ProjectTemplates/EmptyComponentsWebAssembly-CSharp.Shared.csproj.in
@@ -0,0 +1,12 @@
+
+
+
+ ${DefaultNetCoreTargetFramework}
+ enable
+ enable
+
+
+
+
+
+
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/Microsoft.DotNet.Web.ProjectTemplates.csproj b/src/ProjectTemplates/Web.ProjectTemplates/Microsoft.DotNet.Web.ProjectTemplates.csproj
index 2dc413643421..80e8cb93d759 100644
--- a/src/ProjectTemplates/Web.ProjectTemplates/Microsoft.DotNet.Web.ProjectTemplates.csproj
+++ b/src/ProjectTemplates/Web.ProjectTemplates/Microsoft.DotNet.Web.ProjectTemplates.csproj
@@ -67,6 +67,9 @@
+
+
+
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/dotnetcli.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/dotnetcli.host.json
new file mode 100644
index 000000000000..f650ca83fa3b
--- /dev/null
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/dotnetcli.host.json
@@ -0,0 +1,42 @@
+{
+ "$schema": "http://json.schemastore.org/dotnetcli.host",
+ "symbolInfo": {
+ "skipRestore": {
+ "longName": "no-restore",
+ "shortName": ""
+ },
+ "Hosted": {
+ "longName": "hosted"
+ },
+ "PWA": {
+ "longName": "pwa"
+ },
+ "Framework": {
+ "longName": "framework"
+ },
+ "kestrelHttpPort": {
+ "isHidden": true
+ },
+ "kestrelHttpsPort": {
+ "isHidden": true
+ },
+ "iisHttpPort": {
+ "isHidden": true
+ },
+ "iisHttpsPort": {
+ "isHidden": true
+ },
+ "ExcludeLaunchSettings": {
+ "longName": "exclude-launch-settings",
+ "shortName": ""
+ },
+ "NoHttps": {
+ "longName": "no-https",
+ "shortName": ""
+ },
+ "CalledApiUrl": {
+ "longName": "called-api-url",
+ "shortName": ""
+ }
+ }
+}
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/ide.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/ide.host.json
new file mode 100644
index 000000000000..8e687ab7bce9
--- /dev/null
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/ide.host.json
@@ -0,0 +1,29 @@
+{
+ "$schema": "http://json.schemastore.org/ide.host",
+ "order": 660,
+ "icon": "ide/icon.png",
+ "disableHttpsSymbol": "NoHttps",
+ "symbolInfo": [
+ {
+ "id": "Hosted",
+ "isVisible": "true",
+ "persistenceScope": "templateGroup"
+ },
+ {
+ "id": "PWA",
+ "isVisible": "true",
+ "persistenceScope": "templateGroup"
+ }
+ ],
+ "tags": [
+ {
+ "type": "projectType",
+ "add": [ "Cloud", "Web" ],
+ "remove": [ "*" ]
+ },
+ {
+ "type": "platform",
+ "add": [ "Linux", "macOS", "Windows" ]
+ }
+ ]
+}
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/ide/icon.png b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/ide/icon.png
new file mode 100644
index 000000000000..8422b5969593
Binary files /dev/null and b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/ide/icon.png differ
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.cs.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.cs.json
new file mode 100644
index 000000000000..cd69b8df8493
--- /dev/null
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.cs.json
@@ -0,0 +1,23 @@
+{
+ "author": "Microsoft",
+ "name": "Blazor WebAssembly App 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.",
+ "symbols/Framework/description": "The target framework for the project.",
+ "symbols/Framework/choices/net7.0/description": "Target net7.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.",
+ "symbols/ExcludeLaunchSettings/description": "Whether to exclude launchSettings.json from the generated template.",
+ "symbols/kestrelHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json.",
+ "symbols/kestrelHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json. This option is only applicable when the parameter no-https is not used.",
+ "symbols/iisHttpPort/description": "Port number to use for the IIS Express HTTP endpoint in launchSettings.json.",
+ "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.",
+ "symbols/PWA/displayName": "_Progressive Web Application",
+ "symbols/PWA/description": "If specified, produces a Progressive Web Application (PWA) supporting installation and offline use.",
+ "symbols/HasHttpProfile/description": "Always have HTTP profile.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS.",
+ "postActions/restore/description": "Restore NuGet packages required by this project.",
+ "postActions/restore/manualInstructions/default/text": "Run 'dotnet restore'",
+ "postActions/restoreClient/description": "Restore NuGet packages required by this project.",
+ "postActions/restoreClient/manualInstructions/default/text": "Run 'dotnet restore'"
+}
\ No newline at end of file
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.de.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.de.json
new file mode 100644
index 000000000000..cd69b8df8493
--- /dev/null
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.de.json
@@ -0,0 +1,23 @@
+{
+ "author": "Microsoft",
+ "name": "Blazor WebAssembly App 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.",
+ "symbols/Framework/description": "The target framework for the project.",
+ "symbols/Framework/choices/net7.0/description": "Target net7.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.",
+ "symbols/ExcludeLaunchSettings/description": "Whether to exclude launchSettings.json from the generated template.",
+ "symbols/kestrelHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json.",
+ "symbols/kestrelHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json. This option is only applicable when the parameter no-https is not used.",
+ "symbols/iisHttpPort/description": "Port number to use for the IIS Express HTTP endpoint in launchSettings.json.",
+ "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.",
+ "symbols/PWA/displayName": "_Progressive Web Application",
+ "symbols/PWA/description": "If specified, produces a Progressive Web Application (PWA) supporting installation and offline use.",
+ "symbols/HasHttpProfile/description": "Always have HTTP profile.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS.",
+ "postActions/restore/description": "Restore NuGet packages required by this project.",
+ "postActions/restore/manualInstructions/default/text": "Run 'dotnet restore'",
+ "postActions/restoreClient/description": "Restore NuGet packages required by this project.",
+ "postActions/restoreClient/manualInstructions/default/text": "Run 'dotnet restore'"
+}
\ No newline at end of file
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.en.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.en.json
new file mode 100644
index 000000000000..cd69b8df8493
--- /dev/null
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.en.json
@@ -0,0 +1,23 @@
+{
+ "author": "Microsoft",
+ "name": "Blazor WebAssembly App 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.",
+ "symbols/Framework/description": "The target framework for the project.",
+ "symbols/Framework/choices/net7.0/description": "Target net7.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.",
+ "symbols/ExcludeLaunchSettings/description": "Whether to exclude launchSettings.json from the generated template.",
+ "symbols/kestrelHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json.",
+ "symbols/kestrelHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json. This option is only applicable when the parameter no-https is not used.",
+ "symbols/iisHttpPort/description": "Port number to use for the IIS Express HTTP endpoint in launchSettings.json.",
+ "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.",
+ "symbols/PWA/displayName": "_Progressive Web Application",
+ "symbols/PWA/description": "If specified, produces a Progressive Web Application (PWA) supporting installation and offline use.",
+ "symbols/HasHttpProfile/description": "Always have HTTP profile.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS.",
+ "postActions/restore/description": "Restore NuGet packages required by this project.",
+ "postActions/restore/manualInstructions/default/text": "Run 'dotnet restore'",
+ "postActions/restoreClient/description": "Restore NuGet packages required by this project.",
+ "postActions/restoreClient/manualInstructions/default/text": "Run 'dotnet restore'"
+}
\ No newline at end of file
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.es.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.es.json
new file mode 100644
index 000000000000..cd69b8df8493
--- /dev/null
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.es.json
@@ -0,0 +1,23 @@
+{
+ "author": "Microsoft",
+ "name": "Blazor WebAssembly App 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.",
+ "symbols/Framework/description": "The target framework for the project.",
+ "symbols/Framework/choices/net7.0/description": "Target net7.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.",
+ "symbols/ExcludeLaunchSettings/description": "Whether to exclude launchSettings.json from the generated template.",
+ "symbols/kestrelHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json.",
+ "symbols/kestrelHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json. This option is only applicable when the parameter no-https is not used.",
+ "symbols/iisHttpPort/description": "Port number to use for the IIS Express HTTP endpoint in launchSettings.json.",
+ "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.",
+ "symbols/PWA/displayName": "_Progressive Web Application",
+ "symbols/PWA/description": "If specified, produces a Progressive Web Application (PWA) supporting installation and offline use.",
+ "symbols/HasHttpProfile/description": "Always have HTTP profile.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS.",
+ "postActions/restore/description": "Restore NuGet packages required by this project.",
+ "postActions/restore/manualInstructions/default/text": "Run 'dotnet restore'",
+ "postActions/restoreClient/description": "Restore NuGet packages required by this project.",
+ "postActions/restoreClient/manualInstructions/default/text": "Run 'dotnet restore'"
+}
\ No newline at end of file
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.fr.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.fr.json
new file mode 100644
index 000000000000..cd69b8df8493
--- /dev/null
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.fr.json
@@ -0,0 +1,23 @@
+{
+ "author": "Microsoft",
+ "name": "Blazor WebAssembly App 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.",
+ "symbols/Framework/description": "The target framework for the project.",
+ "symbols/Framework/choices/net7.0/description": "Target net7.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.",
+ "symbols/ExcludeLaunchSettings/description": "Whether to exclude launchSettings.json from the generated template.",
+ "symbols/kestrelHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json.",
+ "symbols/kestrelHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json. This option is only applicable when the parameter no-https is not used.",
+ "symbols/iisHttpPort/description": "Port number to use for the IIS Express HTTP endpoint in launchSettings.json.",
+ "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.",
+ "symbols/PWA/displayName": "_Progressive Web Application",
+ "symbols/PWA/description": "If specified, produces a Progressive Web Application (PWA) supporting installation and offline use.",
+ "symbols/HasHttpProfile/description": "Always have HTTP profile.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS.",
+ "postActions/restore/description": "Restore NuGet packages required by this project.",
+ "postActions/restore/manualInstructions/default/text": "Run 'dotnet restore'",
+ "postActions/restoreClient/description": "Restore NuGet packages required by this project.",
+ "postActions/restoreClient/manualInstructions/default/text": "Run 'dotnet restore'"
+}
\ No newline at end of file
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.it.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.it.json
new file mode 100644
index 000000000000..cd69b8df8493
--- /dev/null
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.it.json
@@ -0,0 +1,23 @@
+{
+ "author": "Microsoft",
+ "name": "Blazor WebAssembly App 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.",
+ "symbols/Framework/description": "The target framework for the project.",
+ "symbols/Framework/choices/net7.0/description": "Target net7.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.",
+ "symbols/ExcludeLaunchSettings/description": "Whether to exclude launchSettings.json from the generated template.",
+ "symbols/kestrelHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json.",
+ "symbols/kestrelHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json. This option is only applicable when the parameter no-https is not used.",
+ "symbols/iisHttpPort/description": "Port number to use for the IIS Express HTTP endpoint in launchSettings.json.",
+ "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.",
+ "symbols/PWA/displayName": "_Progressive Web Application",
+ "symbols/PWA/description": "If specified, produces a Progressive Web Application (PWA) supporting installation and offline use.",
+ "symbols/HasHttpProfile/description": "Always have HTTP profile.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS.",
+ "postActions/restore/description": "Restore NuGet packages required by this project.",
+ "postActions/restore/manualInstructions/default/text": "Run 'dotnet restore'",
+ "postActions/restoreClient/description": "Restore NuGet packages required by this project.",
+ "postActions/restoreClient/manualInstructions/default/text": "Run 'dotnet restore'"
+}
\ No newline at end of file
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.ja.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.ja.json
new file mode 100644
index 000000000000..cd69b8df8493
--- /dev/null
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.ja.json
@@ -0,0 +1,23 @@
+{
+ "author": "Microsoft",
+ "name": "Blazor WebAssembly App 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.",
+ "symbols/Framework/description": "The target framework for the project.",
+ "symbols/Framework/choices/net7.0/description": "Target net7.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.",
+ "symbols/ExcludeLaunchSettings/description": "Whether to exclude launchSettings.json from the generated template.",
+ "symbols/kestrelHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json.",
+ "symbols/kestrelHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json. This option is only applicable when the parameter no-https is not used.",
+ "symbols/iisHttpPort/description": "Port number to use for the IIS Express HTTP endpoint in launchSettings.json.",
+ "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.",
+ "symbols/PWA/displayName": "_Progressive Web Application",
+ "symbols/PWA/description": "If specified, produces a Progressive Web Application (PWA) supporting installation and offline use.",
+ "symbols/HasHttpProfile/description": "Always have HTTP profile.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS.",
+ "postActions/restore/description": "Restore NuGet packages required by this project.",
+ "postActions/restore/manualInstructions/default/text": "Run 'dotnet restore'",
+ "postActions/restoreClient/description": "Restore NuGet packages required by this project.",
+ "postActions/restoreClient/manualInstructions/default/text": "Run 'dotnet restore'"
+}
\ No newline at end of file
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.ko.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.ko.json
new file mode 100644
index 000000000000..cd69b8df8493
--- /dev/null
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.ko.json
@@ -0,0 +1,23 @@
+{
+ "author": "Microsoft",
+ "name": "Blazor WebAssembly App 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.",
+ "symbols/Framework/description": "The target framework for the project.",
+ "symbols/Framework/choices/net7.0/description": "Target net7.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.",
+ "symbols/ExcludeLaunchSettings/description": "Whether to exclude launchSettings.json from the generated template.",
+ "symbols/kestrelHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json.",
+ "symbols/kestrelHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json. This option is only applicable when the parameter no-https is not used.",
+ "symbols/iisHttpPort/description": "Port number to use for the IIS Express HTTP endpoint in launchSettings.json.",
+ "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.",
+ "symbols/PWA/displayName": "_Progressive Web Application",
+ "symbols/PWA/description": "If specified, produces a Progressive Web Application (PWA) supporting installation and offline use.",
+ "symbols/HasHttpProfile/description": "Always have HTTP profile.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS.",
+ "postActions/restore/description": "Restore NuGet packages required by this project.",
+ "postActions/restore/manualInstructions/default/text": "Run 'dotnet restore'",
+ "postActions/restoreClient/description": "Restore NuGet packages required by this project.",
+ "postActions/restoreClient/manualInstructions/default/text": "Run 'dotnet restore'"
+}
\ No newline at end of file
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.pl.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.pl.json
new file mode 100644
index 000000000000..cd69b8df8493
--- /dev/null
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.pl.json
@@ -0,0 +1,23 @@
+{
+ "author": "Microsoft",
+ "name": "Blazor WebAssembly App 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.",
+ "symbols/Framework/description": "The target framework for the project.",
+ "symbols/Framework/choices/net7.0/description": "Target net7.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.",
+ "symbols/ExcludeLaunchSettings/description": "Whether to exclude launchSettings.json from the generated template.",
+ "symbols/kestrelHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json.",
+ "symbols/kestrelHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json. This option is only applicable when the parameter no-https is not used.",
+ "symbols/iisHttpPort/description": "Port number to use for the IIS Express HTTP endpoint in launchSettings.json.",
+ "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.",
+ "symbols/PWA/displayName": "_Progressive Web Application",
+ "symbols/PWA/description": "If specified, produces a Progressive Web Application (PWA) supporting installation and offline use.",
+ "symbols/HasHttpProfile/description": "Always have HTTP profile.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS.",
+ "postActions/restore/description": "Restore NuGet packages required by this project.",
+ "postActions/restore/manualInstructions/default/text": "Run 'dotnet restore'",
+ "postActions/restoreClient/description": "Restore NuGet packages required by this project.",
+ "postActions/restoreClient/manualInstructions/default/text": "Run 'dotnet restore'"
+}
\ No newline at end of file
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.pt-BR.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.pt-BR.json
new file mode 100644
index 000000000000..cd69b8df8493
--- /dev/null
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.pt-BR.json
@@ -0,0 +1,23 @@
+{
+ "author": "Microsoft",
+ "name": "Blazor WebAssembly App 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.",
+ "symbols/Framework/description": "The target framework for the project.",
+ "symbols/Framework/choices/net7.0/description": "Target net7.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.",
+ "symbols/ExcludeLaunchSettings/description": "Whether to exclude launchSettings.json from the generated template.",
+ "symbols/kestrelHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json.",
+ "symbols/kestrelHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json. This option is only applicable when the parameter no-https is not used.",
+ "symbols/iisHttpPort/description": "Port number to use for the IIS Express HTTP endpoint in launchSettings.json.",
+ "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.",
+ "symbols/PWA/displayName": "_Progressive Web Application",
+ "symbols/PWA/description": "If specified, produces a Progressive Web Application (PWA) supporting installation and offline use.",
+ "symbols/HasHttpProfile/description": "Always have HTTP profile.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS.",
+ "postActions/restore/description": "Restore NuGet packages required by this project.",
+ "postActions/restore/manualInstructions/default/text": "Run 'dotnet restore'",
+ "postActions/restoreClient/description": "Restore NuGet packages required by this project.",
+ "postActions/restoreClient/manualInstructions/default/text": "Run 'dotnet restore'"
+}
\ No newline at end of file
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.ru.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.ru.json
new file mode 100644
index 000000000000..cd69b8df8493
--- /dev/null
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.ru.json
@@ -0,0 +1,23 @@
+{
+ "author": "Microsoft",
+ "name": "Blazor WebAssembly App 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.",
+ "symbols/Framework/description": "The target framework for the project.",
+ "symbols/Framework/choices/net7.0/description": "Target net7.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.",
+ "symbols/ExcludeLaunchSettings/description": "Whether to exclude launchSettings.json from the generated template.",
+ "symbols/kestrelHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json.",
+ "symbols/kestrelHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json. This option is only applicable when the parameter no-https is not used.",
+ "symbols/iisHttpPort/description": "Port number to use for the IIS Express HTTP endpoint in launchSettings.json.",
+ "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.",
+ "symbols/PWA/displayName": "_Progressive Web Application",
+ "symbols/PWA/description": "If specified, produces a Progressive Web Application (PWA) supporting installation and offline use.",
+ "symbols/HasHttpProfile/description": "Always have HTTP profile.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS.",
+ "postActions/restore/description": "Restore NuGet packages required by this project.",
+ "postActions/restore/manualInstructions/default/text": "Run 'dotnet restore'",
+ "postActions/restoreClient/description": "Restore NuGet packages required by this project.",
+ "postActions/restoreClient/manualInstructions/default/text": "Run 'dotnet restore'"
+}
\ No newline at end of file
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.tr.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.tr.json
new file mode 100644
index 000000000000..cd69b8df8493
--- /dev/null
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.tr.json
@@ -0,0 +1,23 @@
+{
+ "author": "Microsoft",
+ "name": "Blazor WebAssembly App 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.",
+ "symbols/Framework/description": "The target framework for the project.",
+ "symbols/Framework/choices/net7.0/description": "Target net7.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.",
+ "symbols/ExcludeLaunchSettings/description": "Whether to exclude launchSettings.json from the generated template.",
+ "symbols/kestrelHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json.",
+ "symbols/kestrelHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json. This option is only applicable when the parameter no-https is not used.",
+ "symbols/iisHttpPort/description": "Port number to use for the IIS Express HTTP endpoint in launchSettings.json.",
+ "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.",
+ "symbols/PWA/displayName": "_Progressive Web Application",
+ "symbols/PWA/description": "If specified, produces a Progressive Web Application (PWA) supporting installation and offline use.",
+ "symbols/HasHttpProfile/description": "Always have HTTP profile.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS.",
+ "postActions/restore/description": "Restore NuGet packages required by this project.",
+ "postActions/restore/manualInstructions/default/text": "Run 'dotnet restore'",
+ "postActions/restoreClient/description": "Restore NuGet packages required by this project.",
+ "postActions/restoreClient/manualInstructions/default/text": "Run 'dotnet restore'"
+}
\ No newline at end of file
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.zh-Hans.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.zh-Hans.json
new file mode 100644
index 000000000000..cd69b8df8493
--- /dev/null
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.zh-Hans.json
@@ -0,0 +1,23 @@
+{
+ "author": "Microsoft",
+ "name": "Blazor WebAssembly App 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.",
+ "symbols/Framework/description": "The target framework for the project.",
+ "symbols/Framework/choices/net7.0/description": "Target net7.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.",
+ "symbols/ExcludeLaunchSettings/description": "Whether to exclude launchSettings.json from the generated template.",
+ "symbols/kestrelHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json.",
+ "symbols/kestrelHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json. This option is only applicable when the parameter no-https is not used.",
+ "symbols/iisHttpPort/description": "Port number to use for the IIS Express HTTP endpoint in launchSettings.json.",
+ "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.",
+ "symbols/PWA/displayName": "_Progressive Web Application",
+ "symbols/PWA/description": "If specified, produces a Progressive Web Application (PWA) supporting installation and offline use.",
+ "symbols/HasHttpProfile/description": "Always have HTTP profile.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS.",
+ "postActions/restore/description": "Restore NuGet packages required by this project.",
+ "postActions/restore/manualInstructions/default/text": "Run 'dotnet restore'",
+ "postActions/restoreClient/description": "Restore NuGet packages required by this project.",
+ "postActions/restoreClient/manualInstructions/default/text": "Run 'dotnet restore'"
+}
\ No newline at end of file
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.zh-Hant.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.zh-Hant.json
new file mode 100644
index 000000000000..cd69b8df8493
--- /dev/null
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/localize/templatestrings.zh-Hant.json
@@ -0,0 +1,23 @@
+{
+ "author": "Microsoft",
+ "name": "Blazor WebAssembly App 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.",
+ "symbols/Framework/description": "The target framework for the project.",
+ "symbols/Framework/choices/net7.0/description": "Target net7.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.",
+ "symbols/ExcludeLaunchSettings/description": "Whether to exclude launchSettings.json from the generated template.",
+ "symbols/kestrelHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json.",
+ "symbols/kestrelHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json. This option is only applicable when the parameter no-https is not used.",
+ "symbols/iisHttpPort/description": "Port number to use for the IIS Express HTTP endpoint in launchSettings.json.",
+ "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.",
+ "symbols/PWA/displayName": "_Progressive Web Application",
+ "symbols/PWA/description": "If specified, produces a Progressive Web Application (PWA) supporting installation and offline use.",
+ "symbols/HasHttpProfile/description": "Always have HTTP profile.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS.",
+ "postActions/restore/description": "Restore NuGet packages required by this project.",
+ "postActions/restore/manualInstructions/default/text": "Run 'dotnet restore'",
+ "postActions/restoreClient/description": "Restore NuGet packages required by this project.",
+ "postActions/restoreClient/manualInstructions/default/text": "Run 'dotnet restore'"
+}
\ No newline at end of file
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/template.json
new file mode 100644
index 000000000000..99a034666408
--- /dev/null
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/.template.config/template.json
@@ -0,0 +1,275 @@
+{
+ "$schema": "http://json.schemastore.org/template",
+ "author": "Microsoft",
+ "classifications": [
+ "Web",
+ "Blazor",
+ "WebAssembly",
+ "PWA",
+ "Empty"
+ ],
+ "name": "Blazor WebAssembly App Empty",
+ "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",
+ "thirdPartyNotices": "https://aka.ms/aspnetcore/7.0-third-party-notices",
+ "preferNameDirectory": true,
+ "primaryOutputs": [
+ {
+ "condition": "(Hosted && (HostIdentifier == \"dotnetcli\" || HostIdentifier == \"dotnetcli-preview\"))",
+ "path": "EmptyComponentsWebAssembly-CSharp.sln"
+ },
+ {
+ "condition": "(Hosted && HostIdentifier != \"dotnetcli\" && HostIdentifier != \"dotnetcli-preview\")",
+ "path": "Server/EmptyComponentsWebAssembly-CSharp.Server.csproj"
+ },
+ {
+ "condition": "(!Hosted)",
+ "path": "EmptyComponentsWebAssembly-CSharp.csproj"
+ },
+ {
+ "condition": "(Hosted && HostIdentifier != \"dotnetcli\" && HostIdentifier != \"dotnetcli-preview\")",
+ "path": "Client/EmptyComponentsWebAssembly-CSharp.Client.csproj"
+ },
+ {
+ "condition": "(Hosted && HostIdentifier != \"dotnetcli\" && HostIdentifier != \"dotnetcli-preview\")",
+ "path": "Shared/EmptyComponentsWebAssembly-CSharp.Shared.csproj"
+ }
+ ],
+ "shortName": "blazorwasm-empty",
+ "sourceName": "EmptyComponentsWebAssembly-CSharp",
+ "sources": [
+ {
+ "source": "./",
+ "target": "./",
+ "exclude": [
+ ".template.config/**"
+ ],
+ "copyOnly": [
+ "**/wwwroot/css/**"
+ ],
+ "modifiers": [
+ {
+ "condition": "(ExcludeLaunchSettings)",
+ "exclude": [
+ "Properties/launchSettings.json"
+ ]
+ },
+ {
+ "condition": "(!Hosted)",
+ "exclude": [
+ "Server/**",
+ "Shared/**",
+ "*.sln"
+ ],
+ "rename": {
+ ".Client.csproj": ".csproj",
+ "Client": "."
+ }
+ },
+ {
+ "condition": "(Hosted && HostIdentifier != \"dotnetcli\" && HostIdentifier != \"dotnetcli-preview\")",
+ "exclude": [
+ "*.sln"
+ ]
+ },
+ {
+ "condition": "(!PWA)",
+ "exclude": [
+ "Client/wwwroot/service-worker*.js",
+ "Client/wwwroot/manifest.json",
+ "Client/wwwroot/icon-512.png"
+ ]
+ }
+ ]
+ }
+ ],
+ "symbols": {
+ "Framework": {
+ "type": "parameter",
+ "description": "The target framework for the project.",
+ "datatype": "choice",
+ "choices": [
+ {
+ "choice": "net7.0",
+ "description": "Target net7.0"
+ }
+ ],
+ "replaces": "net7.0",
+ "defaultValue": "net7.0"
+ },
+ "HostIdentifier": {
+ "type": "bind",
+ "binding": "HostIdentifier"
+ },
+ "skipRestore": {
+ "type": "parameter",
+ "datatype": "bool",
+ "description": "If specified, skips the automatic restore of the project on create.",
+ "defaultValue": "false"
+ },
+ "Hosted": {
+ "type": "parameter",
+ "datatype": "bool",
+ "defaultValue": "false",
+ "displayName": "ASP.NET Core _Hosted",
+ "description": "If specified, includes an ASP.NET Core host for the Blazor WebAssembly app."
+ },
+ "ExcludeLaunchSettings": {
+ "type": "parameter",
+ "datatype": "bool",
+ "defaultValue": "false",
+ "description": "Whether to exclude launchSettings.json from the generated template."
+ },
+ "kestrelHttpPort": {
+ "type": "parameter",
+ "datatype": "integer",
+ "description": "Port number to use for the HTTP endpoint in launchSettings.json."
+ },
+ "kestrelHttpPortGenerated": {
+ "type": "generated",
+ "generator": "port",
+ "parameters": {
+ "low": 5000,
+ "high": 5300
+ }
+ },
+ "kestrelHttpPortReplacer": {
+ "type": "generated",
+ "generator": "coalesce",
+ "parameters": {
+ "sourceVariableName": "kestrelHttpPort",
+ "fallbackVariableName": "kestrelHttpPortGenerated"
+ },
+ "replaces": "5000"
+ },
+ "kestrelHttpsPort": {
+ "type": "parameter",
+ "datatype": "integer",
+ "description": "Port number to use for the HTTPS endpoint in launchSettings.json. This option is only applicable when the parameter no-https is not used."
+ },
+ "kestrelHttpsPortGenerated": {
+ "type": "generated",
+ "generator": "port",
+ "parameters": {
+ "low": 7000,
+ "high": 7300
+ }
+ },
+ "kestrelHttpsPortReplacer": {
+ "type": "generated",
+ "generator": "coalesce",
+ "parameters": {
+ "sourceVariableName": "kestrelHttpsPort",
+ "fallbackVariableName": "kestrelHttpsPortGenerated"
+ },
+ "replaces": "5001"
+ },
+ "iisHttpPort": {
+ "type": "parameter",
+ "datatype": "integer",
+ "description": "Port number to use for the IIS Express HTTP endpoint in launchSettings.json."
+ },
+ "iisHttpPortGenerated": {
+ "type": "generated",
+ "generator": "port"
+ },
+ "iisHttpPortReplacer": {
+ "type": "generated",
+ "generator": "coalesce",
+ "parameters": {
+ "sourceVariableName": "iisHttpPort",
+ "fallbackVariableName": "iisHttpPortGenerated"
+ },
+ "replaces": "8080"
+ },
+ "iisHttpsPort": {
+ "type": "parameter",
+ "datatype": "integer",
+ "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."
+ },
+ "iisHttpsPortGenerated": {
+ "type": "generated",
+ "generator": "port",
+ "parameters": {
+ "low": 44300,
+ "high": 44399
+ }
+ },
+ "iisHttpsPortReplacer": {
+ "type": "generated",
+ "generator": "coalesce",
+ "parameters": {
+ "sourceVariableName": "iisHttpsPort",
+ "fallbackVariableName": "iisHttpsPortGenerated"
+ },
+ "replaces": "44300"
+ },
+ "PWA": {
+ "type": "parameter",
+ "datatype": "bool",
+ "defaultValue": "false",
+ "displayName": "_Progressive Web Application",
+ "description": "If specified, produces a Progressive Web Application (PWA) supporting installation and offline use."
+ },
+ "HasHttpProfile": {
+ "type": "parameter",
+ "datatype": "bool",
+ "defaultValue": "true",
+ "description": "Always have HTTP profile."
+ },
+ "HasHttpsProfile": {
+ "type": "computed",
+ "value": "(!NoHttps)"
+ },
+ "NoHttps": {
+ "type": "parameter",
+ "datatype": "bool",
+ "defaultValue": "false",
+ "description": "Whether to turn off HTTPS."
+ },
+ "copyrightYear": {
+ "type": "generated",
+ "generator": "now",
+ "replaces": "copyrightYear",
+ "parameters": {
+ "format": "yyyy"
+ }
+ }
+ },
+ "tags": {
+ "language": "C#",
+ "type": "project"
+ },
+ "postActions": [
+ {
+ "id": "restore",
+ "condition": "(!skipRestore && Hosted)",
+ "description": "Restore NuGet packages required by this project.",
+ "manualInstructions": [
+ {
+ "text": "Run 'dotnet restore'"
+ }
+ ],
+ "actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025",
+ "continueOnError": true
+ },
+ {
+ "id": "restoreClient",
+ "condition": "(!skipRestore && !Hosted)",
+ "description": "Restore NuGet packages required by this project.",
+ "manualInstructions": [
+ {
+ "text": "Run 'dotnet restore'"
+ }
+ ],
+ "args": {
+ "files": [ "EmptyComponentsWebAssembly-CSharp.Client.csproj" ]
+ },
+ "actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025",
+ "continueOnError": true
+ }
+ ]
+}
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/Client/App.razor b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/Client/App.razor
new file mode 100644
index 000000000000..6fd3ed1b5a3b
--- /dev/null
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyComponentsWebAssembly-CSharp/Client/App.razor
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+ Not found
+
+