text:
[Helix] Turn on template tests

And see what explodes/is missing
Starting point for https://github.com/aspnet/AspNetCore/issues/8270

Lots of failures still https://mc.dot.net/#/user/aspnetcore/pr~2Faspnet~2Faspnetcore/ci/20190306.50/workItem/ProjectTemplates.Tests-netcoreapp3.0/wilogs

For visibility the top of the test output looks like:
Starting test execution, please wait...
[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.4.1 (64-bit .NET Core 3.0.0-preview4-27428-4)
[xUnit.net 00:00:01.09]   Discovering: ProjectTemplates.Tests
[xUnit.net 00:00:01.19]   Discovered:  ProjectTemplates.Tests
[xUnit.net 00:00:01.19]   Starting:    ProjectTemplates.Tests
[xUnit.net 00:00:01.30]     Templates.Test.ByteOrderMarkTest.CheckForByteOrderMark_ForAllTemplates(projectName: "Web.ProjectTemplates") [FAIL]
[xUnit.net 00:00:01.30]       System.IO.DirectoryNotFoundException : Could not find a part of the path 'C:\dotnetbuild\work\Web.ProjectTemplates\content'.
[xUnit.net 00:00:01.30]       Stack Trace:
[xUnit.net 00:00:01.30]            at System.IO.Enumeration.FileSystemEnumerator`1.CreateDirectoryHandle(String path, Boolean ignoreNotFound)
[xUnit.net 00:00:01.31]            at System.IO.Enumeration.FileSystemEnumerator`1..ctor(String directory, EnumerationOptions options)
[xUnit.net 00:00:01.31]            at System.IO.Enumeration.FileSystemEnumerable`1..ctor(String directory, FindTransform transform, EnumerationOptions options)
[xUnit.net 00:00:01.31]            at System.IO.Enumeration.FileSystemEnumerableFactory.UserDirectories(String directory, String expression, EnumerationOptions options)
[xUnit.net 00:00:01.31]            at System.IO.Directory.InternalEnumeratePaths(String path, String searchPattern, SearchTarget searchTarget, EnumerationOptions options)
[xUnit.net 00:00:01.31]            at System.IO.Directory.GetDirectories(String path, String searchPattern)
[xUnit.net 00:00:01.31]         /_/src/ProjectTemplates/test/ByteOrderMarkTest.cs(29,0): at Templates.Test.ByteOrderMarkTest.CheckForByteOrderMark_ForAllTemplates(String projectName)
[xUnit.net 00:00:01.32]     Templates.Test.ByteOrderMarkTest.CheckForByteOrderMark_ForAllTemplates(projectName: "Web.Spa.ProjectTemplates") [FAIL]
[xUnit.net 00:00:01.32]       System.IO.DirectoryNotFoundException : Could not find a part of the path 'C:\dotnetbuild\work\Web.Spa.ProjectTemplates\content'.
[xUnit.net 00:00:01.32]       Stack Trace:
[xUnit.net 00:00:01.32]            at System.IO.Enumeration.FileSystemEnumerator`1.CreateDirectoryHandle(String path, Boolean ignoreNotFound)
[xUnit.net 00:00:01.32]            at System.IO.Enumeration.FileSystemEnumerator`1..ctor(String directory, EnumerationOptions options)
[xUnit.net 00:00:01.32]            at System.IO.Enumeration.FileSystemEnumerable`1..ctor(String directory, FindTransform transform, EnumerationOptions options)
[xUnit.net 00:00:01.32]            at System.IO.Enumeration.FileSystemEnumerableFactory.UserDirectories(String directory, String expression, EnumerationOptions options)
[xUnit.net 00:00:01.32]            at System.IO.Directory.InternalEnumeratePaths(String path, String searchPattern, SearchTarget searchTarget, EnumerationOptions options)
[xUnit.net 00:00:01.32]            at System.IO.Directory.GetDirectories(String path, String searchPattern)
[xUnit.net 00:00:01.32]         /_/src/ProjectTemplates/test/ByteOrderMarkTest.cs(29,0): at Templates.Test.ByteOrderMarkTest.CheckForByteOrderMark_ForAllTemplates(String projectName)
[xUnit.net 00:00:01.33]     Templates.Test.CdnScriptTagTests.FallbackSrcContent_Matches_CDNContent [FAIL]
[xUnit.net 00:00:01.33]       System.TypeInitializationException : The type initializer for 'Templates.Test.CdnScriptTagTests' threw an exception.
[xUnit.net 00:00:01.33]       ---- System.InvalidOperationException : Could not find any ancestor directory containing .gitmodules at or above C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Work\53dfbf3f-82c5-4109-baf0-0791192629d4\Exec\
[xUnit.net 00:00:01.33]       Stack Trace:
[xUnit.net 00:00:01.33]         /_/src/ProjectTemplates/test/CdnScriptTagTests.cs(101,0): at Templates.Test.CdnScriptTagTests.get_FallbackSrcCheckData()
[xUnit.net 00:00:01.33]         ----- Inner Stack Trace -----
[xUnit.net 00:00:01.33]         /_/src/ProjectTemplates/test/Helpers/MondoHelpers.cs(41,0): at Templates.Test.Helpers.MondoHelpers.FindAncestorDirectoryContaining(String filename)
[xUnit.net 00:00:01.33]         /_/src/ProjectTemplates/test/Helpers/MondoHelpers.cs(25,0): at Templates.Test.Helpers.MondoHelpers.GetMondoRepoRoot()
[xUnit.net 00:00:01.33]         /_/src/ProjectTemplates/test/Helpers/MondoHelpers.cs(13,0): at Templates.Test.Helpers.MondoHelpers.GetNupkgFiles()
[xUnit.net 00:00:01.33]         /_/src/ProjectTemplates/test/CdnScriptTagTests.cs(33,0): at Templates.Test.CdnScriptTagTests..cctor()
[xUnit.net 00:00:01.33]     Templates.Test.CdnScriptTagTests.CheckScriptSubresourceIntegrity [FAIL]
[xUnit.net 00:00:01.33]       System.TypeInitializationException : The type initializer for 'Templates.Test.CdnScriptTagTests' threw an exception.
[xUnit.net 00:00:01.33]       ---- System.InvalidOperationException : Could not find any ancestor directory containing .gitmodules at or above C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Work\53dfbf3f-82c5-4109-baf0-0791192629d4\Exec\
[xUnit.net 00:00:01.33]       Stack Trace:
[xUnit.net 00:00:01.33]         /_/src/ProjectTemplates/test/CdnScriptTagTests.cs(55,0): at Templates.Test.CdnScriptTagTests.get_SubresourceIntegrityCheckScriptData()
[xUnit.net 00:00:01.33]         ----- Inner Stack Trace -----
[xUnit.net 00:00:01.33]         /_/src/ProjectTemplates/test/Helpers/MondoHelpers.cs(41,0): at Templates.Test.Helpers.MondoHelpers.FindAncestorDirectoryContaining(String filename)
[xUnit.net 00:00:01.33]         /_/src/ProjectTemplates/test/Helpers/MondoHelpers.cs(25,0): at Templates.Test.Helpers.MondoHelpers.GetMondoRepoRoot()
[xUnit.net 00:00:01.33]         /_/src/ProjectTemplates/test/Helpers/MondoHelpers.cs(13,0): at Templates.Test.Helpers.MondoHelpers.GetNupkgFiles()
[xUnit.net 00:00:01.33]         /_/src/ProjectTemplates/test/CdnScriptTagTests.cs(33,0): at Templates.Test.CdnScriptTagTests..cctor()
[xUnit.net 00:00:01.33]     Templates.Test.CdnScriptTagTests.CheckLinkSubresourceIntegrity [FAIL]
[xUnit.net 00:00:01.33]       System.TypeInitializationException : The type initializer for 'Templates.Test.CdnScriptTagTests' threw an exception.
[xUnit.net 00:00:01.33]       ---- System.InvalidOperationException : Could not find any ancestor directory containing .gitmodules at or above C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Work\53dfbf3f-82c5-4109-baf0-0791192629d4\Exec\
[xUnit.net 00:00:01.33]       Stack Trace:
[xUnit.net 00:00:01.33]         /_/src/ProjectTemplates/test/CdnScriptTagTests.cs(67,0): at Templates.Test.CdnScriptTagTests.get_SubresourceIntegrityCheckLinkData()
[xUnit.net 00:00:01.33]         ----- Inner Stack Trace -----
[xUnit.net 00:00:01.33]         /_/src/ProjectTemplates/test/Helpers/MondoHelpers.cs(41,0): at Templates.Test.Helpers.MondoHelpers.FindAncestorDirectoryContaining(String filename)
[xUnit.net 00:00:01.33]         /_/src/ProjectTemplates/test/Helpers/MondoHelpers.cs(25,0): at Templates.Test.Helpers.MondoHelpers.GetMondoRepoRoot()
[xUnit.net 00:00:01.33]         /_/src/ProjectTemplates/test/Helpers/MondoHelpers.cs(13,0): at Templates.Test.Helpers.MondoHelpers.GetNupkgFiles()
[xUnit.net 00:00:01.33]         /_/src/ProjectTemplates/test/CdnScriptTagTests.cs(33,0): at Templates.Test.CdnScriptTagTests..cctor()
Failed   Templates.Test.ByteOrderMarkTest.CheckForByteOrderMark_ForAllTemplates(projectName: "Web.ProjectTemplates")
Error Message:
 System.IO.DirectoryNotFoundException : Could not find a part of the path 'C:\dotnetbuild\work\Web.ProjectTemplates\content'.
Stack Trace:
   at System.IO.Enumeration.FileSystemEnumerator`1.CreateDirectoryHandle(String path, Boolean ignoreNotFound)
   at System.IO.Enumeration.FileSystemEnumerator`1..ctor(String directory, EnumerationOptions options)
   at System.IO.Enumeration.FileSystemEnumerable`1..ctor(String directory, FindTransform transform, EnumerationOptions options)
   at System.IO.Enumeration.FileSystemEnumerableFactory.UserDirectories(String directory, String expression, EnumerationOptions options)
   at System.IO.Directory.InternalEnumeratePaths(String path, String searchPattern, SearchTarget searchTarget, EnumerationOptions options)
   at System.IO.Directory.GetDirectories(String path, String searchPattern)
   at Templates.Test.ByteOrderMarkTest.CheckForByteOrderMark_ForAllTemplates(String projectName) in /_/src/ProjectTemplates/test/ByteOrderMarkTest.cs:line 29
Failed   Templates.Test.ByteOrderMarkTest.CheckForByteOrderMark_ForAllTemplates(projectName: "Web.Spa.ProjectTemplates")
Error Message:
 System.IO.DirectoryNotFoundException : Could not find a part of the path 'C:\dotnetbuild\work\Web.Spa.ProjectTemplates\content'.
Stack Trace:
   at System.IO.Enumeration.FileSystemEnumerator`1.CreateDirectoryHandle(String path, Boolean ignoreNotFound)
   at System.IO.Enumeration.FileSystemEnumerator`1..ctor(String directory, EnumerationOptions options)
   at System.IO.Enumeration.FileSystemEnumerable`1..ctor(String directory, FindTransform transform, EnumerationOptions options)
   at System.IO.Enumeration.FileSystemEnumerableFactory.UserDirectories(String directory, String expression, EnumerationOptions options)
   at System.IO.Directory.InternalEnumeratePaths(String path, String searchPattern, SearchTarget searchTarget, EnumerationOptions options)
   at System.IO.Directory.GetDirectories(String path, String searchPattern)
   at Templates.Test.ByteOrderMarkTest.CheckForByteOrderMark_ForAllTemplates(String projectName) in /_/src/ProjectTemplates/test/ByteOrderMarkTest.cs:line 29
Failed   Templates.Test.CdnScriptTagTests.FallbackSrcContent_Matches_CDNContent
Error Message:
 System.TypeInitializationException : The type initializer for 'Templates.Test.CdnScriptTagTests' threw an exception.
---- System.InvalidOperationException : Could not find any ancestor directory containing .gitmodules at or above C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Work\53dfbf3f-82c5-4109-baf0-0791192629d4\Exec\
Stack Trace:
   at Templates.Test.CdnScriptTagTests.get_FallbackSrcCheckData() in /_/src/ProjectTemplates/test/CdnScriptTagTests.cs:line 101
----- Inner Stack Trace -----
   at Templates.Test.Helpers.MondoHelpers.FindAncestorDirectoryContaining(String filename) in /_/src/ProjectTemplates/test/Helpers/MondoHelpers.cs:line 41
   at Templates.Test.Helpers.MondoHelpers.GetMondoRepoRoot() in /_/src/ProjectTemplates/test/Helpers/MondoHelpers.cs:line 25
   at Templates.Test.Helpers.MondoHelpers.GetNupkgFiles() in /_/src/ProjectTemplates/test/Helpers/MondoHelpers.cs:line 13
   at Templates.Test.CdnScriptTagTests..cctor() in /_/src/ProjectTemplates/test/CdnScriptTagTests.cs:line 33
Failed   Templates.Test.CdnScriptTagTests.CheckScriptSubresourceIntegrity
Error Message:
 System.TypeInitializationException : The type initializer for 'Templates.Test.CdnScriptTagTests' threw an exception.
---- System.InvalidOperationException : Could not find any ancestor directory containing .gitmodules at or above C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Work\53dfbf3f-82c5-4109-baf0-0791192629d4\Exec\
Stack Trace:
   at Templates.Test.CdnScriptTagTests.get_SubresourceIntegrityCheckScriptData() in /_/src/ProjectTemplates/test/CdnScriptTagTests.cs:line 55
----- Inner Stack Trace -----
   at Templates.Test.Helpers.MondoHelpers.FindAncestorDirectoryContaining(String filename) in /_/src/ProjectTemplates/test/Helpers/MondoHelpers.cs:line 41
   at Templates.Test.Helpers.MondoHelpers.GetMondoRepoRoot() in /_/src/ProjectTemplates/test/Helpers/MondoHelpers.cs:line 25
   at Templates.Test.Helpers.MondoHelpers.GetNupkgFiles() in /_/src/ProjectTemplates/test/Helpers/MondoHelpers.cs:line 13
   at Templates.Test.CdnScriptTagTests..cctor() in /_/src/ProjectTemplates/test/CdnScriptTagTests.cs:line 33
Failed   Templates.Test.CdnScriptTagTests.CheckLinkSubresourceIntegrity
Error Message:
 System.TypeInitializationException : The type initializer for 'Templates.Test.CdnScriptTagTests' threw an exception.
---- System.InvalidOperationException : Could not find any ancestor directory containing .gitmodules at or above C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Work\53dfbf3f-82c5-4109-baf0-0791192629d4\Exec\
Stack Trace:
   at Templates.Test.CdnScriptTagTests.get_SubresourceIntegrityCheckLinkData() in /_/src/ProjectTemplates/test/CdnScriptTagTests.cs:line 67
----- Inner Stack Trace -----
   at Templates.Test.Helpers.MondoHelpers.FindAncestorDirectoryContaining(String filename) in /_/src/ProjectTemplates/test/Helpers/MondoHelpers.cs:line 41
   at Templates.Test.Helpers.MondoHelpers.GetMondoRepoRoot() in /_/src/ProjectTemplates/test/Helpers/MondoHelpers.cs:line 25
   at Templates.Test.Helpers.MondoHelpers.GetNupkgFiles() in /_/src/ProjectTemplates/test/Helpers/MondoHelpers.cs:line 13
   at Templates.Test.CdnScriptTagTests..cctor() in /_/src/ProjectTemplates/test/CdnScriptTagTests.cs:line 33
[xUnit.net 00:00:02.47]     Templates.Test.SpaTemplateTest.ReactTemplateTest.ReactTemplate_Works_NetCore [SKIP]
[xUnit.net 00:00:02.47]       This test is flaky. Using https://github.com/aspnet/AspNetCore-Internal/issues/1745 to track re-enabling this.
[xUnit.net 00:00:02.48]     Templates.Test.SpaTemplateTest.AngularTemplateTest.AngularTemplate_Works [FAIL]
[xUnit.net 00:00:02.48]       System.AggregateException : One or more errors occurred. (Failed to connect to the web driver. Please see the readme and follow the instructions to install selenium.Remember to start the web driver with `selenium-standalone start` before running the end-to-end tests.) (The following constructor parameters did not have matching fixture data: BrowserFixture browserFixture)
[xUnit.net 00:00:02.48]       ---- System.InvalidOperationException : Failed to connect to the web driver. Please see the readme and follow the instructions to install selenium.Remember to start the web driver with `selenium-standalone start` before running the end-to-end tests.
[xUnit.net 00:00:02.48]       -------- OpenQA.Selenium.WebDriverException : A exception with a null response was thrown sending an HTTP request to the remote WebDriver server for URL http://127.0.0.1:4444/wd/hub/session. The status of the exception was UnknownError, and the message was: No connection could be made because the target machine actively refused it. No connection could be made because the target machine actively refused it.
[xUnit.net 00:00:02.48]       ------------ System.Net.WebException : No connection could be made because the target machine actively refused it. No connection could be made because the target machine actively refused it.
[xUnit.net 00:00:02.48]       ---------------- System.Net.Http.HttpRequestException : No connection could be made because the target machine actively refused it.
[xUnit.net 00:00:02.48]       -------------------- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it.
[xUnit.net 00:00:02.48]       ---- The following constructor parameters did not have matching fixture data: BrowserFixture browserFixture
[xUnit.net 00:00:02.48]       Stack Trace:
[xUnit.net 00:00:02.48]
[xUnit.net 00:00:02.48]         ----- Inner Stack Trace #1 (System.InvalidOperationException) -----
[xUnit.net 00:00:02.48]         /_/src/ProjectTemplates/test/Infrastructure/BrowserFixture.cs(54,0): at Templates.Test.Infrastructure.BrowserFixture..ctor()
[xUnit.net 00:00:02.48]         ----- Inner Stack Trace -----
[xUnit.net 00:00:02.48]            at OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo)
[xUnit.net 00:00:02.48]            at OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(Command commandToExecute)
[xUnit.net 00:00:02.48]            at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
[xUnit.net 00:00:02.48]            at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
[xUnit.net 00:00:02.48]            at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
[xUnit.net 00:00:02.48]            at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(Uri remoteAddress, ICapabilities desiredCapabilities, TimeSpan commandTimeout)
[xUnit.net 00:00:02.48]            at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(Uri remoteAddress, ICapabilities desiredCapabilities)
[xUnit.net 00:00:02.48]            at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICapabilities desiredCapabilities)
[xUnit.net 00:00:02.48]            at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(DriverOptions options)
[xUnit.net 00:00:02.48]         /_/src/ProjectTemplates/test/Infrastructure/BrowserFixture.cs(45,0): at Templates.Test.Infrastructure.BrowserFixture..ctor()
[xUnit.net 00:00:02.48]         ----- Inner Stack Trace -----
[xUnit.net 00:00:02.48]            at System.Net.HttpWebRequest.GetResponse()
[xUnit.net 00:00:02.48]            at OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo)
[xUnit.net 00:00:02.48]         ----- Inner Stack Trace -----
[xUnit.net 00:00:02.48]            at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
[xUnit.net 00:00:02.48]            at System.Threading.Tasks.ValueTask`1.get_Result()
[xUnit.net 00:00:02.48]            at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean allowHttp2, CancellationToken cancellationToken)
[xUnit.net 00:00:02.48]            at System.Threading.Tasks.ValueTask`1.get_Result()
[xUnit.net 00:00:02.48]            at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
[xUnit.net 00:00:02.48]            at System.Threading.Tasks.ValueTask`1.get_Result()
[xUnit.net 00:00:02.48]            at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
[xUnit.net 00:00:02.48]            at System.Threading.Tasks.ValueTask`1.get_Result()
[xUnit.net 00:00:02.48]            at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
[xUnit.net 00:00:02.48]            at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
[xUnit.net 00:00:02.48]            at System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
[xUnit.net 00:00:02.48]            at System.Net.HttpWebRequest.SendRequest()
[xUnit.net 00:00:02.48]            at System.Net.HttpWebRequest.GetResponse()
[xUnit.net 00:00:02.48]         ----- Inner Stack Trace -----
[xUnit.net 00:00:02.48]            at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
[xUnit.net 00:00:02.48]         ----- Inner Stack Trace #2 (Xunit.Sdk.TestClassException) -----
[xUnit.net 00:00:02.48]
Skipped  Templates.Test.SpaTemplateTest.ReactTemplateTest.ReactTemplate_Works_NetCore
Failed   Templates.Test.SpaTemplateTest.AngularTemplateTest.AngularTemplate_Works
Error Message:
 System.AggregateException : One or more errors occurred. (Failed to connect to the web driver. Please see the readme and follow the instructions to install selenium.Remember to start the web driver with `selenium-standalone start` before running the end-to-end tests.) (The following constructor parameters did not have matching fixture data: BrowserFixture browserFixture)
