我正在尝试将我们的应用程序迁移到较新版本的.NET Framework。从当前版本4.5到4.6.1
原因,我们迁移到版本4.6.1而不是4.7或4.6.2的原因是,我们的大多数用户和开发人员都有11月11日更新,并且基于来自.NET Framework System Requirements的信息,.NET Framework 4.6.1应该预先安装在此版本的Windows默认情况下。这将使我们无需任何用户下载任何类型的更新。
我们面临的问题是,每次运行应用程序时都会显示以下错误消息:
此应用程序需要以下版本的.NET Framework之一:.NETFramework,Version = v4.6.1
您要立即安装此.NET Framework版本吗?
我还检查了MSDN文章后面的注册表中列出的.NET Framework版本:How to: Determine Which .NET Framework Versions Are Installed
注册表值为394806,实际上应该是.NET Framework 4.6.2
任何想法如何解决这个问题以及可能导致什么?我不希望用户被迫安装更新,因为它应该是操作系统的一部分。
我们最近遇到了类似的问题。启动服务时,我们收到错误“此应用程序需要以下版本的.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中所述
应用新的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" />
,这使它工作。
如果其他人遇到这个,我有一个类似的问题与Windows服务无法启动,因为据称缺少.NET框架的4.6版本。在我的情况下,由于复制和粘贴,配置文件中发生了以下情况:
<supportedRuntime version="v4.0" sku=".NETFramework, Version = v4.6"/>
而以下工作:
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6"/>
所以,空间是罪魁祸首,绝对不能存在!为什么我不知道,因为你希望解析器不那么挑剔,但好吧......
如何编译您的应用程序以定位.NET Standard library?这消除了对特定.NET框架版本的需要,但允许任何实现特定.NET标准库的.NET框架安装来运行该应用程序。