从Visual Studio 2005升级到Visual Studio 2008的陷阱

8
我已经阅读了许多关于从VS 2005迁移到2008的优点的帖子。但是,我很想听听实际进行迁移的各种问题。我们即将进行迁移,我希望知道要预期和计划哪些速度障碍,而不是在途中惊奇地发现它们。任何有用的指导都将不胜感激,以便过程尽可能轻松。
哦,我们主要是一个C++开发公司,拥有一些中等规模的产品和一堆小型辅助工具。我们使用外部makefile来使所有构建都可以轻松自动化。当迁移这种类型的开发操作时,具体的见解将会非常有帮助。
谢谢您提前的帮助!

就我个人而言,我没有遇到任何问题,所以无法回答。 - Jason Kealey
实际上,转到2008年解决了我在2005年遇到的问题,这没有帮助我的生产力:http://www.flickr.com/photos/jasonkealey/212238011/ - Jason Kealey
8个回答

2

如果您使用任何Visual Studio插件,可能会遇到兼容性问题。当我们第一次切换到它时,还没有支持2008的Resharper版本,所以当时这是一个小问题。除此之外,我们并没有遇到IDE本身的任何问题。话虽如此,我们不太做C ++,所以我不确定您的情况可能有多不同。

想起来了,我们在转换中遇到的唯一其他问题涉及使用nant构建.Net 3.5应用程序。您没有说您使用哪些构建工具或是否使用托管代码,因此我不确定这是否会成为您的问题。如果是这样,网络上有一些解决方案可供获取nant与3.5应用程序配合使用,其中包括调整nant的配置文件。如果您需要,让我知道我可以发布它。


2

我之前公司的升级经验如下:

  • 我们获得了更高的可靠性,特别是因为我们有一些非常复杂的多线程应用程序,这些应用程序很难进行调试。
  • VS2008在解决方案中包含50个项目时,速度明显更快,占用的内存也更少。
  • 我们的一些C++代码不再能够在NT系统上运行。可以通过使用旧的editbin执行文件(例如来自VS2003)作为后置事件的一部分来修改二进制文件以解决此问题。
  • 一旦您升级到VS2008,项目文件也会相应更新。所以如果您需要在两个IDE之间来回切换(例如并非所有开发人员都已经过渡),那么可能会出现问题。

2
我们发现它并不是完全可靠的;大部分时间都没问题,但有几天我们会发现它好像每五分钟就会崩溃一次。老实说,它感觉有点不稳定,例如,SP1没有为我们修复的资源中有些漂泊的错误。
在迁移过程中,某种“链接时代码生成”东西显然自动打开了,但我认为它太慢了。从30秒到7分钟的链接时间真的很难接受。于是我们把它关掉了...
好的一面是,调试速度明显加快了,当你在某些耗时代码中遇到错误时,这是一个巨大的优势。但我们对发布版本的构建速度并不确定。
尽管其他语言可能有许多精彩的特性,但据我所知,Visual C++团队在过去的三年里似乎并没有那么忙碌(或者只剩下两个人了?)。

1

我使用Visual Studio 2008唯一遇到的问题是它在我进行了一些调整之前非常缓慢。当我从Debug模式退出时,会出现8-10秒左右的延迟,这非常令人烦恼。SP1和修改一些IE设置有所帮助。

但除此之外,我对它感到满意。


请更详细地描述你的修改,听起来很有趣。 - Dustin Getz

0

在编程方面,我遇到了一个问题,我之前没有意识到这个变化(我也发了一个关于它的问题帖子),安装程序可能会有不同的表现。旧版本的升级更像是卸载和重新安装,而新版本则是就地升级。这可能会导致以下问题:

  1. 需要将版本信息放入DLL中-这并不是什么坏事,但您可能还没有自动化此步骤。

  2. 默认情况下,服务不能自动升级,您需要强制用户卸载旧版本,然后安装新版本(TODO:在我的问题帖子中添加引用)。


0

我只遇到了两个问题。

  1. 在我们首次转移到2008 RTM时,有几个第三方插件无法正常工作。我不记得是哪些插件,但我们目前使用的所有插件都没有遇到这种情况。

  2. 如果您正在使用Team Edition或Team Suite,则某些第三方签入策略无法正常工作,因为它们引用了2005 TFS API。我们能够通过重新编译具有适当引用的代码(例如从CodePlex下载的内容)或重写策略来解决这个问题,因为它们非常简单。

正如我提到的,我们唯一遇到的问题是第三方可扩展性问题,而且已经好几个月没有出现问题了。


0
我们上个月刚完成了升级。我没有注意到任何减速,但我们从一开始就运行SP1。我们犯了一个错误,安装了SP1的Beta版本(服务包的Beta版本?!),必须下载并运行一个特殊工具来删除它,然后再安装RTM SP1,但这不应该影响您。最大的问题是为2008构建所有第三方库,并使批处理过程能够将我们的项目和解决方案回转到2005年,以满足我们的一个客户需求。关于库 - 微软表示,如果公共接口中有任何C++,或者内部使用STL,则需要使用新编译器重新构建它。我在我的博客上写了一个小结。
编辑:这里是项目转换器,我们使用了它。我将其转换为命令行应用程序,用于我们的批处理过程,效果还不错。

0

可靠性得到了很大的提升。日常功能集保持不变(这正是应该的)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接