Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

This application requires one of the following versions of .NET Framework

I am trying to migrate our application to the newer version of .NET Framework. From current version of 4.5 to 4.6.1

Reason, why we are migrating to version 4.6.1 instead of 4.7 or 4.6.2 is, that most of our users and developers do have Windows 10 November update and based on information from .NET Framework System Requirements, .NET Framework 4.6.1 should be preinstalled in this version of Windows by default. This would leave us without any needs for users to download any kind of update.

The problem we are facing is, that every time we run our application following error message is displayed:

This application requires one of the following versions of .NET Framework: .NETFramework,Version=v4.6.1

Do you want to install this .NET Framework version now?

I have also checked what version of .NET Framework is listed in registry following MSDN's article: How to: Determine Which .NET Framework Versions Are Installed

The Registry value is 394806 which should actually be even .NET Framework 4.6.2

Any ideas how to solve this issue and what may cause it? I do not want users to be forced to install the update as it should be part of OS anyway.

like image 505
Kajiyama Avatar asked May 29 '17 07:05

Kajiyama


People also ask

How do I fix .NET Framework 4.8 is not supported on this operating system?

That means the 4.8 version is not supported by your current operating windows, actually, you need to upgrade your windows. Visit https://www.microsoft.com/en-us/software-download/windows10, go to "Create Windows 10 installation media" section and download the tool. Install the tool and run it.


2 Answers

We recently came across a similar problem. When starting a service, we received the error "This application requires one of the following versions of .NET Framework:"

We discovered the issue was our misunderstanding of how to update the app.config file.

We had changed the app.config file to set <supportedRuntime version="v4.7" sku=".NETFramework,Version=v4.7" />

But should have set it to <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7" />

We had incorrectly set the major version of .NET as explained in https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/startup/supportedruntime-element#version

like image 101
Skyler Nesheim Avatar answered Sep 17 '22 19:09

Skyler Nesheim


In case someone else encounters this, I had a similar problem with a windows service that wouldn't start due to an allegedly missing version 4.6 of the .NET framework. In my case, due to copy and paste, the following had happened in the config file:

<supportedRuntime version="v4.0" sku=".NETFramework, Version = v4.6"/>

whereas the following works:

<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6"/>

So, the spaces are the culprit and must not be there! Why I don't know, because you'd expect the parser to be a little less picky, but ok...

like image 43
obartelt Avatar answered Sep 19 '22 19:09

obartelt