0

正如我们所知,在 Visual Studio for C# 项目中,我们可以指定我们想要定位的 .NET 框架。这是我在目标 .NET 4.0 时得到的 app.config 文件:

<configuration><startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>

所以那里有sku属性。这是否意味着我的代码无法在安装了 .NET 4.5 且未安装 .NET 4.0 的机器上运行。我从 MSDN 中发现它令人困惑,我想对此进行一些澄清。如果是这样,我会说这是相当糟糕的设计。如果我希望我的代码在任何 .NET 版本的 .NET 4.0 及更高版本(例如 .NET 4.5)上运行怎么办?我无法为不同的环境分发不同的 app.config。

4

2 回答 2

3

当您以 .Net 版本为目标时,您正在设置运行项目所需的最低版本。您还限制自己使用该版本中可用的 .Net 框架元素进行编码。

在我的公司,我们必须将 .Net v2.0 用于我们想要推送给所有客户的一些项目,因为他们有旧硬件,这些硬件要么不能运行,要么不能运行更高版本的 .Net。

于 2012-12-03T20:12:56.637 回答
2

检查这个帖子,它解释得很好:

http://www.hanselman.com/blog/NETVersioningAndMultiTargetingNET45IsAnInplaceUpgradeToNET40.aspx

摘自源码:

为 .NET 4 和 .NET 4.5 安全开发

博客中暗示,如果您在计算机上安装 .NET 4.5,则无法安全地为 .NET 4 开发。在 Rick 的帖子中,他比较了 .NET 4 计算机上的两个 DLL,并在 .NET 4.5 到位后再次比较升级。如果您已安装 .NET 4.5,如何安全地针对 .NET 4?您不再拥有那些 .NET 4 DLL,对吧?

于 2012-12-03T20:08:59.043 回答