You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Derive managed shared framework and generator inputs from NetCoreAppLibrary.props, and rebuild native library inputs through build-native.proj before packaging.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a02d8ce4-72ef-40df-b3d2-8bea5d31d7a4
Azure Pipelines:
Successfully started running 3 pipeline(s).
13 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.
The reason will be displayed to describe this comment to others. Learn more.
Copilot review overview
🔵 Needs a closer look
It changes core packaging/build-graph mechanics across multiple MSBuild entry points, so a maintainer should validate the end-to-end pack composition and build ordering implications.
Review tier: Lite Findings: 1
New issues introduced by this change (1)
Severity
Finding
src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Ref.sfxproj — The generator projects are multi-targeted (e.g., netstandard2.0 +…
What changed in this PR
This PR refactors how the shared-framework (SFX) packs discover their managed-library and generator inputs by deriving them from NetCoreAppLibrary.props via project references, and adjusts the build graph so libs.native is built before native files are harvested for packs.
Changes:
Replace ad-hoc project globbing in sfx-src.proj / sfx-gen.proj with a shared NetCoreAppLibraryProjectReferences.props import that produces the project reference item lists.
Update Microsoft.NETCore.App runtime/ref pack projects to consume managed library outputs (and generator analyzer files) via project references/MSBuild harvesting instead of local-build artifact globbing.
Split eng/liveBuilds.targets runtime file harvesting into managed vs native targets and tweak subset build properties to ensure correct runtime-flavor propagation and avoid duplicate build-native.proj executions.
File
Description
src/libraries/sfx-src.proj
Switch traversal inputs to @(NetCoreAppLibrarySourceProject) from the shared props import.
src/libraries/sfx-gen.proj
Switch traversal inputs to @(NetCoreAppLibraryGeneratorProject) from the shared props import.
Avoid building every target framework for generator project references while preserving the existing ref pack analyzer layout.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a02d8ce4-72ef-40df-b3d2-8bea5d31d7a4
The reason will be displayed to describe this comment to others. Learn more.
Copilot review overview
🟡 Changes recommended
The new native-artifact existence enforcement in ResolveLibrariesRuntimeFilesFromLocalBuild risks breaking existing managed-only consumers unless they’re updated to use the new managed-only target (or the enforcement is made opt-in).
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review tier: Lite Findings: 1
New issues introduced by this change (1)
Severity
Finding
eng/liveBuilds.targets — EnsureLocalLibrariesNativeArtifactsExist now hard-errors when $(LibrariesNativeArtifactsPath)…
Issues resolved since last review (1)
Severity
Finding
src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Ref.sfxproj — The generator projects are multi-targeted (e.g., netstandard2.0 +… View resolved comment
Use the generator project references to collect analyzer files and preserve no-build and Visual Studio packing from existing outputs.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a02d8ce4-72ef-40df-b3d2-8bea5d31d7a4
The reason will be displayed to describe this comment to others. Learn more.
Copilot review overview
🟡 Changes recommended
The ref-pack analyzer packaging currently hardcodes the analyzer target path and can break the existing analyzer folder layout (e.g., Roslyn-versioned paths) by ignoring PackagePath.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review tier: Lite Findings: 1 · 1
New issues introduced by this change (1)
Severity
Finding
src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Ref.sfxproj — The analyzer packaging path is currently hardcoded to analyzers/dotnet/cs/%(...Culture) for…
Pre-existing issues (1)
Severity
Finding
eng/liveBuilds.targets — EnsureLocalLibrariesNativeArtifactsExist now hard-errors when $(LibrariesNativeArtifactsPath)… View comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot review overview
🟡 Changes recommended
The ref pack now hardcodes analyzer TargetPath placement, which risks diverging from the existing GeneratorProjectBaseTargetPath-driven analyzer layout used elsewhere.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review tier: Lite Findings: 1 · 1
New issues introduced by this change (1)
Severity
Finding
src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Ref.sfxproj — The analyzer/generator files are being packed to a hardcoded analyzers/dotnet/cs/ path. Elsewhere…
Pre-existing issues (1)
Severity
Finding
eng/liveBuilds.targets — EnsureLocalLibrariesNativeArtifactsExist now hard-errors when $(LibrariesNativeArtifactsPath)… View comment
Issues resolved since last review (1)
Severity
Finding
src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Ref.sfxproj — The analyzer packaging path is currently hardcoded to analyzers/dotnet/cs/%(...Culture) for… View resolved comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot review overview
🔵 Needs a closer look
It changes core build/packaging dependency flow across multiple MSBuild entrypoints (packs, live builds, wasm/NativeAOT test hooks), so it should be validated by a maintainer with CI results before approval.
Review tier: Lite Findings: 1
Pre-existing issues (1)
Severity
Finding
src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Ref.sfxproj — The analyzer/generator files are being packed to a hardcoded analyzers/dotnet/cs/ path. Elsewhere… View comment
Issues resolved since last review (1)
Severity
Finding
eng/liveBuilds.targets — EnsureLocalLibrariesNativeArtifactsExist now hard-errors when $(LibrariesNativeArtifactsPath)… View resolved comment
Build CoreLib and NativeAOT managed assemblies through project references, extract MIBc merging into a dedicated producer, and let shared framework R2R process CoreLib consistently.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a02d8ce4-72ef-40df-b3d2-8bea5d31d7a4
The reason will be displayed to describe this comment to others. Learn more.
Copilot review overview
🔵 Needs a closer look
It makes broad, cross-cutting changes to build/pack orchestration (project references, artifact resolution, and MIBc production) that warrant final human review for packaging/layout and build graph regressions.
Review tier: Lite Findings: 1 · 2
New issues introduced by this change (2)
Severity
Finding
src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Runtime.CoreCLR.sfxproj — Remove the empty <ItemGroup> block; it doesn't carry any items and makes the project file harder to…
src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Runtime.Mono.sfxproj — Remove the empty <ItemGroup> block; it adds noise and can mislead readers into thinking project…
Pre-existing issues (1)
Severity
Finding
src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Ref.sfxproj — The satellite resource assembly glob uses *\... which does not populate %(RecursiveDir). As a… View comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot review overview
🔵 Needs a closer look
eng/codeOptimization.targets can enable PGO embedding while producing no .mibc input when UseMibcProjectReference is disabled, which risks invalid/ineffective R2R compilation settings.
Review tier: Lite Findings: None
Issues resolved since last review (3)
Severity
Finding
src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Runtime.Mono.sfxproj — Remove the empty <ItemGroup> block; it adds noise and can mislead readers into thinking project… View resolved comment
src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Runtime.CoreCLR.sfxproj — Remove the empty <ItemGroup> block; it doesn't carry any items and makes the project file harder to… View resolved comment
src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Ref.sfxproj — The satellite resource assembly glob uses *\... which does not populate %(RecursiveDir). As a… View resolved comment
Suppressed comments (1)
Previously missed (1) — in code that hasn't changed since the last review.
eng/codeOptimization.targets:55
In AddReadyToRunPgoOptions, PublishReadyToRunPgoFiles is now sourced only from @(MergedMibcFile). If someone disables UseMibcProjectReference (or it's false in a given build), IncludeMibcFilesInReadyToRun can still become true, which will enable PGO embedding flags but provide no .mibc input file. Consider adding a fallback to the traditional StandardOptimizationData.mibc path when UseMibcProjectReference != true, or otherwise gating PGO inputs on that switch.
Let all runtime packs rely on the condition in codeOptimization.targets instead of forcing the project reference locally.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a02d8ce4-72ef-40df-b3d2-8bea5d31d7a4
When UseRuntimeManagedProjectReferences is true, eng/liveBuilds.targets removes the old CoreCLRArtifactsPdbDir entries for System.Private.CoreLib.pdb and System.Private.CoreLib.ni.pdb, so this target must add them. _RuntimeCoreLibFile is only the project output and does not include those separately located PDBs; as written, CoreCLR runtime packs lose these symbols compared with the artifact-based path. Include the existing CoreCLR PDB files alongside the project output before packaging.
Treat project-produced CoreLib as a native runtime-pack asset on every platform and include the merged MIBc project output in regular NativeAOT packs while keeping source-build excluded.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a02d8ce4-72ef-40df-b3d2-8bea5d31d7a4
With UseRuntimeManagedProjectReferences=true, this is now the only place that adds CoreCLR's managed CoreLib to RuntimeFiles, but it adds only the DLL. src/coreclr/Directory.Build.targets:6-15 moves the CoreLib PDB to $(RuntimeBinDir)PDB, and the old eng/liveBuilds.targets:123-128 included both System.Private.CoreLib.pdb and System.Private.CoreLib.ni.pdb; symbol-enabled CoreCLR runtime packs therefore omit those files. Add the existing PDB paths, when present, as native RuntimeFiles alongside the DLL.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
NetCoreAppLibrary.propsthrough project referencesmscorliband the existing analyzer package layoutlibs.nativethroughbuild-native.projbeforeliveBuilds.targetsharvests native files, while deduplicating combinedlibs.native+packsbuildsValidation
libs.native+packs.productand confirmed onebuild-native.projexecutionNote
This PR description was generated by GitHub Copilot.