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

15

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

我们之所以选择升级到4.6.1而不是4.7或4.6.2,是因为大多数用户和开发人员都拥有Windows 10十一月更新,并根据.NET Framework系统要求的信息,这个版本的Windows应该默认预安装了.NET Framework 4.6.1。这样,用户就不需要下载任何更新。

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

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

您现在要安装此.NET Framework版本吗?

我还检查了注册表中列出的.NET Framework版本,遵循MSDN的文章:如何确定已安装哪些.NET Framework版本

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

有什么解决此问题的方法以及可能导致此问题的原因吗?我不希望用户被迫安装更新,因为它应该是操作系统的一部分。


提醒一下:11月版本将在今年9月到达生命周期的终点,此后将不再接收任何更新(包括关键安全更新)。 - Matthew Watson
4个回答

21

我们最近遇到了类似的问题。在启动服务时,我们收到了错误提示:"此应用程序需要以下 .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 的主版本号设置为 v4.7,正确的设置方法在 https://learn.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/startup/supportedruntime-element#version 中有说明。


5
如果其他人也遇到了类似的情况,我曾经也遇到过一个Windows服务无法启动的问题,原因是缺少了 .NET Framework 4.6 版本。在我的情况中,由于复制和粘贴,配置文件中出现了以下错误:
<supportedRuntime version="v4.0" sku=".NETFramework, Version = v4.6"/>

而以下内容能够正常工作:

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

所以,这些空格是罪魁祸首,不能存在!我不知道为什么,因为你会期望解析器要宽容一些,但没关系...

4
我今天在应用新的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" /> 这样就可以正常工作了。

1

如果其他人在使用4.7.2版本时遇到了同样的问题,而其他解决方案都无法解决:我们的解决方案是在有问题的服务器上升级到4.7.3版本(服务本身当然仍然可以针对4.7.2版本)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接