From 5541615008c914170c880187b8ea6ed12b3a9bd9 Mon Sep 17 00:00:00 2001 From: Nate McMaster Date: Wed, 11 Oct 2017 11:26:41 -0700 Subject: [PATCH] Automate dependency version selection - Generate the template config file to include package versions as listed in dependencies.props - Update template cs/fsproj files to use variables per package - Fixup tests to run better on Linux/macOS --- .vscode/settings.json | 8 + Directory.Build.props | 1 - Directory.Build.targets | 1 + NuGet.config | 3 +- TemplateDependencies.props | 30 --- Templating.sln | 28 ++- build.ps1 | 4 +- build.sh | 0 build/FixPackageOutputDirs.targets | 33 ---- build/dependencies.props | 27 +++ build/repo.targets | 3 - build/sources.props | 2 +- korebuild-lock.txt | 4 +- src/Directory.Build.props | 25 +-- src/Directory.Build.targets | 25 +-- src/GenerateContent.targets | 29 +++ .../.gitignore | 2 + ...e.json => Aurelia-CSharp.template.json.in} | 56 +++++- ....json => Knockout-CSharp.template.json.in} | 56 +++++- .../Microsoft.AspNetCore.SpaTemplates.csproj | 31 ++- .../Microsoft.AspNetCore.SpaTemplates.nuspec | 4 +- ...plate.json => Vue-CSharp.template.json.in} | 56 +++++- .../content/Aurelia-CSharp/AureliaSpa.csproj | 16 +- .../{ => content}/Directory.Build.props | 0 .../content/Directory.Build.targets | 7 + .../Knockout-CSharp/KnockoutSpa.csproj | 16 +- .../content/Vue-CSharp/VueSpa.csproj | 16 +- ...oft.DotNet.Web.ProjectTemplates.1.x.csproj | 3 + .../.gitignore | 2 + ....json => EmptyWeb-CSharp.template.json.in} | 41 +++- ....json => EmptyWeb-FSharp.template.json.in} | 24 ++- ...oft.DotNet.Web.ProjectTemplates.2.0.csproj | 56 +++++- ...oft.DotNet.Web.ProjectTemplates.2.0.nuspec | 5 +- ... => RazorPagesWeb-CSharp.template.json.in} | 182 +++++++++++++++++- ...son => StarterWeb-CSharp.template.json.in} | 181 ++++++++++++++++- .../StarterWeb-FSharp.template.json.in | 122 ++++++++++++ ...te.json => WebApi-CSharp.template.json.in} | 69 ++++++- ...te.json => WebApi-FSharp.template.json.in} | 42 +++- .../content}/Directory.Build.props | 0 .../content/Directory.Build.targets | 7 + .../Company.WebApplication1.csproj | 6 +- .../Company.WebApplication1.fsproj | 4 +- .../Company.WebApplication1.csproj | 42 ++-- .../Company.WebApplication1.csproj | 42 ++-- .../.template.config/template.json | 68 ------- .../Company.WebApplication1.fsproj | 12 +- .../Company.WebApplication1.csproj | 14 +- .../Company.WebApplication1.fsproj | 8 +- .../.gitignore | 2 + ...e.json => Angular-CSharp.template.json.in} | 56 +++++- .../Directory.Build.targets | 6 - ...oft.DotNet.Web.Spa.ProjectTemplates.csproj | 32 ++- ...oft.DotNet.Web.Spa.ProjectTemplates.nuspec | 4 +- ...ate.json => React-CSharp.template.json.in} | 56 +++++- ...son => ReactRedux-CSharp.template.json.in} | 56 +++++- .../content/Angular-CSharp/AngularSpa.csproj | 16 +- .../content/Directory.Build.props} | 0 .../content/Directory.Build.targets | 7 + .../content/React-CSharp/ReactSpa.csproj | 23 ++- .../ReactRedux-CSharp/ReactReduxSpa.csproj | 16 +- src/SetPackageProperties.targets | 10 + test/Directory.Build.targets | 4 + test/GenerateTestProps.targets | 8 + test/TemplateTests.props.in | 7 + test/Templates.Test/EmptyWebTemplateTest.cs | 20 +- test/Templates.Test/Helpers/AspNetProcess.cs | 9 +- test/Templates.Test/Helpers/ProcessEx.cs | 1 + .../Helpers/TemplatePackageInstaller.cs | 17 +- .../Helpers/TemplateTestBase.cs | 16 +- test/Templates.Test/MvcTemplateTest.cs | 40 ++-- test/Templates.Test/RazorPagesTemplateTest.cs | 36 +++- test/Templates.Test/SpaTemplateTest.cs | 32 ++- test/Templates.Test/Templates.Test.csproj | 8 +- test/Templates.Test/WebApiTemplateTest.cs | 20 +- .../DependencyUpdater.csproj | 12 -- .../SubstituteProjectFileVariables.cs | 88 --------- version.props | 2 + 77 files changed, 1500 insertions(+), 517 deletions(-) create mode 100644 .vscode/settings.json delete mode 100644 TemplateDependencies.props mode change 100644 => 100755 build.sh delete mode 100644 build/FixPackageOutputDirs.targets create mode 100644 src/GenerateContent.targets create mode 100644 src/Microsoft.AspNetCore.SpaTemplates/.gitignore rename src/Microsoft.AspNetCore.SpaTemplates/{content/Aurelia-CSharp/.template.config/template.json => Aurelia-CSharp.template.json.in} (52%) rename src/Microsoft.AspNetCore.SpaTemplates/{content/Knockout-CSharp/.template.config/template.json => Knockout-CSharp.template.json.in} (52%) rename src/Microsoft.AspNetCore.SpaTemplates/{content/Vue-CSharp/.template.config/template.json => Vue-CSharp.template.json.in} (52%) rename src/Microsoft.AspNetCore.SpaTemplates/{ => content}/Directory.Build.props (100%) create mode 100644 src/Microsoft.AspNetCore.SpaTemplates/content/Directory.Build.targets create mode 100644 src/Microsoft.DotNet.Web.ProjectTemplates.2.0/.gitignore rename src/Microsoft.DotNet.Web.ProjectTemplates.2.0/{content/EmptyWeb-CSharp/.template.config/template.json => EmptyWeb-CSharp.template.json.in} (77%) rename src/Microsoft.DotNet.Web.ProjectTemplates.2.0/{content/EmptyWeb-FSharp/.template.config/template.json => EmptyWeb-FSharp.template.json.in} (77%) rename src/Microsoft.DotNet.Web.ProjectTemplates.2.0/{content/RazorPagesWeb-CSharp/.template.config/template.json => RazorPagesWeb-CSharp.template.json.in} (61%) rename src/Microsoft.DotNet.Web.ProjectTemplates.2.0/{content/StarterWeb-CSharp/.template.config/template.json => StarterWeb-CSharp.template.json.in} (60%) create mode 100644 src/Microsoft.DotNet.Web.ProjectTemplates.2.0/StarterWeb-FSharp.template.json.in rename src/Microsoft.DotNet.Web.ProjectTemplates.2.0/{content/WebApi-CSharp/.template.config/template.json => WebApi-CSharp.template.json.in} (77%) rename src/Microsoft.DotNet.Web.ProjectTemplates.2.0/{content/WebApi-FSharp/.template.config/template.json => WebApi-FSharp.template.json.in} (61%) rename src/{Microsoft.DotNet.Web.Spa.ProjectTemplates => Microsoft.DotNet.Web.ProjectTemplates.2.0/content}/Directory.Build.props (100%) create mode 100644 src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/Directory.Build.targets delete mode 100644 src/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/StarterWeb-FSharp/.template.config/template.json create mode 100644 src/Microsoft.DotNet.Web.Spa.ProjectTemplates/.gitignore rename src/Microsoft.DotNet.Web.Spa.ProjectTemplates/{content/Angular-CSharp/.template.config/template.json => Angular-CSharp.template.json.in} (52%) delete mode 100644 src/Microsoft.DotNet.Web.Spa.ProjectTemplates/Directory.Build.targets rename src/Microsoft.DotNet.Web.Spa.ProjectTemplates/{content/React-CSharp/.template.config/template.json => React-CSharp.template.json.in} (52%) rename src/Microsoft.DotNet.Web.Spa.ProjectTemplates/{content/ReactRedux-CSharp/.template.config/template.json => ReactRedux-CSharp.template.json.in} (53%) rename src/{Microsoft.AspNetCore.SpaTemplates/Directory.Build.targets => Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Directory.Build.props} (100%) create mode 100644 src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Directory.Build.targets create mode 100644 src/SetPackageProperties.targets create mode 100644 test/Directory.Build.targets create mode 100644 test/GenerateTestProps.targets create mode 100644 test/TemplateTests.props.in delete mode 100644 tools/DependencyUpdater/DependencyUpdater.csproj delete mode 100644 tools/DependencyUpdater/SubstituteProjectFileVariables.cs 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)