【发布时间】:2019-09-11 11:32:33
【问题描述】:
我们有一个 C# 项目,其中的 C# 项目是使用 TargetFrameworkVersion 4.7.2 编译的。例如,在 csproj 文件中指定了 --
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
已编译和构建的 exe 安装在安装了 .net 4.6.1 的 VM 中。我看到安装成功并且软件运行正常。所以我们可以肯定地说,使用 4.7.2 构建的项目可以在安装 .netframework 4.6.1 时执行。或者这里有什么问题需要注意?
【问题讨论】:
-
我们最近在测试中也发现了这个——我很想听听答案! (在我们的案例中,我们正在测试如果我们将 4.7.2 click-once 应用程序部署到仅安装了 4.6.1 的客户端会发生什么情况。我们预计它会失败,但实际上它运行良好......)
-
我认为它不能保证有效。 Net 使用 dll 库,当库更改时,入口点和参数列表可能会随着版本的不同而改变。当网络更新时,并不是所有的库都会改变,所以如果你使用没有改变的库,它会起作用。许多 Net 方法只是包装器并调用 Windows dll,因此包装器将始终适用于相同版本的 Windows。
-
我认为这是因为 v4.0 的 .net 框架共享相同的 CLR,所以除非您使用 4.7.2 的一些全新功能 - 您可以在任何 4.0+ 框架上运行
-
我认为这回答了它。该项目是在几年前的 .net 4.6.1 中构建的,直到上个月 targetframework 版本才更新到 4.7.2,没有任何代码更改。由于我们没有使用 4.7.2 的任何全新 API,因此一切正常。测试团队也没有发现任何问题。
标签: c# .net .net-framework-version