我正在开发一个Visual Studio扩展,我想与VS 2005+兼容(2005,2008,2010,2012,2013,最终到2015年)。
我一直在研究这方面的要求,并且在执行此手册时遇到了http://www.viva64.com/en/a/0082/。 它涵盖了很多关于如何实现这一目标的细节,但是当我从头开始开发我的第一个VS扩展时,我迷失了。
文章说,
开发VS扩展包需要为目标版本的IDE安装Microsoft Visual Studio SDK,即应为每个正在开发扩展的Visual Studio版本安装单独的SDK。
这是否意味着我需要2005 SDK,2008 SDK,2010 SDK等?
另外,我没有看到任何关于Visual Studio的使用版本的信息。我发现了其他一些提到版本的文章,但它们与2010+扩展相关。
我假设我应该使用.NET framework 3.5来实现向后兼容。
我有以下问题:
答案 0 :(得分:1)
您可以将Visual Studio 2008与针对.NET 3.5的VS 2008 SDK一起使用,以创建可在VS 2005+上运行的Visual Studio包。您还需要为它创建一个安装程序。
如果您不太需要VS 2008支持,那么使用Visual Studio 2010定位VS 2010+以创建可自行安装的vsix Visual Studio扩展会更加简单。
答案 1 :(得分:1)
您希望VS扩展程序与VS2005 +兼容似乎是一个随意的决定。为什么不用VS2003 +或VS2008 +?
无论如何,这是可能的,但非常困难,因为VS自2005年以来发生了重大变化。调试和测试以及扩展可能是一场噩梦。您必须跟踪哪个VS版本支持哪些功能。
为此,您必须开发VSPackage。您引用的文章讨论了VSPackages,但几乎没有说明兼容性。
此处的兼容性甚至无法在源代码级别实现。根据{{3}}重点强调:
在Visual Studio 2005中运行的大多数VSPackage将继续有效 在Visual Studio 2008中没有修改。大多数服务,入门 积分和事件保持兼容性,但有一些 例外,在本主题后面列出。编程 接口一般也保持兼容性,但有些元素 接口可能会更改,需要修改源代码才能工作 使用Visual Studio 2008。
即使在this时,它们仍然存在以前版本中的工作情况,但在Visual Studio的更高版本中神秘地破坏了。
您必须使用条件编译并针对每个VS SDK版本编译扩展。此外,扩展的部署模型对于不同的IDE版本也是不同的。
我的建议是针对VS2010 +而不是VS2005。这将非常容易,而且大多数开发人员都在使用VS2010 +。