locked
Visual Studio - Creating Extensions for Multiple Visual Studio Versions RRS feed

  • General discussion

  • Each new version of Visual Studio produces challenges for developers creating extensions for the IDE. Learn how to create a single Visual Studio package that can work on every version of Visual Studio from 2012 to 2017, by following best practices.

    Read this article in the August 2017 issue of MSDN Magazine

    Tuesday, August 1, 2017 7:27 PM

All replies

  • Figures 7 and 8 are swapped. The assembly references listed in Figure 8 belong in Figure 7, and the screenshot of the Debugger property page in Figure 7 belongs in Figure 8.
    Wednesday, August 2, 2017 3:08 AM
  • I have reported it to the MSDN Magazine editors. The last draft was OK, not sure why figures were swapped afterwards. Thanks for reporting it.

    My portal and blog about VSX: http://www.visualstudioextensibility.com; Twitter: https://twitter.com/VSExtensibility; MZ-Tools productivity extension for Visual Studio: https://www.mztools.com

    Wednesday, August 2, 2017 9:31 PM
  • good notice
    Monday, August 7, 2017 5:51 PM
  • This was an excellent article. It provided the background behind everything, provided an easy to follow set of steps, and allowed me to setup my 2017 extension to target 2015 flawlessly, first try. Thanks a ton for making it!
    Wednesday, September 27, 2017 6:09 PM
  • Hi.

    Nice article. But it's not quite compete as it didn't discuss problem of transforming T4 template .

    If we need not just a simple VSIX but a DSL VSIX then things are getting much harder. As DSL SDK targets  import t4-includes basing on its installation path when we'll be building our solution in VS it will include t4 template from current VSSDK and generated code could be not compilable if the project uses old assemblies (from old VS) as suggested.

    Similarly the article said nothing about targets file which are obviously different in different VS version. So you're importing targets from SDK for current VS where solution is opened but reference assemblies from older SDK. It also could result in hard-to-understand issues.

    It's worth mentioning a nice resource on the topic  - https://github.com/jaredpar/RoundTripVSIX/commits/master - it's a walkthough how to create a vs2010 vsix and them move it newer VS but keep vs2010 compatibility for resulting vsix.


    Sergei Dorogin, Lead Developer, CROC Inc. (www.croc.ru)

    Friday, October 20, 2017 11:11 AM
  • Thank you for this detailed article.

    Unfortunately, I am stuck because the C# template "Visual Studio Package" is missing in the current SDK of VS 2017.
    Apparently, it has been replaced by "Visual Studio AsyncPackage", which I suppose will be incompatible with older versions of VS.

    I opened a ticket here (just in case):
    https://developercommunity.visualstudio.com/content/problem/293478/visual-studio-package-template-not-available-on-sd.html

    Saturday, July 14, 2018 10:27 AM
  • The article told me exactly what I needed to understand ... but not exactly how to do what I need to do.

    I need to create a VSIX package that supports VS2015, 2017 and 2019.

    Based on the article [and other articles] that means I will need to base my package on AsyncPackage. Our builds are done using VS2017 so I need to use VS2017 with the V15.0 build tools. However in order to support VS2015 I need to use the older 14.0 SDK.

    Starting in VS2015 the SDK was no longer available as a separate download so how do I install SDK 14.0 into Visual Studio 2017?

    Monday, November 26, 2018 3:30 PM
  • Hi,

    The article was written and published before Microsoft made AsyncPackage mandatory de facto for VS 2017 (https://blogs.msdn.microsoft.com/visualstudio/2018/05/16/improving-the-responsiveness-of-critical-scenarios-by-updating-auto-load-behavior-for-extensions/). Since then, at most you can target VS 2013, VS 2015, VS 2017 (and maybe VS 2019) with a single async package as explained here:

    Visual Studio 2013 backwards compatible async package
    https://github.com/Microsoft/VSSDK-Extensibility-Samples/tree/master/Backwards_Compatible_AsyncPackage_2013

    Best regards,

    Carlos Quintero (article's author)


    My portal and blog about VSX: http://www.visualstudioextensibility.com; Twitter: https://twitter.com/VSExtensibility; MZ-Tools productivity extension for Visual Studio: https://www.mztools.com

    Monday, November 26, 2018 7:58 PM