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

[release/3.1] WinFX casing and double-import fixes #4254

Closed
wants to merge 7 commits into from

Conversation

Nirmal4G
Copy link
Contributor

@Nirmal4G Nirmal4G commented Mar 7, 2021

Closes #4253

Master PRs: #2975, #2976, #4630

Description

Casing of WinFX is wrong in file name of the props/targets leading to file not found errors in case-sensitive file systems, leading to build break.
When using the Desktop SDK, the build double imports both Full framework and Core WinFX targets, leading to build break.
Also, there's no straight forward way to switch between either WinFX targets as needed. This patch provides such mechanism through ImportFrameworkWinFXTargets.

Although, there are workarounds for the above issues, they require modifying the installation of the .NET SDKs. So, it's preferable to have them fixed at least for LTS (v3.1) .NET SDK.

Customer Impact

Regression

Yes, Desktop SDK and WinFX targets were introduced since v3.0!

Testing

Manual testing and mostly with our WPF projects builds against both .NET Core and Full framework CLRs.

Risk

There should be minimal to no risk to most when taking this patch.
But, if you're building both Full framework and Core projects with heavily modified build like ours, depending on the exact casing and behaviour of the double import, then Yes, the build will break.
However, if you already have your workarounds placed, then there should be no problem. You can also remove those workarounds when updating to the SDK with this patch as it fixes those issues.

@ghost ghost added the PR metadata: Label to tag PRs, to facilitate with triage label Mar 7, 2021
@ghost ghost requested review from fabiant3, ryalanms and SamBent March 7, 2021 14:44
@Nirmal4G Nirmal4G force-pushed the hotfix/winfx-v3.1 branch 5 times, most recently from fea11bb to c09f125 Compare March 12, 2021 19:08
@Nirmal4G Nirmal4G force-pushed the hotfix/winfx-v3.1 branch from c09f125 to 0144c0f Compare June 4, 2021 12:41
@Nirmal4G Nirmal4G force-pushed the hotfix/winfx-v3.1 branch from 0144c0f to bf22099 Compare June 15, 2021 03:35
daviddenis-stx and others added 7 commits August 17, 2021 09:05
The 'MarkupCompiler' sources in 'PresentationBuildTasks' uses hardcoded
backslash '\' which leads to projects failing build in non-Windows platforms.

This patch replaces the hardcoded backslash to a cross-platform friendly
replacement with 'Path.DirectorySeparator'.

NOTE: This only fixes in PBT and not anywhere else.
'WinFX' is the correct casing as observed in the .NET CLR 2 frameworks
In project files, scripts, comments, etc...
But not in sources (like GetWinFxCallback)

'WinFX' is the correct casing as observed in the .NET CLR 2 frameworks
When the SDK's implementation is being used.
The MSBuild items & targets that were defined after the WinFX targets import doesn't depend on anything from the WinFX targets.
So, it is safe and better to declare the import after those items and targets definitions.
Currently there's no way to properly switch between NETFX's and CoreCLR's WinFX targets.
This adds an opt-out, just in case, if we want to use the NETFX's WinFX targets instead.
Only in WinFX and Desktop SDK props/targets
@Nirmal4G
Copy link
Contributor Author

@ryalanms @SamBent 🔔

@Nirmal4G
Copy link
Contributor Author

Can someone/anyone (please) take a look at this patch at priority? 🧐

Been asking for months. Any feedback or response would be nice… 😔

@pchaurasia14 pchaurasia14 added the Community Contribution A label for all community Contributions label Jul 20, 2022
@ghost ghost assigned Nirmal4G Jul 20, 2022
@singhashish-wpf singhashish-wpf deleted the branch dotnet:release/3.1 January 31, 2023 07:13
@Nirmal4G Nirmal4G deleted the hotfix/winfx-v3.1 branch January 31, 2023 15:29
@Nirmal4G
Copy link
Contributor Author

This doesn't look good on you, M$FT! Not even taking a look at a patch and then closing it when it becomes irrelevant. Not a good open-source practice! Very disappointed here!!

@pchaurasia14
Copy link
Member

@Nirmal4G - This PR got closed as a side effect of deleting the release/3.1 branch from the repository. Also, we ask all PRs to be submitted against main branch instead of release/* branches.

If the problem addressed by this PR is still relevant, you may want to open a PR against main branch and we will review it in upcoming CTP(s).

We apologize for the inconvenience.

@ghost ghost locked as resolved and limited conversation to collaborators Mar 2, 2023
@Nirmal4G Nirmal4G removed their assignment Jul 30, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Community Contribution A label for all community Contributions PR metadata: Label to tag PRs, to facilitate with triage
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants