dotnet / core

.NET news, announcements, release notes, and more!
https://dot.net
MIT License
20.81k stars 4.87k forks source link

.NET support for Windows 7 and 8.1 will end in January 2023 #7556

Closed richlander closed 1 year ago

richlander commented 2 years ago

.NET support for Windows 7 and 8.1 will end in January 2023

Windows 7 and Windows 8.1 are currently supported with .NET 6. They will not be supported with .NET 7+.

Windows 7 is only supported (with .NET 6) for organizations that have purchased Extended Security Updates (ESU). Windows 7 will be supported for those organizations until the ESU offering ends, which is January, 2023. At that time, Windows 7 will no longer be supported with .NET 6.

Windows 8.1 is supported until January 2023. At that time, Windows 8.1 will no longer be supported with .NET 6.

Windows Server 2012/R2 ESU will start mid-way through the .NET 7 lifecycle, in October 2023. We will offer support for Windows Server 2012/R2 throughout .NET 7 and .NET 8, assuming you have purchased ESU updates. We recommend that you do not install .NET 7 on Windows Server 2012/R2 unless you have a migration plan (within a year of .NET 7 General Availability) to a newer operating system or plan to purchase Windows Server ESU.

Windows Server 2016+ will be supported throughout .NET 7 and .NET 8.

We encourage you to migrate to Windows 10 or 11 if you would like to use .NET 7 or later on Windows Client.

richlander commented 2 years ago

"will not be tested" does that specifically mean no CI for Windows 7?

Yes. It means a few things for .NET 7:

richlander commented 2 years ago

Will it be the same with Windows 8.1 or will .Net 7 support it due to being released within its support timeframe?

Windows 8.1 will only be supported with .NET 6, for the remainder of Windows 8.1 support. It will not be supported with .NET 7.

fitdev commented 2 years ago

.NET 7 will not be supported on Windows 7, will not be tested, but nothing will be done to hinder it.

So no Win7-specific code removal for .NET 7 then? But possibly in .NET 8 timeframe?

richlander commented 2 years ago

So no Win7-specific code removal for .NET 7 then? But possibly in .NET 8 timeframe?

Right. That's the new plan. I updated this older comment: https://github.com/dotnet/core/issues/7556#issuecomment-1162588646

vcsjones commented 2 years ago

No CI for Windows 7.

I would follow up with a question about a rough time line then. If CI were (hypothetically) removed tomorrow, then I think there is a decent chance something will find its way in that will not work on Windows 7, or break key scenarios, for .NET 7.

If CI is removed closer to the final release, or at least the 7.0 snap, then it is more likely .NET 7 will remain functional in Windows 7.

When do we expect those changes to happen?

richlander commented 2 years ago

That's a good question. Hasn't been discussed yet. I'll post when we have clarity on that.

JaykeBird commented 2 years ago

Just to leave my two cents here, but I am okay with this announcement. Just wanted to be a voice of support. :)

Microsoft had a sizable awareness push back in 2019/2020 that mainline support for Windows 7 was coming to an end (and now a similar thing is happening with Windows 8.1). While a number of users may still be on Windows 7, it'd be a lie to say that Windows 7 is not an old, unsupported, out of date OS at this point. Although a lot of products (both Microsoft and non-Microsoft) still support Windows 7, I personally think we're at the point now where such support shouldn't be expected anymore out of any product. As mentioned earlier in the thread, even if a product on Windows 7 is still supported, the underlying OS isn't receiving support and isn't getting security updates anymore.

And just as a user can still boot up Windows 7 today even if it's unsupported, we can still boot up .NET 6 whenever we need to deploy to Windows 7.

John0King commented 2 years ago

what about the win7 baseline OS like windows server 2008 R2 and win8.x baseline OS like Windows Server 2012 ?

hamarb123 commented 2 years ago

If this article is to be believed, Windows 7 ESU will be extended to 6 years (instead of the 3 that expire next January). If this is the case, then shouldn't .NET continue to support Windows 7 with ESU fully for a few more versions e.g. up to .NET 8 or 9 (esp. since both are Microsoft products)?

I'd like to say that I really appreciate being able to support Windows 7 as well, but I know that it definitely takes a bit of effort so I will understand if support is removed (but I will still be saddened).

Splitwirez commented 2 years ago

If this article is to be believed, Windows 7 ESU will be extended to 6 years (instead of the 3 that expire next January). If this is the case, then shouldn't .NET continue to support Windows 7 with ESU fully for a few more versions e.g. up to .NET 8 or 9 (esp. since both are Microsoft products)?

