今天心血来潮,下了个VS2012安装玩玩,整个过程很傻瓜化,一切是那么的顺呀!
有一点需要注意,VS2012中的组件安装都是集成在一起的,这不像2010以及之前版本,你不会在控制面板中看到一大堆的安装组件出现,这也包括了MVC4。如果你之前独立安装过MVC4的beta或RC版本,那你安装的只是对Vs2010有用,和2012种的没有半毛的关系,也就是说,如果你不想再用vs2010玩mvc4,那就放心大胆的卸载掉吧!本人已经亲自试验过了,没有出现任何问题。
好了,开始讲重点,因为上诉过程中默认安装了.net framework 4.5,所以当然测试项目就选用了MVC4 + .net 4.5,当然WebAPI也没有遗漏掉。这里不强调测试代码,所以就不贴出来献丑了。在IDE环境下一切依然是那样的完美,值得一提的是,VS2012默认会给我们安装IIS8 Express,所以在集成环境下调试和run我们的应用都是走IIS8的,当然还有很多有意思的特性,如View in Page Inspector,或者view in我们自己安装过的浏览器。有待大家一起挖掘。
其实,到这里本来想结束这次Vs2012之旅,出于本能,想部署一下,当前Web 环境是IIS 7.5,正常建立部署网站,可问题是安装习惯,你得让我选.net framework 4.5的框架啊,可是见鬼的是没有啊
关键是,程序运行时正常的,这是怎么一回事呢,难道IDE中的framework有问题,但在控制面板中是能独立找到的.net 4.5的安装组件,这有点超出我的理解范围了啊!
没办法,先search了一把,几乎没啥说明的资料,然后又先后去看www.asp.net 和MSDN的官方关于.net 4.5的介绍,花了1个多小时查阅,虽然有了很多新的认识,但和问题都没啥关系!
最后,在stackoverflow上发现了一些线索,主要是说,.net 4.5是4.0的update,所以直接用4.0部署就可以了。但这还远远说服不了我啊,不明不白的。再次努力,终于发现了更多的新线索:
.NET 4.5 is an in-place replacement for .NET 4.0,
When .NET 4.5 is installed it effectively replaces .NET 4.0 on the machine. .NET 4.0 gets overwritten by a new version of .NET 4.5 which - according to Microsoft - is supposed to be 100% backwards compatible.
我们简单的理解就是,4.5本质上还是4.0,属于递增式的更新,所以对IIS 来说看到的只有4.0而已,看看如下的4.5 DLL库中的版本号就知道了
所以,到这里,基本上最大的困惑已经解决,不过MS这次一反常规,又没有很明确的说出这一特性,着时让我汗了一把!呵呵,人还是要能打破常规的去思考问题啊~~