Containers for .NET Framework 4.6.2, 4.7, 4.7.1 actually contain 4.7.2 runtime #1202
Replies: 3 comments 1 reply
-
According to .NET Framework versions and dependencies Looking at the Dockerfile for I checked the .NET Framework versions in the base image I think this means the Windows Container team is installing 4.7.2 on the base image. Since 4.7.2 is an in-place upgrade to 4.* versions, there shouldn't be any compatibility issues. I did validate that a simple .NET Fx app with a You could file an issue on the microsoft/Windows-Containers repo asking about the pre-installed .NET Framework versions on the base image. |
Beta Was this translation helpful? Give feedback.
-
Thank you for looking into this @lbussell - I will followup with the Windows Container folks (microsoft/Windows-Containers#562). I checked an older version of your 4.6.2 image (
I can use that for my current testing. |
Beta Was this translation helpful? Give feedback.
-
A couple of follow-up questions: I see from the page you linked that 4.6.2 comes pre-installed on Windows Server 2016, and that 4.7.2 comes pre-installed on Windows Server 2019, and that you're using those base container images for your corresponding 4.6.2 and 4.7.2 images. I also see that you're using Server 2016 as the base image for your 4.7 and 4.7.1 images, however those images also appear to have 4.7.2 installed (due to the base image coming with 4.7.2 I assume). The Dockerfiles for your 4.7 and 4.7.1 images are attempting to install those .NET Framework versions. Are those install commands silently failing currently since the LTSC 2016 base image comes with a newer Framework (4.7.2)? If I go back in time to some of the 4.7 and 4.7.1 images created in 2019 (like I did for 4.6.2), will I find that those have the intended .NET Framework versions? Thanks! |
Beta Was this translation helpful? Give feedback.
-
I'm trying to find Windows containers with old .NET Framework versions installed to test with. I found this page that lists the different containers and their supported .NET Framework versions:
https://github.com/microsoft/dotnet-framework-docker/blob/main/README.runtime.md
I downloaded the containers for 4.6.2, 4.7, 4.7.1, and 4.7.2. When I checked the .NET Framework runtimes that were installed, the first 3 reported 4.7.03062, and the last one reported 4.7.03190. I believe both of those are internal versions of 4.7.2.
I verified this by creating a simple app that targets each of those framework versions. I mounted the executables in each container, and they all run in each container. For example, I ran 4 different executables in the 4.6.2 container and got these results:
I wasn't expecting the 4.7+ executables to run, but they work fine presumably because the 4.6.2 container doesn't actually have the 4.6.2 runtime, but it has a 4.7.2 runtime instead.
Is this expected? I was hoping the 4.6.2 container would have the .NET Framework 4.6.2 runtime - not a newer one.
Beta Was this translation helpful? Give feedback.
All reactions