Create plugin in Visual Studio 2015 compatible with previous versions - visual-studio

Is that possible to create plugin into Visual Studio 2015 which will be compatible and could be installed into different versions of Visual Studio 2013/2012/2010 ? How to do it if so ?
Update:
I know that I can create different versions of plugin/solutions for/in different visual studios, but I was wondering if there is possibility to create one solution in Visual Studio 2015.

A Visual Studio extension can support multiple versions of Visual Studio specifying them in the VSIX Manifest. Plus your extension should reference dlls present in all versions of Visual Studio, typically referencing the version of lowermost targeted VS version.

Related

Incompatible project type .deployproj (Visual Studio 2019)

I have a solution that contains a .deployproj type of project. It seems that Visual Studio 2019 is not able to load that project. The detailed error message is the following:
Unsupported
This version of Visual Studio is unable to open the following projects. The project types may not be installed or this version of Visual Studio may not support them.
For more information on enabling these project types or otherwise migrating your assets, please see the details in the "Migration Report" displayed after clicking OK.
- Provisioning.Arm, "C:...\Provisioning.Arm\Provisioning.Arm.deployproj"
Non-functional changes required
Visual Studio will automatically make non-functional changes to the following projects in order to enable them to open in Visual Studio 2015, Visual Studio 2013, Visual Studio 2012, and Visual Studio 2010 SP1. Project behavior will not be impacted.
What can I do in order to load the project within Visual Studio 2019?
It seems that you need to install the Azure Development workload in order for Visual Studio to be able to load .deployproj projects.
So just modify the current installation to also contain this workload. (I don't know exactly what individual component needs to be installed for this to work, I just installed the entire Azure Development workload).

How to detect visual studio version from within an visual studio extension

I'm writing a Visual Studio extension supporting Visual Studio 2017 and 2019. Since In some circumstance I need to know, which version the extension is currently installed in, to adjust the extensions behavior accordingly. I searched the visual Studio API, but up to now I was not able to find out the current version. Its now imported what kind of version I get e.g VS 2017 or 15.9.17 or this internal build version. Anything would be fine. has anybody a hint?

Generating Setup Project from visual studio community installer

I have generated visual studio installer from Microsoft visual studio community version. i want to ask is there any difference of installer generated from visual studio community version and visual studio enterprise version OR visual studio ultimate version ?
The installer project extension is the same, assuming that's what you're referring to. There are no extra (or missing) features that depend on your version of Visual Studio.

How do I build a Visual Studio Extension (VSIX) that targets Visual Studio 2010-2017

Our build environment is VS 2015 (ideally) targeting .net 4.0
We have just re-worked our visual studio plugins based on the Visual Studio extensibility project template in VS 2015. The resulting VSIX works great on VS 2015 & 2017 RC1.
However I would like to target the VSIX at VS 2010 (and ideally 2012). This is where the problems start....
VS 2010 uses .net 4.0.
I drop the compiler to .net 4.0
The VS 2015 (4.5) assemblies wont load (i.e. Microsoft.VisualStudio.Shell.14.0).
Thats OK as I don't use anything in them, so I drop the references to them in favour of the version 10.0 (2010) ones.
Great the code compiles.
But the VSIX package does not
1>C:\Program Files
(x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5):
warning MSB3274: The primary reference
"Microsoft.VisualStudio.Imaging, Version=14.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" could not
be resolved because it was built against the
".NETFramework,Version=v4.5" framework. This is a higher version than
the currently targeted framework ".NETFramework,Version=v4.0".
So the problem seems to be that if I target VS 2010 I need it to build as .net 4.0, but the VS 2015 build script requires .net 4.5.
I'm wondering if its possible to use the VS 2010 build tools in a VS 2015 project? Or must I convert my VS 2015 project back to VS 2010?
UPDATE
Starting to think this is not possible for other reasons...
https://learn.microsoft.com/en-us/visualstudio/extensibility/faq-2017
The new VSIX v3 format is backward compatible with VSIX v2, so you’ll
still be able to have a single VSIX with a single VSIX ID that
supports Visual Studio 2012 and later. The new VSIX v3 format does not
support Visual 2010 and earlier. To support Visual Studio 2010 onward,
you will need to create a separate extension (with a separate VSIX
ID).
I have ran into similar problem, so I have created a Nuget package called VsixUpdater, which can do the VSIX migration automatically if added to a VSIX project, it even works with older versions of Visual Studio (I tested it with 2012), after adding the package the generated VSIX packages will be V3 and 2017 compatible, see https://github.com/axodox/VsixUpdater for details.
Create a seperate project and VSIX for VS 2010 and another for VS 2012 and later. You can have a look at my source here: https://github.com/ErikEJ/SqlCeToolbox
Notice that I require .NET 4.5.1 for my VS 2010 extension also (simply requires that .NET 4.5.1 is present/installed on the PC, and it is built in to Windows 8.1 and later)
In the end I ended up with 2 projects
A project targeting VS 2010 compiled under .Net 4.0 using a version 2.0 manifest (built using VS 2015).
A project targeting VS 2012 + compiled under .Net 4.5
using a version 3.0 manifest (built using VS 2015).
There has been a certain amount of faffing around with references, but it all seems to work. Our only outstanding issue is the code signing, as VS 2015 will not accept anything below SHA256 and VS 2012 will not accept SHA256....

Roslyn Project Templates VS 2015 RC

I can't find any Project Templates for Roslyn Extensions in the current released Visual Studio 2015 RC. Are they not available in the Release Candidate or just well hidden?
I am missing the whole Roslyn folder.
I have installed the Visual Studio 2015 SDK RC, do I still miss something?
They have moved to the Extensibility folder, and don't have Roslyn in the name. Instead they are named after what they actually do.
Additionally, they aren't part of the base Visual Studio install. You need to install the VS SDK, and the Roslyn templates VSIX at https://visualstudiogallery.msdn.microsoft.com/e2e07e91-9d0b-4944-ba40-e86bcbec1599.

Resources