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
This commit is contained in:
Nate McMaster 2017-10-11 11:26:41 -07:00
Родитель 4d9bacd3f1
Коммит 5541615008
77 изменённых файлов: 1500 добавлений и 517 удалений

8
.vscode/settings.json поставляемый Normal file
Просмотреть файл

@ -0,0 +1,8 @@
{
"files.associations": {
"*.json.in": "json"
},
"[json]": {
"editor.tabSize": 2
}
}

Просмотреть файл

@ -1,4 +1,3 @@
<Project>
<Import Project="version.props" />
<Import Project="TemplateDependencies.props" />
</Project>

Просмотреть файл

@ -1,4 +1,5 @@
<Project>
<Import Project="build\sources.props" />
<!-- This is imported at the bottom of the file so properties such as RuntimeFrameworkVersion can be set based on TargetFramework -->
<Import Project="build\dependencies.props" />
</Project>

Просмотреть файл

@ -2,7 +2,6 @@
<configuration>
<packageSources>
<clear />
<add key="AspNetCore" value="https://dotnet.myget.org/F/aspnetcore-ci-dev/api/v3/index.json" />
<add key="NuGet" value="https://api.nuget.org/v3/index.json" />
<!-- Restore sources should be defined in build/sources.props. -->
</packageSources>
</configuration>

Просмотреть файл

@ -1,30 +0,0 @@
<Project>
<PropertyGroup>
<!--
These version strings are stamped into the template nupkg packages
when the template projects are packed. Plus these dependency versions
are used if you run the template projects directly from source.
If you add a new entry here, be sure to add a corresponding <Substitution>
item into ./src/Directory.Build.targets, otherwise your value won't be
stamped into the built template nupkg files.
Entries whose values are taken from @(PackageReference->...) are using
whatever version is present in the latest package lineup. These dynamic
values can be replaced by hardcoded values (e.g., '2.1.0') when we
branch for a release.
-->
<TemplateDep_Coherence_2_0>2.0.0</TemplateDep_Coherence_2_0>
<TemplateDep_Coherence_2_1>@(PackageReference->WithMetadataValue('Identity', 'Microsoft.AspNetCore')->Metadata('Version'))</TemplateDep_Coherence_2_1>
<TemplateDep_RuntimeFramework_2_1>2.1.0-preview1-26751</TemplateDep_RuntimeFramework_2_1>
</PropertyGroup>
<ItemGroup>
<!--
These references are here only so that KoreBuild will locate the applicable
version in the current lineup and we can then access those versions in the
code above.
-->
<PackageReference Include="Microsoft.AspNetCore" />
</ItemGroup>
</Project>

Просмотреть файл

@ -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}

Просмотреть файл

@ -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
}
}

0
build.sh Normal file → Executable file
Просмотреть файл

Просмотреть файл

@ -1,33 +0,0 @@
<Project>
<!--
The "Pack" target which emits .nupkg files to disk also holds a lock on those file
until the whole build process exits [1]. This makes it difficult to perform any
subsequent work on the package files, such as moving them or modifying their
contents. As a workaround, we cause the nupkgs to be written to a temporary
subdirectory, and then after they are emitted, our SubstituteProjectFileVariables
task writes its output to the original intended build directory.
[1] The file locking might be a bug in the NuGet client code. For example, see
https://github.com/NuGet/NuGet.Client/blob/63e8539791d4f662efffceb2185ad4510396d76e/src/NuGet.Core/NuGet.Commands/CommandRunners/PackCommandRunner.cs#L135
It opens a "PackageArchiveReader" (which in turn uses File.Open to open a file
handle) after creating each package, but never close/disposes it.
-->
<PropertyGroup>
<PackageDependsOn>RedirectPackageOutputDir;$(PackageDependsOn);RestorePackageOutputDir</PackageDependsOn>
</PropertyGroup>
<Target Name="RedirectPackageOutputDir">
<PropertyGroup>
<OrigBuildDir>$(BuildDir)</OrigBuildDir>
<BuildDir>$(BuildDir)unversioned\</BuildDir>
</PropertyGroup>
</Target>
<Target Name="RestorePackageOutputDir">
<PropertyGroup>
<BuildDir>$(OrigBuildDir)</BuildDir>
</PropertyGroup>
</Target>
</Project>

Просмотреть файл