I'd like to say that I really appreciate being able to support Windows 7 as well, but I know that it definitely takes a bit of effort so I will understand if support is removed (but I will still be saddened).

^ 100% this.

AraHaan commented 2 years ago

Also a comment about the person who mentioned openssl, another cryptographic library that exists is crypto++ (C++).

richlander commented 2 years ago

Windows 7 ESU will be extended to 6 years

I haven't heard that. I'll ask.

Office made a similar announcement recently: https://techcommunity.microsoft.com/t5/office-end-of-support-blog/act-now-and-keep-microsoft-365-apps-supported-after-january-10/ba-p/3568981

AraHaan commented 2 years ago

I think Windows 7 CI should remain intact for .NET 6 and 7 (until 6 and 7 is EOL) and then when main switches to .NET 8 disable it on main. That way servicing releases to .NET 7 do not accidentally regress windows 7 support code.

rampaa commented 1 year ago

I haven't heard that. I'll ask.

So did you hear anything back regarding this?

iSazonov commented 1 year ago

The end of support for previous versions is inevitable... Although it looks very funny - MSFT spent a year making .Net 7 on Windows 7 and just before the release decided that .Net 7 would not work/supported on Windows 7/8.

What about support for 2012 servers? It would seem much more logical to announce that .Net 7 will be the last version that runs on Windows 7/8 and will have limited (security only/migration only) support on the systems after 2023.

As noted above, some companies may have already spent money testing products on .Net 7 and Windows 7/8 in the last year.

It would have been much more honest to announce that .Net 8 will not work on Windows 7/8 and remove the old code at the beginning of the development cycle.

AraHaan commented 1 year ago

ye

hamarb123 commented 1 year ago

Even the .NET 6 will not be supported past end of ESU seems like a backflip. Imo, you need to leave the .NET 6 implementation as is in terms of Windows 7 specific things, and if you "accidentally" break it, you gotta fix it regardless of whether ESU has ended. Otherwise it's as bad as intentionally breaking it imo since that's the end result for anyone wanting to update .NET 6 to the latest patch on Windows 7.

Here's what I think is a reasonable minimum since you seem to desperately not want to support Windows 7 (.NET 6, and any other versions that have officially supported Windows 7 ever that are still getting patches):

EatonZ commented 1 year ago

Only a few weeks left until the official release at this point, has a final determination been made? I imagine such a big change in code won't happen at this point.

John0King commented 1 year ago

The problem is that someone is desperately want to remove the non-supported OS code 🥹 . and it's interesting that I can't find any article that said openJdk remove "windows xp" support

iSazonov commented 1 year ago

it's interesting that I can't find any article that said openJdk remove "windows xp" support

Because the big companies are saturated with Jdk-based products and they still buy security patches for JDKs from 15-20 years ago.

Splitwirez commented 1 year ago

it's interesting that I can't find any article that said openJdk remove "windows xp" support

Because the big companies are saturated with Jdk-based products and they still buy security patches for JDKs from 15-20 years ago.

The big companies are also saturated with Windows 7, hence why they buy continued support (ESUs).

I don't like this...eager hurriedness to kill off Windows 7 and 8.1, certainly not with where their successors seem to be headed...but I suppose that's a debate best not ignited here.

richlander commented 1 year ago

Final update on this topic. We updated .NET 7 release notes to remove Windows 7.

BuslikDrev commented 1 year ago

