VS2010可扩展性 - 它有多大不同?

时间:2008-12-02 23:44:12

标签: visual-studio add-in vsx extensibility

向那些已经看过VS2010的人提问。为了让他们的加载项在VS2010下工作,加载开发人员必须做出多大的改变?

2 个答案:

答案 0 :(得分:5)

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

基本上你的答案是存在影响较小的迁移,因为对于大多数功能而言,后备兼容的“垫片”已经到位。但是可以理解的是,为了获得像MAF,MEF和WPF这样的新内容,开发人员将会有一些工作。

最后 - 请务必阅读Carlos Quintero的this outstanding post,MVP关于加载项,框架和CLR兼容性。 Carlos的博客是我发现的最好的附加内容。

答案 1 :(得分: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中的加载项启动序列进行了未记录的更改,这意味着在发生OnStartupComplete事件之前,DTE Window接口无法正常工作。 MS告诉我们,由于潜在的兼容性问题,他们正在扭转Beta 2中的这一特定变化,但无论如何我们已经对我们的代码进行了脱敏。
  4. Beta 1中的工具窗口无法由内部CLSID创建(尽管ProgID正常工作)。这是我们在结束端口的最后一个主要部分之前等待的最后一个。
  5. 我怀疑我们的经验对于大多数插件来说都具有相当的代表性 - 只有当您使用Visual Studio本身的重大更改(例如编辑器或智能感知集成)直接受影响的区域时才会产生影响。特别严重。

    最后,我们不打算将构建本身迁移到VS2010;它目前是在VS2008中构建的,我们完全看不出有任何理由迁移到IDE,即使在今年晚些时候进行RTM时,它仍显示仍在进行中的所有迹象(这仅仅是我的个人观点) - YMMV)。