更高版本的.NET Framework可以用于针对较低版本的项目吗?

3

如果一个Visual Studio解决方案包含针对不同版本的.NET Framework的项目,那么应用程序是否可以仅使用较高版本的.NET Framework进行分发?


2
太模糊了。您可能需要在app.exe.config文件中添加一个<supportedRuntime>元素,例如在目标版本小于4.0时运行v4.x。当然,您需要进行测试,这样您很快就会发现。 - Hans Passant
2个回答

2
如果一个Visual Studio解决方案包含针对不同版本的.NET Framework的项目,那么只使用较高版本的.NET Framework发布应用程序是否可行?一般情况下,可以。应用程序的.NET Framework版本(通常)将被使用。唯一的例外是如果您正在使用COM——使用COM时,可能需要在目标系统上同时加载2个公共语言运行时版本,这可能需要同时具备两个版本。但是,如果它是一个纯.NET/托管应用程序,则将使用可执行文件的CLR版本,并且应该可以正常工作。

1
答案是,这取决于情况。
只要您的应用程序仅使用没有新版本中的“重大更改”的常见功能,则通常是可能的...
.NET框架的每个版本都会列出“重大更改”,其中列出了与上一个版本不兼容的更改。
另一个潜在问题是,某些版本的框架进行“就地”升级。例如,如果您有一个针对.NET 4.0的应用程序,并在同一台计算机上安装了.NET 4.5,即使它已经安装了4.0,则它将升级某些框架组件到4.5,例如ASP.NET和WPF。
这意味着即使目标为4.0,应用程序也将在4.5框架程序集上运行。

应该补充说明,过时的API可能会被删除(但迄今为止,微软还没有这样做)。 - Lex Li

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