Просмотр исходного кода

Merge branch 'master' into merge/release/5.0-to-master

Sébastien Ros 5 лет назад
Родитель
Сommit
f3fb47dcfc
100 измененных файлов с 1278 добавлено и 789 удалено
  1. 59 0
      .azure/pipelines/blazor-daily-tests.yml
  2. 5 18
      .github/ISSUE_TEMPLATE/razor_tooling.md
  3. 1 1
      Directory.Build.targets
  4. 2 0
      NuGet.config
  5. 1 1
      docs/TriageProcess.md
  6. 150 150
      eng/Version.Details.xml
  7. 78 78
      eng/Versions.props
  8. 7 0
      eng/helix/content/RunTests/RunTestsOptions.cs
  9. 12 9
      eng/helix/content/RunTests/TestRunner.cs
  10. 4 4
      eng/helix/content/runtests.cmd
  11. 4 4
      eng/helix/content/runtests.sh
  12. 2 3
      src/Components/Components/src/ComponentBase.cs
  13. 2 2
      src/Framework/Directory.Build.props
  14. 1 1
      src/Installers/Debian/Runtime/Debian.Runtime.debproj
  15. 2 2
      src/Installers/Debian/TargetingPack/Debian.TargetingPack.debproj
  16. 3 3
      src/Installers/Rpm/Rpm.Runtime.Common.targets
  17. 3 3
      src/Installers/Rpm/TargetingPack/Rpm.TargetingPack.rpmproj
  18. 1 1
      src/Installers/Windows/AspNetCoreModule-Setup/Directory.Build.props
  19. 3 3
      src/Installers/Windows/Wix.targets
  20. 19 2
      src/Middleware/CORS/src/Infrastructure/CorsPolicy.cs
  21. 1 1
      src/Middleware/CORS/src/Infrastructure/CorsService.cs
  22. 15 1
      src/Middleware/CORS/test/UnitTests/CorsPolicyTests.cs
  23. 17 0
      src/Middleware/CORS/test/UnitTests/CorsServiceTests.cs
  24. 5 13
      src/Mvc/Mvc.Core/src/Builder/ControllerEndpointRouteBuilderExtensions.cs
  25. 1 0
      src/Mvc/Mvc.Core/src/DependencyInjection/MvcCoreServiceCollectionExtensions.cs
  26. 26 0
      src/Mvc/Mvc.Core/src/DependencyInjection/OrderedEndpointsSequenceProvider.cs
  27. 27 14
      src/Mvc/Mvc.Core/src/Routing/ControllerActionEndpointDataSource.cs
  28. 2 2
      src/Mvc/Mvc.Core/test/Routing/ControllerActionEndpointDataSourceTest.cs
  29. 2 11
      src/Mvc/Mvc.RazorPages/src/Builder/RazorPagesEndpointRouteBuilderExtensions.cs
  30. 29 3
      src/Mvc/Mvc.RazorPages/src/Infrastructure/PageActionEndpointDataSource.cs
  31. 2 2
      src/Mvc/Mvc.RazorPages/test/Infrastructure/PageActionEndpointDataSourceTest.cs
  32. 3 2
      src/Mvc/benchmarks/Microsoft.AspNetCore.Mvc.Performance/ControllerActionEndpointDatasourceBenchmark.cs
  33. 8 2
      src/Mvc/test/Mvc.FunctionalTests/HtmlGenerationTest.cs
  34. 165 0
      src/Mvc/test/Mvc.FunctionalTests/RoutingDynamicOrderTest.cs
  35. 30 0
      src/Mvc/test/WebSites/RoutingWebSite/Controllers/DynamicOrderController.cs
  36. 1 1
      src/Mvc/test/WebSites/RoutingWebSite/Pages/DynamicPage.cshtml
  37. 132 0
      src/Mvc/test/WebSites/RoutingWebSite/StartupForDynamicOrder.cs
  38. 1 1
      src/ProjectTemplates/Web.ProjectTemplates/Microsoft.DotNet.Web.ProjectTemplates.csproj
  39. 1 1
      src/ProjectTemplates/Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.csproj
  40. 1 1
      src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/src/api-authorization/login-menu/login-menu.component.ts
  41. 1 0
      src/ProjectTemplates/test/WorkerTemplateTest.cs
  42. 1 1
      src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/AttributeDirectiveWithViewImports_DesignTime.codegen.html
  43. 6 6
      src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/BasicComponent_DesignTime.codegen.html
  44. 6 6
      src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Basic_DesignTime.codegen.html
  45. 11 11
      src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives_DesignTime.codegen.html
  46. 2 2
      src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InheritsViewModel_DesignTime.codegen.html
  47. 2 2
      src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InheritsWithViewImports_DesignTime.codegen.html
  48. 3 3
      src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InjectWithModel_DesignTime.codegen.html
  49. 5 5
      src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InjectWithSemicolon_DesignTime.codegen.html
  50. 1 1
      src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Inject_DesignTime.codegen.html
  51. 1 1
      src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InvalidNamespaceAtEOF_DesignTime.codegen.html
  52. 1 1
      src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/MalformedPageDirective_DesignTime.codegen.html
  53. 4 4
      src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ModelExpressionTagHelper_DesignTime.codegen.html
  54. 1 1
      src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Model_DesignTime.codegen.html
  55. 2 2
      src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/MultipleModels_DesignTime.codegen.html
  56. 2 2
      src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/PageWithNamespace_DesignTime.codegen.html
  57. 1 1
      src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorPageWithNoLeadingPageDirective_DesignTime.codegen.html
  58. 10 10
      src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorPagesWithRouteTemplate_DesignTime.codegen.html
  59. 16 16
      src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorPagesWithoutModel_DesignTime.codegen.html
  60. 20 20
      src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorPages_DesignTime.codegen.html
  61. 8 8
      src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Sections_DesignTime.codegen.html
  62. 4 4
      src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/UsingDirectives_DesignTime.codegen.html
  63. 5 5
      src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ViewComponentTagHelper_DesignTime.codegen.html
  64. 1 1
      src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ViewWithNamespace_DesignTime.codegen.html
  65. 1 1
      src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/_ViewImports_DesignTime.codegen.html
  66. 3 3
      src/Razor/Microsoft.AspNetCore.Razor.Language/src/RazorHtmlWriter.cs
  67. 1 1
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/AddTagHelperDirective_DesignTime.codegen.html
  68. 4 4
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/AttributeDirective_DesignTime.codegen.html
  69. 18 18
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Await_DesignTime.codegen.html
  70. 25 25
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Blocks_DesignTime.codegen.html
  71. 32 32
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CSharp7_DesignTime.codegen.html
  72. 52 52
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CSharp8_DesignTime.codegen.html
  73. 1 1
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CodeBlockAtEOF_DesignTime.codegen.html
  74. 4 4
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CodeBlockWithTextElement_DesignTime.codegen.html
  75. 5 5
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CodeBlock_DesignTime.codegen.html
  76. 12 12
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ConditionalAttributes_DesignTime.codegen.html
  77. 8 8
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/DesignTime_DesignTime.codegen.html
  78. 1 1
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/EmptyCodeBlock_DesignTime.codegen.html
  79. 1 1
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/EmptyExplicitExpression_DesignTime.codegen.html
  80. 3 3
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/EmptyImplicitExpressionInCode_DesignTime.codegen.html
  81. 1 1
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/EmptyImplicitExpression_DesignTime.codegen.html
  82. 1 1
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExplicitExpressionAtEOF_DesignTime.codegen.html
  83. 1 1
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExplicitExpressionWithMarkup_DesignTime.codegen.html
  84. 1 1
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExplicitExpression_DesignTime.codegen.html
  85. 11 11
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExpressionsInCode_DesignTime.codegen.html
  86. 5 5
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/FunctionsBlockMinimal_DesignTime.codegen.html
  87. 9 9
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/FunctionsBlock_DesignTime.codegen.html
  88. 3 3
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/HiddenSpansInCode_DesignTime.codegen.html
  89. 4 4
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Implements_DesignTime.codegen.html
  90. 1 1
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ImplicitExpressionAtEOF_DesignTime.codegen.html
  91. 3 3
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ImplicitExpression_DesignTime.codegen.html
  92. 18 18
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives_DesignTime.codegen.html
  93. 2 2
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Inherits_DesignTime.codegen.html
  94. 2 2
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InlineBlocks_DesignTime.codegen.html
  95. 26 26
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Instrumented_DesignTime.codegen.html
  96. 5 5
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/MarkupInCodeBlock_DesignTime.codegen.html
  97. 36 36
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Markup_InCodeBlocks_DesignTime.codegen.html
  98. 6 6
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NestedCSharp_DesignTime.codegen.html
  99. 4 4
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NestedCodeBlocks_DesignTime.codegen.html
  100. 26 26
      src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NoLinePragmas_DesignTime.codegen.html

+ 59 - 0
.azure/pipelines/blazor-daily-tests.yml

@@ -0,0 +1,59 @@
+# Uses Scheduled Triggers, which aren't supported in YAML yet.
+# https://docs.microsoft.com/en-us/azure/devops/pipelines/build/triggers?view=vsts&tabs=yaml#scheduled
+
+# Daily Tests for Blazor
+# These use Sauce Labs resources, hence they run daily rather than per-commit.
+
+# We just need one Windows machine because all it does is trigger SauceLabs.
+variables:
+  SAUCE_CONNECT_DOWNLOAD_ON_INSTALL: true
+  E2ETESTS_SauceTest: true
+  E2ETESTS_Sauce__TunnelIdentifier: 'blazor-e2e-sc-proxy-tunnel'
+  E2ETESTS_Sauce__HostName: 'sauce.local'
+jobs:
+- template: jobs/default-build.yml
+  parameters:
+    buildDirectory: src/Components
+    isTestingJob: true
+    agentOs: Windows
+    jobName: BlazorDailyTests
+    jobDisplayName: "Blazor Daily Tests"
+    afterBuild:
+
+    # macOS/Safari
+    - script: 'dotnet test --filter "StandaloneAppTest"'
+      workingDirectory: 'src/Components/test/E2ETest'
+      displayName: 'Run Blazor tests - macOS/Safari'
+      condition: succeededOrFailed()
+      env:
+        # Secrets need to be explicitly mapped to env variables.
+        E2ETESTS_Sauce__Username: '$(asplab-sauce-labs-username)'
+        E2ETESTS_Sauce__AccessKey: '$(asplab-sauce-labs-access-key)'
+        # Set platform/browser configuration.
+        E2ETESTS_Sauce__TestName: 'Blazor Daily Tests - macOS/Safari'
+        E2ETESTS_Sauce__PlatformName: 'macOS 10.14'
+        E2ETESTS_Sauce__BrowserName: 'Safari'
+        # Need to explicitly set version here because some older versions don't support timeouts in Safari.
+        E2ETESTS_Sauce__SeleniumVersion: '3.4.0'
+
+    # Android/Chrome
+    - script: 'dotnet test --filter "StandaloneAppTest"'
+      workingDirectory: 'src/Components/test/E2ETest'
+      displayName: 'Run Blazor tests - Android/Chrome'
+      condition: succeededOrFailed()
+      env:
+        # Secrets need to be explicitly mapped to env variables.
+        E2ETESTS_Sauce__Username: '$(asplab-sauce-labs-username)'
+        E2ETESTS_Sauce__AccessKey: '$(asplab-sauce-labs-access-key)'
+        # Set platform/browser configuration.
+        E2ETESTS_Sauce__TestName: 'Blazor Daily Tests - Android/Chrome'
+        E2ETESTS_Sauce__PlatformName: 'Android'
+        E2ETESTS_Sauce__PlatformVersion: '10.0'
+        E2ETESTS_Sauce__BrowserName: 'Chrome'
+        E2ETESTS_Sauce__DeviceName: 'Android GoogleAPI Emulator'
+        E2ETESTS_Sauce__DeviceOrientation: 'portrait'
+        E2ETESTS_Sauce__AppiumVersion: '1.9.1'
+    artifacts:
+    - name: Windows_Logs
+      path: ../../artifacts/log/
+      publishOnError: true

+ 5 - 18
.github/ISSUE_TEMPLATE/razor_tooling.md

@@ -34,26 +34,13 @@ We will close this issue if:
 
 Please collect the data below before reporting your issue to aid us in diagnosing the root cause.
 