---- System.InvalidOperationException : Failed to connect to the web driver. Please see the readme and follow the instructions to install selenium.Remember to start the web driver with `selenium-standalone start` before running the end-to-end tests.
-------- OpenQA.Selenium.WebDriverException : A exception with a null response was thrown sending an HTTP request to the remote WebDriver server for URL http://127.0.0.1:4444/wd/hub/session. The status of the exception was UnknownError, and the message was: No connection could be made because the target machine actively refused it. No connection could be made because the target machine actively refused it.
------------ System.Net.WebException : No connection could be made because the target machine actively refused it. No connection could be made because the target machine actively refused it.
---------------- System.Net.Http.HttpRequestException : No connection could be made because the target machine actively refused it.
-------------------- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it.
---- The following constructor parameters did not have matching fixture data: BrowserFixture browserFixture
Stack Trace:

----- Inner Stack Trace #1 (System.InvalidOperationException) -----
   at Templates.Test.Infrastructure.BrowserFixture..ctor() in /_/src/ProjectTemplates/test/Infrastructure/BrowserFixture.cs:line 54
----- Inner Stack Trace -----
   at OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo)
   at OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(Command commandToExecute)
   at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
   at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
   at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
   at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(Uri remoteAddress, ICapabilities desiredCapabilities, TimeSpan commandTimeout)
   at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(Uri remoteAddress, ICapabilities desiredCapabilities)
   at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICapabilities desiredCapabilities)
   at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(DriverOptions options)
   at Templates.Test.Infrastructure.BrowserFixture..ctor() in /_/src/ProjectTemplates/test/Infrastructure/BrowserFixture.cs:line 45
