Mot*_*tti 9 .net c++ migration upgrade visual-studio-2010
我们正在考虑将一个非常大的产品升级到VS10.
我听说过很多关于VS10的好东西,我对新的C++ 0x功能感到非常兴奋,但是在玩VS10的时候我有一个案例,其中一个样本玩具应用程序崩溃了(它在VS8中没有)在一些C++ 0x功能中似乎存在编译器错误的情况.
在另一种情况下,我看到在VS9中不会unorderd_map
抛出bad_alloc
异常.
我们的产品由原生C++和.NET组成,并且有数百万行代码.有没有人有过将类似项目迁移到VS10的经验?这个过程是痛苦的吗?此举是否有任何回归?
我正在寻找更多的轶事证据,因为我在网上找到的所有评论都很好,并且与我的经验不符.
Ori*_*rds 15
我们也有类似的大型项目.我没有运行代码行计数器,但我猜这很容易就是一百万.大约有200个项目 - 大约140个c ++项目,全部使用COM/DCOM,60个.NET项目使用各种Winforms/WPF /等组合.我们有很多COM互操作和PInvoke
我们以前在VS2008上用于C++/C#并且针对.NET框架3.5SP1,并且已经转向VS2010用于C++并且针对.NET 4.
整体升级并不太痛苦.花了大约一天的时间来完成并运行另一对(分散在不同的开发者中)以消除其他剩余的问题
我个人认为VS2010比2008年更好,但它不是升级的主要内容.好处来自语言改进(C++ 0x和.NET/C#4)
项目不向后兼容.你的整个团队都必须立刻跳起来.
它确实修复了一些恼人的事情,比如添加引用对话框,以及用于在项目上显示上下文菜单的愚蠢时间
IDE比2008年崩溃了很多,但每隔几天它仍会崩溃.
新的VS2010附加装置非常整洁
"多监视器"支持并不多"支持".您可以在IDE外部浮动许多单个代码窗口,但不能将它们停靠在一起.基本上你会在主屏幕上看到标签,而辅助屏幕上的许多浮动窗口都是相当无用的.
ClickOnce仍然很糟糕!
您无需升级构建计算机.只需在其上安装VS2010并调整TFSBuildService配置即可了解.NET 4
请勿安装"电源命令"插件.在使用C++项目时,它会搞砸IDE.(基本上它会使IDE丢失并获得大约100x秒的焦点,这意味着你无法正确选择文本或使用键盘快捷键)
C++项目格式已从.vcproj更改为.vcxproj.visual studio项目升级向导负责处理大多数事情,但它确实失去了一些我们不得不手动重新安装的前/后构建步骤.
您可以使用VS2010并仍然以VS2008 C++编译器为目标.我们最初是在迁移项目之后做到这一点的,因为我们非常谨慎.切换到VS2010编译器并不是一件大事,所以我们在一两天之后就开始了 - 我们从STL向我们发出了一些声明,但这些东西在技术上都是不正确的,所以我们只是修复了它们.
我们升级C++项目的主要问题是项目依赖项现在存储在.vcxproj文件中,而不是存储在解决方案中.您知道如何右键单击项目,选择"依赖项"并勾选依赖项框吗?这仍然会影响VS2010中的构建,但MSBuild并不关注它.这意味着您的构建机器构建几乎肯定会破坏,因为构建顺序将是错误的.您必须打开项目的属性页面,选择"框架和引用"并将依赖项放在那里.
这也意味着如果你需要在.NET dll之前构建一个纯本机DLL(比如因为你PInvoke它),你不能依赖构建顺序工作!我们不得不手动编辑.NET项目的.csproj文件并将"引用"粘贴到本机项目中.这会导致VS抛出编译器警告,但这是使它按正确顺序构建的唯一方法
auto
在C++ 0x中是蜜蜂的膝盖.
VS2010 C++编译器编译代码的时间几乎与2008年相同.
升级C#项目是非事件.我们遇到的大多数问题都是由于我们自己手动向后移植某些类(如Tuple)而不得不删除反向移植的冲突.
.NET 4非常乐意加载旧的.NET 3.5代码.我们的一个开发人员已经为整个Codeplex WPFToolkit做了一个自定义分支(不要问,叹气).Microsoft将此工具包折叠到4.0中的.NET核心中.我想我们就会有一个吨的从这个矛盾,但我们刚刚加载的分叉工具包DLL和一切天衣无缝的合作.
令人讨厌的例外是单元测试.您可以在2010年构建.NET应用程序,将针对v2,3,或3.5的.NET Framework,但Visual Studio可以只如果你使用内置在Visual Studio单元测试是针对负载单元测试项目.NET 4 ,这意味着没有针对您的多目标.
修复WPF中的非模糊文本非常棒.为什么他们多年来用破碎的文字渲染器运送我永远不会知道.
他们收紧了一些COM互操作的东西.我们遇到了一些问题,因为我们的pinvoke签名上的调用约定是错误的,因为.NET会抛出错误 - 3.5会默默地为你解决这个问题.这些很容易修复
如果您还有其他问题,请随时询问:-)
归档时间: |
|
查看次数: |
1355 次 |
最近记录: |