-#### Activity log
+#### Activity log (only needed if VS crashes)
 [Here](https://docs.microsoft.com/en-us/visualstudio/extensibility/how-to-use-the-activity-log?view=vs-2019#to-examine-the-activity-log) are the instructions on how to generate/acquire one. Note that GitHub does not generally allow .xml files to be uploaded with issues.
 
-#### Razor Language Server Client log
-<!-- In Visual Studio's `Output` window, the drop-down contains a `Razor Language Server Client` item. Include that below. -->
-<details>
-<summary>Razor Language Server Client Log Output</summary>
-
-Paste log output here
-
-</details>
-
-#### HTML Language Server Client log
-<!-- In Visual Studio's `Output` window, the drop-down contains a `HtmlyLanguageClient` item. Include that below. -->
-<details>
-<summary>HTML Language Server Client Log Output</summary>
-
-Paste log output here
-
-</details>
+#### Language Server logs
+1. Run Visual Studio with the [/Log](https://docs.microsoft.com/en-us/visualstudio/ide/reference/log-devenv-exe?view=vs-2019) command line switch
+2. Reproduce the issue
+3. Provide the logs located at `%Temp%\VisualStudio\LSP`
 
 ### Further technical details
 - VS version (Help => About Microsoft Visual Studio, i.e. 16.8.0 Preview 1 30313.27...). If in Codespaces there will be two versions (server and client), please provide both.

+ 1 - 1
Directory.Build.targets

@@ -131,7 +131,7 @@
   </ItemGroup>
 
   <PropertyGroup Condition="'$(Language)' == 'C#'">
-    <AssemblyVersion>$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).0.0</AssemblyVersion>
+    <AssemblyVersion>$(AspNetCoreMajorMinorVersion).0.0</AssemblyVersion>
   </PropertyGroup>
 
   <PropertyGroup>

+ 2 - 0
NuGet.config

@@ -6,6 +6,8 @@
     <add key="dotnet-tools" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" />
     <add key="dotnet5" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json" />
     <add key="dotnet5-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5-transport/nuget/v3/index.json" />
+    <add key="dotnet6" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json" />
+    <add key="dotnet6-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6-transport/nuget/v3/index.json" />
     <add key="roslyn" value="https://dotnet.myget.org/F/roslyn/api/v3/index.json" />
     <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
     <add key="roslyn-tools" value="https://dotnet.myget.org/F/roslyn-tools/api/v3/index.json" />

+ 1 - 1
docs/TriageProcess.md

@@ -53,7 +53,7 @@ We may not investigate issues which haven't received many votes/comments and cho
 For some feature requests and bug reports, depending on the user involvement, we may choose to move these to the backlog at this point. What this means, is that they will not be looked at again up until the next major release planning.
 
 ## Release Planning
-Once we approach to the end of the release cylce (.NET Core 3, .NET 5) we will look through the accumulated issues in the `Backlog` milestone. This is a long process as the amount of issues accumulated in this milestone is quite large.
+Once we approach to the end of the release cycle (.NET Core 3, .NET 5) we will look through the accumulated issues in the `Backlog` milestone. This is a long process as the amount of issues accumulated in this milestone is quite large.
 
 We will try to prioritize issues with most community requests / upvotes assuming these are aligned with our goals.
 Issues, which we will think are candidates for the upcoming release, will be moved to the `Next Sprint Planning` milestone.

+ 150 - 150
eng/Version.Details.xml

@@ -13,309 +13,309 @@
       <Uri>https://github.com/dotnet/blazor</Uri>
       <Sha>cc449601d638ffaab58ae9487f0fd010bb178a12</Sha>
     </Dependency>
-    <Dependency Name="dotnet-ef" Version="5.0.0-rc.1.20431.2">
+    <Dependency Name="dotnet-ef" Version="6.0.0-alpha.1.20426.2">
       <Uri>https://github.com/dotnet/efcore</Uri>
-      <Sha>d38d7df8a04c571c4ef629d173ae01a7cb026fab</Sha>
+      <Sha>64274fa1eab10cfd2cd1d41b9e3aec7e3c562304</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="5.0.0-rc.1.20431.2">
+    <Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="6.0.0-alpha.1.20426.2">
       <Uri>https://github.com/dotnet/efcore</Uri>
-      <Sha>d38d7df8a04c571c4ef629d173ae01a7cb026fab</Sha>
+      <Sha>64274fa1eab10cfd2cd1d41b9e3aec7e3c562304</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="5.0.0-rc.1.20431.2">
+    <Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="6.0.0-alpha.1.20426.2">
       <Uri>https://github.com/dotnet/efcore</Uri>
-      <Sha>d38d7df8a04c571c4ef629d173ae01a7cb026fab</Sha>
+      <Sha>64274fa1eab10cfd2cd1d41b9e3aec7e3c562304</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="5.0.0-rc.1.20431.2">
+    <Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="6.0.0-alpha.1.20426.2">
       <Uri>https://github.com/dotnet/efcore</Uri>
-      <Sha>d38d7df8a04c571c4ef629d173ae01a7cb026fab</Sha>
+      <Sha>64274fa1eab10cfd2cd1d41b9e3aec7e3c562304</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.0-rc.1.20431.2">
+    <Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.0-alpha.1.20426.2">
       <Uri>https://github.com/dotnet/efcore</Uri>
-      <Sha>d38d7df8a04c571c4ef629d173ae01a7cb026fab</Sha>
+      <Sha>64274fa1eab10cfd2cd1d41b9e3aec7e3c562304</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="5.0.0-rc.1.20431.2">
+    <Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="6.0.0-alpha.1.20426.2">
       <Uri>https://github.com/dotnet/efcore</Uri>
-      <Sha>d38d7df8a04c571c4ef629d173ae01a7cb026fab</Sha>
+      <Sha>64274fa1eab10cfd2cd1d41b9e3aec7e3c562304</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.EntityFrameworkCore" Version="5.0.0-rc.1.20431.2">
+    <Dependency Name="Microsoft.EntityFrameworkCore" Version="6.0.0-alpha.1.20426.2">
       <Uri>https://github.com/dotnet/efcore</Uri>
-      <Sha>d38d7df8a04c571c4ef629d173ae01a7cb026fab</Sha>
+      <Sha>64274fa1eab10cfd2cd1d41b9e3aec7e3c562304</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.EntityFrameworkCore.Design" Version="5.0.0-rc.1.20431.2">
+    <Dependency Name="Microsoft.EntityFrameworkCore.Design" Version="6.0.0-alpha.1.20426.2">
       <Uri>https://github.com/dotnet/efcore</Uri>
-      <Sha>d38d7df8a04c571c4ef629d173ae01a7cb026fab</Sha>
+      <Sha>64274fa1eab10cfd2cd1d41b9e3aec7e3c562304</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Caching.Abstractions" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Caching.Abstractions" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Caching.Memory" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Caching.Memory" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.Abstractions" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Configuration.Abstractions" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.Binder" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Configuration.Binder" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.CommandLine" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Configuration.CommandLine" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.FileExtensions" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Configuration.FileExtensions" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.Ini" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Configuration.Ini" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.Json" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Configuration.Json" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.UserSecrets" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Configuration.UserSecrets" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.Xml" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Configuration.Xml" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Configuration" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.DependencyInjection.Abstractions" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.DependencyInjection.Abstractions" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.DependencyInjection" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.DependencyInjection" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.FileProviders.Abstractions" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.FileProviders.Abstractions" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.FileProviders.Composite" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.FileProviders.Composite" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.FileProviders.Physical" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.FileProviders.Physical" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.FileSystemGlobbing" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.FileSystemGlobbing" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.HostFactoryResolver.Sources" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.HostFactoryResolver.Sources" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Hosting.Abstractions" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Hosting.Abstractions" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Hosting" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Hosting" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Http" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Http" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging.Abstractions" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Logging.Abstractions" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging.Configuration" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Logging.Configuration" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging.Console" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Logging.Console" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging.Debug" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Logging.Debug" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging.EventSource" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Logging.EventSource" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging.EventLog" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Logging.EventLog" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging.TraceSource" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Logging.TraceSource" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Logging" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Options.ConfigurationExtensions" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Options.ConfigurationExtensions" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Options.DataAnnotations" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Options.DataAnnotations" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Options" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Options" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Primitives" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Primitives" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Internal.Transport" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.Internal.Transport" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Win32.Registry" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Win32.Registry" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Win32.SystemEvents" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Win32.SystemEvents" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="System.ComponentModel.Annotations" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="System.ComponentModel.Annotations" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="System.Diagnostics.DiagnosticSource" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="System.Diagnostics.DiagnosticSource" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="System.Diagnostics.EventLog" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="System.Diagnostics.EventLog" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="System.DirectoryServices.Protocols" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="System.DirectoryServices.Protocols" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="System.Drawing.Common" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="System.Drawing.Common" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="System.IO.Pipelines" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="System.IO.Pipelines" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="System.Net.Http.Json" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="System.Net.Http.Json" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="System.Net.Http.WinHttpHandler" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="System.Net.Http.WinHttpHandler" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="System.Net.WebSockets.WebSocketProtocol" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="System.Net.WebSockets.WebSocketProtocol" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="System.Reflection.Metadata" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="System.Reflection.Metadata" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="System.Resources.Extensions" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="System.Resources.Extensions" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="System.Runtime.CompilerServices.Unsafe" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="System.Runtime.CompilerServices.Unsafe" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
     <!-- System.Security.AccessControl should only be referenced in Dependencies.props and RTMVersions.csproj. -->
-    <Dependency Name="System.Security.AccessControl" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="System.Security.AccessControl" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="System.Security.Cryptography.Cng" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="System.Security.Cryptography.Cng" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="System.Security.Cryptography.Pkcs" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="System.Security.Cryptography.Pkcs" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="System.Security.Cryptography.Xml" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="System.Security.Cryptography.Xml" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="System.Security.Permissions" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="System.Security.Permissions" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="System.Security.Principal.Windows" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="System.Security.Principal.Windows" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="System.ServiceProcess.ServiceController" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="System.ServiceProcess.ServiceController" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="System.Text.Encodings.Web" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="System.Text.Encodings.Web" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="System.Text.Json" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="System.Text.Json" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="System.Threading.Channels" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="System.Threading.Channels" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="System.Windows.Extensions" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="System.Windows.Extensions" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.DependencyModel" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.Extensions.DependencyModel" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.NETCore.App.Ref" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.NETCore.App.Ref" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
     <!--
          Win-x64 is used here because we have picked an arbitrary runtime identifier to flow the version of the latest NETCore.App runtime.
          All Runtime.$rid packages should have the same version.
     -->
-    <Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.NETCore.App.Internal" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.NETCore.App.Internal" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.NETCore.BrowserDebugHost.Transport" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.NETCore.BrowserDebugHost.Transport" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
   </ProductDependencies>
   <ToolsetDependencies>
     <!-- Listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
-    <Dependency Name="Microsoft.NETCore.Platforms" Version="5.0.0-rc.1.20430.6">
+    <Dependency Name="Microsoft.NETCore.Platforms" Version="6.0.0-alpha.1.20428.2">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>95baa7ae2dca00a29a68b5bad14d8331dd5dc570</Sha>
+      <Sha>e6b9b48f3466c25e17509137e3931229f406b425</Sha>
     </Dependency>
     <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="5.0.0-beta.20427.5">
       <Uri>https://github.com/dotnet/arcade</Uri>
@@ -325,9 +325,9 @@
       <Uri>https://github.com/dotnet/arcade</Uri>
       <Sha>f2b7fe854a0b1f78c04dfc065164d6d61040f5b8</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Net.Compilers.Toolset" Version="3.8.0-2.20407.3">
+    <Dependency Name="Microsoft.Net.Compilers.Toolset" Version="3.8.0-2.20428.3">
       <Uri>https://github.com/dotnet/roslyn</Uri>
-      <Sha>dba2fa57432b4bd9cc7880e2c6fe3acdd01bba3c</Sha>
+      <Sha>24d279c313c40d93dd249e40170faf796353bd6d</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>

+ 78 - 78
eng/Versions.props

@@ -29,18 +29,18 @@
     <DisableServicingFeatures Condition=" '$(DisableServicingFeatures)' == '' AND '$(StabilizePackageVersion)' != 'true' ">true</DisableServicingFeatures>
     <!-- Servicing builds have different characteristics for the way dependencies, baselines, and versions are handled. -->
     <IsServicingBuild Condition=" '$(DisableServicingFeatures)' != 'true' AND '$(PreReleaseVersionLabel)' == 'servicing' ">true</IsServicingBuild>
-    <VersionPrefix>$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).$(AspNetCorePatchVersion)</VersionPrefix>
+    <VersionPrefix>$(AspNetCoreMajorMinorVersion).$(AspNetCorePatchVersion)</VersionPrefix>
     <!-- TargetingPackVersionPrefix is used by projects, like .deb and .rpm, which use slightly different version formats. -->
     <TargetingPackVersionPrefix>$(VersionPrefix)</TargetingPackVersionPrefix>
     <!-- Targeting packs do not produce patch versions in servicing builds. No API changes are allowed in patches. -->
-    <TargetingPackVersionPrefix Condition="'$(IsTargetingPackBuilding)' != 'true'">$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).0</TargetingPackVersionPrefix>
+    <TargetingPackVersionPrefix Condition="'$(IsTargetingPackBuilding)' != 'true'">$(AspNetCoreMajorMinorVersion).0</TargetingPackVersionPrefix>
     <ExperimentalVersionPrefix>0.3.$(AspNetCorePatchVersion)</ExperimentalVersionPrefix>
     <!-- ANCM versioning is intentionally 10 + AspNetCoreMajorVersion because earlier versions of ANCM shipped as 8.x. -->
     <AspNetCoreModuleVersionMajor>$([MSBuild]::Add(10, $(AspNetCoreMajorVersion)))</AspNetCoreModuleVersionMajor>
     <AspNetCoreModuleVersionMinor>$(AspNetCoreMinorVersion)</AspNetCoreModuleVersionMinor>
     <AspNetCoreModuleVersionRevision>$(AspNetCorePatchVersion)</AspNetCoreModuleVersionRevision>
     <!-- This is used for error checking to ensure generated code and baselines are up to date when we increment the patch. -->
-    <PreviousAspNetCoreReleaseVersion Condition=" '$(AspNetCorePatchVersion)' != '0' ">$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).$([MSBuild]::Subtract($(AspNetCorePatchVersion), 1))</PreviousAspNetCoreReleaseVersion>
+    <PreviousAspNetCoreReleaseVersion Condition=" '$(AspNetCorePatchVersion)' != '0' ">$(AspNetCoreMajorMinorVersion).$([MSBuild]::Subtract($(AspNetCorePatchVersion), 1))</PreviousAspNetCoreReleaseVersion>
   </PropertyGroup>
   <PropertyGroup Label="Arcade settings">
     <!-- Opt-in to Arcade tools for building VSIX projects. -->
@@ -62,87 +62,87 @@
   -->
   <PropertyGroup Label="Automated">
     <!-- Packages from dotnet/roslyn -->
-    <MicrosoftNetCompilersToolsetPackageVersion>3.8.0-2.20407.3</MicrosoftNetCompilersToolsetPackageVersion>
+    <MicrosoftNetCompilersToolsetPackageVersion>3.8.0-2.20428.3</MicrosoftNetCompilersToolsetPackageVersion>
     <!-- Packages from dotnet/runtime -->
-    <MicrosoftExtensionsDependencyModelPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsDependencyModelPackageVersion>
-    <MicrosoftNETCoreAppInternalPackageVersion>5.0.0-rc.1.20430.6</MicrosoftNETCoreAppInternalPackageVersion>
-    <MicrosoftNETCoreAppRefPackageVersion>5.0.0-rc.1.20430.6</MicrosoftNETCoreAppRefPackageVersion>
-    <MicrosoftNETCoreAppRuntimewinx64PackageVersion>5.0.0-rc.1.20430.6</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
-    <MicrosoftNETCoreBrowserDebugHostTransportPackageVersion>5.0.0-rc.1.20430.6</MicrosoftNETCoreBrowserDebugHostTransportPackageVersion>
-    <MicrosoftWin32RegistryPackageVersion>5.0.0-rc.1.20430.6</MicrosoftWin32RegistryPackageVersion>
-    <MicrosoftWin32SystemEventsPackageVersion>5.0.0-rc.1.20430.6</MicrosoftWin32SystemEventsPackageVersion>
-    <MicrosoftExtensionsCachingAbstractionsPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsCachingAbstractionsPackageVersion>
-    <MicrosoftExtensionsCachingMemoryPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsCachingMemoryPackageVersion>
-    <MicrosoftExtensionsConfigurationAbstractionsPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsConfigurationAbstractionsPackageVersion>
-    <MicrosoftExtensionsConfigurationBinderPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsConfigurationBinderPackageVersion>
-    <MicrosoftExtensionsConfigurationCommandLinePackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsConfigurationCommandLinePackageVersion>
-    <MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>
-    <MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>
-    <MicrosoftExtensionsConfigurationIniPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsConfigurationIniPackageVersion>
-    <MicrosoftExtensionsConfigurationJsonPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsConfigurationJsonPackageVersion>
-    <MicrosoftExtensionsConfigurationPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsConfigurationPackageVersion>
-    <MicrosoftExtensionsConfigurationUserSecretsPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsConfigurationUserSecretsPackageVersion>
-    <MicrosoftExtensionsConfigurationXmlPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsConfigurationXmlPackageVersion>
-    <MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>
-    <MicrosoftExtensionsDependencyInjectionPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsDependencyInjectionPackageVersion>
-    <MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>
-    <MicrosoftExtensionsFileProvidersCompositePackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsFileProvidersCompositePackageVersion>
-    <MicrosoftExtensionsFileProvidersPhysicalPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsFileProvidersPhysicalPackageVersion>
-    <MicrosoftExtensionsFileSystemGlobbingPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsFileSystemGlobbingPackageVersion>
-    <MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>
-    <MicrosoftExtensionsHostingAbstractionsPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsHostingAbstractionsPackageVersion>
-    <MicrosoftExtensionsHostingPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsHostingPackageVersion>
-    <MicrosoftExtensionsHttpPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsHttpPackageVersion>
-    <MicrosoftExtensionsLoggingAbstractionsPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsLoggingAbstractionsPackageVersion>
-    <MicrosoftExtensionsLoggingConfigurationPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsLoggingConfigurationPackageVersion>
-    <MicrosoftExtensionsLoggingConsolePackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsLoggingConsolePackageVersion>
-    <MicrosoftExtensionsLoggingDebugPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsLoggingDebugPackageVersion>
-    <MicrosoftExtensionsLoggingEventSourcePackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsLoggingEventSourcePackageVersion>
-    <MicrosoftExtensionsLoggingEventLogPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsLoggingEventLogPackageVersion>
-    <MicrosoftExtensionsLoggingPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsLoggingPackageVersion>
-    <MicrosoftExtensionsLoggingTraceSourcePackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsLoggingTraceSourcePackageVersion>
-    <MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>
-    <MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>
-    <MicrosoftExtensionsOptionsPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsOptionsPackageVersion>
-    <MicrosoftExtensionsPrimitivesPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsPrimitivesPackageVersion>
-    <MicrosoftExtensionsInternalTransportPackageVersion>5.0.0-rc.1.20430.6</MicrosoftExtensionsInternalTransportPackageVersion>
-    <SystemComponentModelAnnotationsPackageVersion>5.0.0-rc.1.20430.6</SystemComponentModelAnnotationsPackageVersion>
-    <SystemDiagnosticsDiagnosticSourcePackageVersion>5.0.0-rc.1.20430.6</SystemDiagnosticsDiagnosticSourcePackageVersion>
-    <SystemDiagnosticsEventLogPackageVersion>5.0.0-rc.1.20430.6</SystemDiagnosticsEventLogPackageVersion>
-    <SystemDirectoryServicesProtocolsPackageVersion>5.0.0-rc.1.20430.6</SystemDirectoryServicesProtocolsPackageVersion>
-    <SystemDrawingCommonPackageVersion>5.0.0-rc.1.20430.6</SystemDrawingCommonPackageVersion>
-    <SystemIOPipelinesPackageVersion>5.0.0-rc.1.20430.6</SystemIOPipelinesPackageVersion>
-    <SystemNetHttpJsonPackageVersion>5.0.0-rc.1.20430.6</SystemNetHttpJsonPackageVersion>
-    <SystemNetHttpWinHttpHandlerPackageVersion>5.0.0-rc.1.20430.6</SystemNetHttpWinHttpHandlerPackageVersion>
-    <SystemNetWebSocketsWebSocketProtocolPackageVersion>5.0.0-rc.1.20430.6</SystemNetWebSocketsWebSocketProtocolPackageVersion>
-    <SystemReflectionMetadataPackageVersion>5.0.0-rc.1.20430.6</SystemReflectionMetadataPackageVersion>
-    <SystemResourcesExtensionsPackageVersion>5.0.0-rc.1.20430.6</SystemResourcesExtensionsPackageVersion>
-    <SystemRuntimeCompilerServicesUnsafePackageVersion>5.0.0-rc.1.20430.6</SystemRuntimeCompilerServicesUnsafePackageVersion>
+    <MicrosoftExtensionsDependencyModelPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsDependencyModelPackageVersion>
+    <MicrosoftNETCoreAppInternalPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftNETCoreAppInternalPackageVersion>
+    <MicrosoftNETCoreAppRefPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftNETCoreAppRefPackageVersion>
+    <MicrosoftNETCoreAppRuntimewinx64PackageVersion>6.0.0-alpha.1.20428.2</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
+    <MicrosoftNETCoreBrowserDebugHostTransportPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftNETCoreBrowserDebugHostTransportPackageVersion>
+    <MicrosoftWin32RegistryPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftWin32RegistryPackageVersion>
+    <MicrosoftWin32SystemEventsPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftWin32SystemEventsPackageVersion>
+    <MicrosoftExtensionsCachingAbstractionsPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsCachingAbstractionsPackageVersion>
+    <MicrosoftExtensionsCachingMemoryPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsCachingMemoryPackageVersion>
+    <MicrosoftExtensionsConfigurationAbstractionsPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsConfigurationAbstractionsPackageVersion>
+    <MicrosoftExtensionsConfigurationBinderPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsConfigurationBinderPackageVersion>
+    <MicrosoftExtensionsConfigurationCommandLinePackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsConfigurationCommandLinePackageVersion>
+    <MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>
+    <MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>
+    <MicrosoftExtensionsConfigurationIniPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsConfigurationIniPackageVersion>
+    <MicrosoftExtensionsConfigurationJsonPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsConfigurationJsonPackageVersion>
+    <MicrosoftExtensionsConfigurationPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsConfigurationPackageVersion>
+    <MicrosoftExtensionsConfigurationUserSecretsPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsConfigurationUserSecretsPackageVersion>
+    <MicrosoftExtensionsConfigurationXmlPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsConfigurationXmlPackageVersion>
+    <MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>
+    <MicrosoftExtensionsDependencyInjectionPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsDependencyInjectionPackageVersion>
+    <MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>
+    <MicrosoftExtensionsFileProvidersCompositePackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsFileProvidersCompositePackageVersion>
+    <MicrosoftExtensionsFileProvidersPhysicalPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsFileProvidersPhysicalPackageVersion>
+    <MicrosoftExtensionsFileSystemGlobbingPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsFileSystemGlobbingPackageVersion>
+    <MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>
+    <MicrosoftExtensionsHostingAbstractionsPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsHostingAbstractionsPackageVersion>
+    <MicrosoftExtensionsHostingPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsHostingPackageVersion>
+    <MicrosoftExtensionsHttpPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsHttpPackageVersion>
+    <MicrosoftExtensionsLoggingAbstractionsPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsLoggingAbstractionsPackageVersion>
+    <MicrosoftExtensionsLoggingConfigurationPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsLoggingConfigurationPackageVersion>
+    <MicrosoftExtensionsLoggingConsolePackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsLoggingConsolePackageVersion>
+    <MicrosoftExtensionsLoggingDebugPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsLoggingDebugPackageVersion>
+    <MicrosoftExtensionsLoggingEventSourcePackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsLoggingEventSourcePackageVersion>
+    <MicrosoftExtensionsLoggingEventLogPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsLoggingEventLogPackageVersion>
+    <MicrosoftExtensionsLoggingPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsLoggingPackageVersion>
+    <MicrosoftExtensionsLoggingTraceSourcePackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsLoggingTraceSourcePackageVersion>
+    <MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>
+    <MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>
+    <MicrosoftExtensionsOptionsPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsOptionsPackageVersion>
+    <MicrosoftExtensionsPrimitivesPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsPrimitivesPackageVersion>
+    <MicrosoftExtensionsInternalTransportPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftExtensionsInternalTransportPackageVersion>
+    <SystemComponentModelAnnotationsPackageVersion>6.0.0-alpha.1.20428.2</SystemComponentModelAnnotationsPackageVersion>
+    <SystemDiagnosticsDiagnosticSourcePackageVersion>6.0.0-alpha.1.20428.2</SystemDiagnosticsDiagnosticSourcePackageVersion>
+    <SystemDiagnosticsEventLogPackageVersion>6.0.0-alpha.1.20428.2</SystemDiagnosticsEventLogPackageVersion>
+    <SystemDirectoryServicesProtocolsPackageVersion>6.0.0-alpha.1.20428.2</SystemDirectoryServicesProtocolsPackageVersion>
+    <SystemDrawingCommonPackageVersion>6.0.0-alpha.1.20428.2</SystemDrawingCommonPackageVersion>
+    <SystemIOPipelinesPackageVersion>6.0.0-alpha.1.20428.2</SystemIOPipelinesPackageVersion>
+    <SystemNetHttpJsonPackageVersion>6.0.0-alpha.1.20428.2</SystemNetHttpJsonPackageVersion>
+    <SystemNetHttpWinHttpHandlerPackageVersion>6.0.0-alpha.1.20428.2</SystemNetHttpWinHttpHandlerPackageVersion>
+    <SystemNetWebSocketsWebSocketProtocolPackageVersion>6.0.0-alpha.1.20428.2</SystemNetWebSocketsWebSocketProtocolPackageVersion>
+    <SystemReflectionMetadataPackageVersion>6.0.0-alpha.1.20428.2</SystemReflectionMetadataPackageVersion>
+    <SystemResourcesExtensionsPackageVersion>6.0.0-alpha.1.20428.2</SystemResourcesExtensionsPackageVersion>
+    <SystemRuntimeCompilerServicesUnsafePackageVersion>6.0.0-alpha.1.20428.2</SystemRuntimeCompilerServicesUnsafePackageVersion>
     <!-- System.Security.AccessControl should only be referenced in Dependencies.props and RTMVersions.csproj. -->
-    <SystemSecurityAccessControlPackageVersion>5.0.0-rc.1.20430.6</SystemSecurityAccessControlPackageVersion>
-    <SystemSecurityCryptographyCngPackageVersion>5.0.0-rc.1.20430.6</SystemSecurityCryptographyCngPackageVersion>
-    <SystemSecurityCryptographyPkcsPackageVersion>5.0.0-rc.1.20430.6</SystemSecurityCryptographyPkcsPackageVersion>
-    <SystemSecurityCryptographyXmlPackageVersion>5.0.0-rc.1.20430.6</SystemSecurityCryptographyXmlPackageVersion>
-    <SystemSecurityPermissionsPackageVersion>5.0.0-rc.1.20430.6</SystemSecurityPermissionsPackageVersion>
-    <SystemSecurityPrincipalWindowsPackageVersion>5.0.0-rc.1.20430.6</SystemSecurityPrincipalWindowsPackageVersion>
-    <SystemServiceProcessServiceControllerPackageVersion>5.0.0-rc.1.20430.6</SystemServiceProcessServiceControllerPackageVersion>
-    <SystemTextEncodingsWebPackageVersion>5.0.0-rc.1.20430.6</SystemTextEncodingsWebPackageVersion>
-    <SystemTextJsonPackageVersion>5.0.0-rc.1.20430.6</SystemTextJsonPackageVersion>
-    <SystemThreadingChannelsPackageVersion>5.0.0-rc.1.20430.6</SystemThreadingChannelsPackageVersion>
-    <SystemWindowsExtensionsPackageVersion>5.0.0-rc.1.20430.6</SystemWindowsExtensionsPackageVersion>
+    <SystemSecurityAccessControlPackageVersion>6.0.0-alpha.1.20428.2</SystemSecurityAccessControlPackageVersion>
+    <SystemSecurityCryptographyCngPackageVersion>6.0.0-alpha.1.20428.2</SystemSecurityCryptographyCngPackageVersion>
+    <SystemSecurityCryptographyPkcsPackageVersion>6.0.0-alpha.1.20428.2</SystemSecurityCryptographyPkcsPackageVersion>
+    <SystemSecurityCryptographyXmlPackageVersion>6.0.0-alpha.1.20428.2</SystemSecurityCryptographyXmlPackageVersion>
+    <SystemSecurityPermissionsPackageVersion>6.0.0-alpha.1.20428.2</SystemSecurityPermissionsPackageVersion>
+    <SystemSecurityPrincipalWindowsPackageVersion>6.0.0-alpha.1.20428.2</SystemSecurityPrincipalWindowsPackageVersion>
+    <SystemServiceProcessServiceControllerPackageVersion>6.0.0-alpha.1.20428.2</SystemServiceProcessServiceControllerPackageVersion>
+    <SystemTextEncodingsWebPackageVersion>6.0.0-alpha.1.20428.2</SystemTextEncodingsWebPackageVersion>
+    <SystemTextJsonPackageVersion>6.0.0-alpha.1.20428.2</SystemTextJsonPackageVersion>
+    <SystemThreadingChannelsPackageVersion>6.0.0-alpha.1.20428.2</SystemThreadingChannelsPackageVersion>
+    <SystemWindowsExtensionsPackageVersion>6.0.0-alpha.1.20428.2</SystemWindowsExtensionsPackageVersion>
     <!-- Only listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
-    <MicrosoftNETCorePlatformsPackageVersion>5.0.0-rc.1.20430.6</MicrosoftNETCorePlatformsPackageVersion>
+    <MicrosoftNETCorePlatformsPackageVersion>6.0.0-alpha.1.20428.2</MicrosoftNETCorePlatformsPackageVersion>
     <!-- Packages from dotnet/blazor -->
     <MicrosoftAspNetCoreComponentsWebAssemblyRuntimePackageVersion>3.2.0</MicrosoftAspNetCoreComponentsWebAssemblyRuntimePackageVersion>
     <!-- Packages from dotnet/efcore -->
-    <dotnetefPackageVersion>5.0.0-rc.1.20431.2</dotnetefPackageVersion>
-    <MicrosoftEntityFrameworkCoreInMemoryPackageVersion>5.0.0-rc.1.20431.2</MicrosoftEntityFrameworkCoreInMemoryPackageVersion>
-    <MicrosoftEntityFrameworkCoreRelationalPackageVersion>5.0.0-rc.1.20431.2</MicrosoftEntityFrameworkCoreRelationalPackageVersion>
-    <MicrosoftEntityFrameworkCoreSqlitePackageVersion>5.0.0-rc.1.20431.2</MicrosoftEntityFrameworkCoreSqlitePackageVersion>
-    <MicrosoftEntityFrameworkCoreSqlServerPackageVersion>5.0.0-rc.1.20431.2</MicrosoftEntityFrameworkCoreSqlServerPackageVersion>
-    <MicrosoftEntityFrameworkCoreToolsPackageVersion>5.0.0-rc.1.20431.2</MicrosoftEntityFrameworkCoreToolsPackageVersion>
-    <MicrosoftEntityFrameworkCorePackageVersion>5.0.0-rc.1.20431.2</MicrosoftEntityFrameworkCorePackageVersion>
-    <MicrosoftEntityFrameworkCoreDesignPackageVersion>5.0.0-rc.1.20431.2</MicrosoftEntityFrameworkCoreDesignPackageVersion>
+    <dotnetefPackageVersion>6.0.0-alpha.1.20426.2</dotnetefPackageVersion>
+    <MicrosoftEntityFrameworkCoreInMemoryPackageVersion>6.0.0-alpha.1.20426.2</MicrosoftEntityFrameworkCoreInMemoryPackageVersion>
+    <MicrosoftEntityFrameworkCoreRelationalPackageVersion>6.0.0-alpha.1.20426.2</MicrosoftEntityFrameworkCoreRelationalPackageVersion>
+    <MicrosoftEntityFrameworkCoreSqlitePackageVersion>6.0.0-alpha.1.20426.2</MicrosoftEntityFrameworkCoreSqlitePackageVersion>
+    <MicrosoftEntityFrameworkCoreSqlServerPackageVersion>6.0.0-alpha.1.20426.2</MicrosoftEntityFrameworkCoreSqlServerPackageVersion>
+    <MicrosoftEntityFrameworkCoreToolsPackageVersion>6.0.0-alpha.1.20426.2</MicrosoftEntityFrameworkCoreToolsPackageVersion>
+    <MicrosoftEntityFrameworkCorePackageVersion>6.0.0-alpha.1.20426.2</MicrosoftEntityFrameworkCorePackageVersion>
+    <MicrosoftEntityFrameworkCoreDesignPackageVersion>6.0.0-alpha.1.20426.2</MicrosoftEntityFrameworkCoreDesignPackageVersion>
   </PropertyGroup>
   <!--
 

+ 7 - 0
eng/helix/content/RunTests/RunTestsOptions.cs

@@ -65,6 +65,11 @@ namespace RunTests
                     aliases: new string[] { "--helixTimeout" },
                     description: "The timeout duration of the Helix job")
                 { Argument = new Argument<string>(), Required = true },
+
+                new Option(
+                    aliases: new string[] { "--source" },
+                    description: "The restore sources to use during testing")
+                { Argument = new Argument<string>() { Arity = ArgumentArity.ZeroOrMore }, Required = true }
             };
 
             var parseResult = command.Parse(args);
@@ -79,6 +84,7 @@ namespace RunTests
             options.AspNetRuntime = parseResult.ValueForOption<string>("--aspnetruntime");
             options.AspNetRef = parseResult.ValueForOption<string>("--aspnetref");
             options.Timeout = TimeSpan.Parse(parseResult.ValueForOption<string>("--helixTimeout"));
+            options.Source = parseResult.ValueForOption<IEnumerable<string>>("--source");
             options.HELIX_WORKITEM_ROOT = Environment.GetEnvironmentVariable("HELIX_WORKITEM_ROOT");
             options.Path = Environment.GetEnvironmentVariable("PATH");
             options.DotnetRoot = Environment.GetEnvironmentVariable("DOTNET_ROOT");
@@ -97,6 +103,7 @@ namespace RunTests
         public string HELIX_WORKITEM_ROOT { get; set;}
         public string DotnetRoot { get; set; }
         public string Path { get; set; }
+        public IEnumerable<string> Source { get; set; }
         public TimeSpan Timeout { get; set; }
     }
 }

+ 12 - 9
eng/helix/content/RunTests/TestRunner.cs

@@ -126,13 +126,16 @@ namespace RunTests
                         throwOnError: false,
                         cancellationToken: new CancellationTokenSource(TimeSpan.FromMinutes(2)).Token);
 
-                    await ProcessUtil.RunAsync($"{Options.DotnetRoot}/dotnet",
-                        "nuget add source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json --configfile NuGet.config",
-                        environmentVariables: EnvironmentVariables,
-                        outputDataReceived: Console.WriteLine,
-                        errorDataReceived: Console.Error.WriteLine,
-                        throwOnError: false,
-                        cancellationToken: new CancellationTokenSource(TimeSpan.FromMinutes(2)).Token);
+                    foreach (var restoreSource in Options.Source)
+                    {
+                        await ProcessUtil.RunAsync($"{Options.DotnetRoot}/dotnet",
+                            $"nuget add source {restoreSource} --configfile NuGet.config",
+                            environmentVariables: EnvironmentVariables,
+                            outputDataReceived: Console.WriteLine,
+                            errorDataReceived: Console.Error.WriteLine,
+                            throwOnError: false,
+                            cancellationToken: new CancellationTokenSource(TimeSpan.FromMinutes(2)).Token);
+                    }
 
                     // Write nuget sources to console, useful for debugging purposes
                     await ProcessUtil.RunAsync($"{Options.DotnetRoot}/dotnet",
@@ -247,7 +250,7 @@ namespace RunTests
             {
                 // Timeout test run 5 minutes before the Helix job would timeout
                 var cts = new CancellationTokenSource(Options.Timeout.Subtract(TimeSpan.FromMinutes(5)));
-                var commonTestArgs = $"test {Options.Target} --logger:xunit --logger:\"console;verbosity=normal\" --blame \"CollectHangDump;TestTimeout=5m\"";                
+                var commonTestArgs = $"test {Options.Target} --logger:xunit --logger:\"console;verbosity=normal\" --blame \"CollectHangDump;TestTimeout=5m\"";
                 if (Options.Quarantined)
                 {
                     Console.WriteLine("Running quarantined tests.");
@@ -346,7 +349,7 @@ namespace RunTests
             else
             {
                 Console.WriteLine("No dmps found in TestResults");
-            }            
+            }
         }
     }
 }