----- Inner Stack Trace -----
   at System.Net.HttpWebRequest.GetResponse()
   at OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo)
----- Inner Stack Trace -----
   at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
   at System.Threading.Tasks.ValueTask`1.get_Result()
   at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean allowHttp2, CancellationToken cancellationToken)
   at System.Threading.Tasks.ValueTask`1.get_Result()
   at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Threading.Tasks.ValueTask`1.get_Result()
   at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Threading.Tasks.ValueTask`1.get_Result()
   at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
   at System.Net.HttpWebRequest.SendRequest()
   at System.Net.HttpWebRequest.GetResponse()
----- Inner Stack Trace -----
   at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
----- Inner Stack Trace #2 (Xunit.Sdk.TestClassException) -----

[xUnit.net 00:00:03.50]     Templates.Test.RazorComponentsTemplateTest.RazorComponentsTemplateWorks [FAIL]
[xUnit.net 00:00:03.50]       System.AggregateException : One or more errors occurred. (Failed to connect to the web driver. Please see the readme and follow the instructions to install selenium.Remember to start the web driver with `selenium-standalone start` before running the end-to-end tests.) (The following constructor parameters did not have matching fixture data: BrowserFixture browserFixture)
[xUnit.net 00:00:03.50]       ---- System.InvalidOperationException : Failed to connect to the web driver. Please see the readme and follow the instructions to install selenium.Remember to start the web driver with `selenium-standalone start` before running the end-to-end tests.
[xUnit.net 00:00:03.50]       -------- OpenQA.Selenium.WebDriverException : A exception with a null response was thrown sending an HTTP request to the remote WebDriver server for URL http://127.0.0.1:4444/wd/hub/session. The status of the exception was UnknownError, and the message was: No connection could be made because the target machine actively refused it. No connection could be made because the target machine actively refused it.
[xUnit.net 00:00:03.50]       ------------ System.Net.WebException : No connection could be made because the target machine actively refused it. No connection could be made because the target machine actively refused it.
[xUnit.net 00:00:03.50]       ---------------- System.Net.Http.HttpRequestException : No connection could be made because the target machine actively refused it.
[xUnit.net 00:00:03.50]       -------------------- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it.
[xUnit.net 00:00:03.50]       ---- The following constructor parameters did not have matching fixture data: BrowserFixture browserFixture
[xUnit.net 00:00:03.50]       Stack Trace:
[xUnit.net 00:00:03.50]
[xUnit.net 00:00:03.50]         ----- Inner Stack Trace #1 (System.InvalidOperationException) -----
[xUnit.net 00:00:03.50]         /_/src/ProjectTemplates/test/Infrastructure/BrowserFixture.cs(54,0): at Templates.Test.Infrastructure.BrowserFixture..ctor()
[xUnit.net 00:00:03.50]         ----- Inner Stack Trace -----
[xUnit.net 00:00:03.50]            at OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo)
[xUnit.net 00:00:03.50]            at OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(Command commandToExecute)
[xUnit.net 00:00:03.50]            at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
[xUnit.net 00:00:03.50]            at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
[xUnit.net 00:00:03.50]            at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
[xUnit.net 00:00:03.50]            at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(Uri remoteAddress, ICapabilities desiredCapabilities, TimeSpan commandTimeout)
[xUnit.net 00:00:03.50]            at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(Uri remoteAddress, ICapabilities desiredCapabilities)
[xUnit.net 00:00:03.50]            at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICapabilities desiredCapabilities)
[xUnit.net 00:00:03.50]            at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(DriverOptions options)
[xUnit.net 00:00:03.50]         /_/src/ProjectTemplates/test/Infrastructure/BrowserFixture.cs(45,0): at Templates.Test.Infrastructure.BrowserFixture..ctor()
[xUnit.net 00:00:03.50]         ----- Inner Stack Trace -----
[xUnit.net 00:00:03.50]            at System.Net.HttpWebRequest.GetResponse()
[xUnit.net 00:00:03.50]            at OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo)
[xUnit.net 00:00:03.50]         ----- Inner Stack Trace -----
[xUnit.net 00:00:03.50]            at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
[xUnit.net 00:00:03.50]            at System.Threading.Tasks.ValueTask`1.get_Result()
[xUnit.net 00:00:03.50]            at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean allowHttp2, CancellationToken cancellationToken)
[xUnit.net 00:00:03.50]            at System.Threading.Tasks.ValueTask`1.get_Result()
[xUnit.net 00:00:03.50]            at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
[xUnit.net 00:00:03.50]            at System.Threading.Tasks.ValueTask`1.get_Result()
[xUnit.net 00:00:03.50]            at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
[xUnit.net 00:00:03.50]            at System.Threading.Tasks.ValueTask`1.get_Result()
[xUnit.net 00:00:03.50]            at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
[xUnit.net 00:00:03.50]            at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
[xUnit.net 00:00:03.50]            at System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
[xUnit.net 00:00:03.50]            at System.Net.HttpWebRequest.SendRequest()
[xUnit.net 00:00:03.50]            at System.Net.HttpWebRequest.GetResponse()
[xUnit.net 00:00:03.50]         ----- Inner Stack Trace -----
[xUnit.net 00:00:03.51]            at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
[xUnit.net 00:00:03.51]         ----- Inner Stack Trace #2 (Xunit.Sdk.TestClassException) -----
[xUnit.net 00:00:03.51]
Failed   Templates.Test.RazorComponentsTemplateTest.RazorComponentsTemplateWorks
Error Message:
 System.AggregateException : One or more errors occurred. (Failed to connect to the web driver. Please see the readme and follow the instructions to install selenium.Remember to start the web driver with `selenium-standalone start` before running the end-to-end tests.) (The following constructor parameters did not have matching fixture data: BrowserFixture browserFixture)
---- System.InvalidOperationException : Failed to connect to the web driver. Please see the readme and follow the instructions to install selenium.Remember to start the web driver with `selenium-standalone start` before running the end-to-end tests.
-------- OpenQA.Selenium.WebDriverException : A exception with a null response was thrown sending an HTTP request to the remote WebDriver server for URL http://127.0.0.1:4444/wd/hub/session. The status of the exception was UnknownError, and the message was: No connection could be made because the target machine actively refused it. No connection could be made because the target machine actively refused it.
------------ System.Net.WebException : No connection could be made because the target machine actively refused it. No connection could be made because the target machine actively refused it.
---------------- System.Net.Http.HttpRequestException : No connection could be made because the target machine actively refused it.
-------------------- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it.
---- The following constructor parameters did not have matching fixture data: BrowserFixture browserFixture
Stack Trace:

----- Inner Stack Trace #1 (System.InvalidOperationException) -----
   at Templates.Test.Infrastructure.BrowserFixture..ctor() in /_/src/ProjectTemplates/test/Infrastructure/BrowserFixture.cs:line 54
----- Inner Stack Trace -----
   at OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo)
   at OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(Command commandToExecute)
   at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
   at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
   at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
   at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(Uri remoteAddress, ICapabilities desiredCapabilities, TimeSpan commandTimeout)
   at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(Uri remoteAddress, ICapabilities desiredCapabilities)
   at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICapabilities desiredCapabilities)
   at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(DriverOptions options)
   at Templates.Test.Infrastructure.BrowserFixture..ctor() in /_/src/ProjectTemplates/test/Infrastructure/BrowserFixture.cs:line 45
----- Inner Stack Trace -----
   at System.Net.HttpWebRequest.GetResponse()
   at OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo)
----- Inner Stack Trace -----
   at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
   at System.Threading.Tasks.ValueTask`1.get_Result()
   at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean allowHttp2, CancellationToken cancellationToken)
   at System.Threading.Tasks.ValueTask`1.get_Result()
   at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Threading.Tasks.ValueTask`1.get_Result()
   at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Threading.Tasks.ValueTask`1.get_Result()
   at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
   at System.Net.HttpWebRequest.SendRequest()
   at System.Net.HttpWebRequest.GetResponse()
----- Inner Stack Trace -----
   at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
----- Inner Stack Trace #2 (Xunit.Sdk.TestClassException) -----

