3

给那些已经看过 VS2010 的人一个问题。为了让他们的插件在 VS2010 下工作,插件开发人员必须做出多大的改变?

4

2 回答 2

5

幸运的是,我刚刚写了关于这个确切主题的文章,并展示了升级我的加载项需要什么。(以下链接)

基本上,您的答案是迁移的影响很小,因为大多数功能都有向后兼容的“垫片”。不过可以理解的是,要在 2010 年获得新的东西,如 MAF、MEF 和 WPF,开发人员需要做一些工作。

最后 - 一定要阅读Carlos Quintero 发表的这篇关于加载项、框架和 CLR 兼容性的优秀文章。Carlos 的博客是我找到的关于加载项内容的最佳博客。

于 2008-12-04T07:09:01.370 回答
1

我们已经将我们的 Visual Lint 产品的开发版本迁移到 VS2010,并且在大多数情况下,迁移很简单——或者如果 Visual Studio 2010 Beta 1 自动化模型中没有这么多错误的话,迁移就会很简单。这种体验类似于我们为支持 VS2005 所做的工作(相比之下,VS2008 轻而易举),因此很明显 VS2010 代表了 Visual Studio 发展的重大变化。

由于我们对我们支持的所有 Visual Studio 版本都使用相同的二进制文件(这意味着代码始终被限制为原生 C++),因此接口中的重大更改对我们来说往往是显而易见的。这一次,引起我们问题的领域是:

  1. 新的 .vcxproj 项目文件格式(我们解析项目文件以读取项目属性,因为这在多个 Visual Studio 版本中比使用 VCProjectEngine - Visual C++ 自动化模型更可靠)。因此,我们必须为 .vcxproj 文件编写一个新的解析器,因为它们可能非常复杂,这本身就是一项主要任务。
  2. 命令栏/命令界面中的各种错误(可能与新的 WPF 编辑器/命令栏集成有关)。Carlos Quintero 已就该主题撰写了大量博客,因此如果您对此领域有疑问,建议您阅读他的博客。
  3. Beta 1 中对加载项启动序列的未记录更改,这意味着 DTE 窗口界面在 OnStartupComplete 事件发生之前无法正常工作。MS 已通知我们,由于潜在的兼容性问题,他们正在逆转 Beta 2 中的这一特定更改,但无论如何,我们现在已经使我们的代码对这个不敏感。
  4. Beta 1 中的工具窗口不能由内部 CLSID 创建(尽管 ProgID 工作正常)。这是我们在结束端口的最后一个主要部分之前等待的最后一个。

我怀疑我们的经验对于大多数插件来说非常具有代表性——只有当您使用受 Visual Studio 本身的重大更改(例如编辑器或智能感知集成)直接影响的区域时,影响才可能特别严重。

最后,我们不打算将构建本身迁移到 VS2010。它目前是在 VS2008 中构建的,我们根本看不出有任何理由迁移到 IDE,即使它在今年晚些时候 RTM 时也显示出仍然是“正在进行中的工作”的所有迹象(尽管这只是我个人的看法- YMMV)。

于 2009-08-06T08:45:25.950 回答