+ 4 - 4
eng/helix/content/runtests.cmd

@@ -28,11 +28,11 @@ echo "Invoking InstallDotNet.ps1 %$arch% %$sdkVersion% %$runtimeVersion% %DOTNET
 powershell.exe -NoProfile -ExecutionPolicy unrestricted -file InstallDotNet.ps1 %$arch% %$sdkVersion% %$runtimeVersion% %DOTNET_ROOT%
 
 set exit_code=0
-echo "Restore: dotnet restore RunTests\RunTests.csproj --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json --source https://api.nuget.org/v3/index.json --ignore-failed-sources..."
-dotnet restore RunTests\RunTests.csproj --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json --source https://api.nuget.org/v3/index.json --ignore-failed-sources
+echo "Restore: dotnet restore RunTests\RunTests.csproj --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json --source https://api.nuget.org/v3/index.json --ignore-failed-sources..."
+dotnet restore RunTests\RunTests.csproj --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json --source https://api.nuget.org/v3/index.json --ignore-failed-sources
 
-echo "Running tests: dotnet run --project RunTests\RunTests.csproj -- --target %$target% --sdk %$sdkVersion% --runtime %$runtimeVersion% --queue %$queue% --arch %$arch% --quarantined %$quarantined% --ef %$ef% --aspnetruntime %$aspnetruntime% --aspnetref %$aspnetref% --helixTimeout %$helixTimeout%..."
-dotnet run --project RunTests\RunTests.csproj -- --target %$target% --sdk %$sdkVersion% --runtime %$runtimeVersion% --queue %$queue% --arch %$arch% --quarantined %$quarantined% --ef %$ef% --aspnetruntime %$aspnetruntime% --aspnetref %$aspnetref% --helixTimeout %$helixTimeout%
+echo "Running tests: dotnet run --project RunTests\RunTests.csproj -- --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json --target %$target% --sdk %$sdkVersion% --runtime %$runtimeVersion% --queue %$queue% --arch %$arch% --quarantined %$quarantined% --ef %$ef% --aspnetruntime %$aspnetruntime% --aspnetref %$aspnetref% --helixTimeout %$helixTimeout%..."
+dotnet run --project RunTests\RunTests.csproj -- --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json --target %$target% --sdk %$sdkVersion% --runtime %$runtimeVersion% --queue %$queue% --arch %$arch% --quarantined %$quarantined% --ef %$ef% --aspnetruntime %$aspnetruntime% --aspnetref %$aspnetref% --helixTimeout %$helixTimeout%
 if errorlevel neq 0 (
     set exit_code=%errorlevel%
 )

+ 4 - 4
eng/helix/content/runtests.sh

@@ -86,10 +86,10 @@ fi
 sync
 
 exit_code=0
-echo "Restore: $DOTNET_ROOT/dotnet restore RunTests/RunTests.csproj --source https://api.nuget.org/v3/index.json --ignore-failed-sources..."
-$DOTNET_ROOT/dotnet restore RunTests/RunTests.csproj --source https://api.nuget.org/v3/index.json --ignore-failed-sources
-echo "Running tests: $DOTNET_ROOT/dotnet run --project RunTests/RunTests.csproj -- --target $1 --sdk $2 --runtime $3 --queue $4 --arch $5 --quarantined $6 --ef $7 --aspnetruntime $8 --aspnetref $9 --helixTimeout ${10}..."
-$DOTNET_ROOT/dotnet run --project RunTests/RunTests.csproj -- --target $1 --sdk $2 --runtime $3 --queue $4 --arch $5 --quarantined $6 --ef $7 --aspnetruntime $8 --aspnetref $9 --helixTimeout ${10}
+echo "Restore: $DOTNET_ROOT/dotnet restore RunTests/RunTests.csproj --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json --source https://api.nuget.org/v3/index.json --ignore-failed-sources..."
+$DOTNET_ROOT/dotnet restore RunTests/RunTests.csproj --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json --source https://api.nuget.org/v3/index.json --ignore-failed-sources
+echo "Running tests: $DOTNET_ROOT/dotnet run --project RunTests/RunTests.csproj -- --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json --target $1 --sdk $2 --runtime $3 --queue $4 --arch $5 --quarantined $6 --ef $7 --aspnetruntime $8 --aspnetref $9 --helixTimeout ${10}..."
+$DOTNET_ROOT/dotnet run --project RunTests/RunTests.csproj -- --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json --target $1 --sdk $2 --runtime $3 --queue $4 --arch $5 --quarantined $6 --ef $7 --aspnetruntime $8 --aspnetref $9 --helixTimeout ${10}
 exit_code=$?
 echo "Finished tests...exit_code=$exit_code"
 

+ 2 - 3
src/Components/Components/src/ComponentBase.cs

@@ -200,9 +200,8 @@ namespace Microsoft.AspNetCore.Components
         /// <returns>A <see cref="Task"/> that completes when the component has finished updating and rendering itself.</returns>
         /// <remarks>
         /// <para>
-        /// The <see cref="SetParametersAsync(ParameterView)"/> method should be passed the entire set of parameter values each
-        /// time <see cref="SetParametersAsync(ParameterView)"/> is called. It not required that the caller supply a parameter
-        /// value for all parameters that are logically understood by the component.
+        /// Parameters are passed when <see cref="SetParametersAsync(ParameterView)"/> is called. It is not required that 
+        /// the caller supply a parameter value for all of the parameters that are logically understood by the component.
         /// </para>
         /// <para>
         /// The default implementation of <see cref="SetParametersAsync(ParameterView)"/> will set the value of each property

+ 2 - 2
src/Framework/Directory.Build.props

@@ -7,8 +7,8 @@
     <PlatformManifestFileName>PlatformManifest.txt</PlatformManifestFileName>
     <PlatformManifestOutputPath>$(ArtifactsObjDir)$(PlatformManifestFileName)</PlatformManifestOutputPath>
 
-    <!-- Platform manifest and package override metatdata -->
-    <ReferencePackSharedFxVersion>$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).0</ReferencePackSharedFxVersion>
+    <!-- Platform manifest and package override metadata -->
+    <ReferencePackSharedFxVersion>$(AspNetCoreMajorMinorVersion).0</ReferencePackSharedFxVersion>
     <ReferencePackSharedFxVersion Condition="'$(VersionSuffix)' != ''">$(ReferencePackSharedFxVersion)-$(VersionSuffix)</ReferencePackSharedFxVersion>
   </PropertyGroup>
 

+ 1 - 1
src/Installers/Debian/Runtime/Debian.Runtime.debproj

@@ -8,7 +8,7 @@
     <PackageContentRoot>$(SharedFrameworkLayoutRoot)</PackageContentRoot>
 
     <!-- CLI would take a dependency such as 'aspnetcore-runtime-M.N >= M.N.P'. Here M.N is part of the id and M.N.P is the PackageVersion -->
-    <PackageId>$(RuntimeInstallerBaseName)-$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion)</PackageId>
+    <PackageId>$(RuntimeInstallerBaseName)-$(AspNetCoreMajorMinorVersion)</PackageId>
 
     <!-- Needed some creativity to convert the PackageVersion M.N.P-PreReleaseVersionLabel-Build to the installer version M.N.P~PreReleaseVersionLabel-Build, The conditional handles stabilized builds -->
     <DotnetRuntimeDependencyVersion>$(MicrosoftNETCoreAppRuntimeVersion)</DotnetRuntimeDependencyVersion>

+ 2 - 2
src/Installers/Debian/TargetingPack/Debian.TargetingPack.debproj

@@ -8,10 +8,10 @@
     <PackageContentRoot>$(TargetingPackLayoutRoot)</PackageContentRoot>
 
     <!-- CLI would take a dependency such as 'aspnetcore-targeting-pack-M.N >= M.N.P'. Here M.N is part of the id and M.N.P is the PackageVersion -->
-    <PackageId>$(TargetingPackInstallerBaseName)-$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion)</PackageId>
+    <PackageId>$(TargetingPackInstallerBaseName)-$(AspNetCoreMajorMinorVersion)</PackageId>
 
     <PackageSummary>ASP.NET Core Targeting Pack</PackageSummary>
-    <PackageDescription>Provides a default set of APIs for building an ASP.NET Core $(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion) application. Contains reference assemblies, documentation, and other design-time assets.</PackageDescription>
+    <PackageDescription>Provides a default set of APIs for building an ASP.NET Core $(AspNetCoreMajorMinorVersion) application. Contains reference assemblies, documentation, and other design-time assets.</PackageDescription>
 
     <!-- Needed some creativity to convert the PackageVersion M.N.P-PreReleaseVersionLabel-Build to the installer version M.N.P~PreReleaseVersionLabel-Build, The conditional handles stabilized builds -->
     <DotnetTargetingPackDependencyVersion>$(MicrosoftNETCoreAppRefPackageVersion)</DotnetTargetingPackDependencyVersion>

+ 3 - 3
src/Installers/Rpm/Rpm.Runtime.Common.targets

@@ -4,8 +4,8 @@
   <PropertyGroup>
     <!-- installer versions -->
     <!-- CLI would take a dependency such as 'aspnetcore-runtime-M.N >= M.N.P'. Here M.N is the part of the id and M.N.P is the package version -->
-    <PackageId>$(RuntimeInstallerBaseName)-$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion)</PackageId>
-    <PackageVersion>$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).$(AspNetCorePatchVersion)</PackageVersion>
+    <PackageId>$(RuntimeInstallerBaseName)-$(AspNetCoreMajorMinorVersion)</PackageId>
+    <PackageVersion>$(AspNetCoreMajorMinorVersion).$(AspNetCorePatchVersion)</PackageVersion>
 
     <!-- Set package revision to '1' for RTM releases, but include the build number in pre-releases -->
     <PackageRevision Condition=" '$(VersionSuffix)' == '' ">1</PackageRevision>
@@ -24,6 +24,6 @@
     </ProjectReference>
 
     <InstallerOwnedDirectory Include="$(RpmPackageInstallRoot)shared/Microsoft.AspNetCore.App" />
-    <RpmDependency Include="dotnet-runtime-$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion)" Version="$(MicrosoftNETCoreAppRuntimeVersion.Split('-')[0])" />
+    <RpmDependency Include="dotnet-runtime-$(AspNetCoreMajorMinorVersion)" Version="$(MicrosoftNETCoreAppRuntimeVersion.Split('-')[0])" />
   </ItemGroup>
 </Project>

+ 3 - 3
src/Installers/Rpm/TargetingPack/Rpm.TargetingPack.rpmproj

@@ -8,10 +8,10 @@
 
     <!-- installer versions -->
     <!-- CLI would take a dependency such as 'aspnetcore-targeting-pack-M.N >= M.N.P'. Here M.N is the part of the id and M.N.P is the package version -->
-    <PackageId>$(TargetingPackInstallerBaseName)-$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion)</PackageId>
+    <PackageId>$(TargetingPackInstallerBaseName)-$(AspNetCoreMajorMinorVersion)</PackageId>
 
     <PackageSummary>ASP.NET Core Targeting Pack</PackageSummary>
-    <PackageDescription>Provides a default set of APIs for building an ASP.NET Core $(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion) application. Contains reference assemblies, documentation, and other design-time assets.</PackageDescription>
+    <PackageDescription>Provides a default set of APIs for building an ASP.NET Core $(AspNetCoreMajorMinorVersion) application. Contains reference assemblies, documentation, and other design-time assets.</PackageDescription>
   </PropertyGroup>
 
   <ItemGroup>
@@ -21,7 +21,7 @@
     </ProjectReference>
 
     <InstallerOwnedDirectory Include="$(RpmPackageInstallRoot)packs/$(TargetingPackName)/" />
-    <RpmDependency Include="dotnet-targeting-pack-$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion)" Version="$(MicrosoftNETCoreAppRefPackageVersion.Split('-')[0])" />
+    <RpmDependency Include="dotnet-targeting-pack-$(AspNetCoreMajorMinorVersion)" Version="$(MicrosoftNETCoreAppRefPackageVersion.Split('-')[0])" />
   </ItemGroup>
 
   <Import Project="$(MSBuildToolsPath)\Microsoft.Common.targets" />

+ 1 - 1
src/Installers/Windows/AspNetCoreModule-Setup/Directory.Build.props

@@ -15,7 +15,7 @@
     <BLDNUMMINOR>$(BUILD_MINOR)</BLDNUMMINOR>
 
     <!-- ANCM msi version is prepended with a 1 due to previous msi versions starting with 8.x.x.0 -->
-    <ANCMFolderVersion>1$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).$(BUILD_MAJOR)</ANCMFolderVersion>
+    <ANCMFolderVersion>1$(AspNetCoreMajorMinorVersion).$(BUILD_MAJOR)</ANCMFolderVersion>
     <ANCMMsiVersion>$(ANCMFolderVersion).0</ANCMMsiVersion>
 
     <!-- The handler version in the M.A.AspNetCoreV2 nuget package. Today, this is hard coded to 2.0.0

+ 3 - 3
src/Installers/Windows/Wix.targets

@@ -2,11 +2,11 @@
   <!-- Set versioning properties after Arcade SDK targets have been imported. -->
   <PropertyGroup>
     <!-- Used for generating stable upgrade codes for bundles -->
-    <Version>$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).$(AspNetCorePatchVersion).0</Version>
+    <Version>$(AspNetCoreMajorMinorVersion).$(AspNetCorePatchVersion).0</Version>
     <!-- Actual upgrade code used in bundles to ensure upgrades withing a version band, e.g. 3.0.0.xxx -->
     <_FileRevisionVersion>$(VersionSuffixDateStamp)</_FileRevisionVersion>
     <_FileRevisionVersion Condition=" '$(_FileRevisionVersion)' == '' ">42424</_FileRevisionVersion>
-    <BundleVersion>$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).$(AspNetCorePatchVersion).$(_FileRevisionVersion)</BundleVersion>
+    <BundleVersion>$(AspNetCoreMajorMinorVersion).$(AspNetCorePatchVersion).$(_FileRevisionVersion)</BundleVersion>
 
     <DefineConstants>$(DefineConstants);MajorVersion=$(AspNetCoreMajorVersion)</DefineConstants>
     <DefineConstants>$(DefineConstants);MinorVersion=$(AspNetCoreMinorVersion)</DefineConstants>
@@ -44,7 +44,7 @@
          the upgrade code. Bundle upgrades pivot on Major.Minor.Patch changes. For example, 3.0.1-preview 1 can upgrade to 3.0.1-preview 8, but 3.0.1
          cannot upgrade to 3.0.2 or 3.1. -->
     <PropertyGroup>
-      <BundleGuidInputs>$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).$(AspNetCorePatchVersion);$(Platform)</BundleGuidInputs>
+      <BundleGuidInputs>$(AspNetCoreMajorMinorVersion).$(AspNetCorePatchVersion);$(Platform)</BundleGuidInputs>
     </PropertyGroup>
     <GenerateGuid NamespaceGuid="$(NamespaceGuid)" Values="$(BundleGuidInputs)">
       <Output TaskParameter="Guid" PropertyName="BundleProviderKey" />

+ 19 - 2
src/Middleware/CORS/src/Infrastructure/CorsPolicy.cs

@@ -13,6 +13,7 @@ namespace Microsoft.AspNetCore.Cors.Infrastructure
     /// </summary>
     public class CorsPolicy
     {
+        private Func<string, bool> _isOriginAllowed;
         private TimeSpan? _preflightMaxAge;
 
         /// <summary>
@@ -20,7 +21,7 @@ namespace Microsoft.AspNetCore.Cors.Infrastructure
         /// </summary>
         public CorsPolicy()
         {
-            IsOriginAllowed = DefaultIsOriginAllowed;
+            _isOriginAllowed = DefaultIsOriginAllowed;
         }
 
         /// <summary>
@@ -71,10 +72,26 @@ namespace Microsoft.AspNetCore.Cors.Infrastructure
             }
         }
 
+        /// <summary>
+        /// Gets a value indicating if <see cref="IsOriginAllowed"/> is the default function that is set in the CorsPolicy constructor.
+        /// </summary>
+        internal bool IsDefaultIsOriginAllowed { get; private set; } = true;
+
         /// <summary>
         /// Gets or sets a function which evaluates whether an origin is allowed.
         /// </summary>
