Improve generation and use of ref/ projects#17311
Conversation
|
This PR is incomplete. Please see Build.log (containing ~560 errors) and Build.unique.log (containing the ~190 unique errors). In addition, the src\Identity\Extensions.Stores\ref\Microsoft.Extensions.Identity.Stores.Manual.cs file is empty. Just waiting to find what types we're using. |
|
Steps to handle the
Suggest splitting up by ref/ project area to avoid both working on ProjectA because it contains missing members at opposite ends of the alphabet. FYI I grabbed the warnings-only log using |
|
Most urgent thing is to test building (and executing) variants of e.g. src\SignalR\samples\ClientSample outside the AspNetCore repo i.e. with the 3.0.1 targeting pack / SDK and all I suggest changing Extensions very slightly to build Microsoft.Extensions.Logging.Testing and maybe one or two other internal packages against ref/ assemblies. |
|
First 4 commits have already been merged -- in #17245. Visible because I changed the base branch to 'release/3.0' and GitHub hasn't noticed those changes are already there. |
16f6c6d to
e0ca7fa
Compare
|
Changed my mind and rebased the branch. See you all in a few days. |
a9db76d to
7d97608
Compare
- restrict when `$(HasReferenceAssembly)` is `true` by default - add warnings when `$(IsAspNetCoreApp)` or `$(HasReferenceAssembly)` have unexpected values
- associated implementation projects no longer have `$(HasReferenceAssembly)` set to `true`
|
Bit more about handling So, the Note: Any |
- see dotnet/arcade#4488 - generation for these members leads to NREs
- Identity/Core - Identity/Extensions.Core - Mvc/Mvc.ViewFeatures
|
The only remaining non-
Plus a couple
Source build is fixed now! |
- add direct references to some test and sample projects to make intent clear i.e. address CS1705 root cause - these projects must use implementation assemblies for those direct references - requirement also applies to anything depending on them e.g. functional tests - for simplicity, use `$(CompileUsingReferenceAssemblies)` instead of targeted `@(Reference)` metadata - leads to ~40 projects that do not themselves add ref/ metadata - this is _not_ transitive i.e. it applies only to projects that override `$(CompileUsingReferenceAssemblies)`
cfbcf2e to
76363d1
Compare
This reverts commit 1ca2483.
This PR is a fairly large cleanup of our 'release/3.0' work to at least get implementation assemblies built against ref/ assemblies. It has the following aims:
Stretch goals include: