2012-11-21 112 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