[xUnit.net 00:00:20.05]     Templates.Test.RazorPagesTemplateTest.RazorPagesTemplate_IndividualAuthImpl(useLocalDB: False) [FAIL]
[xUnit.net 00:00:20.05]       System.InvalidOperationException : Could not find any ancestor directory containing .gitmodules at or above C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Work\53dfbf3f-82c5-4109-baf0-0791192629d4\Exec\
[xUnit.net 00:00:20.05]       Stack Trace:
[xUnit.net 00:00:20.05]         /_/src/ProjectTemplates/test/Helpers/MondoHelpers.cs(41,0): at Templates.Test.Helpers.MondoHelpers.FindAncestorDirectoryContaining(String filename)
[xUnit.net 00:00:20.05]         /_/src/ProjectTemplates/test/Helpers/MondoHelpers.cs(25,0): at Templates.Test.Helpers.MondoHelpers.GetMondoRepoRoot()
[xUnit.net 00:00:20.05]         /_/src/ProjectTemplates/test/Helpers/MondoHelpers.cs(13,0): at Templates.Test.Helpers.MondoHelpers.GetNupkgFiles()
[xUnit.net 00:00:20.05]         /_/src/ProjectTemplates/test/Helpers/TemplatePackageInstaller.cs(105,0): at Templates.Test.Helpers.TemplatePackageInstaller.InstallTemplatePackages(ITestOutputHelper output)
[xUnit.net 00:00:20.05]         /_/src/ProjectTemplates/test/Helpers/TemplatePackageInstaller.cs(67,0): at Templates.Test.Helpers.TemplatePackageInstaller.EnsureTemplatingEngineInitialized(ITestOutputHelper output)
[xUnit.net 00:00:20.05]         /_/src/ProjectTemplates/test/Helpers/TemplateTestBase.cs(33,0): at Templates.Test.TemplateTestBase..ctor(ITestOutputHelper output)
[xUnit.net 00:00:20.06]         /_/src/ProjectTemplates/test/RazorPagesTemplateTest.cs(14,0): at Templates.Test.RazorPagesTemplateTest..ctor(ITestOutputHelper output)
[xUnit.net 00:00:20.06]       Output:
[xUnit.net 00:00:20.06]         ==> C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Payload\sdk\x64\dotnet.exe new "web" --debug:custom-hive "C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Work\53dfbf3f-82c5-4109-baf0-0791192629d4\Exec\.templateengine" [C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Work\53dfbf3f-82c5-4109-baf0-0791192629d4\Exec\]
[xUnit.net 00:00:20.06]         Usage: new [options]
[xUnit.net 00:00:20.06]
[xUnit.net 00:00:20.06]         Options:
[xUnit.net 00:00:20.06]           -h, --help          Displays help for this command.
[xUnit.net 00:00:20.06]           -l, --list          Lists templates containing the specified name. If no name is specified, lists all templates.
[xUnit.net 00:00:20.06]           -n, --name          The name for the output being created. If no name is specified, the name of the current directory is used.
[xUnit.net 00:00:20.06]           -o, --output        Location to place the generated output.
[xUnit.net 00:00:20.06]           -i, --install       Installs a source or a template pack.
[xUnit.net 00:00:20.06]           -u, --uninstall     Uninstalls a source or a template pack.
[xUnit.net 00:00:20.06]           --nuget-source      Specifies a NuGet source to use during install.
[xUnit.net 00:00:20.06]           --type              Filters templates based on available types. Predefined values are "project", "item" or "other".
[xUnit.net 00:00:20.06]           --dry-run           Displays a summary of what would happen if the given command line were run if it would result in a template creation.
[xUnit.net 00:00:20.06]           --force             Forces content to be generated even if it would change existing files.
[xUnit.net 00:00:20.06]           -lang, --language   Filters templates based on language and specifies the language of the template to create.
[xUnit.net 00:00:20.06]
[xUnit.net 00:00:20.06]
[xUnit.net 00:00:20.06]         [ERROR] No templates matched the input template name: web.
[xUnit.net 00:00:20.06]         [ERROR]
[xUnit.net 00:00:20.06]         Templates                      Short Name      Language          Tags
[xUnit.net 00:00:20.06]         --------------------------------------------------------------------------------
[xUnit.net 00:00:20.06]         Console Application            console         [C#], F#, VB      Common/Console
[xUnit.net 00:00:20.06]         Class library                  classlib        [C#], F#, VB      Common/Library
[xUnit.net 00:00:20.06]         WPF Application                wpf             [C#]              Common/WPF
[xUnit.net 00:00:20.06]         Windows Forms Application      winforms        [C#]              Common/WinForms
[xUnit.net 00:00:20.06]         Unit Test Project              mstest          [C#], F#, VB      Test/MSTest
[xUnit.net 00:00:20.06]         NUnit 3 Test Project           nunit           [C#], F#, VB      Test/NUnit
[xUnit.net 00:00:20.06]         NUnit 3 Test Item              nunit-test      [C#], F#, VB      Test/NUnit
[xUnit.net 00:00:20.06]         xUnit Test Project             xunit           [C#], F#, VB      Test/xUnit
[xUnit.net 00:00:20.06]
[xUnit.net 00:00:20.06]         Examples:
[xUnit.net 00:00:20.06]             dotnet new nunit-test
[xUnit.net 00:00:20.06]             dotnet new classlib --framework netcoreapp3.0
[xUnit.net 00:00:20.06]             dotnet new --help
[xUnit.net 00:00:20.06]         ==> C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Payload\sdk\x64\dotnet.exe new "webapp" --debug:custom-hive "C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Work\53dfbf3f-82c5-4109-baf0-0791192629d4\Exec\.templateengine" [C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Work\53dfbf3f-82c5-4109-baf0-0791192629d4\Exec\]
[xUnit.net 00:00:20.06]         Usage: new [options]
[xUnit.net 00:00:20.06]
[xUnit.net 00:00:20.06]         Options:
[xUnit.net 00:00:20.06]           -h, --help          Displays help for this command.
[xUnit.net 00:00:20.06]           -l, --list          Lists templates containing the specified name. If no name is specified, lists all templates.
[xUnit.net 00:00:20.06]           -n, --name          The name for the output being created. If no name is specified, the name of the current directory is used.
[xUnit.net 00:00:20.06]           -o, --output        Location to place the generated output.
[xUnit.net 00:00:20.06]           -i, --install       Installs a source or a template pack.
[xUnit.net 00:00:20.06]           -u, --uninstall     Uninstalls a source or a template pack.
[xUnit.net 00:00:20.06]           --nuget-source      Specifies a NuGet source to use during install.
[xUnit.net 00:00:20.06]           --type              Filters templates based on available types. Predefined values are "project", "item" or "other".
[xUnit.net 00:00:20.06]           --dry-run           Displays a summary of what would happen if the given command line were run if it would result in a template creation.
[xUnit.net 00:00:20.06]           --force             Forces content to be generated even if it would change existing files.
[xUnit.net 00:00:20.06]           -lang, --language   Filters templates based on language and specifies the language of the template to create.
[xUnit.net 00:00:20.06]
[xUnit.net 00:00:20.06]
[xUnit.net 00:00:20.06]         [ERROR] No templates matched the input template name: webapp.
[xUnit.net 00:00:20.06]         [ERROR]
[xUnit.net 00:00:20.06]         Templates                      Short Name      Language          Tags
[xUnit.net 00:00:20.06]         --------------------------------------------------------------------------------
[xUnit.net 00:00:20.06]         Console Application            console         [C#], F#, VB      Common/Console
[xUnit.net 00:00:20.06]         Class library                  classlib        [C#], F#, VB      Common/Library
[xUnit.net 00:00:20.06]         WPF Application                wpf             [C#]              Common/WPF
[xUnit.net 00:00:20.06]         Windows Forms Application      winforms        [C#]              Common/WinForms
[xUnit.net 00:00:20.06]         Unit Test Project              mstest          [C#], F#, VB      Test/MSTest
[xUnit.net 00:00:20.06]         NUnit 3 Test Project           nunit           [C#], F#, VB      Test/NUnit
[xUnit.net 00:00:20.06]         NUnit 3 Test Item              nunit-test      [C#], F#, VB      Test/NUnit
[xUnit.net 00:00:20.06]         xUnit Test Project             xunit           [C#], F#, VB      Test/xUnit
[xUnit.net 00:00:20.06]
[xUnit.net 00:00:20.06]         Examples:
[xUnit.net 00:00:20.06]             dotnet new xunit
[xUnit.net 00:00:20.06]             dotnet new classlib --framework netcoreapp3.0
[xUnit.net 00:00:20.06]             dotnet new --help
[xUnit.net 00:00:20.06]         ==> C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Payload\sdk\x64\dotnet.exe new "mvc" --debug:custom-hive "C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Work\53dfbf3f-82c5-4109-baf0-0791192629d4\Exec\.templateengine" [C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Work\53dfbf3f-82c5-4109-baf0-0791192629d4\Exec\]
[xUnit.net 00:00:20.06]         Usage: new [options]
[xUnit.net 00:00:20.06]
[xUnit.net 00:00:20.06]         Options:
[xUnit.net 00:00:20.06]           -h, --help          Displays help for this command.
[xUnit.net 00:00:20.06]           -l, --list          Lists templates containing the specified name. If no name is specified, lists all templates.
[xUnit.net 00:00:20.06]           -n, --name          The name for the output being created. If no name is specified, the name of the current directory is used.
[xUnit.net 00:00:20.06]           -o, --output        Location to place the generated output.
[xUnit.net 00:00:20.06]           -i, --install       Installs a source or a template pack.
[xUnit.net 00:00:20.06]           -u, --uninstall     Uninstalls a source or a template pack.
[xUnit.net 00:00:20.06]           --nuget-source      Specifies a NuGet source to use during install.
[xUnit.net 00:00:20.06]           --type              Filters templates based on available types. Predefined values are "project", "item" or "other".
[xUnit.net 00:00:20.06]           --dry-run           Displays a summary of what would happen if the given command line were run if it would result in a template creation.
[xUnit.net 00:00:20.06]           --force             Forces content to be generated even if it would change existing files.
[xUnit.net 00:00:20.06]           -lang, --language   Filters templates based on language and specifies the language of the template to create.
[xUnit.net 00:00:20.06]
[xUnit.net 00:00:20.07]
[xUnit.net 00:00:20.07]         [ERROR] No templates matched the input template name: mvc.
[xUnit.net 00:00:20.07]         [ERROR]
[xUnit.net 00:00:20.07]         Templates                      Short Name      Language          Tags
[xUnit.net 00:00:20.07]         --------------------------------------------------------------------------------
[xUnit.net 00:00:20.07]         Console Application            console         [C#], F#, VB      Common/Console
[xUnit.net 00:00:20.07]         Class library                  classlib        [C#], F#, VB      Common/Library
[xUnit.net 00:00:20.07]         WPF Application                wpf             [C#]              Common/WPF
[xUnit.net 00:00:20.07]         Windows Forms Application      winforms        [C#]              Common/WinForms
[xUnit.net 00:00:20.07]         Unit Test Project              mstest          [C#], F#, VB      Test/MSTest
[xUnit.net 00:00:20.07]         NUnit 3 Test Project           nunit           [C#], F#, VB      Test/NUnit
[xUnit.net 00:00:20.07]         NUnit 3 Test Item              nunit-test      [C#], F#, VB      Test/NUnit
[xUnit.net 00:00:20.07]         xUnit Test Project             xunit           [C#], F#, VB      Test/xUnit
[xUnit.net 00:00:20.07]
[xUnit.net 00:00:20.07]         Examples:
[xUnit.net 00:00:20.07]             dotnet new nunit -f net472
[xUnit.net 00:00:20.07]             dotnet new xunit
[xUnit.net 00:00:20.07]             dotnet new --help
[xUnit.net 00:00:20.07]         ==> C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Payload\sdk\x64\dotnet.exe new "react" --debug:custom-hive "C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Work\53dfbf3f-82c5-4109-baf0-0791192629d4\Exec\.templateengine" [C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Work\53dfbf3f-82c5-4109-baf0-0791192629d4\Exec\]
[xUnit.net 00:00:20.07]         Usage: new [options]
[xUnit.net 00:00:20.07]
[xUnit.net 00:00:20.07]         Options:
[xUnit.net 00:00:20.07]           -h, --help          Displays help for this command.
[xUnit.net 00:00:20.07]           -l, --list          Lists templates containing the specified name. If no name is specified, lists all templates.
[xUnit.net 00:00:20.07]           -n, --name          The name for the output being created. If no name is specified, the name of the current directory is used.
[xUnit.net 00:00:20.07]           -o, --output        Location to place the generated output.
[xUnit.net 00:00:20.07]           -i, --install       Installs a source or a template pack.
[xUnit.net 00:00:20.07]           -u, --uninstall     Uninstalls a source or a template pack.
[xUnit.net 00:00:20.07]           --nuget-source      Specifies a NuGet source to use during install.
[xUnit.net 00:00:20.07]           --type              Filters templates based on available types. Predefined values are "project", "item" or "other".
[xUnit.net 00:00:20.07]           --dry-run           Displays a summary of what would happen if the given command line were run if it would result in a template creation.
[xUnit.net 00:00:20.07]           --force             Forces content to be generated even if it would change existing files.
[xUnit.net 00:00:20.07]           -lang, --language   Filters templates based on language and specifies the language of the template to create.
[xUnit.net 00:00:20.07]
[xUnit.net 00:00:20.07]
[xUnit.net 00:00:20.07]         [ERROR] No templates matched the input template name: react.
[xUnit.net 00:00:20.07]         [ERROR]
[xUnit.net 00:00:20.07]         Templates                      Short Name      Language          Tags
[xUnit.net 00:00:20.07]         --------------------------------------------------------------------------------
[xUnit.net 00:00:20.07]         Console Application            console         [C#], F#, VB      Common/Console
[xUnit.net 00:00:20.07]         Class library                  classlib        [C#], F#, VB      Common/Library
[xUnit.net 00:00:20.07]         WPF Application                wpf             [C#]              Common/WPF
[xUnit.net 00:00:20.07]         Windows Forms Application      winforms        [C#]              Common/WinForms
[xUnit.net 00:00:20.07]         Unit Test Project              mstest          [C#], F#, VB      Test/MSTest
[xUnit.net 00:00:20.07]         NUnit 3 Test Project           nunit           [C#], F#, VB      Test/NUnit
[xUnit.net 00:00:20.07]         NUnit 3 Test Item              nunit-test      [C#], F#, VB      Test/NUnit
[xUnit.net 00:00:20.07]         xUnit Test Project             xunit           [C#], F#, VB      Test/xUnit
[xUnit.net 00:00:20.07]
[xUnit.net 00:00:20.07]         Examples:
[xUnit.net 00:00:20.07]             dotnet new xunit
[xUnit.net 00:00:20.07]             dotnet new mstest
[xUnit.net 00:00:20.07]             dotnet new --help
[xUnit.net 00:00:20.07]         ==> C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Payload\sdk\x64\dotnet.exe new "reactredux" --debug:custom-hive "C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Work\53dfbf3f-82c5-4109-baf0-0791192629d4\Exec\.templateengine" [C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Work\53dfbf3f-82c5-4109-baf0-0791192629d4\Exec\]
[xUnit.net 00:00:20.07]         Usage: new [options]
[xUnit.net 00:00:20.07]
[xUnit.net 00:00:20.07]         Options:
[xUnit.net 00:00:20.07]           -h, --help          Displays help for this command.
[xUnit.net 00:00:20.07]           -l, --list          Lists templates containing the specified name. If no name is specified, lists all templates.
[xUnit.net 00:00:20.07]           -n, --name          The name for the output being created. If no name is specified, the name of the current directory is used.
[xUnit.net 00:00:20.07]           -o, --output        Location to place the generated output.
[xUnit.net 00:00:20.07]           -i, --install       Installs a source or a template pack.
[xUnit.net 00:00:20.07]           -u, --uninstall     Uninstalls a source or a template pack.
[xUnit.net 00:00:20.07]           --nuget-source      Specifies a NuGet source to use during install.
[xUnit.net 00:00:20.07]           --type              Filters templates based on available types. Predefined values are "project", "item" or "other".
[xUnit.net 00:00:20.07]           --dry-run           Displays a summary of what would happen if the given command line were run if it would result in a template creation.
[xUnit.net 00:00:20.07]           --force             Forces content to be generated even if it would change existing files.
[xUnit.net 00:00:20.07]           -lang, --language   Filters templates based on language and specifies the language of the template to create.
[xUnit.net 00:00:20.07]
[xUnit.net 00:00:20.07]
[xUnit.net 00:00:20.07]         Templates                      Short Name      Language          Tags
[xUnit.net 00:00:20.07]         --------------------------------------------------------------------------------
[xUnit.net 00:00:20.07]         Console Application            console         [C#], F#, VB      Common/Console
[xUnit.net 00:00:20.07]         Class library                  classlib        [C#], F#, VB      Common/Library
[xUnit.net 00:00:20.07]         WPF Application                wpf             [C#]              Common/WPF
[xUnit.net 00:00:20.07]         Windows Forms Application      winforms        [C#]              Common/WinForms
[xUnit.net 00:00:20.07]         Unit Test Project              mstest          [C#], F#, VB      Test/MSTest
[xUnit.net 00:00:20.07]         NUnit 3 Test Project           nunit           [C#], F#, VB      Test/NUnit
[xUnit.net 00:00:20.07]         NUnit 3 Test Item              nunit-test      [C#], F#, VB      Test/NUnit
[xUnit.net 00:00:20.07]         xUnit Test Project             xunit           [C#], F#, VB      Test/xUnit
[xUnit.net 00:00:20.07]
[xUnit.net 00:00:20.07]         Examples:
[xUnit.net 00:00:20.07]             dotnet new nunit-test
[xUnit.net 00:00:20.07]             dotnet new mstest
[xUnit.net 00:00:20.07]             dotnet new --help
[xUnit.net 00:00:20.07]         [ERROR] No templates matched the input template name: reactredux.
[xUnit.net 00:00:20.07]         [ERROR]
[xUnit.net 00:00:20.07]         ==> C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Payload\sdk\x64\dotnet.exe new "angular" --debug:custom-hive "C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Work\53dfbf3f-82c5-4109-baf0-0791192629d4\Exec\.templateengine" [C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Work\53dfbf3f-82c5-4109-baf0-0791192629d4\Exec\]
[xUnit.net 00:00:20.07]         Usage: new [options]
[xUnit.net 00:00:20.07]
[xUnit.net 00:00:20.07]         Options:
[xUnit.net 00:00:20.07]           -h, --help          Displays help for this command.
[xUnit.net 00:00:20.07]           -l, --list          Lists templates containing the specified name. If no name is specified, lists all templates.
[xUnit.net 00:00:20.07]           -n, --name          The name for the output being created. If no name is specified, the name of the current directory is used.
[xUnit.net 00:00:20.07]           -o, --output        Location to place the generated output.
[xUnit.net 00:00:20.07]           -i, --install       Installs a source or a template pack.
[xUnit.net 00:00:20.07]           -u, --uninstall     Uninstalls a source or a template pack.
[xUnit.net 00:00:20.07]           --nuget-source      Specifies a NuGet source to use during install.
[xUnit.net 00:00:20.07]           --type              Filters templates based on available types. Predefined values are "project", "item" or "other".
[xUnit.net 00:00:20.07]           --dry-run           Displays a summary of what would happen if the given command line were run if it would result in a template creation.
[xUnit.net 00:00:20.07]           --force             Forces content to be generated even if it would change existing files.
[xUnit.net 00:00:20.07]           -lang, --language   Filters templates based on language and specifies the language of the template to create.
[xUnit.net 00:00:20.07]
[xUnit.net 00:00:20.07]
[xUnit.net 00:00:20.07]         [ERROR] No templates matched the input template name: angular.
[xUnit.net 00:00:20.07]         [ERROR]
[xUnit.net 00:00:20.07]         Templates                      Short Name      Language          Tags
[xUnit.net 00:00:20.07]         --------------------------------------------------------------------------------
[xUnit.net 00:00:20.07]         Console Application            console         [C#], F#, VB      Common/Console
[xUnit.net 00:00:20.07]         Class library                  classlib        [C#], F#, VB      Common/Library
[xUnit.net 00:00:20.07]         WPF Application                wpf             [C#]              Common/WPF
[xUnit.net 00:00:20.07]         Windows Forms Application      winforms        [C#]              Common/WinForms
[xUnit.net 00:00:20.07]         Unit Test Project              mstest          [C#], F#, VB      Test/MSTest
[xUnit.net 00:00:20.07]         NUnit 3 Test Project           nunit           [C#], F#, VB      Test/NUnit
[xUnit.net 00:00:20.07]         NUnit 3 Test Item              nunit-test      [C#], F#, VB      Test/NUnit
[xUnit.net 00:00:20.07]         xUnit Test Project             xunit           [C#], F#, VB      Test/xUnit
[xUnit.net 00:00:20.07]
[xUnit.net 00:00:20.07]         Examples:
[xUnit.net 00:00:20.07]             dotnet new nunit-test
[xUnit.net 00:00:20.07]             dotnet new console
[xUnit.net 00:00:20.07]             dotnet new --help
Failed   Templates.Test.RazorPagesTemplateTest.RazorPagesTemplate_IndividualAuthImpl(useLocalDB: False)
Error Message:
 System.InvalidOperationException : Could not find any ancestor directory containing .gitmodules at or above C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Work\53dfbf3f-82c5-4109-baf0-0791192629d4\Exec\
Stack Trace:
   at Templates.Test.Helpers.MondoHelpers.FindAncestorDirectoryContaining(String filename) in /_/src/ProjectTemplates/test/Helpers/MondoHelpers.cs:line 41
   at Templates.Test.Helpers.MondoHelpers.GetMondoRepoRoot() in /_/src/ProjectTemplates/test/Helpers/MondoHelpers.cs:line 25
   at Templates.Test.Helpers.MondoHelpers.GetNupkgFiles() in /_/src/ProjectTemplates/test/Helpers/MondoHelpers.cs:line 13
   at Templates.Test.Helpers.TemplatePackageInstaller.InstallTemplatePackages(ITestOutputHelper output) in /_/src/ProjectTemplates/test/Helpers/TemplatePackageInstaller.cs:line 105
   at Templates.Test.Helpers.TemplatePackageInstaller.EnsureTemplatingEngineInitialized(ITestOutputHelper output) in /_/src/ProjectTemplates/test/Helpers/TemplatePackageInstaller.cs:line 67
   at Templates.Test.TemplateTestBase..ctor(ITestOutputHelper output) in /_/src/ProjectTemplates/test/Helpers/TemplateTestBase.cs:line 33
   at Templates.Test.RazorPagesTemplateTest..ctor(ITestOutputHelper output) in /_/src/ProjectTemplates/test/RazorPagesTemplateTest.cs:line 14
Standard Output Messages:
 ==> C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Payload\sdk\x64\dotnet.exe new "web" --debug:custom-hive "C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Work\53dfbf3f-82c5-4109-baf0-0791192629d4\Exec\.templateengine" [C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Work\53dfbf3f-82c5-4109-baf0-0791192629d4\Exec\]
 Usage: new [options]

 Options:
   -h, --help          Displays help for this command.
   -l, --list          Lists templates containing the specified name. If no name is specified, lists all templates.
   -n, --name          The name for the output being created. If no name is specified, the name of the current directory is used.
   -o, --output        Location to place the generated output.
   -i, --install       Installs a source or a template pack.
   -u, --uninstall     Uninstalls a source or a template pack.
   --nuget-source      Specifies a NuGet source to use during install.
   --type              Filters templates based on available types. Predefined values are "project", "item" or "other".
   --dry-run           Displays a summary of what would happen if the given command line were run if it would result in a template creation.
   --force             Forces content to be generated even if it would change existing files.
   -lang, --language   Filters templates based on language and specifies the language of the template to create.

 [ERROR] No templates matched the input template name: web.
 [ERROR]
 Templates                      Short Name      Language          Tags
 --------------------------------------------------------------------------------
 Console Application            console         [C#], F#, VB      Common/Console
 Class library                  classlib        [C#], F#, VB      Common/Library
 WPF Application                wpf             [C#]              Common/WPF
 Windows Forms Application      winforms        [C#]              Common/WinForms
 Unit Test Project              mstest          [C#], F#, VB      Test/MSTest
 NUnit 3 Test Project           nunit           [C#], F#, VB      Test/NUnit
 NUnit 3 Test Item              nunit-test      [C#], F#, VB      Test/NUnit
 xUnit Test Project             xunit           [C#], F#, VB      Test/xUnit

 Examples:
     dotnet new nunit-test
     dotnet new classlib --framework netcoreapp3.0
     dotnet new --help
 ==> C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Payload\sdk\x64\dotnet.exe new "webapp" --debug:custom-hive "C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Work\53dfbf3f-82c5-4109-baf0-0791192629d4\Exec\.templateengine" [C:\dotnetbuild\work\5a32dd58-92da-4720-b4bf-14cebca55b78\Work\53dfbf3f-82c5-4109-baf0-0791192629d4\Exec\]
 Usage: new [options]

 Options:
   -h, --help          Displays help for this command.
   -l, --list          Lists templates containing the specified name. If no name is specified, lists all templates.
   -n, --name          The name for the output being created. If no name is specified, the name of the current directory is used.
   -o, --output        Location to place the generated output.
   -i, --install       Installs a source or a template pack.
   -u, --uninstall     Uninstalls a source or a template pack.
   --nuget-source      Specifies a NuGet source to use during install.
   --type              Filters templates based on available types. Predefined values are "project", "item" or "other".
   --dry-run           Displays a summary of what would happen if the given command line were run if it would result in a template creation.
   --force             Forces content to be generated even if it would change existing files.
   -lang, --language   Filters templates based on language and specifies the language of the template to create.


text:
[feature request] support  complex generic type

easy to reproduce:
class Program
{
    static void Main(string[] args)
    {
        var sc = new ServiceCollection();
        sc.AddSingleton(typeof(ListConverter<>).GetInterfaces().Single(), typeof(ListConverter<>));
        var provider = sc.BuildServiceProvider(); // System.ArgumentException throw here.
        var service = provider.GetService(typeof(ListConverter<int>));
        Console.Read();
    }

    public interface IValueConverter<out TResult> { }

    public class ListConverter<T> : IValueConverter<List<T>> { }
}

What's the scenario you're after? What are you trying to do?

I am trying to use dependency injection build a type convert system.
so I can call:
provider.GetService<IValueConverter<Stream>>();
provider.GetService<IValueConverter<List<Stream>>>();
provider.GetService<IValueConverter<HashSet<Stream>>>();
provider.GetService<IValueConverter<Dictionary<string, List<Stream>>>>();

This is partially closed generics which is a rather complicated area.
I really don't know if this is something the default implementation should support as it makes it a lot harder to write an adapter.

source: gharchive/issue

authors: Cologler davidfowl seesharper

repo: aspnet/DependencyInjection

license_type: permissive

license_source: github-api


text:
Suggestion: use include statements in the Core MVC tutorials

The tutorials share a lot of text and fixing issues in all places is time consuming and most likely won't happen (because contributors don't know, don't notice or forget!)
I've submitted some fixes for Windows tutorial and now I'm seeing the same issues on the macOS and xplat tutorials! and I'm lazy (and don't have time) to resubmit them again :(
I suggest using include statements for shared text, or better combine these 3 tutorials into 1 because it's just showing how to build the same app using different tools!

Most of the Razor and MVC intro's use includes. I'm working on that.

Great news :)

authors: Rick-Anderson badersur

repo: aspnet/Docs


text:
Slightly misleading line in Getting Started: Installing ASP.NET 5 On Windows doc

@Rick-Anderson @ardalis @danroth27
RE: https://docs.asp.net/en/latest/getting-started/installing-on-windows.html
The line ...

4 On Windows 7 and Windows Server 2008 R2 you will also need to install the Visual C++ Redistributable for Visual Studio 2012 Update 4.

... is a little misleading. It conflates the issue of requiring the install on a machine where the development is occurring (a dev box with VS) with the issue of not requiring that install where the .NET 5 applications may be served (i.e., a WS 2008 R2 box without VS).
May I suggest some kind of change to clear up any confusion:
A short and sweet change ...

4 On Windows 7 and Windows Server 2008 R2 you will also need to install the Visual C++ Redistributable for Visual Studio 2012 Update 4. Note: This step only applies to computers where Visual Studio will be installed.

A professorial long-winded, bloated explanation ...

4 On Windows 7 and Windows Server 2008 R2 you will also need to install the Visual C++ Redistributable for Visual Studio 2012 Update 4. Note: This install is only required on Windows Server 2008 R2 if Visual Studio is installed on the server for development purposes. If the server is being used solely to serve ASP.NET 5 applications via IIS, this install is not required on the server. See Publishing to IIS for details on Windows Server configuration for ASP.NET 5 application hosting.

@saurabh500

/cc @kkurni

@GuardRex VC++ Redis 2012 is needed because of this open issue.
https://github.com/dotnet/corefx/issues/3760
This will appear if you are using SqlClient.
AFAIK, Only SqlClient which currently depend on this.
So if it doesn't have sql client dependency, you will not need this VC++ Redis 2012.
I had tried to published web application into IIS, and both still required VC++ redis 2012 to use SqlClient.

OS may automatically installed VC++ Redis 2012 as part of the update.
Or It could be automatically installed on Visual Studio 2012 +.
Maybe we need to change the text to "make sure that VC++2012 is installed" instead of putting this as a "Step"
Or we can put this into "troubleshooting" section

@kkurni I see. I'm not sure where my ref to VS came from. At time, it may have just been confusing to me why this was being required and I guessed wrong.
Whatever is done, I hope the reason that the install is being required can be stated and the platforms and/or application context to which it applies is stated. It's just helpful to know when one can skip it if they don't need it.

Sure we can add a comment clarifying that this is really only required to get SqlClient to work.

This issue is no longer relevant since we have moved to .NET Core.

@danroth27 There might still be a lingering issue there. I noticed that the VC++ was there by default when I spun up a 2008R2 VM in Azure, but this cat had a problem with an existing server ... https://github.com/aspnet/IISIntegration/issues/179#issuecomment-220172988.
I'll play with it today and see if I can repro what was described there and see how that exception shows up in the various logging. Then, I'll open a normal issue with my findings in the Doc repo for discussion.


text:
[WIP] Update Redis section of dist caching

Addresses #11118
Thanks @marekkar
@natemcmaster Need a tip .... I couldn't get API Browser links for:

AddStackExchangeRedisCache
RedisCache (in the Microsoft.Extensions.Caching.StackExchangeRedis namespace)

They live for 2.2 ...
https://github.com/aspnet/Extensions/blob/release/2.2/src/Caching/StackExchangeRedis/src/StackExchangeRedisCacheServiceCollectionExtensions.cs#L23
https://github.com/aspnet/Extensions/blob/release/2.2/src/Caching/StackExchangeRedis/src/RedisCache.cs#L13
... and here's the 2.2 package ...
https://www.nuget.org/packages/Microsoft.Extensions.Caching.StackExchangeRedis/2.2.0
... but no :heart: from the API Browser ...

Is that something that someone needs to know?
I've code-fenced them into the topic, so we can proceed here without the API pages if that's what we need to do for now.

cc @JunTaoLuo @muratg
I'm on parental leave so won't be able to review this PR.

Hmm that's odd, let me see why the API docs are missing.

@Rick-Anderson If ur ok with just code fencing these two references (RedisCache, AddStackExchangeRedisCache) for now, we can go ahead and merge this and then update the API links on the next doc update.

source: gharchive/pull-request

authors: JunTaoLuo guardrex natemcmaster


text:
Adding new gulp topic.

This is the rewrite of the 'Using Gulp' topic that uses the latest tooling. It is ready to publish.

@danroth27 @Rick-Anderson @rachelappel
This topic is ready to publish.

:shipit:

183674dd046079d47c77062ada66aeb98b05dc6b


text:
New features doc page need refresh

https://docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-3.0/features
But maybe it is better to wait for preview 7?

Duplicate of #1598.

authors: ErikEJ divega


text:
"Download PDF" link returns 404

When the "Download PDF" link on the bottom left is clicked, a 404 page is returned. The link resolves to: https://docs.microsoft.com/en-us/dotnet/opbuildpdf/ef_full_dotnet_toc/api/dotnet-template/_splitted/System.Data.Entity/toc.pdf?branch=live&view=entity-framework-6.2.0

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: e689b56a-27e6-b91c-e8a5-1d351ed88506
Version Independent ID: c8d2a8a8-f178-ae07-996c-f514f23404ee
Content: EntityState Enum (System.Data.Entity)
Content Source: EF/xml/System.Data.Entity/EntityState.xml
Product: entity-framework
Technology: entity-framework-6
GitHub Login: @dotnet-bot
Microsoft Alias: divega

@mairaw Any ideas on this?

@smitpatel to transfer issue.

Fixed.

One thing that was brought to my attention is that now the link doesn't 404 anymore but the file only contains the TOC. We should follow up with engineering on that.

authors: ajcvickers dzsoundnirvana mairaw smitpatel


text:
[InvalidCastException] when using Include with Where that navigate to parent entity

Whenever I try to use a combination of Include and Where, this exception occurred
InvalidCastException: Unable to cast object of type 'System.Linq.Expressions.FieldExpression' to type 'System.Linq.Expressions.ParameterExpression'.

It only happens when the Where function navigate to parent entity, for example, this will cause the exception.
db.Table.Include(x=>x.include1).Where(x => x.Parent1.GrandParent1.ID == 1).ToListAsync();

While these will not cause exception.
db.Table.Include(x=>x.include1).Where(x => x.ID == 1).ToListAsync(); // This is OK
db.Table.Where(x => x.Parent1.GrandParent1.ID == 1).ToListAsync(); // This also OK

Is this a bug or I screw something up?

Are you including the grandparent entity? I don't understand how the below can work correctly if you're not including the grandparent if you're searching on a property of a grandparent.
db.Table.Where(x => x.Parent1.GrandParent1.ID == 1).ToListAsync();

@nocommonsense EF will translate that to a WHERE clause in the database. There is no need to bring the data back into memory (which is what Include does) just to filter by it.

@as14220808 looks like this is fixed in our current code base. I verified that the following code fails with the exception you saw on RC1, but succeeds on the latest rolling build (7.0.0-rc2-16619).
using Microsoft.Data.Entity;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleApp1
{
    public class Program
    {
        public static void Main(string[] args)
        {
            using (var db = new BloggingContext())
            {
                db.Database.EnsureDeleted();
                db.Database.EnsureCreated();

                db.Comments.Include(c => c.Post).Where(c => c.Post.Blog.BlogId == 1).ToList();
            }
        }
    }

    class BloggingContext : DbContext
    {
        public DbSet<Blog> Blogs { get; set; }
        public DbSet<Post> Posts { get; set; }
        public DbSet<Comment> Comments { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=Sample;Trusted_Connection=True;");
        }
    }

    class Blog
    {
        public int BlogId { get; set; }
        public string Url { get; set; }

        public List<Post> Posts { get; set; }
    }

    class Post
    {
        public int PostId { get; set; }
        public string Title { get; set; }

        public int BlogId { get; set; }
        public Blog Blog { get; set; }

        public List<Comment> Comments { get; set; }
    }

    class Comment
    {
        public int CommentId { get; set; }
        public string Text { get; set; }

        public int PostId { get; set; }
        public Post Post { get; set; }
    }
}

Here is the SQL that is generated. BTW we have a couple of other issues tracking that we could consolidate the duplicated join to Post.
SELECT [c].[CommentId], [c].[PostId], [c].[Text], [p].[PostId], [p].[BlogId], [p].[Title]
FROM [Comment] AS [c]
INNER JOIN [Post] AS [c.Post] ON [c].[PostId] = [c.Post].[PostId]
INNER JOIN [Blog] AS [c.Post.Blog] ON [c.Post].[BlogId] = [c.Post.Blog].[BlogId]
INNER JOIN [Post] AS [p] ON [c].[PostId] = [p].[PostId]
WHERE [c.Post.Blog].[BlogId] = 1

@rowanmiller Thanks so much for clarifying the issue.

I experience this very same problem in ef6! Is it possible to port the solution to ef6 too?

@wmalgadey I am not sure the exact same issue is present in EF6. Could you please create a new issue (complete with repro code) at https://github.com/aspnet/EntityFramework6/issues?

sorry! my bad. I did some further investigations and found out, that my database had some issues. thanks for your response.

authors: as14220808 divega nocommonsense rowanmiller wmalgadey

repo: aspnet/EntityFramework

license: MIT


text:
The schema version of 'Microsoft.EntityFrameworkCore.Tools.DotNet' is incompatible with version 2.12.0.815 of NuGet

Edited by @rowanmiller 11-29-2016
Workaround
If you hit this issue, you can resolve it by installing the latest beta of the NuGet Package Manager.
The issue arises because of a combination of requirements in pre-release tooling.

This one is really confusing to me but...
I installed the new Tools.DotNet package:
project.json:
"Microsoft.EntityFrameworkCore.Tools.Dotnet": "1.0.0-preview3-final",
And now my package manager inside visual studio throws an error: Error Occured......Show errors in output/Dismiss. I click Show errors in output, and I get:
The schema version of 'Microsoft.EntityFrameworkCore.Tools.DotNet' is incompatible with version 2.12.0.815 of NuGet. Please upgrade NuGet to the latest version from http://go.microsoft.com/fwlink/?LinkId=213942.
Nuget appears to be up to date in package manager.
Jump to the package manager console and type $host:
Name             : Package Manager Host
Version          : 3.5.0.1484
InstanceId       : 015141c8-ed0c-4346-8cb1-ff76f59fddc4
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : en-US
CurrentUICulture : en-US
PrivateData      : NuGetConsole.Host.PowerShell.Implementation.NuGetPSHost+Commander
DebuggerEnabled  : True
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace
Visual Studio -> Help -> About
NuGet Package Manager 3.5.0
Naturally I am thinking there is another version of NuGet on my system But I can't figure this one out...

Can you make sure you have the latest preview of the .NET Core tooling installed - https://www.microsoft.com/net/core#windows. We think it may be an outdated version on NuGet included in an old version of the tooling.

.Net Core 1.0.1 Tooling Preview 2 was already installed. I tried a repair install and no luck.

We're not really sure what is happening here. It's not an issue we have seen before. One idea we had was to try using Fusion logs to try and work out what is loading the older version of NuGet, and where the older assemblies are located.

Am having the same issue here. Tried using Fusion Logs but all the bindings seemed to be with NuGet 3.5. If I remove Microsoft.EntityFrameworkCore.Tools.DotNet from my project.json everything returns to normal. The update and browse tabs of the manager seem to work fine too. The package manager console command Get-Package works just fine.

Are you still seeing this with the latest tooling release 1.1.0-preview4?

Yes. it's still happening with 1.1.0-preview4. If I remove  "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.1.0-preview4-final", from project.json nuget starts working again.

cc @yishaigalatzer to see if you have any ideas how to debug this one

In the meantime, using the nuget package works: Install-Package Microsoft.EntityFrameworkCore.Tools -Pre
PMC commands are documented here: https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/powershell

@bdm4 @lnaie I suspect it is possible that this issue surfaces for solutions that were originally created with Visual Studio 2013 and configured to use the MSBuild-integrated package restore functionality that was the default before NuGet 2.7. If so, your solution could contain a .nuget folder and MSBuild targets that redirect to a copy of nuget.exe in that folder, which would likely be out of date.
In case this helps, the process to migrate to the newer automatic implementation of package restore is described here: http://docs.nuget.org/ndocs/consume-packages/package-restore#migrating-to-automatic-restore

Some how you are required to install the latest beta of the Nuget Manager. Afterwards you can install the EF Tools package.
Please refer to: http://docs.nuget.org/ndocs/guides/install-nuget

Hope everyone had a good holiday. So I decided to create a blank .net core project based on the template.
Tools -> Manage Nuget... -> Installed -> Error Occurred -> Show errors in output:
The schema version of 'Microsoft.AspNetCore.Server.IISIntegration.Tools' is incompatible with version 2.12.0.815 of NuGet
Click updates 5 are available to push NETCore.App and others like it to 1.1.0, Select all, update. Click Installed. Same error as above.
🕐 hour goes by... google google google.
Find this: http://docs.nuget.org/ndocs/Guides/Install-NuGet.md
See this: NuGet Beta Channel, ok what the heck. I've tried everything else. Install the Beta Version of Nuget and restart VS.
It's working. 🍯

Added the workaround/resolution to the top of this issue.
Closing this out as it is a combination of pre-release tooling and will resolve as our pre-releases RTM and propagate.

Had the same issue. Closing my project and then running dotnet restore on the directory seemed to solve it. I did not install the beta of nuget.

Spent half an hour searching my system for an old version of nuget (2.12) that I didn't have anywhere because the error message completely threw me off.  If you can't display accurate information in an error then don't show anything.  Sheesh.

authors: Jayman1305 bdm4 divega kratorspore lnaie origicom rowanmiller tkoestler


text:
ExecuteSqlCommand/Async usability issues

When passing a strongly typed array for the parameters arg: E.g.

context.Database.ExecuteSqlCommand(
    "SELECT * FROM Orders WHERE OrderID = {0} OR CustomerID = {1}",
    new [] { 1, 2 }));

We crash because the parameters object[] ends up with a single int[] element.

The Async overloads require passing a cancellation token when specifying parameters.

Test coverage of these methods is low. We should beef it up.

We should look at adopting the pattern we use elsewhere for async methods (not combining params and CancellationToken). We should also look at an overload that takes an IEnumerable of parameters rather than params.

authors: anpete rowanmiller


text:
Query: Perf improvements to query annotations.

Use Result Operators for query annotations. Avoids an ET rewrite during query cache resolution.
FromSql queries correctly handled in query cache.
Fixed some issues with null semantics processing. Always do null semantics rewriting during SQL gen.
Streamlined and standardized some ET visitor code.

:+1: LGTM

:shipit:  after the last reducnat check before Update is removed

authors: anpete maumar mikary


text:
Implementation of ObservableHashSet

This is an implementation of INotifyCollectionChanged that is backed by a HashSet instead of a List. This will then perform better in Contains when there are a large number of elements, which is something that ObservableCollection doesn't do well with. It also implements Clear in a way that can be used by EF notifications because the items being cleared are passed in the event.
Copies the API surface of HashSet.
Also implements INotifyPropertyChanged/Changing for the Count property.
Does not have an inherent ordering and so does not have support for indexers, etc., or the notifications that go with these.

:shipit:

authors: ajcvickers anpete


text:
Microsoft.EntityFrameworkCore.Cosmos 3.0.0-preview5.19227.1  Cause  Memory leak

using (DeviceCosmosDbContext deviceCosmosDbContext = new DeviceCosmosDbContext(cosmosDataOptions, loggerFactory))
{
Query---
}
, repeat 30000 times, the Memory keep growing .

Fixed in 98fe04febee96f733bbfd9c4e3c819a2cbe56a5b

@dongshengfengniaowu This should be fixed in preview8 or nightly builds. If you still experiencing it please provide a full repro.

Glad to hear that !

authors: AndriySvyryd dongshengfengniaowu

repo: aspnet/EntityFrameworkCore


text:
Query: Include for derived types fails when source does not contain any of the derived type

Consider a model with a base type and two different derived types. "Include for derived types" works well when the source of the query contains only the first derived type or a mix of both derived types. It fails when the source only does not contain any of the first derived type. Please look at the code example below:
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;

namespace DerivedIncludeSelectiveTest
{
	class Program
	{
		static void Main(string[] args)
		{
			using (var myContext = new MyContext())
			{
				myContext.Database.EnsureDeleted();
				myContext.Database.EnsureCreated();
				GetSchoolsWithInclude(myContext.Schools);
				GetSchoolsWithInclude(myContext.PrimarySchools);
				GetSchoolsWithInclude(myContext.Colleges); // this line throws an exception despite the "include on derived types" being supposed to apply only to the specified derived type
			}
			Console.ReadLine();
		}

		static School[] GetSchoolsWithInclude(IQueryable<School> source) =>
					source
					.Include(s => ((PrimarySchool)s).Students) // loading students only for PrimarySchools
					.ToArray();
	}

	public class MyContext : DbContext
	{
		public DbSet<PrimaryStudent> PrimaryStudents { get; set; }
		public DbSet<School> Schools { get; set; }
		public DbSet<PrimarySchool> PrimarySchools { get; set; }
		public DbSet<College> Colleges { get; set; }
		protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
		{
			optionsBuilder.UseSqlServer(@"Data Source=" + System.Environment.MachineName +
				";Initial Catalog=derivedIncludeSelectiveTest;Integrated Security=True");
			optionsBuilder.EnableSensitiveDataLogging();
			optionsBuilder.ConfigureWarnings(w => w.Log(
				Microsoft.EntityFrameworkCore.Diagnostics.CoreEventId.SensitiveDataLoggingEnabledWarning));
		}
		protected override void OnModelCreating(ModelBuilder modelBuilder)
		{
			modelBuilder.Entity<PrimarySchool>().HasMany(s => s.Students).WithOne(s => s.School);
			modelBuilder.Entity<PrimarySchool>().HasData(new PrimarySchool { Id = 1 });
			modelBuilder.Entity<College>().HasData(new College { Id = 2 });
		}
	}

	public class PrimaryStudent
	{
		public int Id { get; set; }
		public PrimarySchool School { get; set; }
	}

	public abstract class School // base type
	{
		public int Id { get; set; }
	}

	public class PrimarySchool : School // first derived type
	{
		public List<PrimaryStudent> Students { get; set; }
	}

	public class College : School // second derived type
	{
		// does not have an association to students
	}
}

In EF 3.0, it throws:
System.InvalidOperationException
  HResult=0x80131509
  Message=Invalid include.
  Source=Microsoft.EntityFrameworkCore
  StackTrace:
   at Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor.PopulateIncludeTree(IncludeTreeNode includeTreeNode, Expression expression)
   at Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor.ProcessInclude(NavigationExpansionExpression source, Expression expression, Boolean thenInclude)
   at Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
   at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
   at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
   at Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor.ExpandAndReduce(Expression query, Boolean applyInclude)
   at Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor.Expand(Expression query)
   at Microsoft.EntityFrameworkCore.Query.QueryTranslationPreprocessor.Process(Expression query)
   at Microsoft.EntityFrameworkCore.Query.QueryCompilationContext.CreateQueryExecutor[TResult](Expression query)
   at Microsoft.EntityFrameworkCore.Storage.Database.CompileQuery[TResult](Expression query, Boolean async)
   at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.CompileQueryCore[TResult](IDatabase database, Expression query, IModel model, Boolean async)
   at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.<>c__DisplayClass9_0`1.<Execute>b__0()
   at Microsoft.EntityFrameworkCore.Query.Internal.CompiledQueryCache.GetOrAddQueryCore[TFunc](Object cacheKey, Func`1 compiler)
   at Microsoft.EntityFrameworkCore.Query.Internal.CompiledQueryCache.GetOrAddQuery[TResult](Object cacheKey, Func`1 compiler)
   at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.Execute[TResult](Expression query)
   at Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryProvider.Execute[TResult](Expression expression)
   at Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1.GetEnumerator()
   at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.IncludableQueryable`2.GetEnumerator()
   at System.Collections.Generic.LargeArrayBuilder`1.AddRange(IEnumerable`1 items)
   at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at DerivedIncludeSelectiveTest.Program.GetSchoolsWithInclude(IQueryable`1 schools)

In EF 2.2.6, it throws:
System.InvalidOperationException
  HResult=0x80131509
  Message=The property 'Students' is not a navigation property of entity type 'College'. The 'Include(string)' method can only be used with a '.' separated list of navigation property names.
  Source=Microsoft.EntityFrameworkCore
  StackTrace:
   at Microsoft.EntityFrameworkCore.Query.Internal.IncludeCompiler.WalkNavigations(IEntityType entityType, IReadOnlyList`1 navigationPropertyPaths, IncludeLoadTree includeLoadTree, Boolean shouldThrow)
   at Microsoft.EntityFrameworkCore.Query.Internal.IncludeCompiler.TryPopulateIncludeLoadTree(IncludeResultOperator includeResultOperator, IncludeLoadTree includeLoadTree, Boolean shouldThrow)
   at Microsoft.EntityFrameworkCore.Query.Internal.IncludeCompiler.CreateIncludeLoadTrees(QueryModel queryModel, Boolean shouldThrow)
   at Microsoft.EntityFrameworkCore.Query.Internal.IncludeCompiler.CompileIncludes(QueryModel queryModel, Boolean trackingQuery, Boolean asyncQuery, Boolean shouldThrow)
   at Microsoft.EntityFrameworkCore.Query.EntityQueryModelVisitor.OptimizeQueryModel(QueryModel queryModel, Boolean asyncQuery)
   at Microsoft.EntityFrameworkCore.Query.RelationalQueryModelVisitor.OptimizeQueryModel(QueryModel queryModel, Boolean asyncQuery)
   at Microsoft.EntityFrameworkCore.Query.EntityQueryModelVisitor.CreateQueryExecutor[TResult](QueryModel queryModel)
   at Microsoft.EntityFrameworkCore.Storage.Database.CompileQuery[TResult](QueryModel queryModel)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.CompileQueryCore[TResult](Expression query, IQueryModelGenerator queryModelGenerator, IDatabase database, IDiagnosticsLogger`1 logger, Type contextType)
   at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.<>c__DisplayClass13_0`1.<Execute>b__0()
   at Microsoft.EntityFrameworkCore.Query.Internal.CompiledQueryCache.GetOrAddQueryCore[TFunc](Object cacheKey, Func`1 compiler)
   at Microsoft.EntityFrameworkCore.Query.Internal.CompiledQueryCache.GetOrAddQuery[TResult](Object cacheKey, Func`1 compiler)
   at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.Execute[TResult](Expression query)
   at Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryProvider.Execute[TResult](Expression expression)
   at Remotion.Linq.QueryableBase`1.GetEnumerator()
   at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.IncludableQueryable`2.GetEnumerator()
   at System.Collections.Generic.LargeArrayBuilder`1.AddRange(IEnumerable`1 items)
   at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at DerivedIncludeSelectiveTest.Program.GetSchoolsWithInclude(IQueryable`1 schools)

Further technical details
EF Core version: 2.2.6 and 3.0 (different errors in each)
Database provider: Microsoft.EntityFrameworkCore.SqlServer
Target framework: NET Core 3.0
Operating system: Windows 10 x64 Pro 1903
IDE: Visual Studio 2019 16.3.4

@vslee Thanks for reporting this. We discussed this behavior at length and while it can be viewed from different perspectives, the general feeling on the team is that validating that the Include could be valid is more important than allowing use of all types in the hierarchy consistently. This allows an error to be reported in cases where the code might be wrong.
In other words, the method GetSchoolsWithInclude should validate that the cast in Include might be valid and should not issue the Include if it is known to not be valid.

What is the recommended way to validate the cast, something like this?
static School[] GetSchoolsWithInclude(IQueryable<School> source)
{
	if (source.Any(s => s is PrimarySchool))
		return source
		.Include(s => ((PrimarySchool)s).Students) // loading students only for PrimarySchools
		.ToArray();
	else return source.ToArray();
}

@vslee No, that would result in sending two queries to the database.
@smitpatel @roji @bricelam Any idea how to do what was suggested in triage without using reflection on the actual type of the IQueryable?

static School[] GetSchoolsWithInclude<T>(IQueryable<T> source)
            where T : School
        {
            if (typeof(T) == typeof(School)
                || typeof(T) == typeof(PrimarySchool))
            {
                source = source.Include(e => (e as PrimarySchool).Students);
            }

            return source.ToArray();
        }

// Use as
GetSchoolsWithInclude(db.Schools);
                GetSchoolsWithInclude(db.PrimarySchools);
                GetSchoolsWithInclude(db.Colleges);

Great, thanks for the guidance

authors: ajcvickers smitpatel vslee


text:
Implements #11486: Contains support for SQL server FTS.

    Summary of the changes
    - Added Contains function mapping to SqlServerDbFunctionsExtensions.cs
    - Added translator logic for Contains to SqlServerFreeTextMethodCallTranslator, renamed to SqlServerFullTextSearchMethodCallTranslator.
    - Updated query generator
    - Added tests

Fixes #11486

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: DSilence sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

@dotnet-bot - test windows release x64 build

@DSilence - Can you rebase on release/2.2 branch?

@smitpatel - Done.

authors: DSilence divega dnfclas smitpatel


text:
How to disable Edit and Continue??

From @MrAndMrsK on December 23, 2015 18:36
When I'm working on client-side code I don't need the debugger actually engaged and I want to be able to edit my html/js/ts/css/whatever and just refresh my browser and see the updates.  But I can't edit when I'm debugging and IIS Express quits when I can edit.  In ASP.NET vBefore the first thing to do was disable Edit and Continue so that IIS Express would stay running and available.  I cannot find that option in the Project properties anymore.
Is there a way to achieve it in ASP.NET 5?
Thanks!
Copied from original issue: aspnet/Universe#340

This issue is being closed because it has not been updated in 3 months.
We apologize if this causes any inconvenience. We ask that if you are still encountering this issue, please log a new issue with updated information and we will investigate.

authors: aspnet-hello muratg

repo: aspnet/Home


text:
NET 2.1: Breaking Change in TestServer?

I have a website built on NET Core 2.0 with unit tests that confirm routing using the RestEase library. A unit test looks like this:
    [Fact]
    public async Task GetAll()
    {
        var webHostBuilder = CreateWebHostBuilder();
        using (var server = new TestServer(webHostBuilder))
        {
            var client = CreateClient(server);
            var objs = await client.GetAll();

            Assert.NotNull(objs);
            Assert.True(objs.Count > 0);
        }
    }

    public IWebHostBuilder CreateWebHostBuilder()
    {
        var config = new ConfigurationBuilder()
            .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
            .Build();

        var host = new WebHostBuilder()
            .UseConfiguration(config)
            .UseStartup<TestStartup>();

        return host;
    }

    public ITransactionsApi CreateClient(TestServer server)
    {
        HttpClient client = server.CreateClient();
        ITransactionsApi toReturn = RestClient.For<ITransactionsApi>(client);
        return toReturn;
    }

Everything runs and passes under 2.0. However, upon upgrading to 2.1, all tests fail with 404. Aside from the introduction of WebApplicationFactory, I don't see anything in the notes about changes to unit testing. It should also be noted that when debugging the routes work under both versions, which is why I'm suspect of TestServer. I can provide diffs for the main project and test project if needed. I appreciate any insight anyone can provide.

I'm not aware of any direct changes to TestServer that would affect routing.  Can you share a minimal project that reproduce the issue?
How does RestEase discover routes? I know of a similar issue with MVC that broke discovering routes in separate assemblies.

Thanks for the suggestion @Tratcher, that narrowed it down, and now your last comment makes sense. As you can see above, I am using a TestStartup class for my unit tests. This extends the main Startup class used by my website, but overrides some methods to disable logging, use mocked data layer, etc. TestStartup is in my test project, not in the main website project with the controllers.
In the tiny project I made to recreate this issue, the RestEase client works fine so long as I start the TestServer with the actual Startup class. As soon as I try to use a Startup class from the unit test project, the routes no longer function. So is this expected behavior?

You'll have to ask RestEase how they discover routes. It sounds similar to how MVC does it.
The difference here is likely that UseStartup sets the app name to the assembly name where your Startup class is located. You can override that.
https://github.com/aspnet/Hosting/blob/f9d145887773e0c650e66165e0c61886153bcc0b/src/Microsoft.AspNetCore.Hosting/WebHostBuilderExtensions.cs#L52-L55

To clarify, RestEase doesn't do any discovery on its own. It allows you to define an interface with attributes dictating the route. Like so:
public interface IApi
    {
        [Get("api/values/")]
        Task<List<string>> GetValues();
    }

I as the web creator know what the route is supposed to be, and can share this interface with client applications. I just also use it for my unit tests in order to check for routing problems. Using an HttpClient manually against the TestServer still results in 404.
So it's not that RestEase is having problems finding the routes, it's that the routes do not seem to exist when the Startup class is not in the same project. I tried the UseSettings like so:
var host = new WebHostBuilder()
                .UseConfiguration(config)
                .UseSetting(WebHostDefaults.ApplicationKey, typeof(Startup).GetTypeInfo().Assembly.GetName().Name)
                .UseStartup<TestStartup>();

But still get 404s. However, if I move TestStartup class into the main website project, the routes work correctly. So I have a workaround, but it seems like a bug to me since this was not the behavior in 2.0.

@pranavkm any suggestions?

Yes @pranavkm, I tried to follow the upgrade guide, and everything seems to work when I debug. I can provide before and after of my csproj to show the differences. For now I will try to upload a sample solution demonstrating the problem after only minimal changes to the API template.
NetCoreUnitTesting.zip

Re-arranging the last two lines of code from your Test.CreateWebHostBuilder fixes the issue:
public IWebHostBuilder CreateWebHostBuilder()
        {
            var config = new ConfigurationBuilder()
                //.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
                .Build();

            var host = new WebHostBuilder()
                .UseConfiguration(config)
                .UseStartup<TestStartup>() // Point to the test startup first
                .UseSetting(WebHostDefaults.ApplicationKey, typeof(Startup).GetTypeInfo().Assembly.GetName().Name); // Set the "right" application after the startup's been registerted

            return host;
        }

Background:  UseStartup overwrites the ApplicationKey - https://github.com/aspnet/Hosting/blob/master/src/Microsoft.AspNetCore.Hosting/WebHostBuilderExtensions.cs#L55 effectively negating .UseSetting(WebHostDefaults.ApplicationKey, typeof(Startup).GetTypeInfo().Assembly.GetName().Name). MVC uses the application assembly as the root of discovery for other assemblies that reference MVC to then search for controllers in. This likely happened in 2.0 too but worked because MVC could infer that NetCoreUnitTesting.Tests references NetCoreUnitTesting which in turn references MVC (transitively).
The AspNetCore shared runtimes make querying this difficult - transitive dependencies that also reference the runtime show up as not referencing the runtime. When MVC queries NetCoreUnitTesting when the root of the graph is NetCoreUnitTesting.Tests, it comes back as saying it does not reference Microsoft.AspNetCore.App. Correcting the app name corrects the root of the graph fixing the issue.

authors: Tratcher moogle001 pranavkm


text:
SetContent(IHtmlContent content) should be renamed to SetHtmlContent

We changed the Append overloads to be specific on whether they were appending HTML or non-HTML content. Aka AppendHtml had an overload for IHtmlContent but Append did not.
We need to make this same change to SetContent/SetHtmlContent.

Either we change in RC2 or never. No strong opinion either way.

Lets change this in RC2 then.

authors: Eilon NTaylorMullen

repo: aspnet/HtmlAbstractions