Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[VMR] CheckForImplicitPackageReferenceOverrides eliminates all runtime packs in the event of duplicates in aspnetcore #3150

Closed
directhex opened this issue Dec 2, 2022 · 1 comment · Fixed by dotnet/installer#15163
Labels
area-build Improvements in source-build's own build process

Comments

@directhex
Copy link
Member

aspnetcore specifies dependencies on every known/published runtime pack & crossgen, and also a dependency on the runtime pack specified by $(TargetRuntimeIdentifier). For example, that means a dependency exists for both Microsoft.NETCore.App.Runtime.linux-x64 and Microsoft.NETCore.App.Runtime.ubuntu.22.04-x64 when building on Ubuntu. The former dependency is found in the source-build prebuilts, with a 7.0ish version number, and the latter is found from the runtime build with an 8.0ish version number. These are deduplicated, and only the runtime build version is used.

https://github.com/dotnet/aspnetcore/blob/600eb9aa53c052ec7327e2399744215dbe493a89/eng/Dependencies.props#L97-L110

However, when building a build where runtime is emitting runtime packs with the same filename as the prebuilts, and aspnetcore is also targeting the same RID, then the runtime pack dependencies are duplicated entirely, and the prebuilt versions are ignored entirely. The CheckForImplicitPackageReferenceOverrides task seems to not only deduplicate the entries, but eliminate them both. Subsequently, the build fails when crossgen2 is not found (because no crossgen package has been restored)

Screenshot from 2022-12-02 09-32-35

@dotnet-issue-labeler
Copy link

I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.

@MichaelSimons MichaelSimons added area-build Improvements in source-build's own build process and removed untriaged labels Dec 8, 2022
directhex added a commit to directhex/installer that referenced this issue Dec 20, 2022
As-is, the build will fail on portable RID platforms because without
`/p:PortableBuild=true`, the CrossGen2 nupkg gets imported twice, which
causes a buiold failure due to an SDK bug.

Closes: dotnet/source-build#3150
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-build Improvements in source-build's own build process
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

2 participants