targetFramework 的作用

作者:vkvi 来源:ITPOW(原创) 日期:2011-4-21

从 .NET Framework 4.0 开始,在 web.config 的 compilation 节中添加了 targetFramework 属性,那么它的作用是什么呢?

的确,这东西似乎的确没用,并且将这东西放到 .NET Framework 4.0 之前的环境中还会报错“无法识别的属性“targetFramework”。请注意属性名称区分大小写。”,真讨厌。

我们可以这么理解,假设不存在这个 targetFramework,我们在 Visual Studio 中使用 .NET Framework X 这个版本中开发,不会报错,因为我们本机就是装的 X 这个版本。但是我们要部署到服务器上时,服务器版本是 X - 1。就可能会报错,因为我们可能使用了 X 版本中有,而 X - 1 版本中没有的功能。

您可能会说,那我们开发的时候就只用 X - 1 版本的代码,不用 X 版本的代码呀。的确,但是您能非常准确地记住哪些代码是 X 版本中特有的吗?

您可能也会说,您在 2.0 的环境下,不添加 3.5 的引用,想用 3.5 的代码都用不起,这就避免了我们使用更高版本的代码了。但是 4.0 以后也许不是这种情况,也许 5.0 不需要添加引用就能用呢。

再举个例子,假如微软发布了 .NET Framework 5.0 和基于此的 Visual Studio 2012,那么在 Visual Studio 2012 中不指定 targetFramework 时,就是被当作 .NET Framework 5.0 这个平台来编译的,不会报错。当移到服务器上时,如果服务器是 4.0,这就危险了,因为网站可能使用了 4.0 不具备的代码。而如果指定了 targetFramework="4.0",那么,在 Visual Studio 2012 中编译就会发现问题。

其实这个东西从目前来说,作用的确不算大。因为目前只有 4.0 支持这个属性嘛,等将来有了 5.0、6.0 也许就有用了。

相关文章