已经安装了 .NET 4.8 版本,是否可以在我的计算机上安装 .NET 4.7 版本?

8
我机器上拥有以下 .net 版本。我开始在一个目标框架为4.7的 .net 项目中工作。当我尝试安装 .net 4.7 时,遇到了这个错误 ".NET Framework 4.7 or a later update is already installed on this computer." 如果已经安装了 .net 4.8,是否可以在我的计算机上安装 .net 4.7 版本?
PSChildName                      Version        Release
-----------                      -------        -------
v2.0.50727                       2.0.50727.4927
v3.0                             3.0.30729.4926
Windows Communication Foundation 3.0.4506.4926
Windows Presentation Foundation  3.0.6920.4902
v3.5                             3.5.30729.4926
Client                           4.8.03761      528049
Full                             4.8.03761      528049
Client                           4.0.0.0

2
不可以安装早于 Windows 内置版本的 .NET Framework。.NET Framework 运行时始终使用 Windows 中包含的最新版本。例如,Windows 10 1809 已安装 .NET Framework 4.7.2,因此您不能在该 Windows 上安装 v4.6。 - Eriawan Kusumawardhono
2
更多澄清问题的内容:我开始工作的项目是针对 .net 4.7(作为目标框架 4.7)的。由于我的计算机上没有安装 4.7,它要求我下载 .net 4.7 或将项目的目标框架的 .net 版本降级到我计算机上拥有的较低版本。当我尝试在计算机上安装 .net 4.7 时,它不允许我安装 .net 4.7,因为我已经安装了 .net 4.8(更高版本)。我只想知道是否可以在我的计算机上安装较低版本的 .net,即使我已经安装了更高版本。 - marvelTracker
3个回答

12

如果我猜得没错的话,您需要一个.NET 4.7的开发人员包(Developer Pack)。

SDK / Developer Pack和Runtime不是同一个东西。

要知道,一台机器可以运行针对特定.NET版本的应用程序,但如果它具有兼容的Runtime而没有特定的SDK(软件开发工具包),则不能为其构建。


使用Visual Studio Installer,您应该能够添加开发工具:

Visual Studio Installer

请参阅安装.NET Framework(面向开发人员)

您还可以在下载适用于Visual Studio的.NET SDK上获取SDK / Developer Packs。


您是否尝试安装.NET 4.7的开发人员包(Developer Pack)?那解决了问题吗?我想您只尝试安装了.NET 4.7 Runtime,而没有Developer Pack。

关于安装Runtime,正如您发现的那样,安装程序不会让您这样做。如果您真的需要旧版本的Runtime※,则必须卸载较新版本,然后安装旧版本。

※:鉴于.NET 4.8版本之前的运行时向后兼容.NET 4.5,这种情况是不太可能发生的。在您决定卸载之前,请查看.NET Framework中的版本兼容性


抱歉造成困惑。我开始工作的项目是针对 .net 4.7(作为目标框架 4.7)的。由于我的机器上没有安装 4.7,它要求我下载 .net 4.7 或将项目的目标框架的 .net 版本降级到我机器上的较低版本。当我尝试在计算机上安装 .net 4.7 时,它不允许我安装 .net 4.7,因为我已经安装了 .net 4.8(更高版本)。我只想知道即使我有更高版本,是否可以在我的机器上安装较低版本的 .net。 - marvelTracker
@Theraot 如果程序是针对4.8构建的,那么它能在安装了4.7运行时的PC上运行吗?(假设没有使用4.8中的新成员)。我猜应该可以?但我无法控制客户端运行时。 - joe
@joe,即使你使用更高版本的SDK(我再次强调,SDK和运行时是不同的东西),你应该仍然能够针对4.7进行目标定位。假设你不能这样做,你仍然可以在app.config文件中指定supportedRuntime,参见版本兼容性(也链接在答案中)。 - Theraot
我的观点是,如果我的程序已经编译(4.8)并以二进制形式发布,我就不能再修改它了。它能在安装了4.7运行时的PC上运行吗?从这个链接中(https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/versions-and-dependencies#remarks-for-version-45-and-later)看来,似乎是可以的... - joe
@joe 我相信它会拒绝运行。然而,测试胜过互联网谣言。 - Theraot
显示剩余5条评论

-1
如果您已经安装了4.5.1版本,那么您可以安装4.6.1版本,但是如果您已经安装了4.6.1版本,则无法降级到4.5.1版本。 首先,您必须卸载最新版本(在本例中为4.6.1),然后才能安装降级版本(在本例中为4.5.1),否则会出现错误。 一旦您要安装降级版本的软件安装完成后,只需再次下载并安装最新版本的.NET Framework即可。

-1

我在我的机器上遇到了同样的问题。

.net Framework 4.8已安装,我需要安装4.7版本,我尝试安装4.7 "运行时" 版本,但它显示 "无法安装,因为您的机器上已经安装了4.7或更高版本"。

但是当我尝试使用4.7开发人员版本时,它成功安装了。

enter image description here

所以简而言之,如果您需要安装较低版本的 .net Framework,请选择开发人员包。


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