@ -1,10 +1,37 @@
<Project>
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
<PropertyGroup Label="PackageVersions">
<InternalAspNetCoreSdkPackageVersion>2.0.2-beta-15522</InternalAspNetCoreSdkPackageVersion>
<MicrosoftAspNetCoreAllPackageVersion>2.0.3-rtm-101</MicrosoftAspNetCoreAllPackageVersion>
<MicrosoftAspNetCoreAuthenticationCookiesPackageVersion>2.0.1-rtm-101</MicrosoftAspNetCoreAuthenticationCookiesPackageVersion>
<MicrosoftAspNetCoreAuthenticationJwtBearerPackageVersion>2.0.1-rtm-101</MicrosoftAspNetCoreAuthenticationJwtBearerPackageVersion>
<MicrosoftAspNetCoreAuthenticationOpenIdConnectPackageVersion>2.0.1-rtm-101</MicrosoftAspNetCoreAuthenticationOpenIdConnectPackageVersion>
<MicrosoftAspNetCoreDiagnosticsEntityFrameworkCorePackageVersion>2.0.1-rtm-101</MicrosoftAspNetCoreDiagnosticsEntityFrameworkCorePackageVersion>
<MicrosoftAspNetCoreIdentityEntityFrameworkCorePackageVersion>2.0.1-rtm-101</MicrosoftAspNetCoreIdentityEntityFrameworkCorePackageVersion>
<MicrosoftAspNetCoreMvcPackageVersion>2.0.1-rtm-101</MicrosoftAspNetCoreMvcPackageVersion>
<MicrosoftAspNetCoreMvcRazorViewCompilationPackageVersion>2.0.1-rtm-101</MicrosoftAspNetCoreMvcRazorViewCompilationPackageVersion>
<MicrosoftAspNetCorePackageVersion>2.0.1-rtm-101</MicrosoftAspNetCorePackageVersion>
<MicrosoftAspNetCoreSpaServicesPackageVersion>2.0.1-rtm-101</MicrosoftAspNetCoreSpaServicesPackageVersion>
<MicrosoftAspNetCoreStaticFilesPackageVersion>2.0.1-rtm-101</MicrosoftAspNetCoreStaticFilesPackageVersion>
<MicrosoftAspNetCoreTestingPackageVersion>2.0.0</MicrosoftAspNetCoreTestingPackageVersion>
<MicrosoftBuildFrameworkPackageVersion>15.3.409</MicrosoftBuildFrameworkPackageVersion>
<MicrosoftBuildUtilitiesCorePackageVersion>15.3.409</MicrosoftBuildUtilitiesCorePackageVersion>
<MicrosoftEntityFrameworkCoreDesignPackageVersion>2.0.1-rtm-101</MicrosoftEntityFrameworkCoreDesignPackageVersion>
<MicrosoftEntityFrameworkCoreSqlitePackageVersion>2.0.1-rtm-101</MicrosoftEntityFrameworkCoreSqlitePackageVersion>
<MicrosoftEntityFrameworkCoreSqlServerPackageVersion>2.0.1-rtm-101</MicrosoftEntityFrameworkCoreSqlServerPackageVersion>
<MicrosoftEntityFrameworkCoreToolsDotNetPackageVersion>2.0.1-rtm-101</MicrosoftEntityFrameworkCoreToolsDotNetPackageVersion>
<MicrosoftEntityFrameworkCoreToolsPackageVersion>2.0.1-rtm-101</MicrosoftEntityFrameworkCoreToolsPackageVersion>
<MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>2.0.0</MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>
<MicrosoftExtensionsSecretManagerToolsPackageVersion>2.0.0</MicrosoftExtensionsSecretManagerToolsPackageVersion>
<MicrosoftNETTestSdkPackageVersion>15.3.0</MicrosoftNETTestSdkPackageVersion>
<MicrosoftVisualStudioWebBrowserLinkPackageVersion>2.0.1-rtm-101</MicrosoftVisualStudioWebBrowserLinkPackageVersion>
<MicrosoftVisualStudioWebCodeGenerationDesignPackageVersion>2.0.1-rtm-101</MicrosoftVisualStudioWebCodeGenerationDesignPackageVersion>
<MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion>2.0.1-rtm-101</MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion>
<OctokitPackageVersion>0.26.0</OctokitPackageVersion>
<RuntimeFrameworkVersion Condition="'$(TargetFramework)' == 'netcoreapp2.0'">2.0.2-servicing-25728-02</RuntimeFrameworkVersion>
<SeleniumFirefoxWebDriverPackageVersion>0.18.0</SeleniumFirefoxWebDriverPackageVersion>
<SeleniumSupportPackageVersion>3.4.0</SeleniumSupportPackageVersion>
<SeleniumWebDriverMicrosoftDriverPackageVersion>15.15063.0</SeleniumWebDriverMicrosoftDriverPackageVersion>

Просмотреть файл

@ -1,6 +1,4 @@
<Project>
<Import Project="FixPackageOutputDirs.targets" />
<UsingTask
TaskName="PullRequestSubmitter.PullRequestTask"
AssemblyFile="$(MSBuildThisFileDirectory)..\tools\PullRequestSubmitter\bin\Release\netcoreapp2.0\PullRequestSubmitter.dll" />
@ -30,5 +28,4 @@
FileToUpdate="build/DependencyVersions.props"
PropertyUpdates="@(PropertyUpdate)" />
</Target>
</Project>

Просмотреть файл

@ -1,7 +1,7 @@
<Project>
<Import Project="$(DotNetRestoreSourcePropsPath)" Condition="'$(DotNetRestoreSourcePropsPath)' != ''"/>
<PropertyGroup>
<PropertyGroup Label="RestoreSources">
<RestoreSources>$(DotNetRestoreSources)</RestoreSources>
<RestoreSources Condition="'$(DotNetBuildOffline)' != 'true' AND '$(AspNetUniverseBuildOffline)' != 'true' ">
$(RestoreSources);

Просмотреть файл

@ -1,2 +1,2 @@
version:2.0.2-beta-15522
commithash:f26cb086ebd8b5a187381bb9a431794f11d69025
version:2.0.2-rc1-15526
commithash:436afc3dc08f5e278431db807866cc5f032f4d7b

Просмотреть файл

@ -2,31 +2,26 @@
<Import Project="..\Directory.Build.props" />
<PropertyGroup>
<EnableApiCheck>false</EnableApiCheck>
<EnableDefaultItems>False</EnableDefaultItems>
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
<IncludeBuildOutput>False</IncludeBuildOutput>
<IncludeSource>False</IncludeSource>
<NoWarn>2008;8021</NoWarn>
<PackageVersion Condition="'$(VersionSuffix)' == ''">$(VersionPrefix)</PackageVersion>
<PackageVersion Condition="'$(VersionSuffix)' != ''">$(VersionPrefix)-$(VersionSuffix)</PackageVersion>
<PackageOutputPath Condition="'$(PackageOutputPath)' == ''">$(MSBuildThisFileDirectory)..\artifacts\build\unversioned\</PackageOutputPath>
<NuspecProperties>version=$(PackageVersion)</NuspecProperties>
</PropertyGroup>
<!--
These are not regular projects. They are just wrappers for the .nuspec files in each
of the template directories. The project files just provide a convenient way to package
the template .nupkgs from MSBuild.
As such, the projects don't have any dependencies and don't even produce any
.NET assemblies on build. So it's not relevant to participate in KoreBuild's lineup
system. The following line bypasses lineup verification.
-->
<KoreBuildRestoreTargetsImported>true</KoreBuildRestoreTargetsImported>
<PropertyGroup Condition="'$(BuildingInsideVisualStudio)' == 'true'">
<!-- So you can make changes and re-run tests within VS without command-line builds -->
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<PackageOutputPath>$(MSBuildThisFileDirectory)..\artifacts\build\</PackageOutputPath>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="$(MSBuildThisFileDirectory)../tools/DependencyUpdater/DependencyUpdater.csproj" />
<None Include="Content/**" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Internal.AspNetCore.Sdk" Version="$(InternalAspNetCoreSdkPackageVersion)" PrivateAssets="All" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,26 +1,5 @@
<Project>
<Import Project="..\Directory.Build.targets" />
<!--
Once we've written each template .nupkg file, we modify the ASP.NET references
in its .csproj content files, injecting whatever version number exists in
the curent build context.
-->
<UsingTask
TaskName="DependencyUpdater.SubstituteProjectFileVariables"
AssemblyFile="$(MSBuildProjectDirectory)\$(OutputPath)DependencyUpdater.dll" />
<Target Name="InjectVersionsIntoProjectFilesInPackage" AfterTargets="Pack">
<ItemGroup>
<Substitution Include="TemplateDep_Coherence_2_0" Value="$(TemplateDep_Coherence_2_0)" />
<Substitution Include="TemplateDep_Coherence_2_1" Value="$(TemplateDep_Coherence_2_1)" />
<Substitution Include="TemplateDep_RuntimeFramework_2_1" Value="$(TemplateDep_RuntimeFramework_2_1)" />
</ItemGroup>
<SubstituteProjectFileVariables
NupkgFile="$(PackageOutputPath)$(MSBuildProjectName).$(PackageVersion).nupkg"
Substitutions="@(Substitution)"
OutDir="$(PackageOutputPath)..\" />
</Target>
<Import Project="GenerateContent.targets" />
<Import Project="SetPackageProperties.targets" />
</Project>

