需要创建通用的VSIX扩展,这些扩展需要支持所有版本的Visual Studio(2010到2017)。
我参考了下面的链接来实现上述要求。
https://msdn.microsoft.com/en-us/magazine/mt493251.aspx
在这方面,他们告诉使用VSIX项目中的Visual Studio包模板将包(转到Visual studio | Extensibility | VSPackage节点,选择visual Studio包模板并将其命名为MyPackage.cs)添加到VSIX项目中,但我的Visual Studio没有Visual Studio包项模板。它只有Visual Studio AsyncPackage模板。我已经在下面添加了我的visual studio详细信息。

Visual studio旧版本只有“Visual Studio package”选项,他们还建议现在使用AsyncPackage为多个Visual Studio版本创建一个通用的包。请在这里找到详细信息。
如果我在VSIX项目中添加了Visual Studio,那么按照这个过程,我在编译VSIX项目的时候会遇到下面的编译错误。

请提出任何解决方案来解决这个问题,否则请提出任何其他方式来实现我的要求。
注意:我已经用VS2012创建了一个项目,其中包含Visual Studio支持的版本。它只能在安装了VS2012的机器上单独运行。对此敬请指教。
发布于 2018-08-29 06:14:05
我是MSDN杂志文章的作者。它是在Visual Studio Async包项目模板替换Visual Studio包项目模板之前编写的。
即使你可以得到模板(从旧的VS版本),也不可能用一个VSIX从VS2010到VS2017,因为清单有三个不同的版本,正如文章中解释的那样。至多,您的目标是从VS 2012到VS 2017。
但考虑到微软推动在VS2017 15.8和未来VS2019 16.0和16.1 (参见Improving the responsiveness of critical scenarios by updating auto load behavior for extensions)中使用异步软件包(至少用于自动加载软件包),最好的面向未来的方法是为VS2010-2013开发一个非异步软件包,并为VS 2015-2017开发另一个异步软件包。因为也许你的软件包今天不需要自动加载(异步软件包就不需要了),但也许将来它需要自动加载(然后你就会被迫使用异步软件包),或者也许微软在VS 2019 16.2中决定即使是非自动加载的软件包也必须是异步的……
注意:您甚至可以尝试在VS2013和更高版本上使用示例Visual Studio 2013 backwards compatible async package的异步包,但如果您需要同时针对VS2010和2012,则不值得。
底线:将你的时间集中在你必须创建的两个包项目之间尽可能多的代码重用上,这两个包项目的目标是VS 2010-2019。
https://stackoverflow.com/questions/52063441
复制相似问题