2012-11-21 79 views
5

我已经为Visual Studio开发一些扩展以供内部使用。这些将不得不支持几个不同版本的Visual Studio(VS2008,2010和2012 - VS2005将是一个很好,但不是必需的)。我希望尽可能以一致的方式开发这些代码,尽可能多地重用代码,同时将它们纳入Visual Studio 2012 .sln这类工具的现有项目结构中。为Visual Studio的多个版本开发Visual Studio插件

开发这种扩展的最好/最简单的方法是什么?一个VSPackage项目?我可以制作一个在VS2012中开发的兼容2008的VSPackage吗?

我现在正在编写的扩展功能需要的基本功能 - 我需要创建工具菜单命令,可能是自定义的工具窗口。我的要求稍后可能会改变,但我现在不需要编辑器或类似的东西。

我看到this问题可能似乎是重复的,但它被接受不回答这个问题的答案,所以......

回答

3

这真的取决于你是什么扩展要做的事情。

VS2008不支持扩展名(.vsix),您需要编写部署为msi的VSPackage。您也无法访问VS2010中引入的许多新功能(更容易编辑器集成和通过MEF访问vs服务),但操作解决方案/项目/文件等基本内容应该没问题,可以在所有版本上运行(例如使用DTE应该可以)。

至于我记得你VS2008还需要obtain a PLK,因此不再需要为2010年和2012年

我还没有尝试过在VS2012开发2008包,但你绝对可以开发扩展2010

另外请记住,VS2008是.net 3.5,所以你的代码应该使用.net 3.5和C#版本,它支持可移植。

+0

我目前的要求是非常基本的 - 工具菜单命令,也许是一个工具窗口(更新与该信息的问题)。后来我可能会有更高级的要求,比如装饰,但是到那时我们应该在VS2012上。 PLK的东西可能会导致重复使用代码的机会 – JohnL

+1

只有VS2008需要PLK才能加载你的软件包,但代码仍然可以重用。 AFAIK添加工具菜单命令和工具窗口在VS的所有三个版本中都是相同的。你可以做的一件事就是针对你所针对的每个VS都有不同的项目(VS2010和VS2012将会是.vsix,而VS2008将会有MSI部署)并共享文件作为它们之间的链接,这将使2010-12年的部署/调试变得更容易(感谢.vsix),每个项目都可以针对不同的.net版本(2008-3.5,2010-4.0,2012-4.5)。 –

+0

是的,我知道不同的部署技术,而且我对MSI非常熟悉。关于这样的项目设置,我已经看到与其他项目完成,虽然我们的建设人员不会高兴:)。我们也做共享文件作为链接的事情elsehwere,它混淆了heck失控VS/TFS。我宁愿为每个VS版本(都在同一个SLN)中包含一个项目,其中包含对具有实际插件代码的公共项目的引用。但是,什么工程,我猜想作品 – JohnL