Просмотреть файл

@ -0,0 +1,29 @@
<Project>
<!--
Generates content using MSBuild variables.
-->
<Target Name="_PrepareGeneratedContentFilesOutput">
<Error Text="You must set OutputPath on GenerateContent items." Condition="@(GeneratedContent->WithMetadataValue('OutputPath','')->Count()) != 0" />
<ItemGroup>
<GenerateContentInputs Include="$(MSBuildAllProjects);$(MSBuildProjectFullPath)" />
<GeneratedContentOutputs Include="%(GeneratedContent.OutputPath)" />
</ItemGroup>
</Target>
<Target Name="GenerateContent"
DependsOnTargets="_PrepareGeneratedContentFilesOutput"
BeforeTargets="CoreCompile"
Inputs="@(GeneratedContent);@(GenerateContentInputs)"
Outputs="@(GeneratedContentOutputs)">
<Sdk_GenerateFileFromTemplate
TemplateFile="%(GeneratedContent.Identity)"
Properties="%(GeneratedContent.Properties)"
OutputPath="%(GeneratedContent.OutputPath)">
<Output TaskParameter="OutputPath" ItemName="FileWrites" />
<Output TaskParameter="OutputPath" ItemName="Content" />
</Sdk_GenerateFileFromTemplate>
</Target>
</Project>

2
src/Microsoft.AspNetCore.SpaTemplates/.gitignore поставляемый Normal file
Просмотреть файл

@ -0,0 +1,2 @@
# This file is generated by the build
content/*/.template.config/template.json

Просмотреть файл

@ -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 @@
]
}
]
}
}

Просмотреть файл

@ -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 @@
]
}
]
}
}

Просмотреть файл

@ -1,10 +1,35 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\Directory.Build.props" />
<Import Project="..\Directory.Build.targets" />
<Project>
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<NuspecFile>Microsoft.AspNetCore.SpaTemplates.nuspec</NuspecFile>
</PropertyGroup>
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
<!-- Set this last to ensure the properties get the final versions which may be overridden by CI. -->
<PropertyGroup>
<GeneratedContentProperties>
MicrosoftAspNetCoreAllPackageVersion=$(MicrosoftAspNetCoreAllPackageVersion);
MicrosoftAspNetCoreMvcPackageVersion=$(MicrosoftAspNetCoreMvcPackageVersion);
MicrosoftAspNetCorePackageVersion=$(MicrosoftAspNetCorePackageVersion);
MicrosoftAspNetCoreSpaServicesPackageVersion=$(MicrosoftAspNetCoreSpaServicesPackageVersion);
MicrosoftAspNetCoreStaticFilesPackageVersion=$(MicrosoftAspNetCoreStaticFilesPackageVersion);
MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion=$(MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion);
</GeneratedContentProperties>
</PropertyGroup>
<ItemGroup>
<GeneratedContent Include="Aurelia-CSharp.template.json.in" OutputPath="content\Aurelia-CSharp\.template.config\template.json">
<Properties>$(GeneratedContentProperties)</Properties>
</GeneratedContent>
<GeneratedContent Include="Knockout-CSharp.template.json.in" OutputPath="content\Knockout-CSharp\.template.config\template.json">
<Properties>$(GeneratedContentProperties)</Properties>
</GeneratedContent>
<GeneratedContent Include="Vue-CSharp.template.json.in" OutputPath="content\Vue-CSharp\.template.config\template.json">
<Properties>$(GeneratedContentProperties)</Properties>
</GeneratedContent>
</ItemGroup>
</Project>

Просмотреть файл

@ -17,9 +17,9 @@
</packageTypes>
</metadata>
<files>
<file
<file
src="content/**/*"
exclude="**/node_modules/**;**/bin/**;**/obj/**;**/.vs/**;**/.vscode/**;**/ClientApp/dist/**;**/wwwroot/dist/**"
exclude="**/node_modules/**;**/bin/**;**/obj/**;**/.vs/**;**/.vscode/**;**/ClientApp/dist/**;**/wwwroot/dist/**;content/Directory.Build.*"
target="Content" />
</files>
</package>

Просмотреть файл

@ -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 @@
]
}
]
}
}

