microsoft/PowerToys

Upgrade .NET Core 3.1 to .NET 5

crutkas opened this issue ยท 19 comments

With ARM64 #490 support, we need to upgrade from .NET Core 3.1 to .NET 5 for support with WPF ARM64.

This should be far easier of an upgrade now we're on Core.

@enricogior adding this to .31/.33 but this work needs to be done for ARM64

good job crutkas! thank you so much for the progress on this i am just waiting for this lol they released 64x emulation but the .svg previewer doesn't work probably because its iearly staged of 64X emulation for SPX, but im not the only person waiting for this trsut me just wanted to let you know i am grateful to see progress!! :)

i wish i knew how to code im a rookie lol because i would love to help you if i knew wtf i doin lol anyways keep it up! just thought id let you know people are checking on this heheh

btw idk if u have a SPX but i can honestly say its kinda crazy how snappy things are when running a native ARM64 VS 86X or 64X i didnt ever notice this till one day i realized i was using VS code 86X for weeks ....... Never the less i swapped it for the arm version holy shit BIIIIG difference lol

I was trying to port PT utilities to .NET 5 and even if in-depth tests are required, everything seems to work as expected.
Since there is no support for XAML island in .NET 5, settings UI can't be ported.
Should we wait for WinUI 3 to work on this?

An hybrid release with utilities in .NET 5 and settings UI in .NET Core 3.1 will require double runtimes installed and double checks during installation.

We will need to wait. I donโ€™t want to ship with two runtimes and island tooling is tied tightly to core 3.1

Adding the keyword
FRAMEWORK
So that way other folks like myself who search for .net framework will land here instead of making duplicate postings :(

PowerToys is only utility still requiring 3.1.x out of my used utility's, having both frameworks installed not so bad considering c++ redistributables required (for other stuff), will keep an eye/sub on this thread.

(Should be noted, impacts x86 and x64 not just ARM/64)

@Hammerfest this is where stuff gets super nuanced. So everyone is aware, there is such a thing as the .NET Framework, which is deemed legacy at this point and we've fully migrated off and onto the more modern .NET Core, soon to be 5/6

.NET Framework 4.7.x -> .NET Core 3.1 -> .NET 5 -> .NET 6

After a lot of investigation, we cannot actually migrate due to our settings app leverages UWP Islands. The tooling to enable this is tied closely to .NET Core 3.1 with a WPF wrapper like we have. We're chatting how we can solve this and provide guidance for anyone affected

@crutkas
Yep, myself and many other tech's still call it .net core framework mainly because it is a framework yet not called ".net framework" :D
Else ya, they took off the framework label and added core but kept .net which sure, for anyone new works well. (super nuanced is right)

Ya I read up on the settings roadblock and the WinUI3 stall, all good.

Is there anything happening?

@mykhailopylyp is investigating this work right now with PT Run and trying to understand the scope of work here.

Title updated to .NET 6.
@crutkas is there a plan for port every single utility to .NET 6 and settings to WinUI3?
Work has started only for launcher.

The goal is .net 6 for everything that doesn't have an island. Settings due to xaml island is stuck on .net core 3.1 so to migrate / upgrade, we need WinUI3

I need to get the signing pipeline transferred over to the new build server before the migration can go live however since the current build server that does the signing doesn't have .net 5 nor 6 on the agent.

@crutkas are we ready to port to .NET 6? Any project up for grabs?

Letโ€™s do a small one first to test. Color picker comes to mind honestly.

Want to verify CI / signing agents and installer dependency

@stefansjfw any objections as you were going to start on this soon too

Also remember settings app will have to be core 3.1 until we migrate off xaml islands

@stefansjfw don't hate me. Lets do 5 since 6 requires forces some requirements we may not be ready for from a pipeline agent stance. Lets get stuff migrated to 5 and then 6 should be easy upgrade for projects

No problem :)

The was fixed in in 0.55. Head over to https://aka.ms/installpowertoys to try it out