8

我已经阅读了许多帖子,吹捧从 VS 2005 迁移到 2008 的优点。但是,我很想听听实际进行迁移时的各种陷阱。我们即将迁移,我更愿意知道要预测和计划哪些减速带,而不是在途中意外发现它们。任何对此有用的指导将不胜感激,以使该过程尽可能轻松。

哦,我们主要是一家 C++ 开发公司,拥有少量中等规模的产品和一堆小型辅助工具。我们对所有内容都使用外部 makefile,以便所有构建都易于自动化。关于迁移此类开发操作时的预期内容的具体见解将是最有帮助的。

在此先感谢您的帮助!

4

8 回答 8

2

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

想一想,我们在使用 switch 时遇到的唯一问题是使用 nant 构建 .Net 3.5 应用程序。你没有说你使用什么构建工具或者你是否做了任何托管代码,所以我不确定这对你来说是否是个问题。如果是这样,网络上有一些解决方法可以让 nant 与 3.5 应用程序一起工作,其中涉及调整 nant 的配置文件。如果您希望我发布它,请告诉我。

于 2008-10-17T01:17:07.717 回答
2

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

  • 我们体验到了更高的可靠性,尤其是当我们拥有大量多线程且调试起来很痛苦的应用程序时。
  • VS2008 速度更快,内存消耗更少(至少对于一个包含 50 个项目的解决方案)。
  • 我们的一些 C++ 代码将不再在 NT 系统上运行。这可以通过使用旧的可执行的editbin(例如来自VS2003)来修改二进制文件作为发布事件的一部分来解决。
  • 升级到 VS2008 后,项目文件也会随之更新。因此,如果您必须在两个 IDE 之间来回切换(例如,并非所有开发人员都已转换),那么可能会出现问题。
于 2008-10-17T02:25:07.533 回答
2

我们发现它并不完全可靠。大多数时候都很好,但是我们中的一些人有几天似乎每五分钟就崩溃一次。坦率地说,它也感觉有点马车,例如。SP1 没有为我们修复的资源存在一些巡回错误。

一些“链接时间代码生成”的东西在迁移过程中显然是自动打开的,而且 IMO 太慢了。从 30 秒到 7 分钟的链接时间非常难以接受。又把那个关了...

从好的方面来说,调试速度要快得多,当您在一些耗时的代码中遇到错误时,这是​​一个很大的优势。不过,我们不相信发布构建速度。

尽管如此,其他语言中可能还有很多很棒的功能,但据我所知,Visual C++ 团队在这三年间显然没有那么忙(或者可能只剩下两个?)。

于 2008-10-17T02:38:23.497 回答
1

我对 Visual Studio 2008的唯一问题是它非常慢,直到我稍微调整一下。我遇到了大约 8-10 秒左右从调试模式出来的延迟——这烦人。SP1 帮助了修改一些 IE 设置。

但除此之外,我对此很满意。

于 2008-10-17T01:09:59.603 回答
0

可靠性大大提高。日常功能集不变(这是应该的)。

于 2008-11-02T00:46:47.493 回答
0

我在没有意识到更改的情况下遇到了一个问题(我也有一个问题帖子)安装程序的行为可能会有所不同。旧的升级更多的是卸载和重新安装。新的进行就地升级。这可能会导致问题:

  1. 需要将版本信息放入 DLL - 不是坏事,但可能不是你自动化的步骤

  2. 开箱即用,服务无法自动升级,您需要强制用户卸载旧的然后安装新的(TODO:我的问题帖子的引用要添加到这里)

于 2008-12-16T10:10:35.383 回答
0

我只遇到了两个问题。

  1. 当我们第一次使用 RTM 迁移到 2008 年时,一些第 3 方加载项不起作用。我不记得是哪些,但我没有遇到过我们当前使用的任何加载项。

  2. 如果您使用的是 Team Edition 或 Team Suite,则有一些 3rd 方签入策略不起作用,因为它们引用了 2005 TFS API。我们可以通过使用适当的引用重新编译我们有代码的东西(比如从 CodePlex 拉下来的东西)或重写策略来解决这个问题,因为它们相当简单。

就像我提到的,我们遇到的唯一问题是 3rd 方可扩展性,几个月内没有任何问题。

于 2008-12-16T10:29:06.470 回答
0

上个月我们刚刚完成升级。我没有注意到减速 - 但我们从一开始就一直在运行 SP1。我们错误地安装了 SP1 的测试版(服务包的测试版?!?!)并且必须在安装 RTM SP1 之前下载并运行一个特殊的工具来删除它,但这不应该影响您。最大的痛苦是为 2008 年构建我们所有的第三方库,并为我们的一个客户建立一个批处理来将我们的项目和解决方案反向转换到 2005 年。关于库 - 微软说如果它在公共接口中有任何 C++,或者在内部使用 STL,那么它需要用新的编译器重新构建。我在我的博客上写了一个小概要。

编辑:这是我们使用的项目转换器。我将它转换为我们的批处理的命令行应用程序,它工作得很好。

于 2008-10-17T01:34:44.607 回答