此应用程序需要以下版本的.NET Framework之一

时间:2017-05-29 07:44:02

标签: c# asp.net .net .net-framework-version .net-4.6.1

我正在尝试将我们的应用程序迁移到较新版本的.NET Framework。从当前版本4.5到4.6.1

原因,我们迁移到版本4.6.1而不是4.7或4.6.2的原因是,我们的大多数用户和开发人员都拥有基于.NET Framework System Requirements,.NET Framework的信息的11月11日更新默认情况下,应在此版本的Windows中预安装4.6.1。 这将使我们不需要用户下载任何类型的更新。

我们面临的问题是,每次我们运行应用程序时都会显示错误消息:

  

此应用程序需要以下版本的.NET Framework之一:    .NETFramework,版本= v4.6.1

     

您是否要立即安装此.NET Framework版本?

我还检查了以下MSDN文章中注册表中列出的.NET Framework版本:How to: Determine Which .NET Framework Versions Are Installed

注册表值 394806 实际上应该是.NET Framework 4.6.2

任何想法如何解决这个问题以及可能导致什么问题?我不希望用户被迫安装更新,因为它应该是操作系统的一部分。

5 个答案:

答案 0 :(得分:10)

我们最近遇到了类似的问题。启动服务时,我们收到错误“此应用程序需要以下版本的.NET Framework之一:”

我们发现问题是我们对如何更新app.config文件的误解。

我们已将app.config文件更改为已设置 <supportedRuntime version="v4.7" sku=".NETFramework,Version=v4.7" />

但是应该把它设置为 <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7" />

我们错误地设置了.NET的主要版本,如https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/startup/supportedruntime-element#version

中所述

答案 1 :(得分:2)

在应用新的Windows Insider版本之后,我今天在SourceTree遇到了同样的错误,区别在于SourceTree需要4.7.1。

我发现version的数字正确为4.0,但是根据@Skyler Nesheim的回答,我将另一个属性sku更改为
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.1" /> 成为
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /> 这样就可以了。

答案 2 :(得分:1)

如果其他人遇到此问题,则Windows服务也会出现类似的问题,由于据称缺少.NET框架4.6版,因此无法启动。就我而言,由于复制和粘贴,配置文件中发生了以下情况:

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

以下方法起作用:

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

因此,空格是罪魁祸首,一定不能在那里!为什么我不知道,因为您希望解析器不那么挑剔,但是还可以...

答案 3 :(得分:0)

如何编译应用程序以定位.NET Standard library?这消除了对特定.NET框架版本的需要,但允许任何实现特定.NET标准库的.NET框架安装来运行该应用程序。

答案 4 :(得分:0)

万一其他人使用4.7.2遇到了这个问题,而其他解决方案都不起作用:对我们有用的解决方案是在有问题的服务器上将其更新为4.7.3(该服务本身当然仍可以针对4.7。 2)。