* Fix more null refs in Api Analyzers
* Make attributes used by analyzer public
* Compile analyzer tests against ref assemblies
* Turn on Nullable reference types and harden some null-checks
Fixes https://github.com/aspnet/AspNetCore/issues/8686
* CR feedback left over from #10227
* Begin adding E2E test case
* Add cookie auth and test login page
* Make E2E auth component work client-side too
* Restructure auth E2E tests around a router so there can easily be multiple such test components
* Add E2E test case for AuthorizeView
* Prepare for E2E test implementations
* Fix ToBaseRelativePath handling of hashes
... otherwise E2E test will fail, because we're using the hash to control server-or-client execution
* Decouple E2E execution mode from hosting mode
* Actual E2E tests for cascading authentication state
* Actual E2E tests for AuthorizeView (in "no authentication rule" mode)
* Fix inconsistent namespace
* CR: Manual ref assembly definitions for AuthorizeView/CascadingAuthenticationState
* Update versioning for local and PR builds to match Arcade versioning
* Mark CanCancelIAsyncEnumerableClientToServerUpload as flaky - cref aspnet/AspNetCore-Internal#2465
* Disable rollforward in project template tests (3.0.0-dev is older than 3.0.0-preview*). This prevents tests from rolling forward onto technically older bits
The Arcade SDK requires that the obj/ and bin/ folders be placed in the top-level artifacts/ folder of the repo. Although this PR does not complete our Arcade convergence, this is a step towards updating our repo to build with the Arcade SDK.
Changes:
* Set output path for build to artifacts/bin/$(ProjectName)/
* Set intermediate output path for build to artifacts/obj/$(ProjectName)/
* Cleanup .gitignore files (remove duplication between repo-root and tested gitignore files)
* Add code check which looks for project files that share the same name (could cause issues)
* Rename project files to have unique names (avoid race condition of build output)
* Update all locations which were hard-coded to expect bin/ and obj/ in the project directory
* Add overrides for tests which still assert test binaries exist in a given location relative to the source code