Can a VS2010 VSPackage project be installed to VS2008? - visual-studio-2010

I am wondering whether the result VSIX artifact of a VSPackage project created and written in Visual Studio 2010 can be deployed to Visual Studio 2008 - provided, of course, that the package does not use/rely on any .NET 4 assemblies?
Alternatively, what other paths may exist, that allow me to create an installable extension targetting both VS2008 and VS2010 from a VS2010 solution?

VSIX is a new feature for VS 2010, so you can't deploy your package to 2008 with a VSIX. You could, however, build a package that targets both 2008 and 2010 and deploy it with a MSI. (MSI deployment of packages in 2010 is still supported.)
I wrote a blog post explaining how you could set up a project in 2010 that would target 2008 and 2010: http://blogs.msdn.com/b/aaronmar/archive/2009/12/07/targeting-vs-2008-with-the-visual-studio-2010-sdk.aspx

Related

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....

Accessing (full) Visual Studio project properties after switching to platform toolset v90

I've installed Visual Studio 2008 SP1 C++ Express Edition, 2010 Ultimate and 2013 Premium.
I've opened my old Visual Studio 2008 project with VS 2013 and upgraded the Project Files.
Afterwards I've changed the Platform Toolset to v90.
The project is compiling fine but is there a way to access the project properties? I can't even find a way to switch back to the v120 toolset (I don't want it tho).
Project -> Properties will only show the following properties:
Is there a way to access the full project properties?
It seems that choosing v100 will cause the same issue.

how to make standalone visual studio application which can run on any system without having visual studio

I made an application using VS 2010 and want to run that application on other system which don't have VS 2010.
How can i make my app independent of dependency from VS 2010,so that it can run on any system without installing VS 2010.
If this is a managed application then you need only the appropriate .NET framework version on the target machine (and of course any other dependencies your app may have).
If this is a native application then you need the VC++ 2010 Redistributable package. You need however the redistributable that matches your VS 2010 version (RTM or with SP1) and the project target architecture (x86, x86, IA64). Here are the links for the VC++ 2010 redistributables:
x86
VS 2010 RTM
VS 2010 with SP1
x64
VS 2010 RTM
VS 2010 with SP1
IA64
VS 2010 RTM
VS 2010 with SP1
You need to create an installer for it. The installer will install the .NET framework and any other requirements you may have.
I googled 'creating installer in visual studio 2010' and got some encouraging results.
Examples from results:
https://www.youtube.com/watch?v=IEgE51Lcpg0
http://msdn.microsoft.com/en-us/library/t71a733d.aspx
http://msdn.microsoft.com/en-us/library/ee942965%28v=vs.100%29.aspx
Search for ClickOnce in case the application needs to run for noon Admin users (installs to local user folders).

c/cpp project build in MS VS 2012 to be compatible with msvs 2008

I have created a c/cpp project in microsoft visual studio 2012, but the test machine has microsoft visual studio 2008, is there a way to tell visual studio 2012 to be compatible with 2008
No. You need to maintain two different project and solution files, one for each version. The only compatibility is between Vs2010 and VS2012 (and promised for future versions too).

Will Visual Studio 2010 database projects work with .Net 3.5?

I notice that Visual Studio 2010 database projects have a re-distributable component to support the deployment on end-user systems.
Will this component work against .Net 3.5, or does it require .Net 4.0?
From what I can tell, Visual Studio 2010 database projects will require .Net 4.0 on the target machine. If you inspect the redistributable components in %ProgramFiles%\Microsoft Visual Studio 10.0\VSTSDB\Deploy using Reflector, you'll see that they all depend on version 4.0.0.0 of the framework libraries.
In addition to this, the .deploymanifest files (which are really MSBuild files in disguise) specify 4.0 as the MSBuild tools version.
It looks like you would need to use Visual Studio Team System 2008 Database Edtion GDR R2 (which of course requires VS 2008) if you want to target .Net 3.5 on the database server.

Resources