【问题标题】:VS2010 Extensibility - how different is it?VS2010 可扩展性 - 它有什么不同?
【发布时间】:2008-12-02 23:44:11
【问题描述】:

问那些已经看过 VS2010 的人。加载项开发人员必须进行多大的更改才能使其加载项在 VS2010 下运行?

【问题讨论】:

    标签: visual-studio add-in vsx extensibility


    【解决方案1】:

    幸运的是,我刚刚写了关于 this exact subject 的文章,并展示了升级我的加载项所需的内容。 (以下链接)

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

    最后 - 一定要阅读 Carlos Quintero 的 this outstanding post,MVP 中关于加载项、框架和 CLR 兼容性的内容。 Carlos 的博客是我找到的关于加载项内容的最佳博客。

    【讨论】:

      【解决方案2】:

      我们已经将我们的 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. 无法通过内部 CLSID 创建 Beta 1 中的工具窗口(尽管 ProgID 工作正常)。这是我们在完成端口的最后一个主要部分之前等待的最后一个。

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

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

      【讨论】:

        猜你喜欢
        • 2013-06-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-24
        • 2018-05-20
        • 2011-08-12
        • 1970-01-01
        • 1970-01-01
        • 2012-03-14
        相关资源
        最近更新 更多