Skip to content

Design for allowing restore of multiple equivalent frameworks (Target Frameworks as Aliases)#12124

Merged
nkolev92 merged 9 commits intodevfrom
dev-nkolev92-tfmaliases
Feb 10, 2026
Merged

Design for allowing restore of multiple equivalent frameworks (Target Frameworks as Aliases)#12124
nkolev92 merged 9 commits intodevfrom
dev-nkolev92-tfmaliases

Conversation

@nkolev92
Copy link
Copy Markdown
Member

@nkolev92 nkolev92 commented Oct 3, 2022

Design for #5154

Rendered

cc @dsplaisted

Copy link
Copy Markdown

@Nirmal4G Nirmal4G left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some ideas and suggestions. Feel free to ignore it. 😅🙃

Comment thread proposed/2022/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
Comment thread proposed/2022/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
Comment thread proposed/2022/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
Comment thread proposed/2022/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
Comment thread proposed/2022/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
Comment thread proposed/2022/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
Comment thread proposed/2022/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
Comment thread proposed/2022/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
Comment thread proposed/2022/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
@nkolev92
Copy link
Copy Markdown
Member Author

nkolev92 commented Oct 4, 2022

Thanks for taking a look @Nirmal4G

For context, this is design I'm still working on, I'd say it's at about 50%.

Hoping to add more details about the scenarios and just in general provide more concrete proposals soon.

@Nirmal4G
Copy link
Copy Markdown

Nirmal4G commented Oct 4, 2022

@nkolev92 These are some of my observations and preliminary suggestions, ideas and takeaways from this draft. I'm not taking this as a concrete proposal. I'm just viewing this from a 10-foot view (or design perspective) of the proposal to see how it could impact normal as well as advanced users. In that mindset, read through my comments again. You would then see what I was talking about.

@Nirmal4G
Copy link
Copy Markdown

Nirmal4G commented Oct 4, 2022

Hoping to add more details about the scenarios and just in general provide more concrete proposals soon.

Sure, Will look though once you mark this ready for review. Sorry for the uninvited comments. I'll stop now.

@nkolev92
Copy link
Copy Markdown
Member Author

nkolev92 commented Oct 4, 2022

Hoping to add more details about the scenarios and just in general provide more concrete proposals soon.

Sure, Will look though once you mark this ready for review. Sorry for the uninvited comments. I'll stop now.

Oh no worries. I appreciate the feedback as this is a large doc so getting feedback early on is always great.

My comment was more about that fact that I'll be adding even more info to the doc, setting expectations about when something like this would even be close to happening :)

@JonDouglas
Copy link
Copy Markdown
Contributor

@ViktorHofer & @ericstj

Comment thread proposed/2022/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
@zivkan zivkan self-assigned this Nov 13, 2023
@zivkan zivkan marked this pull request as ready for review November 15, 2023 13:27
@zivkan zivkan requested a review from a team as a code owner November 15, 2023 13:27
@zivkan zivkan force-pushed the dev-nkolev92-tfmaliases branch from 55c6bba to 1c19625 Compare November 23, 2023 08:55
Comment thread accepted/2022/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
Comment thread accepted/2022/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
Comment thread accepted/2022/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
@ghost
Copy link
Copy Markdown

ghost commented Jan 11, 2024

This PR has been automatically marked as stale because it has no activity for 30 days. It will be closed if no further activity occurs within another 15 days of this comment, unless it has a "Status:Do not auto close" label. If it is closed, you may reopen it anytime when you're ready again, as long as you don't delete the branch.

@zivkan
Copy link
Copy Markdown
Member

zivkan commented Jan 26, 2024

oops, vacation and other priorities has kept this feature on the backburner, but it's still planned.

@nkolev92 nkolev92 force-pushed the dev-nkolev92-tfmaliases branch from 650ca9a to b6c47f6 Compare December 12, 2025 18:39
@nkolev92 nkolev92 marked this pull request as ready for review December 12, 2025 18:42
@nkolev92 nkolev92 requested a review from baronfel December 12, 2025 18:43
@nkolev92
Copy link
Copy Markdown
Member Author

@ericstj @ViktorHofer @dsplaisted @baronfel @zivkan @jeffkl

This is ready for review.

It's a complicated, but I'd love to get through it async as much as possible because of the length itself :D

dsplaisted
dsplaisted previously approved these changes Dec 12, 2025
Comment thread accepted/2025/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
Comment thread accepted/2025/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
Comment thread accepted/2025/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
Comment thread accepted/2025/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
Comment thread accepted/2025/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
Comment thread accepted/2025/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
Comment thread accepted/2025/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
JanProvaznik pushed a commit to dotnet/msbuild that referenced this pull request Dec 19, 2025
Fixes #

### Context

Design: NuGet/Home#12124

To allow duplicate frameworks in aliasing, the project reference
protocol nearest framework selection needs to be updated to support
matching by alias as well.

Relevant part: 

https://github.com/NuGet/Home/blob/dev-nkolev92-tfmaliases/accepted/2025/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md#project-to-project-references

NuGet/NuGet.Client#7011 NuGet.Client side
adding the parameter.
NuGet/NuGet.Client#6972 will add the full
implementation at a later point.

### Changes Made

- Pass CurrentProjectTargetFrameworkProperty if
GetReferenceNearestTargetFrameworkTaskSupportsTargetFrameworKPropertyParameter
is set.
- If
GetReferenceNearestTargetFrameworkTaskSupportsTargetFrameworKPropertyParameter
is not set, but
GetReferenceNearestTargetFrameworkTaskSupportsTargetPlatformParameter is
set, call the old variation.
- Otherwise calls the last variation.

### Testing

- Manual testing.
- I'd be happy to add tests if someone can point me in the right
direction.
### Notes

The idea here is to get ahead of things. Currently aliasing work can't
be end to end tested because it requires an msbuild change. It makes it
really hard to validate the NuGet changes are enough and good, but this
is the only change needed on the msbuild side.

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

@donnie-msft donnie-msft left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had a couple questions, and left a few nits.
Suggest having Copilot review spelling/etc and also telling it to put each sentence on a new line in the markdown, as I know Andy prefers that.

Comment thread accepted/2025/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
Comment thread accepted/2025/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
Comment thread accepted/2025/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
Comment thread accepted/2025/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
Comment thread accepted/2025/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
Comment thread accepted/2025/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
Comment thread accepted/2025/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
Comment thread accepted/2025/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
Comment thread accepted/2025/Multiple-Equivalent-Framework-Support-TFM-As-Aliases.md Outdated
@nkolev92
Copy link
Copy Markdown
Member Author

Addressed all feedback + review feedback.

@donnie-msft, @zivkan can I get approval so I can merge.

Thanks!

@nkolev92 nkolev92 merged commit c78d991 into dev Feb 10, 2026
1 check passed
@nkolev92 nkolev92 deleted the dev-nkolev92-tfmaliases branch February 10, 2026 21:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Status:Do not auto close Do not auto close for PRs needs long review process

Projects

None yet

Development

Successfully merging this pull request may close these issues.