【问题标题】:What version of .Net will a .Net 4.6.1 run under if installed on a machine that has .Net 4.6.2 installed?如果安装在安装了 .Net 4.6.2 的机器上,.Net 4.6.1 将在哪个版本的 .Net 下运行?
【发布时间】:2020-03-17 14:04:51
【问题描述】:

我们中的几个人正在讨论,特别是关于 .Net 4.6.2 中发布的这个修复:

我们修复了 260 个字符 (MAXPATH) 的文件名长度限制 System.IO API。超过 4500 人为此问题投票 用户之声!

source

我们在客户端上安装的应用程序中遇到此异常,以解决此问题。我们不控制安装在这些客户端上的 .Net 版本,尽管我们的安装程序指定了最低版本,至少是 .Net 4.6.1(即将升级)。

因此,如果我们的应用程序以 4.6.1 运行,我们会遇到此问题,如果它以 >4.6.2 运行,则不会。

我们的应用程序针对.Net 4.6.1,所以我说我们需要升级,因为我们遇到了这个问题,一位同事说:

任何拥有较新版本 .Net 的人都不会遇到这个问题

我说这是错误的,程序集仍将作为 4.6.1 而不是 4.6.2 运行。我想我是基于article I read some time ago by Scott Hansellman 的,但这是专门针对较旧的(.Net 4.5 之前的版本)。所以现在我不确定我是否正确:

就地升级意味着 CLR 是相同的,但新库是相同的 添加以及错误修复和性能改进

因此,假设一个针对 4.6.1 编译的应用程序访问安装了 .Net 4.6.2 的机器上的长文件路径,我们是否会遇到异常?

【问题讨论】:

  • 你同事说的没错,你只指定最低版本,用安装的版本运行。但是请记住仍然看到错误是多么不寻常,很少有用户会卡在 4.6.1 上,它太旧了。他们将不得不故意禁用 Windows 更新,强迫他们更新不太可能得到赞赏。启用长路径支持不仅仅针对更高版本,用户还必须选择加入。
  • 这是一个很好的观点,我想知道为什么会出现这个错误@HansPassant
  • 好吧,他们是否运行 Win10 并将其配置为允许长路径支持?您可能应该将问题中的最后一句话移到前面,我怀疑乔恩看到了它。

标签: .net compatibility .net-framework-version .net-4.6.1 .net-4.6.2


【解决方案1】:

来自the offline installer download for .NET 4.6.2(强调我的):

Microsoft .NET Framework 4.6.2 是与 Microsoft .NET Framework 4、4.5、4.5.1、4.5.2、4.6 和 4.6.1 高度兼容的就地更新 .

“就地”部分意味着它有效地替换了以前的版本。至少,这是我对它的理解。因此,当您在安装了 4.6.2(之后不再安装)的计算机上运行 .NET 4.x 应用程序时,它将在 4.6.2 下运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    • 2017-04-09
    相关资源
    最近更新 更多