-        public Func<string, bool> IsOriginAllowed { get; set; }
+        public Func<string, bool> IsOriginAllowed
+        {
+            get
+            {
+                return _isOriginAllowed;
+            }
+            set
+            {
+                _isOriginAllowed = value;
+                IsDefaultIsOriginAllowed = false;
+            }
+        }
 
         /// <summary>
         /// Gets the headers that the resource might use and can be exposed.

+ 1 - 1
src/Middleware/CORS/src/Infrastructure/CorsService.cs

@@ -119,7 +119,7 @@ namespace Microsoft.AspNetCore.Cors.Infrastructure
             {
                 var origin = headers[CorsConstants.Origin];
                 result.AllowedOrigin = origin;
-                result.VaryByOrigin = policy.Origins.Count > 1;
+                result.VaryByOrigin = policy.Origins.Count > 1 || !policy.IsDefaultIsOriginAllowed;
             }
 
             result.SupportsCredentials = policy.SupportsCredentials;

+ 15 - 1
src/Middleware/CORS/test/UnitTests/CorsPolicyTests.cs

@@ -25,6 +25,20 @@ namespace Microsoft.AspNetCore.Cors.Infrastructure
             Assert.Empty(corsPolicy.Origins);
             Assert.Null(corsPolicy.PreflightMaxAge);
             Assert.NotNull(corsPolicy.IsOriginAllowed);
+            Assert.True(corsPolicy.IsDefaultIsOriginAllowed);
+        }
+
+        [Fact]
+        public void IsDefaultIsOriginAllowed_IsFalseAfterSettingIsOriginAllowed()
+        {
+            // Arrange
+            var policy = new CorsPolicy();
+
+            // Act
+            policy.IsOriginAllowed = origin => true;
+
+            // Assert
+            Assert.False(policy.IsDefaultIsOriginAllowed);
         }
 
         [Fact]
@@ -71,4 +85,4 @@ namespace Microsoft.AspNetCore.Cors.Infrastructure
                 policyString);
         }
     }
-}
+}

+ 17 - 0
src/Middleware/CORS/test/UnitTests/CorsServiceTests.cs

@@ -223,6 +223,23 @@ namespace Microsoft.AspNetCore.Cors.Infrastructure
             Assert.True(result.VaryByOrigin);
         }
 
+        [Fact]
+        public void EvaluatePolicy_SetIsOriginAllowed_VariesByOrigin()
+        {
+            // Arrange
+            var corsService = GetCorsService();
+            var requestContext = GetHttpContext(origin: "http://example.com");
+            var policy = new CorsPolicy();
+            policy.IsOriginAllowed = origin => true;
+
+            // Act
+            var result = corsService.EvaluatePolicy(requestContext, policy);
+
+            // Assert
+            Assert.Equal("http://example.com", result.AllowedOrigin);
+            Assert.True(result.VaryByOrigin);
+        }
+
         [Fact]
         public void EvaluatePolicy_NoExposedHeaders_NoAllowExposedHeaders()
         {

+ 5 - 13
src/Mvc/Mvc.Core/src/Builder/ControllerEndpointRouteBuilderExtensions.cs

@@ -1,4 +1,4 @@
-// Copyright (c) .NET Foundation. All rights reserved.
+// 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;
@@ -506,18 +506,10 @@ namespace Microsoft.AspNetCore.Builder
             EnsureControllerServices(endpoints);
 
             // Called for side-effect to make sure that the data source is registered.
-            GetOrCreateDataSource(endpoints).CreateInertEndpoints = true;
-
-            endpoints.Map(
-                pattern, 
-                context =>
-                {
-                    throw new InvalidOperationException("This endpoint is not expected to be executed directly.");
-                })
-                .Add(b =>
-                {
-                    b.Metadata.Add(new DynamicControllerRouteValueTransformerMetadata(typeof(TTransformer), state));
-                });
+            var controllerDataSource = GetOrCreateDataSource(endpoints);
+            
+            // The data source is just used to share the common order with conventionally routed actions.
+            controllerDataSource.AddDynamicControllerEndpoint(endpoints, pattern, typeof(TTransformer), state);
         }
 
         private static DynamicControllerMetadata CreateDynamicControllerMetadata(string action, string controller, string area)

+ 1 - 0
src/Mvc/Mvc.Core/src/DependencyInjection/MvcCoreServiceCollectionExtensions.cs

@@ -269,6 +269,7 @@ namespace Microsoft.Extensions.DependencyInjection
             //
             // Endpoint Routing / Endpoints
             //
+            services.TryAddSingleton<OrderedEndpointsSequenceProvider>();
             services.TryAddSingleton<ControllerActionEndpointDataSource>();
             services.TryAddSingleton<ActionEndpointFactory>();
             services.TryAddSingleton<DynamicControllerEndpointSelector>();

+ 26 - 0
src/Mvc/Mvc.Core/src/DependencyInjection/OrderedEndpointsSequenceProvider.cs

@@ -0,0 +1,26 @@
+// 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.
+
+namespace Microsoft.AspNetCore.Mvc.Infrastructure
+{
+    internal class OrderedEndpointsSequenceProvider
+    {
+        private object Lock = new object();
+
+        // In traditional conventional routing setup, the routes defined by a user have a order
+        // defined by how they are added into the list. We would like to maintain the same order when building
+        // up the endpoints too.
+        //
+        // Start with an order of '1' for conventional routes as attribute routes have a default order of '0'.
+        // This is for scenarios dealing with migrating existing Router based code to Endpoint Routing world.
+        private int _current = 1;
+
+        public int GetNext()
+        {
+            lock (Lock)
+            {
+                return _current++;
+            }
+        }
+    }
+}

+ 27 - 14
src/Mvc/Mvc.Core/src/Routing/ControllerActionEndpointDataSource.cs

@@ -1,4 +1,4 @@
-// Copyright (c) .NET Foundation. All rights reserved.
+// 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;
@@ -15,27 +15,19 @@ namespace Microsoft.AspNetCore.Mvc.Routing
     internal class ControllerActionEndpointDataSource : ActionEndpointDataSourceBase
     {
         private readonly ActionEndpointFactory _endpointFactory;
+        private readonly OrderedEndpointsSequenceProvider _orderSequence;
         private readonly List<ConventionalRouteEntry> _routes;
 
-        private int _order;
-
         public ControllerActionEndpointDataSource(
             IActionDescriptorCollectionProvider actions,
-            ActionEndpointFactory endpointFactory)
+            ActionEndpointFactory endpointFactory,
+            OrderedEndpointsSequenceProvider orderSequence)
             : base(actions)
         {
             _endpointFactory = endpointFactory;
-
+            _orderSequence = orderSequence;
             _routes = new List<ConventionalRouteEntry>();
 
-            // In traditional conventional routing setup, the routes defined by a user have a order
-            // defined by how they are added into the list. We would like to maintain the same order when building
-            // up the endpoints too.
-            //
-            // Start with an order of '1' for conventional routes as attribute routes have a default order of '0'.
-            // This is for scenarios dealing with migrating existing Router based code to Endpoint Routing world.
-            _order = 1;
-
             DefaultBuilder = new ControllerActionEndpointConventionBuilder(Lock, Conventions);
 
             // IMPORTANT: this needs to be the last thing we do in the constructor.
@@ -59,7 +51,7 @@ namespace Microsoft.AspNetCore.Mvc.Routing
             lock (Lock)
             {
                 var conventions = new List<Action<EndpointBuilder>>();
-                _routes.Add(new ConventionalRouteEntry(routeName, pattern, defaults, constraints, dataTokens, _order++, conventions));
+                _routes.Add(new ConventionalRouteEntry(routeName, pattern, defaults, constraints, dataTokens, _orderSequence.GetNext(), conventions));
                 return new ControllerActionEndpointConventionBuilder(Lock, conventions);
             }
         }
@@ -108,6 +100,27 @@ namespace Microsoft.AspNetCore.Mvc.Routing
 
             return endpoints;
         }
+
+        internal void AddDynamicControllerEndpoint(IEndpointRouteBuilder endpoints, string pattern, Type transformerType, object state)
+        {
+            CreateInertEndpoints = true;
+            lock (Lock)
+            {
+                var order = _orderSequence.GetNext();
+
+                endpoints.Map(
+                    pattern,
+                    context =>
+                    {
+                        throw new InvalidOperationException("This endpoint is not expected to be executed directly.");
+                    })
+                    .Add(b =>
+                    {
+                        ((RouteEndpointBuilder)b).Order = order;
+                        b.Metadata.Add(new DynamicControllerRouteValueTransformerMetadata(transformerType, state));
+                    });
+            }
+        }
     }
 }
 

+ 2 - 2
src/Mvc/Mvc.Core/test/Routing/ControllerActionEndpointDataSourceTest.cs

@@ -1,4 +1,4 @@
-// Copyright (c) .NET Foundation. All rights reserved.
+// 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;
@@ -385,7 +385,7 @@ namespace Microsoft.AspNetCore.Mvc.Routing
 
         private protected override ActionEndpointDataSourceBase CreateDataSource(IActionDescriptorCollectionProvider actions, ActionEndpointFactory endpointFactory)
         {
-            return new ControllerActionEndpointDataSource(actions, endpointFactory);
+            return new ControllerActionEndpointDataSource(actions, endpointFactory, new OrderedEndpointsSequenceProvider());
         }
 
         protected override ActionDescriptor CreateActionDescriptor(

+ 2 - 11
src/Mvc/Mvc.RazorPages/src/Builder/RazorPagesEndpointRouteBuilderExtensions.cs

@@ -337,18 +337,9 @@ namespace Microsoft.AspNetCore.Builder
             EnsureRazorPagesServices(endpoints);
 
             // Called for side-effect to make sure that the data source is registered.
-            GetOrCreateDataSource(endpoints).CreateInertEndpoints = true;
+            var dataSource = GetOrCreateDataSource(endpoints);
 
-            endpoints.Map(
-                pattern,
-                context =>
-                {
-                    throw new InvalidOperationException("This endpoint is not expected to be executed directly.");
-                })
-                .Add(b =>
-                {
-                    b.Metadata.Add(new DynamicPageRouteValueTransformerMetadata(typeof(TTransformer), state));
-                });
+            dataSource.AddDynamicPageEndpoint(endpoints, pattern, typeof(TTransformer), state);
         }
 
         private static DynamicPageMetadata CreateDynamicPageMetadata(string page, string area)

+ 29 - 3
src/Mvc/Mvc.RazorPages/src/Infrastructure/PageActionEndpointDataSource.cs

@@ -1,4 +1,4 @@
-// Copyright (c) .NET Foundation. All rights reserved.
+// 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;
@@ -8,18 +8,23 @@ using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc.Abstractions;
 using Microsoft.AspNetCore.Mvc.Infrastructure;
 using Microsoft.AspNetCore.Mvc.Routing;
+using Microsoft.AspNetCore.Routing;
 
 namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure
 {
     internal class PageActionEndpointDataSource : ActionEndpointDataSourceBase
     {
         private readonly ActionEndpointFactory _endpointFactory;
+        private readonly OrderedEndpointsSequenceProvider _orderSequence;
 
-        public PageActionEndpointDataSource(IActionDescriptorCollectionProvider actions, ActionEndpointFactory endpointFactory)
+        public PageActionEndpointDataSource(
+            IActionDescriptorCollectionProvider actions,
+            ActionEndpointFactory endpointFactory,
+            OrderedEndpointsSequenceProvider orderedEndpoints)
             : base(actions)
         {
             _endpointFactory = endpointFactory;
-
+            _orderSequence = orderedEndpoints;
             DefaultBuilder = new PageActionEndpointConventionBuilder(Lock, Conventions);
 
             // IMPORTANT: this needs to be the last thing we do in the constructor.
@@ -47,6 +52,27 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure
 
             return endpoints;
         }
+
+        internal void AddDynamicPageEndpoint(IEndpointRouteBuilder endpoints, string pattern, Type transformerType, object state)
+        {
+            CreateInertEndpoints = true;
+            lock (Lock)
+            {
+                var order = _orderSequence.GetNext();
+
+                endpoints.Map(
+                    pattern,
+                    context =>
+                    {
+                        throw new InvalidOperationException("This endpoint is not expected to be executed directly.");
+                    })
+                    .Add(b =>
+                    {
+                        ((RouteEndpointBuilder)b).Order = order;
+                        b.Metadata.Add(new DynamicPageRouteValueTransformerMetadata(transformerType, state));
+                    });
+            }
+        }
     }
 }
 

+ 2 - 2
src/Mvc/Mvc.RazorPages/test/Infrastructure/PageActionEndpointDataSourceTest.cs

@@ -1,4 +1,4 @@
-// Copyright (c) .NET Foundation. All rights reserved.
+// 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;
@@ -92,7 +92,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure
 
         private protected override ActionEndpointDataSourceBase CreateDataSource(IActionDescriptorCollectionProvider actions, ActionEndpointFactory endpointFactory)
         {
-            return new PageActionEndpointDataSource(actions, endpointFactory);
+            return new PageActionEndpointDataSource(actions, endpointFactory, new OrderedEndpointsSequenceProvider());
         }
 
         protected override ActionDescriptor CreateActionDescriptor(

+ 3 - 2
src/Mvc/benchmarks/Microsoft.AspNetCore.Mvc.Performance/ControllerActionEndpointDatasourceBenchmark.cs

@@ -1,4 +1,4 @@
-// Copyright (c) .NET Foundation. All rights reserved.
+// 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;
@@ -110,7 +110,8 @@ namespace Microsoft.AspNetCore.Mvc.Performance
         {
             var dataSource = new ControllerActionEndpointDataSource(
                 actionDescriptorCollectionProvider,
-                new ActionEndpointFactory(new MockRoutePatternTransformer()));
+                new ActionEndpointFactory(new MockRoutePatternTransformer()),
+                new OrderedEndpointsSequenceProvider());
 
             return dataSource;
         }

+ 8 - 2
src/Mvc/test/Mvc.FunctionalTests/HtmlGenerationTest.cs

@@ -12,6 +12,7 @@ using System.Text;
 using System.Threading.Tasks;
 using Microsoft.AspNetCore.Hosting;
 using Microsoft.AspNetCore.Mvc.Testing;
+using Microsoft.AspNetCore.Testing;
 using Xunit;
 
 namespace Microsoft.AspNetCore.Mvc.FunctionalTests
@@ -61,8 +62,6 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests
                     { "EmployeeList", "/HtmlGeneration_Home/EmployeeList" },
                     // Testing the EnvironmentTagHelper
                     { "Environment", null },
-                    // Testing the ImageTagHelper
-                    { "Image", null },
                     // Testing InputTagHelper with File
                     { "Input", null },
                     // Testing the LinkTagHelper
@@ -138,6 +137,13 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests
             }
         }
 
+        [Fact]
+        [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/25206")]
+        public async Task HtmlGenerationWebSite_GeneratesExpectedResults_WithImageData()
+        {
+            await HtmlGenerationWebSite_GeneratesExpectedResults("image", antiforgeryPath: null);
+        }
+
         [Fact]
         public async Task HtmlGenerationWebSite_LinkGeneration_With21CompatibilityBehavior()
         {

+ 165 - 0
src/Mvc/test/Mvc.FunctionalTests/RoutingDynamicOrderTest.cs

@@ -0,0 +1,165 @@
+// 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.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Net.Http.Json;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.AspNetCore.Mvc.Testing;
+using RoutingWebSite;
+using Xunit;
+
+namespace Microsoft.AspNetCore.Mvc.FunctionalTests
+{
+    public class RoutingDynamicOrderTest : IClassFixture<MvcTestFixture<RoutingWebSite.StartupForDynamic>>
+    {
+        public RoutingDynamicOrderTest(MvcTestFixture<RoutingWebSite.StartupForDynamic> fixture)
+        {
+            Factory = fixture.Factories.FirstOrDefault() ?? fixture.WithWebHostBuilder(ConfigureWebHostBuilder);
+        }
+
+        private static void ConfigureWebHostBuilder(IWebHostBuilder builder) => builder.UseStartup<RoutingWebSite.StartupForDynamicOrder>();
+
+        public WebApplicationFactory<StartupForDynamic> Factory { get; }
+
+        [Fact]
+        public async Task PrefersAttributeRoutesOverDynamicControllerRoutes()
+        {
+            var factory = Factory
+                .WithWebHostBuilder(b => b.UseSetting("Scenario", RoutingWebSite.StartupForDynamicOrder.DynamicOrderScenarios.AttributeRouteDynamicRoute));
+
+            var client = factory.CreateClient();
+
+            // Arrange
+            var url = "http://localhost/attribute-dynamic-order/Controller=Home,Action=Index";
+            var request = new HttpRequestMessage(HttpMethod.Get, url);
+
+            // Act
+            var response = await client.SendAsync(request);
+            var content = await response.Content.ReadFromJsonAsync<RouteInfo>();
+
+            // Assert
+            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
+            Assert.Equal("AttributeRouteSlug", content.RouteName);
+        }
+
+        [Fact]
+        public async Task DynamicRoutesAreMatchedInDefinitionOrderOverPrecedence()
+        {
+            AppContext.SetSwitch("Microsoft.AspNetCore.Routing.UseCorrectCatchAllBehavior", isEnabled: true);
+            var factory = Factory
+                .WithWebHostBuilder(b => b.UseSetting("Scenario", RoutingWebSite.StartupForDynamicOrder.DynamicOrderScenarios.MultipleDynamicRoute));
+
+            var client = factory.CreateClient();
+
+            // Arrange
+            var url = "http://localhost/dynamic-order/specific/Controller=Home,Action=Index";
+            var request = new HttpRequestMessage(HttpMethod.Get, url);
+
+            // Act
+            var response = await client.SendAsync(request);
+            var content = await response.Content.ReadFromJsonAsync<RouteInfo>();
+
+            // Assert
+            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
+            Assert.True(content.RouteValues.TryGetValue("identifier", out var identifier));
+            Assert.Equal("slug", identifier);
+        }
+
+        [Fact]
+        public async Task ConventionalRoutesDefinedEarlierWinOverDynamicControllerRoutes()
+        {
+            AppContext.SetSwitch("Microsoft.AspNetCore.Routing.UseCorrectCatchAllBehavior", isEnabled: true);
+            var factory = Factory
+                .WithWebHostBuilder(b => b.UseSetting("Scenario", RoutingWebSite.StartupForDynamicOrder.DynamicOrderScenarios.ConventionalRouteDynamicRoute));
+
+            var client = factory.CreateClient();
+
+            // Arrange
+            var url = "http://localhost/conventional-dynamic-order-before";
+            var request = new HttpRequestMessage(HttpMethod.Get, url);
+
+            // Act
+            var response = await client.SendAsync(request);
+            var content = await response.Content.ReadFromJsonAsync<RouteInfo>();
+
+            // Assert
+            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
+            Assert.False(content.RouteValues.TryGetValue("identifier", out var identifier));
+        }
+
+        [Fact]
+        public async Task ConventionalRoutesDefinedLaterLooseToDynamicControllerRoutes()
+        {
+            AppContext.SetSwitch("Microsoft.AspNetCore.Routing.UseCorrectCatchAllBehavior", isEnabled: true);
+            var factory = Factory
+                .WithWebHostBuilder(b => b.UseSetting("Scenario", RoutingWebSite.StartupForDynamicOrder.DynamicOrderScenarios.ConventionalRouteDynamicRoute));
+
+            var client = factory.CreateClient();
+
+            // Arrange
+            var url = "http://localhost/conventional-dynamic-order-after";
+            var request = new HttpRequestMessage(HttpMethod.Get, url);
+
+            // Act
+            var response = await client.SendAsync(request);
+            var content = await response.Content.ReadFromJsonAsync<RouteInfo>();
+
+            // Assert
+            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
+            Assert.True(content.RouteValues.TryGetValue("identifier", out var identifier));
+            Assert.Equal("slug", identifier);
+        }
+
+        [Fact]
+        public async Task DynamicPagesDefinedEarlierWinOverDynamicControllers()
+        {
+            AppContext.SetSwitch("Microsoft.AspNetCore.Routing.UseCorrectCatchAllBehavior", isEnabled: true);
+            var factory = Factory
+                .WithWebHostBuilder(b => b.UseSetting("Scenario", RoutingWebSite.StartupForDynamicOrder.DynamicOrderScenarios.DynamicControllerAndPages));
+
+            var client = factory.CreateClient();
+            // Arrange
+            var url = "http://localhost/dynamic-order-page-controller-before";
+            var request = new HttpRequestMessage(HttpMethod.Get, url);
+
+            // Act
+            var response = await client.SendAsync(request);
+            var content = await response.Content.ReadAsStringAsync();
+
+            // Assert
+            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
+            Assert.Equal("Hello from dynamic page: /DynamicPagebefore", content);
+        }
+
+        [Fact]
+        public async Task DynamicPagesDefinedLaterLooseOverDynamicControllers()
+        {
+            AppContext.SetSwitch("Microsoft.AspNetCore.Routing.UseCorrectCatchAllBehavior", isEnabled: true);
+            var factory = Factory
+                .WithWebHostBuilder(b => b.UseSetting("Scenario", RoutingWebSite.StartupForDynamicOrder.DynamicOrderScenarios.DynamicControllerAndPages));
+
+            var client = factory.CreateClient();
+
+            // Arrange
+            var url = "http://localhost/dynamic-order-page-controller-after";
+            var request = new HttpRequestMessage(HttpMethod.Get, url);
+
+            // Act
+            var response = await client.SendAsync(request);
+            var content = await response.Content.ReadFromJsonAsync<RouteInfo>();
+
+            // Assert
+            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
+            Assert.True(content.RouteValues.TryGetValue("identifier", out var identifier));
+            Assert.Equal("controller", identifier);
+        }
+
+        private record RouteInfo(string RouteName, IDictionary<string,string> RouteValues);
+    }
+}

+ 30 - 0
src/Mvc/test/WebSites/RoutingWebSite/Controllers/DynamicOrderController.cs

@@ -0,0 +1,30 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+
+namespace Mvc.RoutingWebSite.Controllers
+{
+    public class DynamicOrderController : Controller
+    {
+        private readonly TestResponseGenerator _generator;
+
+        public DynamicOrderController(TestResponseGenerator generator)
+        {
+            _generator = generator;
+        }
+
+        [HttpGet("attribute-dynamic-order/{**slug}", Name = "AttributeRouteSlug")]
+        public IActionResult Get(string slug)
+        {
+            return _generator.Generate(Url.RouteUrl("AttributeRouteSlug", new { slug }));
+        }
+
+        [HttpGet]
+        public IActionResult Index()
+        {
+            return _generator.Generate(Url.RouteUrl(null, new { controller = "DynamicOrder", action = "Index" }));
+        }
+    }
+}

+ 1 - 1
src/Mvc/test/WebSites/RoutingWebSite/Pages/DynamicPage.cshtml

@@ -1,3 +1,3 @@
 @page
 @model RoutingWebSite.Pages.DynamicPageModel
-Hello from dynamic page: @Url.Page("")
+Hello from dynamic page: @Url.Page("")@RouteData.Values["identifier"]

+ 132 - 0
src/Mvc/test/WebSites/RoutingWebSite/StartupForDynamicOrder.cs

@@ -0,0 +1,132 @@
+// 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.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc.Infrastructure;
+using Microsoft.AspNetCore.Mvc.Routing;
+using Microsoft.AspNetCore.Routing;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+
+namespace RoutingWebSite
+{
+    // For by tests for dynamic routing to pages/controllers
+    public class StartupForDynamicOrder
+    {
+        public static class DynamicOrderScenarios
+        {
+            public const string AttributeRouteDynamicRoute = nameof(AttributeRouteDynamicRoute);
+            public const string MultipleDynamicRoute = nameof(MultipleDynamicRoute);
+            public const string ConventionalRouteDynamicRoute = nameof(ConventionalRouteDynamicRoute);
+            public const string DynamicControllerAndPages = nameof(DynamicControllerAndPages);
+        }
+
+        public IConfiguration Configuration { get; }
+
+        public StartupForDynamicOrder(IConfiguration configuration)
+        {
+            Configuration = configuration;
+        }
+
+        public void ConfigureServices(IServiceCollection services)
+        {
+            services
+                .AddMvc()
+                .AddNewtonsoftJson()
+                .SetCompatibilityVersion(CompatibilityVersion.Latest);
+
+            services.AddTransient<Transformer>();
+            services.AddScoped<TestResponseGenerator>();
+            services.AddSingleton<IActionContextAccessor, ActionContextAccessor>();
+
+            // Used by some controllers defined in this project.
+            services.Configure<RouteOptions>(options => options.ConstraintMap["slugify"] = typeof(SlugifyParameterTransformer));
+        }
+
+        public void Configure(IApplicationBuilder app)
+        {
+            var scenario = Configuration.GetValue<string>("Scenario");
+            app.UseRouting();
+            app.UseEndpoints(endpoints =>
+            {
+                // Route order definition is important for all these routes:
+                switch (scenario)
+                {
+                    case DynamicOrderScenarios.AttributeRouteDynamicRoute:
+                        endpoints.MapDynamicControllerRoute<Transformer>("attribute-dynamic-order/{**slug}", new TransformerState() { Identifier = "slug" });
+                        endpoints.MapControllers();
+                        break;
+                    case DynamicOrderScenarios.ConventionalRouteDynamicRoute:
+                        endpoints.MapControllerRoute(null, "{**conventional-dynamic-order-before:regex(^((?!conventional\\-dynamic\\-order\\-after).)*$)}", new { controller = "DynamicOrder", action = "Index" });
+                        endpoints.MapDynamicControllerRoute<Transformer>("{conventional-dynamic-order}", new TransformerState() { Identifier = "slug" });
+                        endpoints.MapControllerRoute(null, "conventional-dynamic-order-after", new { controller = "DynamicOrder", action = "Index" });
+                        break;
+                    case DynamicOrderScenarios.MultipleDynamicRoute:
+                        endpoints.MapDynamicControllerRoute<Transformer>("dynamic-order/{**slug}", new TransformerState() { Identifier = "slug" });
+                        endpoints.MapDynamicControllerRoute<Transformer>("dynamic-order/specific/{**slug}", new TransformerState() { Identifier = "specific" });
+                        break;
+                    case DynamicOrderScenarios.DynamicControllerAndPages:
+                        endpoints.MapDynamicPageRoute<Transformer>("{**dynamic-order-page-controller-before:regex(^((?!dynamic\\-order\\-page\\-controller\\-after).)*$)}", new TransformerState() { Identifier = "before", ForPages = true });
+                        endpoints.MapDynamicControllerRoute<Transformer>("{dynamic-order-page-controller}", new TransformerState() { Identifier = "controller" });
+                        endpoints.MapDynamicPageRoute<Transformer>("dynamic-order-page-controller-after", new TransformerState() { Identifier = "after", ForPages = true });
+                        break;
+                    default:
+                        throw new InvalidOperationException("Invalid scenario configuration.");
+                }
+            });
+
+            app.Map("/afterrouting", b => b.Run(c =>
+            {
+                return c.Response.WriteAsync("Hello from middleware after routing");
+            }));
+        }
+
+        private class TransformerState
+        {
+            public string Identifier { get; set; }
+            public bool ForPages { get; set; }
+        }
+
+        private class Transformer : DynamicRouteValueTransformer
+        {
+            // Turns a format like `controller=Home,action=Index` into an RVD
+            public override ValueTask<RouteValueDictionary> TransformAsync(HttpContext httpContext, RouteValueDictionary values)
+            {
+                var kvps = ((string)values?["slug"])?.Split("/")?.LastOrDefault()?.Split(",") ?? Array.Empty<string>();
+
+                // Go to index by default if the route doesn't follow the slug pattern, we want to make sure always match to
+                // test the order is applied
+                var state = (TransformerState)State;
+                var results = new RouteValueDictionary();
+                if (!state.ForPages)
+                {
+                    results["controller"] = "Home";
+                    results["action"] = "Index";
+                }
+                else
+                {
+                    results["Page"] = "/DynamicPage";
+                }
+
+                foreach (var kvp in kvps)
+                {
+                    var split = kvp.Split("=");
+                    if (split.Length == 2)
+                    {
+                        results[split[0]] = split[1];
+                    }
+                }
+
+                results["identifier"] = ((TransformerState)State).Identifier;
+
+                return new ValueTask<RouteValueDictionary>(results);
+            }
+        }
+    }
+}

+ 1 - 1
src/ProjectTemplates/Web.ProjectTemplates/Microsoft.DotNet.Web.ProjectTemplates.csproj

@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
-    <PackageId>Microsoft.DotNet.Web.ProjectTemplates.$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion)</PackageId>
+    <PackageId>Microsoft.DotNet.Web.ProjectTemplates.$(AspNetCoreMajorMinorVersion)</PackageId>
     <Description>ASP.NET Core Web Template Pack for Microsoft Template Engine</Description>
     <ComponentsWebAssemblyProjectsRoot>$(RepoRoot)src\Components\WebAssembly\</ComponentsWebAssemblyProjectsRoot>
   </PropertyGroup>

+ 1 - 1
src/ProjectTemplates/Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.csproj

@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
-    <PackageId>Microsoft.DotNet.Web.Spa.ProjectTemplates.$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion)</PackageId>
+    <PackageId>Microsoft.DotNet.Web.Spa.ProjectTemplates.$(AspNetCoreMajorMinorVersion)</PackageId>
     <Description>Single Page Application templates for ASP.NET Core</Description>
     <PackageTags>$(PackageTags);spa</PackageTags>
     <!-- By default Pack will exclude files that start with '.', we want to include those files -->

+ 1 - 1
src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/src/api-authorization/login-menu/login-menu.component.ts

@@ -1,7 +1,7 @@
 import { Component, OnInit } from '@angular/core';
 import { AuthorizeService } from '../authorize.service';
 import { Observable } from 'rxjs';
