aspnetcore/eng/tools/GenerateFiles
Doug Bunting 5fd1db2625
Further centralize shared Fx and TFM transition workarounds (#27473)
* Further centralize shared Fx and TFM transition workarounds
  - make generated `Directory.Build.*` files more widely applicable
    - warn if requested Microsoft.AspNetCore.App version does not exist in `$(DOTNET_ROOT)`
    - add `$(UpdateAspNetCoreKnownFramework)` for Microsoft.AspNetCore.App `@(KnownFrameworkReference)` update
    - remove central `$(BuildingTestAppsIndependently)` special case
      - not needed because compiler toolset version is always available
    - correct `$(KnownAppHostPackOrFrameworkReferenceTfm)` when not targeting the default TFM
      - use MSBuild intrinsic functions for this and in framework projects; future-proofing
    - correct `@(KnownFrameworkReference)` metadata when in servicing
       - should not override default runtime and targeting pack versions
  - use generated `Directory.Build.*` files in regular build
    - remove now-duplicate property and item settings outside generated `Directory.Build.*` files
  - use generated `Directory.Build.*` files for local Razor tests
    - set `$(TargetLatestRuntimePatch)` instead of `$(RuntimeFrameworkVersion)`; simpler
    - do not restore Razor SDK test asset projects until just before tests run
    - depend on Microsoft.AspNetCore.App projects
    - disable `$(TreatWarningsAsErrors)` for a few Razor SDK tests
      - tests expect projects to build successfully despite a few warnings
  - improve (widen) Microsoft.AspNetCore.App `Condition` in Blazor SDK tests

nit: do not pass `$(MicrosoftNetCompilersToolsetVersion)` into Razor test asset projects
  - not needed because generated files already contain the right information
  - even without that, the Directory.Build.props file imports eng/Versions.props

* Use generated `Directory.Build.*` files for local template tests
  - move Infrastructure/ files to TestInfrastructure/
    - Infrastructure/ sub-directories were functionally identical
  - move shared parts of template test project files to PrepareForTest.targets

* Describe errors with missing generated files and the new warning in BuildFromSource.md
  - address numerous Markdown lint warnings, typos, and spelling mistakes in this file

* Apply suggestions from code review
  - thanks @captainsafia

* Move all troubleshooting information into BuildErrors.md
  - some was already duplicated
  - fix Markdown lint issues in BuildErrors.md too

* Reorder App.Runtime build slightly
  - move `_InstallFrameworkIntoLocalDotNet` earlier because other builds depend on this part
    - this target sometimes executes after dependent projects continue
  - add `DependsOnTargets` attributes to further constrain ordering

nit: `IncludeFrameworkListFile` should run before `_ResolveSharedFrameworkContent`

* Add temporary workaround for `[AssemblyVersion]` changes

* Address @wtgodbe's nit from #27653
  - https://github.com/dotnet/aspnetcore/pull/27653#pullrequestreview-529368502

Co-authored-by: Safia Abdalla <safia@microsoft.com>
2020-12-02 22:50:09 -08:00
..
Directory.Build.props.in Further centralize shared Fx and TFM transition workarounds (#27473) 2020-12-02 22:50:09 -08:00
Directory.Build.targets.in Further centralize shared Fx and TFM transition workarounds (#27473) 2020-12-02 22:50:09 -08:00
GenerateFiles.csproj Further centralize shared Fx and TFM transition workarounds (#27473) 2020-12-02 22:50:09 -08:00