diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000000..7ebee63d8a
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,8 @@
+{
+ "files.associations": {
+ "*.json.in": "json"
+ },
+ "[json]": {
+ "editor.tabSize": 2
+ }
+}
diff --git a/Directory.Build.props b/Directory.Build.props
index 6e7ba7e87f..cc8828f5f6 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -1,4 +1,3 @@
-
diff --git a/Directory.Build.targets b/Directory.Build.targets
index 246f7ac20c..6902b49b99 100644
--- a/Directory.Build.targets
+++ b/Directory.Build.targets
@@ -1,4 +1,5 @@
+
diff --git a/NuGet.config b/NuGet.config
index 20060c934e..e32bddfd51 100644
--- a/NuGet.config
+++ b/NuGet.config
@@ -2,7 +2,6 @@
-
-
+
diff --git a/TemplateDependencies.props b/TemplateDependencies.props
deleted file mode 100644
index 3b5eb2c53a..0000000000
--- a/TemplateDependencies.props
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
- 2.0.0
- @(PackageReference->WithMetadataValue('Identity', 'Microsoft.AspNetCore')->Metadata('Version'))
- 2.1.0-preview1-26751
-
-
-
-
-
-
-
diff --git a/Templating.sln b/Templating.sln
index 1ef38de790..ac51ad6e8e 100644
--- a/Templating.sln
+++ b/Templating.sln
@@ -1,20 +1,16 @@
-
+
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
-VisualStudioVersion = 15.0.26730.16
+VisualStudioVersion = 15.0.27004.2002
MinimumVisualStudioVersion = 15.0.26124.0
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Templates.Test", "test\Templates.Test\Templates.Test.csproj", "{D43A4D24-D514-44C2-9438-54F6EDF58680}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.Web.ItemTemplates", "src\Microsoft.DotNet.Web.ItemTemplates\Microsoft.DotNet.Web.ItemTemplates.csproj", "{ABC9D95C-7FBD-4F8D-827A-00942EA3D0C0}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.Web.ProjectTemplates.1.x", "src\Microsoft.DotNet.Web.ProjectTemplates.1.x\Microsoft.DotNet.Web.ProjectTemplates.1.x.csproj", "{B8EB8821-9B58-465A-9693-5F9289AA7B29}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.Web.ProjectTemplates.2.0", "src\Microsoft.DotNet.Web.ProjectTemplates.2.0\Microsoft.DotNet.Web.ProjectTemplates.2.0.csproj", "{62D00388-8824-4661-8CC8-8D8436FF97E6}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TemplatePackages", "TemplatePackages", "{0AD6E692-E423-408C-B523-DAFB19412E4B}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DependencyUpdater", "tools\DependencyUpdater\DependencyUpdater.csproj", "{15806338-550D-4418-99AE-42FDAE03808A}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.SpaTemplates", "src\Microsoft.AspNetCore.SpaTemplates\Microsoft.AspNetCore.SpaTemplates.csproj", "{01E12D5E-8540-4BC8-9A54-41EDD55E762E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.Web.Spa.ProjectTemplates", "src\Microsoft.DotNet.Web.Spa.ProjectTemplates\Microsoft.DotNet.Web.Spa.ProjectTemplates.csproj", "{402E62D1-7FD0-4E07-812C-0E385D98D6D9}"
@@ -23,7 +19,14 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.Web.Client
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{973DC5B6-710B-4FC8-AF20-E94B93859DE8}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PullRequestSubmitter", "tools\PullRequestSubmitter\PullRequestSubmitter.csproj", "{AFF8B079-5BA1-4DA8-9EAF-BEC8414F889A}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PullRequestSubmitter", "tools\PullRequestSubmitter\PullRequestSubmitter.csproj", "{AFF8B079-5BA1-4DA8-9EAF-BEC8414F889A}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{68B3AFBD-1A32-41D0-9AA8-F1FFEA3BB5F9}"
+ ProjectSection(SolutionItems) = preProject
+ test\Directory.Build.targets = test\Directory.Build.targets
+ test\GenerateTestProps.targets = test\GenerateTestProps.targets
+ test\TemplateTests.props.in = test\TemplateTests.props.in
+ EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -39,18 +42,10 @@ Global
{ABC9D95C-7FBD-4F8D-827A-00942EA3D0C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{ABC9D95C-7FBD-4F8D-827A-00942EA3D0C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{ABC9D95C-7FBD-4F8D-827A-00942EA3D0C0}.Release|Any CPU.Build.0 = Release|Any CPU
- {B8EB8821-9B58-465A-9693-5F9289AA7B29}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B8EB8821-9B58-465A-9693-5F9289AA7B29}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B8EB8821-9B58-465A-9693-5F9289AA7B29}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B8EB8821-9B58-465A-9693-5F9289AA7B29}.Release|Any CPU.Build.0 = Release|Any CPU
{62D00388-8824-4661-8CC8-8D8436FF97E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{62D00388-8824-4661-8CC8-8D8436FF97E6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{62D00388-8824-4661-8CC8-8D8436FF97E6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{62D00388-8824-4661-8CC8-8D8436FF97E6}.Release|Any CPU.Build.0 = Release|Any CPU
- {15806338-550D-4418-99AE-42FDAE03808A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {15806338-550D-4418-99AE-42FDAE03808A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {15806338-550D-4418-99AE-42FDAE03808A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {15806338-550D-4418-99AE-42FDAE03808A}.Release|Any CPU.Build.0 = Release|Any CPU
{01E12D5E-8540-4BC8-9A54-41EDD55E762E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{01E12D5E-8540-4BC8-9A54-41EDD55E762E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{01E12D5E-8540-4BC8-9A54-41EDD55E762E}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -72,10 +67,9 @@ Global
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
+ {D43A4D24-D514-44C2-9438-54F6EDF58680} = {68B3AFBD-1A32-41D0-9AA8-F1FFEA3BB5F9}
{ABC9D95C-7FBD-4F8D-827A-00942EA3D0C0} = {0AD6E692-E423-408C-B523-DAFB19412E4B}
- {B8EB8821-9B58-465A-9693-5F9289AA7B29} = {0AD6E692-E423-408C-B523-DAFB19412E4B}
{62D00388-8824-4661-8CC8-8D8436FF97E6} = {0AD6E692-E423-408C-B523-DAFB19412E4B}
- {15806338-550D-4418-99AE-42FDAE03808A} = {973DC5B6-710B-4FC8-AF20-E94B93859DE8}
{01E12D5E-8540-4BC8-9A54-41EDD55E762E} = {0AD6E692-E423-408C-B523-DAFB19412E4B}
{402E62D1-7FD0-4E07-812C-0E385D98D6D9} = {0AD6E692-E423-408C-B523-DAFB19412E4B}
{1731F6D9-1DFC-49D6-8F28-471194B1962C} = {0AD6E692-E423-408C-B523-DAFB19412E4B}
diff --git a/build.ps1 b/build.ps1
index b7081bc1c2..f2be7cbb7c 100644
--- a/build.ps1
+++ b/build.ps1
@@ -103,11 +103,11 @@ function Get-KoreBuild {
}
}
catch {
- remove-item -Recurse -Force $korebuildPath -ErrorAction Ignore
+ Remove-Item -Recurse -Force $korebuildPath -ErrorAction Ignore
throw
}
finally {
- remove-item $tmpfile -ErrorAction Ignore
+ Remove-Item $tmpfile -ErrorAction Ignore
}
}
diff --git a/build.sh b/build.sh
old mode 100644
new mode 100755
diff --git a/build/FixPackageOutputDirs.targets b/build/FixPackageOutputDirs.targets
deleted file mode 100644
index bf6e3b7889..0000000000
--- a/build/FixPackageOutputDirs.targets
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
-
- RedirectPackageOutputDir;$(PackageDependsOn);RestorePackageOutputDir
-
-
-
-
- $(BuildDir)
- $(BuildDir)unversioned\
-
-
-
-
-
- $(OrigBuildDir)
-
-
-
diff --git a/build/dependencies.props b/build/dependencies.props
index b0cfa47de7..d6f86f2391 100644
--- a/build/dependencies.props
+++ b/build/dependencies.props
@@ -1,10 +1,37 @@
+ $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
+
+
+
2.0.2-beta-15522
+ 2.0.3-rtm-101
+ 2.0.1-rtm-101
+ 2.0.1-rtm-101
+ 2.0.1-rtm-101
+ 2.0.1-rtm-101
+ 2.0.1-rtm-101
+ 2.0.1-rtm-101
+ 2.0.1-rtm-101
+ 2.0.1-rtm-101
+ 2.0.1-rtm-101
+ 2.0.1-rtm-101
+ 2.0.0
15.3.409
15.3.409
+ 2.0.1-rtm-101
+ 2.0.1-rtm-101
+ 2.0.1-rtm-101
+ 2.0.1-rtm-101
+ 2.0.1-rtm-101
+ 2.0.0
+ 2.0.0
15.3.0
+ 2.0.1-rtm-101
+ 2.0.1-rtm-101
+ 2.0.1-rtm-101
0.26.0
+ 2.0.2-servicing-25728-02
0.18.0
3.4.0
15.15063.0
diff --git a/build/repo.targets b/build/repo.targets
index 22222379bb..9c92670ce3 100644
--- a/build/repo.targets
+++ b/build/repo.targets
@@ -1,6 +1,4 @@
-
-
@@ -30,5 +28,4 @@
FileToUpdate="build/DependencyVersions.props"
PropertyUpdates="@(PropertyUpdate)" />
-
diff --git a/build/sources.props b/build/sources.props
index 804940f029..8ab0fd1511 100644
--- a/build/sources.props
+++ b/build/sources.props
@@ -1,7 +1,7 @@
-
+
$(DotNetRestoreSources)
$(RestoreSources);
diff --git a/korebuild-lock.txt b/korebuild-lock.txt
index 2a51b344b6..7f216dfb7a 100644
--- a/korebuild-lock.txt
+++ b/korebuild-lock.txt
@@ -1,2 +1,2 @@
-version:2.0.2-beta-15522
-commithash:f26cb086ebd8b5a187381bb9a431794f11d69025
+version:2.0.2-rc1-15526
+commithash:436afc3dc08f5e278431db807866cc5f032f4d7b
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index fcb5752476..2197812159 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -2,31 +2,26 @@
+ false
False
False
False
False
2008;8021
- $(VersionPrefix)
- $(VersionPrefix)-$(VersionSuffix)
- $(MSBuildThisFileDirectory)..\artifacts\build\unversioned\
- version=$(PackageVersion)
+
-
- true
+
+
+ true
+ $(MSBuildThisFileDirectory)..\artifacts\build\
-
+
+
+
+
diff --git a/src/Directory.Build.targets b/src/Directory.Build.targets
index b2edc5e726..5fa67b0d3e 100644
--- a/src/Directory.Build.targets
+++ b/src/Directory.Build.targets
@@ -1,26 +1,5 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
diff --git a/src/GenerateContent.targets b/src/GenerateContent.targets
new file mode 100644
index 0000000000..96251c178b
--- /dev/null
+++ b/src/GenerateContent.targets
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Microsoft.AspNetCore.SpaTemplates/.gitignore b/src/Microsoft.AspNetCore.SpaTemplates/.gitignore
new file mode 100644
index 0000000000..3db277b523
--- /dev/null
+++ b/src/Microsoft.AspNetCore.SpaTemplates/.gitignore
@@ -0,0 +1,2 @@
+# This file is generated by the build
+content/*/.template.config/template.json
diff --git a/src/Microsoft.AspNetCore.SpaTemplates/content/Aurelia-CSharp/.template.config/template.json b/src/Microsoft.AspNetCore.SpaTemplates/Aurelia-CSharp.template.json.in
similarity index 52%
rename from src/Microsoft.AspNetCore.SpaTemplates/content/Aurelia-CSharp/.template.config/template.json
rename to src/Microsoft.AspNetCore.SpaTemplates/Aurelia-CSharp.template.json.in
index 3b176af9f9..a817ec5344 100644
--- a/src/Microsoft.AspNetCore.SpaTemplates/content/Aurelia-CSharp/.template.config/template.json
+++ b/src/Microsoft.AspNetCore.SpaTemplates/Aurelia-CSharp.template.json.in
@@ -55,6 +55,60 @@
"datatype": "bool",
"description": "If specified, skips the automatic restore of the project on create.",
"defaultValue": "false"
+ },
+ "MicrosoftAspNetCoreAllPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.All",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreAllPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreAllPackageVersion)"
+ },
+ "MicrosoftAspNetCorePackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCorePackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCorePackageVersion)"
+ },
+ "MicrosoftAspNetCoreStaticFilesPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.StaticFiles",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreStaticFilesPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreStaticFilesPackageVersion)"
+ },
+ "MicrosoftAspNetCoreSpaServicesPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.SpaServices",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreSpaServicesPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreSpaServicesPackageVersion)"
+ },
+ "MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.VisualStudio.Web.CodeGeneration.Tools",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion}"
+ },
+ "replaces": "$(MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion)"
+ },
+ "MicrosoftAspNetCoreMvcPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.Mvc",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreMvcPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreMvcPackageVersion)"
}
},
"tags": {
@@ -84,4 +138,4 @@
]
}
]
-}
\ No newline at end of file
+}
diff --git a/src/Microsoft.AspNetCore.SpaTemplates/content/Knockout-CSharp/.template.config/template.json b/src/Microsoft.AspNetCore.SpaTemplates/Knockout-CSharp.template.json.in
similarity index 52%
rename from src/Microsoft.AspNetCore.SpaTemplates/content/Knockout-CSharp/.template.config/template.json
rename to src/Microsoft.AspNetCore.SpaTemplates/Knockout-CSharp.template.json.in
index 9e821a4f55..032f1e147e 100644
--- a/src/Microsoft.AspNetCore.SpaTemplates/content/Knockout-CSharp/.template.config/template.json
+++ b/src/Microsoft.AspNetCore.SpaTemplates/Knockout-CSharp.template.json.in
@@ -55,6 +55,60 @@
"datatype": "bool",
"description": "If specified, skips the automatic restore of the project on create.",
"defaultValue": "false"
+ },
+ "MicrosoftAspNetCoreAllPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.All",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreAllPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreAllPackageVersion)"
+ },
+ "MicrosoftAspNetCorePackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCorePackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCorePackageVersion)"
+ },
+ "MicrosoftAspNetCoreStaticFilesPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.StaticFiles",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreStaticFilesPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreStaticFilesPackageVersion)"
+ },
+ "MicrosoftAspNetCoreSpaServicesPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.SpaServices",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreSpaServicesPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreSpaServicesPackageVersion)"
+ },
+ "MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.VisualStudio.Web.CodeGeneration.Tools",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion}"
+ },
+ "replaces": "$(MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion)"
+ },
+ "MicrosoftAspNetCoreMvcPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.Mvc",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreMvcPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreMvcPackageVersion)"
}
},
"tags": {
@@ -84,4 +138,4 @@
]
}
]
-}
\ No newline at end of file
+}
diff --git a/src/Microsoft.AspNetCore.SpaTemplates/Microsoft.AspNetCore.SpaTemplates.csproj b/src/Microsoft.AspNetCore.SpaTemplates/Microsoft.AspNetCore.SpaTemplates.csproj
index 456207cc1d..4f06f6bdc5 100644
--- a/src/Microsoft.AspNetCore.SpaTemplates/Microsoft.AspNetCore.SpaTemplates.csproj
+++ b/src/Microsoft.AspNetCore.SpaTemplates/Microsoft.AspNetCore.SpaTemplates.csproj
@@ -1,10 +1,35 @@
-
-
-
+
+
netcoreapp2.0
Microsoft.AspNetCore.SpaTemplates.nuspec
+
+
+
+
+
+ MicrosoftAspNetCoreAllPackageVersion=$(MicrosoftAspNetCoreAllPackageVersion);
+ MicrosoftAspNetCoreMvcPackageVersion=$(MicrosoftAspNetCoreMvcPackageVersion);
+ MicrosoftAspNetCorePackageVersion=$(MicrosoftAspNetCorePackageVersion);
+ MicrosoftAspNetCoreSpaServicesPackageVersion=$(MicrosoftAspNetCoreSpaServicesPackageVersion);
+ MicrosoftAspNetCoreStaticFilesPackageVersion=$(MicrosoftAspNetCoreStaticFilesPackageVersion);
+ MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion=$(MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion);
+
+
+
+
+
+ $(GeneratedContentProperties)
+
+
+ $(GeneratedContentProperties)
+
+
+ $(GeneratedContentProperties)
+
+
+
diff --git a/src/Microsoft.AspNetCore.SpaTemplates/Microsoft.AspNetCore.SpaTemplates.nuspec b/src/Microsoft.AspNetCore.SpaTemplates/Microsoft.AspNetCore.SpaTemplates.nuspec
index 4b4918b53b..158ac8296c 100644
--- a/src/Microsoft.AspNetCore.SpaTemplates/Microsoft.AspNetCore.SpaTemplates.nuspec
+++ b/src/Microsoft.AspNetCore.SpaTemplates/Microsoft.AspNetCore.SpaTemplates.nuspec
@@ -17,9 +17,9 @@
-
diff --git a/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/.template.config/template.json b/src/Microsoft.AspNetCore.SpaTemplates/Vue-CSharp.template.json.in
similarity index 52%
rename from src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/.template.config/template.json
rename to src/Microsoft.AspNetCore.SpaTemplates/Vue-CSharp.template.json.in
index 6cb8810d64..0b74a3035e 100644
--- a/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/.template.config/template.json
+++ b/src/Microsoft.AspNetCore.SpaTemplates/Vue-CSharp.template.json.in
@@ -55,6 +55,60 @@
"datatype": "bool",
"description": "If specified, skips the automatic restore of the project on create.",
"defaultValue": "false"
+ },
+ "MicrosoftAspNetCoreAllPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.All",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreAllPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreAllPackageVersion)"
+ },
+ "MicrosoftAspNetCorePackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCorePackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCorePackageVersion)"
+ },
+ "MicrosoftAspNetCoreStaticFilesPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.StaticFiles",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreStaticFilesPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreStaticFilesPackageVersion)"
+ },
+ "MicrosoftAspNetCoreSpaServicesPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.SpaServices",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreSpaServicesPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreSpaServicesPackageVersion)"
+ },
+ "MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.VisualStudio.Web.CodeGeneration.Tools",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion}"
+ },
+ "replaces": "$(MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion)"
+ },
+ "MicrosoftAspNetCoreMvcPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.Mvc",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreMvcPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreMvcPackageVersion)"
}
},
"tags": {
@@ -84,4 +138,4 @@
]
}
]
-}
\ No newline at end of file
+}
diff --git a/src/Microsoft.AspNetCore.SpaTemplates/content/Aurelia-CSharp/AureliaSpa.csproj b/src/Microsoft.AspNetCore.SpaTemplates/content/Aurelia-CSharp/AureliaSpa.csproj
index 22858ca3ba..555c8dac7f 100644
--- a/src/Microsoft.AspNetCore.SpaTemplates/content/Aurelia-CSharp/AureliaSpa.csproj
+++ b/src/Microsoft.AspNetCore.SpaTemplates/content/Aurelia-CSharp/AureliaSpa.csproj
@@ -1,4 +1,4 @@
-
+
netcoreapp2.0
@@ -9,17 +9,17 @@
-
+
-
-
-
-
+
+
+
+
-
+
@@ -54,4 +54,4 @@
-
\ No newline at end of file
+
diff --git a/src/Microsoft.AspNetCore.SpaTemplates/Directory.Build.props b/src/Microsoft.AspNetCore.SpaTemplates/content/Directory.Build.props
similarity index 100%
rename from src/Microsoft.AspNetCore.SpaTemplates/Directory.Build.props
rename to src/Microsoft.AspNetCore.SpaTemplates/content/Directory.Build.props
diff --git a/src/Microsoft.AspNetCore.SpaTemplates/content/Directory.Build.targets b/src/Microsoft.AspNetCore.SpaTemplates/content/Directory.Build.targets
new file mode 100644
index 0000000000..0f803ab0e0
--- /dev/null
+++ b/src/Microsoft.AspNetCore.SpaTemplates/content/Directory.Build.targets
@@ -0,0 +1,7 @@
+
+
+
+
diff --git a/src/Microsoft.AspNetCore.SpaTemplates/content/Knockout-CSharp/KnockoutSpa.csproj b/src/Microsoft.AspNetCore.SpaTemplates/content/Knockout-CSharp/KnockoutSpa.csproj
index 22858ca3ba..555c8dac7f 100644
--- a/src/Microsoft.AspNetCore.SpaTemplates/content/Knockout-CSharp/KnockoutSpa.csproj
+++ b/src/Microsoft.AspNetCore.SpaTemplates/content/Knockout-CSharp/KnockoutSpa.csproj
@@ -1,4 +1,4 @@
-
+
netcoreapp2.0
@@ -9,17 +9,17 @@
-
+
-
-
-
-
+
+
+
+
-
+
@@ -54,4 +54,4 @@
-
\ No newline at end of file
+
diff --git a/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/VueSpa.csproj b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/VueSpa.csproj
index 22858ca3ba..555c8dac7f 100644
--- a/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/VueSpa.csproj
+++ b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/VueSpa.csproj
@@ -1,4 +1,4 @@
-
+
netcoreapp2.0
@@ -9,17 +9,17 @@
-
+
-
-
-
-
+
+
+
+
-
+
@@ -54,4 +54,4 @@
-
\ No newline at end of file
+
diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates.1.x/Microsoft.DotNet.Web.ProjectTemplates.1.x.csproj b/src/Microsoft.DotNet.Web.ProjectTemplates.1.x/Microsoft.DotNet.Web.ProjectTemplates.1.x.csproj
index b454da4d82..d914719b00 100644
--- a/src/Microsoft.DotNet.Web.ProjectTemplates.1.x/Microsoft.DotNet.Web.ProjectTemplates.1.x.csproj
+++ b/src/Microsoft.DotNet.Web.ProjectTemplates.1.x/Microsoft.DotNet.Web.ProjectTemplates.1.x.csproj
@@ -1,6 +1,9 @@
+
+ false
+
netcoreapp2.0
Microsoft.DotNet.Web.ProjectTemplates.1.x.nuspec
diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/.gitignore b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/.gitignore
new file mode 100644
index 0000000000..3db277b523
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/.gitignore
@@ -0,0 +1,2 @@
+# This file is generated by the build
+content/*/.template.config/template.json
diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/EmptyWeb-CSharp/.template.config/template.json b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/EmptyWeb-CSharp.template.json.in
similarity index 77%
rename from src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/EmptyWeb-CSharp/.template.config/template.json
rename to src/Microsoft.DotNet.Web.ProjectTemplates.2.0/EmptyWeb-CSharp.template.json.in
index 19fe7c0241..6b47a99cee 100644
--- a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/EmptyWeb-CSharp/.template.config/template.json
+++ b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/EmptyWeb-CSharp.template.json.in
@@ -1,7 +1,10 @@
{
"$schema": "http://json.schemastore.org/template",
"author": "Microsoft",
- "classifications": ["Web", "Empty"],
+ "classifications": [
+ "Web",
+ "Empty"
+ ],
"name": "ASP.NET Core Empty",
"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.",
@@ -16,16 +19,18 @@
},
"sourceName": "Company.WebApplication1",
"preferNameDirectory": true,
- "guids": [ "53bc9b9d-9d6a-45d4-8429-2a2761773502" ],
+ "guids": [
+ "53bc9b9d-9d6a-45d4-8429-2a2761773502"
+ ],
"sources": [
{
- "modifiers": [
+ "modifiers": [
{
"condition": "(!IncludeLaunchSettings)",
"exclude": [
"Properties/launchSettings.json"
]
- },
+ }
]
}
],
@@ -105,16 +110,40 @@
"datatype": "bool",
"description": "If specified, skips the automatic restore of the project on create.",
"defaultValue": "false"
+ },
+ "MicrosoftAspNetCorePackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCorePackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCorePackageVersion)"
+ },
+ "MicrosoftAspNetCoreAllPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.All",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreAllPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreAllPackageVersion)"
}
},
- "primaryOutputs": [ { "path": "Company.WebApplication1.csproj" } ],
+ "primaryOutputs": [
+ {
+ "path": "Company.WebApplication1.csproj"
+ }
+ ],
"defaultName": "WebApplication1",
"postActions": [
{
"condition": "(!skipRestore)",
"description": "Restore NuGet packages required by this project.",
"manualInstructions": [
- { "text": "Run 'dotnet restore'" }
+ {
+ "text": "Run 'dotnet restore'"
+ }
],
"actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025",
"continueOnError": true
diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/EmptyWeb-FSharp/.template.config/template.json b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/EmptyWeb-FSharp.template.json.in
similarity index 77%
rename from src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/EmptyWeb-FSharp/.template.config/template.json
rename to src/Microsoft.DotNet.Web.ProjectTemplates.2.0/EmptyWeb-FSharp.template.json.in
index 426f76bff2..33cfcbf8de 100644
--- a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/EmptyWeb-FSharp/.template.config/template.json
+++ b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/EmptyWeb-FSharp.template.json.in
@@ -1,6 +1,9 @@
{
"author": "Microsoft",
- "classifications": ["Web", "Empty"],
+ "classifications": [
+ "Web",
+ "Empty"
+ ],
"name": "ASP.NET Core Empty",
"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.",
@@ -49,16 +52,31 @@
"datatype": "bool",
"description": "If specified, skips the automatic restore of the project on create.",
"defaultValue": "false"
+ },
+ "MicrosoftAspNetCoreAllPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.All",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreAllPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreAllPackageVersion)"
}
},
- "primaryOutputs": [ { "path": "Company.WebApplication1.fsproj" } ],
+ "primaryOutputs": [
+ {
+ "path": "Company.WebApplication1.fsproj"
+ }
+ ],
"defaultName": "WebApplication1",
"postActions": [
{
"condition": "(!skipRestore)",
"description": "Restore NuGet packages required by this project.",
"manualInstructions": [
- { "text": "Run 'dotnet restore'" }
+ {
+ "text": "Run 'dotnet restore'"
+ }
],
"actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025",
"continueOnError": true
diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/Microsoft.DotNet.Web.ProjectTemplates.2.0.csproj b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/Microsoft.DotNet.Web.ProjectTemplates.2.0.csproj
index 930797a861..04fbf2ea3c 100644
--- a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/Microsoft.DotNet.Web.ProjectTemplates.2.0.csproj
+++ b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/Microsoft.DotNet.Web.ProjectTemplates.2.0.csproj
@@ -1,8 +1,62 @@
-
+
+
+
netcoreapp2.0
Microsoft.DotNet.Web.ProjectTemplates.2.0.nuspec
+
+
+
+
+
+ MicrosoftAspNetCoreAllPackageVersion=$(MicrosoftAspNetCoreAllPackageVersion);
+ MicrosoftAspNetCoreAuthenticationCookiesPackageVersion=$(MicrosoftAspNetCoreAuthenticationCookiesPackageVersion);
+ MicrosoftAspNetCoreAuthenticationJwtBearerPackageVersion=$(MicrosoftAspNetCoreAuthenticationJwtBearerPackageVersion);
+ MicrosoftAspNetCoreAuthenticationOpenIdConnectPackageVersion=$(MicrosoftAspNetCoreAuthenticationOpenIdConnectPackageVersion);
+ MicrosoftAspNetCoreDiagnosticsEntityFrameworkCorePackageVersion=$(MicrosoftAspNetCoreDiagnosticsEntityFrameworkCorePackageVersion);
+ MicrosoftAspNetCoreIdentityEntityFrameworkCorePackageVersion=$(MicrosoftAspNetCoreIdentityEntityFrameworkCorePackageVersion);
+ MicrosoftAspNetCoreMvcPackageVersion=$(MicrosoftAspNetCoreMvcPackageVersion);
+ MicrosoftAspNetCoreMvcRazorViewCompilationPackageVersion=$(MicrosoftAspNetCoreMvcRazorViewCompilationPackageVersion);
+ MicrosoftAspNetCorePackageVersion=$(MicrosoftAspNetCorePackageVersion);
+ MicrosoftAspNetCoreStaticFilesPackageVersion=$(MicrosoftAspNetCoreStaticFilesPackageVersion);
+ MicrosoftEntityFrameworkCoreDesignPackageVersion=$(MicrosoftEntityFrameworkCoreDesignPackageVersion);
+ MicrosoftEntityFrameworkCoreSqlitePackageVersion=$(MicrosoftEntityFrameworkCoreSqlitePackageVersion);
+ MicrosoftEntityFrameworkCoreSqlServerPackageVersion=$(MicrosoftEntityFrameworkCoreSqlServerPackageVersion);
+ MicrosoftEntityFrameworkCoreToolsDotNetPackageVersion=$(MicrosoftEntityFrameworkCoreToolsDotNetPackageVersion);
+ MicrosoftEntityFrameworkCoreToolsPackageVersion=$(MicrosoftEntityFrameworkCoreToolsPackageVersion);
+ MicrosoftExtensionsSecretManagerToolsPackageVersion=$(MicrosoftExtensionsSecretManagerToolsPackageVersion);
+ MicrosoftVisualStudioWebBrowserLinkPackageVersion=$(MicrosoftVisualStudioWebBrowserLinkPackageVersion);
+ MicrosoftVisualStudioWebCodeGenerationDesignPackageVersion=$(MicrosoftVisualStudioWebCodeGenerationDesignPackageVersion);
+ MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion=$(MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion);
+
+
+
+
+
+ $(GeneratedContentProperties)
+
+
+ $(GeneratedContentProperties)
+
+
+ $(GeneratedContentProperties)
+
+
+ $(GeneratedContentProperties)
+
+
+ $(GeneratedContentProperties)
+
+
+ $(GeneratedContentProperties)
+
+
+ $(GeneratedContentProperties)
+
+
+
+
diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/Microsoft.DotNet.Web.ProjectTemplates.2.0.nuspec b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/Microsoft.DotNet.Web.ProjectTemplates.2.0.nuspec
index 48b0ee9b00..585220b642 100644
--- a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/Microsoft.DotNet.Web.ProjectTemplates.2.0.nuspec
+++ b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/Microsoft.DotNet.Web.ProjectTemplates.2.0.nuspec
@@ -17,6 +17,9 @@
-
+
diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/RazorPagesWeb-CSharp/.template.config/template.json b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/RazorPagesWeb-CSharp.template.json.in
similarity index 61%
rename from src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/RazorPagesWeb-CSharp/.template.config/template.json
rename to src/Microsoft.DotNet.Web.ProjectTemplates.2.0/RazorPagesWeb-CSharp.template.json.in
index d3b3ac6871..dddc3bcd4f 100644
--- a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/RazorPagesWeb-CSharp/.template.config/template.json
+++ b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/RazorPagesWeb-CSharp.template.json.in
@@ -1,7 +1,11 @@
{
"$schema": "http://json.schemastore.org/template",
"author": "Microsoft",
- "classifications": [ "Web", "MVC", "Razor Pages" ],
+ "classifications": [
+ "Web",
+ "MVC",
+ "Razor Pages"
+ ],
"name": "ASP.NET Core Web App",
"generatorVersions": "[1.0.0.0-*)",
"description": "A project template for creating an ASP.NET Core application with example ASP.NET Razor Pages content",
@@ -33,7 +37,9 @@
},
{
"condition": "(!IndividualLocalAuth || UseLocalDB)",
- "exclude": [ "app.db" ]
+ "exclude": [
+ "app.db"
+ ]
},
{
"condition": "(!IndividualLocalAuth)",
@@ -345,16 +351,184 @@
"type": "parameter",
"datatype": "bool",
"defaultValue": "false"
+ },
+ "MicrosoftAspNetCoreStaticFilesPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.StaticFiles",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreStaticFilesPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreStaticFilesPackageVersion)"
+ },
+ "MicrosoftAspNetCoreAuthenticationCookiesPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.Authentication.Cookies",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreAuthenticationCookiesPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreAuthenticationCookiesPackageVersion)"
+ },
+ "MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.VisualStudio.Web.CodeGeneration.Tools",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion}"
+ },
+ "replaces": "$(MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion)"
+ },
+ "MicrosoftEntityFrameworkCoreSqlitePackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.EntityFrameworkCore.Sqlite",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftEntityFrameworkCoreSqlitePackageVersion}"
+ },
+ "replaces": "$(MicrosoftEntityFrameworkCoreSqlitePackageVersion)"
+ },
+ "MicrosoftAspNetCoreDiagnosticsEntityFrameworkCorePackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreDiagnosticsEntityFrameworkCorePackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreDiagnosticsEntityFrameworkCorePackageVersion)"
+ },
+ "MicrosoftAspNetCoreIdentityEntityFrameworkCorePackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.Identity.EntityFrameworkCore",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreIdentityEntityFrameworkCorePackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreIdentityEntityFrameworkCorePackageVersion)"
+ },
+ "MicrosoftEntityFrameworkCoreSqlServerPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.EntityFrameworkCore.SqlServer",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftEntityFrameworkCoreSqlServerPackageVersion}"
+ },
+ "replaces": "$(MicrosoftEntityFrameworkCoreSqlServerPackageVersion)"
+ },
+ "MicrosoftAspNetCoreAuthenticationOpenIdConnectPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.Authentication.OpenIdConnect",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreAuthenticationOpenIdConnectPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreAuthenticationOpenIdConnectPackageVersion)"
+ },
+ "MicrosoftAspNetCoreAllPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.All",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreAllPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreAllPackageVersion)"
+ },
+ "MicrosoftVisualStudioWebBrowserLinkPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.VisualStudio.Web.BrowserLink",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftVisualStudioWebBrowserLinkPackageVersion}"
+ },
+ "replaces": "$(MicrosoftVisualStudioWebBrowserLinkPackageVersion)"
+ },
+ "MicrosoftVisualStudioWebCodeGenerationDesignPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.VisualStudio.Web.CodeGeneration.Design",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftVisualStudioWebCodeGenerationDesignPackageVersion}"
+ },
+ "replaces": "$(MicrosoftVisualStudioWebCodeGenerationDesignPackageVersion)"
+ },
+ "MicrosoftEntityFrameworkCoreDesignPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.EntityFrameworkCore.Design",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftEntityFrameworkCoreDesignPackageVersion}"
+ },
+ "replaces": "$(MicrosoftEntityFrameworkCoreDesignPackageVersion)"
+ },
+ "MicrosoftAspNetCoreMvcRazorViewCompilationPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.Mvc.Razor.ViewCompilation",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreMvcRazorViewCompilationPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreMvcRazorViewCompilationPackageVersion)"
+ },
+ "MicrosoftEntityFrameworkCoreToolsPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.EntityFrameworkCore.Tools",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftEntityFrameworkCoreToolsPackageVersion}"
+ },
+ "replaces": "$(MicrosoftEntityFrameworkCoreToolsPackageVersion)"
+ },
+ "MicrosoftAspNetCoreMvcPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.Mvc",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreMvcPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreMvcPackageVersion)"
+ },
+ "MicrosoftEntityFrameworkCoreToolsDotNetPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.EntityFrameworkCore.Tools.DotNet",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftEntityFrameworkCoreToolsDotNetPackageVersion}"
+ },
+ "replaces": "$(MicrosoftEntityFrameworkCoreToolsDotNetPackageVersion)"
+ },
+ "MicrosoftExtensionsSecretManagerToolsPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.Extensions.SecretManager.Tools",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftExtensionsSecretManagerToolsPackageVersion}"
+ },
+ "replaces": "$(MicrosoftExtensionsSecretManagerToolsPackageVersion)"
+ },
+ "MicrosoftAspNetCorePackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCorePackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCorePackageVersion)"
}
},
- "primaryOutputs": [ { "path": "Company.WebApplication1.csproj" } ],
+ "primaryOutputs": [
+ {
+ "path": "Company.WebApplication1.csproj"
+ }
+ ],
"defaultName": "WebApplication1",
"postActions": [
{
"condition": "(!skipRestore)",
"description": "Restore NuGet packages required by this project.",
"manualInstructions": [
- { "text": "Run 'dotnet restore'" }
+ {
+ "text": "Run 'dotnet restore'"
+ }
],
"actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025",
"continueOnError": true
diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/StarterWeb-CSharp/.template.config/template.json b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/StarterWeb-CSharp.template.json.in
similarity index 60%
rename from src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/StarterWeb-CSharp/.template.config/template.json
rename to src/Microsoft.DotNet.Web.ProjectTemplates.2.0/StarterWeb-CSharp.template.json.in
index 2dd2838bc6..68af40dee2 100644
--- a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/StarterWeb-CSharp/.template.config/template.json
+++ b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/StarterWeb-CSharp.template.json.in
@@ -1,7 +1,10 @@
{
"$schema": "http://json.schemastore.org/template",
"author": "Microsoft",
- "classifications": ["Web", "MVC"],
+ "classifications": [
+ "Web",
+ "MVC"
+ ],
"name": "ASP.NET Core Web App (Model-View-Controller)",
"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.",
@@ -33,7 +36,9 @@
},
{
"condition": "(!IndividualAuth || UseLocalDB)",
- "exclude": [ "app.db" ]
+ "exclude": [
+ "app.db"
+ ]
},
{
"condition": "(!IndividualLocalAuth)",
@@ -339,16 +344,184 @@
"datatype": "bool",
"description": "If specified, skips the automatic restore of the project on create.",
"defaultValue": "false"
+ },
+ "MicrosoftAspNetCoreStaticFilesPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.StaticFiles",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreStaticFilesPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreStaticFilesPackageVersion)"
+ },
+ "MicrosoftAspNetCoreAuthenticationCookiesPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.Authentication.Cookies",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreAuthenticationCookiesPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreAuthenticationCookiesPackageVersion)"
+ },
+ "MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.VisualStudio.Web.CodeGeneration.Tools",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion}"
+ },
+ "replaces": "$(MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion)"
+ },
+ "MicrosoftEntityFrameworkCoreSqlitePackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.EntityFrameworkCore.Sqlite",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftEntityFrameworkCoreSqlitePackageVersion}"
+ },
+ "replaces": "$(MicrosoftEntityFrameworkCoreSqlitePackageVersion)"
+ },
+ "MicrosoftAspNetCoreDiagnosticsEntityFrameworkCorePackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreDiagnosticsEntityFrameworkCorePackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreDiagnosticsEntityFrameworkCorePackageVersion)"
+ },
+ "MicrosoftAspNetCoreIdentityEntityFrameworkCorePackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.Identity.EntityFrameworkCore",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreIdentityEntityFrameworkCorePackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreIdentityEntityFrameworkCorePackageVersion)"
+ },
+ "MicrosoftEntityFrameworkCoreSqlServerPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.EntityFrameworkCore.SqlServer",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftEntityFrameworkCoreSqlServerPackageVersion}"
+ },
+ "replaces": "$(MicrosoftEntityFrameworkCoreSqlServerPackageVersion)"
+ },
+ "MicrosoftAspNetCoreAuthenticationOpenIdConnectPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.Authentication.OpenIdConnect",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreAuthenticationOpenIdConnectPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreAuthenticationOpenIdConnectPackageVersion)"
+ },
+ "MicrosoftAspNetCoreAllPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.All",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreAllPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreAllPackageVersion)"
+ },
+ "MicrosoftVisualStudioWebBrowserLinkPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.VisualStudio.Web.BrowserLink",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftVisualStudioWebBrowserLinkPackageVersion}"
+ },
+ "replaces": "$(MicrosoftVisualStudioWebBrowserLinkPackageVersion)"
+ },
+ "MicrosoftVisualStudioWebCodeGenerationDesignPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.VisualStudio.Web.CodeGeneration.Design",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftVisualStudioWebCodeGenerationDesignPackageVersion}"
+ },
+ "replaces": "$(MicrosoftVisualStudioWebCodeGenerationDesignPackageVersion)"
+ },
+ "MicrosoftEntityFrameworkCoreDesignPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.EntityFrameworkCore.Design",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftEntityFrameworkCoreDesignPackageVersion}"
+ },
+ "replaces": "$(MicrosoftEntityFrameworkCoreDesignPackageVersion)"
+ },
+ "MicrosoftAspNetCoreMvcRazorViewCompilationPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.Mvc.Razor.ViewCompilation",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreMvcRazorViewCompilationPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreMvcRazorViewCompilationPackageVersion)"
+ },
+ "MicrosoftEntityFrameworkCoreToolsPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.EntityFrameworkCore.Tools",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftEntityFrameworkCoreToolsPackageVersion}"
+ },
+ "replaces": "$(MicrosoftEntityFrameworkCoreToolsPackageVersion)"
+ },
+ "MicrosoftAspNetCoreMvcPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.Mvc",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreMvcPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreMvcPackageVersion)"
+ },
+ "MicrosoftEntityFrameworkCoreToolsDotNetPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.EntityFrameworkCore.Tools.DotNet",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftEntityFrameworkCoreToolsDotNetPackageVersion}"
+ },
+ "replaces": "$(MicrosoftEntityFrameworkCoreToolsDotNetPackageVersion)"
+ },
+ "MicrosoftExtensionsSecretManagerToolsPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.Extensions.SecretManager.Tools",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftExtensionsSecretManagerToolsPackageVersion}"
+ },
+ "replaces": "$(MicrosoftExtensionsSecretManagerToolsPackageVersion)"
+ },
+ "MicrosoftAspNetCorePackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCorePackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCorePackageVersion)"
}
},
- "primaryOutputs": [ { "path": "Company.WebApplication1.csproj" } ],
+ "primaryOutputs": [
+ {
+ "path": "Company.WebApplication1.csproj"
+ }
+ ],
"defaultName": "WebApplication1",
"postActions": [
{
"condition": "(!skipRestore)",
"description": "Restore NuGet packages required by this project.",
"manualInstructions": [
- { "text": "Run 'dotnet restore'" }
+ {
+ "text": "Run 'dotnet restore'"
+ }
],
"actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025",
"continueOnError": true
diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/StarterWeb-FSharp.template.json.in b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/StarterWeb-FSharp.template.json.in
new file mode 100644
index 0000000000..13f61804b7
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/StarterWeb-FSharp.template.json.in
@@ -0,0 +1,122 @@
+{
+ "$schema": "http://json.schemastore.org/template",
+ "author": "Microsoft",
+ "classifications": [
+ "Web",
+ "MVC"
+ ],
+ "name": "ASP.NET Core Web App (Model-View-Controller)",
+ "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": "2000",
+ "identity": "Microsoft.Web.Mvc.FSharp.2.0",
+ "shortName": "mvc",
+ "thirdPartyNotices": "https://aka.ms/template-3pn",
+ "tags": {
+ "language": "F#",
+ "type": "project"
+ },
+ "sourceName": "Company.WebApplication1",
+ "preferNameDirectory": true,
+ "symbols": {
+ "TargetFrameworkOverride": {
+ "type": "parameter",
+ "description": "Overrides the target framework",
+ "replaces": "TargetFrameworkOverride",
+ "datatype": "string",
+ "defaultValue": ""
+ },
+ "Framework": {
+ "type": "parameter",
+ "description": "The target framework for the project.",
+ "datatype": "choice",
+ "choices": [
+ {
+ "choice": "netcoreapp2.0",
+ "description": "Target netcoreapp2.0"
+ }
+ ],
+ "replaces": "netcoreapp2.0",
+ "defaultValue": "netcoreapp2.0"
+ },
+ "copyrightYear": {
+ "type": "generated",
+ "generator": "now",
+ "replaces": "1975",
+ "parameters": {
+ "format": "yyyy"
+ }
+ },
+ "skipRestore": {
+ "type": "parameter",
+ "datatype": "bool",
+ "description": "If specified, skips the automatic restore of the project on create.",
+ "defaultValue": "false"
+ },
+ "MicrosoftAspNetCoreAllPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.All",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreAllPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreAllPackageVersion)"
+ },
+ "MicrosoftAspNetCorePackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCorePackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCorePackageVersion)"
+ },
+ "MicrosoftAspNetCoreStaticFilesPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.StaticFiles",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreStaticFilesPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreStaticFilesPackageVersion)"
+ },
+ "MicrosoftAspNetCoreMvcRazorViewCompilationPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.Mvc.Razor.ViewCompilation",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreMvcRazorViewCompilationPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreMvcRazorViewCompilationPackageVersion)"
+ },
+ "MicrosoftAspNetCoreMvcPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.Mvc",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreMvcPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreMvcPackageVersion)"
+ }
+ },
+ "primaryOutputs": [
+ {
+ "path": "Company.WebApplication1.fsproj"
+ }
+ ],
+ "defaultName": "WebApplication1",
+ "postActions": [
+ {
+ "condition": "(!skipRestore)",
+ "description": "Restore NuGet packages required by this project.",
+ "manualInstructions": [
+ {
+ "text": "Run 'dotnet restore'"
+ }
+ ],
+ "actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025",
+ "continueOnError": true
+ }
+ ]
+}
diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/WebApi-CSharp/.template.config/template.json b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/WebApi-CSharp.template.json.in
similarity index 77%
rename from src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/WebApi-CSharp/.template.config/template.json
rename to src/Microsoft.DotNet.Web.ProjectTemplates.2.0/WebApi-CSharp.template.json.in
index 2e9b8c9198..d0ee87b3b0 100644
--- a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/WebApi-CSharp/.template.config/template.json
+++ b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/WebApi-CSharp.template.json.in
@@ -1,7 +1,10 @@
{
"$schema": "http://json.schemastore.org/template",
"author": "Microsoft",
- "classifications": ["Web", "WebAPI"],
+ "classifications": [
+ "Web",
+ "WebAPI"
+ ],
"name": "ASP.NET Core Web API",
"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.",
@@ -260,16 +263,76 @@
"datatype": "bool",
"description": "If specified, skips the automatic restore of the project on create.",
"defaultValue": "false"
+ },
+ "MicrosoftAspNetCoreAllPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.All",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreAllPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreAllPackageVersion)"
+ },
+ "MicrosoftAspNetCorePackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCorePackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCorePackageVersion)"
+ },
+ "MicrosoftExtensionsSecretManagerToolsPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.Extensions.SecretManager.Tools",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftExtensionsSecretManagerToolsPackageVersion}"
+ },
+ "replaces": "$(MicrosoftExtensionsSecretManagerToolsPackageVersion)"
+ },
+ "MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.VisualStudio.Web.CodeGeneration.Tools",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion}"
+ },
+ "replaces": "$(MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion)"
+ },
+ "MicrosoftAspNetCoreAuthenticationJwtBearerPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.Authentication.JwtBearer",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreAuthenticationJwtBearerPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreAuthenticationJwtBearerPackageVersion)"
+ },
+ "MicrosoftAspNetCoreMvcPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.Mvc",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreMvcPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreMvcPackageVersion)"
}
},
- "primaryOutputs": [ { "path": "Company.WebApplication1.csproj" } ],
+ "primaryOutputs": [
+ {
+ "path": "Company.WebApplication1.csproj"
+ }
+ ],
"defaultName": "WebApplication1",
"postActions": [
{
"condition": "(!skipRestore)",
"description": "Restore NuGet packages required by this project.",
"manualInstructions": [
- { "text": "Run 'dotnet restore'" }
+ {
+ "text": "Run 'dotnet restore'"
+ }
],
"actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025",
"continueOnError": true
diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/WebApi-FSharp/.template.config/template.json b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/WebApi-FSharp.template.json.in
similarity index 61%
rename from src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/WebApi-FSharp/.template.config/template.json
rename to src/Microsoft.DotNet.Web.ProjectTemplates.2.0/WebApi-FSharp.template.json.in
index 72d644ce6b..0bb2842f5d 100644
--- a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/WebApi-FSharp/.template.config/template.json
+++ b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/WebApi-FSharp.template.json.in
@@ -1,6 +1,9 @@
{
"author": "Microsoft",
- "classifications": ["Web", "WebAPI"],
+ "classifications": [
+ "Web",
+ "WebAPI"
+ ],
"name": "ASP.NET Core Web API",
"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.",
@@ -49,16 +52,49 @@
"datatype": "bool",
"description": "If specified, skips the automatic restore of the project on create.",
"defaultValue": "false"
+ },
+ "MicrosoftAspNetCoreAllPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.All",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreAllPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreAllPackageVersion)"
+ },
+ "MicrosoftAspNetCorePackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCorePackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCorePackageVersion)"
+ },
+ "MicrosoftAspNetCoreMvcPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.Mvc",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreMvcPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreMvcPackageVersion)"
}
},
- "primaryOutputs": [ { "path": "Company.WebApplication1.fsproj" } ],
+ "primaryOutputs": [
+ {
+ "path": "Company.WebApplication1.fsproj"
+ }
+ ],
"defaultName": "WebApplication1",
"postActions": [
{
"condition": "(!skipRestore)",
"description": "Restore NuGet packages required by this project.",
"manualInstructions": [
- { "text": "Run 'dotnet restore'" }
+ {
+ "text": "Run 'dotnet restore'"
+ }
],
"actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025",
"continueOnError": true
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/Directory.Build.props b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/Directory.Build.props
similarity index 100%
rename from src/Microsoft.DotNet.Web.Spa.ProjectTemplates/Directory.Build.props
rename to src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/Directory.Build.props
diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/Directory.Build.targets b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/Directory.Build.targets
new file mode 100644
index 0000000000..0f803ab0e0
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/Directory.Build.targets
@@ -0,0 +1,7 @@
+
+
+
+
diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/EmptyWeb-CSharp/Company.WebApplication1.csproj b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/EmptyWeb-CSharp/Company.WebApplication1.csproj
index 3e81d54ce6..94f4de20f3 100644
--- a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/EmptyWeb-CSharp/Company.WebApplication1.csproj
+++ b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/EmptyWeb-CSharp/Company.WebApplication1.csproj
@@ -1,4 +1,4 @@
-
+
netcoreapp2.0
@@ -10,10 +10,10 @@
-
+
-
+
diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/EmptyWeb-FSharp/Company.WebApplication1.fsproj b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/EmptyWeb-FSharp/Company.WebApplication1.fsproj
index 601065ef09..79cd0925c7 100644
--- a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/EmptyWeb-FSharp/Company.WebApplication1.fsproj
+++ b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/EmptyWeb-FSharp/Company.WebApplication1.fsproj
@@ -1,4 +1,4 @@
-
+
netcoreapp2.0
@@ -11,7 +11,7 @@
-
+
diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/RazorPagesWeb-CSharp/Company.WebApplication1.csproj b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/RazorPagesWeb-CSharp/Company.WebApplication1.csproj
index a5c5dc0f86..f3789061b9 100644
--- a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/RazorPagesWeb-CSharp/Company.WebApplication1.csproj
+++ b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/RazorPagesWeb-CSharp/Company.WebApplication1.csproj
@@ -1,4 +1,4 @@
-
+
netcoreapp2.0
TargetFrameworkOverride
@@ -10,29 +10,29 @@
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/StarterWeb-CSharp/Company.WebApplication1.csproj b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/StarterWeb-CSharp/Company.WebApplication1.csproj
index ec64c78381..4e92c4268f 100644
--- a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/StarterWeb-CSharp/Company.WebApplication1.csproj
+++ b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/StarterWeb-CSharp/Company.WebApplication1.csproj
@@ -1,4 +1,4 @@
-
+
netcoreapp2.0
@@ -15,31 +15,31 @@
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/StarterWeb-FSharp/.template.config/template.json b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/StarterWeb-FSharp/.template.config/template.json
deleted file mode 100644
index 55113d0eaa..0000000000
--- a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/StarterWeb-FSharp/.template.config/template.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "$schema": "http://json.schemastore.org/template",
- "author": "Microsoft",
- "classifications": ["Web", "MVC"],
- "name": "ASP.NET Core Web App (Model-View-Controller)",
- "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": "2000",
- "identity": "Microsoft.Web.Mvc.FSharp.2.0",
- "shortName": "mvc",
- "thirdPartyNotices": "https://aka.ms/template-3pn",
- "tags": {
- "language": "F#",
- "type": "project"
- },
- "sourceName": "Company.WebApplication1",
- "preferNameDirectory": true,
- "symbols":{
- "TargetFrameworkOverride": {
- "type": "parameter",
- "description": "Overrides the target framework",
- "replaces": "TargetFrameworkOverride",
- "datatype": "string",
- "defaultValue": ""
- },
- "Framework": {
- "type": "parameter",
- "description": "The target framework for the project.",
- "datatype": "choice",
- "choices": [
- {
- "choice": "netcoreapp2.0",
- "description": "Target netcoreapp2.0"
- }
- ],
- "replaces": "netcoreapp2.0",
- "defaultValue": "netcoreapp2.0"
- },
- "copyrightYear": {
- "type": "generated",
- "generator": "now",
- "replaces": "1975",
- "parameters": {
- "format": "yyyy"
- }
- },
- "skipRestore": {
- "type": "parameter",
- "datatype": "bool",
- "description": "If specified, skips the automatic restore of the project on create.",
- "defaultValue": "false"
- }
- },
- "primaryOutputs": [ { "path": "Company.WebApplication1.fsproj" } ],
- "defaultName": "WebApplication1",
- "postActions": [
- {
- "condition": "(!skipRestore)",
- "description": "Restore NuGet packages required by this project.",
- "manualInstructions": [
- { "text": "Run 'dotnet restore'" }
- ],
- "actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025",
- "continueOnError": true
- }
- ]
-}
diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/StarterWeb-FSharp/Company.WebApplication1.fsproj b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/StarterWeb-FSharp/Company.WebApplication1.fsproj
index fc425c316d..f8079c6135 100644
--- a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/StarterWeb-FSharp/Company.WebApplication1.fsproj
+++ b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/StarterWeb-FSharp/Company.WebApplication1.fsproj
@@ -1,4 +1,4 @@
-
+
netcoreapp2.0
@@ -14,13 +14,13 @@
-
+
-
-
-
-
+
+
+
+
diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/WebApi-CSharp/Company.WebApplication1.csproj b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/WebApi-CSharp/Company.WebApplication1.csproj
index d7e1265227..bd4bd00f95 100644
--- a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/WebApi-CSharp/Company.WebApplication1.csproj
+++ b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/WebApi-CSharp/Company.WebApplication1.csproj
@@ -1,4 +1,4 @@
-
+
netcoreapp2.0
@@ -13,17 +13,17 @@
-
+
-
-
-
+
+
+
-
-
+
+
diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/WebApi-FSharp/Company.WebApplication1.fsproj b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/WebApi-FSharp/Company.WebApplication1.fsproj
index 9bc32370d7..d7778a0e68 100644
--- a/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/WebApi-FSharp/Company.WebApplication1.fsproj
+++ b/src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/WebApi-FSharp/Company.WebApplication1.fsproj
@@ -1,4 +1,4 @@
-
+
netcoreapp2.0
@@ -12,11 +12,11 @@
-
+
-
-
+
+
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/.gitignore b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/.gitignore
new file mode 100644
index 0000000000..3db277b523
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/.gitignore
@@ -0,0 +1,2 @@
+# This file is generated by the build
+content/*/.template.config/template.json
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/template.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/Angular-CSharp.template.json.in
similarity index 52%
rename from src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/template.json
rename to src/Microsoft.DotNet.Web.Spa.ProjectTemplates/Angular-CSharp.template.json.in
index e6e58992d0..2396b980d7 100644
--- a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/template.json
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/Angular-CSharp.template.json.in
@@ -55,6 +55,60 @@
"datatype": "bool",
"description": "If specified, skips the automatic restore of the project on create.",
"defaultValue": "false"
+ },
+ "MicrosoftAspNetCoreAllPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.All",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreAllPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreAllPackageVersion)"
+ },
+ "MicrosoftAspNetCorePackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCorePackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCorePackageVersion)"
+ },
+ "MicrosoftAspNetCoreStaticFilesPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.StaticFiles",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreStaticFilesPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreStaticFilesPackageVersion)"
+ },
+ "MicrosoftAspNetCoreSpaServicesPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.SpaServices",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreSpaServicesPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreSpaServicesPackageVersion)"
+ },
+ "MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.VisualStudio.Web.CodeGeneration.Tools",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion}"
+ },
+ "replaces": "$(MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion)"
+ },
+ "MicrosoftAspNetCoreMvcPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.Mvc",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreMvcPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreMvcPackageVersion)"
}
},
"tags": {
@@ -84,4 +138,4 @@
]
}
]
-}
\ No newline at end of file
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/Directory.Build.targets b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/Directory.Build.targets
deleted file mode 100644
index fa98bfe809..0000000000
--- a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/Directory.Build.targets
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.csproj b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.csproj
index e4962abb4f..646231f310 100644
--- a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.csproj
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.csproj
@@ -1,10 +1,36 @@
-
-
-
+
+
+
netcoreapp2.0
Microsoft.DotNet.Web.Spa.ProjectTemplates.nuspec
+
+
+
+
+
+ MicrosoftAspNetCoreAllPackageVersion=$(MicrosoftAspNetCoreAllPackageVersion);
+ MicrosoftAspNetCorePackageVersion=$(MicrosoftAspNetCorePackageVersion);
+ MicrosoftAspNetCoreMvcPackageVersion=$(MicrosoftAspNetCoreMvcPackageVersion);
+ MicrosoftAspNetCoreSpaServicesPackageVersion=$(MicrosoftAspNetCoreSpaServicesPackageVersion);
+ MicrosoftAspNetCoreStaticFilesPackageVersion=$(MicrosoftAspNetCoreStaticFilesPackageVersion);
+ MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion=$(MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion);
+
+
+
+
+
+ $(GeneratedContentProperties)
+
+
+ $(GeneratedContentProperties)
+
+
+ $(GeneratedContentProperties)
+
+
+
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.nuspec b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.nuspec
index 97fd7dd357..7edc9c7bb3 100644
--- a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.nuspec
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.nuspec
@@ -17,9 +17,9 @@
-
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/template.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/React-CSharp.template.json.in
similarity index 52%
rename from src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/template.json
rename to src/Microsoft.DotNet.Web.Spa.ProjectTemplates/React-CSharp.template.json.in
index 35efb5e670..b08158ae4a 100644
--- a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/template.json
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/React-CSharp.template.json.in
@@ -55,6 +55,60 @@
"datatype": "bool",
"description": "If specified, skips the automatic restore of the project on create.",
"defaultValue": "false"
+ },
+ "MicrosoftAspNetCoreAllPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.All",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreAllPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreAllPackageVersion)"
+ },
+ "MicrosoftAspNetCorePackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCorePackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCorePackageVersion)"
+ },
+ "MicrosoftAspNetCoreStaticFilesPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.StaticFiles",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreStaticFilesPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreStaticFilesPackageVersion)"
+ },
+ "MicrosoftAspNetCoreSpaServicesPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.SpaServices",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreSpaServicesPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreSpaServicesPackageVersion)"
+ },
+ "MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.VisualStudio.Web.CodeGeneration.Tools",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion}"
+ },
+ "replaces": "$(MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion)"
+ },
+ "MicrosoftAspNetCoreMvcPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.Mvc",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreMvcPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreMvcPackageVersion)"
}
},
"tags": {
@@ -84,4 +138,4 @@
]
}
]
-}
\ No newline at end of file
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.template.config/template.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/ReactRedux-CSharp.template.json.in
similarity index 53%
rename from src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.template.config/template.json
rename to src/Microsoft.DotNet.Web.Spa.ProjectTemplates/ReactRedux-CSharp.template.json.in
index 38418e8db8..4895245d52 100644
--- a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.template.config/template.json
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/ReactRedux-CSharp.template.json.in
@@ -55,6 +55,60 @@
"datatype": "bool",
"description": "If specified, skips the automatic restore of the project on create.",
"defaultValue": "false"
+ },
+ "MicrosoftAspNetCoreAllPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.All",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreAllPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreAllPackageVersion)"
+ },
+ "MicrosoftAspNetCorePackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCorePackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCorePackageVersion)"
+ },
+ "MicrosoftAspNetCoreStaticFilesPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.StaticFiles",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreStaticFilesPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreStaticFilesPackageVersion)"
+ },
+ "MicrosoftAspNetCoreSpaServicesPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.SpaServices",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreSpaServicesPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreSpaServicesPackageVersion)"
+ },
+ "MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.VisualStudio.Web.CodeGeneration.Tools",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion}"
+ },
+ "replaces": "$(MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion)"
+ },
+ "MicrosoftAspNetCoreMvcPackageVersion": {
+ "type": "generated",
+ "description": "The package version for Microsoft.AspNetCore.Mvc",
+ "generator": "constant",
+ "parameters": {
+ "value": "${MicrosoftAspNetCoreMvcPackageVersion}"
+ },
+ "replaces": "$(MicrosoftAspNetCoreMvcPackageVersion)"
}
},
"tags": {
@@ -84,4 +138,4 @@
]
}
]
-}
\ No newline at end of file
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/AngularSpa.csproj b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/AngularSpa.csproj
index 6bdf6b0cf9..2ceb02847f 100644
--- a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/AngularSpa.csproj
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/AngularSpa.csproj
@@ -1,4 +1,4 @@
-
+
netcoreapp2.0
@@ -9,17 +9,17 @@
-
+
-
-
-
-
+
+
+
+
-
+
@@ -59,4 +59,4 @@
-
\ No newline at end of file
+
diff --git a/src/Microsoft.AspNetCore.SpaTemplates/Directory.Build.targets b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Directory.Build.props
similarity index 100%
rename from src/Microsoft.AspNetCore.SpaTemplates/Directory.Build.targets
rename to src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Directory.Build.props
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Directory.Build.targets b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Directory.Build.targets
new file mode 100644
index 0000000000..0f803ab0e0
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Directory.Build.targets
@@ -0,0 +1,7 @@
+
+
+
+
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ReactSpa.csproj b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ReactSpa.csproj
index 22858ca3ba..2ceb02847f 100644
--- a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ReactSpa.csproj
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ReactSpa.csproj
@@ -1,4 +1,4 @@
-
+
netcoreapp2.0
@@ -9,17 +9,22 @@
-
+
-
-
-
-
+
+
+
+
-
+
+
+
+
+
+
@@ -46,7 +51,7 @@
-
+
%(DistFiles.Identity)
PreserveNewest
@@ -54,4 +59,4 @@
-
\ No newline at end of file
+
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ReactReduxSpa.csproj b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ReactReduxSpa.csproj
index 6bdf6b0cf9..2ceb02847f 100644
--- a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ReactReduxSpa.csproj
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ReactReduxSpa.csproj
@@ -1,4 +1,4 @@
-
+
netcoreapp2.0
@@ -9,17 +9,17 @@
-
+
-
-
-
-
+
+
+
+
-
+
@@ -59,4 +59,4 @@
-
\ No newline at end of file
+
diff --git a/src/SetPackageProperties.targets b/src/SetPackageProperties.targets
new file mode 100644
index 0000000000..d98dae4333
--- /dev/null
+++ b/src/SetPackageProperties.targets
@@ -0,0 +1,10 @@
+
+
+
+
+ $(NuspecProperties);
+ version=$(PackageVersion);
+
+
+
+
diff --git a/test/Directory.Build.targets b/test/Directory.Build.targets
new file mode 100644
index 0000000000..5baa2f8797
--- /dev/null
+++ b/test/Directory.Build.targets
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/test/GenerateTestProps.targets b/test/GenerateTestProps.targets
new file mode 100644
index 0000000000..d23932f7c5
--- /dev/null
+++ b/test/GenerateTestProps.targets
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/test/TemplateTests.props.in b/test/TemplateTests.props.in
new file mode 100644
index 0000000000..9cd39793ff
--- /dev/null
+++ b/test/TemplateTests.props.in
@@ -0,0 +1,7 @@
+
+
+ true
+ ${RestoreSources}
+ ${RuntimeFrameworkVersion}
+
+
diff --git a/test/Templates.Test/EmptyWebTemplateTest.cs b/test/Templates.Test/EmptyWebTemplateTest.cs
index 528975424d..33f63f5eca 100644
--- a/test/Templates.Test/EmptyWebTemplateTest.cs
+++ b/test/Templates.Test/EmptyWebTemplateTest.cs
@@ -1,4 +1,8 @@
-using Xunit;
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using Microsoft.AspNetCore.Testing.xunit;
+using Xunit;
using Xunit.Abstractions;
namespace Templates.Test
@@ -9,10 +13,16 @@ namespace Templates.Test
{
}
- [Theory]
- [InlineData(null)]
- [InlineData("net461")]
- public void EmptyWebTemplate_Works(string targetFrameworkOverride)
+ [ConditionalFact]
+ [OSSkipCondition(OperatingSystems.Linux | OperatingSystems.MacOSX)]
+ public void EmptyWebTemplate_Works_NetFramework()
+ => EmptyWebTemplateImpl("net461");
+
+ [Fact]
+ public void EmptyWebTemplate_Works_NetCore()
+ => EmptyWebTemplateImpl(null);
+
+ private void EmptyWebTemplateImpl(string targetFrameworkOverride)
{
RunDotNetNew("web", targetFrameworkOverride);
diff --git a/test/Templates.Test/Helpers/AspNetProcess.cs b/test/Templates.Test/Helpers/AspNetProcess.cs
index b1d20aeb04..454c89fc29 100644
--- a/test/Templates.Test/Helpers/AspNetProcess.cs
+++ b/test/Templates.Test/Helpers/AspNetProcess.cs
@@ -5,6 +5,7 @@ using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
+using Microsoft.Extensions.CommandLineUtils;
using Xunit;
using Xunit.Abstractions;
@@ -30,7 +31,7 @@ namespace Templates.Test.Helpers
{
output.WriteLine("Publishing ASP.NET application...");
ProcessEx
- .Run(output, workingDirectory, "dotnet", "publish -c Release")
+ .Run(output, workingDirectory, DotNetMuxer.MuxerPathOrDefault(), "publish -c Release")
.WaitForExit(assertSuccess: true);
workingDirectory = Path.Combine(workingDirectory, "bin", "Release", framework, "publish");
}
@@ -38,7 +39,7 @@ namespace Templates.Test.Helpers
{
output.WriteLine("Building ASP.NET application...");
ProcessEx
- .Run(output, workingDirectory, "dotnet", "build --no-restore -c Debug")
+ .Run(output, workingDirectory, DotNetMuxer.MuxerPathOrDefault(), "build --no-restore -c Debug")
.WaitForExit(assertSuccess: true);
}
@@ -56,7 +57,7 @@ namespace Templates.Test.Helpers
if (framework.StartsWith("netcore"))
{
var dllPath = publish ? $"{projectName}.dll" : $"bin/Debug/{framework}/{projectName}.dll";
- _process = ProcessEx.Run(output, workingDirectory, "dotnet", $"exec {dllPath}", envVars: envVars);
+ _process = ProcessEx.Run(output, workingDirectory, DotNetMuxer.MuxerPathOrDefault(), $"exec {dllPath}", envVars: envVars);
}
else
{
@@ -74,7 +75,7 @@ namespace Templates.Test.Helpers
.FirstOrDefault(line => line.StartsWith(ListeningMessagePrefix, StringComparison.Ordinal));
Assert.True(!string.IsNullOrEmpty(listeningMessage), $"ASP.NET process exited without listening for requests.\nOutput: { _process.Output }\nError: { _process.Error }");
- // Verify we have a valid URL to make requests to
+ // Verify we have a valid URL to make requests to
var listeningUrlString = listeningMessage.Substring(ListeningMessagePrefix.Length);
_listeningUri = new Uri(listeningUrlString, UriKind.Absolute);
output.WriteLine($"Detected that ASP.NET application is accepting connections on: {listeningUrlString}");
diff --git a/test/Templates.Test/Helpers/ProcessEx.cs b/test/Templates.Test/Helpers/ProcessEx.cs
index f2204835c8..c82c0594af 100644
--- a/test/Templates.Test/Helpers/ProcessEx.cs
+++ b/test/Templates.Test/Helpers/ProcessEx.cs
@@ -35,6 +35,7 @@ namespace Templates.Test.Helpers
}
}
+ output.WriteLine($"==> {startInfo.FileName} {startInfo.Arguments} [{startInfo.WorkingDirectory}]");
var proc = Process.Start(startInfo);
return new ProcessEx(output, proc);
diff --git a/test/Templates.Test/Helpers/TemplatePackageInstaller.cs b/test/Templates.Test/Helpers/TemplatePackageInstaller.cs
index 05891572a7..6ab92681ae 100644
--- a/test/Templates.Test/Helpers/TemplatePackageInstaller.cs
+++ b/test/Templates.Test/Helpers/TemplatePackageInstaller.cs
@@ -1,6 +1,7 @@
using System;
using System.IO;
using System.Linq;
+using Microsoft.Extensions.CommandLineUtils;
using Xunit.Abstractions;
namespace Templates.Test.Helpers
@@ -38,8 +39,8 @@ namespace Templates.Test.Helpers
{
var proc = ProcessEx.Run(
output,
- Directory.GetCurrentDirectory(),
- "dotnet",
+ AppContext.BaseDirectory,
+ DotNetMuxer.MuxerPathOrDefault(),
$"new --uninstall {packageName}");
// We don't need this command to succeed, because we'll verify next that
@@ -61,8 +62,8 @@ namespace Templates.Test.Helpers
output.WriteLine($"Installing templates package {packagePath}...");
var proc = ProcessEx.Run(
output,
- Directory.GetCurrentDirectory(),
- "dotnet",
+ AppContext.BaseDirectory,
+ DotNetMuxer.MuxerPathOrDefault(),
$"new --install \"{packagePath}\"");
proc.WaitForExit(assertSuccess: true);
}
@@ -72,13 +73,13 @@ namespace Templates.Test.Helpers
private static void VerifyCannotFindTemplate(ITestOutputHelper output, string templateName)
{
// Verify we really did remove the previous templates
- var tempDir = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString("D"));
+ var tempDir = Path.Combine(AppContext.BaseDirectory, Path.GetRandomFileName(), Guid.NewGuid().ToString("D"));
Directory.CreateDirectory(tempDir);
var proc = ProcessEx.Run(
output,
tempDir,
- "dotnet",
+ DotNetMuxer.MuxerPathOrDefault(),
$"new \"{templateName}\"");
proc.WaitForExit(assertSuccess: false);
if (!proc.Error.Contains($"No templates matched the input template name: {templateName}."))
@@ -91,7 +92,7 @@ namespace Templates.Test.Helpers
private static string FindAncestorDirectoryContaining(string filename)
{
- var dir = Directory.GetCurrentDirectory();
+ var dir = AppContext.BaseDirectory;
while (dir != null)
{
if (File.Exists(Path.Combine(dir, filename)))
@@ -102,7 +103,7 @@ namespace Templates.Test.Helpers
dir = Directory.GetParent(dir)?.FullName;
}
- throw new InvalidOperationException($"Could not find any ancestor directory containing {filename} at or above {Directory.GetCurrentDirectory()}");
+ throw new InvalidOperationException($"Could not find any ancestor directory containing {filename} at or above {AppContext.BaseDirectory}");
}
}
}
diff --git a/test/Templates.Test/Helpers/TemplateTestBase.cs b/test/Templates.Test/Helpers/TemplateTestBase.cs
index 8b28d81f71..54854d6c75 100644
--- a/test/Templates.Test/Helpers/TemplateTestBase.cs
+++ b/test/Templates.Test/Helpers/TemplateTestBase.cs
@@ -1,7 +1,12 @@
-using System;
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using System;
using System.IO;
using System.Reflection;
+using System.Runtime.InteropServices;
using System.Threading;
+using Microsoft.Extensions.CommandLineUtils;
using Templates.Test.Helpers;
using Xunit;
using Xunit.Abstractions;
@@ -30,7 +35,7 @@ namespace Templates.Test
// We don't want any of the host repo's build config interfering with
// how the test project is built, so disconnect it from the
// Directory.Build.props/targets context
- File.WriteAllText(Path.Combine(TemplateOutputDir, "Directory.Build.props"), "");
+ File.WriteAllText(Path.Combine(TemplateOutputDir, "Directory.Build.props"), "");
File.WriteAllText(Path.Combine(TemplateOutputDir, "Directory.Build.targets"), "");
}
@@ -58,7 +63,7 @@ namespace Templates.Test
args += $" -lang {language}";
}
- ProcessEx.Run(Output, TemplateOutputDir, "dotnet", args).WaitForExit(assertSuccess: true);
+ ProcessEx.Run(Output, TemplateOutputDir, DotNetMuxer.MuxerPathOrDefault(), args).WaitForExit(assertSuccess: true);
}
protected void RunNpmInstall()
@@ -66,7 +71,10 @@ namespace Templates.Test
// The first time this runs on any given CI agent it may take several minutes.
// If the agent has NPM 5+ installed, it should be quite a lot quicker on
// subsequent runs because of package caching.
- ProcessEx.Run(Output, TemplateOutputDir, "cmd", "/c \"npm install\"").WaitForExit(assertSuccess: true);
+ var (exe, args) = RuntimeInformation.IsOSPlatform(OSPlatform.Windows)
+ ? ("cmd", "/c")
+ : ("bash", "-c");
+ ProcessEx.Run(Output, TemplateOutputDir, exe, args + " \"npm install\"").WaitForExit(assertSuccess: true);
}
protected void AssertDirectoryExists(string path, bool shouldExist)
diff --git a/test/Templates.Test/MvcTemplateTest.cs b/test/Templates.Test/MvcTemplateTest.cs
index b662a6b1af..463b6b78e7 100644
--- a/test/Templates.Test/MvcTemplateTest.cs
+++ b/test/Templates.Test/MvcTemplateTest.cs
@@ -1,4 +1,8 @@
-using Xunit;
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using Microsoft.AspNetCore.Testing.xunit;
+using Xunit;
using Xunit.Abstractions;
namespace Templates.Test
@@ -9,12 +13,20 @@ namespace Templates.Test
{
}
+ [ConditionalTheory]
+ [OSSkipCondition(OperatingSystems.Linux | OperatingSystems.MacOSX)]
+ [InlineData(null)]
+ [InlineData("F#")]
+ public void MvcTemplate_NoAuth_Works_NetFramework(string languageOverride)
+ => MvcTemplate_NoAuthImpl("net461", languageOverride);
+
[Theory]
- [InlineData(/* netcoreapp */ null, /* C# */ null)]
- [InlineData("net461", /* C# */ null)]
- [InlineData(/* netcoreapp */ null, "F#")]
- [InlineData("net461", "F#")]
- public void MvcTemplate_NoAuth_Works(string targetFrameworkOverride, string languageOverride)
+ [InlineData(null)]
+ [InlineData("F#")]
+ public void MvcTemplate_NoAuth_Works_NetCore(string languageOverride)
+ => MvcTemplate_NoAuthImpl(null, languageOverride);
+
+ private void MvcTemplate_NoAuthImpl(string targetFrameworkOverride, string languageOverride)
{
RunDotNetNew("mvc", targetFrameworkOverride, language: languageOverride);
@@ -42,13 +54,19 @@ namespace Templates.Test
}
}
- [Theory]
- [InlineData(null)]
- [InlineData("net461")]
- public void MvcTemplate_IndividualAuth_Works(string targetFrameworkOverride)
+ [ConditionalFact]
+ [OSSkipCondition(OperatingSystems.Linux | OperatingSystems.MacOSX)]
+ public void MvcTemplate_IndividualAuth_Works_NetFramework()
+ => MvcTemplate_IndividualAuthImpl("net461");
+
+ [Fact]
+ public void MvcTemplate_IndividualAuth_Works_NetCore()
+ => MvcTemplate_IndividualAuthImpl(null);
+
+ private void MvcTemplate_IndividualAuthImpl(string targetFrameworkOverride)
{
RunDotNetNew("mvc", targetFrameworkOverride, auth: "Individual");
-
+
AssertDirectoryExists("Extensions", true);
AssertFileExists("urlRewrite.config", false);
AssertFileExists("Controllers/AccountController.cs", true);
diff --git a/test/Templates.Test/RazorPagesTemplateTest.cs b/test/Templates.Test/RazorPagesTemplateTest.cs
index 48e88b4142..7d7ef64873 100644
--- a/test/Templates.Test/RazorPagesTemplateTest.cs
+++ b/test/Templates.Test/RazorPagesTemplateTest.cs
@@ -1,4 +1,8 @@
-using Xunit;
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using Microsoft.AspNetCore.Testing.xunit;
+using Xunit;
using Xunit.Abstractions;
namespace Templates.Test
@@ -9,13 +13,19 @@ namespace Templates.Test
{
}
- [Theory]
- [InlineData(null)]
- [InlineData("net461")]
- public void RazorPagesTemplate_NoAuth_Works(string targetFrameworkOverride)
+ [ConditionalFact]
+ [OSSkipCondition(OperatingSystems.Linux | OperatingSystems.MacOSX)]
+ public void RazorPagesTemplate_NoAuth_Works_NetFramework()
+ => RazorPagesTemplate_NoAuthImpl("net461");
+
+ [Fact]
+ public void RazorPagesTemplate_NoAuth_Works_NetCore()
+ => RazorPagesTemplate_NoAuthImpl(null);
+
+ private void RazorPagesTemplate_NoAuthImpl(string targetFrameworkOverride)
{
RunDotNetNew("razor", targetFrameworkOverride);
-
+
AssertDirectoryExists("Extensions", false);
AssertFileExists("Controllers/AccountController.cs", false);
@@ -37,10 +47,16 @@ namespace Templates.Test
}
}
- [Theory]
- [InlineData(null)]
- [InlineData("net461")]
- public void RazorPagesTemplate_IndividualAuth_Works(string targetFrameworkOverride)
+ [ConditionalFact]
+ [OSSkipCondition(OperatingSystems.Linux | OperatingSystems.MacOSX)]
+ public void RazorPagesTemplate_IndividualAuth_Works_NetFramework()
+ => RazorPagesTemplate_IndividualAuthImpl("net461");
+
+ [Fact]
+ public void RazorPagesTemplate_IndividualAuth_Works_NetCore()
+ => RazorPagesTemplate_IndividualAuthImpl(null);
+
+ private void RazorPagesTemplate_IndividualAuthImpl(string targetFrameworkOverride)
{
RunDotNetNew("razor", targetFrameworkOverride, auth: "Individual");
diff --git a/test/Templates.Test/SpaTemplateTest.cs b/test/Templates.Test/SpaTemplateTest.cs
index 8095c76899..44efcf9423 100644
--- a/test/Templates.Test/SpaTemplateTest.cs
+++ b/test/Templates.Test/SpaTemplateTest.cs
@@ -1,4 +1,8 @@
-using OpenQA.Selenium;
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using Microsoft.AspNetCore.Testing.xunit;
+using OpenQA.Selenium;
using Templates.Test.Helpers;
using Xunit;
using Xunit.Abstractions;
@@ -11,17 +15,25 @@ namespace Templates.Test
{
}
- [Theory]
- [InlineData(null, "angular")]
- [InlineData(null, "react")]
- [InlineData(null, "reactredux")]
- [InlineData(null, "aurelia")]
- [InlineData(null, "knockout")]
- [InlineData(null, "vue")]
+ [ConditionalTheory]
+ [OSSkipCondition(OperatingSystems.Linux | OperatingSystems.MacOSX)]
// Just use 'angular' as representative for .NET 4.6.1 coverage, as
// the client-side code isn't affected by the .NET runtime choice
- [InlineData("net461", "angular")]
- public void SpaTemplate_Works(string targetFrameworkOverride, string template)
+ [InlineData("angular")]
+ public void SpaTemplate_Works_NetFramework(string template)
+ => SpaTemplateImpl("net461", template);
+
+ [Theory]
+ [InlineData("angular")]
+ [InlineData("react")]
+ [InlineData("reactredux")]
+ [InlineData("aurelia")]
+ [InlineData("knockout")]
+ [InlineData("vue")]
+ public void SpaTemplate_Works_NetCore(string template)
+ => SpaTemplateImpl(null, template);
+
+ private void SpaTemplateImpl(string targetFrameworkOverride, string template)
{
RunDotNetNew(template, targetFrameworkOverride);
RunNpmInstall();
diff --git a/test/Templates.Test/Templates.Test.csproj b/test/Templates.Test/Templates.Test.csproj
index 6c20147487..d93039022c 100644
--- a/test/Templates.Test/Templates.Test.csproj
+++ b/test/Templates.Test/Templates.Test.csproj
@@ -5,13 +5,15 @@
-
+
+
+
-
-
+
+
diff --git a/test/Templates.Test/WebApiTemplateTest.cs b/test/Templates.Test/WebApiTemplateTest.cs
index 977a968a09..75d18ba780 100644
--- a/test/Templates.Test/WebApiTemplateTest.cs
+++ b/test/Templates.Test/WebApiTemplateTest.cs
@@ -1,4 +1,8 @@
-using Xunit;
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using Microsoft.AspNetCore.Testing.xunit;
+using Xunit;
using Xunit.Abstractions;
namespace Templates.Test
@@ -9,10 +13,16 @@ namespace Templates.Test
{
}
- [Theory]
- [InlineData(null)]
- [InlineData("net461")]
- public void WebApiTemplate_Works(string targetFrameworkOverride)
+ [ConditionalFact]
+ [OSSkipCondition(OperatingSystems.Linux | OperatingSystems.MacOSX)]
+ public void WebApiTemplate_Works_NetFramework()
+ => WebApiTemplateImpl("net461");
+
+ [Fact]
+ public void WebApiTemplate_Works_NetCore()
+ => WebApiTemplateImpl(null);
+
+ private void WebApiTemplateImpl(string targetFrameworkOverride)
{
RunDotNetNew("api", targetFrameworkOverride);
diff --git a/tools/DependencyUpdater/DependencyUpdater.csproj b/tools/DependencyUpdater/DependencyUpdater.csproj
deleted file mode 100644
index ee85a128c6..0000000000
--- a/tools/DependencyUpdater/DependencyUpdater.csproj
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- netstandard2.0
- Library
- false
-
-
-
-
-
-
-
diff --git a/tools/DependencyUpdater/SubstituteProjectFileVariables.cs b/tools/DependencyUpdater/SubstituteProjectFileVariables.cs
deleted file mode 100644
index e1c6676bba..0000000000
--- a/tools/DependencyUpdater/SubstituteProjectFileVariables.cs
+++ /dev/null
@@ -1,88 +0,0 @@
-using Microsoft.Build.Framework;
-using Microsoft.Build.Utilities;
-using System;
-using System.IO;
-using System.IO.Compression;
-using System.Linq;
-
-namespace DependencyUpdater
-{
- public class SubstituteProjectFileVariables : Task
- {
- private static string[] ProjectFileExtensions = new[]
- {
- ".csproj",
- ".fsproj"
- };
-
- [Required] public string NupkgFile { get; set; }
- [Required] public string OutDir { get; set; }
- [Required] public ITaskItem[] Substitutions { get; set; }
-
- public override bool Execute()
- {
- // We can't modify the .nupkg in place because the build system still
- // has a lock on the file. We can read it, but not write it. So copy
- // to the output location and then modify the copy.
- var outFile = Path.Combine(OutDir, Path.GetFileName(NupkgFile));
- File.Copy(NupkgFile, outFile, true);
-
- var numProjectFiles = 0;
- using (var zipFile = ZipFile.Open(outFile, ZipArchiveMode.Update))
- {
- foreach (var projectFile in zipFile.Entries.Where(IsProjectFile))
- {
- numProjectFiles++;
- PerformVariableSubstitutions(projectFile);
- }
- }
-
- if (numProjectFiles == 0)
- {
- Log.LogMessage(
- MessageImportance.High,
- $"No project files found in {Path.GetFileName(outFile)}, so no variables substituted.");
- }
- else
- {
- Log.LogMessage(
- MessageImportance.High,
- $"Substituted variables in {numProjectFiles} project file(s) in {Path.GetFileName(outFile)}");
- }
-
- return true;
- }
-
- private static bool IsProjectFile(ZipArchiveEntry entry)
- {
- return ProjectFileExtensions.Any(
- extension => Path.GetExtension(entry.Name).Equals(extension, StringComparison.OrdinalIgnoreCase));
- }
-
- private void PerformVariableSubstitutions(ZipArchiveEntry entry)
- {
- using (var fileStream = entry.Open())
- {
- string contents;
- using (var reader = new StreamReader(fileStream))
- using (var writer = new StreamWriter(fileStream))
- {
- contents = reader.ReadToEnd();
- fileStream.Seek(0, SeekOrigin.Begin);
- fileStream.SetLength(0);
- writer.Write(SubstituteVariables(contents));
- }
- }
- }
-
- private string SubstituteVariables(string text)
- {
- foreach (var item in Substitutions)
- {
- text = text.Replace($"$({item.ItemSpec})", item.GetMetadata("Value"));
- }
-
- return text;
- }
- }
-}
diff --git a/version.props b/version.props
index 7e4c6138cc..47ffd05e45 100644
--- a/version.props
+++ b/version.props
@@ -4,6 +4,8 @@
rtm
$(VersionPrefix)
$(VersionPrefix)-$(VersionSuffix)-final
+ t000
$(VersionSuffix)-$(BuildNumber)
+ $(VersionSuffix)+$(VersionMetadata)