Why such suffering? Just stop supporting Windows for simple computers, and offer a transition to a quantum computer (in Q# language).

Зачем такие мучения? Просто прекратите поддержку Windows для простых компьютеров, и предложите переход на квантовый компьютер (на языке Q#).

NCLnclNCL commented 1 year ago

Golang, nodejs as electronjs stop support win 7,8

sgf commented 11 months ago

I have never quite understood, shouldn’t it be natural for .net as a platform to become a universal solution? Let me give you an example. When someone wants to use the .net platform to develop the Edge browser, the .net platform does not support Windows 7, which means that the .net platform cannot be an option. However, in reality, we all know that edge supports Windows 7.

This news makes people have to think deeply. .net seems to always only want to be a second-class platform for various platforms. This short-sighted and self-defeating purpose or goal greatly limits the .net platform from becoming a truly universal and high-value platform. Yes, .net not a platform worth investing in!

If the .net platform only wants to play the role of glue, then maybe it can only be the glue forever.

jkotas commented 11 months ago

However, in reality, we all know that edge supports Windows 7.

It is not what the official support statement for Edge says. There is a difference between "supported" and "still works".

RockNHawk commented 9 months ago

I'm aware that official support for Windows 7 ended with .NET 7, I have to keep my project using .NET6.

I attempted to publish it with .NET 7 from an enterprise application, but it didn't run on Windows 7.

Can the community provide any assistance in making it compatible with Windows 7?

@jkotas @richlander @John0King

EatonZ commented 9 months ago

@RockNHawk If your app worked fine with .NET 6 on Windows 7 there shouldn't be any problems with .NET 7. It's worked perfectly fine for me. Please elaborate on what you mean by "didn't run". Is an error shown? Silent crash? Check the Application event log for more clues too.

RockNHawk commented 9 months ago

@RockNHawk If your app worked fine with .NET 6 on Windows 7 there shouldn't be any problems with .NET 7. It's worked perfectly fine for me. Please elaborate on what you mean by "didn't run". Is an error shown? Silent crash? Check the Application event log for more clues too.

Wow, .NET 7 works fine on Windows 7 for you ??

Unfortunately, I was prompted that API-ms-win-crt-run-time L1-1-0-0.dll was missing, and I have tried folling fix:

I picked up all api-ms-*.dll from the .NET 6's app self contained distribution, copy these dll files into the .NET 7 version directory.

Retry run app, but got the following error:

(the api-ms-*.dll list from .NET 6 application self contained folder I copied to .NET 7 folder) api-ms dll list

Unable to find entry point, unable to locate program input point UCRTBASE, . Noinfo. The dynamic link library api-ms-win-ct-runtime-1-l-0. DLL on.

enrey point error

Note: Windows 7 sp1 x64, the .NET 6 works well, and I have tried publish a very simple ASP.NET Core app with .NET 7 with the same error

huoyaoyuan commented 9 months ago

Unfortunately, I was prompted that API-ms-win-crt-run-time L1-1-0-0.dll was missing

The UCRT dlls should already be required for .NET 6. They were unnecessarily included in .NET 6, and removed in .NET 7.

The .NET 6 support on Windows 7 already indicates UCRT: https://learn.microsoft.com/en-us/dotnet/core/install/windows?tabs=net60#additional-deps You should be able to find the api-ms-* files in system32.

When talking about Windows 7 support, we are always referring to the final version with all updates installed.

RockNHawk commented 9 months ago

Unfortunately, I was prompted that API-ms-win-crt-run-time L1-1-0-0.dll was missing

The UCRT dlls should already be required for .NET 6. They were unnecessarily included in .NET 6, and removed in .NET 7.

The .NET 6 support on Windows 7 already indicates UCRT: https://learn.microsoft.com/en-us/dotnet/core/install/windows?tabs=net60#additional-deps You should be able to find the api-ms-* files in system32.

When talking about Windows 7 support, we are always referring to the final version with all updates installed.

Yeah, But I'm trying using .NET 7 on Windows 7, not .NET 6.

RockNHawk commented 9 months ago

Unfortunately, I was prompted that API-ms-win-crt-run-time L1-1-0-0.dll was missing

The UCRT dlls should already be required for .NET 6. They were unnecessarily included in .NET 6, and removed in .NET 7.

The .NET 6 support on Windows 7 already indicates UCRT: https://learn.microsoft.com/en-us/dotnet/core/install/windows?tabs=net60#additional-deps You should be able to find the api-ms-* files in system32.

When talking about Windows 7 support, we are always referring to the final version with all updates installed.

Have you tried running .NET 7 or .NET 8 on Windows 7, does it works ?

EatonZ commented 9 months ago

@RockNHawk Try installing the latest C++ runtimes:

Install both.

RockNHawk commented 9 months ago

@RockNHawk Try installing the latest C++ runtimes:

Install both.

Cool, it works. Thank you for your information, I can use .NET 7 event maybe .NET 8 on windows 7. Great!

image

Sin-Shadow-Fox commented 2 months ago

HI. I'm a windows 7 user and I'm trying to figure out what version of .NET to install. I keep coming across different answers from 3 to 7, maybe even 8. I'm not very tech savvy and before today i didn't even know what .NET was (I still don't, i just know i need it to install games through Steam's console). I have windows 7 Home Premium 6.1 (Build 7601: Service Pack 1) x64

EatonZ commented 2 months ago

@Sin-Shadow-Fox Each software has its own .NET version requirement. In the context of this issue, I have found everything up to .NET 8 to work fine on Windows 7, but do note that the software that utilizes it may not actually be Windows 7 compatible anymore. This is more of a question for the developer(s) of the software you are using.

Sin-Shadow-Fox commented 2 months ago

@Sin-Shadow-Fox Each software has its own .NET version requirement. In the context of this issue, I have found everything up to .NET 8 to work fine on Windows 7, but do note that the software that utilizes it may not actually be Windows 7 compatible anymore. This is more of a question for the developer(s) of the software you are using.

How do i contact them?

EatonZ commented 2 months ago

@Sin-Shadow-Fox Whoever makes the .NET executable you are trying to launch, they are the ones you need to reach out to.

Sin-Shadow-Fox commented 2 months ago

@Sin-Shadow-Fox Whoever makes the .NET executable you are trying to launch, they are the ones you need to reach out to.

I don't know who makes .NET.

EatonZ commented 2 months ago

@Sin-Shadow-Fox Microsoft makes .NET, but application developers use .NET to build their apps. Whoever made the app you are using are the ones you need to get in touch with.

Sin-Shadow-Fox commented 2 months ago

@Sin-Shadow-Fox Microsoft makes .NET, but application developers use .NET to build their apps. Whoever made the app you are using are the ones you need to get in touch with.

I guess that might be Steam/Valve but the only way to contact them is through their ticket system which is notorious for being unhelpful. Is there another way?

EatonZ commented 2 months ago

@Sin-Shadow-Fox If the problem is with a Steam component, you are out of luck in this case because Steam dropped support for Windows 7 a few months ago: https://help.steampowered.com/en/faqs/view/4784-4F2B-1321-800A

Time to upgrade. 🙂

Sin-Shadow-Fox commented 2 months ago

@Sin-Shadow-Fox If the problem is with a Steam component, you are out of luck in this case because Steam dropped support for Windows 7 a few months ago: https://help.steampowered.com/en/faqs/view/4784-4F2B-1321-800A

Time to upgrade. 🙂

Unfortunately there is not a viable upgrade to windows 7 in the windows OS chain yet (and i really don't want to move to linux). Fortunately however, thanks to windows 7 users putting our Steam clients into offline mode before the shutoff, Steam still works perfectly fine I'm happy to report. However in order to use the Steam console, i need to have .NET installed https://steamcommunity.com/sharedfiles/filedetails/?id=2353930763

EatonZ commented 2 months ago

@Sin-Shadow-Fox Ok, it's not clear what .NET version you will need, but just install all these and it should hopefully take care of the issue:

  1. https://aka.ms/dotnet/8.0/windowsdesktop-runtime-win-x64.exe
  2. https://aka.ms/dotnet/7.0/windowsdesktop-runtime-win-x64.exe
  3. https://aka.ms/dotnet/6.0/windowsdesktop-runtime-win-x64.exe
  4. https://aka.ms/dotnet/5.0/windowsdesktop-runtime-win-x64.exe
Sin-Shadow-Fox commented 2 months ago

@Sin-Shadow-Fox Ok, it's not clear what .NET version you will need, but just install all these and it should hopefully take care of the issue:

1. https://aka.ms/dotnet/8.0/windowsdesktop-runtime-win-x64.exe

2. https://aka.ms/dotnet/7.0/windowsdesktop-runtime-win-x64.exe

3. https://aka.ms/dotnet/6.0/windowsdesktop-runtime-win-x64.exe

4. https://aka.ms/dotnet/5.0/windowsdesktop-runtime-win-x64.exe

Doesn't having several different versions of the same program running at the same time create issues?

EatonZ commented 2 months ago

@Sin-Shadow-Fox In this case there is nothing to worry about. Of course, you can go through 1-by-1 to figure out what is actually needed, and only keep that one installed.

hamarb123 commented 2 months ago

Each release version of .NET can be installed side-by-side, and furthermore, if an app is built for .NET 7, it won't run unless you have 7 installed (usually), even if you have 8 installed.

Sin-Shadow-Fox commented 2 months ago

@Sin-Shadow-Fox In this case there is nothing to worry about. Of course, you can go through 1-by-1 to figure out what is actually needed, and only keep that one installed.

So i ended having to install all 4 that you provided and . . . Capture

Each release version of .NET can be installed side-by-side, and furthermore, if an app is built for .NET 7, it won't run unless you have 7 installed (usually), even if you have 8 installed.

Then doesn't that mean i should technically install every version of .NET?

agocke commented 2 months ago

@Sin-Shadow-Fox you should ask your questions to the developers of the DepotDownloader tool https://github.com/SteamRE/DepotDownloader