Просмотреть файл

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework Condition="'$(TargetFrameworkOverride)' == ''">netcoreapp2.0</TargetFramework>
@ -9,17 +9,17 @@
</PropertyGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' == ''">
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(MicrosoftAspNetCoreAllPackageVersion)" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' != ''">
<PackageReference Include="Microsoft.AspNetCore" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore.SpaServices" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore" Version="$(MicrosoftAspNetCorePackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="$(MicrosoftAspNetCoreMvcPackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.SpaServices" Version="$(MicrosoftAspNetCoreSpaServicesPackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="$(MicrosoftAspNetCoreStaticFilesPackageVersion)" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="$(MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion)" />
</ItemGroup>
<!--/-:cnd:noEmit -->
@ -54,4 +54,4 @@
</ItemGroup>
</Target>
</Project>
</Project>

Просмотреть файл

@ -0,0 +1,7 @@
<Project>
<Import Project="..\..\..\Directory.Build.targets" />
<!--
This file intentionally left mostly blank to ensure the template projects
are independent from the template package build config.
-->
</Project>

Просмотреть файл

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework Condition="'$(TargetFrameworkOverride)' == ''">netcoreapp2.0</TargetFramework>
@ -9,17 +9,17 @@
</PropertyGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' == ''">
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(MicrosoftAspNetCoreAllPackageVersion)" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' != ''">
<PackageReference Include="Microsoft.AspNetCore" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore.SpaServices" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore" Version="$(MicrosoftAspNetCorePackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="$(MicrosoftAspNetCoreMvcPackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.SpaServices" Version="$(MicrosoftAspNetCoreSpaServicesPackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="$(MicrosoftAspNetCoreStaticFilesPackageVersion)" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="$(MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion)" />
</ItemGroup>
<!--/-:cnd:noEmit -->
@ -54,4 +54,4 @@
</ItemGroup>
</Target>
</Project>
</Project>

Просмотреть файл

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework Condition="'$(TargetFrameworkOverride)' == ''">netcoreapp2.0</TargetFramework>
@ -9,17 +9,17 @@
</PropertyGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' == ''">
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(MicrosoftAspNetCoreAllPackageVersion)" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' != ''">
<PackageReference Include="Microsoft.AspNetCore" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore.SpaServices" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore" Version="$(MicrosoftAspNetCorePackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="$(MicrosoftAspNetCoreMvcPackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.SpaServices" Version="$(MicrosoftAspNetCoreSpaServicesPackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="$(MicrosoftAspNetCoreStaticFilesPackageVersion)" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="$(MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion)" />
</ItemGroup>
<!--/-:cnd:noEmit -->
@ -54,4 +54,4 @@
</ItemGroup>
</Target>
</Project>
</Project>

Просмотреть файл

@ -1,6 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<!-- Disable producing this package from the rel/2.0.x branch -->
<IsPackable>false</IsPackable>
<TargetFramework>netcoreapp2.0</TargetFramework>
<NuspecFile>Microsoft.DotNet.Web.ProjectTemplates.1.x.nuspec</NuspecFile>
</PropertyGroup>

2
src/Microsoft.DotNet.Web.ProjectTemplates.2.0/.gitignore поставляемый Normal file
Просмотреть файл

@ -0,0 +1,2 @@
# This file is generated by the build
content/*/.template.config/template.json

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -1,8 +1,62 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project>
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<NuspecFile>Microsoft.DotNet.Web.ProjectTemplates.2.0.nuspec</NuspecFile>
</PropertyGroup>
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
<!-- Set this last to ensure the properties get the final versions which may be overridden by CI. -->
<PropertyGroup>
<GeneratedContentProperties>
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>
</PropertyGroup>
<ItemGroup>
<GeneratedContent Include="EmptyWeb-CSharp.template.json.in" OutputPath="content\EmptyWeb-CSharp\.template.config\template.json">
<Properties>$(GeneratedContentProperties)</Properties>
</GeneratedContent>
<GeneratedContent Include="EmptyWeb-FSharp.template.json.in" OutputPath="content\EmptyWeb-FSharp\.template.config\template.json">
<Properties>$(GeneratedContentProperties)</Properties>
</GeneratedContent>
<GeneratedContent Include="RazorPagesWeb-CSharp.template.json.in" OutputPath="content\RazorPagesWeb-CSharp\.template.config\template.json">
<Properties>$(GeneratedContentProperties)</Properties>
</GeneratedContent>
<GeneratedContent Include="StarterWeb-CSharp.template.json.in" OutputPath="content\StarterWeb-CSharp\.template.config\template.json">
<Properties>$(GeneratedContentProperties)</Properties>
</GeneratedContent>
<GeneratedContent Include="StarterWeb-FSharp.template.json.in" OutputPath="content\StarterWeb-FSharp\.template.config\template.json">
<Properties>$(GeneratedContentProperties)</Properties>
</GeneratedContent>
<GeneratedContent Include="WebApi-CSharp.template.json.in" OutputPath="content\WebApi-CSharp\.template.config\template.json">
<Properties>$(GeneratedContentProperties)</Properties>
</GeneratedContent>
<GeneratedContent Include="WebApi-FSharp.template.json.in" OutputPath="content\WebApi-FSharp\.template.config\template.json">
<Properties>$(GeneratedContentProperties)</Properties>
</GeneratedContent>
</ItemGroup>
</Project>

Просмотреть файл

@ -17,6 +17,9 @@
</packageTypes>
</metadata>
<files>
<file src="content/**" target="" />
<file
src="content/**/*"
exclude="**/node_modules/**;**/bin/**;**/obj/**;**/.vs/**;**/.vscode/**;**/ClientApp/dist/**;**/wwwroot/dist/**;content/Directory.Build.*"
target="" />
</files>
</package>

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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
}
]
}

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -0,0 +1,7 @@
<Project>
<Import Project="..\..\..\Directory.Build.targets" />
<!--
This file intentionally left mostly blank to ensure the template projects
are independent from the template package build config.
-->
</Project>

Просмотреть файл

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework Condition="'$(TargetFrameworkOverride)' == ''">netcoreapp2.0</TargetFramework>
@ -10,10 +10,10 @@
</ItemGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' == ''">
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(TemplateDep_Coherence_2_0)" />
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(MicrosoftAspNetCoreAllPackageVersion)" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' != ''">
<PackageReference Include="Microsoft.AspNetCore" Version="$(TemplateDep_Coherence_2_0)" />
<PackageReference Include="Microsoft.AspNetCore" Version="$(MicrosoftAspNetCorePackageVersion)" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework Condition="'$(TargetFrameworkOverride)' == ''">netcoreapp2.0</TargetFramework>
@ -11,7 +11,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(TemplateDep_Coherence_2_0)" />
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(MicrosoftAspNetCoreAllPackageVersion)" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework Condition="'$(TargetFrameworkOverride)' == ''">netcoreapp2.0</TargetFramework>
<TargetFramework Condition="'$(TargetFrameworkOverride)' != ''">TargetFrameworkOverride</TargetFramework>
@ -10,29 +10,29 @@
<None Update="app.db" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' == ''">
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(TemplateDep_Coherence_2_0)" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="$(TemplateDep_Coherence_2_0)" PrivateAssets="All" Condition="'$(IndividualAuth)' == 'True'" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.0" PrivateAssets="All" Condition="'$(IndividualAuth)' == 'True'" />
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(MicrosoftAspNetCoreAllPackageVersion)" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="$(MicrosoftEntityFrameworkCoreToolsPackageVersion)" PrivateAssets="All" Condition="'$(IndividualAuth)' == 'True'" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="$(MicrosoftVisualStudioWebCodeGenerationDesignPackageVersion)" PrivateAssets="All" Condition="'$(IndividualAuth)' == 'True'" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' != ''">
<PackageReference Include="Microsoft.AspNetCore" Version="$(TemplateDep_Coherence_2_0)" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="$(TemplateDep_Coherence_2_0)" Condition="'$(IndividualAuth)' == 'True' OR '$(OrganizationalAuth)' == 'True'" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="$(TemplateDep_Coherence_2_0)" Condition="'$(OrganizationalAuth)' == 'True' OR '$(IndividualB2CAuth)' == 'True'" />
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="$(TemplateDep_Coherence_2_0)" Condition="'$(IndividualLocalAuth)' == 'True'" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="$(TemplateDep_Coherence_2_0)" Condition="'$(IndividualLocalAuth)' == 'True'" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="$(TemplateDep_Coherence_2_0)" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="$(TemplateDep_Coherence_2_0)" PrivateAssets="All" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="$(TemplateDep_Coherence_2_0)" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="$(TemplateDep_Coherence_2_0)" PrivateAssets="All" Condition="'$(IndividualLocalAuth)' == 'True'" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="$(TemplateDep_Coherence_2_0)" Condition=" '$(IndividualLocalAuth)' == 'True' AND '$(UseLocalDB)' != 'True'" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="$(TemplateDep_Coherence_2_0)" Condition=" '$(IndividualLocalAuth)' == 'True' AND '$(UseLocalDB)' == 'True'" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="$(TemplateDep_Coherence_2_0)" PrivateAssets="All" Condition="'$(IndividualLocalAuth)' == 'True'" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.0.0" Condition="'$(UseBrowserLink)' == 'True'" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.0" PrivateAssets="All" Condition="'$(IndividualAuth)' == 'True'" />
<PackageReference Include="Microsoft.AspNetCore" Version="$(MicrosoftAspNetCorePackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="$(MicrosoftAspNetCoreAuthenticationCookiesPackageVersion)" Condition="'$(IndividualAuth)' == 'True' OR '$(OrganizationalAuth)' == 'True'" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="$(MicrosoftAspNetCoreAuthenticationOpenIdConnectPackageVersion)" Condition="'$(OrganizationalAuth)' == 'True' OR '$(IndividualB2CAuth)' == 'True'" />
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="$(MicrosoftAspNetCoreDiagnosticsEntityFrameworkCorePackageVersion)" Condition="'$(IndividualLocalAuth)' == 'True'" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="$(MicrosoftAspNetCoreIdentityEntityFrameworkCorePackageVersion)" Condition="'$(IndividualLocalAuth)' == 'True'" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="$(MicrosoftAspNetCoreMvcPackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="$(MicrosoftAspNetCoreMvcRazorViewCompilationPackageVersion)" PrivateAssets="All" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="$(MicrosoftAspNetCoreStaticFilesPackageVersion)" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="$(MicrosoftEntityFrameworkCoreDesignPackageVersion)" PrivateAssets="All" Condition="'$(IndividualLocalAuth)' == 'True'" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="$(MicrosoftEntityFrameworkCoreSqlitePackageVersion)" Condition=" '$(IndividualLocalAuth)' == 'True' AND '$(UseLocalDB)' != 'True'" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="$(MicrosoftEntityFrameworkCoreSqlServerPackageVersion)" Condition=" '$(IndividualLocalAuth)' == 'True' AND '$(UseLocalDB)' == 'True'" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="$(MicrosoftEntityFrameworkCoreToolsPackageVersion)" PrivateAssets="All" Condition="'$(IndividualLocalAuth)' == 'True'" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="$(MicrosoftVisualStudioWebBrowserLinkPackageVersion)" Condition="'$(UseBrowserLink)' == 'True'" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="$(MicrosoftVisualStudioWebCodeGenerationDesignPackageVersion)" PrivateAssets="All" Condition="'$(IndividualAuth)' == 'True'" />
</ItemGroup>
<ItemGroup Condition="'$(NoTools)' != 'True'">
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="$(TemplateDep_Coherence_2_0)" Condition="'$(IndividualLocalAuth)' == 'True'" />
<DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="2.0.0" Condition="'$(IndividualAuth)' == 'True' OR '$(OrganizationalAuth)' == 'True'" />
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="$(MicrosoftEntityFrameworkCoreToolsDotNetPackageVersion)" Condition="'$(IndividualLocalAuth)' == 'True'" />
<DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="$(MicrosoftExtensionsSecretManagerToolsPackageVersion)" Condition="'$(IndividualAuth)' == 'True' OR '$(OrganizationalAuth)' == 'True'" />
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="$(MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion)" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework Condition="'$(TargetFrameworkOverride)' == ''">netcoreapp2.0</TargetFramework>
@ -15,31 +15,31 @@
</ItemGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' == ''">
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(TemplateDep_Coherence_2_0)" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="$(TemplateDep_Coherence_2_0)" PrivateAssets="All" Condition="'$(IndividualAuth)' == 'True'" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.0" PrivateAssets="All" Condition="'$(IndividualAuth)' == 'True'" />
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(MicrosoftAspNetCoreAllPackageVersion)" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="$(MicrosoftEntityFrameworkCoreToolsPackageVersion)" PrivateAssets="All" Condition="'$(IndividualAuth)' == 'True'" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="$(MicrosoftVisualStudioWebCodeGenerationDesignPackageVersion)" PrivateAssets="All" Condition="'$(IndividualAuth)' == 'True'" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' != ''">
<PackageReference Include="Microsoft.AspNetCore" Version="$(TemplateDep_Coherence_2_0)" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="$(TemplateDep_Coherence_2_0)" Condition="'$(IndividualAuth)' == 'True' OR '$(OrganizationalAuth)' == 'True'" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="$(TemplateDep_Coherence_2_0)" Condition="'$(OrganizationalAuth)' == 'True' OR '$(IndividualB2CAuth)' == 'True'" />
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="$(TemplateDep_Coherence_2_0)" Condition="'$(IndividualLocalAuth)' == 'True'" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="$(TemplateDep_Coherence_2_0)" Condition="'$(IndividualLocalAuth)' == 'True'" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="$(TemplateDep_Coherence_2_0)" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="$(TemplateDep_Coherence_2_0)" PrivateAssets="All" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="$(TemplateDep_Coherence_2_0)" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="$(TemplateDep_Coherence_2_0)" PrivateAssets="All" Condition="'$(IndividualLocalAuth)' == 'True'" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="$(TemplateDep_Coherence_2_0)" Condition=" '$(IndividualLocalAuth)' == 'True' AND '$(UseLocalDB)' != 'True'" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="$(TemplateDep_Coherence_2_0)" Condition=" '$(IndividualLocalAuth)' == 'True' AND '$(UseLocalDB)' == 'True'" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="$(TemplateDep_Coherence_2_0)" PrivateAssets="All" Condition="'$(IndividualLocalAuth)' == 'True'" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.0.0" Condition="'$(UseBrowserLink)' == 'True'" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.0" PrivateAssets="All" Condition="'$(IndividualAuth)' == 'True'" />
<PackageReference Include="Microsoft.AspNetCore" Version="$(MicrosoftAspNetCorePackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="$(MicrosoftAspNetCoreAuthenticationCookiesPackageVersion)" Condition="'$(IndividualAuth)' == 'True' OR '$(OrganizationalAuth)' == 'True'" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="$(MicrosoftAspNetCoreAuthenticationOpenIdConnectPackageVersion)" Condition="'$(OrganizationalAuth)' == 'True' OR '$(IndividualB2CAuth)' == 'True'" />
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="$(MicrosoftAspNetCoreDiagnosticsEntityFrameworkCorePackageVersion)" Condition="'$(IndividualLocalAuth)' == 'True'" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="$(MicrosoftAspNetCoreIdentityEntityFrameworkCorePackageVersion)" Condition="'$(IndividualLocalAuth)' == 'True'" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="$(MicrosoftAspNetCoreMvcPackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="$(MicrosoftAspNetCoreMvcRazorViewCompilationPackageVersion)" PrivateAssets="All" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="$(MicrosoftAspNetCoreStaticFilesPackageVersion)" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="$(MicrosoftEntityFrameworkCoreDesignPackageVersion)" PrivateAssets="All" Condition="'$(IndividualLocalAuth)' == 'True'" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="$(MicrosoftEntityFrameworkCoreSqlitePackageVersion)" Condition=" '$(IndividualLocalAuth)' == 'True' AND '$(UseLocalDB)' != 'True'" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="$(MicrosoftEntityFrameworkCoreSqlServerPackageVersion)" Condition=" '$(IndividualLocalAuth)' == 'True' AND '$(UseLocalDB)' == 'True'" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="$(MicrosoftEntityFrameworkCoreToolsPackageVersion)" PrivateAssets="All" Condition="'$(IndividualLocalAuth)' == 'True'" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="$(MicrosoftVisualStudioWebBrowserLinkPackageVersion)" Condition="'$(UseBrowserLink)' == 'True'" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="$(MicrosoftVisualStudioWebCodeGenerationDesignPackageVersion)" PrivateAssets="All" Condition="'$(IndividualAuth)' == 'True'" />
</ItemGroup>
<ItemGroup Condition="'$(NoTools)' != 'True'">
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="$(TemplateDep_Coherence_2_0)" Condition="'$(IndividualLocalAuth)' == 'True'" />
<DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="2.0.0" Condition="'$(IndividualAuth)' == 'True' OR '$(OrganizationalAuth)' == 'True'" />
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="$(MicrosoftEntityFrameworkCoreToolsDotNetPackageVersion)" Condition="'$(IndividualLocalAuth)' == 'True'" />
<DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="$(MicrosoftExtensionsSecretManagerToolsPackageVersion)" Condition="'$(IndividualAuth)' == 'True' OR '$(OrganizationalAuth)' == 'True'" />
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="$(MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion)" />
</ItemGroup>
</Project>

Просмотреть файл

@ -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
}
]
}

Просмотреть файл

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework Condition="'$(TargetFrameworkOverride)' == ''">netcoreapp2.0</TargetFramework>
@ -14,13 +14,13 @@
</ItemGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' == ''">
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(TemplateDep_Coherence_2_0)" />
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(MicrosoftAspNetCoreAllPackageVersion)" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' != ''">
<PackageReference Include="Microsoft.AspNetCore" Version="$(TemplateDep_Coherence_2_0)" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="$(TemplateDep_Coherence_2_0)" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="$(TemplateDep_Coherence_2_0)" PrivateAssets="All" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="$(TemplateDep_Coherence_2_0)" />
<PackageReference Include="Microsoft.AspNetCore" Version="$(MicrosoftAspNetCorePackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="$(MicrosoftAspNetCoreMvcPackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="$(MicrosoftAspNetCoreMvcRazorViewCompilationPackageVersion)" PrivateAssets="All" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="$(MicrosoftAspNetCoreStaticFilesPackageVersion)" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework Condition="'$(TargetFrameworkOverride)' == ''">netcoreapp2.0</TargetFramework>
@ -13,17 +13,17 @@
</ItemGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' == ''">
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(TemplateDep_Coherence_2_0)" />
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(MicrosoftAspNetCoreAllPackageVersion)" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' != ''">
<PackageReference Include="Microsoft.AspNetCore" Version="$(TemplateDep_Coherence_2_0)" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="$(TemplateDep_Coherence_2_0)" Condition="'$(OrganizationalAuth)' == 'True' OR '$(IndividualB2CAuth)' == 'True'" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="$(TemplateDep_Coherence_2_0)" />
<PackageReference Include="Microsoft.AspNetCore" Version="$(MicrosoftAspNetCorePackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="$(MicrosoftAspNetCoreAuthenticationJwtBearerPackageVersion)" Condition="'$(OrganizationalAuth)' == 'True' OR '$(IndividualB2CAuth)' == 'True'" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="$(MicrosoftAspNetCoreMvcPackageVersion)" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="2.0.0" Condition="'$(IndividualAuth)' == 'True' OR '$(OrganizationalAuth)' == 'True'" />
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
<DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="$(MicrosoftExtensionsSecretManagerToolsPackageVersion)" Condition="'$(IndividualAuth)' == 'True' OR '$(OrganizationalAuth)' == 'True'" />
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="$(MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion)" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework Condition="'$(TargetFrameworkOverride)' == ''">netcoreapp2.0</TargetFramework>
@ -12,11 +12,11 @@
</ItemGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' == ''">
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(TemplateDep_Coherence_2_0)" />
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(MicrosoftAspNetCoreAllPackageVersion)" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' != ''">
<PackageReference Include="Microsoft.AspNetCore" Version="$(TemplateDep_Coherence_2_0)" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="$(TemplateDep_Coherence_2_0)" />
<PackageReference Include="Microsoft.AspNetCore" Version="$(MicrosoftAspNetCorePackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="$(MicrosoftAspNetCoreMvcPackageVersion)" />
</ItemGroup>
</Project>

2
src/Microsoft.DotNet.Web.Spa.ProjectTemplates/.gitignore поставляемый Normal file
Просмотреть файл

@ -0,0 +1,2 @@
# This file is generated by the build
content/*/.template.config/template.json

Просмотреть файл

@ -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 @@
]
}
]
}
}

Просмотреть файл

@ -1,6 +0,0 @@
<Project>
<!--
This file intentionally left blank to ensure the template projects
are independent from the template package build config.
-->
</Project>

Просмотреть файл

@ -1,10 +1,36 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\Directory.Build.props" />
<Import Project="..\Directory.Build.targets" />
<Project>
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<NuspecFile>Microsoft.DotNet.Web.Spa.ProjectTemplates.nuspec</NuspecFile>
</PropertyGroup>
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
<!-- Set this last to ensure the properties get the final versions which may be overridden by CI. -->
<PropertyGroup>
<GeneratedContentProperties>
MicrosoftAspNetCoreAllPackageVersion=$(MicrosoftAspNetCoreAllPackageVersion);
MicrosoftAspNetCorePackageVersion=$(MicrosoftAspNetCorePackageVersion);
MicrosoftAspNetCoreMvcPackageVersion=$(MicrosoftAspNetCoreMvcPackageVersion);
MicrosoftAspNetCoreSpaServicesPackageVersion=$(MicrosoftAspNetCoreSpaServicesPackageVersion);
MicrosoftAspNetCoreStaticFilesPackageVersion=$(MicrosoftAspNetCoreStaticFilesPackageVersion);
MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion=$(MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion);
</GeneratedContentProperties>
</PropertyGroup>
<ItemGroup>
<GeneratedContent Include="Angular-CSharp.template.json.in" OutputPath="content\Angular-CSharp\.template.config\template.json">
<Properties>$(GeneratedContentProperties)</Properties>
</GeneratedContent>
<GeneratedContent Include="React-CSharp.template.json.in" OutputPath="content\React-CSharp\.template.config\template.json">
<Properties>$(GeneratedContentProperties)</Properties>
</GeneratedContent>
<GeneratedContent Include="ReactRedux-CSharp.template.json.in" OutputPath="content\ReactRedux-CSharp\.template.config\template.json">
<Properties>$(GeneratedContentProperties)</Properties>
</GeneratedContent>
</ItemGroup>
</Project>

Просмотреть файл

@ -17,9 +17,9 @@
</packageTypes>
</metadata>
<files>
<file
<file
src="content/**/*"
exclude="**/node_modules/**;**/bin/**;**/obj/**;**/.vs/**;**/.vscode/**;**/ClientApp/dist/**;**/wwwroot/dist/**"
exclude="**/node_modules/**;**/bin/**;**/obj/**;**/.vs/**;**/.vscode/**;**/ClientApp/dist/**;**/wwwroot/dist/**;content/Directory.Build.*"
target="Content" />
</files>
</package>

Просмотреть файл

@ -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 @@
]
}
]
}
}

Просмотреть файл

@ -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 @@
]
}
]
}
}

Просмотреть файл

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework Condition="'$(TargetFrameworkOverride)' == ''">netcoreapp2.0</TargetFramework>
@ -9,17 +9,17 @@
</PropertyGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' == ''">
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(MicrosoftAspNetCoreAllPackageVersion)" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' != ''">
<PackageReference Include="Microsoft.AspNetCore" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore.SpaServices" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore" Version="$(MicrosoftAspNetCorePackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="$(MicrosoftAspNetCoreMvcPackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.SpaServices" Version="$(MicrosoftAspNetCoreSpaServicesPackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="$(MicrosoftAspNetCoreStaticFilesPackageVersion)" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="$(MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion)" />
</ItemGroup>
<ItemGroup>
@ -59,4 +59,4 @@
</ItemGroup>
</Target>
</Project>
</Project>

Просмотреть файл

@ -0,0 +1,7 @@
<Project>
<Import Project="..\..\..\Directory.Build.targets" />
<!--
This file intentionally left mostly blank to ensure the template projects
are independent from the template package build config.
-->
</Project>

Просмотреть файл

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework Condition="'$(TargetFrameworkOverride)' == ''">netcoreapp2.0</TargetFramework>
@ -9,17 +9,22 @@
</PropertyGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' == ''">
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(MicrosoftAspNetCoreAllPackageVersion)" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' != ''">
<PackageReference Include="Microsoft.AspNetCore" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore.SpaServices" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore" Version="$(MicrosoftAspNetCorePackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="$(MicrosoftAspNetCoreMvcPackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.SpaServices" Version="$(MicrosoftAspNetCoreSpaServicesPackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="$(MicrosoftAspNetCoreStaticFilesPackageVersion)" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="$(MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion)" />
</ItemGroup>
<ItemGroup>
<!-- Files not to publish (note that the 'dist' subfolders are re-added below) -->
<Content Remove="ClientApp\**" />
</ItemGroup>
<!--/-:cnd:noEmit -->
@ -46,7 +51,7 @@
<!-- Include the newly-built files in the publish output -->
<ItemGroup>
<DistFiles Include="wwwroot\dist\**" />
<DistFiles Include="wwwroot\dist\**; ClientApp\dist\**" />
<ResolvedFileToPublish Include="@(DistFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
<RelativePath>%(DistFiles.Identity)</RelativePath>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
@ -54,4 +59,4 @@
</ItemGroup>
</Target>
</Project>
</Project>

Просмотреть файл

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework Condition="'$(TargetFrameworkOverride)' == ''">netcoreapp2.0</TargetFramework>
@ -9,17 +9,17 @@
</PropertyGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' == ''">
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(MicrosoftAspNetCoreAllPackageVersion)" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' != ''">
<PackageReference Include="Microsoft.AspNetCore" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore.SpaServices" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="$(TemplateDep_Coherence_2_1)" />
<PackageReference Include="Microsoft.AspNetCore" Version="$(MicrosoftAspNetCorePackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="$(MicrosoftAspNetCoreMvcPackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.SpaServices" Version="$(MicrosoftAspNetCoreSpaServicesPackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="$(MicrosoftAspNetCoreStaticFilesPackageVersion)" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="$(MicrosoftVisualStudioWebCodeGenerationToolsPackageVersion)" />
</ItemGroup>
<ItemGroup>
@ -59,4 +59,4 @@
</ItemGroup>
</Target>
</Project>
</Project>

Просмотреть файл

@ -0,0 +1,10 @@
<Project>
<Target Name="SetPackageProperties" BeforeTargets="GenerateNuspec">
<PropertyGroup>
<NuspecProperties>
$(NuspecProperties);
version=$(PackageVersion);
</NuspecProperties>
</PropertyGroup>
</Target>
</Project>

Просмотреть файл

@ -0,0 +1,4 @@
<Project>
<Import Project="..\Directory.Build.targets" />
<Import Project="GenerateTestProps.targets" />
</Project>

Просмотреть файл

@ -0,0 +1,8 @@
<Project>
<Target Name="GenerateTestProps" BeforeTargets="CoreCompile">
<Sdk_GenerateFileFromTemplate
TemplateFile="$(MSBuildThisFileDirectory)TemplateTests.props.in"
Properties="RestoreSources=$([MSBuild]::Escape($(RestoreSources)));RuntimeFrameworkVersion=$(RuntimeFrameworkVersion)"
OutputPath="$(OutputPath)TemplateTests.props" />
</Target>
</Project>

Просмотреть файл

@ -0,0 +1,7 @@
<Project>
<PropertyGroup>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<RestoreSources>${RestoreSources}</RestoreSources>
<RuntimeFrameworkVersion>${RuntimeFrameworkVersion}</RuntimeFrameworkVersion>
</PropertyGroup>
</Project>

Просмотреть файл

@ -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);

Просмотреть файл

@ -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}");

Просмотреть файл

@ -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);

Просмотреть файл

@ -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}");
}
}
}

