>在Visual Studio中将网站项目从2.0升级到3.5时,会发生什么?
>它是否更新我的web.config?它如何改变我的项目/网站/代码?
>升级到3.5后,有哪些2.0方法/设置有可能BREAK?
>是否有任何疑难杂症?
解决方法
将VS 2005解决方案转换为VS 2008将意味着您需要维护重复,否则其他人也必须使用Visual Studio 2008(虽然项目文件格式(从您的问题您还没有使用)是理论上的2005年至2008年间,解决方案文件不兼容…)
将网站转换为3.5主要影响web.config.一些引用添加到一些默认3.5程序集,如System.Core.dll.它将添加IIS 7部分(如果该站点发布到IIS6框,则这些部分将被忽略).
>通常看不到从升级到新的编译时错误(如果你这样做,不会期待很多). C#和VB团队都努力确保所有新的LINQ关键字的向后兼容性,所以您可以在名为“from”的类中名为“where”的名为“var”的本地名为“var”,并且所有编译只罚款…(对于在升级到2005年的VB 2003代码库中有符号名为“operator”的任何人的改进:-)
>显然,一旦你已经切换,你将需要.NET 3.5在您部署到的任何服务器上.不像.NET 1.1和.NET 2.0,但是没有CLR版本/ AppPool的问题需要担心,它都运行在.NET 2.0中.在下面阅读…
如果您担心任何现有的.NET 2.0代码的运行时回归,有好消息和坏消息.
好消息:回归几乎闻所未闻.
坏(或其他好的)消息:如果您在运行2.0站点的服务器上安装了.NET 3.5,那么您已经测试了回归:)
如上所述,.NET 3.5实际上只是.NET 2.0 CLR,具有一些额外的程序集和新的编译器功能.
而当您安装.NET 3.5时,它还会为.NET 2.0和3.0安装一个Service Pack.所以任何突破性的变化都将影响.NET 2.0网站,没有任何明确的升级步骤.
Scott Hanselman对CLR版本和.NET Runtime版本here之间的差异做了很好的解释.
一个最后的评论 – 你应该意识到,当使用VS 2008来定位.NET 2.0时,实际上是针对更新的.NET 2.0编译的.因此,如果您使用静态添加到.NET 2.0的更新版本(如GCSettings.LatencyMode)中的一种(很少,很少使用)的方法,当部署到具有原始.NET 2.0 RTM的计算机时,它将无法运行
阅读更详细here,Scott还发布了API changes here的完整列表)