-import { map, tap } from 'rxjs/operators';
+import { map } from 'rxjs/operators';
 
 @Component({
   selector: 'app-login-menu',

+ 1 - 0
src/ProjectTemplates/test/WorkerTemplateTest.cs

@@ -25,6 +25,7 @@ namespace Templates.Test
         [OSSkipCondition(OperatingSystems.Linux, SkipReason = "https://github.com/dotnet/sdk/issues/12831")]
         [InlineData("C#")]
         [InlineData("F#")]
+        [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/25404")]
         public async Task WorkerTemplateAsync(string language)
         {
             Project = await ProjectFactory.GetOrCreateProject(

+ 1 - 1
src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/AttributeDirectiveWithViewImports_DesignTime.codegen.html

@@ -1 +1 @@
-                         
+~~~~~~~~~~ ~~~~~~~~~~~~~~

+ 6 - 6
src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/BasicComponent_DesignTime.codegen.html

@@ -1,9 +1,9 @@
-                       
-<div class="                ">
+~~~~~~~~~~~ ~~~~~~~~~~~
+<div class="~~~~~~~~~~~~~~~~">
     Hello world
-                                  
+    ~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
 </div>
 
-            
-                                 
- 
+~~~~~~~~~~ ~
+    ~~~~ ~~~~~~~~~~~~~~~~~~~~~~ ~
+~

+ 6 - 6
src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Basic_DesignTime.codegen.html

@@ -1,8 +1,8 @@
-<div class="                ">
+<div class="~~~~~~~~~~~~~~~~">
     Hello world
-                                  
+    ~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
 </div>
-   
-                    
- 
-<p class="                         " />
+~~ 
+    ~~~ ~~~ ~ ~~~~~~
+~
+<p class="~~~~~~~ ~~ ~~~~~ ~ ~~~~ ~" />

+ 11 - 11
src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives_DesignTime.codegen.html

@@ -1,15 +1,15 @@
-                                                                                   
+~~ ~~~~~ ~~~~ ~~~~~ ~~~~~~~~ ~~~~ ~~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~ ~~~~~~ ~~
 
-     
-      
-      "
+~~~~~
+~~~~~ 
+~~~~~ "
 
-      
-       
+~~~~~~
+~~~~~~ 
 
-       
-        
-                         
+~~~~~~~
+~~~~~~~ 
+~~~~~~~ ~~~~~~~~~~~~~~~~~
 
-          
-           
+~~~~~~~~~~
+~~~~~~~~~~ 

+ 2 - 2
src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InheritsViewModel_DesignTime.codegen.html

@@ -1,2 +1,2 @@
-                                    
-              
+~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~ ~~~~~~~

+ 2 - 2
src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InheritsWithViewImports_DesignTime.codegen.html

@@ -1,2 +1,2 @@
-     
-              
+~~~~~
+~~~~~~ ~~~~~~~

+ 3 - 3
src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InjectWithModel_DesignTime.codegen.html

@@ -1,3 +1,3 @@
-              
-                            
-                              
+~~~~~~ ~~~~~~~
+~~~~~~~ ~~~~~ ~~~~~~~~~~~~~~
+~~~~~~~ ~~~~~~~~~~~~~~~~~ ~~~~

+ 5 - 5
src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InjectWithSemicolon_DesignTime.codegen.html

@@ -1,5 +1,5 @@
-              
-                                
-                                 
-                                  
-                                    
+~~~~~~ ~~~~~~~
+~~~~~~~ ~~~~~ ~~~~~~~~~~~~~~~   
+~~~~~~~ ~~~~~~~~~~~~~~~~~ ~~~~~  
+~~~~~~~ ~~~~~ ~~~~~~~~~~~~~~~  ~  
+~~~~~~~ ~~~~~~~~~~~~~~~~~ ~~~~~  ~  

+ 1 - 1
src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Inject_DesignTime.codegen.html

@@ -1 +1 @@
-                            
+~~~~~~~ ~~~~~ ~~~~~~~~~~~~~~

+ 1 - 1
src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InvalidNamespaceAtEOF_DesignTime.codegen.html

@@ -1 +1 @@
-           Test.
+~~~~~~~~~~ Test.

+ 1 - 1
src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/MalformedPageDirective_DesignTime.codegen.html

@@ -1,4 +1,4 @@
-      "foo
+~~~~~ "foo
 
 <h1>About Us</h1>
 <p>We are awesome.</p>

+ 4 - 4
src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ModelExpressionTagHelper_DesignTime.codegen.html

@@ -1,6 +1,6 @@
-               
+~~~~~~ ~~~~~~~~
 
-                                           
+~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
 
-<input-test for="    " />
-<input-test for="      " />
+<input-test for="~~~~" />
+<input-test for="~~~~~~" />

+ 1 - 1
src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Model_DesignTime.codegen.html

@@ -1 +1 @@
-                                     
+~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ 2 - 2
src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/MultipleModels_DesignTime.codegen.html

@@ -1,2 +1,2 @@
-                            
-                                     
+~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
+~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ 2 - 2
src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/PageWithNamespace_DesignTime.codegen.html

@@ -1,3 +1,3 @@
-     
-                         
+~~~~~
+~~~~~~~~~~ ~~~~~~~~~~~~~~
 <h1>Hi There!</h1>

+ 1 - 1
src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorPageWithNoLeadingPageDirective_DesignTime.codegen.html

@@ -1,2 +1,2 @@
 <div>Some text here.</div>
-     
+~~~~~

+ 10 - 10
src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorPagesWithRouteTemplate_DesignTime.codegen.html

@@ -1,13 +1,13 @@
-              
+~~~~~ ~~~~~~~~
 
-               
-                                          
+~~~~~~ ~~~~~~~~
+~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-            
-                                     
-     
-                                        
-     
- 
+~~~~~~~~~~ ~
+    ~~~~~~ ~~~~~ ~~~~~~~~ ~ ~~~~~~~~~
+    ~
+        ~~~~~~ ~~~~~~ ~~~~ ~ ~~~~ ~~~~ ~
+    ~
+~
 
-<h1>New Customer            </h1>
+<h1>New Customer ~~~~~~~~~~~</h1>

+ 16 - 16
src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorPagesWithoutModel_DesignTime.codegen.html

@@ -1,28 +1,28 @@
-     
+~~~~~
 
-                          
-                                          
+~~~~~~~~~~~~~ ~~~ ~~~~~~~~
+~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-            
-                                                  
-     
-                             
-                                                         
-     
+~~~~~~~~~~ ~
+    ~~~~~~ ~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~ ~~~~~~~~~
+    ~
+        ~~~~ ~ ~~~~~~~~~~~~~~
+        ~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    ~
 
-                                    
+    ~~~~~~ ~~~~~~ ~~~~ ~ ~~~~ ~~~~ ~
 
-                         
-     
-                                        
-     
- 
+    ~~~~~~ ~~~~~ ~~~~~~~~
+    ~
+        ~~~~~~ ~~~~~~ ~~~~ ~ ~~~~ ~~~~ ~
+    ~
+~
 
 <h1>New Customer</h1>
 <form method="post" class="form-horizontal">
     <div class="text-danger"></div>
     <div class="form-group">
-        <label class="col-md-2 control-label">     </label>
+        <label class="col-md-2 control-label">~~~~~</label>
         <div class="col-md-10">
             <input class="form-control" />
             <span class="text-danger"></span>

+ 20 - 20
src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorPages_DesignTime.codegen.html

@@ -1,32 +1,32 @@
-     
+~~~~~
 
-               
-                          
-                                          
+~~~~~~ ~~~~~~~~
+~~~~~~~~~~~~~ ~~~ ~~~~~~~~
+~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-            
-                                     
-     
-                                                      
-         
-                                 
-                                                             
-         
+~~~~~~~~~~ ~
+    ~~~~~~ ~~~~~ ~~~~~~~~ ~ ~~~~~~~~~
+    ~
+        ~~~~~~ ~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~ ~~~~~~~~~
+        ~
+            ~~~~ ~ ~~~~~~~~~~~~~~
+            ~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+        ~
 
-                                        
-     
+        ~~~~~~ ~~~~~~ ~~~~ ~ ~~~~ ~~~~ ~
+    ~
 
-                         
-     
-                                        
-     
- 
+    ~~~~~~ ~~~~~ ~~~~~~~~
+    ~
+        ~~~~~~ ~~~~~~ ~~~~ ~ ~~~~ ~~~~ ~
+    ~
+~
 
 <h1>New Customer</h1>
 <form method="post" class="form-horizontal" >
     <div class="text-danger"></div>
     <div class="form-group">
-        <label class="col-md-2 control-label">           </label>
+        <label class="col-md-2 control-label">~~~~~~~~~~~</label>
         <div class="col-md-10">
             <input class="form-control" />
             <span class="text-danger"></span>

+ 8 - 8
src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Sections_DesignTime.codegen.html

@@ -1,14 +1,14 @@
-               
+~~~~~~ ~~~~~~~~
 
-                                           
+~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
 
-   
-                                         
- 
+~~ 
+    ~~~~~~ ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~
 
 <div>Some body</div>
 
-                   
+~~~~~~~~ ~~~~~~~~ ~
     <div>This is in Section 1</div>
-    <input-test for="    " />
- 
+    <input-test for="~~~~" />
+~

+ 4 - 4
src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/UsingDirectives_DesignTime.codegen.html

@@ -1,4 +1,4 @@
-                            
-                         
-             
-             
+~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
+~~~~~~ ~~~~~~~~~~~~~~~~~~
+~~~~~~ ~~~~~~
+~~~~~~ ~~~~~~

+ 5 - 5
src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ViewComponentTagHelper_DesignTime.codegen.html

@@ -1,6 +1,6 @@
-                          
-  
-                      
- 
+~~~~~~~~~~~~~ ~~~ ~~~~~~~~
+~~
+    ~~~ ~~~ ~ ~~~~~~~~
+~
 
-<vc:test first-name="    " bar=" World"></vc:test>
+<vc:test first-name="~~~~" bar=" World"></vc:test>

+ 1 - 1
src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ViewWithNamespace_DesignTime.codegen.html

@@ -1,2 +1,2 @@
-                         
+~~~~~~~~~~ ~~~~~~~~~~~~~~
 <h1>Hi There!</h1>

+ 1 - 1
src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/_ViewImports_DesignTime.codegen.html

@@ -1 +1 @@
-                                  
+~~~~~~~ ~~~~~~~~~~~~~~~~~~~ ~~~~~~

+ 3 - 3
src/Razor/Microsoft.AspNetCore.Razor.Language/src/RazorHtmlWriter.cs

@@ -1,4 +1,4 @@
-// Copyright (c) .NET Foundation. All rights reserved.
+// 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;
@@ -141,7 +141,7 @@ namespace Microsoft.AspNetCore.Razor.Language
                 return;
             }
 
-            // We're in non-HTML context. Let's replace all non-whitespace chars with a space.
+            // We're in non-HTML context. Let's replace all non-whitespace chars with a tilde(~).
             foreach (var c in content)
             {
                 if (char.IsWhiteSpace(c))
@@ -150,7 +150,7 @@ namespace Microsoft.AspNetCore.Razor.Language
                 }
                 else
                 {
-                    Builder.Append(' ');
+                    Builder.Append('~');
                 }
             }
         }

+ 1 - 1
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/AddTagHelperDirective_DesignTime.codegen.html

@@ -1 +1 @@
-                               
+~~~~~~~~~~~~~ ~~~ ~~~~~~~~~~~~~

+ 4 - 4
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/AttributeDirective_DesignTime.codegen.html

@@ -1,6 +1,6 @@
-                                                                   
-                                                              
-                                                                             
-                                                       
+~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~
+~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
 
 Hello World

+ 18 - 18
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Await_DesignTime.codegen.html

@@ -1,26 +1,26 @@
-            
-                                   
-     
-                     
-     
- 
+~~~~~~~~~~ ~
+    ~~~~~~ ~~~~~ ~~~~~~~~~~~~ ~~~~~
+    ~
+        ~~~~~~ ~~~~~~
+    ~
+~
 
 <section>
     <h1>Basic Asynchronous Expression Test</h1>
-    <p>Basic Asynchronous Expression:             </p>
-    <p>Basic Asynchronous Template:               </p>
-    <p>Basic Asynchronous Statement:                  </p>
-    <p>Basic Asynchronous Statement Nested:    <b>            </b>  </p>
-    <p>Basic Incomplete Asynchronous Statement:       </p>
+    <p>Basic Asynchronous Expression: ~~~~~~ ~~~~~</p>
+    <p>Basic Asynchronous Template: ~~~~~~~ ~~~~~~</p>
+    <p>Basic Asynchronous Statement: ~~ ~~~~~ ~~~~~~ ~</p>
+    <p>Basic Asynchronous Statement Nested: ~~ <b>~~~~~~ ~~~~~</b> ~</p>
+    <p>Basic Incomplete Asynchronous Statement: ~~~~~~</p>
 </section>
 
 <section>
     <h1>Advanced Asynchronous Expression Test</h1>
-    <p>Advanced Asynchronous Expression:                 </p>
-    <p>Advanced Asynchronous Expression Extended:                     </p>
-    <p>Advanced Asynchronous Template:                          </p>
-    <p>Advanced Asynchronous Statement:                                           </p>
-    <p>Advanced Asynchronous Statement Extended:                         </p>
-    <p>Advanced Asynchronous Statement Nested:    <b>                            </b>  </p>
-    <p>Advanced Incomplete Asynchronous Statement:                     </p>
+    <p>Advanced Asynchronous Expression: ~~~~~~ ~~~~~~ ~~</p>
+    <p>Advanced Asynchronous Expression Extended: ~~~~~~ ~~~~~~~~~~ ~~</p>
+    <p>Advanced Asynchronous Template: ~~~~~~~ ~~~~~~~~~~ ~~~~~~</p>
+    <p>Advanced Asynchronous Statement: ~~ ~~~~~ ~~~~~~~~~~~~~~ ~~~~~~ ~~~~~~~~~ ~</p>
+    <p>Advanced Asynchronous Statement Extended: ~~ ~~~~~ ~~~~~~~~~~ ~~ ~</p>
+    <p>Advanced Asynchronous Statement Nested: ~~ <b>~~~~~~ ~~~~~~~~~~~~~~ ~~~~~~</b> ~</p>
+    <p>Advanced Incomplete Asynchronous Statement: ~~~~~~ ~~~~~~~~~~~~~</p>
 </section>

+ 25 - 25
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Blocks_DesignTime.codegen.html

@@ -1,37 +1,37 @@
-  
-              
- 
+~~
+    ~~~ ~ ~ ~~
+~
 
-                 
-    <p>Hello from C#, #    </p>
-           
- 
+~~~~~~~~ ~~ ~~~ ~
+    <p>Hello from C#, #~~~~</p>
+    ~ ~~ ~~
+~
 
-              
+~~~~~ ~~ ~~~ ~
     <p>We wrote 10 lines!</p>
- 
+~
 
-            
-            
+~~~~~~~~~~ ~
+    ~~~~ ~~~
         <p>No really, we wrote 10 lines!</p>
-              
-            
+        ~~~~~~
+    ~~~~~~~~
         <p>Actually, we didn't...</p>
-              
- 
+        ~~~~~~
+~
 
-                                  
-    <p>Hello again from C#, #    </p>
- 
+~~~~~~~~ ~ ~ ~~ ~ ~~ ~~~ ~ ~~ ~~ ~
+    <p>Hello again from C#, #~~~~</p>
+~
 
-      
+~~~~ ~
     <p>That time, we wrote 5 lines!</p>
-                       
-    <p>Oh no! An error occurred:              </p>
- 
+~ ~~~~~~~~~~~~~~~ ~~~ ~
+    <p>Oh no! An error occurred: ~~~~~~~~~~~~~</p>
+~
 
-<p>i is now   </p>
+<p>i is now ~~</p>
 
-                     
+~~~~~~~~~ ~~~~~~~~~ ~
     <p>This block is locked, for your security!</p>
- 
+~

+ 32 - 32
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CSharp7_DesignTime.codegen.html

@@ -1,43 +1,43 @@
 <body>
-      
-                                                                                                    
-         
-                                                
-          
+    ~~
+        ~~~ ~~~~~~~~~~ ~ ~~~ ~~~~~~~~~~~~~~~~~~ ~~~~~~~ ~~~~~~~~~~ ~~~~~~ ~~~~~~~~~ ~~~~~~ ~~~~~~~~~
+        ~
+            ~~~~~~ ~~~~~ ~ ~~~~~~~~ ~~~~~~ ~~~~~
+        ~~
 
-                                                     
+        ~~ ~~~~ ~~ ~~~ ~~ ~ ~~~~ ~~~~ ~~~~~~ ~~~~~ ~~
 
-                                  
-                                                   
-                                                           
-                                                                                             
-     
+        ~~~ ~~~~~~~ ~ ~~~~~~~~~~~~
+        ~~~~ ~~~~~~~~~~~~~~~~~~~ ~ ~~~~~~~~~~~~~~~~
+        ~~~~~~ ~~~~~~~~~~~~~~~~ ~ ~~~~~~~~~~~~~~~~~~~~~~~~~
+        ~~~~~~~ ~~~~~~~~~~~ ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    ~
 
-                                                           
-     
-                                      
-         
-                           
-         
-     
+    ~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~ ~~~ ~~~ ~~~~~~~
+    ~
+        ~~ ~~~~~~~~~~~~ ~~ ~~~~ ~~~~~~
+        ~
+            ~~ ~~ ~~~~~~~~~
+        ~
+    ~
     <p>
-        Here's a very unique number:                                                                  
+        Here's a very unique number: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     </p>
 
     <div>
-                                                                
+        ~~~~~~~~~ ~~~~~~~ ~~~~~ ~~~~~~~~~~~~~ ~~ ~~~~~ ~~~~~~ ~~
     </div>
 
-                         
-     
-                     
-                           
-                  
-                                               
-                                
-                  
-                  
-                                        
-                  
-     
+    ~~~~~~~ ~~~~~~~~~~~~~
+    ~
+        ~~~~ ~~~ ~~~~
+            ~~ ~~ ~~~~~~~~~
+            ~~~~~~
+        ~~~~ ~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~
+            ~~ ~~ ~~~~ ~~~~~~~~~
+            ~~~~~~
+        ~~~~ ~~~~~
+            ~~ ~~ ~~~~ ~~~~ ~~ ~~~~~~~~~
+            ~~~~~~
+    ~
 </body>

+ 52 - 52
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CSharp8_DesignTime.codegen.html

@@ -1,67 +1,67 @@
-                                 
+~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-  
-                                               
-     
-                    
-     
+~~
+    ~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~
+    ~
+        ~~~~~~ ~~~~~
+    ~
 
-                                                   
-     
+    ~~~~~ ~~~~~~~ ~~~~ ~~~ ~~ ~~~~~~~~~~~~~~~~~~~~~
+    ~
 
-     
+    ~
 
-                       
-                                                           
+    ~~~~~ ~~~~~ ~ ~~~~~
+    ~~~~~ ~~~ ~~~~~~~~~~ ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-                                      
-                             
-                             
-     
-                              
-     
- 
+    ~~~ ~~~~~ ~ ~~~~~~~~~~~~~~~~~~~~~~
+    ~~~ ~~~~~~~~ ~ ~~~~~~~~~~
+    ~~~~~~ ~~~~~~~~ ~~~~~~~~~
+    ~
+        ~~~~~~ ~~~~~~~~~~~~~~~
+    ~
+~
 
-            
-                
+~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~
 
-                 
- 
-                                   
-                                     
-                      
-  
+~~~~~~~~~~ ~~~~~~
+~
+    ~~~~~~~~~~~~~~ ~~ ~~~~ ~~~~~~~~
+    ~~~~~~~~~~~~~~~ ~~ ~~~~ ~~~~~~~~~
+    ~ ~~ ~~~~ ~~~~~~~~
+~~
 
-                                                
- 
-        
- 
+~~~~~~ ~~~~~~~ ~~~~ ~~~ ~~ ~~~~~~~~~~~~~~~~~~~~~
+~
+    ~~~~
+~
 
-             
-                     
-                      
+~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~
 
-            
-                 
-     
-              
-              
-     
+~~~~~~~~~~ ~
+    ~~~~ ~~~~~~~~
+    ~
+        ~~~~~~
+        ~~~~~~
+    ~
 
-                                                     
-     
-                                                                 
-                                      
-     
+    ~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~
+    ~
+        ~~~ ~~~~~~~~~~~ ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+        ~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~
+    ~
 
-                                       
+    ~~~~~~~ ~~~~~~ ~~~~~~ ~ ~~~~ ~~~~ ~
 
-                                          
+    ~~~~~~~ ~~~~~~~~~ ~~~~~~ ~ ~~~~ ~~~~ ~
 
-                                                          
+    ~~~~~~~ ~~~~~~~~~~~ ~~~~~~~~ ~~~~~~~~~~~ ~ ~~~~ ~~~~ ~
 
-                       
-     
-                                         
-     
- 
+    ~~~~~~~ ~~~~~ ~~~~~
+    ~
+        ~~~~~~ ~~~~~~~ ~~~~ ~ ~~~~ ~~~~ ~
+    ~
+~

+ 1 - 1
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CodeBlockAtEOF_DesignTime.codegen.html

@@ -1 +1 @@
-  
+~~

+ 4 - 4
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CodeBlockWithTextElement_DesignTime.codegen.html

@@ -1,4 +1,4 @@
-  
-               <text>foo</text> 		
-              			<text>bar       </text>
- 
+~~
+    ~~~ ~ ~ ~~ <text>foo</text> 		
+    ~~~ ~ ~ ~~			<text>bar ~~~~~~</text>
+~

+ 5 - 5
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CodeBlock_DesignTime.codegen.html

@@ -1,5 +1,5 @@
-  
-                                  
-                                                                    
-     
- 
+~~
+    ~~~~~~~ ~ ~ ~~ ~ ~~ ~~~ ~~~~ ~
+        ~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~ ~~ ~ ~~~~~~~~~~~~ ~ ~~~~~~~~
+    ~
+~

+ 12 - 12
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ConditionalAttributes_DesignTime.codegen.html

@@ -1,15 +1,15 @@
-  
-                  
-                    
+~~
+    ~~~ ~~ ~ ~~~~~
+    ~~~ ~~~ ~ ~~~~~~
     <a href="Foo" />
-    <p class="    " />
-    <p class="foo     " />
-    <p class="     foo" />
-    <input type="checkbox" checked="   " />
-    <input type="checkbox" checked="foo    " />
-    <p class="                         " />
+    <p class="~~~~" />
+    <p class="foo ~~~~" />
+    <p class="~~~~ foo" />
+    <input type="checkbox" checked="~~~" />
+    <input type="checkbox" checked="foo ~~~" />
+    <p class="~~~~~~~ ~~ ~~~~~ ~ ~~~~ ~" />
     <a href="~/Foo" />
-    <script src="                                             " type="text/javascript"></script>
-    <script src="                                                             " type="text/javascript"></script>
+    <script src="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" type="text/javascript"></script>
+    <script src="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" type="text/javascript"></script>
     <script src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.16/jquery-ui.min.js" type="text/javascript"></script>
- 
+~

+ 8 - 8
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/DesignTime_DesignTime.codegen.html

@@ -1,15 +1,15 @@
 <div>
-                                           
-    <p>This is item #  </p>
-             
+            ~~~~~~~~ ~ ~ ~~ ~ ~~ ~~~ ~~~~ ~
+    <p>This is item #~~</p>
+            ~
 </div>
 
 <p>
-               
-      <p>Bar      Biz</p> 
+~~~~~~~~~~~~~~~
+~~~~~~<p>Bar ~~~~ Biz</p>~
 </p>
 
-                 
+~~~~~~~~ ~~~~~~ ~
     <p>Foo</p>
-        
- 
+    ~~~~
+~

+ 1 - 1
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/EmptyCodeBlock_DesignTime.codegen.html

@@ -1,3 +1,3 @@
 This is markup
 
-   
+~~~

+ 1 - 1
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/EmptyExplicitExpression_DesignTime.codegen.html

@@ -1,3 +1,3 @@
 This is markup
 
-   
+~~~

+ 3 - 3
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/EmptyImplicitExpressionInCode_DesignTime.codegen.html

@@ -1,3 +1,3 @@
-  
-     
- 
+~~
+    ~
+~

+ 1 - 1
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/EmptyImplicitExpression_DesignTime.codegen.html

@@ -1,3 +1,3 @@
 This is markup
 
- !
+~!

+ 1 - 1
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExplicitExpressionAtEOF_DesignTime.codegen.html

@@ -1,3 +1,3 @@
 This is markup
 
-  
+~~

+ 1 - 1
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExplicitExpressionWithMarkup_DesignTime.codegen.html

@@ -1 +1 @@
-<div>   </div>
+<div>~~~</div>

+ 1 - 1
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExplicitExpression_DesignTime.codegen.html

@@ -1 +1 @@
-1 + 1 =       
+1 + 1 = ~~~~~~

+ 11 - 11
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExpressionsInCode_DesignTime.codegen.html

@@ -1,16 +1,16 @@
-  
-                      
-                       
- 
+~~
+    ~~~~~~ ~~~ ~ ~~~~~
+    ~~~~~~ ~~~ ~ ~~~~~~
+~
 
-                  
-        
-        
+~~~~~~~ ~~ ~~~~~ ~
+    ~~~~
+~ ~~~~ ~
     <p>Foo is Null!</p>
- 
+~
 
 <p>
-                                 
-                            
- 
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~
+    ~~~~~~~~~~~~~~~~~~ ~~~~~
+~
 </p>

+ 5 - 5
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/FunctionsBlockMinimal_DesignTime.codegen.html

@@ -1,7 +1,7 @@
 
 
-	           
-                          
-	                   
- 
- 
+	~~~~~~~~~~~
+~~~~~~ ~~~~~~~~~~ ~~~~~~ ~
+	~~~~~~ ~~~~~ ~ ~~~~
+~
+~

+ 9 - 9
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/FunctionsBlock_DesignTime.codegen.html

@@ -1,12 +1,12 @@
-            
+~~~~~~~~~~ ~
 
- 
+~
 
-            
-                                
-                             
-                            
-     
- 
+~~~~~~~~~~ ~
+    ~~~~~~ ~~~~~ ~ ~~~ ~~~~~~~~~
+    ~~~~~~~ ~~~ ~~~~~~~~~~~ ~
+        ~~~~~~ ~~~~~~~~~~~~~
+    ~
+~
 
-Here's a random number:             
+Here's a random number: ~~~~~~~~~~~~

+ 3 - 3
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/HiddenSpansInCode_DesignTime.codegen.html

@@ -1,3 +1,3 @@
-  
-        
- 
+~~
+    ~~~~
+~

+ 4 - 4
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Implements_DesignTime.codegen.html

@@ -1,5 +1,5 @@
-                       
+~~~~~~~~~~~ ~~~~~~~~~~~
 
-            
-                                  
- 
+~~~~~~~~~~ ~
+    ~~~~ ~~~~~~~~~~~~~~~~~~~~~ ~ ~
+~

+ 1 - 1
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ImplicitExpressionAtEOF_DesignTime.codegen.html

@@ -1,3 +1,3 @@
 This is markup
 
- 
+~

+ 3 - 3
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ImplicitExpression_DesignTime.codegen.html

@@ -1,3 +1,3 @@
-                               
-    <p>This is item #  </p>
- 
+~~~~~~~~ ~ ~ ~~ ~ ~~ ~~~ ~~~~ ~
+    <p>This is item #~~</p>
+~

+ 18 - 18
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives_DesignTime.codegen.html

@@ -1,25 +1,25 @@
-                                                                                   
+~~ ~~~~~ ~~~~ ~~~~~ ~~~~~~~~ ~~~~ ~~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~ ~~~~~~ ~~
 
-             
-              
-               
+~~~~~~~~~~~~~
+~~~~~~~~~~~~~ 
+~~~~~~~~~~~~~ ~
 
-                
-                 
-                  
+~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~ 
+~~~~~~~~~~~~~~~~ ~
 
-                
-                 
-                  
+~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~ 
+~~~~~~~~~~~~~~~~ ~
 
-         
-          
+~~~~~~~~~
+~~~~~~~~~ 
 
-          
-           
+~~~~~~~~~~
+~~~~~~~~~~ 
 
-        
-         
+~~~~~~~~
+~~~~~~~~ 
 
-         {
-            
+~~~~~~~~ {
+~~~~~~~~~~ ~

+ 2 - 2
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Inherits_DesignTime.codegen.html

@@ -1,3 +1,3 @@
-                               
+~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
 
-      
+~~~~~~

+ 2 - 2
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InlineBlocks_DesignTime.codegen.html

@@ -1,3 +1,3 @@
-             (string link) {
-    <a href="                                   <text>#</text>  " />
+~~~~~~~~ ~~~~(string link) {
+    <a href="~~~~~~~~ ~~ ~~~~~ ~ ~~~~~ ~ ~~~~ ~ <text>#</text> ~" />
 }

+ 26 - 26
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Instrumented_DesignTime.codegen.html

@@ -1,38 +1,38 @@
-  
-              
-               <p>Bar</p> 
-      Hello, World
+~~
+    ~~~ ~ ~ ~~
+    ~~~ ~~~ ~ ~<p>Bar</p>~
+    ~~Hello, World
     <p>Hello, World</p>
- 
+~
 
-                 
-    <p>Hello from C#, #    </p>
-           
- 
+~~~~~~~~ ~~ ~~~ ~
+    <p>Hello from C#, #~~~~</p>
+    ~ ~~ ~~
+~
 
-              
+~~~~~ ~~ ~~~ ~
     <p>We wrote 10 lines!</p>
- 
+~
 
-            
-            
+~~~~~~~~~~ ~
+    ~~~~ ~~~
         <p>No really, we wrote 10 lines!</p>
-              
-            
+        ~~~~~~
+    ~~~~~~~~
         <p>Actually, we didn't...</p>
-              
- 
+        ~~~~~~
+~
 
-                                  
-    <p>Hello again from C#, #    </p>
- 
+~~~~~~~~ ~ ~ ~~ ~ ~~ ~~~ ~ ~~ ~~ ~
+    <p>Hello again from C#, #~~~~</p>
+~
 
-      
+~~~~ ~
     <p>That time, we wrote 5 lines!</p>
-                       
-    <p>Oh no! An error occurred:              </p>
- 
+~ ~~~~~~~~~~~~~~~ ~~~ ~
+    <p>Oh no! An error occurred: ~~~~~~~~~~~~~</p>
+~
 
-                     
+~~~~~~~~~ ~~~~~~~~~ ~
     <p>This block is locked, for your security!</p>
- 
+~

+ 5 - 5
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/MarkupInCodeBlock_DesignTime.codegen.html

@@ -1,5 +1,5 @@
-  
-                                  
-        <p>Hello from C#, #               </p>
-     
- 
+~~
+    ~~~~~~~ ~ ~ ~~ ~ ~~ ~~~ ~~~~ ~
+        <p>Hello from C#, #~~~~~~~~~~~~~~~</p>
+    ~
+~

+ 36 - 36
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Markup_InCodeBlocks_DesignTime.codegen.html

@@ -1,45 +1,45 @@
 
-  
-                             
-     
-                                                   
-      
-
-                                 
-     
-        <div>            </div>
-     
- 
-
-                         
-                                 
-
-            
-                                        
-     
-                                             
+~~
+    ~~~ ~~~~~~ ~ ~~~ ~~~~~~~~
+    ~
+        ~~~ ~~~~~~~~ ~ ~~~~ ~ ~~~~~~~~~ ~~~ ~ ~~~ ~
+    ~~
+
+    ~~~~ ~~~~~~~~~~~~~~~~ ~~~~~~~
+    ~
+        <div>~~~~~~~~~~~~</div>
+    ~
+~
+
+~~ ~~~~~~~~~~~~~~~~~~~~ ~
+~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~
+
+~~~~~~~~~~ ~
+    ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~
+    ~
+        ~~~ ~~~~~~~~~ ~ ~~~~~ ~~~~~~~~~~~~~~~
         <div>
-            <h3>Happy birthday             !</h3>
+            <h3>Happy birthday ~~~~~~~~~~~~!</h3>
         </div>
 
         <ul>
-                                                  
-         
-            <li>     Happy birthday!</li>
-         
+        ~~~~ ~~~~ ~ ~ ~~ ~ ~ ~~~~~~~~~~ ~ ~~~ ~~~~
+        ~
+            <li>~~~~ Happy birthday!</li>
+        ~
         </ul>
 
-                            
-         
-                   
-         
+        ~~ ~~~~~~~~~~~ ~ ~~~
+        ~
+            ~~~~~~~
+        ~
 
         <h4>Secret message</h4>
-     
-
-                
-     
-                                        
-                                    
-     
- 
+    ~
+
+    ~~~~~ ~~~~~~
+    ~
+        ~~~~~~ ~~~~~~ ~~~~ ~ ~~~~ ~~~~ ~
+        ~~~~~~ ~~~ ~~~ ~ ~~~~ ~~~~ ~
+    ~
+~

+ 6 - 6
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NestedCSharp_DesignTime.codegen.html

@@ -1,8 +1,8 @@
-  
-                                         
-     
+~~
+    ~~~~~~~~ ~~~~ ~~~~~~ ~~ ~~~~~~~~~~~~~
+    ~
         <div>
-                             .
+            ~~~~~~~~~~~~~~~~~.
         </div>
-     
- 
+    ~
+~

+ 4 - 4
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NestedCodeBlocks_DesignTime.codegen.html

@@ -1,4 +1,4 @@
-          
-              
-     
- 
+~~~~~~~~ ~
+    ~~~~~~~~ ~
+    ~
+~

+ 26 - 26
src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NoLinePragmas_DesignTime.codegen.html

@@ -1,38 +1,38 @@
-  
-              
- 
+~~
+    ~~~ ~ ~ ~~
+~
 
-                 
-    <p>Hello from C#, #    </p>
-           
- 
+~~~~~~~~ ~~ ~~~ ~
+    <p>Hello from C#, #~~~~</p>
+    ~ ~~ ~~
+~
 
-              
+~~~~~ ~~ ~~~ ~
     <p>We wrote 10 lines!</p>
- 
+~
 
-            
-            
+~~~~~~~~~~ ~
+    ~~~~ ~~~
         <p>No really, we wrote 10 lines!</p>
-              
-            
+        ~~~~~~
+    ~~~~~~~~
         <p>Actually, we didn't...</p>
-              
- 
+        ~~~~~~
+~
 
-                                  
-    <p>Hello again from C#, #    </p>
- 
+~~~~~~~~ ~ ~ ~~ ~ ~~ ~~~ ~ ~~ ~~ ~
+    <p>Hello again from C#, #~~~~</p>
+~
 
-      
+~~~~ ~
     <p>That time, we wrote 5 lines!</p>
-                       
-    <p>Oh no! An error occurred:              </p>
- 
+~ ~~~~~~~~~~~~~~~ ~~~ ~
+    <p>Oh no! An error occurred: ~~~~~~~~~~~~~</p>
+~
 
-                                  
-<p>i is now   </p>
+~~ ~~~~ ~~~ ~~ ~~~~~~~~~~ ~~ ~~ ~~
+<p>i is now ~~</p>
 
-                     
+~~~~~~~~~ ~~~~~~~~~ ~
     <p>This block is locked, for your security!</p>
- 
+~

Некоторые файлы не были показаны из-за большого количества измененных файлов