Просмотреть файл

@ -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"), "<Project />");
File.WriteAllText(Path.Combine(TemplateOutputDir, "Directory.Build.props"), "<Project><Import Project=\"../../TemplateTests.props\" /></Project>");
File.WriteAllText(Path.Combine(TemplateOutputDir, "Directory.Build.targets"), "<Project />");
}
@ -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)

Просмотреть файл

@ -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);

Просмотреть файл

@ -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");

Просмотреть файл

@ -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();

Просмотреть файл

@ -5,13 +5,15 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.Security.Permissions" Version="$(SystemSecurityPermissionsPackageVersion)" />
<PackageReference Include="Internal.AspNetCore.Sdk" Version="$(InternalAspNetCoreSdkPackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.Testing" Version="$(MicrosoftAspNetCoreTestingPackageVersion)" />
<PackageReference Include="Microsoft.Extensions.CommandLineUtils.Sources" Version="$(MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion)" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNETTestSdkPackageVersion)" />
<PackageReference Include="Internal.AspNetCore.Sdk" Version="$(InternalAspNetCoreSdkPackageVersion)" PrivateAssets="All" />
<PackageReference Include="Selenium.Firefox.WebDriver" Version="$(SeleniumFirefoxWebDriverPackageVersion)" />
<PackageReference Include="Selenium.Support" Version="$(SeleniumSupportPackageVersion)" NoWarn="NU1701" />
<PackageReference Include="Selenium.WebDriver" Version="$(SeleniumWebDriverPackageVersion)" NoWarn="NU1701" />
<PackageReference Include="Selenium.WebDriver.MicrosoftDriver" Version="$(SeleniumWebDriverMicrosoftDriverPackageVersion)" />
<PackageReference Include="Selenium.WebDriver" Version="$(SeleniumWebDriverPackageVersion)" NoWarn="NU1701" />
<PackageReference Include="System.Security.Permissions" Version="$(SystemSecurityPermissionsPackageVersion)" />
<PackageReference Include="xunit" Version="$(XunitPackageVersion)" />
<PackageReference Include="xunit.analyzers" Version="$(XunitAnalyzersPackageVersion)" />
<PackageReference Include="xunit.runner.visualstudio" Version="$(XunitRunnerVisualStudioPackageVersion)" />

