Skip to content
代码片段 群组 项目
  • Doug Bunting's avatar
    5266918e
    Use Roslyn to create ref/ assemblies (#23403) · 5266918e
    Doug Bunting 创作于
    * Remove all ref/ projects
    
    * Remove GenAPI infrastructure
    
    * Remove notion of a reference assembly project
      - remove `$(IsReferenceAssemblyProject)`, `$(ReferenceReferenceAssemblies)` and `$(ReferenceImplementationAssemblies)`
        - remove unnecessary `$(NoWarn)` settings
    
    nits:
    - remove a few misleading comments
    - wrap some long lines
    
    * Move .0 package version workaround into Versions.props
      - touch up SharedFramework.External.props
    
    * Expose `%(LatestPackageReference.RTMVersion)` metadata
      - automate use of properties in the `@(LatestPackageReference)` item group to make this maintainable
        - add a couple of special cases at the bottom of eng/Dependencies.props
        - add one more `$(...PackageVersion)` property to avoid yet-another special case
    
    * Enable Roslyn reference assemblies
      - exclude ref/ assembly from packages other than targeting pack
      - update Microsoft.AspNetCore.App.Ref.csproj
        - `%(IsReferenceAssembly)` and `%(ReferenceGrouping)` metadata no longer relevant
        - only ref/ assemblies are in `@(ReferencePathWithRefAssemblies)` item group
    
    nits:
      - remove now-unnecessary workaround
        - issues with TFM transition are behind us
      - clean up Microsoft.AspNetCore.App.Runtime.csproj slightly
        - use `GeneratePathProperty="true"`
            - reorder item / property settings for meta-expansion
        - correct spelling errors and phrasing in comments
    
    * Update documentation to reflect recent changes
      - remove CrossRepoBreakingChanges.md; was tied to old TeamCity infrastructure
        - also much less relevant given repo merges
      - adjust details and examples in ReferenceResolution.md
        - reflect repo merges, Dependencies.props changes, and current Maestro++ channels
        - add a few more details e.g. specific files where Version.Details.xml versions are used
    
    * !fixup! Remove another irrelevant doc file
    
    * !fixup! Address PR review suggestions
      - convert a couple of warnings to errors
      - use consistent casing for Microsoft.NETCore.App.Runtime.* packages
      - reduce `%(LatestPackageReference.Version)` metadata special cases
      - add and improve comments e.g.
        - improve comments about `$(*V0PackageVersion)` properties
        - improve placement of comments about item removal in ResolveReferences.targets
        - confirmed `$(*V0PackageVersion)` property list is complete
    
    nits:
    - fix solution example in ReferenceResolution.md
    - remove item group definition for `@(LatestPackageReference)`
    - remove `%(LatestPackageReference.VersionName)` metadata after use; large item group
        - similarly, remove `%(LatestPackageReference.RTMVersion)` when not needed; just complicates `Condition`s
    
    When I squash, I must remember this fixes
    - #14801
    - dotnet/aspnetcore-internal#2693
    
    * Actually use `%(LatestPackageReference.RTMVersion)` metadata
      - gather RTM package references in a new project
        - a (very) separate project to work around package conflict resolution
        - empty `Test` target works around Arcade's testing approach
      - new target in ResolveReferences.targets updates relevant assembly paths to use the RTM packages
        - done as soon as possible after `ResolvePackageAssets` determines the paths
        - done for all compilation inputs, not just ref/ assemblies
    未验证
    5266918e
    历史
    Use Roslyn to create ref/ assemblies (#23403)
    Doug Bunting 创作于
    * Remove all ref/ projects
    
    * Remove GenAPI infrastructure
    
    * Remove notion of a reference assembly project
      - remove `$(IsReferenceAssemblyProject)`, `$(ReferenceReferenceAssemblies)` and `$(ReferenceImplementationAssemblies)`
        - remove unnecessary `$(NoWarn)` settings
    
    nits:
    - remove a few misleading comments
    - wrap some long lines
    
    * Move .0 package version workaround into Versions.props
      - touch up SharedFramework.External.props
    
    * Expose `%(LatestPackageReference.RTMVersion)` metadata
      - automate use of properties in the `@(LatestPackageReference)` item group to make this maintainable
        - add a couple of special cases at the bottom of eng/Dependencies.props
        - add one more `$(...PackageVersion)` property to avoid yet-another special case
    
    * Enable Roslyn reference assemblies
      - exclude ref/ assembly from packages other than targeting pack
      - update Microsoft.AspNetCore.App.Ref.csproj
        - `%(IsReferenceAssembly)` and `%(ReferenceGrouping)` metadata no longer relevant
        - only ref/ assemblies are in `@(ReferencePathWithRefAssemblies)` item group
    
    nits:
      - remove now-unnecessary workaround
        - issues with TFM transition are behind us
      - clean up Microsoft.AspNetCore.App.Runtime.csproj slightly
        - use `GeneratePathProperty="true"`
            - reorder item / property settings for meta-expansion
        - correct spelling errors and phrasing in comments
    
    * Update documentation to reflect recent changes
      - remove CrossRepoBreakingChanges.md; was tied to old TeamCity infrastructure
        - also much less relevant given repo merges
      - adjust details and examples in ReferenceResolution.md
        - reflect repo merges, Dependencies.props changes, and current Maestro++ channels
        - add a few more details e.g. specific files where Version.Details.xml versions are used
    
    * !fixup! Remove another irrelevant doc file
    
    * !fixup! Address PR review suggestions
      - convert a couple of warnings to errors
      - use consistent casing for Microsoft.NETCore.App.Runtime.* packages
      - reduce `%(LatestPackageReference.Version)` metadata special cases
      - add and improve comments e.g.
        - improve comments about `$(*V0PackageVersion)` properties
        - improve placement of comments about item removal in ResolveReferences.targets
        - confirmed `$(*V0PackageVersion)` property list is complete
    
    nits:
    - fix solution example in ReferenceResolution.md
    - remove item group definition for `@(LatestPackageReference)`
    - remove `%(LatestPackageReference.VersionName)` metadata after use; large item group
        - similarly, remove `%(LatestPackageReference.RTMVersion)` when not needed; just complicates `Condition`s
    
    When I squash, I must remember this fixes
    - #14801
    - dotnet/aspnetcore-internal#2693
    
    * Actually use `%(LatestPackageReference.RTMVersion)` metadata
      - gather RTM package references in a new project
        - a (very) separate project to work around package conflict resolution
        - empty `Test` target works around Arcade's testing approach
      - new target in ResolveReferences.targets updates relevant assembly paths to use the RTM packages
        - done as soon as possible after `ResolvePackageAssets` determines the paths
        - done for all compilation inputs, not just ref/ assemblies