-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Use live illink to trim framework #91233
Conversation
Tagging subscribers to this area: @dotnet/area-infrastructure-libraries Issue Detailsnull
|
Also prevent build-native.proj from importing illink.targets.
- Don't reference ILLink.Tasks from subsets - Use PackageReference from illink.tasks - Import props from source directory Add extensibility to shipping targets to make this possible. - Set IsSourceProject false for .proj files
Avoid needing to reorganize SDK imports
Co-authored-by: Viktor Hofer <[email protected]>
@sbomer I pushed one more commit to your branch to make sure that the tools build with the correct configuration when building from root. EDIT: Pushed one more as paths weird displayed weirdly in binlogs: |
We agreed on (at least under src/libraries) to use the Windows directory separator char `\` instead of a forward slash. This helps when looking at binlogs as those then correctly display a path.
Built your changes locally with a mixed set of configurations: |
This looks like it may be breaking the official build https://dev.azure.com/dnceng/internal/_build/results?buildId=2257152&view=results |
Seems to be NativeAOT legs only. |
Fix is here: #91454 |
#90517 added a workaround to trim the framework using the SDK's version of ILLink.Tasks (see #90517 (comment) for context). This removes the workaround and replaces it with logic to use the live build of ILLink.Tasks.
The dependency on ILLink.Tasks is expressed via a magical
ProjectReference
that @ViktorHofer kindly helped me construct.Unfortunately I had to add a small extension point to
Microsoft.NET.ILLink.Tasks.props
, to allow overriding the analyzer props path. This lets it be imported right out of the source tree, instead of from the build output of ILLink.Tasks.