Просмотреть файл

@ -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);

Просмотреть файл

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.Net.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<OutputType>Library</OutputType>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Build.Framework" Version="$(MicrosoftBuildFrameworkPackageVersion)" />
<PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildUtilitiesCorePackageVersion)" />
</ItemGroup>
</Project>

Просмотреть файл

@ -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;
}
}
}

Просмотреть файл

@ -4,6 +4,8 @@
<VersionSuffix>rtm</VersionSuffix>
<PackageVersion Condition="'$(IsFinalBuild)' == 'true' AND '$(VersionSuffix)' == 'rtm' ">$(VersionPrefix)</PackageVersion>
<PackageVersion Condition="'$(IsFinalBuild)' == 'true' AND '$(VersionSuffix)' != 'rtm' ">$(VersionPrefix)-$(VersionSuffix)-final</PackageVersion>
<BuildNumber Condition="'$(BuildNumber)' == ''">t000</BuildNumber>
<VersionSuffix Condition="'$(VersionSuffix)' != '' And '$(BuildNumber)' != ''">$(VersionSuffix)-$(BuildNumber)</VersionSuffix>
<VersionSuffix Condition="'$(VersionSuffix)' != '' And '$(VersionMetadata)' != ''">$(VersionSuffix)+$(VersionMetadata)</VersionSuffix>
</PropertyGroup>
</Project>